• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module goldfish_vk_marshaling
17 //
18 // (impl) generated by codegen/vulkan/scripts/genvk.py -registry codegen/vulkan/xml/vk.xml
19 // -registryGfxstream codegen/vulkan/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
20 //
21 // Please do not modify directly;
22 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31 
32 #include "goldfish_vk_marshaling.h"
33 
34 #include <string.h>
35 
36 #include "goldfish_vk_extension_structs.h"
37 #include "goldfish_vk_private_defs.h"
38 
39 namespace gfxstream {
40 namespace vk {
41 
42 void marshal_extension_struct(VulkanStream* vkStream, VkStructureType rootType,
43                               const void* structExtension);
44 
45 void unmarshal_extension_struct(VulkanStream* vkStream, VkStructureType rootType,
46                                 void* structExtension_out);
47 
48 #ifdef VK_VERSION_1_0
marshal_VkExtent2D(VulkanStream * vkStream,VkStructureType rootType,const VkExtent2D * forMarshaling)49 void marshal_VkExtent2D(VulkanStream* vkStream, VkStructureType rootType,
50                         const VkExtent2D* forMarshaling) {
51     (void)rootType;
52     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
53     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
54 }
55 
unmarshal_VkExtent2D(VulkanStream * vkStream,VkStructureType rootType,VkExtent2D * forUnmarshaling)56 void unmarshal_VkExtent2D(VulkanStream* vkStream, VkStructureType rootType,
57                           VkExtent2D* forUnmarshaling) {
58     (void)rootType;
59     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
60     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
61 }
62 
marshal_VkExtent3D(VulkanStream * vkStream,VkStructureType rootType,const VkExtent3D * forMarshaling)63 void marshal_VkExtent3D(VulkanStream* vkStream, VkStructureType rootType,
64                         const VkExtent3D* forMarshaling) {
65     (void)rootType;
66     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
67     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
68     vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
69 }
70 
unmarshal_VkExtent3D(VulkanStream * vkStream,VkStructureType rootType,VkExtent3D * forUnmarshaling)71 void unmarshal_VkExtent3D(VulkanStream* vkStream, VkStructureType rootType,
72                           VkExtent3D* forUnmarshaling) {
73     (void)rootType;
74     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
75     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
76     vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
77 }
78 
marshal_VkOffset2D(VulkanStream * vkStream,VkStructureType rootType,const VkOffset2D * forMarshaling)79 void marshal_VkOffset2D(VulkanStream* vkStream, VkStructureType rootType,
80                         const VkOffset2D* forMarshaling) {
81     (void)rootType;
82     vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
83     vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
84 }
85 
unmarshal_VkOffset2D(VulkanStream * vkStream,VkStructureType rootType,VkOffset2D * forUnmarshaling)86 void unmarshal_VkOffset2D(VulkanStream* vkStream, VkStructureType rootType,
87                           VkOffset2D* forUnmarshaling) {
88     (void)rootType;
89     vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
90     vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
91 }
92 
marshal_VkOffset3D(VulkanStream * vkStream,VkStructureType rootType,const VkOffset3D * forMarshaling)93 void marshal_VkOffset3D(VulkanStream* vkStream, VkStructureType rootType,
94                         const VkOffset3D* forMarshaling) {
95     (void)rootType;
96     vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
97     vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
98     vkStream->write((int32_t*)&forMarshaling->z, sizeof(int32_t));
99 }
100 
unmarshal_VkOffset3D(VulkanStream * vkStream,VkStructureType rootType,VkOffset3D * forUnmarshaling)101 void unmarshal_VkOffset3D(VulkanStream* vkStream, VkStructureType rootType,
102                           VkOffset3D* forUnmarshaling) {
103     (void)rootType;
104     vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
105     vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
106     vkStream->read((int32_t*)&forUnmarshaling->z, sizeof(int32_t));
107 }
108 
marshal_VkRect2D(VulkanStream * vkStream,VkStructureType rootType,const VkRect2D * forMarshaling)109 void marshal_VkRect2D(VulkanStream* vkStream, VkStructureType rootType,
110                       const VkRect2D* forMarshaling) {
111     (void)rootType;
112     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->offset));
113     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->extent));
114 }
115 
unmarshal_VkRect2D(VulkanStream * vkStream,VkStructureType rootType,VkRect2D * forUnmarshaling)116 void unmarshal_VkRect2D(VulkanStream* vkStream, VkStructureType rootType,
117                         VkRect2D* forUnmarshaling) {
118     (void)rootType;
119     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->offset));
120     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->extent));
121 }
122 
marshal_VkBaseInStructure(VulkanStream * vkStream,VkStructureType rootType,const VkBaseInStructure * forMarshaling)123 void marshal_VkBaseInStructure(VulkanStream* vkStream, VkStructureType rootType,
124                                const VkBaseInStructure* forMarshaling) {
125     (void)rootType;
126     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
127     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
128         rootType = forMarshaling->sType;
129     }
130     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
131 }
132 
unmarshal_VkBaseInStructure(VulkanStream * vkStream,VkStructureType rootType,VkBaseInStructure * forUnmarshaling)133 void unmarshal_VkBaseInStructure(VulkanStream* vkStream, VkStructureType rootType,
134                                  VkBaseInStructure* forUnmarshaling) {
135     (void)rootType;
136     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
137     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
138         rootType = forUnmarshaling->sType;
139     }
140     size_t pNext_size;
141     pNext_size = vkStream->getBe32();
142     forUnmarshaling->pNext = nullptr;
143     if (pNext_size) {
144         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
145         vkStream->read((VkBaseInStructure*)forUnmarshaling->pNext, sizeof(VkStructureType));
146         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
147         vkStream->alloc((void**)&forUnmarshaling->pNext,
148                         goldfish_vk_extension_struct_size_with_stream_features(
149                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
150         *(VkStructureType*)forUnmarshaling->pNext = extType;
151         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
152     }
153 }
154 
marshal_VkBaseOutStructure(VulkanStream * vkStream,VkStructureType rootType,const VkBaseOutStructure * forMarshaling)155 void marshal_VkBaseOutStructure(VulkanStream* vkStream, VkStructureType rootType,
156                                 const VkBaseOutStructure* forMarshaling) {
157     (void)rootType;
158     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
159     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
160         rootType = forMarshaling->sType;
161     }
162     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
163 }
164 
unmarshal_VkBaseOutStructure(VulkanStream * vkStream,VkStructureType rootType,VkBaseOutStructure * forUnmarshaling)165 void unmarshal_VkBaseOutStructure(VulkanStream* vkStream, VkStructureType rootType,
166                                   VkBaseOutStructure* forUnmarshaling) {
167     (void)rootType;
168     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
169     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
170         rootType = forUnmarshaling->sType;
171     }
172     size_t pNext_size;
173     pNext_size = vkStream->getBe32();
174     forUnmarshaling->pNext = nullptr;
175     if (pNext_size) {
176         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
177         vkStream->read((VkBaseOutStructure*)forUnmarshaling->pNext, sizeof(VkStructureType));
178         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
179         vkStream->alloc((void**)&forUnmarshaling->pNext,
180                         goldfish_vk_extension_struct_size_with_stream_features(
181                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
182         *(VkStructureType*)forUnmarshaling->pNext = extType;
183         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
184     }
185 }
186 
marshal_VkBufferMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,const VkBufferMemoryBarrier * forMarshaling)187 void marshal_VkBufferMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
188                                    const VkBufferMemoryBarrier* forMarshaling) {
189     (void)rootType;
190     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
191     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
192         rootType = forMarshaling->sType;
193     }
194     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
195     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
196     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
197     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
198     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
199     uint64_t cgen_var_0;
200     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
201     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
202     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
203     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
204 }
205 
unmarshal_VkBufferMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,VkBufferMemoryBarrier * forUnmarshaling)206 void unmarshal_VkBufferMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
207                                      VkBufferMemoryBarrier* forUnmarshaling) {
208     (void)rootType;
209     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
210     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
211         rootType = forUnmarshaling->sType;
212     }
213     size_t pNext_size;
214     pNext_size = vkStream->getBe32();
215     forUnmarshaling->pNext = nullptr;
216     if (pNext_size) {
217         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
218         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
219         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
220         vkStream->alloc((void**)&forUnmarshaling->pNext,
221                         goldfish_vk_extension_struct_size_with_stream_features(
222                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
223         *(VkStructureType*)forUnmarshaling->pNext = extType;
224         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
225     }
226     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
227     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
228     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
229     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
230     uint64_t cgen_var_0;
231     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
232     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
233                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
234     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
235     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
236 }
237 
marshal_VkDispatchIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,const VkDispatchIndirectCommand * forMarshaling)238 void marshal_VkDispatchIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
239                                        const VkDispatchIndirectCommand* forMarshaling) {
240     (void)rootType;
241     vkStream->write((uint32_t*)&forMarshaling->x, sizeof(uint32_t));
242     vkStream->write((uint32_t*)&forMarshaling->y, sizeof(uint32_t));
243     vkStream->write((uint32_t*)&forMarshaling->z, sizeof(uint32_t));
244 }
245 
unmarshal_VkDispatchIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,VkDispatchIndirectCommand * forUnmarshaling)246 void unmarshal_VkDispatchIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
247                                          VkDispatchIndirectCommand* forUnmarshaling) {
248     (void)rootType;
249     vkStream->read((uint32_t*)&forUnmarshaling->x, sizeof(uint32_t));
250     vkStream->read((uint32_t*)&forUnmarshaling->y, sizeof(uint32_t));
251     vkStream->read((uint32_t*)&forUnmarshaling->z, sizeof(uint32_t));
252 }
253 
marshal_VkDrawIndexedIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,const VkDrawIndexedIndirectCommand * forMarshaling)254 void marshal_VkDrawIndexedIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
255                                           const VkDrawIndexedIndirectCommand* forMarshaling) {
256     (void)rootType;
257     vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
258     vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
259     vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
260     vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
261     vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
262 }
263 
unmarshal_VkDrawIndexedIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,VkDrawIndexedIndirectCommand * forUnmarshaling)264 void unmarshal_VkDrawIndexedIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
265                                             VkDrawIndexedIndirectCommand* forUnmarshaling) {
266     (void)rootType;
267     vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
268     vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
269     vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
270     vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
271     vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
272 }
273 
marshal_VkDrawIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,const VkDrawIndirectCommand * forMarshaling)274 void marshal_VkDrawIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
275                                    const VkDrawIndirectCommand* forMarshaling) {
276     (void)rootType;
277     vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
278     vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
279     vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
280     vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
281 }
282 
unmarshal_VkDrawIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,VkDrawIndirectCommand * forUnmarshaling)283 void unmarshal_VkDrawIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
284                                      VkDrawIndirectCommand* forUnmarshaling) {
285     (void)rootType;
286     vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
287     vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
288     vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
289     vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
290 }
291 
marshal_VkImageSubresourceRange(VulkanStream * vkStream,VkStructureType rootType,const VkImageSubresourceRange * forMarshaling)292 void marshal_VkImageSubresourceRange(VulkanStream* vkStream, VkStructureType rootType,
293                                      const VkImageSubresourceRange* forMarshaling) {
294     (void)rootType;
295     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
296     vkStream->write((uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
297     vkStream->write((uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
298     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
299     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
300 }
301 
unmarshal_VkImageSubresourceRange(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresourceRange * forUnmarshaling)302 void unmarshal_VkImageSubresourceRange(VulkanStream* vkStream, VkStructureType rootType,
303                                        VkImageSubresourceRange* forUnmarshaling) {
304     (void)rootType;
305     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
306     vkStream->read((uint32_t*)&forUnmarshaling->baseMipLevel, sizeof(uint32_t));
307     vkStream->read((uint32_t*)&forUnmarshaling->levelCount, sizeof(uint32_t));
308     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
309     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
310 }
311 
marshal_VkImageMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,const VkImageMemoryBarrier * forMarshaling)312 void marshal_VkImageMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
313                                   const VkImageMemoryBarrier* forMarshaling) {
314     (void)rootType;
315     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
316     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
317         rootType = forMarshaling->sType;
318     }
319     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
320     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
321     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
322     vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
323     vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
324     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
325     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
326     uint64_t cgen_var_0;
327     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
328     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
329     marshal_VkImageSubresourceRange(vkStream, rootType,
330                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
331 }
332 
unmarshal_VkImageMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,VkImageMemoryBarrier * forUnmarshaling)333 void unmarshal_VkImageMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
334                                     VkImageMemoryBarrier* forUnmarshaling) {
335     (void)rootType;
336     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
337     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
338         rootType = forUnmarshaling->sType;
339     }
340     size_t pNext_size;
341     pNext_size = vkStream->getBe32();
342     forUnmarshaling->pNext = nullptr;
343     if (pNext_size) {
344         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
345         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
346         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
347         vkStream->alloc((void**)&forUnmarshaling->pNext,
348                         goldfish_vk_extension_struct_size_with_stream_features(
349                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
350         *(VkStructureType*)forUnmarshaling->pNext = extType;
351         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
352     }
353     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
354     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
355     vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
356     vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
357     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
358     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
359     uint64_t cgen_var_0;
360     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
361     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
362                                                       (VkImage*)&forUnmarshaling->image, 1);
363     unmarshal_VkImageSubresourceRange(
364         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
365 }
366 
marshal_VkMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryBarrier * forMarshaling)367 void marshal_VkMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
368                              const VkMemoryBarrier* forMarshaling) {
369     (void)rootType;
370     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
371     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
372         rootType = forMarshaling->sType;
373     }
374     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
375     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
376     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
377 }
378 
unmarshal_VkMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,VkMemoryBarrier * forUnmarshaling)379 void unmarshal_VkMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
380                                VkMemoryBarrier* forUnmarshaling) {
381     (void)rootType;
382     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
383     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
384         rootType = forUnmarshaling->sType;
385     }
386     size_t pNext_size;
387     pNext_size = vkStream->getBe32();
388     forUnmarshaling->pNext = nullptr;
389     if (pNext_size) {
390         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
391         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
392         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
393         vkStream->alloc((void**)&forUnmarshaling->pNext,
394                         goldfish_vk_extension_struct_size_with_stream_features(
395                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
396         *(VkStructureType*)forUnmarshaling->pNext = extType;
397         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
398     }
399     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
400     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
401 }
402 
marshal_VkPipelineCacheHeaderVersionOne(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCacheHeaderVersionOne * forMarshaling)403 void marshal_VkPipelineCacheHeaderVersionOne(VulkanStream* vkStream, VkStructureType rootType,
404                                              const VkPipelineCacheHeaderVersionOne* forMarshaling) {
405     (void)rootType;
406     vkStream->write((uint32_t*)&forMarshaling->headerSize, sizeof(uint32_t));
407     vkStream->write((VkPipelineCacheHeaderVersion*)&forMarshaling->headerVersion,
408                     sizeof(VkPipelineCacheHeaderVersion));
409     vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
410     vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
411     vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
412 }
413 
unmarshal_VkPipelineCacheHeaderVersionOne(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCacheHeaderVersionOne * forUnmarshaling)414 void unmarshal_VkPipelineCacheHeaderVersionOne(VulkanStream* vkStream, VkStructureType rootType,
415                                                VkPipelineCacheHeaderVersionOne* forUnmarshaling) {
416     (void)rootType;
417     vkStream->read((uint32_t*)&forUnmarshaling->headerSize, sizeof(uint32_t));
418     vkStream->read((VkPipelineCacheHeaderVersion*)&forUnmarshaling->headerVersion,
419                    sizeof(VkPipelineCacheHeaderVersion));
420     vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
421     vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
422     vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
423 }
424 
marshal_VkAllocationCallbacks(VulkanStream * vkStream,VkStructureType rootType,const VkAllocationCallbacks * forMarshaling)425 void marshal_VkAllocationCallbacks(VulkanStream* vkStream, VkStructureType rootType,
426                                    const VkAllocationCallbacks* forMarshaling) {
427     (void)rootType;
428     // WARNING PTR CHECK
429     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
430     vkStream->putBe64(cgen_var_0);
431     if (forMarshaling->pUserData) {
432         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
433     }
434     uint64_t cgen_var_1 = (uint64_t)forMarshaling->pfnAllocation;
435     vkStream->putBe64(cgen_var_1);
436     uint64_t cgen_var_2 = (uint64_t)forMarshaling->pfnReallocation;
437     vkStream->putBe64(cgen_var_2);
438     uint64_t cgen_var_3 = (uint64_t)forMarshaling->pfnFree;
439     vkStream->putBe64(cgen_var_3);
440     uint64_t cgen_var_4 = (uint64_t)forMarshaling->pfnInternalAllocation;
441     vkStream->putBe64(cgen_var_4);
442     uint64_t cgen_var_5 = (uint64_t)forMarshaling->pfnInternalFree;
443     vkStream->putBe64(cgen_var_5);
444 }
445 
unmarshal_VkAllocationCallbacks(VulkanStream * vkStream,VkStructureType rootType,VkAllocationCallbacks * forUnmarshaling)446 void unmarshal_VkAllocationCallbacks(VulkanStream* vkStream, VkStructureType rootType,
447                                      VkAllocationCallbacks* forUnmarshaling) {
448     (void)rootType;
449     // WARNING PTR CHECK
450     forUnmarshaling->pUserData = (void*)(uintptr_t)vkStream->getBe64();
451     if (forUnmarshaling->pUserData) {
452         vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
453         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
454     }
455     forUnmarshaling->pfnAllocation = (PFN_vkAllocationFunction)vkStream->getBe64();
456     forUnmarshaling->pfnReallocation = (PFN_vkReallocationFunction)vkStream->getBe64();
457     forUnmarshaling->pfnFree = (PFN_vkFreeFunction)vkStream->getBe64();
458     forUnmarshaling->pfnInternalAllocation =
459         (PFN_vkInternalAllocationNotification)vkStream->getBe64();
460     forUnmarshaling->pfnInternalFree = (PFN_vkInternalFreeNotification)vkStream->getBe64();
461 }
462 
marshal_VkApplicationInfo(VulkanStream * vkStream,VkStructureType rootType,const VkApplicationInfo * forMarshaling)463 void marshal_VkApplicationInfo(VulkanStream* vkStream, VkStructureType rootType,
464                                const VkApplicationInfo* forMarshaling) {
465     (void)rootType;
466     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
467     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
468         rootType = forMarshaling->sType;
469     }
470     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
471     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
472         // WARNING PTR CHECK
473         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationName;
474         vkStream->putBe64(cgen_var_0);
475         if (forMarshaling->pApplicationName) {
476             vkStream->putString(forMarshaling->pApplicationName);
477         }
478     } else {
479         vkStream->putString(forMarshaling->pApplicationName);
480     }
481     vkStream->write((uint32_t*)&forMarshaling->applicationVersion, sizeof(uint32_t));
482     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
483         // WARNING PTR CHECK
484         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
485         vkStream->putBe64(cgen_var_0);
486         if (forMarshaling->pEngineName) {
487             vkStream->putString(forMarshaling->pEngineName);
488         }
489     } else {
490         vkStream->putString(forMarshaling->pEngineName);
491     }
492     vkStream->write((uint32_t*)&forMarshaling->engineVersion, sizeof(uint32_t));
493     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
494 }
495 
unmarshal_VkApplicationInfo(VulkanStream * vkStream,VkStructureType rootType,VkApplicationInfo * forUnmarshaling)496 void unmarshal_VkApplicationInfo(VulkanStream* vkStream, VkStructureType rootType,
497                                  VkApplicationInfo* forUnmarshaling) {
498     (void)rootType;
499     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
500     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
501         rootType = forUnmarshaling->sType;
502     }
503     size_t pNext_size;
504     pNext_size = vkStream->getBe32();
505     forUnmarshaling->pNext = nullptr;
506     if (pNext_size) {
507         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
508         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
509         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
510         vkStream->alloc((void**)&forUnmarshaling->pNext,
511                         goldfish_vk_extension_struct_size_with_stream_features(
512                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
513         *(VkStructureType*)forUnmarshaling->pNext = extType;
514         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
515     }
516     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
517         // WARNING PTR CHECK
518         forUnmarshaling->pApplicationName = (const char*)(uintptr_t)vkStream->getBe64();
519         if (forUnmarshaling->pApplicationName) {
520             vkStream->loadStringInPlace((char**)&forUnmarshaling->pApplicationName);
521         }
522     } else {
523         vkStream->loadStringInPlace((char**)&forUnmarshaling->pApplicationName);
524     }
525     vkStream->read((uint32_t*)&forUnmarshaling->applicationVersion, sizeof(uint32_t));
526     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
527         // WARNING PTR CHECK
528         forUnmarshaling->pEngineName = (const char*)(uintptr_t)vkStream->getBe64();
529         if (forUnmarshaling->pEngineName) {
530             vkStream->loadStringInPlace((char**)&forUnmarshaling->pEngineName);
531         }
532     } else {
533         vkStream->loadStringInPlace((char**)&forUnmarshaling->pEngineName);
534     }
535     vkStream->read((uint32_t*)&forUnmarshaling->engineVersion, sizeof(uint32_t));
536     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
537 }
538 
marshal_VkFormatProperties(VulkanStream * vkStream,VkStructureType rootType,const VkFormatProperties * forMarshaling)539 void marshal_VkFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
540                                 const VkFormatProperties* forMarshaling) {
541     (void)rootType;
542     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures,
543                     sizeof(VkFormatFeatureFlags));
544     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures,
545                     sizeof(VkFormatFeatureFlags));
546     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->bufferFeatures,
547                     sizeof(VkFormatFeatureFlags));
548 }
549 
unmarshal_VkFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkFormatProperties * forUnmarshaling)550 void unmarshal_VkFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
551                                   VkFormatProperties* forUnmarshaling) {
552     (void)rootType;
553     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures,
554                    sizeof(VkFormatFeatureFlags));
555     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->optimalTilingFeatures,
556                    sizeof(VkFormatFeatureFlags));
557     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->bufferFeatures,
558                    sizeof(VkFormatFeatureFlags));
559 }
560 
marshal_VkImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,const VkImageFormatProperties * forMarshaling)561 void marshal_VkImageFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
562                                      const VkImageFormatProperties* forMarshaling) {
563     (void)rootType;
564     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->maxExtent));
565     vkStream->write((uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
566     vkStream->write((uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
567     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
568     vkStream->write((VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
569 }
570 
unmarshal_VkImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkImageFormatProperties * forUnmarshaling)571 void unmarshal_VkImageFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
572                                        VkImageFormatProperties* forUnmarshaling) {
573     (void)rootType;
574     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->maxExtent));
575     vkStream->read((uint32_t*)&forUnmarshaling->maxMipLevels, sizeof(uint32_t));
576     vkStream->read((uint32_t*)&forUnmarshaling->maxArrayLayers, sizeof(uint32_t));
577     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
578     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxResourceSize, sizeof(VkDeviceSize));
579 }
580 
marshal_VkInstanceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkInstanceCreateInfo * forMarshaling)581 void marshal_VkInstanceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
582                                   const VkInstanceCreateInfo* forMarshaling) {
583     (void)rootType;
584     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
585     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
586         rootType = forMarshaling->sType;
587     }
588     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
589     vkStream->write((VkInstanceCreateFlags*)&forMarshaling->flags, sizeof(VkInstanceCreateFlags));
590     // WARNING PTR CHECK
591     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
592     vkStream->putBe64(cgen_var_0);
593     if (forMarshaling->pApplicationInfo) {
594         marshal_VkApplicationInfo(vkStream, rootType,
595                                   (const VkApplicationInfo*)(forMarshaling->pApplicationInfo));
596     }
597     vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
598     saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
599     vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
600     saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames,
601                     forMarshaling->enabledExtensionCount);
602 }
603 
unmarshal_VkInstanceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkInstanceCreateInfo * forUnmarshaling)604 void unmarshal_VkInstanceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
605                                     VkInstanceCreateInfo* forUnmarshaling) {
606     (void)rootType;
607     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
608     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
609         rootType = forUnmarshaling->sType;
610     }
611     size_t pNext_size;
612     pNext_size = vkStream->getBe32();
613     forUnmarshaling->pNext = nullptr;
614     if (pNext_size) {
615         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
616         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
617         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
618         vkStream->alloc((void**)&forUnmarshaling->pNext,
619                         goldfish_vk_extension_struct_size_with_stream_features(
620                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
621         *(VkStructureType*)forUnmarshaling->pNext = extType;
622         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
623     }
624     vkStream->read((VkInstanceCreateFlags*)&forUnmarshaling->flags, sizeof(VkInstanceCreateFlags));
625     // WARNING PTR CHECK
626     forUnmarshaling->pApplicationInfo = (const VkApplicationInfo*)(uintptr_t)vkStream->getBe64();
627     if (forUnmarshaling->pApplicationInfo) {
628         vkStream->alloc((void**)&forUnmarshaling->pApplicationInfo,
629                         sizeof(const VkApplicationInfo));
630         unmarshal_VkApplicationInfo(vkStream, rootType,
631                                     (VkApplicationInfo*)(forUnmarshaling->pApplicationInfo));
632     }
633     vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
634     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
635     vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
636     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
637 }
638 
marshal_VkMemoryHeap(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryHeap * forMarshaling)639 void marshal_VkMemoryHeap(VulkanStream* vkStream, VkStructureType rootType,
640                           const VkMemoryHeap* forMarshaling) {
641     (void)rootType;
642     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
643     vkStream->write((VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
644 }
645 
unmarshal_VkMemoryHeap(VulkanStream * vkStream,VkStructureType rootType,VkMemoryHeap * forUnmarshaling)646 void unmarshal_VkMemoryHeap(VulkanStream* vkStream, VkStructureType rootType,
647                             VkMemoryHeap* forUnmarshaling) {
648     (void)rootType;
649     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
650     vkStream->read((VkMemoryHeapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryHeapFlags));
651 }
652 
marshal_VkMemoryType(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryType * forMarshaling)653 void marshal_VkMemoryType(VulkanStream* vkStream, VkStructureType rootType,
654                           const VkMemoryType* forMarshaling) {
655     (void)rootType;
656     vkStream->write((VkMemoryPropertyFlags*)&forMarshaling->propertyFlags,
657                     sizeof(VkMemoryPropertyFlags));
658     vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
659 }
660 
unmarshal_VkMemoryType(VulkanStream * vkStream,VkStructureType rootType,VkMemoryType * forUnmarshaling)661 void unmarshal_VkMemoryType(VulkanStream* vkStream, VkStructureType rootType,
662                             VkMemoryType* forUnmarshaling) {
663     (void)rootType;
664     vkStream->read((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags,
665                    sizeof(VkMemoryPropertyFlags));
666     vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
667 }
668 
marshal_VkPhysicalDeviceFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFeatures * forMarshaling)669 void marshal_VkPhysicalDeviceFeatures(VulkanStream* vkStream, VkStructureType rootType,
670                                       const VkPhysicalDeviceFeatures* forMarshaling) {
671     (void)rootType;
672     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess, sizeof(VkBool32));
673     vkStream->write((VkBool32*)&forMarshaling->fullDrawIndexUint32, sizeof(VkBool32));
674     vkStream->write((VkBool32*)&forMarshaling->imageCubeArray, sizeof(VkBool32));
675     vkStream->write((VkBool32*)&forMarshaling->independentBlend, sizeof(VkBool32));
676     vkStream->write((VkBool32*)&forMarshaling->geometryShader, sizeof(VkBool32));
677     vkStream->write((VkBool32*)&forMarshaling->tessellationShader, sizeof(VkBool32));
678     vkStream->write((VkBool32*)&forMarshaling->sampleRateShading, sizeof(VkBool32));
679     vkStream->write((VkBool32*)&forMarshaling->dualSrcBlend, sizeof(VkBool32));
680     vkStream->write((VkBool32*)&forMarshaling->logicOp, sizeof(VkBool32));
681     vkStream->write((VkBool32*)&forMarshaling->multiDrawIndirect, sizeof(VkBool32));
682     vkStream->write((VkBool32*)&forMarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
683     vkStream->write((VkBool32*)&forMarshaling->depthClamp, sizeof(VkBool32));
684     vkStream->write((VkBool32*)&forMarshaling->depthBiasClamp, sizeof(VkBool32));
685     vkStream->write((VkBool32*)&forMarshaling->fillModeNonSolid, sizeof(VkBool32));
686     vkStream->write((VkBool32*)&forMarshaling->depthBounds, sizeof(VkBool32));
687     vkStream->write((VkBool32*)&forMarshaling->wideLines, sizeof(VkBool32));
688     vkStream->write((VkBool32*)&forMarshaling->largePoints, sizeof(VkBool32));
689     vkStream->write((VkBool32*)&forMarshaling->alphaToOne, sizeof(VkBool32));
690     vkStream->write((VkBool32*)&forMarshaling->multiViewport, sizeof(VkBool32));
691     vkStream->write((VkBool32*)&forMarshaling->samplerAnisotropy, sizeof(VkBool32));
692     vkStream->write((VkBool32*)&forMarshaling->textureCompressionETC2, sizeof(VkBool32));
693     vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
694     vkStream->write((VkBool32*)&forMarshaling->textureCompressionBC, sizeof(VkBool32));
695     vkStream->write((VkBool32*)&forMarshaling->occlusionQueryPrecise, sizeof(VkBool32));
696     vkStream->write((VkBool32*)&forMarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
697     vkStream->write((VkBool32*)&forMarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
698     vkStream->write((VkBool32*)&forMarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
699     vkStream->write((VkBool32*)&forMarshaling->shaderTessellationAndGeometryPointSize,
700                     sizeof(VkBool32));
701     vkStream->write((VkBool32*)&forMarshaling->shaderImageGatherExtended, sizeof(VkBool32));
702     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageExtendedFormats, sizeof(VkBool32));
703     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
704     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageReadWithoutFormat,
705                     sizeof(VkBool32));
706     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageWriteWithoutFormat,
707                     sizeof(VkBool32));
708     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayDynamicIndexing,
709                     sizeof(VkBool32));
710     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayDynamicIndexing,
711                     sizeof(VkBool32));
712     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayDynamicIndexing,
713                     sizeof(VkBool32));
714     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayDynamicIndexing,
715                     sizeof(VkBool32));
716     vkStream->write((VkBool32*)&forMarshaling->shaderClipDistance, sizeof(VkBool32));
717     vkStream->write((VkBool32*)&forMarshaling->shaderCullDistance, sizeof(VkBool32));
718     vkStream->write((VkBool32*)&forMarshaling->shaderFloat64, sizeof(VkBool32));
719     vkStream->write((VkBool32*)&forMarshaling->shaderInt64, sizeof(VkBool32));
720     vkStream->write((VkBool32*)&forMarshaling->shaderInt16, sizeof(VkBool32));
721     vkStream->write((VkBool32*)&forMarshaling->shaderResourceResidency, sizeof(VkBool32));
722     vkStream->write((VkBool32*)&forMarshaling->shaderResourceMinLod, sizeof(VkBool32));
723     vkStream->write((VkBool32*)&forMarshaling->sparseBinding, sizeof(VkBool32));
724     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyBuffer, sizeof(VkBool32));
725     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage2D, sizeof(VkBool32));
726     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage3D, sizeof(VkBool32));
727     vkStream->write((VkBool32*)&forMarshaling->sparseResidency2Samples, sizeof(VkBool32));
728     vkStream->write((VkBool32*)&forMarshaling->sparseResidency4Samples, sizeof(VkBool32));
729     vkStream->write((VkBool32*)&forMarshaling->sparseResidency8Samples, sizeof(VkBool32));
730     vkStream->write((VkBool32*)&forMarshaling->sparseResidency16Samples, sizeof(VkBool32));
731     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyAliased, sizeof(VkBool32));
732     vkStream->write((VkBool32*)&forMarshaling->variableMultisampleRate, sizeof(VkBool32));
733     vkStream->write((VkBool32*)&forMarshaling->inheritedQueries, sizeof(VkBool32));
734 }
735 
unmarshal_VkPhysicalDeviceFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFeatures * forUnmarshaling)736 void unmarshal_VkPhysicalDeviceFeatures(VulkanStream* vkStream, VkStructureType rootType,
737                                         VkPhysicalDeviceFeatures* forUnmarshaling) {
738     (void)rootType;
739     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess, sizeof(VkBool32));
740     vkStream->read((VkBool32*)&forUnmarshaling->fullDrawIndexUint32, sizeof(VkBool32));
741     vkStream->read((VkBool32*)&forUnmarshaling->imageCubeArray, sizeof(VkBool32));
742     vkStream->read((VkBool32*)&forUnmarshaling->independentBlend, sizeof(VkBool32));
743     vkStream->read((VkBool32*)&forUnmarshaling->geometryShader, sizeof(VkBool32));
744     vkStream->read((VkBool32*)&forUnmarshaling->tessellationShader, sizeof(VkBool32));
745     vkStream->read((VkBool32*)&forUnmarshaling->sampleRateShading, sizeof(VkBool32));
746     vkStream->read((VkBool32*)&forUnmarshaling->dualSrcBlend, sizeof(VkBool32));
747     vkStream->read((VkBool32*)&forUnmarshaling->logicOp, sizeof(VkBool32));
748     vkStream->read((VkBool32*)&forUnmarshaling->multiDrawIndirect, sizeof(VkBool32));
749     vkStream->read((VkBool32*)&forUnmarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
750     vkStream->read((VkBool32*)&forUnmarshaling->depthClamp, sizeof(VkBool32));
751     vkStream->read((VkBool32*)&forUnmarshaling->depthBiasClamp, sizeof(VkBool32));
752     vkStream->read((VkBool32*)&forUnmarshaling->fillModeNonSolid, sizeof(VkBool32));
753     vkStream->read((VkBool32*)&forUnmarshaling->depthBounds, sizeof(VkBool32));
754     vkStream->read((VkBool32*)&forUnmarshaling->wideLines, sizeof(VkBool32));
755     vkStream->read((VkBool32*)&forUnmarshaling->largePoints, sizeof(VkBool32));
756     vkStream->read((VkBool32*)&forUnmarshaling->alphaToOne, sizeof(VkBool32));
757     vkStream->read((VkBool32*)&forUnmarshaling->multiViewport, sizeof(VkBool32));
758     vkStream->read((VkBool32*)&forUnmarshaling->samplerAnisotropy, sizeof(VkBool32));
759     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionETC2, sizeof(VkBool32));
760     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
761     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionBC, sizeof(VkBool32));
762     vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryPrecise, sizeof(VkBool32));
763     vkStream->read((VkBool32*)&forUnmarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
764     vkStream->read((VkBool32*)&forUnmarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
765     vkStream->read((VkBool32*)&forUnmarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
766     vkStream->read((VkBool32*)&forUnmarshaling->shaderTessellationAndGeometryPointSize,
767                    sizeof(VkBool32));
768     vkStream->read((VkBool32*)&forUnmarshaling->shaderImageGatherExtended, sizeof(VkBool32));
769     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageExtendedFormats,
770                    sizeof(VkBool32));
771     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
772     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageReadWithoutFormat,
773                    sizeof(VkBool32));
774     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageWriteWithoutFormat,
775                    sizeof(VkBool32));
776     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayDynamicIndexing,
777                    sizeof(VkBool32));
778     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayDynamicIndexing,
779                    sizeof(VkBool32));
780     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayDynamicIndexing,
781                    sizeof(VkBool32));
782     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayDynamicIndexing,
783                    sizeof(VkBool32));
784     vkStream->read((VkBool32*)&forUnmarshaling->shaderClipDistance, sizeof(VkBool32));
785     vkStream->read((VkBool32*)&forUnmarshaling->shaderCullDistance, sizeof(VkBool32));
786     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat64, sizeof(VkBool32));
787     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt64, sizeof(VkBool32));
788     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt16, sizeof(VkBool32));
789     vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceResidency, sizeof(VkBool32));
790     vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceMinLod, sizeof(VkBool32));
791     vkStream->read((VkBool32*)&forUnmarshaling->sparseBinding, sizeof(VkBool32));
792     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyBuffer, sizeof(VkBool32));
793     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage2D, sizeof(VkBool32));
794     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage3D, sizeof(VkBool32));
795     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency2Samples, sizeof(VkBool32));
796     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency4Samples, sizeof(VkBool32));
797     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency8Samples, sizeof(VkBool32));
798     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency16Samples, sizeof(VkBool32));
799     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyAliased, sizeof(VkBool32));
800     vkStream->read((VkBool32*)&forUnmarshaling->variableMultisampleRate, sizeof(VkBool32));
801     vkStream->read((VkBool32*)&forUnmarshaling->inheritedQueries, sizeof(VkBool32));
802 }
803 
marshal_VkPhysicalDeviceLimits(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceLimits * forMarshaling)804 void marshal_VkPhysicalDeviceLimits(VulkanStream* vkStream, VkStructureType rootType,
805                                     const VkPhysicalDeviceLimits* forMarshaling) {
806     (void)rootType;
807     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension1D, sizeof(uint32_t));
808     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension2D, sizeof(uint32_t));
809     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension3D, sizeof(uint32_t));
810     vkStream->write((uint32_t*)&forMarshaling->maxImageDimensionCube, sizeof(uint32_t));
811     vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
812     vkStream->write((uint32_t*)&forMarshaling->maxTexelBufferElements, sizeof(uint32_t));
813     vkStream->write((uint32_t*)&forMarshaling->maxUniformBufferRange, sizeof(uint32_t));
814     vkStream->write((uint32_t*)&forMarshaling->maxStorageBufferRange, sizeof(uint32_t));
815     vkStream->write((uint32_t*)&forMarshaling->maxPushConstantsSize, sizeof(uint32_t));
816     vkStream->write((uint32_t*)&forMarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
817     vkStream->write((uint32_t*)&forMarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
818     vkStream->write((VkDeviceSize*)&forMarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
819     vkStream->write((VkDeviceSize*)&forMarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
820     vkStream->write((uint32_t*)&forMarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
821     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
822     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUniformBuffers,
823                     sizeof(uint32_t));
824     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageBuffers,
825                     sizeof(uint32_t));
826     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSampledImages,
827                     sizeof(uint32_t));
828     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageImages,
829                     sizeof(uint32_t));
830     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInputAttachments,
831                     sizeof(uint32_t));
832     vkStream->write((uint32_t*)&forMarshaling->maxPerStageResources, sizeof(uint32_t));
833     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
834     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
835     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffersDynamic,
836                     sizeof(uint32_t));
837     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
838     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffersDynamic,
839                     sizeof(uint32_t));
840     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
841     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
842     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
843     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributes, sizeof(uint32_t));
844     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindings, sizeof(uint32_t));
845     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
846     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
847     vkStream->write((uint32_t*)&forMarshaling->maxVertexOutputComponents, sizeof(uint32_t));
848     vkStream->write((uint32_t*)&forMarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
849     vkStream->write((uint32_t*)&forMarshaling->maxTessellationPatchSize, sizeof(uint32_t));
850     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexInputComponents,
851                     sizeof(uint32_t));
852     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexOutputComponents,
853                     sizeof(uint32_t));
854     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerPatchOutputComponents,
855                     sizeof(uint32_t));
856     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlTotalOutputComponents,
857                     sizeof(uint32_t));
858     vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationInputComponents,
859                     sizeof(uint32_t));
860     vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationOutputComponents,
861                     sizeof(uint32_t));
862     vkStream->write((uint32_t*)&forMarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
863     vkStream->write((uint32_t*)&forMarshaling->maxGeometryInputComponents, sizeof(uint32_t));
864     vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
865     vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
866     vkStream->write((uint32_t*)&forMarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
867     vkStream->write((uint32_t*)&forMarshaling->maxFragmentInputComponents, sizeof(uint32_t));
868     vkStream->write((uint32_t*)&forMarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
869     vkStream->write((uint32_t*)&forMarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
870     vkStream->write((uint32_t*)&forMarshaling->maxFragmentCombinedOutputResources,
871                     sizeof(uint32_t));
872     vkStream->write((uint32_t*)&forMarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
873     vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
874     vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
875     vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
876     vkStream->write((uint32_t*)&forMarshaling->subPixelPrecisionBits, sizeof(uint32_t));
877     vkStream->write((uint32_t*)&forMarshaling->subTexelPrecisionBits, sizeof(uint32_t));
878     vkStream->write((uint32_t*)&forMarshaling->mipmapPrecisionBits, sizeof(uint32_t));
879     vkStream->write((uint32_t*)&forMarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
880     vkStream->write((uint32_t*)&forMarshaling->maxDrawIndirectCount, sizeof(uint32_t));
881     vkStream->write((float*)&forMarshaling->maxSamplerLodBias, sizeof(float));
882     vkStream->write((float*)&forMarshaling->maxSamplerAnisotropy, sizeof(float));
883     vkStream->write((uint32_t*)&forMarshaling->maxViewports, sizeof(uint32_t));
884     vkStream->write((uint32_t*)forMarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
885     vkStream->write((float*)forMarshaling->viewportBoundsRange, 2 * sizeof(float));
886     vkStream->write((uint32_t*)&forMarshaling->viewportSubPixelBits, sizeof(uint32_t));
887     uint64_t cgen_var_0 = (uint64_t)forMarshaling->minMemoryMapAlignment;
888     vkStream->putBe64(cgen_var_0);
889     vkStream->write((VkDeviceSize*)&forMarshaling->minTexelBufferOffsetAlignment,
890                     sizeof(VkDeviceSize));
891     vkStream->write((VkDeviceSize*)&forMarshaling->minUniformBufferOffsetAlignment,
892                     sizeof(VkDeviceSize));
893     vkStream->write((VkDeviceSize*)&forMarshaling->minStorageBufferOffsetAlignment,
894                     sizeof(VkDeviceSize));
895     vkStream->write((int32_t*)&forMarshaling->minTexelOffset, sizeof(int32_t));
896     vkStream->write((uint32_t*)&forMarshaling->maxTexelOffset, sizeof(uint32_t));
897     vkStream->write((int32_t*)&forMarshaling->minTexelGatherOffset, sizeof(int32_t));
898     vkStream->write((uint32_t*)&forMarshaling->maxTexelGatherOffset, sizeof(uint32_t));
899     vkStream->write((float*)&forMarshaling->minInterpolationOffset, sizeof(float));
900     vkStream->write((float*)&forMarshaling->maxInterpolationOffset, sizeof(float));
901     vkStream->write((uint32_t*)&forMarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
902     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferWidth, sizeof(uint32_t));
903     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferHeight, sizeof(uint32_t));
904     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferLayers, sizeof(uint32_t));
905     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferColorSampleCounts,
906                     sizeof(VkSampleCountFlags));
907     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferDepthSampleCounts,
908                     sizeof(VkSampleCountFlags));
909     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferStencilSampleCounts,
910                     sizeof(VkSampleCountFlags));
911     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferNoAttachmentsSampleCounts,
912                     sizeof(VkSampleCountFlags));
913     vkStream->write((uint32_t*)&forMarshaling->maxColorAttachments, sizeof(uint32_t));
914     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageColorSampleCounts,
915                     sizeof(VkSampleCountFlags));
916     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageIntegerSampleCounts,
917                     sizeof(VkSampleCountFlags));
918     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageDepthSampleCounts,
919                     sizeof(VkSampleCountFlags));
920     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageStencilSampleCounts,
921                     sizeof(VkSampleCountFlags));
922     vkStream->write((VkSampleCountFlags*)&forMarshaling->storageImageSampleCounts,
923                     sizeof(VkSampleCountFlags));
924     vkStream->write((uint32_t*)&forMarshaling->maxSampleMaskWords, sizeof(uint32_t));
925     vkStream->write((VkBool32*)&forMarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
926     vkStream->write((float*)&forMarshaling->timestampPeriod, sizeof(float));
927     vkStream->write((uint32_t*)&forMarshaling->maxClipDistances, sizeof(uint32_t));
928     vkStream->write((uint32_t*)&forMarshaling->maxCullDistances, sizeof(uint32_t));
929     vkStream->write((uint32_t*)&forMarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
930     vkStream->write((uint32_t*)&forMarshaling->discreteQueuePriorities, sizeof(uint32_t));
931     vkStream->write((float*)forMarshaling->pointSizeRange, 2 * sizeof(float));
932     vkStream->write((float*)forMarshaling->lineWidthRange, 2 * sizeof(float));
933     vkStream->write((float*)&forMarshaling->pointSizeGranularity, sizeof(float));
934     vkStream->write((float*)&forMarshaling->lineWidthGranularity, sizeof(float));
935     vkStream->write((VkBool32*)&forMarshaling->strictLines, sizeof(VkBool32));
936     vkStream->write((VkBool32*)&forMarshaling->standardSampleLocations, sizeof(VkBool32));
937     vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyOffsetAlignment,
938                     sizeof(VkDeviceSize));
939     vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyRowPitchAlignment,
940                     sizeof(VkDeviceSize));
941     vkStream->write((VkDeviceSize*)&forMarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
942 }
943 
unmarshal_VkPhysicalDeviceLimits(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLimits * forUnmarshaling)944 void unmarshal_VkPhysicalDeviceLimits(VulkanStream* vkStream, VkStructureType rootType,
945                                       VkPhysicalDeviceLimits* forUnmarshaling) {
946     (void)rootType;
947     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension1D, sizeof(uint32_t));
948     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension2D, sizeof(uint32_t));
949     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension3D, sizeof(uint32_t));
950     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimensionCube, sizeof(uint32_t));
951     vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
952     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelBufferElements, sizeof(uint32_t));
953     vkStream->read((uint32_t*)&forUnmarshaling->maxUniformBufferRange, sizeof(uint32_t));
954     vkStream->read((uint32_t*)&forUnmarshaling->maxStorageBufferRange, sizeof(uint32_t));
955     vkStream->read((uint32_t*)&forUnmarshaling->maxPushConstantsSize, sizeof(uint32_t));
956     vkStream->read((uint32_t*)&forUnmarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
957     vkStream->read((uint32_t*)&forUnmarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
958     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
959     vkStream->read((VkDeviceSize*)&forUnmarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
960     vkStream->read((uint32_t*)&forUnmarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
961     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
962     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUniformBuffers,
963                    sizeof(uint32_t));
964     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageBuffers,
965                    sizeof(uint32_t));
966     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSampledImages,
967                    sizeof(uint32_t));
968     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageImages,
969                    sizeof(uint32_t));
970     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInputAttachments,
971                    sizeof(uint32_t));
972     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageResources, sizeof(uint32_t));
973     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
974     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
975     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffersDynamic,
976                    sizeof(uint32_t));
977     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
978     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffersDynamic,
979                    sizeof(uint32_t));
980     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
981     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
982     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
983     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributes, sizeof(uint32_t));
984     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindings, sizeof(uint32_t));
985     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
986     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
987     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexOutputComponents, sizeof(uint32_t));
988     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
989     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationPatchSize, sizeof(uint32_t));
990     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexInputComponents,
991                    sizeof(uint32_t));
992     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexOutputComponents,
993                    sizeof(uint32_t));
994     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerPatchOutputComponents,
995                    sizeof(uint32_t));
996     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlTotalOutputComponents,
997                    sizeof(uint32_t));
998     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationInputComponents,
999                    sizeof(uint32_t));
1000     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationOutputComponents,
1001                    sizeof(uint32_t));
1002     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
1003     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryInputComponents, sizeof(uint32_t));
1004     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
1005     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
1006     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
1007     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentInputComponents, sizeof(uint32_t));
1008     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
1009     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
1010     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentCombinedOutputResources,
1011                    sizeof(uint32_t));
1012     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
1013     vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
1014     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
1015     vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
1016     vkStream->read((uint32_t*)&forUnmarshaling->subPixelPrecisionBits, sizeof(uint32_t));
1017     vkStream->read((uint32_t*)&forUnmarshaling->subTexelPrecisionBits, sizeof(uint32_t));
1018     vkStream->read((uint32_t*)&forUnmarshaling->mipmapPrecisionBits, sizeof(uint32_t));
1019     vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
1020     vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndirectCount, sizeof(uint32_t));
1021     vkStream->read((float*)&forUnmarshaling->maxSamplerLodBias, sizeof(float));
1022     vkStream->read((float*)&forUnmarshaling->maxSamplerAnisotropy, sizeof(float));
1023     vkStream->read((uint32_t*)&forUnmarshaling->maxViewports, sizeof(uint32_t));
1024     vkStream->read((uint32_t*)forUnmarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
1025     vkStream->read((float*)forUnmarshaling->viewportBoundsRange, 2 * sizeof(float));
1026     vkStream->read((uint32_t*)&forUnmarshaling->viewportSubPixelBits, sizeof(uint32_t));
1027     forUnmarshaling->minMemoryMapAlignment = (size_t)vkStream->getBe64();
1028     vkStream->read((VkDeviceSize*)&forUnmarshaling->minTexelBufferOffsetAlignment,
1029                    sizeof(VkDeviceSize));
1030     vkStream->read((VkDeviceSize*)&forUnmarshaling->minUniformBufferOffsetAlignment,
1031                    sizeof(VkDeviceSize));
1032     vkStream->read((VkDeviceSize*)&forUnmarshaling->minStorageBufferOffsetAlignment,
1033                    sizeof(VkDeviceSize));
1034     vkStream->read((int32_t*)&forUnmarshaling->minTexelOffset, sizeof(int32_t));
1035     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelOffset, sizeof(uint32_t));
1036     vkStream->read((int32_t*)&forUnmarshaling->minTexelGatherOffset, sizeof(int32_t));
1037     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelGatherOffset, sizeof(uint32_t));
1038     vkStream->read((float*)&forUnmarshaling->minInterpolationOffset, sizeof(float));
1039     vkStream->read((float*)&forUnmarshaling->maxInterpolationOffset, sizeof(float));
1040     vkStream->read((uint32_t*)&forUnmarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
1041     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferWidth, sizeof(uint32_t));
1042     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferHeight, sizeof(uint32_t));
1043     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferLayers, sizeof(uint32_t));
1044     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferColorSampleCounts,
1045                    sizeof(VkSampleCountFlags));
1046     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferDepthSampleCounts,
1047                    sizeof(VkSampleCountFlags));
1048     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferStencilSampleCounts,
1049                    sizeof(VkSampleCountFlags));
1050     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferNoAttachmentsSampleCounts,
1051                    sizeof(VkSampleCountFlags));
1052     vkStream->read((uint32_t*)&forUnmarshaling->maxColorAttachments, sizeof(uint32_t));
1053     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageColorSampleCounts,
1054                    sizeof(VkSampleCountFlags));
1055     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageIntegerSampleCounts,
1056                    sizeof(VkSampleCountFlags));
1057     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageDepthSampleCounts,
1058                    sizeof(VkSampleCountFlags));
1059     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageStencilSampleCounts,
1060                    sizeof(VkSampleCountFlags));
1061     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->storageImageSampleCounts,
1062                    sizeof(VkSampleCountFlags));
1063     vkStream->read((uint32_t*)&forUnmarshaling->maxSampleMaskWords, sizeof(uint32_t));
1064     vkStream->read((VkBool32*)&forUnmarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
1065     vkStream->read((float*)&forUnmarshaling->timestampPeriod, sizeof(float));
1066     vkStream->read((uint32_t*)&forUnmarshaling->maxClipDistances, sizeof(uint32_t));
1067     vkStream->read((uint32_t*)&forUnmarshaling->maxCullDistances, sizeof(uint32_t));
1068     vkStream->read((uint32_t*)&forUnmarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
1069     vkStream->read((uint32_t*)&forUnmarshaling->discreteQueuePriorities, sizeof(uint32_t));
1070     vkStream->read((float*)forUnmarshaling->pointSizeRange, 2 * sizeof(float));
1071     vkStream->read((float*)forUnmarshaling->lineWidthRange, 2 * sizeof(float));
1072     vkStream->read((float*)&forUnmarshaling->pointSizeGranularity, sizeof(float));
1073     vkStream->read((float*)&forUnmarshaling->lineWidthGranularity, sizeof(float));
1074     vkStream->read((VkBool32*)&forUnmarshaling->strictLines, sizeof(VkBool32));
1075     vkStream->read((VkBool32*)&forUnmarshaling->standardSampleLocations, sizeof(VkBool32));
1076     vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyOffsetAlignment,
1077                    sizeof(VkDeviceSize));
1078     vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyRowPitchAlignment,
1079                    sizeof(VkDeviceSize));
1080     vkStream->read((VkDeviceSize*)&forUnmarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
1081 }
1082 
marshal_VkPhysicalDeviceMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties * forMarshaling)1083 void marshal_VkPhysicalDeviceMemoryProperties(
1084     VulkanStream* vkStream, VkStructureType rootType,
1085     const VkPhysicalDeviceMemoryProperties* forMarshaling) {
1086     (void)rootType;
1087     vkStream->write((uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
1088     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
1089         marshal_VkMemoryType(vkStream, rootType, (VkMemoryType*)(forMarshaling->memoryTypes + i));
1090     }
1091     vkStream->write((uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
1092     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
1093         marshal_VkMemoryHeap(vkStream, rootType, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i));
1094     }
1095 }
1096 
unmarshal_VkPhysicalDeviceMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryProperties * forUnmarshaling)1097 void unmarshal_VkPhysicalDeviceMemoryProperties(VulkanStream* vkStream, VkStructureType rootType,
1098                                                 VkPhysicalDeviceMemoryProperties* forUnmarshaling) {
1099     (void)rootType;
1100     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeCount, sizeof(uint32_t));
1101     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
1102         unmarshal_VkMemoryType(vkStream, rootType,
1103                                (VkMemoryType*)(forUnmarshaling->memoryTypes + i));
1104     }
1105     vkStream->read((uint32_t*)&forUnmarshaling->memoryHeapCount, sizeof(uint32_t));
1106     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
1107         unmarshal_VkMemoryHeap(vkStream, rootType,
1108                                (VkMemoryHeap*)(forUnmarshaling->memoryHeaps + i));
1109     }
1110 }
1111 
marshal_VkPhysicalDeviceSparseProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSparseProperties * forMarshaling)1112 void marshal_VkPhysicalDeviceSparseProperties(
1113     VulkanStream* vkStream, VkStructureType rootType,
1114     const VkPhysicalDeviceSparseProperties* forMarshaling) {
1115     (void)rootType;
1116     vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
1117     vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DMultisampleBlockShape,
1118                     sizeof(VkBool32));
1119     vkStream->write((VkBool32*)&forMarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
1120     vkStream->write((VkBool32*)&forMarshaling->residencyAlignedMipSize, sizeof(VkBool32));
1121     vkStream->write((VkBool32*)&forMarshaling->residencyNonResidentStrict, sizeof(VkBool32));
1122 }
1123 
unmarshal_VkPhysicalDeviceSparseProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSparseProperties * forUnmarshaling)1124 void unmarshal_VkPhysicalDeviceSparseProperties(VulkanStream* vkStream, VkStructureType rootType,
1125                                                 VkPhysicalDeviceSparseProperties* forUnmarshaling) {
1126     (void)rootType;
1127     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
1128     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DMultisampleBlockShape,
1129                    sizeof(VkBool32));
1130     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
1131     vkStream->read((VkBool32*)&forUnmarshaling->residencyAlignedMipSize, sizeof(VkBool32));
1132     vkStream->read((VkBool32*)&forUnmarshaling->residencyNonResidentStrict, sizeof(VkBool32));
1133 }
1134 
marshal_VkPhysicalDeviceProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceProperties * forMarshaling)1135 void marshal_VkPhysicalDeviceProperties(VulkanStream* vkStream, VkStructureType rootType,
1136                                         const VkPhysicalDeviceProperties* forMarshaling) {
1137     (void)rootType;
1138     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
1139     vkStream->write((uint32_t*)&forMarshaling->driverVersion, sizeof(uint32_t));
1140     vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
1141     vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
1142     vkStream->write((VkPhysicalDeviceType*)&forMarshaling->deviceType,
1143                     sizeof(VkPhysicalDeviceType));
1144     vkStream->write((char*)forMarshaling->deviceName,
1145                     VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
1146     vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
1147     marshal_VkPhysicalDeviceLimits(vkStream, rootType,
1148                                    (VkPhysicalDeviceLimits*)(&forMarshaling->limits));
1149     marshal_VkPhysicalDeviceSparseProperties(
1150         vkStream, rootType, (VkPhysicalDeviceSparseProperties*)(&forMarshaling->sparseProperties));
1151 }
1152 
unmarshal_VkPhysicalDeviceProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProperties * forUnmarshaling)1153 void unmarshal_VkPhysicalDeviceProperties(VulkanStream* vkStream, VkStructureType rootType,
1154                                           VkPhysicalDeviceProperties* forUnmarshaling) {
1155     (void)rootType;
1156     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
1157     vkStream->read((uint32_t*)&forUnmarshaling->driverVersion, sizeof(uint32_t));
1158     vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
1159     vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
1160     vkStream->read((VkPhysicalDeviceType*)&forUnmarshaling->deviceType,
1161                    sizeof(VkPhysicalDeviceType));
1162     vkStream->read((char*)forUnmarshaling->deviceName,
1163                    VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
1164     vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
1165     unmarshal_VkPhysicalDeviceLimits(vkStream, rootType,
1166                                      (VkPhysicalDeviceLimits*)(&forUnmarshaling->limits));
1167     unmarshal_VkPhysicalDeviceSparseProperties(
1168         vkStream, rootType,
1169         (VkPhysicalDeviceSparseProperties*)(&forUnmarshaling->sparseProperties));
1170 }
1171 
marshal_VkQueueFamilyProperties(VulkanStream * vkStream,VkStructureType rootType,const VkQueueFamilyProperties * forMarshaling)1172 void marshal_VkQueueFamilyProperties(VulkanStream* vkStream, VkStructureType rootType,
1173                                      const VkQueueFamilyProperties* forMarshaling) {
1174     (void)rootType;
1175     vkStream->write((VkQueueFlags*)&forMarshaling->queueFlags, sizeof(VkQueueFlags));
1176     vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
1177     vkStream->write((uint32_t*)&forMarshaling->timestampValidBits, sizeof(uint32_t));
1178     marshal_VkExtent3D(vkStream, rootType,
1179                        (VkExtent3D*)(&forMarshaling->minImageTransferGranularity));
1180 }
1181 
unmarshal_VkQueueFamilyProperties(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyProperties * forUnmarshaling)1182 void unmarshal_VkQueueFamilyProperties(VulkanStream* vkStream, VkStructureType rootType,
1183                                        VkQueueFamilyProperties* forUnmarshaling) {
1184     (void)rootType;
1185     vkStream->read((VkQueueFlags*)&forUnmarshaling->queueFlags, sizeof(VkQueueFlags));
1186     vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
1187     vkStream->read((uint32_t*)&forUnmarshaling->timestampValidBits, sizeof(uint32_t));
1188     unmarshal_VkExtent3D(vkStream, rootType,
1189                          (VkExtent3D*)(&forUnmarshaling->minImageTransferGranularity));
1190 }
1191 
marshal_VkDeviceQueueCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceQueueCreateInfo * forMarshaling)1192 void marshal_VkDeviceQueueCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1193                                      const VkDeviceQueueCreateInfo* forMarshaling) {
1194     (void)rootType;
1195     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1196     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1197         rootType = forMarshaling->sType;
1198     }
1199     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1200     vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags,
1201                     sizeof(VkDeviceQueueCreateFlags));
1202     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
1203     vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
1204     vkStream->write((const float*)forMarshaling->pQueuePriorities,
1205                     forMarshaling->queueCount * sizeof(const float));
1206 }
1207 
unmarshal_VkDeviceQueueCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceQueueCreateInfo * forUnmarshaling)1208 void unmarshal_VkDeviceQueueCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1209                                        VkDeviceQueueCreateInfo* forUnmarshaling) {
1210     (void)rootType;
1211     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1212     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1213         rootType = forUnmarshaling->sType;
1214     }
1215     size_t pNext_size;
1216     pNext_size = vkStream->getBe32();
1217     forUnmarshaling->pNext = nullptr;
1218     if (pNext_size) {
1219         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1220         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1221         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1222         vkStream->alloc((void**)&forUnmarshaling->pNext,
1223                         goldfish_vk_extension_struct_size_with_stream_features(
1224                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1225         *(VkStructureType*)forUnmarshaling->pNext = extType;
1226         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1227     }
1228     vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags,
1229                    sizeof(VkDeviceQueueCreateFlags));
1230     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
1231     vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
1232     vkStream->alloc((void**)&forUnmarshaling->pQueuePriorities,
1233                     forUnmarshaling->queueCount * sizeof(const float));
1234     vkStream->read((float*)forUnmarshaling->pQueuePriorities,
1235                    forUnmarshaling->queueCount * sizeof(const float));
1236 }
1237 
marshal_VkDeviceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceCreateInfo * forMarshaling)1238 void marshal_VkDeviceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1239                                 const VkDeviceCreateInfo* forMarshaling) {
1240     (void)rootType;
1241     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1243         rootType = forMarshaling->sType;
1244     }
1245     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1246     vkStream->write((VkDeviceCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceCreateFlags));
1247     vkStream->write((uint32_t*)&forMarshaling->queueCreateInfoCount, sizeof(uint32_t));
1248     if (forMarshaling) {
1249         for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueCreateInfoCount; ++i) {
1250             marshal_VkDeviceQueueCreateInfo(
1251                 vkStream, rootType,
1252                 (const VkDeviceQueueCreateInfo*)(forMarshaling->pQueueCreateInfos + i));
1253         }
1254     }
1255     vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
1256     saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
1257     vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
1258     saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames,
1259                     forMarshaling->enabledExtensionCount);
1260     // WARNING PTR CHECK
1261     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
1262     vkStream->putBe64(cgen_var_0);
1263     if (forMarshaling->pEnabledFeatures) {
1264         marshal_VkPhysicalDeviceFeatures(
1265             vkStream, rootType, (const VkPhysicalDeviceFeatures*)(forMarshaling->pEnabledFeatures));
1266     }
1267 }
1268 
unmarshal_VkDeviceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceCreateInfo * forUnmarshaling)1269 void unmarshal_VkDeviceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1270                                   VkDeviceCreateInfo* forUnmarshaling) {
1271     (void)rootType;
1272     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1273     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1274         rootType = forUnmarshaling->sType;
1275     }
1276     size_t pNext_size;
1277     pNext_size = vkStream->getBe32();
1278     forUnmarshaling->pNext = nullptr;
1279     if (pNext_size) {
1280         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1281         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1282         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1283         vkStream->alloc((void**)&forUnmarshaling->pNext,
1284                         goldfish_vk_extension_struct_size_with_stream_features(
1285                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1286         *(VkStructureType*)forUnmarshaling->pNext = extType;
1287         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1288     }
1289     vkStream->read((VkDeviceCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceCreateFlags));
1290     vkStream->read((uint32_t*)&forUnmarshaling->queueCreateInfoCount, sizeof(uint32_t));
1291     vkStream->alloc((void**)&forUnmarshaling->pQueueCreateInfos,
1292                     forUnmarshaling->queueCreateInfoCount * sizeof(const VkDeviceQueueCreateInfo));
1293     if (forUnmarshaling) {
1294         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueCreateInfoCount; ++i) {
1295             unmarshal_VkDeviceQueueCreateInfo(
1296                 vkStream, rootType,
1297                 (VkDeviceQueueCreateInfo*)(forUnmarshaling->pQueueCreateInfos + i));
1298         }
1299     }
1300     vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
1301     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
1302     vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
1303     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
1304     // WARNING PTR CHECK
1305     forUnmarshaling->pEnabledFeatures =
1306         (const VkPhysicalDeviceFeatures*)(uintptr_t)vkStream->getBe64();
1307     if (forUnmarshaling->pEnabledFeatures) {
1308         vkStream->alloc((void**)&forUnmarshaling->pEnabledFeatures,
1309                         sizeof(const VkPhysicalDeviceFeatures));
1310         unmarshal_VkPhysicalDeviceFeatures(
1311             vkStream, rootType, (VkPhysicalDeviceFeatures*)(forUnmarshaling->pEnabledFeatures));
1312     }
1313 }
1314 
marshal_VkExtensionProperties(VulkanStream * vkStream,VkStructureType rootType,const VkExtensionProperties * forMarshaling)1315 void marshal_VkExtensionProperties(VulkanStream* vkStream, VkStructureType rootType,
1316                                    const VkExtensionProperties* forMarshaling) {
1317     (void)rootType;
1318     vkStream->write((char*)forMarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1319     vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
1320 }
1321 
unmarshal_VkExtensionProperties(VulkanStream * vkStream,VkStructureType rootType,VkExtensionProperties * forUnmarshaling)1322 void unmarshal_VkExtensionProperties(VulkanStream* vkStream, VkStructureType rootType,
1323                                      VkExtensionProperties* forUnmarshaling) {
1324     (void)rootType;
1325     vkStream->read((char*)forUnmarshaling->extensionName,
1326                    VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1327     vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
1328 }
1329 
marshal_VkLayerProperties(VulkanStream * vkStream,VkStructureType rootType,const VkLayerProperties * forMarshaling)1330 void marshal_VkLayerProperties(VulkanStream* vkStream, VkStructureType rootType,
1331                                const VkLayerProperties* forMarshaling) {
1332     (void)rootType;
1333     vkStream->write((char*)forMarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1334     vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
1335     vkStream->write((uint32_t*)&forMarshaling->implementationVersion, sizeof(uint32_t));
1336     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
1337 }
1338 
unmarshal_VkLayerProperties(VulkanStream * vkStream,VkStructureType rootType,VkLayerProperties * forUnmarshaling)1339 void unmarshal_VkLayerProperties(VulkanStream* vkStream, VkStructureType rootType,
1340                                  VkLayerProperties* forUnmarshaling) {
1341     (void)rootType;
1342     vkStream->read((char*)forUnmarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1343     vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
1344     vkStream->read((uint32_t*)&forUnmarshaling->implementationVersion, sizeof(uint32_t));
1345     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
1346 }
1347 
marshal_VkSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSubmitInfo * forMarshaling)1348 void marshal_VkSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
1349                           const VkSubmitInfo* forMarshaling) {
1350     (void)rootType;
1351     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1352     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1353         rootType = forMarshaling->sType;
1354     }
1355     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1356     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1357     if (forMarshaling->waitSemaphoreCount) {
1358         uint64_t* cgen_var_0;
1359         vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1360         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1361             forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
1362         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1363     }
1364     vkStream->write((const VkPipelineStageFlags*)forMarshaling->pWaitDstStageMask,
1365                     forMarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1366     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
1367     if (forMarshaling->commandBufferCount) {
1368         uint64_t* cgen_var_1;
1369         vkStream->alloc((void**)&cgen_var_1, forMarshaling->commandBufferCount * 8);
1370         vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(
1371             forMarshaling->pCommandBuffers, cgen_var_1, forMarshaling->commandBufferCount);
1372         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->commandBufferCount * 8);
1373     }
1374     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1375     if (forMarshaling->signalSemaphoreCount) {
1376         uint64_t* cgen_var_2;
1377         vkStream->alloc((void**)&cgen_var_2, forMarshaling->signalSemaphoreCount * 8);
1378         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1379             forMarshaling->pSignalSemaphores, cgen_var_2, forMarshaling->signalSemaphoreCount);
1380         vkStream->write((uint64_t*)cgen_var_2, forMarshaling->signalSemaphoreCount * 8);
1381     }
1382 }
1383 
unmarshal_VkSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkSubmitInfo * forUnmarshaling)1384 void unmarshal_VkSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
1385                             VkSubmitInfo* forUnmarshaling) {
1386     (void)rootType;
1387     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1388     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1389         rootType = forUnmarshaling->sType;
1390     }
1391     size_t pNext_size;
1392     pNext_size = vkStream->getBe32();
1393     forUnmarshaling->pNext = nullptr;
1394     if (pNext_size) {
1395         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1396         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1397         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1398         vkStream->alloc((void**)&forUnmarshaling->pNext,
1399                         goldfish_vk_extension_struct_size_with_stream_features(
1400                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1401         *(VkStructureType*)forUnmarshaling->pNext = extType;
1402         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1403     }
1404     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
1405     vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphores,
1406                     forUnmarshaling->waitSemaphoreCount * sizeof(const VkSemaphore));
1407     if (forUnmarshaling->waitSemaphoreCount) {
1408         uint64_t* cgen_var_0;
1409         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1410         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1411         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1412             cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores,
1413             forUnmarshaling->waitSemaphoreCount);
1414     }
1415     vkStream->alloc((void**)&forUnmarshaling->pWaitDstStageMask,
1416                     forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1417     vkStream->read((VkPipelineStageFlags*)forUnmarshaling->pWaitDstStageMask,
1418                    forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1419     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
1420     vkStream->alloc((void**)&forUnmarshaling->pCommandBuffers,
1421                     forUnmarshaling->commandBufferCount * sizeof(const VkCommandBuffer));
1422     if (forUnmarshaling->commandBufferCount) {
1423         uint64_t* cgen_var_1;
1424         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->commandBufferCount * 8);
1425         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->commandBufferCount * 8);
1426         vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(
1427             cgen_var_1, (VkCommandBuffer*)forUnmarshaling->pCommandBuffers,
1428             forUnmarshaling->commandBufferCount);
1429     }
1430     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
1431     vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphores,
1432                     forUnmarshaling->signalSemaphoreCount * sizeof(const VkSemaphore));
1433     if (forUnmarshaling->signalSemaphoreCount) {
1434         uint64_t* cgen_var_2;
1435         vkStream->alloc((void**)&cgen_var_2, forUnmarshaling->signalSemaphoreCount * 8);
1436         vkStream->read((uint64_t*)cgen_var_2, forUnmarshaling->signalSemaphoreCount * 8);
1437         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1438             cgen_var_2, (VkSemaphore*)forUnmarshaling->pSignalSemaphores,
1439             forUnmarshaling->signalSemaphoreCount);
1440     }
1441 }
1442 
marshal_VkMappedMemoryRange(VulkanStream * vkStream,VkStructureType rootType,const VkMappedMemoryRange * forMarshaling)1443 void marshal_VkMappedMemoryRange(VulkanStream* vkStream, VkStructureType rootType,
1444                                  const VkMappedMemoryRange* forMarshaling) {
1445     (void)rootType;
1446     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1447     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1448         rootType = forMarshaling->sType;
1449     }
1450     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1451     uint64_t cgen_var_0;
1452     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
1453                                                              1);
1454     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1455     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1456     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1457 }
1458 
unmarshal_VkMappedMemoryRange(VulkanStream * vkStream,VkStructureType rootType,VkMappedMemoryRange * forUnmarshaling)1459 void unmarshal_VkMappedMemoryRange(VulkanStream* vkStream, VkStructureType rootType,
1460                                    VkMappedMemoryRange* forUnmarshaling) {
1461     (void)rootType;
1462     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1463     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1464         rootType = forUnmarshaling->sType;
1465     }
1466     size_t pNext_size;
1467     pNext_size = vkStream->getBe32();
1468     forUnmarshaling->pNext = nullptr;
1469     if (pNext_size) {
1470         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1471         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1472         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1473         vkStream->alloc((void**)&forUnmarshaling->pNext,
1474                         goldfish_vk_extension_struct_size_with_stream_features(
1475                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1476         *(VkStructureType*)forUnmarshaling->pNext = extType;
1477         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1478     }
1479     uint64_t cgen_var_0;
1480     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1481     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
1482         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1483     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1484     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1485 }
1486 
marshal_VkMemoryAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryAllocateInfo * forMarshaling)1487 void marshal_VkMemoryAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
1488                                   const VkMemoryAllocateInfo* forMarshaling) {
1489     (void)rootType;
1490     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1491     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1492         rootType = forMarshaling->sType;
1493     }
1494     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1495     vkStream->write((VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
1496     vkStream->write((uint32_t*)&forMarshaling->memoryTypeIndex, sizeof(uint32_t));
1497 }
1498 
unmarshal_VkMemoryAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryAllocateInfo * forUnmarshaling)1499 void unmarshal_VkMemoryAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
1500                                     VkMemoryAllocateInfo* forUnmarshaling) {
1501     (void)rootType;
1502     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1503     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1504         rootType = forUnmarshaling->sType;
1505     }
1506     size_t pNext_size;
1507     pNext_size = vkStream->getBe32();
1508     forUnmarshaling->pNext = nullptr;
1509     if (pNext_size) {
1510         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1511         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1512         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1513         vkStream->alloc((void**)&forUnmarshaling->pNext,
1514                         goldfish_vk_extension_struct_size_with_stream_features(
1515                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1516         *(VkStructureType*)forUnmarshaling->pNext = extType;
1517         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1518     }
1519     vkStream->read((VkDeviceSize*)&forUnmarshaling->allocationSize, sizeof(VkDeviceSize));
1520     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeIndex, sizeof(uint32_t));
1521 }
1522 
marshal_VkMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryRequirements * forMarshaling)1523 void marshal_VkMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
1524                                   const VkMemoryRequirements* forMarshaling) {
1525     (void)rootType;
1526     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1527     vkStream->write((VkDeviceSize*)&forMarshaling->alignment, sizeof(VkDeviceSize));
1528     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
1529 }
1530 
unmarshal_VkMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkMemoryRequirements * forUnmarshaling)1531 void unmarshal_VkMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
1532                                     VkMemoryRequirements* forUnmarshaling) {
1533     (void)rootType;
1534     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1535     vkStream->read((VkDeviceSize*)&forUnmarshaling->alignment, sizeof(VkDeviceSize));
1536     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
1537 }
1538 
marshal_VkSparseMemoryBind(VulkanStream * vkStream,VkStructureType rootType,const VkSparseMemoryBind * forMarshaling)1539 void marshal_VkSparseMemoryBind(VulkanStream* vkStream, VkStructureType rootType,
1540                                 const VkSparseMemoryBind* forMarshaling) {
1541     (void)rootType;
1542     vkStream->write((VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
1543     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1544     uint64_t cgen_var_0;
1545     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
1546                                                              1);
1547     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1548     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1549     vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags,
1550                     sizeof(VkSparseMemoryBindFlags));
1551 }
1552 
unmarshal_VkSparseMemoryBind(VulkanStream * vkStream,VkStructureType rootType,VkSparseMemoryBind * forUnmarshaling)1553 void unmarshal_VkSparseMemoryBind(VulkanStream* vkStream, VkStructureType rootType,
1554                                   VkSparseMemoryBind* forUnmarshaling) {
1555     (void)rootType;
1556     vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceOffset, sizeof(VkDeviceSize));
1557     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1558     uint64_t cgen_var_0;
1559     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1560     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
1561         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1562     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1563     vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags,
1564                    sizeof(VkSparseMemoryBindFlags));
1565 }
1566 
marshal_VkSparseBufferMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSparseBufferMemoryBindInfo * forMarshaling)1567 void marshal_VkSparseBufferMemoryBindInfo(VulkanStream* vkStream, VkStructureType rootType,
1568                                           const VkSparseBufferMemoryBindInfo* forMarshaling) {
1569     (void)rootType;
1570     uint64_t cgen_var_0;
1571     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
1572     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1573     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1574     if (forMarshaling) {
1575         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1576             marshal_VkSparseMemoryBind(vkStream, rootType,
1577                                        (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1578         }
1579     }
1580 }
1581 
unmarshal_VkSparseBufferMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,VkSparseBufferMemoryBindInfo * forUnmarshaling)1582 void unmarshal_VkSparseBufferMemoryBindInfo(VulkanStream* vkStream, VkStructureType rootType,
1583                                             VkSparseBufferMemoryBindInfo* forUnmarshaling) {
1584     (void)rootType;
1585     uint64_t cgen_var_0;
1586     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1587     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
1588                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
1589     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1590     vkStream->alloc((void**)&forUnmarshaling->pBinds,
1591                     forUnmarshaling->bindCount * sizeof(const VkSparseMemoryBind));
1592     if (forUnmarshaling) {
1593         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1594             unmarshal_VkSparseMemoryBind(vkStream, rootType,
1595                                          (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1596         }
1597     }
1598 }
1599 
marshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSparseImageOpaqueMemoryBindInfo * forMarshaling)1600 void marshal_VkSparseImageOpaqueMemoryBindInfo(
1601     VulkanStream* vkStream, VkStructureType rootType,
1602     const VkSparseImageOpaqueMemoryBindInfo* forMarshaling) {
1603     (void)rootType;
1604     uint64_t cgen_var_0;
1605     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
1606     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1607     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1608     if (forMarshaling) {
1609         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1610             marshal_VkSparseMemoryBind(vkStream, rootType,
1611                                        (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1612         }
1613     }
1614 }
1615 
unmarshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageOpaqueMemoryBindInfo * forUnmarshaling)1616 void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
1617     VulkanStream* vkStream, VkStructureType rootType,
1618     VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling) {
1619     (void)rootType;
1620     uint64_t cgen_var_0;
1621     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1622     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
1623                                                       (VkImage*)&forUnmarshaling->image, 1);
1624     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1625     vkStream->alloc((void**)&forUnmarshaling->pBinds,
1626                     forUnmarshaling->bindCount * sizeof(const VkSparseMemoryBind));
1627     if (forUnmarshaling) {
1628         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1629             unmarshal_VkSparseMemoryBind(vkStream, rootType,
1630                                          (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1631         }
1632     }
1633 }
1634 
marshal_VkImageSubresource(VulkanStream * vkStream,VkStructureType rootType,const VkImageSubresource * forMarshaling)1635 void marshal_VkImageSubresource(VulkanStream* vkStream, VkStructureType rootType,
1636                                 const VkImageSubresource* forMarshaling) {
1637     (void)rootType;
1638     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1639     vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
1640     vkStream->write((uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
1641 }
1642 
unmarshal_VkImageSubresource(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresource * forUnmarshaling)1643 void unmarshal_VkImageSubresource(VulkanStream* vkStream, VkStructureType rootType,
1644                                   VkImageSubresource* forUnmarshaling) {
1645     (void)rootType;
1646     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1647     vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
1648     vkStream->read((uint32_t*)&forUnmarshaling->arrayLayer, sizeof(uint32_t));
1649 }
1650 
marshal_VkSparseImageMemoryBind(VulkanStream * vkStream,VkStructureType rootType,const VkSparseImageMemoryBind * forMarshaling)1651 void marshal_VkSparseImageMemoryBind(VulkanStream* vkStream, VkStructureType rootType,
1652                                      const VkSparseImageMemoryBind* forMarshaling) {
1653     (void)rootType;
1654     marshal_VkImageSubresource(vkStream, rootType,
1655                                (VkImageSubresource*)(&forMarshaling->subresource));
1656     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->offset));
1657     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
1658     uint64_t cgen_var_0;
1659     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
1660                                                              1);
1661     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1662     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1663     vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags,
1664                     sizeof(VkSparseMemoryBindFlags));
1665 }
1666 
unmarshal_VkSparseImageMemoryBind(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryBind * forUnmarshaling)1667 void unmarshal_VkSparseImageMemoryBind(VulkanStream* vkStream, VkStructureType rootType,
1668                                        VkSparseImageMemoryBind* forUnmarshaling) {
1669     (void)rootType;
1670     unmarshal_VkImageSubresource(vkStream, rootType,
1671                                  (VkImageSubresource*)(&forUnmarshaling->subresource));
1672     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->offset));
1673     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
1674     uint64_t cgen_var_0;
1675     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1676     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
1677         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1678     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1679     vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags,
1680                    sizeof(VkSparseMemoryBindFlags));
1681 }
1682 
marshal_VkSparseImageMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSparseImageMemoryBindInfo * forMarshaling)1683 void marshal_VkSparseImageMemoryBindInfo(VulkanStream* vkStream, VkStructureType rootType,
1684                                          const VkSparseImageMemoryBindInfo* forMarshaling) {
1685     (void)rootType;
1686     uint64_t cgen_var_0;
1687     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
1688     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1689     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1690     if (forMarshaling) {
1691         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1692             marshal_VkSparseImageMemoryBind(
1693                 vkStream, rootType, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i));
1694         }
1695     }
1696 }
1697 
unmarshal_VkSparseImageMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryBindInfo * forUnmarshaling)1698 void unmarshal_VkSparseImageMemoryBindInfo(VulkanStream* vkStream, VkStructureType rootType,
1699                                            VkSparseImageMemoryBindInfo* forUnmarshaling) {
1700     (void)rootType;
1701     uint64_t cgen_var_0;
1702     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1703     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
1704                                                       (VkImage*)&forUnmarshaling->image, 1);
1705     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1706     vkStream->alloc((void**)&forUnmarshaling->pBinds,
1707                     forUnmarshaling->bindCount * sizeof(const VkSparseImageMemoryBind));
1708     if (forUnmarshaling) {
1709         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1710             unmarshal_VkSparseImageMemoryBind(
1711                 vkStream, rootType, (VkSparseImageMemoryBind*)(forUnmarshaling->pBinds + i));
1712         }
1713     }
1714 }
1715 
marshal_VkBindSparseInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBindSparseInfo * forMarshaling)1716 void marshal_VkBindSparseInfo(VulkanStream* vkStream, VkStructureType rootType,
1717                               const VkBindSparseInfo* forMarshaling) {
1718     (void)rootType;
1719     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1720     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1721         rootType = forMarshaling->sType;
1722     }
1723     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1724     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1725     if (forMarshaling->waitSemaphoreCount) {
1726         uint64_t* cgen_var_0;
1727         vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1728         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1729             forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
1730         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1731     }
1732     vkStream->write((uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
1733     if (forMarshaling) {
1734         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i) {
1735             marshal_VkSparseBufferMemoryBindInfo(
1736                 vkStream, rootType,
1737                 (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i));
1738         }
1739     }
1740     vkStream->write((uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1741     if (forMarshaling) {
1742         for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i) {
1743             marshal_VkSparseImageOpaqueMemoryBindInfo(
1744                 vkStream, rootType,
1745                 (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i));
1746         }
1747     }
1748     vkStream->write((uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
1749     if (forMarshaling) {
1750         for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i) {
1751             marshal_VkSparseImageMemoryBindInfo(
1752                 vkStream, rootType,
1753                 (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i));
1754         }
1755     }
1756     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1757     if (forMarshaling->signalSemaphoreCount) {
1758         uint64_t* cgen_var_1;
1759         vkStream->alloc((void**)&cgen_var_1, forMarshaling->signalSemaphoreCount * 8);
1760         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1761             forMarshaling->pSignalSemaphores, cgen_var_1, forMarshaling->signalSemaphoreCount);
1762         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->signalSemaphoreCount * 8);
1763     }
1764 }
1765 
unmarshal_VkBindSparseInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindSparseInfo * forUnmarshaling)1766 void unmarshal_VkBindSparseInfo(VulkanStream* vkStream, VkStructureType rootType,
1767                                 VkBindSparseInfo* forUnmarshaling) {
1768     (void)rootType;
1769     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1770     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1771         rootType = forUnmarshaling->sType;
1772     }
1773     size_t pNext_size;
1774     pNext_size = vkStream->getBe32();
1775     forUnmarshaling->pNext = nullptr;
1776     if (pNext_size) {
1777         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1778         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1779         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1780         vkStream->alloc((void**)&forUnmarshaling->pNext,
1781                         goldfish_vk_extension_struct_size_with_stream_features(
1782                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1783         *(VkStructureType*)forUnmarshaling->pNext = extType;
1784         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1785     }
1786     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
1787     vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphores,
1788                     forUnmarshaling->waitSemaphoreCount * sizeof(const VkSemaphore));
1789     if (forUnmarshaling->waitSemaphoreCount) {
1790         uint64_t* cgen_var_0;
1791         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1792         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1793         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1794             cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores,
1795             forUnmarshaling->waitSemaphoreCount);
1796     }
1797     vkStream->read((uint32_t*)&forUnmarshaling->bufferBindCount, sizeof(uint32_t));
1798     vkStream->alloc((void**)&forUnmarshaling->pBufferBinds,
1799                     forUnmarshaling->bufferBindCount * sizeof(const VkSparseBufferMemoryBindInfo));
1800     if (forUnmarshaling) {
1801         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferBindCount; ++i) {
1802             unmarshal_VkSparseBufferMemoryBindInfo(
1803                 vkStream, rootType,
1804                 (VkSparseBufferMemoryBindInfo*)(forUnmarshaling->pBufferBinds + i));
1805         }
1806     }
1807     vkStream->read((uint32_t*)&forUnmarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1808     vkStream->alloc(
1809         (void**)&forUnmarshaling->pImageOpaqueBinds,
1810         forUnmarshaling->imageOpaqueBindCount * sizeof(const VkSparseImageOpaqueMemoryBindInfo));
1811     if (forUnmarshaling) {
1812         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageOpaqueBindCount; ++i) {
1813             unmarshal_VkSparseImageOpaqueMemoryBindInfo(
1814                 vkStream, rootType,
1815                 (VkSparseImageOpaqueMemoryBindInfo*)(forUnmarshaling->pImageOpaqueBinds + i));
1816         }
1817     }
1818     vkStream->read((uint32_t*)&forUnmarshaling->imageBindCount, sizeof(uint32_t));
1819     vkStream->alloc((void**)&forUnmarshaling->pImageBinds,
1820                     forUnmarshaling->imageBindCount * sizeof(const VkSparseImageMemoryBindInfo));
1821     if (forUnmarshaling) {
1822         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageBindCount; ++i) {
1823             unmarshal_VkSparseImageMemoryBindInfo(
1824                 vkStream, rootType,
1825                 (VkSparseImageMemoryBindInfo*)(forUnmarshaling->pImageBinds + i));
1826         }
1827     }
1828     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
1829     vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphores,
1830                     forUnmarshaling->signalSemaphoreCount * sizeof(const VkSemaphore));
1831     if (forUnmarshaling->signalSemaphoreCount) {
1832         uint64_t* cgen_var_1;
1833         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->signalSemaphoreCount * 8);
1834         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->signalSemaphoreCount * 8);
1835         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1836             cgen_var_1, (VkSemaphore*)forUnmarshaling->pSignalSemaphores,
1837             forUnmarshaling->signalSemaphoreCount);
1838     }
1839 }
1840 
marshal_VkSparseImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,const VkSparseImageFormatProperties * forMarshaling)1841 void marshal_VkSparseImageFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
1842                                            const VkSparseImageFormatProperties* forMarshaling) {
1843     (void)rootType;
1844     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1845     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageGranularity));
1846     vkStream->write((VkSparseImageFormatFlags*)&forMarshaling->flags,
1847                     sizeof(VkSparseImageFormatFlags));
1848 }
1849 
unmarshal_VkSparseImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageFormatProperties * forUnmarshaling)1850 void unmarshal_VkSparseImageFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
1851                                              VkSparseImageFormatProperties* forUnmarshaling) {
1852     (void)rootType;
1853     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1854     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageGranularity));
1855     vkStream->read((VkSparseImageFormatFlags*)&forUnmarshaling->flags,
1856                    sizeof(VkSparseImageFormatFlags));
1857 }
1858 
marshal_VkSparseImageMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,const VkSparseImageMemoryRequirements * forMarshaling)1859 void marshal_VkSparseImageMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
1860                                              const VkSparseImageMemoryRequirements* forMarshaling) {
1861     (void)rootType;
1862     marshal_VkSparseImageFormatProperties(
1863         vkStream, rootType, (VkSparseImageFormatProperties*)(&forMarshaling->formatProperties));
1864     vkStream->write((uint32_t*)&forMarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1865     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1866     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1867     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1868 }
1869 
unmarshal_VkSparseImageMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryRequirements * forUnmarshaling)1870 void unmarshal_VkSparseImageMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
1871                                                VkSparseImageMemoryRequirements* forUnmarshaling) {
1872     (void)rootType;
1873     unmarshal_VkSparseImageFormatProperties(
1874         vkStream, rootType, (VkSparseImageFormatProperties*)(&forUnmarshaling->formatProperties));
1875     vkStream->read((uint32_t*)&forUnmarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1876     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1877     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1878     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1879 }
1880 
marshal_VkFenceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkFenceCreateInfo * forMarshaling)1881 void marshal_VkFenceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1882                                const VkFenceCreateInfo* forMarshaling) {
1883     (void)rootType;
1884     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1885     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1886         rootType = forMarshaling->sType;
1887     }
1888     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1889     vkStream->write((VkFenceCreateFlags*)&forMarshaling->flags, sizeof(VkFenceCreateFlags));
1890 }
1891 
unmarshal_VkFenceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkFenceCreateInfo * forUnmarshaling)1892 void unmarshal_VkFenceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1893                                  VkFenceCreateInfo* forUnmarshaling) {
1894     (void)rootType;
1895     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1896     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1897         rootType = forUnmarshaling->sType;
1898     }
1899     size_t pNext_size;
1900     pNext_size = vkStream->getBe32();
1901     forUnmarshaling->pNext = nullptr;
1902     if (pNext_size) {
1903         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1904         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1905         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1906         vkStream->alloc((void**)&forUnmarshaling->pNext,
1907                         goldfish_vk_extension_struct_size_with_stream_features(
1908                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1909         *(VkStructureType*)forUnmarshaling->pNext = extType;
1910         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1911     }
1912     vkStream->read((VkFenceCreateFlags*)&forUnmarshaling->flags, sizeof(VkFenceCreateFlags));
1913 }
1914 
marshal_VkSemaphoreCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreCreateInfo * forMarshaling)1915 void marshal_VkSemaphoreCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1916                                    const VkSemaphoreCreateInfo* forMarshaling) {
1917     (void)rootType;
1918     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1919     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1920         rootType = forMarshaling->sType;
1921     }
1922     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1923     vkStream->write((VkSemaphoreCreateFlags*)&forMarshaling->flags, sizeof(VkSemaphoreCreateFlags));
1924 }
1925 
unmarshal_VkSemaphoreCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreCreateInfo * forUnmarshaling)1926 void unmarshal_VkSemaphoreCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1927                                      VkSemaphoreCreateInfo* forUnmarshaling) {
1928     (void)rootType;
1929     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1930     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1931         rootType = forUnmarshaling->sType;
1932     }
1933     size_t pNext_size;
1934     pNext_size = vkStream->getBe32();
1935     forUnmarshaling->pNext = nullptr;
1936     if (pNext_size) {
1937         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1938         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1939         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1940         vkStream->alloc((void**)&forUnmarshaling->pNext,
1941                         goldfish_vk_extension_struct_size_with_stream_features(
1942                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1943         *(VkStructureType*)forUnmarshaling->pNext = extType;
1944         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1945     }
1946     vkStream->read((VkSemaphoreCreateFlags*)&forUnmarshaling->flags,
1947                    sizeof(VkSemaphoreCreateFlags));
1948 }
1949 
marshal_VkEventCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkEventCreateInfo * forMarshaling)1950 void marshal_VkEventCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1951                                const VkEventCreateInfo* forMarshaling) {
1952     (void)rootType;
1953     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1954     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1955         rootType = forMarshaling->sType;
1956     }
1957     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1958     vkStream->write((VkEventCreateFlags*)&forMarshaling->flags, sizeof(VkEventCreateFlags));
1959 }
1960 
unmarshal_VkEventCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkEventCreateInfo * forUnmarshaling)1961 void unmarshal_VkEventCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1962                                  VkEventCreateInfo* forUnmarshaling) {
1963     (void)rootType;
1964     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1965     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1966         rootType = forUnmarshaling->sType;
1967     }
1968     size_t pNext_size;
1969     pNext_size = vkStream->getBe32();
1970     forUnmarshaling->pNext = nullptr;
1971     if (pNext_size) {
1972         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1973         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
1974         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1975         vkStream->alloc((void**)&forUnmarshaling->pNext,
1976                         goldfish_vk_extension_struct_size_with_stream_features(
1977                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1978         *(VkStructureType*)forUnmarshaling->pNext = extType;
1979         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1980     }
1981     vkStream->read((VkEventCreateFlags*)&forUnmarshaling->flags, sizeof(VkEventCreateFlags));
1982 }
1983 
marshal_VkQueryPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkQueryPoolCreateInfo * forMarshaling)1984 void marshal_VkQueryPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1985                                    const VkQueryPoolCreateInfo* forMarshaling) {
1986     (void)rootType;
1987     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1988     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1989         rootType = forMarshaling->sType;
1990     }
1991     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1992     vkStream->write((VkQueryPoolCreateFlags*)&forMarshaling->flags, sizeof(VkQueryPoolCreateFlags));
1993     vkStream->write((VkQueryType*)&forMarshaling->queryType, sizeof(VkQueryType));
1994     vkStream->write((uint32_t*)&forMarshaling->queryCount, sizeof(uint32_t));
1995     vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics,
1996                     sizeof(VkQueryPipelineStatisticFlags));
1997 }
1998 
unmarshal_VkQueryPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkQueryPoolCreateInfo * forUnmarshaling)1999 void unmarshal_VkQueryPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2000                                      VkQueryPoolCreateInfo* forUnmarshaling) {
2001     (void)rootType;
2002     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2003     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2004         rootType = forUnmarshaling->sType;
2005     }
2006     size_t pNext_size;
2007     pNext_size = vkStream->getBe32();
2008     forUnmarshaling->pNext = nullptr;
2009     if (pNext_size) {
2010         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2011         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2012         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2013         vkStream->alloc((void**)&forUnmarshaling->pNext,
2014                         goldfish_vk_extension_struct_size_with_stream_features(
2015                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2016         *(VkStructureType*)forUnmarshaling->pNext = extType;
2017         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2018     }
2019     vkStream->read((VkQueryPoolCreateFlags*)&forUnmarshaling->flags,
2020                    sizeof(VkQueryPoolCreateFlags));
2021     vkStream->read((VkQueryType*)&forUnmarshaling->queryType, sizeof(VkQueryType));
2022     vkStream->read((uint32_t*)&forUnmarshaling->queryCount, sizeof(uint32_t));
2023     vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics,
2024                    sizeof(VkQueryPipelineStatisticFlags));
2025 }
2026 
marshal_VkBufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCreateInfo * forMarshaling)2027 void marshal_VkBufferCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2028                                 const VkBufferCreateInfo* forMarshaling) {
2029     (void)rootType;
2030     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2031     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2032         rootType = forMarshaling->sType;
2033     }
2034     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2035     vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
2036     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
2037     vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
2038     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
2039     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
2040     // WARNING PTR CHECK
2041     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
2042     vkStream->putBe64(cgen_var_0);
2043     if (forMarshaling->pQueueFamilyIndices) {
2044         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
2045                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
2046     }
2047 }
2048 
unmarshal_VkBufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferCreateInfo * forUnmarshaling)2049 void unmarshal_VkBufferCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2050                                   VkBufferCreateInfo* forUnmarshaling) {
2051     (void)rootType;
2052     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2053     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2054         rootType = forUnmarshaling->sType;
2055     }
2056     size_t pNext_size;
2057     pNext_size = vkStream->getBe32();
2058     forUnmarshaling->pNext = nullptr;
2059     if (pNext_size) {
2060         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2061         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2062         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2063         vkStream->alloc((void**)&forUnmarshaling->pNext,
2064                         goldfish_vk_extension_struct_size_with_stream_features(
2065                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2066         *(VkStructureType*)forUnmarshaling->pNext = extType;
2067         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2068     }
2069     vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
2070     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
2071     vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
2072     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
2073     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
2074     // WARNING PTR CHECK
2075     forUnmarshaling->pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
2076     if (forUnmarshaling->pQueueFamilyIndices) {
2077         vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
2078                         forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
2079         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
2080                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
2081     }
2082 }
2083 
marshal_VkBufferViewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBufferViewCreateInfo * forMarshaling)2084 void marshal_VkBufferViewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2085                                     const VkBufferViewCreateInfo* forMarshaling) {
2086     (void)rootType;
2087     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2088     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2089         rootType = forMarshaling->sType;
2090     }
2091     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2092     vkStream->write((VkBufferViewCreateFlags*)&forMarshaling->flags,
2093                     sizeof(VkBufferViewCreateFlags));
2094     uint64_t cgen_var_0;
2095     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
2096     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
2097     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2098     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
2099     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
2100 }
2101 
unmarshal_VkBufferViewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferViewCreateInfo * forUnmarshaling)2102 void unmarshal_VkBufferViewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2103                                       VkBufferViewCreateInfo* forUnmarshaling) {
2104     (void)rootType;
2105     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2106     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2107         rootType = forUnmarshaling->sType;
2108     }
2109     size_t pNext_size;
2110     pNext_size = vkStream->getBe32();
2111     forUnmarshaling->pNext = nullptr;
2112     if (pNext_size) {
2113         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2114         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2115         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2116         vkStream->alloc((void**)&forUnmarshaling->pNext,
2117                         goldfish_vk_extension_struct_size_with_stream_features(
2118                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2119         *(VkStructureType*)forUnmarshaling->pNext = extType;
2120         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2121     }
2122     vkStream->read((VkBufferViewCreateFlags*)&forUnmarshaling->flags,
2123                    sizeof(VkBufferViewCreateFlags));
2124     uint64_t cgen_var_0;
2125     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
2126     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
2127                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
2128     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
2129     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
2130     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
2131 }
2132 
marshal_VkImageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkImageCreateInfo * forMarshaling)2133 void marshal_VkImageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2134                                const VkImageCreateInfo* forMarshaling) {
2135     (void)rootType;
2136     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2137     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2138         rootType = forMarshaling->sType;
2139     }
2140     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2141     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
2142     vkStream->write((VkImageType*)&forMarshaling->imageType, sizeof(VkImageType));
2143     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2144     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
2145     vkStream->write((uint32_t*)&forMarshaling->mipLevels, sizeof(uint32_t));
2146     vkStream->write((uint32_t*)&forMarshaling->arrayLayers, sizeof(uint32_t));
2147     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
2148     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
2149     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
2150     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
2151     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
2152     // WARNING PTR CHECK
2153     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
2154     vkStream->putBe64(cgen_var_0);
2155     if (forMarshaling->pQueueFamilyIndices) {
2156         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
2157                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
2158     }
2159     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
2160 }
2161 
unmarshal_VkImageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageCreateInfo * forUnmarshaling)2162 void unmarshal_VkImageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2163                                  VkImageCreateInfo* forUnmarshaling) {
2164     (void)rootType;
2165     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2166     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2167         rootType = forUnmarshaling->sType;
2168     }
2169     size_t pNext_size;
2170     pNext_size = vkStream->getBe32();
2171     forUnmarshaling->pNext = nullptr;
2172     if (pNext_size) {
2173         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2174         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2175         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2176         vkStream->alloc((void**)&forUnmarshaling->pNext,
2177                         goldfish_vk_extension_struct_size_with_stream_features(
2178                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2179         *(VkStructureType*)forUnmarshaling->pNext = extType;
2180         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2181     }
2182     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
2183     vkStream->read((VkImageType*)&forUnmarshaling->imageType, sizeof(VkImageType));
2184     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
2185     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
2186     vkStream->read((uint32_t*)&forUnmarshaling->mipLevels, sizeof(uint32_t));
2187     vkStream->read((uint32_t*)&forUnmarshaling->arrayLayers, sizeof(uint32_t));
2188     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
2189                    sizeof(VkSampleCountFlagBits));
2190     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
2191     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
2192     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
2193     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
2194     // WARNING PTR CHECK
2195     forUnmarshaling->pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
2196     if (forUnmarshaling->pQueueFamilyIndices) {
2197         vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
2198                         forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
2199         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
2200                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
2201     }
2202     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
2203 }
2204 
marshal_VkSubresourceLayout(VulkanStream * vkStream,VkStructureType rootType,const VkSubresourceLayout * forMarshaling)2205 void marshal_VkSubresourceLayout(VulkanStream* vkStream, VkStructureType rootType,
2206                                  const VkSubresourceLayout* forMarshaling) {
2207     (void)rootType;
2208     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
2209     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
2210     vkStream->write((VkDeviceSize*)&forMarshaling->rowPitch, sizeof(VkDeviceSize));
2211     vkStream->write((VkDeviceSize*)&forMarshaling->arrayPitch, sizeof(VkDeviceSize));
2212     vkStream->write((VkDeviceSize*)&forMarshaling->depthPitch, sizeof(VkDeviceSize));
2213 }
2214 
unmarshal_VkSubresourceLayout(VulkanStream * vkStream,VkStructureType rootType,VkSubresourceLayout * forUnmarshaling)2215 void unmarshal_VkSubresourceLayout(VulkanStream* vkStream, VkStructureType rootType,
2216                                    VkSubresourceLayout* forUnmarshaling) {
2217     (void)rootType;
2218     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
2219     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
2220     vkStream->read((VkDeviceSize*)&forUnmarshaling->rowPitch, sizeof(VkDeviceSize));
2221     vkStream->read((VkDeviceSize*)&forUnmarshaling->arrayPitch, sizeof(VkDeviceSize));
2222     vkStream->read((VkDeviceSize*)&forUnmarshaling->depthPitch, sizeof(VkDeviceSize));
2223 }
2224 
marshal_VkComponentMapping(VulkanStream * vkStream,VkStructureType rootType,const VkComponentMapping * forMarshaling)2225 void marshal_VkComponentMapping(VulkanStream* vkStream, VkStructureType rootType,
2226                                 const VkComponentMapping* forMarshaling) {
2227     (void)rootType;
2228     vkStream->write((VkComponentSwizzle*)&forMarshaling->r, sizeof(VkComponentSwizzle));
2229     vkStream->write((VkComponentSwizzle*)&forMarshaling->g, sizeof(VkComponentSwizzle));
2230     vkStream->write((VkComponentSwizzle*)&forMarshaling->b, sizeof(VkComponentSwizzle));
2231     vkStream->write((VkComponentSwizzle*)&forMarshaling->a, sizeof(VkComponentSwizzle));
2232 }
2233 
unmarshal_VkComponentMapping(VulkanStream * vkStream,VkStructureType rootType,VkComponentMapping * forUnmarshaling)2234 void unmarshal_VkComponentMapping(VulkanStream* vkStream, VkStructureType rootType,
2235                                   VkComponentMapping* forUnmarshaling) {
2236     (void)rootType;
2237     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->r, sizeof(VkComponentSwizzle));
2238     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->g, sizeof(VkComponentSwizzle));
2239     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->b, sizeof(VkComponentSwizzle));
2240     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->a, sizeof(VkComponentSwizzle));
2241 }
2242 
marshal_VkImageViewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewCreateInfo * forMarshaling)2243 void marshal_VkImageViewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2244                                    const VkImageViewCreateInfo* forMarshaling) {
2245     (void)rootType;
2246     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2247     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2248         rootType = forMarshaling->sType;
2249     }
2250     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2251     vkStream->write((VkImageViewCreateFlags*)&forMarshaling->flags, sizeof(VkImageViewCreateFlags));
2252     uint64_t cgen_var_0;
2253     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
2254     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
2255     vkStream->write((VkImageViewType*)&forMarshaling->viewType, sizeof(VkImageViewType));
2256     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2257     marshal_VkComponentMapping(vkStream, rootType,
2258                                (VkComponentMapping*)(&forMarshaling->components));
2259     marshal_VkImageSubresourceRange(vkStream, rootType,
2260                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
2261 }
2262 
unmarshal_VkImageViewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageViewCreateInfo * forUnmarshaling)2263 void unmarshal_VkImageViewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2264                                      VkImageViewCreateInfo* forUnmarshaling) {
2265     (void)rootType;
2266     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2267     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2268         rootType = forUnmarshaling->sType;
2269     }
2270     size_t pNext_size;
2271     pNext_size = vkStream->getBe32();
2272     forUnmarshaling->pNext = nullptr;
2273     if (pNext_size) {
2274         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2275         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2276         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2277         vkStream->alloc((void**)&forUnmarshaling->pNext,
2278                         goldfish_vk_extension_struct_size_with_stream_features(
2279                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2280         *(VkStructureType*)forUnmarshaling->pNext = extType;
2281         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2282     }
2283     vkStream->read((VkImageViewCreateFlags*)&forUnmarshaling->flags,
2284                    sizeof(VkImageViewCreateFlags));
2285     uint64_t cgen_var_0;
2286     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
2287     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
2288                                                       (VkImage*)&forUnmarshaling->image, 1);
2289     vkStream->read((VkImageViewType*)&forUnmarshaling->viewType, sizeof(VkImageViewType));
2290     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
2291     unmarshal_VkComponentMapping(vkStream, rootType,
2292                                  (VkComponentMapping*)(&forUnmarshaling->components));
2293     unmarshal_VkImageSubresourceRange(
2294         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
2295 }
2296 
marshal_VkShaderModuleCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkShaderModuleCreateInfo * forMarshaling)2297 void marshal_VkShaderModuleCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2298                                       const VkShaderModuleCreateInfo* forMarshaling) {
2299     (void)rootType;
2300     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2301     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2302         rootType = forMarshaling->sType;
2303     }
2304     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2305     vkStream->write((VkShaderModuleCreateFlags*)&forMarshaling->flags,
2306                     sizeof(VkShaderModuleCreateFlags));
2307     uint64_t cgen_var_0 = (uint64_t)forMarshaling->codeSize;
2308     vkStream->putBe64(cgen_var_0);
2309     vkStream->write((const uint32_t*)forMarshaling->pCode,
2310                     (forMarshaling->codeSize / 4) * sizeof(const uint32_t));
2311 }
2312 
unmarshal_VkShaderModuleCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkShaderModuleCreateInfo * forUnmarshaling)2313 void unmarshal_VkShaderModuleCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2314                                         VkShaderModuleCreateInfo* forUnmarshaling) {
2315     (void)rootType;
2316     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2317     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2318         rootType = forUnmarshaling->sType;
2319     }
2320     size_t pNext_size;
2321     pNext_size = vkStream->getBe32();
2322     forUnmarshaling->pNext = nullptr;
2323     if (pNext_size) {
2324         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2325         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2326         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2327         vkStream->alloc((void**)&forUnmarshaling->pNext,
2328                         goldfish_vk_extension_struct_size_with_stream_features(
2329                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2330         *(VkStructureType*)forUnmarshaling->pNext = extType;
2331         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2332     }
2333     vkStream->read((VkShaderModuleCreateFlags*)&forUnmarshaling->flags,
2334                    sizeof(VkShaderModuleCreateFlags));
2335     forUnmarshaling->codeSize = (size_t)vkStream->getBe64();
2336     vkStream->alloc((void**)&forUnmarshaling->pCode,
2337                     (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t));
2338     vkStream->read((uint32_t*)forUnmarshaling->pCode,
2339                    (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t));
2340 }
2341 
marshal_VkPipelineCacheCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCacheCreateInfo * forMarshaling)2342 void marshal_VkPipelineCacheCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2343                                        const VkPipelineCacheCreateInfo* forMarshaling) {
2344     (void)rootType;
2345     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2346     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2347         rootType = forMarshaling->sType;
2348     }
2349     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2350     vkStream->write((VkPipelineCacheCreateFlags*)&forMarshaling->flags,
2351                     sizeof(VkPipelineCacheCreateFlags));
2352     uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
2353     vkStream->putBe64(cgen_var_0);
2354     vkStream->write((const void*)forMarshaling->pInitialData,
2355                     forMarshaling->initialDataSize * sizeof(const uint8_t));
2356 }
2357 
unmarshal_VkPipelineCacheCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCacheCreateInfo * forUnmarshaling)2358 void unmarshal_VkPipelineCacheCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2359                                          VkPipelineCacheCreateInfo* forUnmarshaling) {
2360     (void)rootType;
2361     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2362     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2363         rootType = forUnmarshaling->sType;
2364     }
2365     size_t pNext_size;
2366     pNext_size = vkStream->getBe32();
2367     forUnmarshaling->pNext = nullptr;
2368     if (pNext_size) {
2369         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2370         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2371         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2372         vkStream->alloc((void**)&forUnmarshaling->pNext,
2373                         goldfish_vk_extension_struct_size_with_stream_features(
2374                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2375         *(VkStructureType*)forUnmarshaling->pNext = extType;
2376         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2377     }
2378     vkStream->read((VkPipelineCacheCreateFlags*)&forUnmarshaling->flags,
2379                    sizeof(VkPipelineCacheCreateFlags));
2380     forUnmarshaling->initialDataSize = (size_t)vkStream->getBe64();
2381     vkStream->alloc((void**)&forUnmarshaling->pInitialData,
2382                     forUnmarshaling->initialDataSize * sizeof(const uint8_t));
2383     vkStream->read((void*)forUnmarshaling->pInitialData,
2384                    forUnmarshaling->initialDataSize * sizeof(const uint8_t));
2385 }
2386 
marshal_VkSpecializationMapEntry(VulkanStream * vkStream,VkStructureType rootType,const VkSpecializationMapEntry * forMarshaling)2387 void marshal_VkSpecializationMapEntry(VulkanStream* vkStream, VkStructureType rootType,
2388                                       const VkSpecializationMapEntry* forMarshaling) {
2389     (void)rootType;
2390     vkStream->write((uint32_t*)&forMarshaling->constantID, sizeof(uint32_t));
2391     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2392     uint64_t cgen_var_0 = (uint64_t)forMarshaling->size;
2393     vkStream->putBe64(cgen_var_0);
2394 }
2395 
unmarshal_VkSpecializationMapEntry(VulkanStream * vkStream,VkStructureType rootType,VkSpecializationMapEntry * forUnmarshaling)2396 void unmarshal_VkSpecializationMapEntry(VulkanStream* vkStream, VkStructureType rootType,
2397                                         VkSpecializationMapEntry* forUnmarshaling) {
2398     (void)rootType;
2399     vkStream->read((uint32_t*)&forUnmarshaling->constantID, sizeof(uint32_t));
2400     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
2401     forUnmarshaling->size = (size_t)vkStream->getBe64();
2402 }
2403 
marshal_VkSpecializationInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSpecializationInfo * forMarshaling)2404 void marshal_VkSpecializationInfo(VulkanStream* vkStream, VkStructureType rootType,
2405                                   const VkSpecializationInfo* forMarshaling) {
2406     (void)rootType;
2407     vkStream->write((uint32_t*)&forMarshaling->mapEntryCount, sizeof(uint32_t));
2408     if (forMarshaling) {
2409         for (uint32_t i = 0; i < (uint32_t)forMarshaling->mapEntryCount; ++i) {
2410             marshal_VkSpecializationMapEntry(
2411                 vkStream, rootType,
2412                 (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i));
2413         }
2414     }
2415     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
2416     vkStream->putBe64(cgen_var_0);
2417     vkStream->write((const void*)forMarshaling->pData,
2418                     forMarshaling->dataSize * sizeof(const uint8_t));
2419 }
2420 
unmarshal_VkSpecializationInfo(VulkanStream * vkStream,VkStructureType rootType,VkSpecializationInfo * forUnmarshaling)2421 void unmarshal_VkSpecializationInfo(VulkanStream* vkStream, VkStructureType rootType,
2422                                     VkSpecializationInfo* forUnmarshaling) {
2423     (void)rootType;
2424     vkStream->read((uint32_t*)&forUnmarshaling->mapEntryCount, sizeof(uint32_t));
2425     vkStream->alloc((void**)&forUnmarshaling->pMapEntries,
2426                     forUnmarshaling->mapEntryCount * sizeof(const VkSpecializationMapEntry));
2427     if (forUnmarshaling) {
2428         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mapEntryCount; ++i) {
2429             unmarshal_VkSpecializationMapEntry(
2430                 vkStream, rootType, (VkSpecializationMapEntry*)(forUnmarshaling->pMapEntries + i));
2431         }
2432     }
2433     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
2434     vkStream->alloc((void**)&forUnmarshaling->pData,
2435                     forUnmarshaling->dataSize * sizeof(const uint8_t));
2436     vkStream->read((void*)forUnmarshaling->pData,
2437                    forUnmarshaling->dataSize * sizeof(const uint8_t));
2438 }
2439 
marshal_VkPipelineShaderStageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineShaderStageCreateInfo * forMarshaling)2440 void marshal_VkPipelineShaderStageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2441                                              const VkPipelineShaderStageCreateInfo* forMarshaling) {
2442     (void)rootType;
2443     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2444     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2445         rootType = forMarshaling->sType;
2446     }
2447     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2448     vkStream->write((VkPipelineShaderStageCreateFlags*)&forMarshaling->flags,
2449                     sizeof(VkPipelineShaderStageCreateFlags));
2450     vkStream->write((VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
2451     uint64_t cgen_var_0;
2452     vkStream->handleMapping()->mapHandles_VkShaderModule_u64(&forMarshaling->module, &cgen_var_0,
2453                                                              1);
2454     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
2455     vkStream->putString(forMarshaling->pName);
2456     // WARNING PTR CHECK
2457     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
2458     vkStream->putBe64(cgen_var_1);
2459     if (forMarshaling->pSpecializationInfo) {
2460         marshal_VkSpecializationInfo(
2461             vkStream, rootType, (const VkSpecializationInfo*)(forMarshaling->pSpecializationInfo));
2462     }
2463 }
2464 
unmarshal_VkPipelineShaderStageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineShaderStageCreateInfo * forUnmarshaling)2465 void unmarshal_VkPipelineShaderStageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2466                                                VkPipelineShaderStageCreateInfo* forUnmarshaling) {
2467     (void)rootType;
2468     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2469     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2470         rootType = forUnmarshaling->sType;
2471     }
2472     size_t pNext_size;
2473     pNext_size = vkStream->getBe32();
2474     forUnmarshaling->pNext = nullptr;
2475     if (pNext_size) {
2476         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2477         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2478         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2479         vkStream->alloc((void**)&forUnmarshaling->pNext,
2480                         goldfish_vk_extension_struct_size_with_stream_features(
2481                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2482         *(VkStructureType*)forUnmarshaling->pNext = extType;
2483         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2484     }
2485     vkStream->read((VkPipelineShaderStageCreateFlags*)&forUnmarshaling->flags,
2486                    sizeof(VkPipelineShaderStageCreateFlags));
2487     vkStream->read((VkShaderStageFlagBits*)&forUnmarshaling->stage, sizeof(VkShaderStageFlagBits));
2488     uint64_t cgen_var_0;
2489     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
2490     vkStream->handleMapping()->mapHandles_u64_VkShaderModule(
2491         &cgen_var_0, (VkShaderModule*)&forUnmarshaling->module, 1);
2492     vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
2493     // WARNING PTR CHECK
2494     forUnmarshaling->pSpecializationInfo =
2495         (const VkSpecializationInfo*)(uintptr_t)vkStream->getBe64();
2496     if (forUnmarshaling->pSpecializationInfo) {
2497         vkStream->alloc((void**)&forUnmarshaling->pSpecializationInfo,
2498                         sizeof(const VkSpecializationInfo));
2499         unmarshal_VkSpecializationInfo(
2500             vkStream, rootType, (VkSpecializationInfo*)(forUnmarshaling->pSpecializationInfo));
2501     }
2502 }
2503 
marshal_VkComputePipelineCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkComputePipelineCreateInfo * forMarshaling)2504 void marshal_VkComputePipelineCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2505                                          const VkComputePipelineCreateInfo* forMarshaling) {
2506     (void)rootType;
2507     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2508     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2509         rootType = forMarshaling->sType;
2510     }
2511     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2512     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2513     marshal_VkPipelineShaderStageCreateInfo(
2514         vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage));
2515     uint64_t cgen_var_0;
2516     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0,
2517                                                                1);
2518     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
2519     uint64_t cgen_var_1;
2520     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle,
2521                                                          &cgen_var_1, 1);
2522     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
2523     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2524 }
2525 
unmarshal_VkComputePipelineCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkComputePipelineCreateInfo * forUnmarshaling)2526 void unmarshal_VkComputePipelineCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2527                                            VkComputePipelineCreateInfo* forUnmarshaling) {
2528     (void)rootType;
2529     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2531         rootType = forUnmarshaling->sType;
2532     }
2533     size_t pNext_size;
2534     pNext_size = vkStream->getBe32();
2535     forUnmarshaling->pNext = nullptr;
2536     if (pNext_size) {
2537         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2538         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2539         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2540         vkStream->alloc((void**)&forUnmarshaling->pNext,
2541                         goldfish_vk_extension_struct_size_with_stream_features(
2542                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2543         *(VkStructureType*)forUnmarshaling->pNext = extType;
2544         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2545     }
2546     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
2547     unmarshal_VkPipelineShaderStageCreateInfo(
2548         vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(&forUnmarshaling->stage));
2549     uint64_t cgen_var_0;
2550     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
2551     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
2552         &cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
2553     uint64_t cgen_var_1;
2554     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
2555     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
2556         &cgen_var_1, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
2557     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
2558 }
2559 
marshal_VkVertexInputBindingDescription(VulkanStream * vkStream,VkStructureType rootType,const VkVertexInputBindingDescription * forMarshaling)2560 void marshal_VkVertexInputBindingDescription(VulkanStream* vkStream, VkStructureType rootType,
2561                                              const VkVertexInputBindingDescription* forMarshaling) {
2562     (void)rootType;
2563     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
2564     vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
2565     vkStream->write((VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
2566 }
2567 
unmarshal_VkVertexInputBindingDescription(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputBindingDescription * forUnmarshaling)2568 void unmarshal_VkVertexInputBindingDescription(VulkanStream* vkStream, VkStructureType rootType,
2569                                                VkVertexInputBindingDescription* forUnmarshaling) {
2570     (void)rootType;
2571     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
2572     vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
2573     vkStream->read((VkVertexInputRate*)&forUnmarshaling->inputRate, sizeof(VkVertexInputRate));
2574 }
2575 
marshal_VkVertexInputAttributeDescription(VulkanStream * vkStream,VkStructureType rootType,const VkVertexInputAttributeDescription * forMarshaling)2576 void marshal_VkVertexInputAttributeDescription(
2577     VulkanStream* vkStream, VkStructureType rootType,
2578     const VkVertexInputAttributeDescription* forMarshaling) {
2579     (void)rootType;
2580     vkStream->write((uint32_t*)&forMarshaling->location, sizeof(uint32_t));
2581     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
2582     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2583     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2584 }
2585 
unmarshal_VkVertexInputAttributeDescription(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputAttributeDescription * forUnmarshaling)2586 void unmarshal_VkVertexInputAttributeDescription(
2587     VulkanStream* vkStream, VkStructureType rootType,
2588     VkVertexInputAttributeDescription* forUnmarshaling) {
2589     (void)rootType;
2590     vkStream->read((uint32_t*)&forUnmarshaling->location, sizeof(uint32_t));
2591     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
2592     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
2593     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
2594 }
2595 
marshal_VkPipelineVertexInputStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineVertexInputStateCreateInfo * forMarshaling)2596 void marshal_VkPipelineVertexInputStateCreateInfo(
2597     VulkanStream* vkStream, VkStructureType rootType,
2598     const VkPipelineVertexInputStateCreateInfo* forMarshaling) {
2599     (void)rootType;
2600     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2601     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2602         rootType = forMarshaling->sType;
2603     }
2604     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2605     vkStream->write((VkPipelineVertexInputStateCreateFlags*)&forMarshaling->flags,
2606                     sizeof(VkPipelineVertexInputStateCreateFlags));
2607     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
2608     if (forMarshaling) {
2609         for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDescriptionCount; ++i) {
2610             marshal_VkVertexInputBindingDescription(
2611                 vkStream, rootType,
2612                 (const VkVertexInputBindingDescription*)(forMarshaling->pVertexBindingDescriptions +
2613                                                          i));
2614         }
2615     }
2616     vkStream->write((uint32_t*)&forMarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
2617     if (forMarshaling) {
2618         for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexAttributeDescriptionCount; ++i) {
2619             marshal_VkVertexInputAttributeDescription(
2620                 vkStream, rootType,
2621                 (const VkVertexInputAttributeDescription*)(forMarshaling
2622                                                                ->pVertexAttributeDescriptions +
2623                                                            i));
2624         }
2625     }
2626 }
2627 
unmarshal_VkPipelineVertexInputStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineVertexInputStateCreateInfo * forUnmarshaling)2628 void unmarshal_VkPipelineVertexInputStateCreateInfo(
2629     VulkanStream* vkStream, VkStructureType rootType,
2630     VkPipelineVertexInputStateCreateInfo* forUnmarshaling) {
2631     (void)rootType;
2632     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2633     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2634         rootType = forUnmarshaling->sType;
2635     }
2636     size_t pNext_size;
2637     pNext_size = vkStream->getBe32();
2638     forUnmarshaling->pNext = nullptr;
2639     if (pNext_size) {
2640         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2641         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2642         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2643         vkStream->alloc((void**)&forUnmarshaling->pNext,
2644                         goldfish_vk_extension_struct_size_with_stream_features(
2645                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2646         *(VkStructureType*)forUnmarshaling->pNext = extType;
2647         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2648     }
2649     vkStream->read((VkPipelineVertexInputStateCreateFlags*)&forUnmarshaling->flags,
2650                    sizeof(VkPipelineVertexInputStateCreateFlags));
2651     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
2652     vkStream->alloc((void**)&forUnmarshaling->pVertexBindingDescriptions,
2653                     forUnmarshaling->vertexBindingDescriptionCount *
2654                         sizeof(const VkVertexInputBindingDescription));
2655     if (forUnmarshaling) {
2656         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDescriptionCount; ++i) {
2657             unmarshal_VkVertexInputBindingDescription(
2658                 vkStream, rootType,
2659                 (VkVertexInputBindingDescription*)(forUnmarshaling->pVertexBindingDescriptions +
2660                                                    i));
2661         }
2662     }
2663     vkStream->read((uint32_t*)&forUnmarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
2664     vkStream->alloc((void**)&forUnmarshaling->pVertexAttributeDescriptions,
2665                     forUnmarshaling->vertexAttributeDescriptionCount *
2666                         sizeof(const VkVertexInputAttributeDescription));
2667     if (forUnmarshaling) {
2668         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexAttributeDescriptionCount; ++i) {
2669             unmarshal_VkVertexInputAttributeDescription(
2670                 vkStream, rootType,
2671                 (VkVertexInputAttributeDescription*)(forUnmarshaling->pVertexAttributeDescriptions +
2672                                                      i));
2673         }
2674     }
2675 }
2676 
marshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineInputAssemblyStateCreateInfo * forMarshaling)2677 void marshal_VkPipelineInputAssemblyStateCreateInfo(
2678     VulkanStream* vkStream, VkStructureType rootType,
2679     const VkPipelineInputAssemblyStateCreateInfo* forMarshaling) {
2680     (void)rootType;
2681     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2682     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2683         rootType = forMarshaling->sType;
2684     }
2685     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2686     vkStream->write((VkPipelineInputAssemblyStateCreateFlags*)&forMarshaling->flags,
2687                     sizeof(VkPipelineInputAssemblyStateCreateFlags));
2688     vkStream->write((VkPrimitiveTopology*)&forMarshaling->topology, sizeof(VkPrimitiveTopology));
2689     vkStream->write((VkBool32*)&forMarshaling->primitiveRestartEnable, sizeof(VkBool32));
2690 }
2691 
unmarshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineInputAssemblyStateCreateInfo * forUnmarshaling)2692 void unmarshal_VkPipelineInputAssemblyStateCreateInfo(
2693     VulkanStream* vkStream, VkStructureType rootType,
2694     VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling) {
2695     (void)rootType;
2696     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2697     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2698         rootType = forUnmarshaling->sType;
2699     }
2700     size_t pNext_size;
2701     pNext_size = vkStream->getBe32();
2702     forUnmarshaling->pNext = nullptr;
2703     if (pNext_size) {
2704         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2705         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2706         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2707         vkStream->alloc((void**)&forUnmarshaling->pNext,
2708                         goldfish_vk_extension_struct_size_with_stream_features(
2709                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2710         *(VkStructureType*)forUnmarshaling->pNext = extType;
2711         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2712     }
2713     vkStream->read((VkPipelineInputAssemblyStateCreateFlags*)&forUnmarshaling->flags,
2714                    sizeof(VkPipelineInputAssemblyStateCreateFlags));
2715     vkStream->read((VkPrimitiveTopology*)&forUnmarshaling->topology, sizeof(VkPrimitiveTopology));
2716     vkStream->read((VkBool32*)&forUnmarshaling->primitiveRestartEnable, sizeof(VkBool32));
2717 }
2718 
marshal_VkPipelineTessellationStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineTessellationStateCreateInfo * forMarshaling)2719 void marshal_VkPipelineTessellationStateCreateInfo(
2720     VulkanStream* vkStream, VkStructureType rootType,
2721     const VkPipelineTessellationStateCreateInfo* forMarshaling) {
2722     (void)rootType;
2723     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2724     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2725         rootType = forMarshaling->sType;
2726     }
2727     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2728     vkStream->write((VkPipelineTessellationStateCreateFlags*)&forMarshaling->flags,
2729                     sizeof(VkPipelineTessellationStateCreateFlags));
2730     vkStream->write((uint32_t*)&forMarshaling->patchControlPoints, sizeof(uint32_t));
2731 }
2732 
unmarshal_VkPipelineTessellationStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineTessellationStateCreateInfo * forUnmarshaling)2733 void unmarshal_VkPipelineTessellationStateCreateInfo(
2734     VulkanStream* vkStream, VkStructureType rootType,
2735     VkPipelineTessellationStateCreateInfo* forUnmarshaling) {
2736     (void)rootType;
2737     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2739         rootType = forUnmarshaling->sType;
2740     }
2741     size_t pNext_size;
2742     pNext_size = vkStream->getBe32();
2743     forUnmarshaling->pNext = nullptr;
2744     if (pNext_size) {
2745         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2746         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2747         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2748         vkStream->alloc((void**)&forUnmarshaling->pNext,
2749                         goldfish_vk_extension_struct_size_with_stream_features(
2750                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2751         *(VkStructureType*)forUnmarshaling->pNext = extType;
2752         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2753     }
2754     vkStream->read((VkPipelineTessellationStateCreateFlags*)&forUnmarshaling->flags,
2755                    sizeof(VkPipelineTessellationStateCreateFlags));
2756     vkStream->read((uint32_t*)&forUnmarshaling->patchControlPoints, sizeof(uint32_t));
2757 }
2758 
marshal_VkViewport(VulkanStream * vkStream,VkStructureType rootType,const VkViewport * forMarshaling)2759 void marshal_VkViewport(VulkanStream* vkStream, VkStructureType rootType,
2760                         const VkViewport* forMarshaling) {
2761     (void)rootType;
2762     vkStream->write((float*)&forMarshaling->x, sizeof(float));
2763     vkStream->write((float*)&forMarshaling->y, sizeof(float));
2764     vkStream->write((float*)&forMarshaling->width, sizeof(float));
2765     vkStream->write((float*)&forMarshaling->height, sizeof(float));
2766     vkStream->write((float*)&forMarshaling->minDepth, sizeof(float));
2767     vkStream->write((float*)&forMarshaling->maxDepth, sizeof(float));
2768 }
2769 
unmarshal_VkViewport(VulkanStream * vkStream,VkStructureType rootType,VkViewport * forUnmarshaling)2770 void unmarshal_VkViewport(VulkanStream* vkStream, VkStructureType rootType,
2771                           VkViewport* forUnmarshaling) {
2772     (void)rootType;
2773     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
2774     vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
2775     vkStream->read((float*)&forUnmarshaling->width, sizeof(float));
2776     vkStream->read((float*)&forUnmarshaling->height, sizeof(float));
2777     vkStream->read((float*)&forUnmarshaling->minDepth, sizeof(float));
2778     vkStream->read((float*)&forUnmarshaling->maxDepth, sizeof(float));
2779 }
2780 
marshal_VkPipelineViewportStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineViewportStateCreateInfo * forMarshaling)2781 void marshal_VkPipelineViewportStateCreateInfo(
2782     VulkanStream* vkStream, VkStructureType rootType,
2783     const VkPipelineViewportStateCreateInfo* forMarshaling) {
2784     (void)rootType;
2785     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2786     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2787         rootType = forMarshaling->sType;
2788     }
2789     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2790     vkStream->write((VkPipelineViewportStateCreateFlags*)&forMarshaling->flags,
2791                     sizeof(VkPipelineViewportStateCreateFlags));
2792     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
2793     // WARNING PTR CHECK
2794     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
2795     vkStream->putBe64(cgen_var_0);
2796     if (forMarshaling->pViewports) {
2797         if (forMarshaling) {
2798             for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i) {
2799                 marshal_VkViewport(vkStream, rootType,
2800                                    (const VkViewport*)(forMarshaling->pViewports + i));
2801             }
2802         }
2803     }
2804     vkStream->write((uint32_t*)&forMarshaling->scissorCount, sizeof(uint32_t));
2805     // WARNING PTR CHECK
2806     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
2807     vkStream->putBe64(cgen_var_1);
2808     if (forMarshaling->pScissors) {
2809         if (forMarshaling) {
2810             for (uint32_t i = 0; i < (uint32_t)forMarshaling->scissorCount; ++i) {
2811                 marshal_VkRect2D(vkStream, rootType,
2812                                  (const VkRect2D*)(forMarshaling->pScissors + i));
2813             }
2814         }
2815     }
2816 }
2817 
unmarshal_VkPipelineViewportStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportStateCreateInfo * forUnmarshaling)2818 void unmarshal_VkPipelineViewportStateCreateInfo(
2819     VulkanStream* vkStream, VkStructureType rootType,
2820     VkPipelineViewportStateCreateInfo* forUnmarshaling) {
2821     (void)rootType;
2822     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2823     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2824         rootType = forUnmarshaling->sType;
2825     }
2826     size_t pNext_size;
2827     pNext_size = vkStream->getBe32();
2828     forUnmarshaling->pNext = nullptr;
2829     if (pNext_size) {
2830         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2831         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2832         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2833         vkStream->alloc((void**)&forUnmarshaling->pNext,
2834                         goldfish_vk_extension_struct_size_with_stream_features(
2835                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2836         *(VkStructureType*)forUnmarshaling->pNext = extType;
2837         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2838     }
2839     vkStream->read((VkPipelineViewportStateCreateFlags*)&forUnmarshaling->flags,
2840                    sizeof(VkPipelineViewportStateCreateFlags));
2841     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
2842     // WARNING PTR CHECK
2843     forUnmarshaling->pViewports = (const VkViewport*)(uintptr_t)vkStream->getBe64();
2844     if (forUnmarshaling->pViewports) {
2845         vkStream->alloc((void**)&forUnmarshaling->pViewports,
2846                         forUnmarshaling->viewportCount * sizeof(const VkViewport));
2847         if (forUnmarshaling) {
2848             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i) {
2849                 unmarshal_VkViewport(vkStream, rootType,
2850                                      (VkViewport*)(forUnmarshaling->pViewports + i));
2851             }
2852         }
2853     }
2854     vkStream->read((uint32_t*)&forUnmarshaling->scissorCount, sizeof(uint32_t));
2855     // WARNING PTR CHECK
2856     forUnmarshaling->pScissors = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
2857     if (forUnmarshaling->pScissors) {
2858         vkStream->alloc((void**)&forUnmarshaling->pScissors,
2859                         forUnmarshaling->scissorCount * sizeof(const VkRect2D));
2860         if (forUnmarshaling) {
2861             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->scissorCount; ++i) {
2862                 unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(forUnmarshaling->pScissors + i));
2863             }
2864         }
2865     }
2866 }
2867 
marshal_VkPipelineRasterizationStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateCreateInfo * forMarshaling)2868 void marshal_VkPipelineRasterizationStateCreateInfo(
2869     VulkanStream* vkStream, VkStructureType rootType,
2870     const VkPipelineRasterizationStateCreateInfo* forMarshaling) {
2871     (void)rootType;
2872     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2873     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2874         rootType = forMarshaling->sType;
2875     }
2876     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2877     vkStream->write((VkPipelineRasterizationStateCreateFlags*)&forMarshaling->flags,
2878                     sizeof(VkPipelineRasterizationStateCreateFlags));
2879     vkStream->write((VkBool32*)&forMarshaling->depthClampEnable, sizeof(VkBool32));
2880     vkStream->write((VkBool32*)&forMarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2881     vkStream->write((VkPolygonMode*)&forMarshaling->polygonMode, sizeof(VkPolygonMode));
2882     vkStream->write((VkCullModeFlags*)&forMarshaling->cullMode, sizeof(VkCullModeFlags));
2883     vkStream->write((VkFrontFace*)&forMarshaling->frontFace, sizeof(VkFrontFace));
2884     vkStream->write((VkBool32*)&forMarshaling->depthBiasEnable, sizeof(VkBool32));
2885     vkStream->write((float*)&forMarshaling->depthBiasConstantFactor, sizeof(float));
2886     vkStream->write((float*)&forMarshaling->depthBiasClamp, sizeof(float));
2887     vkStream->write((float*)&forMarshaling->depthBiasSlopeFactor, sizeof(float));
2888     vkStream->write((float*)&forMarshaling->lineWidth, sizeof(float));
2889 }
2890 
unmarshal_VkPipelineRasterizationStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationStateCreateInfo * forUnmarshaling)2891 void unmarshal_VkPipelineRasterizationStateCreateInfo(
2892     VulkanStream* vkStream, VkStructureType rootType,
2893     VkPipelineRasterizationStateCreateInfo* forUnmarshaling) {
2894     (void)rootType;
2895     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2896     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2897         rootType = forUnmarshaling->sType;
2898     }
2899     size_t pNext_size;
2900     pNext_size = vkStream->getBe32();
2901     forUnmarshaling->pNext = nullptr;
2902     if (pNext_size) {
2903         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2904         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2905         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2906         vkStream->alloc((void**)&forUnmarshaling->pNext,
2907                         goldfish_vk_extension_struct_size_with_stream_features(
2908                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2909         *(VkStructureType*)forUnmarshaling->pNext = extType;
2910         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2911     }
2912     vkStream->read((VkPipelineRasterizationStateCreateFlags*)&forUnmarshaling->flags,
2913                    sizeof(VkPipelineRasterizationStateCreateFlags));
2914     vkStream->read((VkBool32*)&forUnmarshaling->depthClampEnable, sizeof(VkBool32));
2915     vkStream->read((VkBool32*)&forUnmarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2916     vkStream->read((VkPolygonMode*)&forUnmarshaling->polygonMode, sizeof(VkPolygonMode));
2917     vkStream->read((VkCullModeFlags*)&forUnmarshaling->cullMode, sizeof(VkCullModeFlags));
2918     vkStream->read((VkFrontFace*)&forUnmarshaling->frontFace, sizeof(VkFrontFace));
2919     vkStream->read((VkBool32*)&forUnmarshaling->depthBiasEnable, sizeof(VkBool32));
2920     vkStream->read((float*)&forUnmarshaling->depthBiasConstantFactor, sizeof(float));
2921     vkStream->read((float*)&forUnmarshaling->depthBiasClamp, sizeof(float));
2922     vkStream->read((float*)&forUnmarshaling->depthBiasSlopeFactor, sizeof(float));
2923     vkStream->read((float*)&forUnmarshaling->lineWidth, sizeof(float));
2924 }
2925 
marshal_VkPipelineMultisampleStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineMultisampleStateCreateInfo * forMarshaling)2926 void marshal_VkPipelineMultisampleStateCreateInfo(
2927     VulkanStream* vkStream, VkStructureType rootType,
2928     const VkPipelineMultisampleStateCreateInfo* forMarshaling) {
2929     (void)rootType;
2930     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2931     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2932         rootType = forMarshaling->sType;
2933     }
2934     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2935     vkStream->write((VkPipelineMultisampleStateCreateFlags*)&forMarshaling->flags,
2936                     sizeof(VkPipelineMultisampleStateCreateFlags));
2937     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
2938                     sizeof(VkSampleCountFlagBits));
2939     vkStream->write((VkBool32*)&forMarshaling->sampleShadingEnable, sizeof(VkBool32));
2940     vkStream->write((float*)&forMarshaling->minSampleShading, sizeof(float));
2941     // WARNING PTR CHECK
2942     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
2943     vkStream->putBe64(cgen_var_0);
2944     if (forMarshaling->pSampleMask) {
2945         vkStream->write(
2946             (const VkSampleMask*)forMarshaling->pSampleMask,
2947             (((forMarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2948     }
2949     vkStream->write((VkBool32*)&forMarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2950     vkStream->write((VkBool32*)&forMarshaling->alphaToOneEnable, sizeof(VkBool32));
2951 }
2952 
unmarshal_VkPipelineMultisampleStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineMultisampleStateCreateInfo * forUnmarshaling)2953 void unmarshal_VkPipelineMultisampleStateCreateInfo(
2954     VulkanStream* vkStream, VkStructureType rootType,
2955     VkPipelineMultisampleStateCreateInfo* forUnmarshaling) {
2956     (void)rootType;
2957     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2958     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2959         rootType = forUnmarshaling->sType;
2960     }
2961     size_t pNext_size;
2962     pNext_size = vkStream->getBe32();
2963     forUnmarshaling->pNext = nullptr;
2964     if (pNext_size) {
2965         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2966         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
2967         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2968         vkStream->alloc((void**)&forUnmarshaling->pNext,
2969                         goldfish_vk_extension_struct_size_with_stream_features(
2970                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2971         *(VkStructureType*)forUnmarshaling->pNext = extType;
2972         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2973     }
2974     vkStream->read((VkPipelineMultisampleStateCreateFlags*)&forUnmarshaling->flags,
2975                    sizeof(VkPipelineMultisampleStateCreateFlags));
2976     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples,
2977                    sizeof(VkSampleCountFlagBits));
2978     vkStream->read((VkBool32*)&forUnmarshaling->sampleShadingEnable, sizeof(VkBool32));
2979     vkStream->read((float*)&forUnmarshaling->minSampleShading, sizeof(float));
2980     // WARNING PTR CHECK
2981     forUnmarshaling->pSampleMask = (const VkSampleMask*)(uintptr_t)vkStream->getBe64();
2982     if (forUnmarshaling->pSampleMask) {
2983         vkStream->alloc(
2984             (void**)&forUnmarshaling->pSampleMask,
2985             (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2986         vkStream->read(
2987             (VkSampleMask*)forUnmarshaling->pSampleMask,
2988             (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2989     }
2990     vkStream->read((VkBool32*)&forUnmarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2991     vkStream->read((VkBool32*)&forUnmarshaling->alphaToOneEnable, sizeof(VkBool32));
2992 }
2993 
marshal_VkStencilOpState(VulkanStream * vkStream,VkStructureType rootType,const VkStencilOpState * forMarshaling)2994 void marshal_VkStencilOpState(VulkanStream* vkStream, VkStructureType rootType,
2995                               const VkStencilOpState* forMarshaling) {
2996     (void)rootType;
2997     vkStream->write((VkStencilOp*)&forMarshaling->failOp, sizeof(VkStencilOp));
2998     vkStream->write((VkStencilOp*)&forMarshaling->passOp, sizeof(VkStencilOp));
2999     vkStream->write((VkStencilOp*)&forMarshaling->depthFailOp, sizeof(VkStencilOp));
3000     vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
3001     vkStream->write((uint32_t*)&forMarshaling->compareMask, sizeof(uint32_t));
3002     vkStream->write((uint32_t*)&forMarshaling->writeMask, sizeof(uint32_t));
3003     vkStream->write((uint32_t*)&forMarshaling->reference, sizeof(uint32_t));
3004 }
3005 
unmarshal_VkStencilOpState(VulkanStream * vkStream,VkStructureType rootType,VkStencilOpState * forUnmarshaling)3006 void unmarshal_VkStencilOpState(VulkanStream* vkStream, VkStructureType rootType,
3007                                 VkStencilOpState* forUnmarshaling) {
3008     (void)rootType;
3009     vkStream->read((VkStencilOp*)&forUnmarshaling->failOp, sizeof(VkStencilOp));
3010     vkStream->read((VkStencilOp*)&forUnmarshaling->passOp, sizeof(VkStencilOp));
3011     vkStream->read((VkStencilOp*)&forUnmarshaling->depthFailOp, sizeof(VkStencilOp));
3012     vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
3013     vkStream->read((uint32_t*)&forUnmarshaling->compareMask, sizeof(uint32_t));
3014     vkStream->read((uint32_t*)&forUnmarshaling->writeMask, sizeof(uint32_t));
3015     vkStream->read((uint32_t*)&forUnmarshaling->reference, sizeof(uint32_t));
3016 }
3017 
marshal_VkPipelineDepthStencilStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineDepthStencilStateCreateInfo * forMarshaling)3018 void marshal_VkPipelineDepthStencilStateCreateInfo(
3019     VulkanStream* vkStream, VkStructureType rootType,
3020     const VkPipelineDepthStencilStateCreateInfo* forMarshaling) {
3021     (void)rootType;
3022     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3023     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3024         rootType = forMarshaling->sType;
3025     }
3026     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3027     vkStream->write((VkPipelineDepthStencilStateCreateFlags*)&forMarshaling->flags,
3028                     sizeof(VkPipelineDepthStencilStateCreateFlags));
3029     vkStream->write((VkBool32*)&forMarshaling->depthTestEnable, sizeof(VkBool32));
3030     vkStream->write((VkBool32*)&forMarshaling->depthWriteEnable, sizeof(VkBool32));
3031     vkStream->write((VkCompareOp*)&forMarshaling->depthCompareOp, sizeof(VkCompareOp));
3032     vkStream->write((VkBool32*)&forMarshaling->depthBoundsTestEnable, sizeof(VkBool32));
3033     vkStream->write((VkBool32*)&forMarshaling->stencilTestEnable, sizeof(VkBool32));
3034     marshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forMarshaling->front));
3035     marshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forMarshaling->back));
3036     vkStream->write((float*)&forMarshaling->minDepthBounds, sizeof(float));
3037     vkStream->write((float*)&forMarshaling->maxDepthBounds, sizeof(float));
3038 }
3039 
unmarshal_VkPipelineDepthStencilStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineDepthStencilStateCreateInfo * forUnmarshaling)3040 void unmarshal_VkPipelineDepthStencilStateCreateInfo(
3041     VulkanStream* vkStream, VkStructureType rootType,
3042     VkPipelineDepthStencilStateCreateInfo* forUnmarshaling) {
3043     (void)rootType;
3044     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3045     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3046         rootType = forUnmarshaling->sType;
3047     }
3048     size_t pNext_size;
3049     pNext_size = vkStream->getBe32();
3050     forUnmarshaling->pNext = nullptr;
3051     if (pNext_size) {
3052         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3053         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3054         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3055         vkStream->alloc((void**)&forUnmarshaling->pNext,
3056                         goldfish_vk_extension_struct_size_with_stream_features(
3057                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3058         *(VkStructureType*)forUnmarshaling->pNext = extType;
3059         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3060     }
3061     vkStream->read((VkPipelineDepthStencilStateCreateFlags*)&forUnmarshaling->flags,
3062                    sizeof(VkPipelineDepthStencilStateCreateFlags));
3063     vkStream->read((VkBool32*)&forUnmarshaling->depthTestEnable, sizeof(VkBool32));
3064     vkStream->read((VkBool32*)&forUnmarshaling->depthWriteEnable, sizeof(VkBool32));
3065     vkStream->read((VkCompareOp*)&forUnmarshaling->depthCompareOp, sizeof(VkCompareOp));
3066     vkStream->read((VkBool32*)&forUnmarshaling->depthBoundsTestEnable, sizeof(VkBool32));
3067     vkStream->read((VkBool32*)&forUnmarshaling->stencilTestEnable, sizeof(VkBool32));
3068     unmarshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forUnmarshaling->front));
3069     unmarshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forUnmarshaling->back));
3070     vkStream->read((float*)&forUnmarshaling->minDepthBounds, sizeof(float));
3071     vkStream->read((float*)&forUnmarshaling->maxDepthBounds, sizeof(float));
3072 }
3073 
marshal_VkPipelineColorBlendAttachmentState(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineColorBlendAttachmentState * forMarshaling)3074 void marshal_VkPipelineColorBlendAttachmentState(
3075     VulkanStream* vkStream, VkStructureType rootType,
3076     const VkPipelineColorBlendAttachmentState* forMarshaling) {
3077     (void)rootType;
3078     vkStream->write((VkBool32*)&forMarshaling->blendEnable, sizeof(VkBool32));
3079     vkStream->write((VkBlendFactor*)&forMarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
3080     vkStream->write((VkBlendFactor*)&forMarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
3081     vkStream->write((VkBlendOp*)&forMarshaling->colorBlendOp, sizeof(VkBlendOp));
3082     vkStream->write((VkBlendFactor*)&forMarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
3083     vkStream->write((VkBlendFactor*)&forMarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
3084     vkStream->write((VkBlendOp*)&forMarshaling->alphaBlendOp, sizeof(VkBlendOp));
3085     vkStream->write((VkColorComponentFlags*)&forMarshaling->colorWriteMask,
3086                     sizeof(VkColorComponentFlags));
3087 }
3088 
unmarshal_VkPipelineColorBlendAttachmentState(VulkanStream * vkStream,VkStructureType rootType,VkPipelineColorBlendAttachmentState * forUnmarshaling)3089 void unmarshal_VkPipelineColorBlendAttachmentState(
3090     VulkanStream* vkStream, VkStructureType rootType,
3091     VkPipelineColorBlendAttachmentState* forUnmarshaling) {
3092     (void)rootType;
3093     vkStream->read((VkBool32*)&forUnmarshaling->blendEnable, sizeof(VkBool32));
3094     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
3095     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
3096     vkStream->read((VkBlendOp*)&forUnmarshaling->colorBlendOp, sizeof(VkBlendOp));
3097     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
3098     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
3099     vkStream->read((VkBlendOp*)&forUnmarshaling->alphaBlendOp, sizeof(VkBlendOp));
3100     vkStream->read((VkColorComponentFlags*)&forUnmarshaling->colorWriteMask,
3101                    sizeof(VkColorComponentFlags));
3102 }
3103 
marshal_VkPipelineColorBlendStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineColorBlendStateCreateInfo * forMarshaling)3104 void marshal_VkPipelineColorBlendStateCreateInfo(
3105     VulkanStream* vkStream, VkStructureType rootType,
3106     const VkPipelineColorBlendStateCreateInfo* forMarshaling) {
3107     (void)rootType;
3108     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3109     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3110         rootType = forMarshaling->sType;
3111     }
3112     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3113     vkStream->write((VkPipelineColorBlendStateCreateFlags*)&forMarshaling->flags,
3114                     sizeof(VkPipelineColorBlendStateCreateFlags));
3115     vkStream->write((VkBool32*)&forMarshaling->logicOpEnable, sizeof(VkBool32));
3116     vkStream->write((VkLogicOp*)&forMarshaling->logicOp, sizeof(VkLogicOp));
3117     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
3118     if (forMarshaling) {
3119         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
3120             marshal_VkPipelineColorBlendAttachmentState(
3121                 vkStream, rootType,
3122                 (const VkPipelineColorBlendAttachmentState*)(forMarshaling->pAttachments + i));
3123         }
3124     }
3125     vkStream->write((float*)forMarshaling->blendConstants, 4 * sizeof(float));
3126 }
3127 
unmarshal_VkPipelineColorBlendStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineColorBlendStateCreateInfo * forUnmarshaling)3128 void unmarshal_VkPipelineColorBlendStateCreateInfo(
3129     VulkanStream* vkStream, VkStructureType rootType,
3130     VkPipelineColorBlendStateCreateInfo* forUnmarshaling) {
3131     (void)rootType;
3132     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3133     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3134         rootType = forUnmarshaling->sType;
3135     }
3136     size_t pNext_size;
3137     pNext_size = vkStream->getBe32();
3138     forUnmarshaling->pNext = nullptr;
3139     if (pNext_size) {
3140         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3141         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3142         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3143         vkStream->alloc((void**)&forUnmarshaling->pNext,
3144                         goldfish_vk_extension_struct_size_with_stream_features(
3145                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3146         *(VkStructureType*)forUnmarshaling->pNext = extType;
3147         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3148     }
3149     vkStream->read((VkPipelineColorBlendStateCreateFlags*)&forUnmarshaling->flags,
3150                    sizeof(VkPipelineColorBlendStateCreateFlags));
3151     vkStream->read((VkBool32*)&forUnmarshaling->logicOpEnable, sizeof(VkBool32));
3152     vkStream->read((VkLogicOp*)&forUnmarshaling->logicOp, sizeof(VkLogicOp));
3153     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
3154     vkStream->alloc(
3155         (void**)&forUnmarshaling->pAttachments,
3156         forUnmarshaling->attachmentCount * sizeof(const VkPipelineColorBlendAttachmentState));
3157     if (forUnmarshaling) {
3158         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
3159             unmarshal_VkPipelineColorBlendAttachmentState(
3160                 vkStream, rootType,
3161                 (VkPipelineColorBlendAttachmentState*)(forUnmarshaling->pAttachments + i));
3162         }
3163     }
3164     vkStream->read((float*)forUnmarshaling->blendConstants, 4 * sizeof(float));
3165 }
3166 
marshal_VkPipelineDynamicStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineDynamicStateCreateInfo * forMarshaling)3167 void marshal_VkPipelineDynamicStateCreateInfo(
3168     VulkanStream* vkStream, VkStructureType rootType,
3169     const VkPipelineDynamicStateCreateInfo* forMarshaling) {
3170     (void)rootType;
3171     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3172     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3173         rootType = forMarshaling->sType;
3174     }
3175     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3176     vkStream->write((VkPipelineDynamicStateCreateFlags*)&forMarshaling->flags,
3177                     sizeof(VkPipelineDynamicStateCreateFlags));
3178     vkStream->write((uint32_t*)&forMarshaling->dynamicStateCount, sizeof(uint32_t));
3179     vkStream->write((const VkDynamicState*)forMarshaling->pDynamicStates,
3180                     forMarshaling->dynamicStateCount * sizeof(const VkDynamicState));
3181 }
3182 
unmarshal_VkPipelineDynamicStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineDynamicStateCreateInfo * forUnmarshaling)3183 void unmarshal_VkPipelineDynamicStateCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3184                                                 VkPipelineDynamicStateCreateInfo* forUnmarshaling) {
3185     (void)rootType;
3186     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3187     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3188         rootType = forUnmarshaling->sType;
3189     }
3190     size_t pNext_size;
3191     pNext_size = vkStream->getBe32();
3192     forUnmarshaling->pNext = nullptr;
3193     if (pNext_size) {
3194         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3195         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3196         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3197         vkStream->alloc((void**)&forUnmarshaling->pNext,
3198                         goldfish_vk_extension_struct_size_with_stream_features(
3199                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3200         *(VkStructureType*)forUnmarshaling->pNext = extType;
3201         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3202     }
3203     vkStream->read((VkPipelineDynamicStateCreateFlags*)&forUnmarshaling->flags,
3204                    sizeof(VkPipelineDynamicStateCreateFlags));
3205     vkStream->read((uint32_t*)&forUnmarshaling->dynamicStateCount, sizeof(uint32_t));
3206     vkStream->alloc((void**)&forUnmarshaling->pDynamicStates,
3207                     forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState));
3208     vkStream->read((VkDynamicState*)forUnmarshaling->pDynamicStates,
3209                    forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState));
3210 }
3211 
marshal_VkGraphicsPipelineCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkGraphicsPipelineCreateInfo * forMarshaling)3212 void marshal_VkGraphicsPipelineCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3213                                           const VkGraphicsPipelineCreateInfo* forMarshaling) {
3214     (void)rootType;
3215     uint32_t hasRasterization = 1;
3216     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3217         hasRasterization =
3218             (((0 == forMarshaling->pRasterizationState))
3219                  ? (0)
3220                  : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable)));
3221         uint32_t cgen_var_0 = (uint32_t)hasRasterization;
3222         vkStream->putBe32(cgen_var_0);
3223     }
3224     uint32_t hasTessellation = 1;
3225     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3226         hasTessellation =
3227             arrayany(forMarshaling->pStages, 0, forMarshaling->stageCount,
3228                      [](VkPipelineShaderStageCreateInfo s) {
3229                          return ((s.stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ||
3230                                  (s.stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT));
3231                      });
3232         uint32_t cgen_var_0 = (uint32_t)hasTessellation;
3233         vkStream->putBe32(cgen_var_0);
3234     }
3235     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3236     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3237         rootType = forMarshaling->sType;
3238     }
3239     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3240     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
3241     vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
3242     if (forMarshaling) {
3243         for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i) {
3244             marshal_VkPipelineShaderStageCreateInfo(
3245                 vkStream, rootType,
3246                 (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
3247         }
3248     }
3249     // WARNING PTR CHECK
3250     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3251         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
3252         vkStream->putBe64(cgen_var_0);
3253     }
3254     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3255          forMarshaling->pVertexInputState)) {
3256         marshal_VkPipelineVertexInputStateCreateInfo(
3257             vkStream, rootType,
3258             (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState));
3259     }
3260     // WARNING PTR CHECK
3261     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3262         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
3263         vkStream->putBe64(cgen_var_0);
3264     }
3265     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3266          forMarshaling->pInputAssemblyState)) {
3267         marshal_VkPipelineInputAssemblyStateCreateInfo(
3268             vkStream, rootType,
3269             (const VkPipelineInputAssemblyStateCreateInfo*)(forMarshaling->pInputAssemblyState));
3270     }
3271     // WARNING PTR CHECK
3272     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
3273     vkStream->putBe64(cgen_var_0);
3274     if (forMarshaling->pTessellationState) {
3275         if (hasTessellation) {
3276             marshal_VkPipelineTessellationStateCreateInfo(
3277                 vkStream, rootType,
3278                 (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState));
3279         }
3280     }
3281     // WARNING PTR CHECK
3282     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
3283     vkStream->putBe64(cgen_var_1);
3284     if (forMarshaling->pViewportState) {
3285         if (hasRasterization) {
3286             marshal_VkPipelineViewportStateCreateInfo(
3287                 vkStream, rootType,
3288                 (const VkPipelineViewportStateCreateInfo*)(forMarshaling->pViewportState));
3289         }
3290     }
3291     // WARNING PTR CHECK
3292     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3293         uint64_t cgen_var_1_0 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
3294         vkStream->putBe64(cgen_var_1_0);
3295     }
3296     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3297          forMarshaling->pRasterizationState)) {
3298         marshal_VkPipelineRasterizationStateCreateInfo(
3299             vkStream, rootType,
3300             (const VkPipelineRasterizationStateCreateInfo*)(forMarshaling->pRasterizationState));
3301     }
3302     // WARNING PTR CHECK
3303     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
3304     vkStream->putBe64(cgen_var_2);
3305     if (forMarshaling->pMultisampleState) {
3306         if (hasRasterization) {
3307             marshal_VkPipelineMultisampleStateCreateInfo(
3308                 vkStream, rootType,
3309                 (const VkPipelineMultisampleStateCreateInfo*)(forMarshaling->pMultisampleState));
3310         }
3311     }
3312     // WARNING PTR CHECK
3313     uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
3314     vkStream->putBe64(cgen_var_3);
3315     if (forMarshaling->pDepthStencilState) {
3316         if (hasRasterization) {
3317             marshal_VkPipelineDepthStencilStateCreateInfo(
3318                 vkStream, rootType,
3319                 (const VkPipelineDepthStencilStateCreateInfo*)(forMarshaling->pDepthStencilState));
3320         }
3321     }
3322     // WARNING PTR CHECK
3323     uint64_t cgen_var_4 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
3324     vkStream->putBe64(cgen_var_4);
3325     if (forMarshaling->pColorBlendState) {
3326         if (hasRasterization) {
3327             marshal_VkPipelineColorBlendStateCreateInfo(
3328                 vkStream, rootType,
3329                 (const VkPipelineColorBlendStateCreateInfo*)(forMarshaling->pColorBlendState));
3330         }
3331     }
3332     // WARNING PTR CHECK
3333     uint64_t cgen_var_5 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
3334     vkStream->putBe64(cgen_var_5);
3335     if (forMarshaling->pDynamicState) {
3336         marshal_VkPipelineDynamicStateCreateInfo(
3337             vkStream, rootType,
3338             (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState));
3339     }
3340     uint64_t cgen_var_6;
3341     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_6,
3342                                                                1);
3343     vkStream->write((uint64_t*)&cgen_var_6, 1 * 8);
3344     uint64_t cgen_var_7;
3345     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_7,
3346                                                            1);
3347     vkStream->write((uint64_t*)&cgen_var_7, 1 * 8);
3348     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
3349     uint64_t cgen_var_8;
3350     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle,
3351                                                          &cgen_var_8, 1);
3352     vkStream->write((uint64_t*)&cgen_var_8, 1 * 8);
3353     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
3354 }
3355 
unmarshal_VkGraphicsPipelineCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkGraphicsPipelineCreateInfo * forUnmarshaling)3356 void unmarshal_VkGraphicsPipelineCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3357                                             VkGraphicsPipelineCreateInfo* forUnmarshaling) {
3358     (void)rootType;
3359     uint32_t hasRasterization = 1;
3360     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3361         hasRasterization = (const uint32_t)vkStream->getBe32();
3362     }
3363     uint32_t hasTessellation = 1;
3364     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3365         hasTessellation = (const uint32_t)vkStream->getBe32();
3366     }
3367     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3368     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3369         rootType = forUnmarshaling->sType;
3370     }
3371     size_t pNext_size;
3372     pNext_size = vkStream->getBe32();
3373     forUnmarshaling->pNext = nullptr;
3374     if (pNext_size) {
3375         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3376         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3377         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3378         vkStream->alloc((void**)&forUnmarshaling->pNext,
3379                         goldfish_vk_extension_struct_size_with_stream_features(
3380                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3381         *(VkStructureType*)forUnmarshaling->pNext = extType;
3382         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3383     }
3384     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
3385     vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
3386     vkStream->alloc((void**)&forUnmarshaling->pStages,
3387                     forUnmarshaling->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
3388     if (forUnmarshaling) {
3389         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i) {
3390             unmarshal_VkPipelineShaderStageCreateInfo(
3391                 vkStream, rootType,
3392                 (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
3393         }
3394     }
3395     // WARNING PTR CHECK
3396     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3397         forUnmarshaling->pVertexInputState =
3398             (const VkPipelineVertexInputStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3399     }
3400     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3401          forUnmarshaling->pVertexInputState)) {
3402         vkStream->alloc((void**)&forUnmarshaling->pVertexInputState,
3403                         sizeof(const VkPipelineVertexInputStateCreateInfo));
3404         unmarshal_VkPipelineVertexInputStateCreateInfo(
3405             vkStream, rootType,
3406             (VkPipelineVertexInputStateCreateInfo*)(forUnmarshaling->pVertexInputState));
3407     }
3408     // WARNING PTR CHECK
3409     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3410         forUnmarshaling->pInputAssemblyState =
3411             (const VkPipelineInputAssemblyStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3412     }
3413     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3414          forUnmarshaling->pInputAssemblyState)) {
3415         vkStream->alloc((void**)&forUnmarshaling->pInputAssemblyState,
3416                         sizeof(const VkPipelineInputAssemblyStateCreateInfo));
3417         unmarshal_VkPipelineInputAssemblyStateCreateInfo(
3418             vkStream, rootType,
3419             (VkPipelineInputAssemblyStateCreateInfo*)(forUnmarshaling->pInputAssemblyState));
3420     }
3421     // WARNING PTR CHECK
3422     forUnmarshaling->pTessellationState =
3423         (const VkPipelineTessellationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3424     if (forUnmarshaling->pTessellationState) {
3425         if (hasTessellation) {
3426             vkStream->alloc((void**)&forUnmarshaling->pTessellationState,
3427                             sizeof(const VkPipelineTessellationStateCreateInfo));
3428             unmarshal_VkPipelineTessellationStateCreateInfo(
3429                 vkStream, rootType,
3430                 (VkPipelineTessellationStateCreateInfo*)(forUnmarshaling->pTessellationState));
3431         } else {
3432             forUnmarshaling->pTessellationState = 0;
3433         }
3434     }
3435     // WARNING PTR CHECK
3436     forUnmarshaling->pViewportState =
3437         (const VkPipelineViewportStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3438     if (forUnmarshaling->pViewportState) {
3439         if (hasRasterization) {
3440             vkStream->alloc((void**)&forUnmarshaling->pViewportState,
3441                             sizeof(const VkPipelineViewportStateCreateInfo));
3442             unmarshal_VkPipelineViewportStateCreateInfo(
3443                 vkStream, rootType,
3444                 (VkPipelineViewportStateCreateInfo*)(forUnmarshaling->pViewportState));
3445         } else {
3446             forUnmarshaling->pViewportState = 0;
3447         }
3448     }
3449     // WARNING PTR CHECK
3450     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3451         forUnmarshaling->pRasterizationState =
3452             (const VkPipelineRasterizationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3453     }
3454     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3455          forUnmarshaling->pRasterizationState)) {
3456         vkStream->alloc((void**)&forUnmarshaling->pRasterizationState,
3457                         sizeof(const VkPipelineRasterizationStateCreateInfo));
3458         unmarshal_VkPipelineRasterizationStateCreateInfo(
3459             vkStream, rootType,
3460             (VkPipelineRasterizationStateCreateInfo*)(forUnmarshaling->pRasterizationState));
3461     }
3462     // WARNING PTR CHECK
3463     forUnmarshaling->pMultisampleState =
3464         (const VkPipelineMultisampleStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3465     if (forUnmarshaling->pMultisampleState) {
3466         if (hasRasterization) {
3467             vkStream->alloc((void**)&forUnmarshaling->pMultisampleState,
3468                             sizeof(const VkPipelineMultisampleStateCreateInfo));
3469             unmarshal_VkPipelineMultisampleStateCreateInfo(
3470                 vkStream, rootType,
3471                 (VkPipelineMultisampleStateCreateInfo*)(forUnmarshaling->pMultisampleState));
3472         } else {
3473             forUnmarshaling->pMultisampleState = 0;
3474         }
3475     }
3476     // WARNING PTR CHECK
3477     forUnmarshaling->pDepthStencilState =
3478         (const VkPipelineDepthStencilStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3479     if (forUnmarshaling->pDepthStencilState) {
3480         if (hasRasterization) {
3481             vkStream->alloc((void**)&forUnmarshaling->pDepthStencilState,
3482                             sizeof(const VkPipelineDepthStencilStateCreateInfo));
3483             unmarshal_VkPipelineDepthStencilStateCreateInfo(
3484                 vkStream, rootType,
3485                 (VkPipelineDepthStencilStateCreateInfo*)(forUnmarshaling->pDepthStencilState));
3486         } else {
3487             forUnmarshaling->pDepthStencilState = 0;
3488         }
3489     }
3490     // WARNING PTR CHECK
3491     forUnmarshaling->pColorBlendState =
3492         (const VkPipelineColorBlendStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3493     if (forUnmarshaling->pColorBlendState) {
3494         if (hasRasterization) {
3495             vkStream->alloc((void**)&forUnmarshaling->pColorBlendState,
3496                             sizeof(const VkPipelineColorBlendStateCreateInfo));
3497             unmarshal_VkPipelineColorBlendStateCreateInfo(
3498                 vkStream, rootType,
3499                 (VkPipelineColorBlendStateCreateInfo*)(forUnmarshaling->pColorBlendState));
3500         } else {
3501             forUnmarshaling->pColorBlendState = 0;
3502         }
3503     }
3504     // WARNING PTR CHECK
3505     forUnmarshaling->pDynamicState =
3506         (const VkPipelineDynamicStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3507     if (forUnmarshaling->pDynamicState) {
3508         vkStream->alloc((void**)&forUnmarshaling->pDynamicState,
3509                         sizeof(const VkPipelineDynamicStateCreateInfo));
3510         unmarshal_VkPipelineDynamicStateCreateInfo(
3511             vkStream, rootType,
3512             (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState));
3513     }
3514     uint64_t cgen_var_6;
3515     vkStream->read((uint64_t*)&cgen_var_6, 1 * 8);
3516     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
3517         &cgen_var_6, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
3518     uint64_t cgen_var_7;
3519     vkStream->read((uint64_t*)&cgen_var_7, 1 * 8);
3520     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
3521         &cgen_var_7, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
3522     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
3523     uint64_t cgen_var_8;
3524     vkStream->read((uint64_t*)&cgen_var_8, 1 * 8);
3525     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
3526         &cgen_var_8, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
3527     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
3528 }
3529 
marshal_VkPushConstantRange(VulkanStream * vkStream,VkStructureType rootType,const VkPushConstantRange * forMarshaling)3530 void marshal_VkPushConstantRange(VulkanStream* vkStream, VkStructureType rootType,
3531                                  const VkPushConstantRange* forMarshaling) {
3532     (void)rootType;
3533     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
3534     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
3535     vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
3536 }
3537 
unmarshal_VkPushConstantRange(VulkanStream * vkStream,VkStructureType rootType,VkPushConstantRange * forUnmarshaling)3538 void unmarshal_VkPushConstantRange(VulkanStream* vkStream, VkStructureType rootType,
3539                                    VkPushConstantRange* forUnmarshaling) {
3540     (void)rootType;
3541     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
3542     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
3543     vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
3544 }
3545 
marshal_VkPipelineLayoutCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineLayoutCreateInfo * forMarshaling)3546 void marshal_VkPipelineLayoutCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3547                                         const VkPipelineLayoutCreateInfo* forMarshaling) {
3548     (void)rootType;
3549     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3550     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3551         rootType = forMarshaling->sType;
3552     }
3553     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3554     vkStream->write((VkPipelineLayoutCreateFlags*)&forMarshaling->flags,
3555                     sizeof(VkPipelineLayoutCreateFlags));
3556     vkStream->write((uint32_t*)&forMarshaling->setLayoutCount, sizeof(uint32_t));
3557     if (forMarshaling->setLayoutCount) {
3558         uint64_t* cgen_var_0;
3559         vkStream->alloc((void**)&cgen_var_0, forMarshaling->setLayoutCount * 8);
3560         vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
3561             forMarshaling->pSetLayouts, cgen_var_0, forMarshaling->setLayoutCount);
3562         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->setLayoutCount * 8);
3563     }
3564     vkStream->write((uint32_t*)&forMarshaling->pushConstantRangeCount, sizeof(uint32_t));
3565     if (forMarshaling) {
3566         for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i) {
3567             marshal_VkPushConstantRange(
3568                 vkStream, rootType,
3569                 (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i));
3570         }
3571     }
3572 }
3573 
unmarshal_VkPipelineLayoutCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineLayoutCreateInfo * forUnmarshaling)3574 void unmarshal_VkPipelineLayoutCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3575                                           VkPipelineLayoutCreateInfo* forUnmarshaling) {
3576     (void)rootType;
3577     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3578     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3579         rootType = forUnmarshaling->sType;
3580     }
3581     size_t pNext_size;
3582     pNext_size = vkStream->getBe32();
3583     forUnmarshaling->pNext = nullptr;
3584     if (pNext_size) {
3585         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3586         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3587         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3588         vkStream->alloc((void**)&forUnmarshaling->pNext,
3589                         goldfish_vk_extension_struct_size_with_stream_features(
3590                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3591         *(VkStructureType*)forUnmarshaling->pNext = extType;
3592         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3593     }
3594     vkStream->read((VkPipelineLayoutCreateFlags*)&forUnmarshaling->flags,
3595                    sizeof(VkPipelineLayoutCreateFlags));
3596     vkStream->read((uint32_t*)&forUnmarshaling->setLayoutCount, sizeof(uint32_t));
3597     vkStream->alloc((void**)&forUnmarshaling->pSetLayouts,
3598                     forUnmarshaling->setLayoutCount * sizeof(const VkDescriptorSetLayout));
3599     if (forUnmarshaling->setLayoutCount) {
3600         uint64_t* cgen_var_0;
3601         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->setLayoutCount * 8);
3602         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->setLayoutCount * 8);
3603         vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
3604             cgen_var_0, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts,
3605             forUnmarshaling->setLayoutCount);
3606     }
3607     vkStream->read((uint32_t*)&forUnmarshaling->pushConstantRangeCount, sizeof(uint32_t));
3608     vkStream->alloc((void**)&forUnmarshaling->pPushConstantRanges,
3609                     forUnmarshaling->pushConstantRangeCount * sizeof(const VkPushConstantRange));
3610     if (forUnmarshaling) {
3611         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i) {
3612             unmarshal_VkPushConstantRange(
3613                 vkStream, rootType,
3614                 (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i));
3615         }
3616     }
3617 }
3618 
marshal_VkSamplerCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerCreateInfo * forMarshaling)3619 void marshal_VkSamplerCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3620                                  const VkSamplerCreateInfo* forMarshaling) {
3621     (void)rootType;
3622     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3623     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3624         rootType = forMarshaling->sType;
3625     }
3626     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3627     vkStream->write((VkSamplerCreateFlags*)&forMarshaling->flags, sizeof(VkSamplerCreateFlags));
3628     vkStream->write((VkFilter*)&forMarshaling->magFilter, sizeof(VkFilter));
3629     vkStream->write((VkFilter*)&forMarshaling->minFilter, sizeof(VkFilter));
3630     vkStream->write((VkSamplerMipmapMode*)&forMarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
3631     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeU,
3632                     sizeof(VkSamplerAddressMode));
3633     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeV,
3634                     sizeof(VkSamplerAddressMode));
3635     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeW,
3636                     sizeof(VkSamplerAddressMode));
3637     vkStream->write((float*)&forMarshaling->mipLodBias, sizeof(float));
3638     vkStream->write((VkBool32*)&forMarshaling->anisotropyEnable, sizeof(VkBool32));
3639     vkStream->write((float*)&forMarshaling->maxAnisotropy, sizeof(float));
3640     vkStream->write((VkBool32*)&forMarshaling->compareEnable, sizeof(VkBool32));
3641     vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
3642     vkStream->write((float*)&forMarshaling->minLod, sizeof(float));
3643     vkStream->write((float*)&forMarshaling->maxLod, sizeof(float));
3644     vkStream->write((VkBorderColor*)&forMarshaling->borderColor, sizeof(VkBorderColor));
3645     vkStream->write((VkBool32*)&forMarshaling->unnormalizedCoordinates, sizeof(VkBool32));
3646 }
3647 
unmarshal_VkSamplerCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerCreateInfo * forUnmarshaling)3648 void unmarshal_VkSamplerCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3649                                    VkSamplerCreateInfo* forUnmarshaling) {
3650     (void)rootType;
3651     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3652     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3653         rootType = forUnmarshaling->sType;
3654     }
3655     size_t pNext_size;
3656     pNext_size = vkStream->getBe32();
3657     forUnmarshaling->pNext = nullptr;
3658     if (pNext_size) {
3659         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3660         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3661         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3662         vkStream->alloc((void**)&forUnmarshaling->pNext,
3663                         goldfish_vk_extension_struct_size_with_stream_features(
3664                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3665         *(VkStructureType*)forUnmarshaling->pNext = extType;
3666         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3667     }
3668     vkStream->read((VkSamplerCreateFlags*)&forUnmarshaling->flags, sizeof(VkSamplerCreateFlags));
3669     vkStream->read((VkFilter*)&forUnmarshaling->magFilter, sizeof(VkFilter));
3670     vkStream->read((VkFilter*)&forUnmarshaling->minFilter, sizeof(VkFilter));
3671     vkStream->read((VkSamplerMipmapMode*)&forUnmarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
3672     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeU,
3673                    sizeof(VkSamplerAddressMode));
3674     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeV,
3675                    sizeof(VkSamplerAddressMode));
3676     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeW,
3677                    sizeof(VkSamplerAddressMode));
3678     vkStream->read((float*)&forUnmarshaling->mipLodBias, sizeof(float));
3679     vkStream->read((VkBool32*)&forUnmarshaling->anisotropyEnable, sizeof(VkBool32));
3680     vkStream->read((float*)&forUnmarshaling->maxAnisotropy, sizeof(float));
3681     vkStream->read((VkBool32*)&forUnmarshaling->compareEnable, sizeof(VkBool32));
3682     vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
3683     vkStream->read((float*)&forUnmarshaling->minLod, sizeof(float));
3684     vkStream->read((float*)&forUnmarshaling->maxLod, sizeof(float));
3685     vkStream->read((VkBorderColor*)&forUnmarshaling->borderColor, sizeof(VkBorderColor));
3686     vkStream->read((VkBool32*)&forUnmarshaling->unnormalizedCoordinates, sizeof(VkBool32));
3687 }
3688 
marshal_VkCopyDescriptorSet(VulkanStream * vkStream,VkStructureType rootType,const VkCopyDescriptorSet * forMarshaling)3689 void marshal_VkCopyDescriptorSet(VulkanStream* vkStream, VkStructureType rootType,
3690                                  const VkCopyDescriptorSet* forMarshaling) {
3691     (void)rootType;
3692     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3693     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3694         rootType = forMarshaling->sType;
3695     }
3696     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3697     uint64_t cgen_var_0;
3698     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->srcSet, &cgen_var_0,
3699                                                               1);
3700     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3701     vkStream->write((uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
3702     vkStream->write((uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
3703     uint64_t cgen_var_1;
3704     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_1,
3705                                                               1);
3706     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
3707     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
3708     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
3709     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3710 }
3711 
unmarshal_VkCopyDescriptorSet(VulkanStream * vkStream,VkStructureType rootType,VkCopyDescriptorSet * forUnmarshaling)3712 void unmarshal_VkCopyDescriptorSet(VulkanStream* vkStream, VkStructureType rootType,
3713                                    VkCopyDescriptorSet* forUnmarshaling) {
3714     (void)rootType;
3715     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3716     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3717         rootType = forUnmarshaling->sType;
3718     }
3719     size_t pNext_size;
3720     pNext_size = vkStream->getBe32();
3721     forUnmarshaling->pNext = nullptr;
3722     if (pNext_size) {
3723         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3724         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3725         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3726         vkStream->alloc((void**)&forUnmarshaling->pNext,
3727                         goldfish_vk_extension_struct_size_with_stream_features(
3728                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3729         *(VkStructureType*)forUnmarshaling->pNext = extType;
3730         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3731     }
3732     uint64_t cgen_var_0;
3733     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3734     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(
3735         &cgen_var_0, (VkDescriptorSet*)&forUnmarshaling->srcSet, 1);
3736     vkStream->read((uint32_t*)&forUnmarshaling->srcBinding, sizeof(uint32_t));
3737     vkStream->read((uint32_t*)&forUnmarshaling->srcArrayElement, sizeof(uint32_t));
3738     uint64_t cgen_var_1;
3739     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
3740     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(
3741         &cgen_var_1, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
3742     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
3743     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
3744     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3745 }
3746 
marshal_VkDescriptorBufferInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorBufferInfo * forMarshaling)3747 void marshal_VkDescriptorBufferInfo(VulkanStream* vkStream, VkStructureType rootType,
3748                                     const VkDescriptorBufferInfo* forMarshaling) {
3749     (void)rootType;
3750     uint64_t cgen_var_0;
3751     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
3752     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3753     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
3754     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
3755 }
3756 
unmarshal_VkDescriptorBufferInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorBufferInfo * forUnmarshaling)3757 void unmarshal_VkDescriptorBufferInfo(VulkanStream* vkStream, VkStructureType rootType,
3758                                       VkDescriptorBufferInfo* forUnmarshaling) {
3759     (void)rootType;
3760     uint64_t cgen_var_0;
3761     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3762     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
3763                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
3764     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
3765     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
3766 }
3767 
marshal_VkDescriptorImageInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorImageInfo * forMarshaling)3768 void marshal_VkDescriptorImageInfo(VulkanStream* vkStream, VkStructureType rootType,
3769                                    const VkDescriptorImageInfo* forMarshaling) {
3770     (void)rootType;
3771     uint64_t cgen_var_0;
3772     vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_0, 1);
3773     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3774     uint64_t cgen_var_1;
3775     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_1,
3776                                                           1);
3777     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
3778     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
3779 }
3780 
unmarshal_VkDescriptorImageInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorImageInfo * forUnmarshaling)3781 void unmarshal_VkDescriptorImageInfo(VulkanStream* vkStream, VkStructureType rootType,
3782                                      VkDescriptorImageInfo* forUnmarshaling) {
3783     (void)rootType;
3784     uint64_t cgen_var_0;
3785     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3786     vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_0,
3787                                                         (VkSampler*)&forUnmarshaling->sampler, 1);
3788     uint64_t cgen_var_1;
3789     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
3790     vkStream->handleMapping()->mapHandles_u64_VkImageView(
3791         &cgen_var_1, (VkImageView*)&forUnmarshaling->imageView, 1);
3792     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
3793 }
3794 
marshal_VkDescriptorPoolSize(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorPoolSize * forMarshaling)3795 void marshal_VkDescriptorPoolSize(VulkanStream* vkStream, VkStructureType rootType,
3796                                   const VkDescriptorPoolSize* forMarshaling) {
3797     (void)rootType;
3798     vkStream->write((VkDescriptorType*)&forMarshaling->type, sizeof(VkDescriptorType));
3799     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3800 }
3801 
unmarshal_VkDescriptorPoolSize(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorPoolSize * forUnmarshaling)3802 void unmarshal_VkDescriptorPoolSize(VulkanStream* vkStream, VkStructureType rootType,
3803                                     VkDescriptorPoolSize* forUnmarshaling) {
3804     (void)rootType;
3805     vkStream->read((VkDescriptorType*)&forUnmarshaling->type, sizeof(VkDescriptorType));
3806     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3807 }
3808 
marshal_VkDescriptorPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorPoolCreateInfo * forMarshaling)3809 void marshal_VkDescriptorPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3810                                         const VkDescriptorPoolCreateInfo* forMarshaling) {
3811     (void)rootType;
3812     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3813     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3814         rootType = forMarshaling->sType;
3815     }
3816     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3817     vkStream->write((VkDescriptorPoolCreateFlags*)&forMarshaling->flags,
3818                     sizeof(VkDescriptorPoolCreateFlags));
3819     vkStream->write((uint32_t*)&forMarshaling->maxSets, sizeof(uint32_t));
3820     vkStream->write((uint32_t*)&forMarshaling->poolSizeCount, sizeof(uint32_t));
3821     if (forMarshaling) {
3822         for (uint32_t i = 0; i < (uint32_t)forMarshaling->poolSizeCount; ++i) {
3823             marshal_VkDescriptorPoolSize(
3824                 vkStream, rootType, (const VkDescriptorPoolSize*)(forMarshaling->pPoolSizes + i));
3825         }
3826     }
3827 }
3828 
unmarshal_VkDescriptorPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorPoolCreateInfo * forUnmarshaling)3829 void unmarshal_VkDescriptorPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3830                                           VkDescriptorPoolCreateInfo* forUnmarshaling) {
3831     (void)rootType;
3832     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3833     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3834         rootType = forUnmarshaling->sType;
3835     }
3836     size_t pNext_size;
3837     pNext_size = vkStream->getBe32();
3838     forUnmarshaling->pNext = nullptr;
3839     if (pNext_size) {
3840         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3841         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3842         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3843         vkStream->alloc((void**)&forUnmarshaling->pNext,
3844                         goldfish_vk_extension_struct_size_with_stream_features(
3845                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3846         *(VkStructureType*)forUnmarshaling->pNext = extType;
3847         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3848     }
3849     vkStream->read((VkDescriptorPoolCreateFlags*)&forUnmarshaling->flags,
3850                    sizeof(VkDescriptorPoolCreateFlags));
3851     vkStream->read((uint32_t*)&forUnmarshaling->maxSets, sizeof(uint32_t));
3852     vkStream->read((uint32_t*)&forUnmarshaling->poolSizeCount, sizeof(uint32_t));
3853     vkStream->alloc((void**)&forUnmarshaling->pPoolSizes,
3854                     forUnmarshaling->poolSizeCount * sizeof(const VkDescriptorPoolSize));
3855     if (forUnmarshaling) {
3856         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->poolSizeCount; ++i) {
3857             unmarshal_VkDescriptorPoolSize(
3858                 vkStream, rootType, (VkDescriptorPoolSize*)(forUnmarshaling->pPoolSizes + i));
3859         }
3860     }
3861 }
3862 
marshal_VkDescriptorSetAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetAllocateInfo * forMarshaling)3863 void marshal_VkDescriptorSetAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
3864                                          const VkDescriptorSetAllocateInfo* forMarshaling) {
3865     (void)rootType;
3866     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3867     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3868         rootType = forMarshaling->sType;
3869     }
3870     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3871     uint64_t cgen_var_0;
3872     vkStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&forMarshaling->descriptorPool,
3873                                                                &cgen_var_0, 1);
3874     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3875     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
3876     if (forMarshaling->descriptorSetCount) {
3877         uint64_t* cgen_var_1;
3878         vkStream->alloc((void**)&cgen_var_1, forMarshaling->descriptorSetCount * 8);
3879         vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
3880             forMarshaling->pSetLayouts, cgen_var_1, forMarshaling->descriptorSetCount);
3881         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->descriptorSetCount * 8);
3882     }
3883 }
3884 
unmarshal_VkDescriptorSetAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetAllocateInfo * forUnmarshaling)3885 void unmarshal_VkDescriptorSetAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
3886                                            VkDescriptorSetAllocateInfo* forUnmarshaling) {
3887     (void)rootType;
3888     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3889     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3890         rootType = forUnmarshaling->sType;
3891     }
3892     size_t pNext_size;
3893     pNext_size = vkStream->getBe32();
3894     forUnmarshaling->pNext = nullptr;
3895     if (pNext_size) {
3896         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3897         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3898         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3899         vkStream->alloc((void**)&forUnmarshaling->pNext,
3900                         goldfish_vk_extension_struct_size_with_stream_features(
3901                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3902         *(VkStructureType*)forUnmarshaling->pNext = extType;
3903         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3904     }
3905     uint64_t cgen_var_0;
3906     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3907     vkStream->handleMapping()->mapHandles_u64_VkDescriptorPool(
3908         &cgen_var_0, (VkDescriptorPool*)&forUnmarshaling->descriptorPool, 1);
3909     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
3910     vkStream->alloc((void**)&forUnmarshaling->pSetLayouts,
3911                     forUnmarshaling->descriptorSetCount * sizeof(const VkDescriptorSetLayout));
3912     if (forUnmarshaling->descriptorSetCount) {
3913         uint64_t* cgen_var_1;
3914         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
3915         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
3916         vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
3917             cgen_var_1, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts,
3918             forUnmarshaling->descriptorSetCount);
3919     }
3920 }
3921 
marshal_VkDescriptorSetLayoutBinding(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutBinding * forMarshaling)3922 void marshal_VkDescriptorSetLayoutBinding(VulkanStream* vkStream, VkStructureType rootType,
3923                                           const VkDescriptorSetLayoutBinding* forMarshaling) {
3924     (void)rootType;
3925     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
3926     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
3927     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3928     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
3929     // WARNING PTR CHECK
3930     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
3931     vkStream->putBe64(cgen_var_0);
3932     if (forMarshaling->pImmutableSamplers) {
3933         if (forMarshaling->descriptorCount) {
3934             uint64_t* cgen_var_0_0;
3935             vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->descriptorCount * 8);
3936             vkStream->handleMapping()->mapHandles_VkSampler_u64(
3937                 forMarshaling->pImmutableSamplers, cgen_var_0_0, forMarshaling->descriptorCount);
3938             vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->descriptorCount * 8);
3939         }
3940     }
3941 }
3942 
unmarshal_VkDescriptorSetLayoutBinding(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutBinding * forUnmarshaling)3943 void unmarshal_VkDescriptorSetLayoutBinding(VulkanStream* vkStream, VkStructureType rootType,
3944                                             VkDescriptorSetLayoutBinding* forUnmarshaling) {
3945     (void)rootType;
3946     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
3947     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
3948     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3949     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
3950     // WARNING PTR CHECK
3951     forUnmarshaling->pImmutableSamplers = (const VkSampler*)(uintptr_t)vkStream->getBe64();
3952     if (forUnmarshaling->pImmutableSamplers) {
3953         vkStream->alloc((void**)&forUnmarshaling->pImmutableSamplers,
3954                         forUnmarshaling->descriptorCount * sizeof(const VkSampler));
3955         if (forUnmarshaling->descriptorCount) {
3956             uint64_t* cgen_var_0_0;
3957             vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->descriptorCount * 8);
3958             vkStream->read((uint64_t*)cgen_var_0_0, forUnmarshaling->descriptorCount * 8);
3959             vkStream->handleMapping()->mapHandles_u64_VkSampler(
3960                 cgen_var_0_0, (VkSampler*)forUnmarshaling->pImmutableSamplers,
3961                 forUnmarshaling->descriptorCount);
3962         }
3963     }
3964 }
3965 
marshal_VkDescriptorSetLayoutCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutCreateInfo * forMarshaling)3966 void marshal_VkDescriptorSetLayoutCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3967                                              const VkDescriptorSetLayoutCreateInfo* forMarshaling) {
3968     (void)rootType;
3969     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3970     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3971         rootType = forMarshaling->sType;
3972     }
3973     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3974     vkStream->write((VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags,
3975                     sizeof(VkDescriptorSetLayoutCreateFlags));
3976     vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
3977     if (forMarshaling) {
3978         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i) {
3979             marshal_VkDescriptorSetLayoutBinding(
3980                 vkStream, rootType,
3981                 (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i));
3982         }
3983     }
3984 }
3985 
unmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutCreateInfo * forUnmarshaling)3986 void unmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3987                                                VkDescriptorSetLayoutCreateInfo* forUnmarshaling) {
3988     (void)rootType;
3989     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3990     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3991         rootType = forUnmarshaling->sType;
3992     }
3993     size_t pNext_size;
3994     pNext_size = vkStream->getBe32();
3995     forUnmarshaling->pNext = nullptr;
3996     if (pNext_size) {
3997         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3998         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
3999         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4000         vkStream->alloc((void**)&forUnmarshaling->pNext,
4001                         goldfish_vk_extension_struct_size_with_stream_features(
4002                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4003         *(VkStructureType*)forUnmarshaling->pNext = extType;
4004         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4005     }
4006     vkStream->read((VkDescriptorSetLayoutCreateFlags*)&forUnmarshaling->flags,
4007                    sizeof(VkDescriptorSetLayoutCreateFlags));
4008     vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
4009     vkStream->alloc((void**)&forUnmarshaling->pBindings,
4010                     forUnmarshaling->bindingCount * sizeof(const VkDescriptorSetLayoutBinding));
4011     if (forUnmarshaling) {
4012         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindingCount; ++i) {
4013             unmarshal_VkDescriptorSetLayoutBinding(
4014                 vkStream, rootType,
4015                 (VkDescriptorSetLayoutBinding*)(forUnmarshaling->pBindings + i));
4016         }
4017     }
4018 }
4019 
marshal_VkWriteDescriptorSet(VulkanStream * vkStream,VkStructureType rootType,const VkWriteDescriptorSet * forMarshaling)4020 void marshal_VkWriteDescriptorSet(VulkanStream* vkStream, VkStructureType rootType,
4021                                   const VkWriteDescriptorSet* forMarshaling) {
4022     (void)rootType;
4023     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4024     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4025         rootType = forMarshaling->sType;
4026     }
4027     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4028     uint64_t cgen_var_0;
4029     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_0,
4030                                                               1);
4031     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4032     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
4033     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
4034     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
4035     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
4036     // WARNING PTR CHECK
4037     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
4038     vkStream->putBe64(cgen_var_1);
4039     if (forMarshaling->pImageInfo) {
4040         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4041              ((VK_DESCRIPTOR_TYPE_SAMPLER == forMarshaling->descriptorType) ||
4042               (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forMarshaling->descriptorType) ||
4043               (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forMarshaling->descriptorType) ||
4044               (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forMarshaling->descriptorType) ||
4045               (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forMarshaling->descriptorType)))) {
4046             if (forMarshaling) {
4047                 for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i) {
4048                     marshal_VkDescriptorImageInfo(
4049                         vkStream, rootType,
4050                         (const VkDescriptorImageInfo*)(forMarshaling->pImageInfo + i));
4051                 }
4052             }
4053         }
4054     }
4055     // WARNING PTR CHECK
4056     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
4057     vkStream->putBe64(cgen_var_2);
4058     if (forMarshaling->pBufferInfo) {
4059         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4060              ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forMarshaling->descriptorType) ||
4061               (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forMarshaling->descriptorType) ||
4062               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forMarshaling->descriptorType) ||
4063               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forMarshaling->descriptorType)))) {
4064             if (forMarshaling) {
4065                 for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i) {
4066                     marshal_VkDescriptorBufferInfo(
4067                         vkStream, rootType,
4068                         (const VkDescriptorBufferInfo*)(forMarshaling->pBufferInfo + i));
4069                 }
4070             }
4071         }
4072     }
4073     // WARNING PTR CHECK
4074     uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
4075     vkStream->putBe64(cgen_var_3);
4076     if (forMarshaling->pTexelBufferView) {
4077         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4078              ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forMarshaling->descriptorType) ||
4079               (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forMarshaling->descriptorType)))) {
4080             if (forMarshaling->descriptorCount) {
4081                 uint64_t* cgen_var_3_0;
4082                 vkStream->alloc((void**)&cgen_var_3_0, forMarshaling->descriptorCount * 8);
4083                 vkStream->handleMapping()->mapHandles_VkBufferView_u64(
4084                     forMarshaling->pTexelBufferView, cgen_var_3_0, forMarshaling->descriptorCount);
4085                 vkStream->write((uint64_t*)cgen_var_3_0, forMarshaling->descriptorCount * 8);
4086             }
4087         }
4088     }
4089 }
4090 
unmarshal_VkWriteDescriptorSet(VulkanStream * vkStream,VkStructureType rootType,VkWriteDescriptorSet * forUnmarshaling)4091 void unmarshal_VkWriteDescriptorSet(VulkanStream* vkStream, VkStructureType rootType,
4092                                     VkWriteDescriptorSet* forUnmarshaling) {
4093     (void)rootType;
4094     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4095     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4096         rootType = forUnmarshaling->sType;
4097     }
4098     size_t pNext_size;
4099     pNext_size = vkStream->getBe32();
4100     forUnmarshaling->pNext = nullptr;
4101     if (pNext_size) {
4102         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4103         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4104         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4105         vkStream->alloc((void**)&forUnmarshaling->pNext,
4106                         goldfish_vk_extension_struct_size_with_stream_features(
4107                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4108         *(VkStructureType*)forUnmarshaling->pNext = extType;
4109         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4110     }
4111     uint64_t cgen_var_0;
4112     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4113     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(
4114         &cgen_var_0, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
4115     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
4116     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
4117     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
4118     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
4119     // WARNING PTR CHECK
4120     forUnmarshaling->pImageInfo = (const VkDescriptorImageInfo*)(uintptr_t)vkStream->getBe64();
4121     if (forUnmarshaling->pImageInfo) {
4122         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4123              ((VK_DESCRIPTOR_TYPE_SAMPLER == forUnmarshaling->descriptorType) ||
4124               (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forUnmarshaling->descriptorType) ||
4125               (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forUnmarshaling->descriptorType) ||
4126               (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forUnmarshaling->descriptorType) ||
4127               (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forUnmarshaling->descriptorType)))) {
4128             vkStream->alloc((void**)&forUnmarshaling->pImageInfo,
4129                             forUnmarshaling->descriptorCount * sizeof(const VkDescriptorImageInfo));
4130             if (forUnmarshaling) {
4131                 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i) {
4132                     unmarshal_VkDescriptorImageInfo(
4133                         vkStream, rootType,
4134                         (VkDescriptorImageInfo*)(forUnmarshaling->pImageInfo + i));
4135                 }
4136             }
4137         } else {
4138             forUnmarshaling->pImageInfo = 0;
4139         }
4140     }
4141     // WARNING PTR CHECK
4142     forUnmarshaling->pBufferInfo = (const VkDescriptorBufferInfo*)(uintptr_t)vkStream->getBe64();
4143     if (forUnmarshaling->pBufferInfo) {
4144         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4145              ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forUnmarshaling->descriptorType) ||
4146               (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forUnmarshaling->descriptorType) ||
4147               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forUnmarshaling->descriptorType) ||
4148               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forUnmarshaling->descriptorType)))) {
4149             vkStream->alloc(
4150                 (void**)&forUnmarshaling->pBufferInfo,
4151                 forUnmarshaling->descriptorCount * sizeof(const VkDescriptorBufferInfo));
4152             if (forUnmarshaling) {
4153                 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i) {
4154                     unmarshal_VkDescriptorBufferInfo(
4155                         vkStream, rootType,
4156                         (VkDescriptorBufferInfo*)(forUnmarshaling->pBufferInfo + i));
4157                 }
4158             }
4159         } else {
4160             forUnmarshaling->pBufferInfo = 0;
4161         }
4162     }
4163     // WARNING PTR CHECK
4164     forUnmarshaling->pTexelBufferView = (const VkBufferView*)(uintptr_t)vkStream->getBe64();
4165     if (forUnmarshaling->pTexelBufferView) {
4166         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4167              ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forUnmarshaling->descriptorType) ||
4168               (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forUnmarshaling->descriptorType)))) {
4169             vkStream->alloc((void**)&forUnmarshaling->pTexelBufferView,
4170                             forUnmarshaling->descriptorCount * sizeof(const VkBufferView));
4171             if (forUnmarshaling->descriptorCount) {
4172                 uint64_t* cgen_var_3_0;
4173                 vkStream->alloc((void**)&cgen_var_3_0, forUnmarshaling->descriptorCount * 8);
4174                 vkStream->read((uint64_t*)cgen_var_3_0, forUnmarshaling->descriptorCount * 8);
4175                 vkStream->handleMapping()->mapHandles_u64_VkBufferView(
4176                     cgen_var_3_0, (VkBufferView*)forUnmarshaling->pTexelBufferView,
4177                     forUnmarshaling->descriptorCount);
4178             }
4179         } else {
4180             forUnmarshaling->pTexelBufferView = 0;
4181         }
4182     }
4183 }
4184 
marshal_VkAttachmentDescription(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentDescription * forMarshaling)4185 void marshal_VkAttachmentDescription(VulkanStream* vkStream, VkStructureType rootType,
4186                                      const VkAttachmentDescription* forMarshaling) {
4187     (void)rootType;
4188     vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags,
4189                     sizeof(VkAttachmentDescriptionFlags));
4190     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
4191     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
4192     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
4193     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
4194     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
4195     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp,
4196                     sizeof(VkAttachmentStoreOp));
4197     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
4198     vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
4199 }
4200 
unmarshal_VkAttachmentDescription(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentDescription * forUnmarshaling)4201 void unmarshal_VkAttachmentDescription(VulkanStream* vkStream, VkStructureType rootType,
4202                                        VkAttachmentDescription* forUnmarshaling) {
4203     (void)rootType;
4204     vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags,
4205                    sizeof(VkAttachmentDescriptionFlags));
4206     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
4207     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
4208                    sizeof(VkSampleCountFlagBits));
4209     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
4210     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
4211     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp,
4212                    sizeof(VkAttachmentLoadOp));
4213     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp,
4214                    sizeof(VkAttachmentStoreOp));
4215     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
4216     vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
4217 }
4218 
marshal_VkAttachmentReference(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentReference * forMarshaling)4219 void marshal_VkAttachmentReference(VulkanStream* vkStream, VkStructureType rootType,
4220                                    const VkAttachmentReference* forMarshaling) {
4221     (void)rootType;
4222     vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
4223     vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
4224 }
4225 
unmarshal_VkAttachmentReference(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentReference * forUnmarshaling)4226 void unmarshal_VkAttachmentReference(VulkanStream* vkStream, VkStructureType rootType,
4227                                      VkAttachmentReference* forUnmarshaling) {
4228     (void)rootType;
4229     vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
4230     vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
4231 }
4232 
marshal_VkFramebufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkFramebufferCreateInfo * forMarshaling)4233 void marshal_VkFramebufferCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
4234                                      const VkFramebufferCreateInfo* forMarshaling) {
4235     (void)rootType;
4236     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4237     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4238         rootType = forMarshaling->sType;
4239     }
4240     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4241     vkStream->write((VkFramebufferCreateFlags*)&forMarshaling->flags,
4242                     sizeof(VkFramebufferCreateFlags));
4243     uint64_t cgen_var_0;
4244     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0,
4245                                                            1);
4246     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4247     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
4248     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4249          (((forMarshaling->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0)))) {
4250         if (forMarshaling->attachmentCount) {
4251             uint64_t* cgen_var_0_0;
4252             vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->attachmentCount * 8);
4253             vkStream->handleMapping()->mapHandles_VkImageView_u64(
4254                 forMarshaling->pAttachments, cgen_var_0_0, forMarshaling->attachmentCount);
4255             vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->attachmentCount * 8);
4256         }
4257     }
4258     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
4259     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
4260     vkStream->write((uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
4261 }
4262 
unmarshal_VkFramebufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkFramebufferCreateInfo * forUnmarshaling)4263 void unmarshal_VkFramebufferCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
4264                                        VkFramebufferCreateInfo* forUnmarshaling) {
4265     (void)rootType;
4266     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4267     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4268         rootType = forUnmarshaling->sType;
4269     }
4270     size_t pNext_size;
4271     pNext_size = vkStream->getBe32();
4272     forUnmarshaling->pNext = nullptr;
4273     if (pNext_size) {
4274         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4275         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4276         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4277         vkStream->alloc((void**)&forUnmarshaling->pNext,
4278                         goldfish_vk_extension_struct_size_with_stream_features(
4279                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4280         *(VkStructureType*)forUnmarshaling->pNext = extType;
4281         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4282     }
4283     vkStream->read((VkFramebufferCreateFlags*)&forUnmarshaling->flags,
4284                    sizeof(VkFramebufferCreateFlags));
4285     uint64_t cgen_var_0;
4286     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4287     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
4288         &cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
4289     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
4290     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
4291          (((forUnmarshaling->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0)))) {
4292         vkStream->alloc((void**)&forUnmarshaling->pAttachments,
4293                         forUnmarshaling->attachmentCount * sizeof(const VkImageView));
4294         if (forUnmarshaling->attachmentCount) {
4295             uint64_t* cgen_var_0_0;
4296             vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->attachmentCount * 8);
4297             vkStream->read((uint64_t*)cgen_var_0_0, forUnmarshaling->attachmentCount * 8);
4298             vkStream->handleMapping()->mapHandles_u64_VkImageView(
4299                 cgen_var_0_0, (VkImageView*)forUnmarshaling->pAttachments,
4300                 forUnmarshaling->attachmentCount);
4301         }
4302     } else {
4303         forUnmarshaling->pAttachments = 0;
4304     }
4305     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
4306     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
4307     vkStream->read((uint32_t*)&forUnmarshaling->layers, sizeof(uint32_t));
4308 }
4309 
marshal_VkSubpassDescription(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassDescription * forMarshaling)4310 void marshal_VkSubpassDescription(VulkanStream* vkStream, VkStructureType rootType,
4311                                   const VkSubpassDescription* forMarshaling) {
4312     (void)rootType;
4313     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags,
4314                     sizeof(VkSubpassDescriptionFlags));
4315     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
4316                     sizeof(VkPipelineBindPoint));
4317     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
4318     if (forMarshaling) {
4319         for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i) {
4320             marshal_VkAttachmentReference(
4321                 vkStream, rootType,
4322                 (const VkAttachmentReference*)(forMarshaling->pInputAttachments + i));
4323         }
4324     }
4325     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
4326     if (forMarshaling) {
4327         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
4328             marshal_VkAttachmentReference(
4329                 vkStream, rootType,
4330                 (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i));
4331         }
4332     }
4333     // WARNING PTR CHECK
4334     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
4335     vkStream->putBe64(cgen_var_0);
4336     if (forMarshaling->pResolveAttachments) {
4337         if (forMarshaling) {
4338             for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
4339                 marshal_VkAttachmentReference(
4340                     vkStream, rootType,
4341                     (const VkAttachmentReference*)(forMarshaling->pResolveAttachments + i));
4342             }
4343         }
4344     }
4345     // WARNING PTR CHECK
4346     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
4347     vkStream->putBe64(cgen_var_1);
4348     if (forMarshaling->pDepthStencilAttachment) {
4349         marshal_VkAttachmentReference(
4350             vkStream, rootType,
4351             (const VkAttachmentReference*)(forMarshaling->pDepthStencilAttachment));
4352     }
4353     vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
4354     vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments,
4355                     forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
4356 }
4357 
unmarshal_VkSubpassDescription(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDescription * forUnmarshaling)4358 void unmarshal_VkSubpassDescription(VulkanStream* vkStream, VkStructureType rootType,
4359                                     VkSubpassDescription* forUnmarshaling) {
4360     (void)rootType;
4361     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags,
4362                    sizeof(VkSubpassDescriptionFlags));
4363     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
4364                    sizeof(VkPipelineBindPoint));
4365     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
4366     vkStream->alloc((void**)&forUnmarshaling->pInputAttachments,
4367                     forUnmarshaling->inputAttachmentCount * sizeof(const VkAttachmentReference));
4368     if (forUnmarshaling) {
4369         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i) {
4370             unmarshal_VkAttachmentReference(
4371                 vkStream, rootType,
4372                 (VkAttachmentReference*)(forUnmarshaling->pInputAttachments + i));
4373         }
4374     }
4375     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
4376     vkStream->alloc((void**)&forUnmarshaling->pColorAttachments,
4377                     forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference));
4378     if (forUnmarshaling) {
4379         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
4380             unmarshal_VkAttachmentReference(
4381                 vkStream, rootType,
4382                 (VkAttachmentReference*)(forUnmarshaling->pColorAttachments + i));
4383         }
4384     }
4385     // WARNING PTR CHECK
4386     forUnmarshaling->pResolveAttachments =
4387         (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
4388     if (forUnmarshaling->pResolveAttachments) {
4389         vkStream->alloc(
4390             (void**)&forUnmarshaling->pResolveAttachments,
4391             forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference));
4392         if (forUnmarshaling) {
4393             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
4394                 unmarshal_VkAttachmentReference(
4395                     vkStream, rootType,
4396                     (VkAttachmentReference*)(forUnmarshaling->pResolveAttachments + i));
4397             }
4398         }
4399     }
4400     // WARNING PTR CHECK
4401     forUnmarshaling->pDepthStencilAttachment =
4402         (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
4403     if (forUnmarshaling->pDepthStencilAttachment) {
4404         vkStream->alloc((void**)&forUnmarshaling->pDepthStencilAttachment,
4405                         sizeof(const VkAttachmentReference));
4406         unmarshal_VkAttachmentReference(
4407             vkStream, rootType, (VkAttachmentReference*)(forUnmarshaling->pDepthStencilAttachment));
4408     }
4409     vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
4410     vkStream->alloc((void**)&forUnmarshaling->pPreserveAttachments,
4411                     forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
4412     vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments,
4413                    forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
4414 }
4415 
marshal_VkSubpassDependency(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassDependency * forMarshaling)4416 void marshal_VkSubpassDependency(VulkanStream* vkStream, VkStructureType rootType,
4417                                  const VkSubpassDependency* forMarshaling) {
4418     (void)rootType;
4419     vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
4420     vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
4421     vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask,
4422                     sizeof(VkPipelineStageFlags));
4423     vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask,
4424                     sizeof(VkPipelineStageFlags));
4425     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
4426     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
4427     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
4428 }
4429 
unmarshal_VkSubpassDependency(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDependency * forUnmarshaling)4430 void unmarshal_VkSubpassDependency(VulkanStream* vkStream, VkStructureType rootType,
4431                                    VkSubpassDependency* forUnmarshaling) {
4432     (void)rootType;
4433     vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
4434     vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
4435     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask,
4436                    sizeof(VkPipelineStageFlags));
4437     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask,
4438                    sizeof(VkPipelineStageFlags));
4439     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
4440     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
4441     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags,
4442                    sizeof(VkDependencyFlags));
4443 }
4444 
marshal_VkRenderPassCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassCreateInfo * forMarshaling)4445 void marshal_VkRenderPassCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
4446                                     const VkRenderPassCreateInfo* forMarshaling) {
4447     (void)rootType;
4448     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4449     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4450         rootType = forMarshaling->sType;
4451     }
4452     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4453     vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags,
4454                     sizeof(VkRenderPassCreateFlags));
4455     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
4456     if (forMarshaling) {
4457         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
4458             marshal_VkAttachmentDescription(
4459                 vkStream, rootType,
4460                 (const VkAttachmentDescription*)(forMarshaling->pAttachments + i));
4461         }
4462     }
4463     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
4464     if (forMarshaling) {
4465         for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i) {
4466             marshal_VkSubpassDescription(
4467                 vkStream, rootType, (const VkSubpassDescription*)(forMarshaling->pSubpasses + i));
4468         }
4469     }
4470     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
4471     if (forMarshaling) {
4472         for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i) {
4473             marshal_VkSubpassDependency(
4474                 vkStream, rootType, (const VkSubpassDependency*)(forMarshaling->pDependencies + i));
4475         }
4476     }
4477 }
4478 
unmarshal_VkRenderPassCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassCreateInfo * forUnmarshaling)4479 void unmarshal_VkRenderPassCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
4480                                       VkRenderPassCreateInfo* forUnmarshaling) {
4481     (void)rootType;
4482     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4483     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4484         rootType = forUnmarshaling->sType;
4485     }
4486     size_t pNext_size;
4487     pNext_size = vkStream->getBe32();
4488     forUnmarshaling->pNext = nullptr;
4489     if (pNext_size) {
4490         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4491         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4492         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4493         vkStream->alloc((void**)&forUnmarshaling->pNext,
4494                         goldfish_vk_extension_struct_size_with_stream_features(
4495                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4496         *(VkStructureType*)forUnmarshaling->pNext = extType;
4497         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4498     }
4499     vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags,
4500                    sizeof(VkRenderPassCreateFlags));
4501     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
4502     vkStream->alloc((void**)&forUnmarshaling->pAttachments,
4503                     forUnmarshaling->attachmentCount * sizeof(const VkAttachmentDescription));
4504     if (forUnmarshaling) {
4505         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
4506             unmarshal_VkAttachmentDescription(
4507                 vkStream, rootType, (VkAttachmentDescription*)(forUnmarshaling->pAttachments + i));
4508         }
4509     }
4510     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
4511     vkStream->alloc((void**)&forUnmarshaling->pSubpasses,
4512                     forUnmarshaling->subpassCount * sizeof(const VkSubpassDescription));
4513     if (forUnmarshaling) {
4514         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i) {
4515             unmarshal_VkSubpassDescription(
4516                 vkStream, rootType, (VkSubpassDescription*)(forUnmarshaling->pSubpasses + i));
4517         }
4518     }
4519     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
4520     vkStream->alloc((void**)&forUnmarshaling->pDependencies,
4521                     forUnmarshaling->dependencyCount * sizeof(const VkSubpassDependency));
4522     if (forUnmarshaling) {
4523         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i) {
4524             unmarshal_VkSubpassDependency(
4525                 vkStream, rootType, (VkSubpassDependency*)(forUnmarshaling->pDependencies + i));
4526         }
4527     }
4528 }
4529 
marshal_VkCommandPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkCommandPoolCreateInfo * forMarshaling)4530 void marshal_VkCommandPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
4531                                      const VkCommandPoolCreateInfo* forMarshaling) {
4532     (void)rootType;
4533     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4534     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4535         rootType = forMarshaling->sType;
4536     }
4537     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4538     vkStream->write((VkCommandPoolCreateFlags*)&forMarshaling->flags,
4539                     sizeof(VkCommandPoolCreateFlags));
4540     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
4541 }
4542 
unmarshal_VkCommandPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandPoolCreateInfo * forUnmarshaling)4543 void unmarshal_VkCommandPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
4544                                        VkCommandPoolCreateInfo* forUnmarshaling) {
4545     (void)rootType;
4546     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4547     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4548         rootType = forUnmarshaling->sType;
4549     }
4550     size_t pNext_size;
4551     pNext_size = vkStream->getBe32();
4552     forUnmarshaling->pNext = nullptr;
4553     if (pNext_size) {
4554         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4555         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4556         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4557         vkStream->alloc((void**)&forUnmarshaling->pNext,
4558                         goldfish_vk_extension_struct_size_with_stream_features(
4559                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4560         *(VkStructureType*)forUnmarshaling->pNext = extType;
4561         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4562     }
4563     vkStream->read((VkCommandPoolCreateFlags*)&forUnmarshaling->flags,
4564                    sizeof(VkCommandPoolCreateFlags));
4565     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
4566 }
4567 
marshal_VkCommandBufferAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferAllocateInfo * forMarshaling)4568 void marshal_VkCommandBufferAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
4569                                          const VkCommandBufferAllocateInfo* forMarshaling) {
4570     (void)rootType;
4571     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4572     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4573         rootType = forMarshaling->sType;
4574     }
4575     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4576     uint64_t cgen_var_0;
4577     vkStream->handleMapping()->mapHandles_VkCommandPool_u64(&forMarshaling->commandPool,
4578                                                             &cgen_var_0, 1);
4579     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4580     vkStream->write((VkCommandBufferLevel*)&forMarshaling->level, sizeof(VkCommandBufferLevel));
4581     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
4582 }
4583 
unmarshal_VkCommandBufferAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferAllocateInfo * forUnmarshaling)4584 void unmarshal_VkCommandBufferAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
4585                                            VkCommandBufferAllocateInfo* forUnmarshaling) {
4586     (void)rootType;
4587     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4588     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4589         rootType = forUnmarshaling->sType;
4590     }
4591     size_t pNext_size;
4592     pNext_size = vkStream->getBe32();
4593     forUnmarshaling->pNext = nullptr;
4594     if (pNext_size) {
4595         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4596         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4597         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4598         vkStream->alloc((void**)&forUnmarshaling->pNext,
4599                         goldfish_vk_extension_struct_size_with_stream_features(
4600                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4601         *(VkStructureType*)forUnmarshaling->pNext = extType;
4602         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4603     }
4604     uint64_t cgen_var_0;
4605     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4606     vkStream->handleMapping()->mapHandles_u64_VkCommandPool(
4607         &cgen_var_0, (VkCommandPool*)&forUnmarshaling->commandPool, 1);
4608     vkStream->read((VkCommandBufferLevel*)&forUnmarshaling->level, sizeof(VkCommandBufferLevel));
4609     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
4610 }
4611 
marshal_VkCommandBufferInheritanceInfo(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceInfo * forMarshaling)4612 void marshal_VkCommandBufferInheritanceInfo(VulkanStream* vkStream, VkStructureType rootType,
4613                                             const VkCommandBufferInheritanceInfo* forMarshaling) {
4614     (void)rootType;
4615     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4616     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4617         rootType = forMarshaling->sType;
4618     }
4619     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4620     uint64_t cgen_var_0;
4621     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0,
4622                                                            1);
4623     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4624     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
4625     uint64_t cgen_var_1;
4626     vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer,
4627                                                             &cgen_var_1, 1);
4628     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
4629     vkStream->write((VkBool32*)&forMarshaling->occlusionQueryEnable, sizeof(VkBool32));
4630     vkStream->write((VkQueryControlFlags*)&forMarshaling->queryFlags, sizeof(VkQueryControlFlags));
4631     vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics,
4632                     sizeof(VkQueryPipelineStatisticFlags));
4633 }
4634 
unmarshal_VkCommandBufferInheritanceInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferInheritanceInfo * forUnmarshaling)4635 void unmarshal_VkCommandBufferInheritanceInfo(VulkanStream* vkStream, VkStructureType rootType,
4636                                               VkCommandBufferInheritanceInfo* forUnmarshaling) {
4637     (void)rootType;
4638     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4639     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4640         rootType = forUnmarshaling->sType;
4641     }
4642     size_t pNext_size;
4643     pNext_size = vkStream->getBe32();
4644     forUnmarshaling->pNext = nullptr;
4645     if (pNext_size) {
4646         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4647         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4648         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4649         vkStream->alloc((void**)&forUnmarshaling->pNext,
4650                         goldfish_vk_extension_struct_size_with_stream_features(
4651                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4652         *(VkStructureType*)forUnmarshaling->pNext = extType;
4653         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4654     }
4655     uint64_t cgen_var_0;
4656     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4657     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
4658         &cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
4659     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
4660     uint64_t cgen_var_1;
4661     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
4662     vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(
4663         &cgen_var_1, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
4664     vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryEnable, sizeof(VkBool32));
4665     vkStream->read((VkQueryControlFlags*)&forUnmarshaling->queryFlags, sizeof(VkQueryControlFlags));
4666     vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics,
4667                    sizeof(VkQueryPipelineStatisticFlags));
4668 }
4669 
marshal_VkCommandBufferBeginInfo(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferBeginInfo * forMarshaling)4670 void marshal_VkCommandBufferBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
4671                                       const VkCommandBufferBeginInfo* forMarshaling) {
4672     (void)rootType;
4673     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4674     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4675         rootType = forMarshaling->sType;
4676     }
4677     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4678     vkStream->write((VkCommandBufferUsageFlags*)&forMarshaling->flags,
4679                     sizeof(VkCommandBufferUsageFlags));
4680     // WARNING PTR CHECK
4681     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
4682     vkStream->putBe64(cgen_var_0);
4683     if (forMarshaling->pInheritanceInfo) {
4684         marshal_VkCommandBufferInheritanceInfo(
4685             vkStream, rootType,
4686             (const VkCommandBufferInheritanceInfo*)(forMarshaling->pInheritanceInfo));
4687     }
4688 }
4689 
unmarshal_VkCommandBufferBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferBeginInfo * forUnmarshaling)4690 void unmarshal_VkCommandBufferBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
4691                                         VkCommandBufferBeginInfo* forUnmarshaling) {
4692     (void)rootType;
4693     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4694     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4695         rootType = forUnmarshaling->sType;
4696     }
4697     size_t pNext_size;
4698     pNext_size = vkStream->getBe32();
4699     forUnmarshaling->pNext = nullptr;
4700     if (pNext_size) {
4701         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4702         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4703         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4704         vkStream->alloc((void**)&forUnmarshaling->pNext,
4705                         goldfish_vk_extension_struct_size_with_stream_features(
4706                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4707         *(VkStructureType*)forUnmarshaling->pNext = extType;
4708         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4709     }
4710     vkStream->read((VkCommandBufferUsageFlags*)&forUnmarshaling->flags,
4711                    sizeof(VkCommandBufferUsageFlags));
4712     // WARNING PTR CHECK
4713     forUnmarshaling->pInheritanceInfo =
4714         (const VkCommandBufferInheritanceInfo*)(uintptr_t)vkStream->getBe64();
4715     if (forUnmarshaling->pInheritanceInfo) {
4716         vkStream->alloc((void**)&forUnmarshaling->pInheritanceInfo,
4717                         sizeof(const VkCommandBufferInheritanceInfo));
4718         unmarshal_VkCommandBufferInheritanceInfo(
4719             vkStream, rootType,
4720             (VkCommandBufferInheritanceInfo*)(forUnmarshaling->pInheritanceInfo));
4721     }
4722 }
4723 
marshal_VkBufferCopy(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCopy * forMarshaling)4724 void marshal_VkBufferCopy(VulkanStream* vkStream, VkStructureType rootType,
4725                           const VkBufferCopy* forMarshaling) {
4726     (void)rootType;
4727     vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
4728     vkStream->write((VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
4729     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
4730 }
4731 
unmarshal_VkBufferCopy(VulkanStream * vkStream,VkStructureType rootType,VkBufferCopy * forUnmarshaling)4732 void unmarshal_VkBufferCopy(VulkanStream* vkStream, VkStructureType rootType,
4733                             VkBufferCopy* forUnmarshaling) {
4734     (void)rootType;
4735     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
4736     vkStream->read((VkDeviceSize*)&forUnmarshaling->dstOffset, sizeof(VkDeviceSize));
4737     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
4738 }
4739 
marshal_VkImageSubresourceLayers(VulkanStream * vkStream,VkStructureType rootType,const VkImageSubresourceLayers * forMarshaling)4740 void marshal_VkImageSubresourceLayers(VulkanStream* vkStream, VkStructureType rootType,
4741                                       const VkImageSubresourceLayers* forMarshaling) {
4742     (void)rootType;
4743     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
4744     vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
4745     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
4746     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
4747 }
4748 
unmarshal_VkImageSubresourceLayers(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresourceLayers * forUnmarshaling)4749 void unmarshal_VkImageSubresourceLayers(VulkanStream* vkStream, VkStructureType rootType,
4750                                         VkImageSubresourceLayers* forUnmarshaling) {
4751     (void)rootType;
4752     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
4753     vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
4754     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
4755     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
4756 }
4757 
marshal_VkBufferImageCopy(VulkanStream * vkStream,VkStructureType rootType,const VkBufferImageCopy * forMarshaling)4758 void marshal_VkBufferImageCopy(VulkanStream* vkStream, VkStructureType rootType,
4759                                const VkBufferImageCopy* forMarshaling) {
4760     (void)rootType;
4761     vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
4762     vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
4763     vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
4764     marshal_VkImageSubresourceLayers(vkStream, rootType,
4765                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
4766     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
4767     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
4768 }
4769 
unmarshal_VkBufferImageCopy(VulkanStream * vkStream,VkStructureType rootType,VkBufferImageCopy * forUnmarshaling)4770 void unmarshal_VkBufferImageCopy(VulkanStream* vkStream, VkStructureType rootType,
4771                                  VkBufferImageCopy* forUnmarshaling) {
4772     (void)rootType;
4773     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
4774     vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
4775     vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
4776     unmarshal_VkImageSubresourceLayers(
4777         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
4778     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
4779     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
4780 }
4781 
marshal_VkClearColorValue(VulkanStream * vkStream,VkStructureType rootType,const VkClearColorValue * forMarshaling)4782 void marshal_VkClearColorValue(VulkanStream* vkStream, VkStructureType rootType,
4783                                const VkClearColorValue* forMarshaling) {
4784     (void)rootType;
4785     vkStream->write((float*)forMarshaling->float32, 4 * sizeof(float));
4786 }
4787 
unmarshal_VkClearColorValue(VulkanStream * vkStream,VkStructureType rootType,VkClearColorValue * forUnmarshaling)4788 void unmarshal_VkClearColorValue(VulkanStream* vkStream, VkStructureType rootType,
4789                                  VkClearColorValue* forUnmarshaling) {
4790     (void)rootType;
4791     vkStream->read((float*)forUnmarshaling->float32, 4 * sizeof(float));
4792 }
4793 
marshal_VkClearDepthStencilValue(VulkanStream * vkStream,VkStructureType rootType,const VkClearDepthStencilValue * forMarshaling)4794 void marshal_VkClearDepthStencilValue(VulkanStream* vkStream, VkStructureType rootType,
4795                                       const VkClearDepthStencilValue* forMarshaling) {
4796     (void)rootType;
4797     vkStream->write((float*)&forMarshaling->depth, sizeof(float));
4798     vkStream->write((uint32_t*)&forMarshaling->stencil, sizeof(uint32_t));
4799 }
4800 
unmarshal_VkClearDepthStencilValue(VulkanStream * vkStream,VkStructureType rootType,VkClearDepthStencilValue * forUnmarshaling)4801 void unmarshal_VkClearDepthStencilValue(VulkanStream* vkStream, VkStructureType rootType,
4802                                         VkClearDepthStencilValue* forUnmarshaling) {
4803     (void)rootType;
4804     vkStream->read((float*)&forUnmarshaling->depth, sizeof(float));
4805     vkStream->read((uint32_t*)&forUnmarshaling->stencil, sizeof(uint32_t));
4806 }
4807 
marshal_VkClearValue(VulkanStream * vkStream,VkStructureType rootType,const VkClearValue * forMarshaling)4808 void marshal_VkClearValue(VulkanStream* vkStream, VkStructureType rootType,
4809                           const VkClearValue* forMarshaling) {
4810     (void)rootType;
4811     marshal_VkClearColorValue(vkStream, rootType, (VkClearColorValue*)(&forMarshaling->color));
4812 }
4813 
unmarshal_VkClearValue(VulkanStream * vkStream,VkStructureType rootType,VkClearValue * forUnmarshaling)4814 void unmarshal_VkClearValue(VulkanStream* vkStream, VkStructureType rootType,
4815                             VkClearValue* forUnmarshaling) {
4816     (void)rootType;
4817     unmarshal_VkClearColorValue(vkStream, rootType, (VkClearColorValue*)(&forUnmarshaling->color));
4818 }
4819 
marshal_VkClearAttachment(VulkanStream * vkStream,VkStructureType rootType,const VkClearAttachment * forMarshaling)4820 void marshal_VkClearAttachment(VulkanStream* vkStream, VkStructureType rootType,
4821                                const VkClearAttachment* forMarshaling) {
4822     (void)rootType;
4823     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
4824     vkStream->write((uint32_t*)&forMarshaling->colorAttachment, sizeof(uint32_t));
4825     marshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue));
4826 }
4827 
unmarshal_VkClearAttachment(VulkanStream * vkStream,VkStructureType rootType,VkClearAttachment * forUnmarshaling)4828 void unmarshal_VkClearAttachment(VulkanStream* vkStream, VkStructureType rootType,
4829                                  VkClearAttachment* forUnmarshaling) {
4830     (void)rootType;
4831     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
4832     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachment, sizeof(uint32_t));
4833     unmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forUnmarshaling->clearValue));
4834 }
4835 
marshal_VkClearRect(VulkanStream * vkStream,VkStructureType rootType,const VkClearRect * forMarshaling)4836 void marshal_VkClearRect(VulkanStream* vkStream, VkStructureType rootType,
4837                          const VkClearRect* forMarshaling) {
4838     (void)rootType;
4839     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->rect));
4840     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
4841     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
4842 }
4843 
unmarshal_VkClearRect(VulkanStream * vkStream,VkStructureType rootType,VkClearRect * forUnmarshaling)4844 void unmarshal_VkClearRect(VulkanStream* vkStream, VkStructureType rootType,
4845                            VkClearRect* forUnmarshaling) {
4846     (void)rootType;
4847     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->rect));
4848     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
4849     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
4850 }
4851 
marshal_VkImageBlit(VulkanStream * vkStream,VkStructureType rootType,const VkImageBlit * forMarshaling)4852 void marshal_VkImageBlit(VulkanStream* vkStream, VkStructureType rootType,
4853                          const VkImageBlit* forMarshaling) {
4854     (void)rootType;
4855     marshal_VkImageSubresourceLayers(vkStream, rootType,
4856                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4857     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4858         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->srcOffsets + i));
4859     }
4860     marshal_VkImageSubresourceLayers(vkStream, rootType,
4861                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4862     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4863         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->dstOffsets + i));
4864     }
4865 }
4866 
unmarshal_VkImageBlit(VulkanStream * vkStream,VkStructureType rootType,VkImageBlit * forUnmarshaling)4867 void unmarshal_VkImageBlit(VulkanStream* vkStream, VkStructureType rootType,
4868                            VkImageBlit* forUnmarshaling) {
4869     (void)rootType;
4870     unmarshal_VkImageSubresourceLayers(
4871         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4872     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4873         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
4874     }
4875     unmarshal_VkImageSubresourceLayers(
4876         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4877     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4878         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
4879     }
4880 }
4881 
marshal_VkImageCopy(VulkanStream * vkStream,VkStructureType rootType,const VkImageCopy * forMarshaling)4882 void marshal_VkImageCopy(VulkanStream* vkStream, VkStructureType rootType,
4883                          const VkImageCopy* forMarshaling) {
4884     (void)rootType;
4885     marshal_VkImageSubresourceLayers(vkStream, rootType,
4886                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4887     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
4888     marshal_VkImageSubresourceLayers(vkStream, rootType,
4889                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4890     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
4891     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
4892 }
4893 
unmarshal_VkImageCopy(VulkanStream * vkStream,VkStructureType rootType,VkImageCopy * forUnmarshaling)4894 void unmarshal_VkImageCopy(VulkanStream* vkStream, VkStructureType rootType,
4895                            VkImageCopy* forUnmarshaling) {
4896     (void)rootType;
4897     unmarshal_VkImageSubresourceLayers(
4898         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4899     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
4900     unmarshal_VkImageSubresourceLayers(
4901         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4902     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
4903     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
4904 }
4905 
marshal_VkImageResolve(VulkanStream * vkStream,VkStructureType rootType,const VkImageResolve * forMarshaling)4906 void marshal_VkImageResolve(VulkanStream* vkStream, VkStructureType rootType,
4907                             const VkImageResolve* forMarshaling) {
4908     (void)rootType;
4909     marshal_VkImageSubresourceLayers(vkStream, rootType,
4910                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4911     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
4912     marshal_VkImageSubresourceLayers(vkStream, rootType,
4913                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4914     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
4915     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
4916 }
4917 
unmarshal_VkImageResolve(VulkanStream * vkStream,VkStructureType rootType,VkImageResolve * forUnmarshaling)4918 void unmarshal_VkImageResolve(VulkanStream* vkStream, VkStructureType rootType,
4919                               VkImageResolve* forUnmarshaling) {
4920     (void)rootType;
4921     unmarshal_VkImageSubresourceLayers(
4922         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4923     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
4924     unmarshal_VkImageSubresourceLayers(
4925         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4926     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
4927     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
4928 }
4929 
marshal_VkRenderPassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassBeginInfo * forMarshaling)4930 void marshal_VkRenderPassBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
4931                                    const VkRenderPassBeginInfo* forMarshaling) {
4932     (void)rootType;
4933     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4934     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4935         rootType = forMarshaling->sType;
4936     }
4937     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4938     uint64_t cgen_var_0;
4939     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0,
4940                                                            1);
4941     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4942     uint64_t cgen_var_1;
4943     vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer,
4944                                                             &cgen_var_1, 1);
4945     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
4946     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea));
4947     vkStream->write((uint32_t*)&forMarshaling->clearValueCount, sizeof(uint32_t));
4948     // WARNING PTR CHECK
4949     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
4950     vkStream->putBe64(cgen_var_2);
4951     if (forMarshaling->pClearValues) {
4952         if (forMarshaling) {
4953             for (uint32_t i = 0; i < (uint32_t)forMarshaling->clearValueCount; ++i) {
4954                 marshal_VkClearValue(vkStream, rootType,
4955                                      (const VkClearValue*)(forMarshaling->pClearValues + i));
4956             }
4957         }
4958     }
4959 }
4960 
unmarshal_VkRenderPassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassBeginInfo * forUnmarshaling)4961 void unmarshal_VkRenderPassBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
4962                                      VkRenderPassBeginInfo* forUnmarshaling) {
4963     (void)rootType;
4964     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4965     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4966         rootType = forUnmarshaling->sType;
4967     }
4968     size_t pNext_size;
4969     pNext_size = vkStream->getBe32();
4970     forUnmarshaling->pNext = nullptr;
4971     if (pNext_size) {
4972         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4973         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
4974         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4975         vkStream->alloc((void**)&forUnmarshaling->pNext,
4976                         goldfish_vk_extension_struct_size_with_stream_features(
4977                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4978         *(VkStructureType*)forUnmarshaling->pNext = extType;
4979         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4980     }
4981     uint64_t cgen_var_0;
4982     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4983     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
4984         &cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
4985     uint64_t cgen_var_1;
4986     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
4987     vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(
4988         &cgen_var_1, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
4989     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea));
4990     vkStream->read((uint32_t*)&forUnmarshaling->clearValueCount, sizeof(uint32_t));
4991     // WARNING PTR CHECK
4992     forUnmarshaling->pClearValues = (const VkClearValue*)(uintptr_t)vkStream->getBe64();
4993     if (forUnmarshaling->pClearValues) {
4994         vkStream->alloc((void**)&forUnmarshaling->pClearValues,
4995                         forUnmarshaling->clearValueCount * sizeof(const VkClearValue));
4996         if (forUnmarshaling) {
4997             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->clearValueCount; ++i) {
4998                 unmarshal_VkClearValue(vkStream, rootType,
4999                                        (VkClearValue*)(forUnmarshaling->pClearValues + i));
5000             }
5001         }
5002     }
5003 }
5004 
5005 #endif
5006 #ifdef VK_VERSION_1_1
marshal_VkPhysicalDeviceSubgroupProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupProperties * forMarshaling)5007 void marshal_VkPhysicalDeviceSubgroupProperties(
5008     VulkanStream* vkStream, VkStructureType rootType,
5009     const VkPhysicalDeviceSubgroupProperties* forMarshaling) {
5010     (void)rootType;
5011     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5012     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5013         rootType = forMarshaling->sType;
5014     }
5015     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5016     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
5017     vkStream->write((VkShaderStageFlags*)&forMarshaling->supportedStages,
5018                     sizeof(VkShaderStageFlags));
5019     vkStream->write((VkSubgroupFeatureFlags*)&forMarshaling->supportedOperations,
5020                     sizeof(VkSubgroupFeatureFlags));
5021     vkStream->write((VkBool32*)&forMarshaling->quadOperationsInAllStages, sizeof(VkBool32));
5022 }
5023 
unmarshal_VkPhysicalDeviceSubgroupProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupProperties * forUnmarshaling)5024 void unmarshal_VkPhysicalDeviceSubgroupProperties(
5025     VulkanStream* vkStream, VkStructureType rootType,
5026     VkPhysicalDeviceSubgroupProperties* forUnmarshaling) {
5027     (void)rootType;
5028     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5029     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5030         rootType = forUnmarshaling->sType;
5031     }
5032     size_t pNext_size;
5033     pNext_size = vkStream->getBe32();
5034     forUnmarshaling->pNext = nullptr;
5035     if (pNext_size) {
5036         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5037         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5038         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5039         vkStream->alloc((void**)&forUnmarshaling->pNext,
5040                         goldfish_vk_extension_struct_size_with_stream_features(
5041                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5042         *(VkStructureType*)forUnmarshaling->pNext = extType;
5043         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5044     }
5045     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
5046     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->supportedStages,
5047                    sizeof(VkShaderStageFlags));
5048     vkStream->read((VkSubgroupFeatureFlags*)&forUnmarshaling->supportedOperations,
5049                    sizeof(VkSubgroupFeatureFlags));
5050     vkStream->read((VkBool32*)&forUnmarshaling->quadOperationsInAllStages, sizeof(VkBool32));
5051 }
5052 
marshal_VkBindBufferMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBindBufferMemoryInfo * forMarshaling)5053 void marshal_VkBindBufferMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
5054                                     const VkBindBufferMemoryInfo* forMarshaling) {
5055     (void)rootType;
5056     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5057     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5058         rootType = forMarshaling->sType;
5059     }
5060     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5061     uint64_t cgen_var_0;
5062     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
5063     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5064     uint64_t cgen_var_1;
5065     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1,
5066                                                              1);
5067     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
5068     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
5069 }
5070 
unmarshal_VkBindBufferMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindBufferMemoryInfo * forUnmarshaling)5071 void unmarshal_VkBindBufferMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
5072                                       VkBindBufferMemoryInfo* forUnmarshaling) {
5073     (void)rootType;
5074     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5075     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5076         rootType = forUnmarshaling->sType;
5077     }
5078     size_t pNext_size;
5079     pNext_size = vkStream->getBe32();
5080     forUnmarshaling->pNext = nullptr;
5081     if (pNext_size) {
5082         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5083         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5084         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5085         vkStream->alloc((void**)&forUnmarshaling->pNext,
5086                         goldfish_vk_extension_struct_size_with_stream_features(
5087                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5088         *(VkStructureType*)forUnmarshaling->pNext = extType;
5089         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5090     }
5091     uint64_t cgen_var_0;
5092     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5093     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
5094                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
5095     uint64_t cgen_var_1;
5096     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
5097     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
5098         &cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
5099     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
5100 }
5101 
marshal_VkBindImageMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBindImageMemoryInfo * forMarshaling)5102 void marshal_VkBindImageMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
5103                                    const VkBindImageMemoryInfo* forMarshaling) {
5104     (void)rootType;
5105     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5106     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5107         rootType = forMarshaling->sType;
5108     }
5109     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5110     uint64_t cgen_var_0;
5111     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
5112     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5113     uint64_t cgen_var_1;
5114     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1,
5115                                                              1);
5116     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
5117     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
5118 }
5119 
unmarshal_VkBindImageMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindImageMemoryInfo * forUnmarshaling)5120 void unmarshal_VkBindImageMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
5121                                      VkBindImageMemoryInfo* forUnmarshaling) {
5122     (void)rootType;
5123     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5124     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5125         rootType = forUnmarshaling->sType;
5126     }
5127     size_t pNext_size;
5128     pNext_size = vkStream->getBe32();
5129     forUnmarshaling->pNext = nullptr;
5130     if (pNext_size) {
5131         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5132         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5133         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5134         vkStream->alloc((void**)&forUnmarshaling->pNext,
5135                         goldfish_vk_extension_struct_size_with_stream_features(
5136                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5137         *(VkStructureType*)forUnmarshaling->pNext = extType;
5138         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5139     }
5140     uint64_t cgen_var_0;
5141     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5142     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
5143                                                       (VkImage*)&forUnmarshaling->image, 1);
5144     uint64_t cgen_var_1;
5145     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
5146     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
5147         &cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
5148     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
5149 }
5150 
marshal_VkPhysicalDevice16BitStorageFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevice16BitStorageFeatures * forMarshaling)5151 void marshal_VkPhysicalDevice16BitStorageFeatures(
5152     VulkanStream* vkStream, VkStructureType rootType,
5153     const VkPhysicalDevice16BitStorageFeatures* forMarshaling) {
5154     (void)rootType;
5155     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5156     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5157         rootType = forMarshaling->sType;
5158     }
5159     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5160     vkStream->write((VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
5161     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess,
5162                     sizeof(VkBool32));
5163     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
5164     vkStream->write((VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
5165 }
5166 
unmarshal_VkPhysicalDevice16BitStorageFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevice16BitStorageFeatures * forUnmarshaling)5167 void unmarshal_VkPhysicalDevice16BitStorageFeatures(
5168     VulkanStream* vkStream, VkStructureType rootType,
5169     VkPhysicalDevice16BitStorageFeatures* forUnmarshaling) {
5170     (void)rootType;
5171     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5172     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5173         rootType = forUnmarshaling->sType;
5174     }
5175     size_t pNext_size;
5176     pNext_size = vkStream->getBe32();
5177     forUnmarshaling->pNext = nullptr;
5178     if (pNext_size) {
5179         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5180         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5181         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5182         vkStream->alloc((void**)&forUnmarshaling->pNext,
5183                         goldfish_vk_extension_struct_size_with_stream_features(
5184                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5185         *(VkStructureType*)forUnmarshaling->pNext = extType;
5186         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5187     }
5188     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
5189     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess,
5190                    sizeof(VkBool32));
5191     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant16, sizeof(VkBool32));
5192     vkStream->read((VkBool32*)&forUnmarshaling->storageInputOutput16, sizeof(VkBool32));
5193 }
5194 
marshal_VkMemoryDedicatedRequirements(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryDedicatedRequirements * forMarshaling)5195 void marshal_VkMemoryDedicatedRequirements(VulkanStream* vkStream, VkStructureType rootType,
5196                                            const VkMemoryDedicatedRequirements* forMarshaling) {
5197     (void)rootType;
5198     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5199     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5200         rootType = forMarshaling->sType;
5201     }
5202     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5203     vkStream->write((VkBool32*)&forMarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
5204     vkStream->write((VkBool32*)&forMarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
5205 }
5206 
unmarshal_VkMemoryDedicatedRequirements(VulkanStream * vkStream,VkStructureType rootType,VkMemoryDedicatedRequirements * forUnmarshaling)5207 void unmarshal_VkMemoryDedicatedRequirements(VulkanStream* vkStream, VkStructureType rootType,
5208                                              VkMemoryDedicatedRequirements* forUnmarshaling) {
5209     (void)rootType;
5210     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5211     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5212         rootType = forUnmarshaling->sType;
5213     }
5214     size_t pNext_size;
5215     pNext_size = vkStream->getBe32();
5216     forUnmarshaling->pNext = nullptr;
5217     if (pNext_size) {
5218         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5219         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5220         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5221         vkStream->alloc((void**)&forUnmarshaling->pNext,
5222                         goldfish_vk_extension_struct_size_with_stream_features(
5223                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5224         *(VkStructureType*)forUnmarshaling->pNext = extType;
5225         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5226     }
5227     vkStream->read((VkBool32*)&forUnmarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
5228     vkStream->read((VkBool32*)&forUnmarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
5229 }
5230 
marshal_VkMemoryDedicatedAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryDedicatedAllocateInfo * forMarshaling)5231 void marshal_VkMemoryDedicatedAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
5232                                            const VkMemoryDedicatedAllocateInfo* forMarshaling) {
5233     (void)rootType;
5234     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5235     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5236         rootType = forMarshaling->sType;
5237     }
5238     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5239     uint64_t cgen_var_0;
5240     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
5241     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5242     uint64_t cgen_var_1;
5243     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_1, 1);
5244     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
5245 }
5246 
unmarshal_VkMemoryDedicatedAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryDedicatedAllocateInfo * forUnmarshaling)5247 void unmarshal_VkMemoryDedicatedAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
5248                                              VkMemoryDedicatedAllocateInfo* forUnmarshaling) {
5249     (void)rootType;
5250     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5251     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5252         rootType = forUnmarshaling->sType;
5253     }
5254     size_t pNext_size;
5255     pNext_size = vkStream->getBe32();
5256     forUnmarshaling->pNext = nullptr;
5257     if (pNext_size) {
5258         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5259         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5260         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5261         vkStream->alloc((void**)&forUnmarshaling->pNext,
5262                         goldfish_vk_extension_struct_size_with_stream_features(
5263                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5264         *(VkStructureType*)forUnmarshaling->pNext = extType;
5265         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5266     }
5267     uint64_t cgen_var_0;
5268     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5269     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
5270                                                       (VkImage*)&forUnmarshaling->image, 1);
5271     uint64_t cgen_var_1;
5272     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
5273     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
5274                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
5275 }
5276 
marshal_VkMemoryAllocateFlagsInfo(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryAllocateFlagsInfo * forMarshaling)5277 void marshal_VkMemoryAllocateFlagsInfo(VulkanStream* vkStream, VkStructureType rootType,
5278                                        const VkMemoryAllocateFlagsInfo* forMarshaling) {
5279     (void)rootType;
5280     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5281     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5282         rootType = forMarshaling->sType;
5283     }
5284     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5285     vkStream->write((VkMemoryAllocateFlags*)&forMarshaling->flags, sizeof(VkMemoryAllocateFlags));
5286     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
5287 }
5288 
unmarshal_VkMemoryAllocateFlagsInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryAllocateFlagsInfo * forUnmarshaling)5289 void unmarshal_VkMemoryAllocateFlagsInfo(VulkanStream* vkStream, VkStructureType rootType,
5290                                          VkMemoryAllocateFlagsInfo* forUnmarshaling) {
5291     (void)rootType;
5292     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5293     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5294         rootType = forUnmarshaling->sType;
5295     }
5296     size_t pNext_size;
5297     pNext_size = vkStream->getBe32();
5298     forUnmarshaling->pNext = nullptr;
5299     if (pNext_size) {
5300         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5301         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5302         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5303         vkStream->alloc((void**)&forUnmarshaling->pNext,
5304                         goldfish_vk_extension_struct_size_with_stream_features(
5305                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5306         *(VkStructureType*)forUnmarshaling->pNext = extType;
5307         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5308     }
5309     vkStream->read((VkMemoryAllocateFlags*)&forUnmarshaling->flags, sizeof(VkMemoryAllocateFlags));
5310     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
5311 }
5312 
marshal_VkDeviceGroupRenderPassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupRenderPassBeginInfo * forMarshaling)5313 void marshal_VkDeviceGroupRenderPassBeginInfo(
5314     VulkanStream* vkStream, VkStructureType rootType,
5315     const VkDeviceGroupRenderPassBeginInfo* forMarshaling) {
5316     (void)rootType;
5317     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5318     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5319         rootType = forMarshaling->sType;
5320     }
5321     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5322     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
5323     vkStream->write((uint32_t*)&forMarshaling->deviceRenderAreaCount, sizeof(uint32_t));
5324     if (forMarshaling) {
5325         for (uint32_t i = 0; i < (uint32_t)forMarshaling->deviceRenderAreaCount; ++i) {
5326             marshal_VkRect2D(vkStream, rootType,
5327                              (const VkRect2D*)(forMarshaling->pDeviceRenderAreas + i));
5328         }
5329     }
5330 }
5331 
unmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupRenderPassBeginInfo * forUnmarshaling)5332 void unmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
5333                                                 VkDeviceGroupRenderPassBeginInfo* forUnmarshaling) {
5334     (void)rootType;
5335     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5336     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5337         rootType = forUnmarshaling->sType;
5338     }
5339     size_t pNext_size;
5340     pNext_size = vkStream->getBe32();
5341     forUnmarshaling->pNext = nullptr;
5342     if (pNext_size) {
5343         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5344         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5345         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5346         vkStream->alloc((void**)&forUnmarshaling->pNext,
5347                         goldfish_vk_extension_struct_size_with_stream_features(
5348                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5349         *(VkStructureType*)forUnmarshaling->pNext = extType;
5350         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5351     }
5352     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
5353     vkStream->read((uint32_t*)&forUnmarshaling->deviceRenderAreaCount, sizeof(uint32_t));
5354     vkStream->alloc((void**)&forUnmarshaling->pDeviceRenderAreas,
5355                     forUnmarshaling->deviceRenderAreaCount * sizeof(const VkRect2D));
5356     if (forUnmarshaling) {
5357         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->deviceRenderAreaCount; ++i) {
5358             unmarshal_VkRect2D(vkStream, rootType,
5359                                (VkRect2D*)(forUnmarshaling->pDeviceRenderAreas + i));
5360         }
5361     }
5362 }
5363 
marshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupCommandBufferBeginInfo * forMarshaling)5364 void marshal_VkDeviceGroupCommandBufferBeginInfo(
5365     VulkanStream* vkStream, VkStructureType rootType,
5366     const VkDeviceGroupCommandBufferBeginInfo* forMarshaling) {
5367     (void)rootType;
5368     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5369     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5370         rootType = forMarshaling->sType;
5371     }
5372     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5373     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
5374 }
5375 
unmarshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupCommandBufferBeginInfo * forUnmarshaling)5376 void unmarshal_VkDeviceGroupCommandBufferBeginInfo(
5377     VulkanStream* vkStream, VkStructureType rootType,
5378     VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling) {
5379     (void)rootType;
5380     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5381     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5382         rootType = forUnmarshaling->sType;
5383     }
5384     size_t pNext_size;
5385     pNext_size = vkStream->getBe32();
5386     forUnmarshaling->pNext = nullptr;
5387     if (pNext_size) {
5388         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5389         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5390         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5391         vkStream->alloc((void**)&forUnmarshaling->pNext,
5392                         goldfish_vk_extension_struct_size_with_stream_features(
5393                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5394         *(VkStructureType*)forUnmarshaling->pNext = extType;
5395         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5396     }
5397     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
5398 }
5399 
marshal_VkDeviceGroupSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupSubmitInfo * forMarshaling)5400 void marshal_VkDeviceGroupSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
5401                                      const VkDeviceGroupSubmitInfo* forMarshaling) {
5402     (void)rootType;
5403     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5404     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5405         rootType = forMarshaling->sType;
5406     }
5407     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5408     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
5409     vkStream->write((const uint32_t*)forMarshaling->pWaitSemaphoreDeviceIndices,
5410                     forMarshaling->waitSemaphoreCount * sizeof(const uint32_t));
5411     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
5412     vkStream->write((const uint32_t*)forMarshaling->pCommandBufferDeviceMasks,
5413                     forMarshaling->commandBufferCount * sizeof(const uint32_t));
5414     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
5415     vkStream->write((const uint32_t*)forMarshaling->pSignalSemaphoreDeviceIndices,
5416                     forMarshaling->signalSemaphoreCount * sizeof(const uint32_t));
5417 }
5418 
unmarshal_VkDeviceGroupSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupSubmitInfo * forUnmarshaling)5419 void unmarshal_VkDeviceGroupSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
5420                                        VkDeviceGroupSubmitInfo* forUnmarshaling) {
5421     (void)rootType;
5422     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5423     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5424         rootType = forUnmarshaling->sType;
5425     }
5426     size_t pNext_size;
5427     pNext_size = vkStream->getBe32();
5428     forUnmarshaling->pNext = nullptr;
5429     if (pNext_size) {
5430         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5431         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5432         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5433         vkStream->alloc((void**)&forUnmarshaling->pNext,
5434                         goldfish_vk_extension_struct_size_with_stream_features(
5435                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5436         *(VkStructureType*)forUnmarshaling->pNext = extType;
5437         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5438     }
5439     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
5440     vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphoreDeviceIndices,
5441                     forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t));
5442     vkStream->read((uint32_t*)forUnmarshaling->pWaitSemaphoreDeviceIndices,
5443                    forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t));
5444     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
5445     vkStream->alloc((void**)&forUnmarshaling->pCommandBufferDeviceMasks,
5446                     forUnmarshaling->commandBufferCount * sizeof(const uint32_t));
5447     vkStream->read((uint32_t*)forUnmarshaling->pCommandBufferDeviceMasks,
5448                    forUnmarshaling->commandBufferCount * sizeof(const uint32_t));
5449     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
5450     vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphoreDeviceIndices,
5451                     forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t));
5452     vkStream->read((uint32_t*)forUnmarshaling->pSignalSemaphoreDeviceIndices,
5453                    forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t));
5454 }
5455 
marshal_VkDeviceGroupBindSparseInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupBindSparseInfo * forMarshaling)5456 void marshal_VkDeviceGroupBindSparseInfo(VulkanStream* vkStream, VkStructureType rootType,
5457                                          const VkDeviceGroupBindSparseInfo* forMarshaling) {
5458     (void)rootType;
5459     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5460     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5461         rootType = forMarshaling->sType;
5462     }
5463     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5464     vkStream->write((uint32_t*)&forMarshaling->resourceDeviceIndex, sizeof(uint32_t));
5465     vkStream->write((uint32_t*)&forMarshaling->memoryDeviceIndex, sizeof(uint32_t));
5466 }
5467 
unmarshal_VkDeviceGroupBindSparseInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupBindSparseInfo * forUnmarshaling)5468 void unmarshal_VkDeviceGroupBindSparseInfo(VulkanStream* vkStream, VkStructureType rootType,
5469                                            VkDeviceGroupBindSparseInfo* forUnmarshaling) {
5470     (void)rootType;
5471     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5472     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5473         rootType = forUnmarshaling->sType;
5474     }
5475     size_t pNext_size;
5476     pNext_size = vkStream->getBe32();
5477     forUnmarshaling->pNext = nullptr;
5478     if (pNext_size) {
5479         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5480         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5481         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5482         vkStream->alloc((void**)&forUnmarshaling->pNext,
5483                         goldfish_vk_extension_struct_size_with_stream_features(
5484                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5485         *(VkStructureType*)forUnmarshaling->pNext = extType;
5486         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5487     }
5488     vkStream->read((uint32_t*)&forUnmarshaling->resourceDeviceIndex, sizeof(uint32_t));
5489     vkStream->read((uint32_t*)&forUnmarshaling->memoryDeviceIndex, sizeof(uint32_t));
5490 }
5491 
marshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBindBufferMemoryDeviceGroupInfo * forMarshaling)5492 void marshal_VkBindBufferMemoryDeviceGroupInfo(
5493     VulkanStream* vkStream, VkStructureType rootType,
5494     const VkBindBufferMemoryDeviceGroupInfo* forMarshaling) {
5495     (void)rootType;
5496     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5497     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5498         rootType = forMarshaling->sType;
5499     }
5500     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5501     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
5502     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices,
5503                     forMarshaling->deviceIndexCount * sizeof(const uint32_t));
5504 }
5505 
unmarshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindBufferMemoryDeviceGroupInfo * forUnmarshaling)5506 void unmarshal_VkBindBufferMemoryDeviceGroupInfo(
5507     VulkanStream* vkStream, VkStructureType rootType,
5508     VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling) {
5509     (void)rootType;
5510     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5511     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5512         rootType = forUnmarshaling->sType;
5513     }
5514     size_t pNext_size;
5515     pNext_size = vkStream->getBe32();
5516     forUnmarshaling->pNext = nullptr;
5517     if (pNext_size) {
5518         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5519         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5520         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5521         vkStream->alloc((void**)&forUnmarshaling->pNext,
5522                         goldfish_vk_extension_struct_size_with_stream_features(
5523                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5524         *(VkStructureType*)forUnmarshaling->pNext = extType;
5525         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5526     }
5527     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
5528     vkStream->alloc((void**)&forUnmarshaling->pDeviceIndices,
5529                     forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
5530     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices,
5531                    forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
5532 }
5533 
marshal_VkBindImageMemoryDeviceGroupInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBindImageMemoryDeviceGroupInfo * forMarshaling)5534 void marshal_VkBindImageMemoryDeviceGroupInfo(
5535     VulkanStream* vkStream, VkStructureType rootType,
5536     const VkBindImageMemoryDeviceGroupInfo* forMarshaling) {
5537     (void)rootType;
5538     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5539     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5540         rootType = forMarshaling->sType;
5541     }
5542     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5543     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
5544     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices,
5545                     forMarshaling->deviceIndexCount * sizeof(const uint32_t));
5546     vkStream->write((uint32_t*)&forMarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
5547     if (forMarshaling) {
5548         for (uint32_t i = 0; i < (uint32_t)forMarshaling->splitInstanceBindRegionCount; ++i) {
5549             marshal_VkRect2D(vkStream, rootType,
5550                              (const VkRect2D*)(forMarshaling->pSplitInstanceBindRegions + i));
5551         }
5552     }
5553 }
5554 
unmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindImageMemoryDeviceGroupInfo * forUnmarshaling)5555 void unmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStream* vkStream, VkStructureType rootType,
5556                                                 VkBindImageMemoryDeviceGroupInfo* forUnmarshaling) {
5557     (void)rootType;
5558     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5559     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5560         rootType = forUnmarshaling->sType;
5561     }
5562     size_t pNext_size;
5563     pNext_size = vkStream->getBe32();
5564     forUnmarshaling->pNext = nullptr;
5565     if (pNext_size) {
5566         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5567         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5568         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5569         vkStream->alloc((void**)&forUnmarshaling->pNext,
5570                         goldfish_vk_extension_struct_size_with_stream_features(
5571                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5572         *(VkStructureType*)forUnmarshaling->pNext = extType;
5573         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5574     }
5575     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
5576     vkStream->alloc((void**)&forUnmarshaling->pDeviceIndices,
5577                     forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
5578     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices,
5579                    forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
5580     vkStream->read((uint32_t*)&forUnmarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
5581     vkStream->alloc((void**)&forUnmarshaling->pSplitInstanceBindRegions,
5582                     forUnmarshaling->splitInstanceBindRegionCount * sizeof(const VkRect2D));
5583     if (forUnmarshaling) {
5584         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->splitInstanceBindRegionCount; ++i) {
5585             unmarshal_VkRect2D(vkStream, rootType,
5586                                (VkRect2D*)(forUnmarshaling->pSplitInstanceBindRegions + i));
5587         }
5588     }
5589 }
5590 
marshal_VkPhysicalDeviceGroupProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceGroupProperties * forMarshaling)5591 void marshal_VkPhysicalDeviceGroupProperties(VulkanStream* vkStream, VkStructureType rootType,
5592                                              const VkPhysicalDeviceGroupProperties* forMarshaling) {
5593     (void)rootType;
5594     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5595     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5596         rootType = forMarshaling->sType;
5597     }
5598     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5599     vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
5600     vkStream->write((VkPhysicalDevice*)forMarshaling->physicalDevices,
5601                     VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
5602     vkStream->write((VkBool32*)&forMarshaling->subsetAllocation, sizeof(VkBool32));
5603 }
5604 
unmarshal_VkPhysicalDeviceGroupProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceGroupProperties * forUnmarshaling)5605 void unmarshal_VkPhysicalDeviceGroupProperties(VulkanStream* vkStream, VkStructureType rootType,
5606                                                VkPhysicalDeviceGroupProperties* forUnmarshaling) {
5607     (void)rootType;
5608     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5609     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5610         rootType = forUnmarshaling->sType;
5611     }
5612     size_t pNext_size;
5613     pNext_size = vkStream->getBe32();
5614     forUnmarshaling->pNext = nullptr;
5615     if (pNext_size) {
5616         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5617         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5618         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5619         vkStream->alloc((void**)&forUnmarshaling->pNext,
5620                         goldfish_vk_extension_struct_size_with_stream_features(
5621                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5622         *(VkStructureType*)forUnmarshaling->pNext = extType;
5623         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5624     }
5625     vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
5626     vkStream->read((VkPhysicalDevice*)forUnmarshaling->physicalDevices,
5627                    VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
5628     vkStream->read((VkBool32*)&forUnmarshaling->subsetAllocation, sizeof(VkBool32));
5629 }
5630 
marshal_VkDeviceGroupDeviceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupDeviceCreateInfo * forMarshaling)5631 void marshal_VkDeviceGroupDeviceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
5632                                            const VkDeviceGroupDeviceCreateInfo* forMarshaling) {
5633     (void)rootType;
5634     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5635     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5636         rootType = forMarshaling->sType;
5637     }
5638     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5639     vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
5640     if (forMarshaling->physicalDeviceCount) {
5641         uint64_t* cgen_var_0;
5642         vkStream->alloc((void**)&cgen_var_0, forMarshaling->physicalDeviceCount * 8);
5643         vkStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(
5644             forMarshaling->pPhysicalDevices, cgen_var_0, forMarshaling->physicalDeviceCount);
5645         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->physicalDeviceCount * 8);
5646     }
5647 }
5648 
unmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupDeviceCreateInfo * forUnmarshaling)5649 void unmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
5650                                              VkDeviceGroupDeviceCreateInfo* forUnmarshaling) {
5651     (void)rootType;
5652     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5653     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5654         rootType = forUnmarshaling->sType;
5655     }
5656     size_t pNext_size;
5657     pNext_size = vkStream->getBe32();
5658     forUnmarshaling->pNext = nullptr;
5659     if (pNext_size) {
5660         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5661         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5662         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5663         vkStream->alloc((void**)&forUnmarshaling->pNext,
5664                         goldfish_vk_extension_struct_size_with_stream_features(
5665                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5666         *(VkStructureType*)forUnmarshaling->pNext = extType;
5667         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5668     }
5669     vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
5670     vkStream->alloc((void**)&forUnmarshaling->pPhysicalDevices,
5671                     forUnmarshaling->physicalDeviceCount * sizeof(const VkPhysicalDevice));
5672     if (forUnmarshaling->physicalDeviceCount) {
5673         uint64_t* cgen_var_0;
5674         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->physicalDeviceCount * 8);
5675         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->physicalDeviceCount * 8);
5676         vkStream->handleMapping()->mapHandles_u64_VkPhysicalDevice(
5677             cgen_var_0, (VkPhysicalDevice*)forUnmarshaling->pPhysicalDevices,
5678             forUnmarshaling->physicalDeviceCount);
5679     }
5680 }
5681 
marshal_VkBufferMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkBufferMemoryRequirementsInfo2 * forMarshaling)5682 void marshal_VkBufferMemoryRequirementsInfo2(VulkanStream* vkStream, VkStructureType rootType,
5683                                              const VkBufferMemoryRequirementsInfo2* forMarshaling) {
5684     (void)rootType;
5685     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5686     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5687         rootType = forMarshaling->sType;
5688     }
5689     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5690     uint64_t cgen_var_0;
5691     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
5692     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5693 }
5694 
unmarshal_VkBufferMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,VkBufferMemoryRequirementsInfo2 * forUnmarshaling)5695 void unmarshal_VkBufferMemoryRequirementsInfo2(VulkanStream* vkStream, VkStructureType rootType,
5696                                                VkBufferMemoryRequirementsInfo2* forUnmarshaling) {
5697     (void)rootType;
5698     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5699     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5700         rootType = forUnmarshaling->sType;
5701     }
5702     size_t pNext_size;
5703     pNext_size = vkStream->getBe32();
5704     forUnmarshaling->pNext = nullptr;
5705     if (pNext_size) {
5706         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5707         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5708         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5709         vkStream->alloc((void**)&forUnmarshaling->pNext,
5710                         goldfish_vk_extension_struct_size_with_stream_features(
5711                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5712         *(VkStructureType*)forUnmarshaling->pNext = extType;
5713         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5714     }
5715     uint64_t cgen_var_0;
5716     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5717     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
5718                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
5719 }
5720 
marshal_VkImageMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkImageMemoryRequirementsInfo2 * forMarshaling)5721 void marshal_VkImageMemoryRequirementsInfo2(VulkanStream* vkStream, VkStructureType rootType,
5722                                             const VkImageMemoryRequirementsInfo2* forMarshaling) {
5723     (void)rootType;
5724     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5725     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5726         rootType = forMarshaling->sType;
5727     }
5728     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5729     uint64_t cgen_var_0;
5730     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
5731     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5732 }
5733 
unmarshal_VkImageMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,VkImageMemoryRequirementsInfo2 * forUnmarshaling)5734 void unmarshal_VkImageMemoryRequirementsInfo2(VulkanStream* vkStream, VkStructureType rootType,
5735                                               VkImageMemoryRequirementsInfo2* forUnmarshaling) {
5736     (void)rootType;
5737     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5739         rootType = forUnmarshaling->sType;
5740     }
5741     size_t pNext_size;
5742     pNext_size = vkStream->getBe32();
5743     forUnmarshaling->pNext = nullptr;
5744     if (pNext_size) {
5745         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5746         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5747         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5748         vkStream->alloc((void**)&forUnmarshaling->pNext,
5749                         goldfish_vk_extension_struct_size_with_stream_features(
5750                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5751         *(VkStructureType*)forUnmarshaling->pNext = extType;
5752         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5753     }
5754     uint64_t cgen_var_0;
5755     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5756     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
5757                                                       (VkImage*)&forUnmarshaling->image, 1);
5758 }
5759 
marshal_VkImageSparseMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkImageSparseMemoryRequirementsInfo2 * forMarshaling)5760 void marshal_VkImageSparseMemoryRequirementsInfo2(
5761     VulkanStream* vkStream, VkStructureType rootType,
5762     const VkImageSparseMemoryRequirementsInfo2* forMarshaling) {
5763     (void)rootType;
5764     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5765     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5766         rootType = forMarshaling->sType;
5767     }
5768     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5769     uint64_t cgen_var_0;
5770     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
5771     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5772 }
5773 
unmarshal_VkImageSparseMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,VkImageSparseMemoryRequirementsInfo2 * forUnmarshaling)5774 void unmarshal_VkImageSparseMemoryRequirementsInfo2(
5775     VulkanStream* vkStream, VkStructureType rootType,
5776     VkImageSparseMemoryRequirementsInfo2* forUnmarshaling) {
5777     (void)rootType;
5778     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5779     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5780         rootType = forUnmarshaling->sType;
5781     }
5782     size_t pNext_size;
5783     pNext_size = vkStream->getBe32();
5784     forUnmarshaling->pNext = nullptr;
5785     if (pNext_size) {
5786         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5787         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5788         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5789         vkStream->alloc((void**)&forUnmarshaling->pNext,
5790                         goldfish_vk_extension_struct_size_with_stream_features(
5791                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5792         *(VkStructureType*)forUnmarshaling->pNext = extType;
5793         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5794     }
5795     uint64_t cgen_var_0;
5796     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5797     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
5798                                                       (VkImage*)&forUnmarshaling->image, 1);
5799 }
5800 
marshal_VkMemoryRequirements2(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryRequirements2 * forMarshaling)5801 void marshal_VkMemoryRequirements2(VulkanStream* vkStream, VkStructureType rootType,
5802                                    const VkMemoryRequirements2* forMarshaling) {
5803     (void)rootType;
5804     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5805     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5806         rootType = forMarshaling->sType;
5807     }
5808     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5809     marshal_VkMemoryRequirements(vkStream, rootType,
5810                                  (VkMemoryRequirements*)(&forMarshaling->memoryRequirements));
5811 }
5812 
unmarshal_VkMemoryRequirements2(VulkanStream * vkStream,VkStructureType rootType,VkMemoryRequirements2 * forUnmarshaling)5813 void unmarshal_VkMemoryRequirements2(VulkanStream* vkStream, VkStructureType rootType,
5814                                      VkMemoryRequirements2* forUnmarshaling) {
5815     (void)rootType;
5816     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5817     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5818         rootType = forUnmarshaling->sType;
5819     }
5820     size_t pNext_size;
5821     pNext_size = vkStream->getBe32();
5822     forUnmarshaling->pNext = nullptr;
5823     if (pNext_size) {
5824         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5825         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5826         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5827         vkStream->alloc((void**)&forUnmarshaling->pNext,
5828                         goldfish_vk_extension_struct_size_with_stream_features(
5829                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5830         *(VkStructureType*)forUnmarshaling->pNext = extType;
5831         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5832     }
5833     unmarshal_VkMemoryRequirements(vkStream, rootType,
5834                                    (VkMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
5835 }
5836 
marshal_VkSparseImageMemoryRequirements2(VulkanStream * vkStream,VkStructureType rootType,const VkSparseImageMemoryRequirements2 * forMarshaling)5837 void marshal_VkSparseImageMemoryRequirements2(
5838     VulkanStream* vkStream, VkStructureType rootType,
5839     const VkSparseImageMemoryRequirements2* forMarshaling) {
5840     (void)rootType;
5841     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5842     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5843         rootType = forMarshaling->sType;
5844     }
5845     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5846     marshal_VkSparseImageMemoryRequirements(
5847         vkStream, rootType, (VkSparseImageMemoryRequirements*)(&forMarshaling->memoryRequirements));
5848 }
5849 
unmarshal_VkSparseImageMemoryRequirements2(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryRequirements2 * forUnmarshaling)5850 void unmarshal_VkSparseImageMemoryRequirements2(VulkanStream* vkStream, VkStructureType rootType,
5851                                                 VkSparseImageMemoryRequirements2* forUnmarshaling) {
5852     (void)rootType;
5853     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5854     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5855         rootType = forUnmarshaling->sType;
5856     }
5857     size_t pNext_size;
5858     pNext_size = vkStream->getBe32();
5859     forUnmarshaling->pNext = nullptr;
5860     if (pNext_size) {
5861         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5862         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5863         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5864         vkStream->alloc((void**)&forUnmarshaling->pNext,
5865                         goldfish_vk_extension_struct_size_with_stream_features(
5866                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5867         *(VkStructureType*)forUnmarshaling->pNext = extType;
5868         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5869     }
5870     unmarshal_VkSparseImageMemoryRequirements(
5871         vkStream, rootType,
5872         (VkSparseImageMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
5873 }
5874 
marshal_VkPhysicalDeviceFeatures2(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFeatures2 * forMarshaling)5875 void marshal_VkPhysicalDeviceFeatures2(VulkanStream* vkStream, VkStructureType rootType,
5876                                        const VkPhysicalDeviceFeatures2* forMarshaling) {
5877     (void)rootType;
5878     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5879     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5880         rootType = forMarshaling->sType;
5881     }
5882     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5883     marshal_VkPhysicalDeviceFeatures(vkStream, rootType,
5884                                      (VkPhysicalDeviceFeatures*)(&forMarshaling->features));
5885 }
5886 
unmarshal_VkPhysicalDeviceFeatures2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFeatures2 * forUnmarshaling)5887 void unmarshal_VkPhysicalDeviceFeatures2(VulkanStream* vkStream, VkStructureType rootType,
5888                                          VkPhysicalDeviceFeatures2* forUnmarshaling) {
5889     (void)rootType;
5890     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5891     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5892         rootType = forUnmarshaling->sType;
5893     }
5894     size_t pNext_size;
5895     pNext_size = vkStream->getBe32();
5896     forUnmarshaling->pNext = nullptr;
5897     if (pNext_size) {
5898         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5899         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5900         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5901         vkStream->alloc((void**)&forUnmarshaling->pNext,
5902                         goldfish_vk_extension_struct_size_with_stream_features(
5903                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5904         *(VkStructureType*)forUnmarshaling->pNext = extType;
5905         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5906     }
5907     unmarshal_VkPhysicalDeviceFeatures(vkStream, rootType,
5908                                        (VkPhysicalDeviceFeatures*)(&forUnmarshaling->features));
5909 }
5910 
marshal_VkPhysicalDeviceProperties2(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceProperties2 * forMarshaling)5911 void marshal_VkPhysicalDeviceProperties2(VulkanStream* vkStream, VkStructureType rootType,
5912                                          const VkPhysicalDeviceProperties2* forMarshaling) {
5913     (void)rootType;
5914     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5915     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5916         rootType = forMarshaling->sType;
5917     }
5918     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5919     marshal_VkPhysicalDeviceProperties(vkStream, rootType,
5920                                        (VkPhysicalDeviceProperties*)(&forMarshaling->properties));
5921 }
5922 
unmarshal_VkPhysicalDeviceProperties2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProperties2 * forUnmarshaling)5923 void unmarshal_VkPhysicalDeviceProperties2(VulkanStream* vkStream, VkStructureType rootType,
5924                                            VkPhysicalDeviceProperties2* forUnmarshaling) {
5925     (void)rootType;
5926     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5928         rootType = forUnmarshaling->sType;
5929     }
5930     size_t pNext_size;
5931     pNext_size = vkStream->getBe32();
5932     forUnmarshaling->pNext = nullptr;
5933     if (pNext_size) {
5934         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5935         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5936         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5937         vkStream->alloc((void**)&forUnmarshaling->pNext,
5938                         goldfish_vk_extension_struct_size_with_stream_features(
5939                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5940         *(VkStructureType*)forUnmarshaling->pNext = extType;
5941         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5942     }
5943     unmarshal_VkPhysicalDeviceProperties(
5944         vkStream, rootType, (VkPhysicalDeviceProperties*)(&forUnmarshaling->properties));
5945 }
5946 
marshal_VkFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,const VkFormatProperties2 * forMarshaling)5947 void marshal_VkFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
5948                                  const VkFormatProperties2* forMarshaling) {
5949     (void)rootType;
5950     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5951     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5952         rootType = forMarshaling->sType;
5953     }
5954     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5955     marshal_VkFormatProperties(vkStream, rootType,
5956                                (VkFormatProperties*)(&forMarshaling->formatProperties));
5957 }
5958 
unmarshal_VkFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,VkFormatProperties2 * forUnmarshaling)5959 void unmarshal_VkFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
5960                                    VkFormatProperties2* forUnmarshaling) {
5961     (void)rootType;
5962     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5963     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5964         rootType = forUnmarshaling->sType;
5965     }
5966     size_t pNext_size;
5967     pNext_size = vkStream->getBe32();
5968     forUnmarshaling->pNext = nullptr;
5969     if (pNext_size) {
5970         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5971         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
5972         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5973         vkStream->alloc((void**)&forUnmarshaling->pNext,
5974                         goldfish_vk_extension_struct_size_with_stream_features(
5975                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5976         *(VkStructureType*)forUnmarshaling->pNext = extType;
5977         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5978     }
5979     unmarshal_VkFormatProperties(vkStream, rootType,
5980                                  (VkFormatProperties*)(&forUnmarshaling->formatProperties));
5981 }
5982 
marshal_VkImageFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,const VkImageFormatProperties2 * forMarshaling)5983 void marshal_VkImageFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
5984                                       const VkImageFormatProperties2* forMarshaling) {
5985     (void)rootType;
5986     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5987     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5988         rootType = forMarshaling->sType;
5989     }
5990     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5991     marshal_VkImageFormatProperties(
5992         vkStream, rootType, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
5993 }
5994 
unmarshal_VkImageFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,VkImageFormatProperties2 * forUnmarshaling)5995 void unmarshal_VkImageFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
5996                                         VkImageFormatProperties2* forUnmarshaling) {
5997     (void)rootType;
5998     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5999     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6000         rootType = forUnmarshaling->sType;
6001     }
6002     size_t pNext_size;
6003     pNext_size = vkStream->getBe32();
6004     forUnmarshaling->pNext = nullptr;
6005     if (pNext_size) {
6006         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6007         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6008         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6009         vkStream->alloc((void**)&forUnmarshaling->pNext,
6010                         goldfish_vk_extension_struct_size_with_stream_features(
6011                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6012         *(VkStructureType*)forUnmarshaling->pNext = extType;
6013         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6014     }
6015     unmarshal_VkImageFormatProperties(
6016         vkStream, rootType, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
6017 }
6018 
marshal_VkPhysicalDeviceImageFormatInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageFormatInfo2 * forMarshaling)6019 void marshal_VkPhysicalDeviceImageFormatInfo2(
6020     VulkanStream* vkStream, VkStructureType rootType,
6021     const VkPhysicalDeviceImageFormatInfo2* forMarshaling) {
6022     (void)rootType;
6023     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6024     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6025         rootType = forMarshaling->sType;
6026     }
6027     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6028     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
6029     vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
6030     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
6031     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
6032     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
6033 }
6034 
unmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageFormatInfo2 * forUnmarshaling)6035 void unmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStream* vkStream, VkStructureType rootType,
6036                                                 VkPhysicalDeviceImageFormatInfo2* forUnmarshaling) {
6037     (void)rootType;
6038     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6039     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6040         rootType = forUnmarshaling->sType;
6041     }
6042     size_t pNext_size;
6043     pNext_size = vkStream->getBe32();
6044     forUnmarshaling->pNext = nullptr;
6045     if (pNext_size) {
6046         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6047         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6048         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6049         vkStream->alloc((void**)&forUnmarshaling->pNext,
6050                         goldfish_vk_extension_struct_size_with_stream_features(
6051                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6052         *(VkStructureType*)forUnmarshaling->pNext = extType;
6053         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6054     }
6055     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
6056     vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
6057     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
6058     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
6059     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
6060 }
6061 
marshal_VkQueueFamilyProperties2(VulkanStream * vkStream,VkStructureType rootType,const VkQueueFamilyProperties2 * forMarshaling)6062 void marshal_VkQueueFamilyProperties2(VulkanStream* vkStream, VkStructureType rootType,
6063                                       const VkQueueFamilyProperties2* forMarshaling) {
6064     (void)rootType;
6065     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6066     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6067         rootType = forMarshaling->sType;
6068     }
6069     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6070     marshal_VkQueueFamilyProperties(
6071         vkStream, rootType, (VkQueueFamilyProperties*)(&forMarshaling->queueFamilyProperties));
6072 }
6073 
unmarshal_VkQueueFamilyProperties2(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyProperties2 * forUnmarshaling)6074 void unmarshal_VkQueueFamilyProperties2(VulkanStream* vkStream, VkStructureType rootType,
6075                                         VkQueueFamilyProperties2* forUnmarshaling) {
6076     (void)rootType;
6077     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6078     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6079         rootType = forUnmarshaling->sType;
6080     }
6081     size_t pNext_size;
6082     pNext_size = vkStream->getBe32();
6083     forUnmarshaling->pNext = nullptr;
6084     if (pNext_size) {
6085         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6086         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6087         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6088         vkStream->alloc((void**)&forUnmarshaling->pNext,
6089                         goldfish_vk_extension_struct_size_with_stream_features(
6090                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6091         *(VkStructureType*)forUnmarshaling->pNext = extType;
6092         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6093     }
6094     unmarshal_VkQueueFamilyProperties(
6095         vkStream, rootType, (VkQueueFamilyProperties*)(&forUnmarshaling->queueFamilyProperties));
6096 }
6097 
marshal_VkPhysicalDeviceMemoryProperties2(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties2 * forMarshaling)6098 void marshal_VkPhysicalDeviceMemoryProperties2(
6099     VulkanStream* vkStream, VkStructureType rootType,
6100     const VkPhysicalDeviceMemoryProperties2* forMarshaling) {
6101     (void)rootType;
6102     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6103     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6104         rootType = forMarshaling->sType;
6105     }
6106     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6107     marshal_VkPhysicalDeviceMemoryProperties(
6108         vkStream, rootType, (VkPhysicalDeviceMemoryProperties*)(&forMarshaling->memoryProperties));
6109 }
6110 
unmarshal_VkPhysicalDeviceMemoryProperties2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryProperties2 * forUnmarshaling)6111 void unmarshal_VkPhysicalDeviceMemoryProperties2(
6112     VulkanStream* vkStream, VkStructureType rootType,
6113     VkPhysicalDeviceMemoryProperties2* forUnmarshaling) {
6114     (void)rootType;
6115     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6116     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6117         rootType = forUnmarshaling->sType;
6118     }
6119     size_t pNext_size;
6120     pNext_size = vkStream->getBe32();
6121     forUnmarshaling->pNext = nullptr;
6122     if (pNext_size) {
6123         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6124         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6125         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6126         vkStream->alloc((void**)&forUnmarshaling->pNext,
6127                         goldfish_vk_extension_struct_size_with_stream_features(
6128                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6129         *(VkStructureType*)forUnmarshaling->pNext = extType;
6130         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6131     }
6132     unmarshal_VkPhysicalDeviceMemoryProperties(
6133         vkStream, rootType,
6134         (VkPhysicalDeviceMemoryProperties*)(&forUnmarshaling->memoryProperties));
6135 }
6136 
marshal_VkSparseImageFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,const VkSparseImageFormatProperties2 * forMarshaling)6137 void marshal_VkSparseImageFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
6138                                             const VkSparseImageFormatProperties2* forMarshaling) {
6139     (void)rootType;
6140     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6141     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6142         rootType = forMarshaling->sType;
6143     }
6144     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6145     marshal_VkSparseImageFormatProperties(
6146         vkStream, rootType, (VkSparseImageFormatProperties*)(&forMarshaling->properties));
6147 }
6148 
unmarshal_VkSparseImageFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageFormatProperties2 * forUnmarshaling)6149 void unmarshal_VkSparseImageFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
6150                                               VkSparseImageFormatProperties2* forUnmarshaling) {
6151     (void)rootType;
6152     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6153     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6154         rootType = forUnmarshaling->sType;
6155     }
6156     size_t pNext_size;
6157     pNext_size = vkStream->getBe32();
6158     forUnmarshaling->pNext = nullptr;
6159     if (pNext_size) {
6160         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6161         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6162         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6163         vkStream->alloc((void**)&forUnmarshaling->pNext,
6164                         goldfish_vk_extension_struct_size_with_stream_features(
6165                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6166         *(VkStructureType*)forUnmarshaling->pNext = extType;
6167         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6168     }
6169     unmarshal_VkSparseImageFormatProperties(
6170         vkStream, rootType, (VkSparseImageFormatProperties*)(&forUnmarshaling->properties));
6171 }
6172 
marshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSparseImageFormatInfo2 * forMarshaling)6173 void marshal_VkPhysicalDeviceSparseImageFormatInfo2(
6174     VulkanStream* vkStream, VkStructureType rootType,
6175     const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling) {
6176     (void)rootType;
6177     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6178     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6179         rootType = forMarshaling->sType;
6180     }
6181     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6182     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
6183     vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
6184     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
6185     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
6186     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
6187 }
6188 
unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSparseImageFormatInfo2 * forUnmarshaling)6189 void unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
6190     VulkanStream* vkStream, VkStructureType rootType,
6191     VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling) {
6192     (void)rootType;
6193     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6194     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6195         rootType = forUnmarshaling->sType;
6196     }
6197     size_t pNext_size;
6198     pNext_size = vkStream->getBe32();
6199     forUnmarshaling->pNext = nullptr;
6200     if (pNext_size) {
6201         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6202         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6203         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6204         vkStream->alloc((void**)&forUnmarshaling->pNext,
6205                         goldfish_vk_extension_struct_size_with_stream_features(
6206                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6207         *(VkStructureType*)forUnmarshaling->pNext = extType;
6208         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6209     }
6210     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
6211     vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
6212     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
6213                    sizeof(VkSampleCountFlagBits));
6214     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
6215     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
6216 }
6217 
marshal_VkPhysicalDevicePointClippingProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePointClippingProperties * forMarshaling)6218 void marshal_VkPhysicalDevicePointClippingProperties(
6219     VulkanStream* vkStream, VkStructureType rootType,
6220     const VkPhysicalDevicePointClippingProperties* forMarshaling) {
6221     (void)rootType;
6222     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6223     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6224         rootType = forMarshaling->sType;
6225     }
6226     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6227     vkStream->write((VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior,
6228                     sizeof(VkPointClippingBehavior));
6229 }
6230 
unmarshal_VkPhysicalDevicePointClippingProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePointClippingProperties * forUnmarshaling)6231 void unmarshal_VkPhysicalDevicePointClippingProperties(
6232     VulkanStream* vkStream, VkStructureType rootType,
6233     VkPhysicalDevicePointClippingProperties* forUnmarshaling) {
6234     (void)rootType;
6235     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6236     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6237         rootType = forUnmarshaling->sType;
6238     }
6239     size_t pNext_size;
6240     pNext_size = vkStream->getBe32();
6241     forUnmarshaling->pNext = nullptr;
6242     if (pNext_size) {
6243         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6244         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6245         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6246         vkStream->alloc((void**)&forUnmarshaling->pNext,
6247                         goldfish_vk_extension_struct_size_with_stream_features(
6248                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6249         *(VkStructureType*)forUnmarshaling->pNext = extType;
6250         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6251     }
6252     vkStream->read((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior,
6253                    sizeof(VkPointClippingBehavior));
6254 }
6255 
marshal_VkInputAttachmentAspectReference(VulkanStream * vkStream,VkStructureType rootType,const VkInputAttachmentAspectReference * forMarshaling)6256 void marshal_VkInputAttachmentAspectReference(
6257     VulkanStream* vkStream, VkStructureType rootType,
6258     const VkInputAttachmentAspectReference* forMarshaling) {
6259     (void)rootType;
6260     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
6261     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentIndex, sizeof(uint32_t));
6262     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
6263 }
6264 
unmarshal_VkInputAttachmentAspectReference(VulkanStream * vkStream,VkStructureType rootType,VkInputAttachmentAspectReference * forUnmarshaling)6265 void unmarshal_VkInputAttachmentAspectReference(VulkanStream* vkStream, VkStructureType rootType,
6266                                                 VkInputAttachmentAspectReference* forUnmarshaling) {
6267     (void)rootType;
6268     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
6269     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentIndex, sizeof(uint32_t));
6270     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
6271 }
6272 
marshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassInputAttachmentAspectCreateInfo * forMarshaling)6273 void marshal_VkRenderPassInputAttachmentAspectCreateInfo(
6274     VulkanStream* vkStream, VkStructureType rootType,
6275     const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling) {
6276     (void)rootType;
6277     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6278     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6279         rootType = forMarshaling->sType;
6280     }
6281     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6282     vkStream->write((uint32_t*)&forMarshaling->aspectReferenceCount, sizeof(uint32_t));
6283     if (forMarshaling) {
6284         for (uint32_t i = 0; i < (uint32_t)forMarshaling->aspectReferenceCount; ++i) {
6285             marshal_VkInputAttachmentAspectReference(
6286                 vkStream, rootType,
6287                 (const VkInputAttachmentAspectReference*)(forMarshaling->pAspectReferences + i));
6288         }
6289     }
6290 }
6291 
unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassInputAttachmentAspectCreateInfo * forUnmarshaling)6292 void unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
6293     VulkanStream* vkStream, VkStructureType rootType,
6294     VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling) {
6295     (void)rootType;
6296     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6297     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6298         rootType = forUnmarshaling->sType;
6299     }
6300     size_t pNext_size;
6301     pNext_size = vkStream->getBe32();
6302     forUnmarshaling->pNext = nullptr;
6303     if (pNext_size) {
6304         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6305         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6306         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6307         vkStream->alloc((void**)&forUnmarshaling->pNext,
6308                         goldfish_vk_extension_struct_size_with_stream_features(
6309                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6310         *(VkStructureType*)forUnmarshaling->pNext = extType;
6311         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6312     }
6313     vkStream->read((uint32_t*)&forUnmarshaling->aspectReferenceCount, sizeof(uint32_t));
6314     vkStream->alloc(
6315         (void**)&forUnmarshaling->pAspectReferences,
6316         forUnmarshaling->aspectReferenceCount * sizeof(const VkInputAttachmentAspectReference));
6317     if (forUnmarshaling) {
6318         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->aspectReferenceCount; ++i) {
6319             unmarshal_VkInputAttachmentAspectReference(
6320                 vkStream, rootType,
6321                 (VkInputAttachmentAspectReference*)(forUnmarshaling->pAspectReferences + i));
6322         }
6323     }
6324 }
6325 
marshal_VkImageViewUsageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewUsageCreateInfo * forMarshaling)6326 void marshal_VkImageViewUsageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
6327                                         const VkImageViewUsageCreateInfo* forMarshaling) {
6328     (void)rootType;
6329     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6330     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6331         rootType = forMarshaling->sType;
6332     }
6333     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6334     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
6335 }
6336 
unmarshal_VkImageViewUsageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageViewUsageCreateInfo * forUnmarshaling)6337 void unmarshal_VkImageViewUsageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
6338                                           VkImageViewUsageCreateInfo* forUnmarshaling) {
6339     (void)rootType;
6340     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6341     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6342         rootType = forUnmarshaling->sType;
6343     }
6344     size_t pNext_size;
6345     pNext_size = vkStream->getBe32();
6346     forUnmarshaling->pNext = nullptr;
6347     if (pNext_size) {
6348         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6349         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6350         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6351         vkStream->alloc((void**)&forUnmarshaling->pNext,
6352                         goldfish_vk_extension_struct_size_with_stream_features(
6353                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6354         *(VkStructureType*)forUnmarshaling->pNext = extType;
6355         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6356     }
6357     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
6358 }
6359 
marshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineTessellationDomainOriginStateCreateInfo * forMarshaling)6360 void marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
6361     VulkanStream* vkStream, VkStructureType rootType,
6362     const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling) {
6363     (void)rootType;
6364     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6365     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6366         rootType = forMarshaling->sType;
6367     }
6368     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6369     vkStream->write((VkTessellationDomainOrigin*)&forMarshaling->domainOrigin,
6370                     sizeof(VkTessellationDomainOrigin));
6371 }
6372 
unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineTessellationDomainOriginStateCreateInfo * forUnmarshaling)6373 void unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
6374     VulkanStream* vkStream, VkStructureType rootType,
6375     VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling) {
6376     (void)rootType;
6377     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6378     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6379         rootType = forUnmarshaling->sType;
6380     }
6381     size_t pNext_size;
6382     pNext_size = vkStream->getBe32();
6383     forUnmarshaling->pNext = nullptr;
6384     if (pNext_size) {
6385         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6386         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6387         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6388         vkStream->alloc((void**)&forUnmarshaling->pNext,
6389                         goldfish_vk_extension_struct_size_with_stream_features(
6390                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6391         *(VkStructureType*)forUnmarshaling->pNext = extType;
6392         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6393     }
6394     vkStream->read((VkTessellationDomainOrigin*)&forUnmarshaling->domainOrigin,
6395                    sizeof(VkTessellationDomainOrigin));
6396 }
6397 
marshal_VkRenderPassMultiviewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassMultiviewCreateInfo * forMarshaling)6398 void marshal_VkRenderPassMultiviewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
6399                                              const VkRenderPassMultiviewCreateInfo* forMarshaling) {
6400     (void)rootType;
6401     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6402     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6403         rootType = forMarshaling->sType;
6404     }
6405     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6406     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
6407     vkStream->write((const uint32_t*)forMarshaling->pViewMasks,
6408                     forMarshaling->subpassCount * sizeof(const uint32_t));
6409     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
6410     vkStream->write((const int32_t*)forMarshaling->pViewOffsets,
6411                     forMarshaling->dependencyCount * sizeof(const int32_t));
6412     vkStream->write((uint32_t*)&forMarshaling->correlationMaskCount, sizeof(uint32_t));
6413     vkStream->write((const uint32_t*)forMarshaling->pCorrelationMasks,
6414                     forMarshaling->correlationMaskCount * sizeof(const uint32_t));
6415 }
6416 
unmarshal_VkRenderPassMultiviewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassMultiviewCreateInfo * forUnmarshaling)6417 void unmarshal_VkRenderPassMultiviewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
6418                                                VkRenderPassMultiviewCreateInfo* forUnmarshaling) {
6419     (void)rootType;
6420     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6421     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6422         rootType = forUnmarshaling->sType;
6423     }
6424     size_t pNext_size;
6425     pNext_size = vkStream->getBe32();
6426     forUnmarshaling->pNext = nullptr;
6427     if (pNext_size) {
6428         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6429         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6430         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6431         vkStream->alloc((void**)&forUnmarshaling->pNext,
6432                         goldfish_vk_extension_struct_size_with_stream_features(
6433                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6434         *(VkStructureType*)forUnmarshaling->pNext = extType;
6435         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6436     }
6437     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
6438     vkStream->alloc((void**)&forUnmarshaling->pViewMasks,
6439                     forUnmarshaling->subpassCount * sizeof(const uint32_t));
6440     vkStream->read((uint32_t*)forUnmarshaling->pViewMasks,
6441                    forUnmarshaling->subpassCount * sizeof(const uint32_t));
6442     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
6443     vkStream->alloc((void**)&forUnmarshaling->pViewOffsets,
6444                     forUnmarshaling->dependencyCount * sizeof(const int32_t));
6445     vkStream->read((int32_t*)forUnmarshaling->pViewOffsets,
6446                    forUnmarshaling->dependencyCount * sizeof(const int32_t));
6447     vkStream->read((uint32_t*)&forUnmarshaling->correlationMaskCount, sizeof(uint32_t));
6448     vkStream->alloc((void**)&forUnmarshaling->pCorrelationMasks,
6449                     forUnmarshaling->correlationMaskCount * sizeof(const uint32_t));
6450     vkStream->read((uint32_t*)forUnmarshaling->pCorrelationMasks,
6451                    forUnmarshaling->correlationMaskCount * sizeof(const uint32_t));
6452 }
6453 
marshal_VkPhysicalDeviceMultiviewFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewFeatures * forMarshaling)6454 void marshal_VkPhysicalDeviceMultiviewFeatures(
6455     VulkanStream* vkStream, VkStructureType rootType,
6456     const VkPhysicalDeviceMultiviewFeatures* forMarshaling) {
6457     (void)rootType;
6458     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6459     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6460         rootType = forMarshaling->sType;
6461     }
6462     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6463     vkStream->write((VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
6464     vkStream->write((VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
6465     vkStream->write((VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
6466 }
6467 
unmarshal_VkPhysicalDeviceMultiviewFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewFeatures * forUnmarshaling)6468 void unmarshal_VkPhysicalDeviceMultiviewFeatures(
6469     VulkanStream* vkStream, VkStructureType rootType,
6470     VkPhysicalDeviceMultiviewFeatures* forUnmarshaling) {
6471     (void)rootType;
6472     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6473     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6474         rootType = forUnmarshaling->sType;
6475     }
6476     size_t pNext_size;
6477     pNext_size = vkStream->getBe32();
6478     forUnmarshaling->pNext = nullptr;
6479     if (pNext_size) {
6480         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6481         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6482         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6483         vkStream->alloc((void**)&forUnmarshaling->pNext,
6484                         goldfish_vk_extension_struct_size_with_stream_features(
6485                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6486         *(VkStructureType*)forUnmarshaling->pNext = extType;
6487         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6488     }
6489     vkStream->read((VkBool32*)&forUnmarshaling->multiview, sizeof(VkBool32));
6490     vkStream->read((VkBool32*)&forUnmarshaling->multiviewGeometryShader, sizeof(VkBool32));
6491     vkStream->read((VkBool32*)&forUnmarshaling->multiviewTessellationShader, sizeof(VkBool32));
6492 }
6493 
marshal_VkPhysicalDeviceMultiviewProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewProperties * forMarshaling)6494 void marshal_VkPhysicalDeviceMultiviewProperties(
6495     VulkanStream* vkStream, VkStructureType rootType,
6496     const VkPhysicalDeviceMultiviewProperties* forMarshaling) {
6497     (void)rootType;
6498     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6499     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6500         rootType = forMarshaling->sType;
6501     }
6502     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6503     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
6504     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
6505 }
6506 
unmarshal_VkPhysicalDeviceMultiviewProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewProperties * forUnmarshaling)6507 void unmarshal_VkPhysicalDeviceMultiviewProperties(
6508     VulkanStream* vkStream, VkStructureType rootType,
6509     VkPhysicalDeviceMultiviewProperties* forUnmarshaling) {
6510     (void)rootType;
6511     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6512     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6513         rootType = forUnmarshaling->sType;
6514     }
6515     size_t pNext_size;
6516     pNext_size = vkStream->getBe32();
6517     forUnmarshaling->pNext = nullptr;
6518     if (pNext_size) {
6519         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6520         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6521         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6522         vkStream->alloc((void**)&forUnmarshaling->pNext,
6523                         goldfish_vk_extension_struct_size_with_stream_features(
6524                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6525         *(VkStructureType*)forUnmarshaling->pNext = extType;
6526         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6527     }
6528     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, sizeof(uint32_t));
6529     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
6530 }
6531 
marshal_VkPhysicalDeviceVariablePointersFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVariablePointersFeatures * forMarshaling)6532 void marshal_VkPhysicalDeviceVariablePointersFeatures(
6533     VulkanStream* vkStream, VkStructureType rootType,
6534     const VkPhysicalDeviceVariablePointersFeatures* forMarshaling) {
6535     (void)rootType;
6536     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6537     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6538         rootType = forMarshaling->sType;
6539     }
6540     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6541     vkStream->write((VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
6542     vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
6543 }
6544 
unmarshal_VkPhysicalDeviceVariablePointersFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVariablePointersFeatures * forUnmarshaling)6545 void unmarshal_VkPhysicalDeviceVariablePointersFeatures(
6546     VulkanStream* vkStream, VkStructureType rootType,
6547     VkPhysicalDeviceVariablePointersFeatures* forUnmarshaling) {
6548     (void)rootType;
6549     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6550     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6551         rootType = forUnmarshaling->sType;
6552     }
6553     size_t pNext_size;
6554     pNext_size = vkStream->getBe32();
6555     forUnmarshaling->pNext = nullptr;
6556     if (pNext_size) {
6557         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6558         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6559         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6560         vkStream->alloc((void**)&forUnmarshaling->pNext,
6561                         goldfish_vk_extension_struct_size_with_stream_features(
6562                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6563         *(VkStructureType*)forUnmarshaling->pNext = extType;
6564         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6565     }
6566     vkStream->read((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
6567     vkStream->read((VkBool32*)&forUnmarshaling->variablePointers, sizeof(VkBool32));
6568 }
6569 
marshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryFeatures * forMarshaling)6570 void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
6571     VulkanStream* vkStream, VkStructureType rootType,
6572     const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling) {
6573     (void)rootType;
6574     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6575     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6576         rootType = forMarshaling->sType;
6577     }
6578     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6579     vkStream->write((VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
6580 }
6581 
unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProtectedMemoryFeatures * forUnmarshaling)6582 void unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
6583     VulkanStream* vkStream, VkStructureType rootType,
6584     VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling) {
6585     (void)rootType;
6586     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6587     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6588         rootType = forUnmarshaling->sType;
6589     }
6590     size_t pNext_size;
6591     pNext_size = vkStream->getBe32();
6592     forUnmarshaling->pNext = nullptr;
6593     if (pNext_size) {
6594         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6595         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6596         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6597         vkStream->alloc((void**)&forUnmarshaling->pNext,
6598                         goldfish_vk_extension_struct_size_with_stream_features(
6599                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6600         *(VkStructureType*)forUnmarshaling->pNext = extType;
6601         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6602     }
6603     vkStream->read((VkBool32*)&forUnmarshaling->protectedMemory, sizeof(VkBool32));
6604 }
6605 
marshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryProperties * forMarshaling)6606 void marshal_VkPhysicalDeviceProtectedMemoryProperties(
6607     VulkanStream* vkStream, VkStructureType rootType,
6608     const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling) {
6609     (void)rootType;
6610     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6611     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6612         rootType = forMarshaling->sType;
6613     }
6614     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6615     vkStream->write((VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
6616 }
6617 
unmarshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProtectedMemoryProperties * forUnmarshaling)6618 void unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
6619     VulkanStream* vkStream, VkStructureType rootType,
6620     VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling) {
6621     (void)rootType;
6622     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6623     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6624         rootType = forUnmarshaling->sType;
6625     }
6626     size_t pNext_size;
6627     pNext_size = vkStream->getBe32();
6628     forUnmarshaling->pNext = nullptr;
6629     if (pNext_size) {
6630         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6631         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6632         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6633         vkStream->alloc((void**)&forUnmarshaling->pNext,
6634                         goldfish_vk_extension_struct_size_with_stream_features(
6635                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6636         *(VkStructureType*)forUnmarshaling->pNext = extType;
6637         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6638     }
6639     vkStream->read((VkBool32*)&forUnmarshaling->protectedNoFault, sizeof(VkBool32));
6640 }
6641 
marshal_VkDeviceQueueInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceQueueInfo2 * forMarshaling)6642 void marshal_VkDeviceQueueInfo2(VulkanStream* vkStream, VkStructureType rootType,
6643                                 const VkDeviceQueueInfo2* forMarshaling) {
6644     (void)rootType;
6645     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6646     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6647         rootType = forMarshaling->sType;
6648     }
6649     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6650     vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags,
6651                     sizeof(VkDeviceQueueCreateFlags));
6652     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
6653     vkStream->write((uint32_t*)&forMarshaling->queueIndex, sizeof(uint32_t));
6654 }
6655 
unmarshal_VkDeviceQueueInfo2(VulkanStream * vkStream,VkStructureType rootType,VkDeviceQueueInfo2 * forUnmarshaling)6656 void unmarshal_VkDeviceQueueInfo2(VulkanStream* vkStream, VkStructureType rootType,
6657                                   VkDeviceQueueInfo2* forUnmarshaling) {
6658     (void)rootType;
6659     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6660     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6661         rootType = forUnmarshaling->sType;
6662     }
6663     size_t pNext_size;
6664     pNext_size = vkStream->getBe32();
6665     forUnmarshaling->pNext = nullptr;
6666     if (pNext_size) {
6667         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6668         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6669         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6670         vkStream->alloc((void**)&forUnmarshaling->pNext,
6671                         goldfish_vk_extension_struct_size_with_stream_features(
6672                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6673         *(VkStructureType*)forUnmarshaling->pNext = extType;
6674         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6675     }
6676     vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags,
6677                    sizeof(VkDeviceQueueCreateFlags));
6678     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
6679     vkStream->read((uint32_t*)&forUnmarshaling->queueIndex, sizeof(uint32_t));
6680 }
6681 
marshal_VkProtectedSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,const VkProtectedSubmitInfo * forMarshaling)6682 void marshal_VkProtectedSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
6683                                    const VkProtectedSubmitInfo* forMarshaling) {
6684     (void)rootType;
6685     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6686     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6687         rootType = forMarshaling->sType;
6688     }
6689     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6690     vkStream->write((VkBool32*)&forMarshaling->protectedSubmit, sizeof(VkBool32));
6691 }
6692 
unmarshal_VkProtectedSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkProtectedSubmitInfo * forUnmarshaling)6693 void unmarshal_VkProtectedSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
6694                                      VkProtectedSubmitInfo* forUnmarshaling) {
6695     (void)rootType;
6696     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6697     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6698         rootType = forUnmarshaling->sType;
6699     }
6700     size_t pNext_size;
6701     pNext_size = vkStream->getBe32();
6702     forUnmarshaling->pNext = nullptr;
6703     if (pNext_size) {
6704         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6705         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6706         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6707         vkStream->alloc((void**)&forUnmarshaling->pNext,
6708                         goldfish_vk_extension_struct_size_with_stream_features(
6709                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6710         *(VkStructureType*)forUnmarshaling->pNext = extType;
6711         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6712     }
6713     vkStream->read((VkBool32*)&forUnmarshaling->protectedSubmit, sizeof(VkBool32));
6714 }
6715 
marshal_VkSamplerYcbcrConversionCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionCreateInfo * forMarshaling)6716 void marshal_VkSamplerYcbcrConversionCreateInfo(
6717     VulkanStream* vkStream, VkStructureType rootType,
6718     const VkSamplerYcbcrConversionCreateInfo* forMarshaling) {
6719     (void)rootType;
6720     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6721     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6722         rootType = forMarshaling->sType;
6723     }
6724     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6725     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
6726     vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->ycbcrModel,
6727                     sizeof(VkSamplerYcbcrModelConversion));
6728     vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
6729     marshal_VkComponentMapping(vkStream, rootType,
6730                                (VkComponentMapping*)(&forMarshaling->components));
6731     vkStream->write((VkChromaLocation*)&forMarshaling->xChromaOffset, sizeof(VkChromaLocation));
6732     vkStream->write((VkChromaLocation*)&forMarshaling->yChromaOffset, sizeof(VkChromaLocation));
6733     vkStream->write((VkFilter*)&forMarshaling->chromaFilter, sizeof(VkFilter));
6734     vkStream->write((VkBool32*)&forMarshaling->forceExplicitReconstruction, sizeof(VkBool32));
6735 }
6736 
unmarshal_VkSamplerYcbcrConversionCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionCreateInfo * forUnmarshaling)6737 void unmarshal_VkSamplerYcbcrConversionCreateInfo(
6738     VulkanStream* vkStream, VkStructureType rootType,
6739     VkSamplerYcbcrConversionCreateInfo* forUnmarshaling) {
6740     (void)rootType;
6741     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6742     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6743         rootType = forUnmarshaling->sType;
6744     }
6745     size_t pNext_size;
6746     pNext_size = vkStream->getBe32();
6747     forUnmarshaling->pNext = nullptr;
6748     if (pNext_size) {
6749         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6750         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6751         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6752         vkStream->alloc((void**)&forUnmarshaling->pNext,
6753                         goldfish_vk_extension_struct_size_with_stream_features(
6754                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6755         *(VkStructureType*)forUnmarshaling->pNext = extType;
6756         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6757     }
6758     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
6759     vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->ycbcrModel,
6760                    sizeof(VkSamplerYcbcrModelConversion));
6761     vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
6762     unmarshal_VkComponentMapping(vkStream, rootType,
6763                                  (VkComponentMapping*)(&forUnmarshaling->components));
6764     vkStream->read((VkChromaLocation*)&forUnmarshaling->xChromaOffset, sizeof(VkChromaLocation));
6765     vkStream->read((VkChromaLocation*)&forUnmarshaling->yChromaOffset, sizeof(VkChromaLocation));
6766     vkStream->read((VkFilter*)&forUnmarshaling->chromaFilter, sizeof(VkFilter));
6767     vkStream->read((VkBool32*)&forUnmarshaling->forceExplicitReconstruction, sizeof(VkBool32));
6768 }
6769 
marshal_VkSamplerYcbcrConversionInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionInfo * forMarshaling)6770 void marshal_VkSamplerYcbcrConversionInfo(VulkanStream* vkStream, VkStructureType rootType,
6771                                           const VkSamplerYcbcrConversionInfo* forMarshaling) {
6772     (void)rootType;
6773     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6774     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6775         rootType = forMarshaling->sType;
6776     }
6777     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6778     uint64_t cgen_var_0;
6779     vkStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&forMarshaling->conversion,
6780                                                                        &cgen_var_0, 1);
6781     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
6782 }
6783 
unmarshal_VkSamplerYcbcrConversionInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionInfo * forUnmarshaling)6784 void unmarshal_VkSamplerYcbcrConversionInfo(VulkanStream* vkStream, VkStructureType rootType,
6785                                             VkSamplerYcbcrConversionInfo* forUnmarshaling) {
6786     (void)rootType;
6787     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6788     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6789         rootType = forUnmarshaling->sType;
6790     }
6791     size_t pNext_size;
6792     pNext_size = vkStream->getBe32();
6793     forUnmarshaling->pNext = nullptr;
6794     if (pNext_size) {
6795         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6796         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6797         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6798         vkStream->alloc((void**)&forUnmarshaling->pNext,
6799                         goldfish_vk_extension_struct_size_with_stream_features(
6800                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6801         *(VkStructureType*)forUnmarshaling->pNext = extType;
6802         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6803     }
6804     uint64_t cgen_var_0;
6805     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
6806     vkStream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(
6807         &cgen_var_0, (VkSamplerYcbcrConversion*)&forUnmarshaling->conversion, 1);
6808 }
6809 
marshal_VkBindImagePlaneMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBindImagePlaneMemoryInfo * forMarshaling)6810 void marshal_VkBindImagePlaneMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
6811                                         const VkBindImagePlaneMemoryInfo* forMarshaling) {
6812     (void)rootType;
6813     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6814     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6815         rootType = forMarshaling->sType;
6816     }
6817     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6818     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect,
6819                     sizeof(VkImageAspectFlagBits));
6820 }
6821 
unmarshal_VkBindImagePlaneMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindImagePlaneMemoryInfo * forUnmarshaling)6822 void unmarshal_VkBindImagePlaneMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
6823                                           VkBindImagePlaneMemoryInfo* forUnmarshaling) {
6824     (void)rootType;
6825     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6826     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6827         rootType = forUnmarshaling->sType;
6828     }
6829     size_t pNext_size;
6830     pNext_size = vkStream->getBe32();
6831     forUnmarshaling->pNext = nullptr;
6832     if (pNext_size) {
6833         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6834         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6835         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6836         vkStream->alloc((void**)&forUnmarshaling->pNext,
6837                         goldfish_vk_extension_struct_size_with_stream_features(
6838                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6839         *(VkStructureType*)forUnmarshaling->pNext = extType;
6840         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6841     }
6842     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect,
6843                    sizeof(VkImageAspectFlagBits));
6844 }
6845 
marshal_VkImagePlaneMemoryRequirementsInfo(VulkanStream * vkStream,VkStructureType rootType,const VkImagePlaneMemoryRequirementsInfo * forMarshaling)6846 void marshal_VkImagePlaneMemoryRequirementsInfo(
6847     VulkanStream* vkStream, VkStructureType rootType,
6848     const VkImagePlaneMemoryRequirementsInfo* forMarshaling) {
6849     (void)rootType;
6850     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6851     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6852         rootType = forMarshaling->sType;
6853     }
6854     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6855     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect,
6856                     sizeof(VkImageAspectFlagBits));
6857 }
6858 
unmarshal_VkImagePlaneMemoryRequirementsInfo(VulkanStream * vkStream,VkStructureType rootType,VkImagePlaneMemoryRequirementsInfo * forUnmarshaling)6859 void unmarshal_VkImagePlaneMemoryRequirementsInfo(
6860     VulkanStream* vkStream, VkStructureType rootType,
6861     VkImagePlaneMemoryRequirementsInfo* forUnmarshaling) {
6862     (void)rootType;
6863     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6864     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6865         rootType = forUnmarshaling->sType;
6866     }
6867     size_t pNext_size;
6868     pNext_size = vkStream->getBe32();
6869     forUnmarshaling->pNext = nullptr;
6870     if (pNext_size) {
6871         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6872         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6873         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6874         vkStream->alloc((void**)&forUnmarshaling->pNext,
6875                         goldfish_vk_extension_struct_size_with_stream_features(
6876                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6877         *(VkStructureType*)forUnmarshaling->pNext = extType;
6878         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6879     }
6880     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect,
6881                    sizeof(VkImageAspectFlagBits));
6882 }
6883 
marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * forMarshaling)6884 void marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
6885     VulkanStream* vkStream, VkStructureType rootType,
6886     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling) {
6887     (void)rootType;
6888     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6889     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6890         rootType = forMarshaling->sType;
6891     }
6892     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6893     vkStream->write((VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
6894 }
6895 
unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSamplerYcbcrConversionFeatures * forUnmarshaling)6896 void unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
6897     VulkanStream* vkStream, VkStructureType rootType,
6898     VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling) {
6899     (void)rootType;
6900     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6901     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6902         rootType = forUnmarshaling->sType;
6903     }
6904     size_t pNext_size;
6905     pNext_size = vkStream->getBe32();
6906     forUnmarshaling->pNext = nullptr;
6907     if (pNext_size) {
6908         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6909         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6910         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6911         vkStream->alloc((void**)&forUnmarshaling->pNext,
6912                         goldfish_vk_extension_struct_size_with_stream_features(
6913                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6914         *(VkStructureType*)forUnmarshaling->pNext = extType;
6915         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6916     }
6917     vkStream->read((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, sizeof(VkBool32));
6918 }
6919 
marshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionImageFormatProperties * forMarshaling)6920 void marshal_VkSamplerYcbcrConversionImageFormatProperties(
6921     VulkanStream* vkStream, VkStructureType rootType,
6922     const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling) {
6923     (void)rootType;
6924     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6925     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6926         rootType = forMarshaling->sType;
6927     }
6928     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6929     vkStream->write((uint32_t*)&forMarshaling->combinedImageSamplerDescriptorCount,
6930                     sizeof(uint32_t));
6931 }
6932 
unmarshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionImageFormatProperties * forUnmarshaling)6933 void unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
6934     VulkanStream* vkStream, VkStructureType rootType,
6935     VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling) {
6936     (void)rootType;
6937     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6938     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6939         rootType = forUnmarshaling->sType;
6940     }
6941     size_t pNext_size;
6942     pNext_size = vkStream->getBe32();
6943     forUnmarshaling->pNext = nullptr;
6944     if (pNext_size) {
6945         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6946         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
6947         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6948         vkStream->alloc((void**)&forUnmarshaling->pNext,
6949                         goldfish_vk_extension_struct_size_with_stream_features(
6950                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6951         *(VkStructureType*)forUnmarshaling->pNext = extType;
6952         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6953     }
6954     vkStream->read((uint32_t*)&forUnmarshaling->combinedImageSamplerDescriptorCount,
6955                    sizeof(uint32_t));
6956 }
6957 
marshal_VkDescriptorUpdateTemplateEntry(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorUpdateTemplateEntry * forMarshaling)6958 void marshal_VkDescriptorUpdateTemplateEntry(VulkanStream* vkStream, VkStructureType rootType,
6959                                              const VkDescriptorUpdateTemplateEntry* forMarshaling) {
6960     (void)rootType;
6961     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
6962     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
6963     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
6964     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
6965     uint64_t cgen_var_0 = (uint64_t)forMarshaling->offset;
6966     vkStream->putBe64(cgen_var_0);
6967     uint64_t cgen_var_1 = (uint64_t)forMarshaling->stride;
6968     vkStream->putBe64(cgen_var_1);
6969 }
6970 
unmarshal_VkDescriptorUpdateTemplateEntry(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorUpdateTemplateEntry * forUnmarshaling)6971 void unmarshal_VkDescriptorUpdateTemplateEntry(VulkanStream* vkStream, VkStructureType rootType,
6972                                                VkDescriptorUpdateTemplateEntry* forUnmarshaling) {
6973     (void)rootType;
6974     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
6975     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
6976     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
6977     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
6978     forUnmarshaling->offset = (size_t)vkStream->getBe64();
6979     forUnmarshaling->stride = (size_t)vkStream->getBe64();
6980 }
6981 
marshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorUpdateTemplateCreateInfo * forMarshaling)6982 void marshal_VkDescriptorUpdateTemplateCreateInfo(
6983     VulkanStream* vkStream, VkStructureType rootType,
6984     const VkDescriptorUpdateTemplateCreateInfo* forMarshaling) {
6985     (void)rootType;
6986     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6987     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6988         rootType = forMarshaling->sType;
6989     }
6990     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6991     vkStream->write((VkDescriptorUpdateTemplateCreateFlags*)&forMarshaling->flags,
6992                     sizeof(VkDescriptorUpdateTemplateCreateFlags));
6993     vkStream->write((uint32_t*)&forMarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
6994     if (forMarshaling) {
6995         for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorUpdateEntryCount; ++i) {
6996             marshal_VkDescriptorUpdateTemplateEntry(
6997                 vkStream, rootType,
6998                 (const VkDescriptorUpdateTemplateEntry*)(forMarshaling->pDescriptorUpdateEntries +
6999                                                          i));
7000         }
7001     }
7002     vkStream->write((VkDescriptorUpdateTemplateType*)&forMarshaling->templateType,
7003                     sizeof(VkDescriptorUpdateTemplateType));
7004     uint64_t cgen_var_0;
7005     vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
7006         &forMarshaling->descriptorSetLayout, &cgen_var_0, 1);
7007     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
7008     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
7009                     sizeof(VkPipelineBindPoint));
7010     uint64_t cgen_var_1;
7011     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout,
7012                                                                &cgen_var_1, 1);
7013     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
7014     vkStream->write((uint32_t*)&forMarshaling->set, sizeof(uint32_t));
7015 }
7016 
unmarshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorUpdateTemplateCreateInfo * forUnmarshaling)7017 void unmarshal_VkDescriptorUpdateTemplateCreateInfo(
7018     VulkanStream* vkStream, VkStructureType rootType,
7019     VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling) {
7020     (void)rootType;
7021     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7022     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7023         rootType = forUnmarshaling->sType;
7024     }
7025     size_t pNext_size;
7026     pNext_size = vkStream->getBe32();
7027     forUnmarshaling->pNext = nullptr;
7028     if (pNext_size) {
7029         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7030         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7031         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7032         vkStream->alloc((void**)&forUnmarshaling->pNext,
7033                         goldfish_vk_extension_struct_size_with_stream_features(
7034                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7035         *(VkStructureType*)forUnmarshaling->pNext = extType;
7036         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7037     }
7038     vkStream->read((VkDescriptorUpdateTemplateCreateFlags*)&forUnmarshaling->flags,
7039                    sizeof(VkDescriptorUpdateTemplateCreateFlags));
7040     vkStream->read((uint32_t*)&forUnmarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
7041     vkStream->alloc((void**)&forUnmarshaling->pDescriptorUpdateEntries,
7042                     forUnmarshaling->descriptorUpdateEntryCount *
7043                         sizeof(const VkDescriptorUpdateTemplateEntry));
7044     if (forUnmarshaling) {
7045         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorUpdateEntryCount; ++i) {
7046             unmarshal_VkDescriptorUpdateTemplateEntry(
7047                 vkStream, rootType,
7048                 (VkDescriptorUpdateTemplateEntry*)(forUnmarshaling->pDescriptorUpdateEntries + i));
7049         }
7050     }
7051     vkStream->read((VkDescriptorUpdateTemplateType*)&forUnmarshaling->templateType,
7052                    sizeof(VkDescriptorUpdateTemplateType));
7053     uint64_t cgen_var_0;
7054     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
7055     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
7056         &cgen_var_0, (VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout, 1);
7057     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
7058                    sizeof(VkPipelineBindPoint));
7059     uint64_t cgen_var_1;
7060     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
7061     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
7062         &cgen_var_1, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
7063     vkStream->read((uint32_t*)&forUnmarshaling->set, sizeof(uint32_t));
7064 }
7065 
marshal_VkExternalMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,const VkExternalMemoryProperties * forMarshaling)7066 void marshal_VkExternalMemoryProperties(VulkanStream* vkStream, VkStructureType rootType,
7067                                         const VkExternalMemoryProperties* forMarshaling) {
7068     (void)rootType;
7069     vkStream->write((VkExternalMemoryFeatureFlags*)&forMarshaling->externalMemoryFeatures,
7070                     sizeof(VkExternalMemoryFeatureFlags));
7071     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
7072                     sizeof(VkExternalMemoryHandleTypeFlags));
7073     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
7074                     sizeof(VkExternalMemoryHandleTypeFlags));
7075 }
7076 
unmarshal_VkExternalMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalMemoryProperties * forUnmarshaling)7077 void unmarshal_VkExternalMemoryProperties(VulkanStream* vkStream, VkStructureType rootType,
7078                                           VkExternalMemoryProperties* forUnmarshaling) {
7079     (void)rootType;
7080     vkStream->read((VkExternalMemoryFeatureFlags*)&forUnmarshaling->externalMemoryFeatures,
7081                    sizeof(VkExternalMemoryFeatureFlags));
7082     vkStream->read(
7083         (VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes,
7084         sizeof(VkExternalMemoryHandleTypeFlags));
7085     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes,
7086                    sizeof(VkExternalMemoryHandleTypeFlags));
7087 }
7088 
marshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalImageFormatInfo * forMarshaling)7089 void marshal_VkPhysicalDeviceExternalImageFormatInfo(
7090     VulkanStream* vkStream, VkStructureType rootType,
7091     const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling) {
7092     (void)rootType;
7093     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7094     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7095         rootType = forMarshaling->sType;
7096     }
7097     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7098     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
7099                     sizeof(VkExternalMemoryHandleTypeFlagBits));
7100 }
7101 
unmarshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalImageFormatInfo * forUnmarshaling)7102 void unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
7103     VulkanStream* vkStream, VkStructureType rootType,
7104     VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling) {
7105     (void)rootType;
7106     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7107     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7108         rootType = forUnmarshaling->sType;
7109     }
7110     size_t pNext_size;
7111     pNext_size = vkStream->getBe32();
7112     forUnmarshaling->pNext = nullptr;
7113     if (pNext_size) {
7114         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7115         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7116         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7117         vkStream->alloc((void**)&forUnmarshaling->pNext,
7118                         goldfish_vk_extension_struct_size_with_stream_features(
7119                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7120         *(VkStructureType*)forUnmarshaling->pNext = extType;
7121         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7122     }
7123     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
7124                    sizeof(VkExternalMemoryHandleTypeFlagBits));
7125 }
7126 
marshal_VkExternalImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,const VkExternalImageFormatProperties * forMarshaling)7127 void marshal_VkExternalImageFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
7128                                              const VkExternalImageFormatProperties* forMarshaling) {
7129     (void)rootType;
7130     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7131     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7132         rootType = forMarshaling->sType;
7133     }
7134     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7135     marshal_VkExternalMemoryProperties(
7136         vkStream, rootType,
7137         (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
7138 }
7139 
unmarshal_VkExternalImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalImageFormatProperties * forUnmarshaling)7140 void unmarshal_VkExternalImageFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
7141                                                VkExternalImageFormatProperties* forUnmarshaling) {
7142     (void)rootType;
7143     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7144     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7145         rootType = forUnmarshaling->sType;
7146     }
7147     size_t pNext_size;
7148     pNext_size = vkStream->getBe32();
7149     forUnmarshaling->pNext = nullptr;
7150     if (pNext_size) {
7151         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7152         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7153         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7154         vkStream->alloc((void**)&forUnmarshaling->pNext,
7155                         goldfish_vk_extension_struct_size_with_stream_features(
7156                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7157         *(VkStructureType*)forUnmarshaling->pNext = extType;
7158         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7159     }
7160     unmarshal_VkExternalMemoryProperties(
7161         vkStream, rootType,
7162         (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
7163 }
7164 
marshal_VkPhysicalDeviceExternalBufferInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalBufferInfo * forMarshaling)7165 void marshal_VkPhysicalDeviceExternalBufferInfo(
7166     VulkanStream* vkStream, VkStructureType rootType,
7167     const VkPhysicalDeviceExternalBufferInfo* forMarshaling) {
7168     (void)rootType;
7169     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7170     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7171         rootType = forMarshaling->sType;
7172     }
7173     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7174     vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
7175     vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
7176     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
7177                     sizeof(VkExternalMemoryHandleTypeFlagBits));
7178 }
7179 
unmarshal_VkPhysicalDeviceExternalBufferInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalBufferInfo * forUnmarshaling)7180 void unmarshal_VkPhysicalDeviceExternalBufferInfo(
7181     VulkanStream* vkStream, VkStructureType rootType,
7182     VkPhysicalDeviceExternalBufferInfo* forUnmarshaling) {
7183     (void)rootType;
7184     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7185     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7186         rootType = forUnmarshaling->sType;
7187     }
7188     size_t pNext_size;
7189     pNext_size = vkStream->getBe32();
7190     forUnmarshaling->pNext = nullptr;
7191     if (pNext_size) {
7192         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7193         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7194         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7195         vkStream->alloc((void**)&forUnmarshaling->pNext,
7196                         goldfish_vk_extension_struct_size_with_stream_features(
7197                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7198         *(VkStructureType*)forUnmarshaling->pNext = extType;
7199         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7200     }
7201     vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
7202     vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
7203     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
7204                    sizeof(VkExternalMemoryHandleTypeFlagBits));
7205 }
7206 
marshal_VkExternalBufferProperties(VulkanStream * vkStream,VkStructureType rootType,const VkExternalBufferProperties * forMarshaling)7207 void marshal_VkExternalBufferProperties(VulkanStream* vkStream, VkStructureType rootType,
7208                                         const VkExternalBufferProperties* forMarshaling) {
7209     (void)rootType;
7210     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7211     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7212         rootType = forMarshaling->sType;
7213     }
7214     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7215     marshal_VkExternalMemoryProperties(
7216         vkStream, rootType,
7217         (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
7218 }
7219 
unmarshal_VkExternalBufferProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalBufferProperties * forUnmarshaling)7220 void unmarshal_VkExternalBufferProperties(VulkanStream* vkStream, VkStructureType rootType,
7221                                           VkExternalBufferProperties* forUnmarshaling) {
7222     (void)rootType;
7223     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7224     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7225         rootType = forUnmarshaling->sType;
7226     }
7227     size_t pNext_size;
7228     pNext_size = vkStream->getBe32();
7229     forUnmarshaling->pNext = nullptr;
7230     if (pNext_size) {
7231         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7232         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7233         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7234         vkStream->alloc((void**)&forUnmarshaling->pNext,
7235                         goldfish_vk_extension_struct_size_with_stream_features(
7236                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7237         *(VkStructureType*)forUnmarshaling->pNext = extType;
7238         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7239     }
7240     unmarshal_VkExternalMemoryProperties(
7241         vkStream, rootType,
7242         (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
7243 }
7244 
marshal_VkPhysicalDeviceIDProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceIDProperties * forMarshaling)7245 void marshal_VkPhysicalDeviceIDProperties(VulkanStream* vkStream, VkStructureType rootType,
7246                                           const VkPhysicalDeviceIDProperties* forMarshaling) {
7247     (void)rootType;
7248     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7249     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7250         rootType = forMarshaling->sType;
7251     }
7252     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7253     vkStream->write((uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
7254     vkStream->write((uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
7255     vkStream->write((uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
7256     vkStream->write((uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
7257     vkStream->write((VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
7258 }
7259 
unmarshal_VkPhysicalDeviceIDProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceIDProperties * forUnmarshaling)7260 void unmarshal_VkPhysicalDeviceIDProperties(VulkanStream* vkStream, VkStructureType rootType,
7261                                             VkPhysicalDeviceIDProperties* forUnmarshaling) {
7262     (void)rootType;
7263     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7264     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7265         rootType = forUnmarshaling->sType;
7266     }
7267     size_t pNext_size;
7268     pNext_size = vkStream->getBe32();
7269     forUnmarshaling->pNext = nullptr;
7270     if (pNext_size) {
7271         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7272         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7273         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7274         vkStream->alloc((void**)&forUnmarshaling->pNext,
7275                         goldfish_vk_extension_struct_size_with_stream_features(
7276                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7277         *(VkStructureType*)forUnmarshaling->pNext = extType;
7278         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7279     }
7280     vkStream->read((uint8_t*)forUnmarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
7281     vkStream->read((uint8_t*)forUnmarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
7282     vkStream->read((uint8_t*)forUnmarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
7283     vkStream->read((uint32_t*)&forUnmarshaling->deviceNodeMask, sizeof(uint32_t));
7284     vkStream->read((VkBool32*)&forUnmarshaling->deviceLUIDValid, sizeof(VkBool32));
7285 }
7286 
marshal_VkExternalMemoryImageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkExternalMemoryImageCreateInfo * forMarshaling)7287 void marshal_VkExternalMemoryImageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7288                                              const VkExternalMemoryImageCreateInfo* forMarshaling) {
7289     (void)rootType;
7290     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7291     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7292         rootType = forMarshaling->sType;
7293     }
7294     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7295     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
7296                     sizeof(VkExternalMemoryHandleTypeFlags));
7297 }
7298 
unmarshal_VkExternalMemoryImageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExternalMemoryImageCreateInfo * forUnmarshaling)7299 void unmarshal_VkExternalMemoryImageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7300                                                VkExternalMemoryImageCreateInfo* forUnmarshaling) {
7301     (void)rootType;
7302     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7303     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7304         rootType = forUnmarshaling->sType;
7305     }
7306     size_t pNext_size;
7307     pNext_size = vkStream->getBe32();
7308     forUnmarshaling->pNext = nullptr;
7309     if (pNext_size) {
7310         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7311         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7312         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7313         vkStream->alloc((void**)&forUnmarshaling->pNext,
7314                         goldfish_vk_extension_struct_size_with_stream_features(
7315                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7316         *(VkStructureType*)forUnmarshaling->pNext = extType;
7317         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7318     }
7319     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes,
7320                    sizeof(VkExternalMemoryHandleTypeFlags));
7321 }
7322 
marshal_VkExternalMemoryBufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkExternalMemoryBufferCreateInfo * forMarshaling)7323 void marshal_VkExternalMemoryBufferCreateInfo(
7324     VulkanStream* vkStream, VkStructureType rootType,
7325     const VkExternalMemoryBufferCreateInfo* forMarshaling) {
7326     (void)rootType;
7327     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7328     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7329         rootType = forMarshaling->sType;
7330     }
7331     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7332     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
7333                     sizeof(VkExternalMemoryHandleTypeFlags));
7334 }
7335 
unmarshal_VkExternalMemoryBufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExternalMemoryBufferCreateInfo * forUnmarshaling)7336 void unmarshal_VkExternalMemoryBufferCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7337                                                 VkExternalMemoryBufferCreateInfo* forUnmarshaling) {
7338     (void)rootType;
7339     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7340     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7341         rootType = forUnmarshaling->sType;
7342     }
7343     size_t pNext_size;
7344     pNext_size = vkStream->getBe32();
7345     forUnmarshaling->pNext = nullptr;
7346     if (pNext_size) {
7347         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7348         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7349         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7350         vkStream->alloc((void**)&forUnmarshaling->pNext,
7351                         goldfish_vk_extension_struct_size_with_stream_features(
7352                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7353         *(VkStructureType*)forUnmarshaling->pNext = extType;
7354         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7355     }
7356     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes,
7357                    sizeof(VkExternalMemoryHandleTypeFlags));
7358 }
7359 
marshal_VkExportMemoryAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkExportMemoryAllocateInfo * forMarshaling)7360 void marshal_VkExportMemoryAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
7361                                         const VkExportMemoryAllocateInfo* forMarshaling) {
7362     (void)rootType;
7363     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7364     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7365         rootType = forMarshaling->sType;
7366     }
7367     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7368     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
7369                     sizeof(VkExternalMemoryHandleTypeFlags));
7370 }
7371 
unmarshal_VkExportMemoryAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExportMemoryAllocateInfo * forUnmarshaling)7372 void unmarshal_VkExportMemoryAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
7373                                           VkExportMemoryAllocateInfo* forUnmarshaling) {
7374     (void)rootType;
7375     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7376     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7377         rootType = forUnmarshaling->sType;
7378     }
7379     size_t pNext_size;
7380     pNext_size = vkStream->getBe32();
7381     forUnmarshaling->pNext = nullptr;
7382     if (pNext_size) {
7383         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7384         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7385         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7386         vkStream->alloc((void**)&forUnmarshaling->pNext,
7387                         goldfish_vk_extension_struct_size_with_stream_features(
7388                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7389         *(VkStructureType*)forUnmarshaling->pNext = extType;
7390         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7391     }
7392     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes,
7393                    sizeof(VkExternalMemoryHandleTypeFlags));
7394 }
7395 
marshal_VkPhysicalDeviceExternalFenceInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalFenceInfo * forMarshaling)7396 void marshal_VkPhysicalDeviceExternalFenceInfo(
7397     VulkanStream* vkStream, VkStructureType rootType,
7398     const VkPhysicalDeviceExternalFenceInfo* forMarshaling) {
7399     (void)rootType;
7400     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7401     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7402         rootType = forMarshaling->sType;
7403     }
7404     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7405     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
7406                     sizeof(VkExternalFenceHandleTypeFlagBits));
7407 }
7408 
unmarshal_VkPhysicalDeviceExternalFenceInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalFenceInfo * forUnmarshaling)7409 void unmarshal_VkPhysicalDeviceExternalFenceInfo(
7410     VulkanStream* vkStream, VkStructureType rootType,
7411     VkPhysicalDeviceExternalFenceInfo* forUnmarshaling) {
7412     (void)rootType;
7413     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7414     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7415         rootType = forUnmarshaling->sType;
7416     }
7417     size_t pNext_size;
7418     pNext_size = vkStream->getBe32();
7419     forUnmarshaling->pNext = nullptr;
7420     if (pNext_size) {
7421         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7422         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7423         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7424         vkStream->alloc((void**)&forUnmarshaling->pNext,
7425                         goldfish_vk_extension_struct_size_with_stream_features(
7426                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7427         *(VkStructureType*)forUnmarshaling->pNext = extType;
7428         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7429     }
7430     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
7431                    sizeof(VkExternalFenceHandleTypeFlagBits));
7432 }
7433 
marshal_VkExternalFenceProperties(VulkanStream * vkStream,VkStructureType rootType,const VkExternalFenceProperties * forMarshaling)7434 void marshal_VkExternalFenceProperties(VulkanStream* vkStream, VkStructureType rootType,
7435                                        const VkExternalFenceProperties* forMarshaling) {
7436     (void)rootType;
7437     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7438     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7439         rootType = forMarshaling->sType;
7440     }
7441     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7442     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
7443                     sizeof(VkExternalFenceHandleTypeFlags));
7444     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
7445                     sizeof(VkExternalFenceHandleTypeFlags));
7446     vkStream->write((VkExternalFenceFeatureFlags*)&forMarshaling->externalFenceFeatures,
7447                     sizeof(VkExternalFenceFeatureFlags));
7448 }
7449 
unmarshal_VkExternalFenceProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalFenceProperties * forUnmarshaling)7450 void unmarshal_VkExternalFenceProperties(VulkanStream* vkStream, VkStructureType rootType,
7451                                          VkExternalFenceProperties* forUnmarshaling) {
7452     (void)rootType;
7453     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7454     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7455         rootType = forUnmarshaling->sType;
7456     }
7457     size_t pNext_size;
7458     pNext_size = vkStream->getBe32();
7459     forUnmarshaling->pNext = nullptr;
7460     if (pNext_size) {
7461         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7462         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7463         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7464         vkStream->alloc((void**)&forUnmarshaling->pNext,
7465                         goldfish_vk_extension_struct_size_with_stream_features(
7466                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7467         *(VkStructureType*)forUnmarshaling->pNext = extType;
7468         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7469     }
7470     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes,
7471                    sizeof(VkExternalFenceHandleTypeFlags));
7472     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes,
7473                    sizeof(VkExternalFenceHandleTypeFlags));
7474     vkStream->read((VkExternalFenceFeatureFlags*)&forUnmarshaling->externalFenceFeatures,
7475                    sizeof(VkExternalFenceFeatureFlags));
7476 }
7477 
marshal_VkExportFenceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkExportFenceCreateInfo * forMarshaling)7478 void marshal_VkExportFenceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7479                                      const VkExportFenceCreateInfo* forMarshaling) {
7480     (void)rootType;
7481     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7482     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7483         rootType = forMarshaling->sType;
7484     }
7485     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7486     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->handleTypes,
7487                     sizeof(VkExternalFenceHandleTypeFlags));
7488 }
7489 
unmarshal_VkExportFenceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExportFenceCreateInfo * forUnmarshaling)7490 void unmarshal_VkExportFenceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7491                                        VkExportFenceCreateInfo* forUnmarshaling) {
7492     (void)rootType;
7493     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7494     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7495         rootType = forUnmarshaling->sType;
7496     }
7497     size_t pNext_size;
7498     pNext_size = vkStream->getBe32();
7499     forUnmarshaling->pNext = nullptr;
7500     if (pNext_size) {
7501         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7502         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7503         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7504         vkStream->alloc((void**)&forUnmarshaling->pNext,
7505                         goldfish_vk_extension_struct_size_with_stream_features(
7506                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7507         *(VkStructureType*)forUnmarshaling->pNext = extType;
7508         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7509     }
7510     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->handleTypes,
7511                    sizeof(VkExternalFenceHandleTypeFlags));
7512 }
7513 
marshal_VkExportSemaphoreCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkExportSemaphoreCreateInfo * forMarshaling)7514 void marshal_VkExportSemaphoreCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7515                                          const VkExportSemaphoreCreateInfo* forMarshaling) {
7516     (void)rootType;
7517     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7518     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7519         rootType = forMarshaling->sType;
7520     }
7521     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7522     vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->handleTypes,
7523                     sizeof(VkExternalSemaphoreHandleTypeFlags));
7524 }
7525 
unmarshal_VkExportSemaphoreCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExportSemaphoreCreateInfo * forUnmarshaling)7526 void unmarshal_VkExportSemaphoreCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7527                                            VkExportSemaphoreCreateInfo* forUnmarshaling) {
7528     (void)rootType;
7529     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7531         rootType = forUnmarshaling->sType;
7532     }
7533     size_t pNext_size;
7534     pNext_size = vkStream->getBe32();
7535     forUnmarshaling->pNext = nullptr;
7536     if (pNext_size) {
7537         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7538         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7539         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7540         vkStream->alloc((void**)&forUnmarshaling->pNext,
7541                         goldfish_vk_extension_struct_size_with_stream_features(
7542                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7543         *(VkStructureType*)forUnmarshaling->pNext = extType;
7544         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7545     }
7546     vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->handleTypes,
7547                    sizeof(VkExternalSemaphoreHandleTypeFlags));
7548 }
7549 
marshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalSemaphoreInfo * forMarshaling)7550 void marshal_VkPhysicalDeviceExternalSemaphoreInfo(
7551     VulkanStream* vkStream, VkStructureType rootType,
7552     const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling) {
7553     (void)rootType;
7554     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7555     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7556         rootType = forMarshaling->sType;
7557     }
7558     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7559     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
7560                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
7561 }
7562 
unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalSemaphoreInfo * forUnmarshaling)7563 void unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
7564     VulkanStream* vkStream, VkStructureType rootType,
7565     VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling) {
7566     (void)rootType;
7567     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7568     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7569         rootType = forUnmarshaling->sType;
7570     }
7571     size_t pNext_size;
7572     pNext_size = vkStream->getBe32();
7573     forUnmarshaling->pNext = nullptr;
7574     if (pNext_size) {
7575         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7576         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7577         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7578         vkStream->alloc((void**)&forUnmarshaling->pNext,
7579                         goldfish_vk_extension_struct_size_with_stream_features(
7580                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7581         *(VkStructureType*)forUnmarshaling->pNext = extType;
7582         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7583     }
7584     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
7585                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
7586 }
7587 
marshal_VkExternalSemaphoreProperties(VulkanStream * vkStream,VkStructureType rootType,const VkExternalSemaphoreProperties * forMarshaling)7588 void marshal_VkExternalSemaphoreProperties(VulkanStream* vkStream, VkStructureType rootType,
7589                                            const VkExternalSemaphoreProperties* forMarshaling) {
7590     (void)rootType;
7591     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7592     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7593         rootType = forMarshaling->sType;
7594     }
7595     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7596     vkStream->write(
7597         (VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
7598         sizeof(VkExternalSemaphoreHandleTypeFlags));
7599     vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
7600                     sizeof(VkExternalSemaphoreHandleTypeFlags));
7601     vkStream->write((VkExternalSemaphoreFeatureFlags*)&forMarshaling->externalSemaphoreFeatures,
7602                     sizeof(VkExternalSemaphoreFeatureFlags));
7603 }
7604 
unmarshal_VkExternalSemaphoreProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalSemaphoreProperties * forUnmarshaling)7605 void unmarshal_VkExternalSemaphoreProperties(VulkanStream* vkStream, VkStructureType rootType,
7606                                              VkExternalSemaphoreProperties* forUnmarshaling) {
7607     (void)rootType;
7608     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7609     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7610         rootType = forUnmarshaling->sType;
7611     }
7612     size_t pNext_size;
7613     pNext_size = vkStream->getBe32();
7614     forUnmarshaling->pNext = nullptr;
7615     if (pNext_size) {
7616         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7617         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7618         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7619         vkStream->alloc((void**)&forUnmarshaling->pNext,
7620                         goldfish_vk_extension_struct_size_with_stream_features(
7621                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7622         *(VkStructureType*)forUnmarshaling->pNext = extType;
7623         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7624     }
7625     vkStream->read(
7626         (VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes,
7627         sizeof(VkExternalSemaphoreHandleTypeFlags));
7628     vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes,
7629                    sizeof(VkExternalSemaphoreHandleTypeFlags));
7630     vkStream->read((VkExternalSemaphoreFeatureFlags*)&forUnmarshaling->externalSemaphoreFeatures,
7631                    sizeof(VkExternalSemaphoreFeatureFlags));
7632 }
7633 
marshal_VkPhysicalDeviceMaintenance3Properties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance3Properties * forMarshaling)7634 void marshal_VkPhysicalDeviceMaintenance3Properties(
7635     VulkanStream* vkStream, VkStructureType rootType,
7636     const VkPhysicalDeviceMaintenance3Properties* forMarshaling) {
7637     (void)rootType;
7638     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7639     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7640         rootType = forMarshaling->sType;
7641     }
7642     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7643     vkStream->write((uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
7644     vkStream->write((VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
7645 }
7646 
unmarshal_VkPhysicalDeviceMaintenance3Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance3Properties * forUnmarshaling)7647 void unmarshal_VkPhysicalDeviceMaintenance3Properties(
7648     VulkanStream* vkStream, VkStructureType rootType,
7649     VkPhysicalDeviceMaintenance3Properties* forUnmarshaling) {
7650     (void)rootType;
7651     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7652     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7653         rootType = forUnmarshaling->sType;
7654     }
7655     size_t pNext_size;
7656     pNext_size = vkStream->getBe32();
7657     forUnmarshaling->pNext = nullptr;
7658     if (pNext_size) {
7659         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7660         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7661         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7662         vkStream->alloc((void**)&forUnmarshaling->pNext,
7663                         goldfish_vk_extension_struct_size_with_stream_features(
7664                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7665         *(VkStructureType*)forUnmarshaling->pNext = extType;
7666         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7667     }
7668     vkStream->read((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, sizeof(uint32_t));
7669     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
7670 }
7671 
marshal_VkDescriptorSetLayoutSupport(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutSupport * forMarshaling)7672 void marshal_VkDescriptorSetLayoutSupport(VulkanStream* vkStream, VkStructureType rootType,
7673                                           const VkDescriptorSetLayoutSupport* forMarshaling) {
7674     (void)rootType;
7675     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7676     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7677         rootType = forMarshaling->sType;
7678     }
7679     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7680     vkStream->write((VkBool32*)&forMarshaling->supported, sizeof(VkBool32));
7681 }
7682 
unmarshal_VkDescriptorSetLayoutSupport(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutSupport * forUnmarshaling)7683 void unmarshal_VkDescriptorSetLayoutSupport(VulkanStream* vkStream, VkStructureType rootType,
7684                                             VkDescriptorSetLayoutSupport* forUnmarshaling) {
7685     (void)rootType;
7686     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7687     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7688         rootType = forUnmarshaling->sType;
7689     }
7690     size_t pNext_size;
7691     pNext_size = vkStream->getBe32();
7692     forUnmarshaling->pNext = nullptr;
7693     if (pNext_size) {
7694         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7695         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7696         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7697         vkStream->alloc((void**)&forUnmarshaling->pNext,
7698                         goldfish_vk_extension_struct_size_with_stream_features(
7699                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7700         *(VkStructureType*)forUnmarshaling->pNext = extType;
7701         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7702     }
7703     vkStream->read((VkBool32*)&forUnmarshaling->supported, sizeof(VkBool32));
7704 }
7705 
marshal_VkPhysicalDeviceShaderDrawParametersFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderDrawParametersFeatures * forMarshaling)7706 void marshal_VkPhysicalDeviceShaderDrawParametersFeatures(
7707     VulkanStream* vkStream, VkStructureType rootType,
7708     const VkPhysicalDeviceShaderDrawParametersFeatures* forMarshaling) {
7709     (void)rootType;
7710     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7711     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7712         rootType = forMarshaling->sType;
7713     }
7714     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7715     vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
7716 }
7717 
unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderDrawParametersFeatures * forUnmarshaling)7718 void unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
7719     VulkanStream* vkStream, VkStructureType rootType,
7720     VkPhysicalDeviceShaderDrawParametersFeatures* forUnmarshaling) {
7721     (void)rootType;
7722     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7723     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7724         rootType = forUnmarshaling->sType;
7725     }
7726     size_t pNext_size;
7727     pNext_size = vkStream->getBe32();
7728     forUnmarshaling->pNext = nullptr;
7729     if (pNext_size) {
7730         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7731         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7732         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7733         vkStream->alloc((void**)&forUnmarshaling->pNext,
7734                         goldfish_vk_extension_struct_size_with_stream_features(
7735                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7736         *(VkStructureType*)forUnmarshaling->pNext = extType;
7737         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7738     }
7739     vkStream->read((VkBool32*)&forUnmarshaling->shaderDrawParameters, sizeof(VkBool32));
7740 }
7741 
7742 #endif
7743 #ifdef VK_VERSION_1_2
marshal_VkPhysicalDeviceVulkan11Features(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan11Features * forMarshaling)7744 void marshal_VkPhysicalDeviceVulkan11Features(
7745     VulkanStream* vkStream, VkStructureType rootType,
7746     const VkPhysicalDeviceVulkan11Features* forMarshaling) {
7747     (void)rootType;
7748     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7749     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7750         rootType = forMarshaling->sType;
7751     }
7752     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7753     vkStream->write((VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
7754     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess,
7755                     sizeof(VkBool32));
7756     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
7757     vkStream->write((VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
7758     vkStream->write((VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
7759     vkStream->write((VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
7760     vkStream->write((VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
7761     vkStream->write((VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
7762     vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
7763     vkStream->write((VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
7764     vkStream->write((VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
7765     vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
7766 }
7767 
unmarshal_VkPhysicalDeviceVulkan11Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan11Features * forUnmarshaling)7768 void unmarshal_VkPhysicalDeviceVulkan11Features(VulkanStream* vkStream, VkStructureType rootType,
7769                                                 VkPhysicalDeviceVulkan11Features* forUnmarshaling) {
7770     (void)rootType;
7771     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7772     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7773         rootType = forUnmarshaling->sType;
7774     }
7775     size_t pNext_size;
7776     pNext_size = vkStream->getBe32();
7777     forUnmarshaling->pNext = nullptr;
7778     if (pNext_size) {
7779         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7780         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7781         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7782         vkStream->alloc((void**)&forUnmarshaling->pNext,
7783                         goldfish_vk_extension_struct_size_with_stream_features(
7784                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7785         *(VkStructureType*)forUnmarshaling->pNext = extType;
7786         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7787     }
7788     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
7789     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess,
7790                    sizeof(VkBool32));
7791     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant16, sizeof(VkBool32));
7792     vkStream->read((VkBool32*)&forUnmarshaling->storageInputOutput16, sizeof(VkBool32));
7793     vkStream->read((VkBool32*)&forUnmarshaling->multiview, sizeof(VkBool32));
7794     vkStream->read((VkBool32*)&forUnmarshaling->multiviewGeometryShader, sizeof(VkBool32));
7795     vkStream->read((VkBool32*)&forUnmarshaling->multiviewTessellationShader, sizeof(VkBool32));
7796     vkStream->read((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
7797     vkStream->read((VkBool32*)&forUnmarshaling->variablePointers, sizeof(VkBool32));
7798     vkStream->read((VkBool32*)&forUnmarshaling->protectedMemory, sizeof(VkBool32));
7799     vkStream->read((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, sizeof(VkBool32));
7800     vkStream->read((VkBool32*)&forUnmarshaling->shaderDrawParameters, sizeof(VkBool32));
7801 }
7802 
marshal_VkPhysicalDeviceVulkan11Properties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan11Properties * forMarshaling)7803 void marshal_VkPhysicalDeviceVulkan11Properties(
7804     VulkanStream* vkStream, VkStructureType rootType,
7805     const VkPhysicalDeviceVulkan11Properties* forMarshaling) {
7806     (void)rootType;
7807     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7808     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7809         rootType = forMarshaling->sType;
7810     }
7811     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7812     vkStream->write((uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
7813     vkStream->write((uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
7814     vkStream->write((uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
7815     vkStream->write((uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
7816     vkStream->write((VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
7817     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
7818     vkStream->write((VkShaderStageFlags*)&forMarshaling->subgroupSupportedStages,
7819                     sizeof(VkShaderStageFlags));
7820     vkStream->write((VkSubgroupFeatureFlags*)&forMarshaling->subgroupSupportedOperations,
7821                     sizeof(VkSubgroupFeatureFlags));
7822     vkStream->write((VkBool32*)&forMarshaling->subgroupQuadOperationsInAllStages, sizeof(VkBool32));
7823     vkStream->write((VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior,
7824                     sizeof(VkPointClippingBehavior));
7825     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
7826     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
7827     vkStream->write((VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
7828     vkStream->write((uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
7829     vkStream->write((VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
7830 }
7831 
unmarshal_VkPhysicalDeviceVulkan11Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan11Properties * forUnmarshaling)7832 void unmarshal_VkPhysicalDeviceVulkan11Properties(
7833     VulkanStream* vkStream, VkStructureType rootType,
7834     VkPhysicalDeviceVulkan11Properties* forUnmarshaling) {
7835     (void)rootType;
7836     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7837     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7838         rootType = forUnmarshaling->sType;
7839     }
7840     size_t pNext_size;
7841     pNext_size = vkStream->getBe32();
7842     forUnmarshaling->pNext = nullptr;
7843     if (pNext_size) {
7844         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7845         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7846         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7847         vkStream->alloc((void**)&forUnmarshaling->pNext,
7848                         goldfish_vk_extension_struct_size_with_stream_features(
7849                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7850         *(VkStructureType*)forUnmarshaling->pNext = extType;
7851         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7852     }
7853     vkStream->read((uint8_t*)forUnmarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
7854     vkStream->read((uint8_t*)forUnmarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
7855     vkStream->read((uint8_t*)forUnmarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
7856     vkStream->read((uint32_t*)&forUnmarshaling->deviceNodeMask, sizeof(uint32_t));
7857     vkStream->read((VkBool32*)&forUnmarshaling->deviceLUIDValid, sizeof(VkBool32));
7858     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
7859     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->subgroupSupportedStages,
7860                    sizeof(VkShaderStageFlags));
7861     vkStream->read((VkSubgroupFeatureFlags*)&forUnmarshaling->subgroupSupportedOperations,
7862                    sizeof(VkSubgroupFeatureFlags));
7863     vkStream->read((VkBool32*)&forUnmarshaling->subgroupQuadOperationsInAllStages,
7864                    sizeof(VkBool32));
7865     vkStream->read((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior,
7866                    sizeof(VkPointClippingBehavior));
7867     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, sizeof(uint32_t));
7868     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
7869     vkStream->read((VkBool32*)&forUnmarshaling->protectedNoFault, sizeof(VkBool32));
7870     vkStream->read((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, sizeof(uint32_t));
7871     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
7872 }
7873 
marshal_VkPhysicalDeviceVulkan12Features(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan12Features * forMarshaling)7874 void marshal_VkPhysicalDeviceVulkan12Features(
7875     VulkanStream* vkStream, VkStructureType rootType,
7876     const VkPhysicalDeviceVulkan12Features* forMarshaling) {
7877     (void)rootType;
7878     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7879     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7880         rootType = forMarshaling->sType;
7881     }
7882     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7883     vkStream->write((VkBool32*)&forMarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
7884     vkStream->write((VkBool32*)&forMarshaling->drawIndirectCount, sizeof(VkBool32));
7885     vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
7886     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
7887     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
7888     vkStream->write((VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
7889     vkStream->write((VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
7890     vkStream->write((VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
7891     vkStream->write((VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
7892     vkStream->write((VkBool32*)&forMarshaling->descriptorIndexing, sizeof(VkBool32));
7893     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing,
7894                     sizeof(VkBool32));
7895     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
7896                     sizeof(VkBool32));
7897     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
7898                     sizeof(VkBool32));
7899     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing,
7900                     sizeof(VkBool32));
7901     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing,
7902                     sizeof(VkBool32));
7903     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing,
7904                     sizeof(VkBool32));
7905     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing,
7906                     sizeof(VkBool32));
7907     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing,
7908                     sizeof(VkBool32));
7909     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
7910                     sizeof(VkBool32));
7911     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
7912                     sizeof(VkBool32));
7913     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind,
7914                     sizeof(VkBool32));
7915     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind,
7916                     sizeof(VkBool32));
7917     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind,
7918                     sizeof(VkBool32));
7919     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind,
7920                     sizeof(VkBool32));
7921     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
7922                     sizeof(VkBool32));
7923     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
7924                     sizeof(VkBool32));
7925     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending,
7926                     sizeof(VkBool32));
7927     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
7928     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount,
7929                     sizeof(VkBool32));
7930     vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
7931     vkStream->write((VkBool32*)&forMarshaling->samplerFilterMinmax, sizeof(VkBool32));
7932     vkStream->write((VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
7933     vkStream->write((VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
7934     vkStream->write((VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
7935     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
7936     vkStream->write((VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
7937     vkStream->write((VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
7938     vkStream->write((VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
7939     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
7940     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
7941     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
7942     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
7943     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
7944     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
7945                     sizeof(VkBool32));
7946     vkStream->write((VkBool32*)&forMarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
7947     vkStream->write((VkBool32*)&forMarshaling->shaderOutputLayer, sizeof(VkBool32));
7948     vkStream->write((VkBool32*)&forMarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
7949 }
7950 
unmarshal_VkPhysicalDeviceVulkan12Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan12Features * forUnmarshaling)7951 void unmarshal_VkPhysicalDeviceVulkan12Features(VulkanStream* vkStream, VkStructureType rootType,
7952                                                 VkPhysicalDeviceVulkan12Features* forUnmarshaling) {
7953     (void)rootType;
7954     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7955     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7956         rootType = forUnmarshaling->sType;
7957     }
7958     size_t pNext_size;
7959     pNext_size = vkStream->getBe32();
7960     forUnmarshaling->pNext = nullptr;
7961     if (pNext_size) {
7962         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7963         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
7964         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7965         vkStream->alloc((void**)&forUnmarshaling->pNext,
7966                         goldfish_vk_extension_struct_size_with_stream_features(
7967                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7968         *(VkStructureType*)forUnmarshaling->pNext = extType;
7969         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7970     }
7971     vkStream->read((VkBool32*)&forUnmarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
7972     vkStream->read((VkBool32*)&forUnmarshaling->drawIndirectCount, sizeof(VkBool32));
7973     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
7974     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess,
7975                    sizeof(VkBool32));
7976     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
7977     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
7978     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
7979     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat16, sizeof(VkBool32));
7980     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt8, sizeof(VkBool32));
7981     vkStream->read((VkBool32*)&forUnmarshaling->descriptorIndexing, sizeof(VkBool32));
7982     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing,
7983                    sizeof(VkBool32));
7984     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
7985                    sizeof(VkBool32));
7986     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
7987                    sizeof(VkBool32));
7988     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing,
7989                    sizeof(VkBool32));
7990     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing,
7991                    sizeof(VkBool32));
7992     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing,
7993                    sizeof(VkBool32));
7994     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing,
7995                    sizeof(VkBool32));
7996     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing,
7997                    sizeof(VkBool32));
7998     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
7999                    sizeof(VkBool32));
8000     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
8001                    sizeof(VkBool32));
8002     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind,
8003                    sizeof(VkBool32));
8004     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind,
8005                    sizeof(VkBool32));
8006     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind,
8007                    sizeof(VkBool32));
8008     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind,
8009                    sizeof(VkBool32));
8010     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
8011                    sizeof(VkBool32));
8012     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
8013                    sizeof(VkBool32));
8014     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending,
8015                    sizeof(VkBool32));
8016     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
8017     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount,
8018                    sizeof(VkBool32));
8019     vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
8020     vkStream->read((VkBool32*)&forUnmarshaling->samplerFilterMinmax, sizeof(VkBool32));
8021     vkStream->read((VkBool32*)&forUnmarshaling->scalarBlockLayout, sizeof(VkBool32));
8022     vkStream->read((VkBool32*)&forUnmarshaling->imagelessFramebuffer, sizeof(VkBool32));
8023     vkStream->read((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
8024     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
8025     vkStream->read((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
8026     vkStream->read((VkBool32*)&forUnmarshaling->hostQueryReset, sizeof(VkBool32));
8027     vkStream->read((VkBool32*)&forUnmarshaling->timelineSemaphore, sizeof(VkBool32));
8028     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
8029     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
8030     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
8031     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModel, sizeof(VkBool32));
8032     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
8033     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
8034                    sizeof(VkBool32));
8035     vkStream->read((VkBool32*)&forUnmarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
8036     vkStream->read((VkBool32*)&forUnmarshaling->shaderOutputLayer, sizeof(VkBool32));
8037     vkStream->read((VkBool32*)&forUnmarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
8038 }
8039 
marshal_VkConformanceVersion(VulkanStream * vkStream,VkStructureType rootType,const VkConformanceVersion * forMarshaling)8040 void marshal_VkConformanceVersion(VulkanStream* vkStream, VkStructureType rootType,
8041                                   const VkConformanceVersion* forMarshaling) {
8042     (void)rootType;
8043     vkStream->write((uint8_t*)&forMarshaling->major, sizeof(uint8_t));
8044     vkStream->write((uint8_t*)&forMarshaling->minor, sizeof(uint8_t));
8045     vkStream->write((uint8_t*)&forMarshaling->subminor, sizeof(uint8_t));
8046     vkStream->write((uint8_t*)&forMarshaling->patch, sizeof(uint8_t));
8047 }
8048 
unmarshal_VkConformanceVersion(VulkanStream * vkStream,VkStructureType rootType,VkConformanceVersion * forUnmarshaling)8049 void unmarshal_VkConformanceVersion(VulkanStream* vkStream, VkStructureType rootType,
8050                                     VkConformanceVersion* forUnmarshaling) {
8051     (void)rootType;
8052     vkStream->read((uint8_t*)&forUnmarshaling->major, sizeof(uint8_t));
8053     vkStream->read((uint8_t*)&forUnmarshaling->minor, sizeof(uint8_t));
8054     vkStream->read((uint8_t*)&forUnmarshaling->subminor, sizeof(uint8_t));
8055     vkStream->read((uint8_t*)&forUnmarshaling->patch, sizeof(uint8_t));
8056 }
8057 
marshal_VkPhysicalDeviceVulkan12Properties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan12Properties * forMarshaling)8058 void marshal_VkPhysicalDeviceVulkan12Properties(
8059     VulkanStream* vkStream, VkStructureType rootType,
8060     const VkPhysicalDeviceVulkan12Properties* forMarshaling) {
8061     (void)rootType;
8062     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8063     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8064         rootType = forMarshaling->sType;
8065     }
8066     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8067     vkStream->write((VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
8068     vkStream->write((char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
8069     vkStream->write((char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
8070     marshal_VkConformanceVersion(vkStream, rootType,
8071                                  (VkConformanceVersion*)(&forMarshaling->conformanceVersion));
8072     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence,
8073                     sizeof(VkShaderFloatControlsIndependence));
8074     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence,
8075                     sizeof(VkShaderFloatControlsIndependence));
8076     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16,
8077                     sizeof(VkBool32));
8078     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32,
8079                     sizeof(VkBool32));
8080     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64,
8081                     sizeof(VkBool32));
8082     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
8083     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
8084     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
8085     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
8086     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
8087     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
8088     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
8089     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
8090     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
8091     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
8092     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
8093     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
8094     vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools,
8095                     sizeof(uint32_t));
8096     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
8097                     sizeof(VkBool32));
8098     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative,
8099                     sizeof(VkBool32));
8100     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
8101                     sizeof(VkBool32));
8102     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative,
8103                     sizeof(VkBool32));
8104     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
8105                     sizeof(VkBool32));
8106     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
8107     vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
8108     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
8109                     sizeof(uint32_t));
8110     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
8111                     sizeof(uint32_t));
8112     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
8113                     sizeof(uint32_t));
8114     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
8115                     sizeof(uint32_t));
8116     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
8117                     sizeof(uint32_t));
8118     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
8119                     sizeof(uint32_t));
8120     vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources,
8121                     sizeof(uint32_t));
8122     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers,
8123                     sizeof(uint32_t));
8124     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
8125                     sizeof(uint32_t));
8126     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
8127                     sizeof(uint32_t));
8128     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
8129                     sizeof(uint32_t));
8130     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
8131                     sizeof(uint32_t));
8132     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
8133                     sizeof(uint32_t));
8134     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
8135                     sizeof(uint32_t));
8136     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
8137                     sizeof(uint32_t));
8138     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes,
8139                     sizeof(VkResolveModeFlags));
8140     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes,
8141                     sizeof(VkResolveModeFlags));
8142     vkStream->write((VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
8143     vkStream->write((VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
8144     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats,
8145                     sizeof(VkBool32));
8146     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
8147     vkStream->write((uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference,
8148                     sizeof(uint64_t));
8149     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferIntegerColorSampleCounts,
8150                     sizeof(VkSampleCountFlags));
8151 }
8152 
unmarshal_VkPhysicalDeviceVulkan12Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan12Properties * forUnmarshaling)8153 void unmarshal_VkPhysicalDeviceVulkan12Properties(
8154     VulkanStream* vkStream, VkStructureType rootType,
8155     VkPhysicalDeviceVulkan12Properties* forUnmarshaling) {
8156     (void)rootType;
8157     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8158     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8159         rootType = forUnmarshaling->sType;
8160     }
8161     size_t pNext_size;
8162     pNext_size = vkStream->getBe32();
8163     forUnmarshaling->pNext = nullptr;
8164     if (pNext_size) {
8165         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8166         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8167         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8168         vkStream->alloc((void**)&forUnmarshaling->pNext,
8169                         goldfish_vk_extension_struct_size_with_stream_features(
8170                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8171         *(VkStructureType*)forUnmarshaling->pNext = extType;
8172         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8173     }
8174     vkStream->read((VkDriverId*)&forUnmarshaling->driverID, sizeof(VkDriverId));
8175     vkStream->read((char*)forUnmarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
8176     vkStream->read((char*)forUnmarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
8177     unmarshal_VkConformanceVersion(vkStream, rootType,
8178                                    (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion));
8179     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence,
8180                    sizeof(VkShaderFloatControlsIndependence));
8181     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence,
8182                    sizeof(VkShaderFloatControlsIndependence));
8183     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16,
8184                    sizeof(VkBool32));
8185     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32,
8186                    sizeof(VkBool32));
8187     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64,
8188                    sizeof(VkBool32));
8189     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
8190     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
8191     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
8192     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
8193     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
8194     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
8195     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
8196     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
8197     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
8198     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
8199     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
8200     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
8201     vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools,
8202                    sizeof(uint32_t));
8203     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
8204                    sizeof(VkBool32));
8205     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative,
8206                    sizeof(VkBool32));
8207     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
8208                    sizeof(VkBool32));
8209     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative,
8210                    sizeof(VkBool32));
8211     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
8212                    sizeof(VkBool32));
8213     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind,
8214                    sizeof(VkBool32));
8215     vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
8216     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
8217                    sizeof(uint32_t));
8218     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
8219                    sizeof(uint32_t));
8220     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
8221                    sizeof(uint32_t));
8222     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
8223                    sizeof(uint32_t));
8224     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
8225                    sizeof(uint32_t));
8226     vkStream->read(
8227         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
8228         sizeof(uint32_t));
8229     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources,
8230                    sizeof(uint32_t));
8231     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers,
8232                    sizeof(uint32_t));
8233     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
8234                    sizeof(uint32_t));
8235     vkStream->read(
8236         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
8237         sizeof(uint32_t));
8238     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
8239                    sizeof(uint32_t));
8240     vkStream->read(
8241         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
8242         sizeof(uint32_t));
8243     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
8244                    sizeof(uint32_t));
8245     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
8246                    sizeof(uint32_t));
8247     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
8248                    sizeof(uint32_t));
8249     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes,
8250                    sizeof(VkResolveModeFlags));
8251     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes,
8252                    sizeof(VkResolveModeFlags));
8253     vkStream->read((VkBool32*)&forUnmarshaling->independentResolveNone, sizeof(VkBool32));
8254     vkStream->read((VkBool32*)&forUnmarshaling->independentResolve, sizeof(VkBool32));
8255     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats,
8256                    sizeof(VkBool32));
8257     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping,
8258                    sizeof(VkBool32));
8259     vkStream->read((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference,
8260                    sizeof(uint64_t));
8261     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferIntegerColorSampleCounts,
8262                    sizeof(VkSampleCountFlags));
8263 }
8264 
marshal_VkImageFormatListCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkImageFormatListCreateInfo * forMarshaling)8265 void marshal_VkImageFormatListCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
8266                                          const VkImageFormatListCreateInfo* forMarshaling) {
8267     (void)rootType;
8268     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8269     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8270         rootType = forMarshaling->sType;
8271     }
8272     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8273     vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
8274     vkStream->write((const VkFormat*)forMarshaling->pViewFormats,
8275                     forMarshaling->viewFormatCount * sizeof(const VkFormat));
8276 }
8277 
unmarshal_VkImageFormatListCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageFormatListCreateInfo * forUnmarshaling)8278 void unmarshal_VkImageFormatListCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
8279                                            VkImageFormatListCreateInfo* forUnmarshaling) {
8280     (void)rootType;
8281     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8282     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8283         rootType = forUnmarshaling->sType;
8284     }
8285     size_t pNext_size;
8286     pNext_size = vkStream->getBe32();
8287     forUnmarshaling->pNext = nullptr;
8288     if (pNext_size) {
8289         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8290         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8291         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8292         vkStream->alloc((void**)&forUnmarshaling->pNext,
8293                         goldfish_vk_extension_struct_size_with_stream_features(
8294                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8295         *(VkStructureType*)forUnmarshaling->pNext = extType;
8296         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8297     }
8298     vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
8299     vkStream->alloc((void**)&forUnmarshaling->pViewFormats,
8300                     forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
8301     vkStream->read((VkFormat*)forUnmarshaling->pViewFormats,
8302                    forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
8303 }
8304 
marshal_VkAttachmentDescription2(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentDescription2 * forMarshaling)8305 void marshal_VkAttachmentDescription2(VulkanStream* vkStream, VkStructureType rootType,
8306                                       const VkAttachmentDescription2* forMarshaling) {
8307     (void)rootType;
8308     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8309     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8310         rootType = forMarshaling->sType;
8311     }
8312     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8313     vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags,
8314                     sizeof(VkAttachmentDescriptionFlags));
8315     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
8316     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
8317     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
8318     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
8319     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
8320     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp,
8321                     sizeof(VkAttachmentStoreOp));
8322     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
8323     vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
8324 }
8325 
unmarshal_VkAttachmentDescription2(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentDescription2 * forUnmarshaling)8326 void unmarshal_VkAttachmentDescription2(VulkanStream* vkStream, VkStructureType rootType,
8327                                         VkAttachmentDescription2* forUnmarshaling) {
8328     (void)rootType;
8329     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8330     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8331         rootType = forUnmarshaling->sType;
8332     }
8333     size_t pNext_size;
8334     pNext_size = vkStream->getBe32();
8335     forUnmarshaling->pNext = nullptr;
8336     if (pNext_size) {
8337         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8338         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8339         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8340         vkStream->alloc((void**)&forUnmarshaling->pNext,
8341                         goldfish_vk_extension_struct_size_with_stream_features(
8342                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8343         *(VkStructureType*)forUnmarshaling->pNext = extType;
8344         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8345     }
8346     vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags,
8347                    sizeof(VkAttachmentDescriptionFlags));
8348     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
8349     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
8350                    sizeof(VkSampleCountFlagBits));
8351     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
8352     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
8353     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp,
8354                    sizeof(VkAttachmentLoadOp));
8355     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp,
8356                    sizeof(VkAttachmentStoreOp));
8357     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
8358     vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
8359 }
8360 
marshal_VkAttachmentReference2(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentReference2 * forMarshaling)8361 void marshal_VkAttachmentReference2(VulkanStream* vkStream, VkStructureType rootType,
8362                                     const VkAttachmentReference2* forMarshaling) {
8363     (void)rootType;
8364     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8365     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8366         rootType = forMarshaling->sType;
8367     }
8368     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8369     vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
8370     vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
8371     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
8372 }
8373 
unmarshal_VkAttachmentReference2(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentReference2 * forUnmarshaling)8374 void unmarshal_VkAttachmentReference2(VulkanStream* vkStream, VkStructureType rootType,
8375                                       VkAttachmentReference2* forUnmarshaling) {
8376     (void)rootType;
8377     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8378     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8379         rootType = forUnmarshaling->sType;
8380     }
8381     size_t pNext_size;
8382     pNext_size = vkStream->getBe32();
8383     forUnmarshaling->pNext = nullptr;
8384     if (pNext_size) {
8385         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8386         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8387         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8388         vkStream->alloc((void**)&forUnmarshaling->pNext,
8389                         goldfish_vk_extension_struct_size_with_stream_features(
8390                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8391         *(VkStructureType*)forUnmarshaling->pNext = extType;
8392         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8393     }
8394     vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
8395     vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
8396     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
8397 }
8398 
marshal_VkSubpassDescription2(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassDescription2 * forMarshaling)8399 void marshal_VkSubpassDescription2(VulkanStream* vkStream, VkStructureType rootType,
8400                                    const VkSubpassDescription2* forMarshaling) {
8401     (void)rootType;
8402     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8403     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8404         rootType = forMarshaling->sType;
8405     }
8406     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8407     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags,
8408                     sizeof(VkSubpassDescriptionFlags));
8409     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
8410                     sizeof(VkPipelineBindPoint));
8411     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
8412     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
8413     if (forMarshaling) {
8414         for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i) {
8415             marshal_VkAttachmentReference2(
8416                 vkStream, rootType,
8417                 (const VkAttachmentReference2*)(forMarshaling->pInputAttachments + i));
8418         }
8419     }
8420     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
8421     if (forMarshaling) {
8422         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
8423             marshal_VkAttachmentReference2(
8424                 vkStream, rootType,
8425                 (const VkAttachmentReference2*)(forMarshaling->pColorAttachments + i));
8426         }
8427     }
8428     // WARNING PTR CHECK
8429     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
8430     vkStream->putBe64(cgen_var_0);
8431     if (forMarshaling->pResolveAttachments) {
8432         if (forMarshaling) {
8433             for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
8434                 marshal_VkAttachmentReference2(
8435                     vkStream, rootType,
8436                     (const VkAttachmentReference2*)(forMarshaling->pResolveAttachments + i));
8437             }
8438         }
8439     }
8440     // WARNING PTR CHECK
8441     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
8442     vkStream->putBe64(cgen_var_1);
8443     if (forMarshaling->pDepthStencilAttachment) {
8444         marshal_VkAttachmentReference2(
8445             vkStream, rootType,
8446             (const VkAttachmentReference2*)(forMarshaling->pDepthStencilAttachment));
8447     }
8448     vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
8449     vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments,
8450                     forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
8451 }
8452 
unmarshal_VkSubpassDescription2(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDescription2 * forUnmarshaling)8453 void unmarshal_VkSubpassDescription2(VulkanStream* vkStream, VkStructureType rootType,
8454                                      VkSubpassDescription2* forUnmarshaling) {
8455     (void)rootType;
8456     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8457     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8458         rootType = forUnmarshaling->sType;
8459     }
8460     size_t pNext_size;
8461     pNext_size = vkStream->getBe32();
8462     forUnmarshaling->pNext = nullptr;
8463     if (pNext_size) {
8464         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8465         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8466         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8467         vkStream->alloc((void**)&forUnmarshaling->pNext,
8468                         goldfish_vk_extension_struct_size_with_stream_features(
8469                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8470         *(VkStructureType*)forUnmarshaling->pNext = extType;
8471         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8472     }
8473     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags,
8474                    sizeof(VkSubpassDescriptionFlags));
8475     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
8476                    sizeof(VkPipelineBindPoint));
8477     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
8478     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
8479     vkStream->alloc((void**)&forUnmarshaling->pInputAttachments,
8480                     forUnmarshaling->inputAttachmentCount * sizeof(const VkAttachmentReference2));
8481     if (forUnmarshaling) {
8482         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i) {
8483             unmarshal_VkAttachmentReference2(
8484                 vkStream, rootType,
8485                 (VkAttachmentReference2*)(forUnmarshaling->pInputAttachments + i));
8486         }
8487     }
8488     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
8489     vkStream->alloc((void**)&forUnmarshaling->pColorAttachments,
8490                     forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference2));
8491     if (forUnmarshaling) {
8492         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
8493             unmarshal_VkAttachmentReference2(
8494                 vkStream, rootType,
8495                 (VkAttachmentReference2*)(forUnmarshaling->pColorAttachments + i));
8496         }
8497     }
8498     // WARNING PTR CHECK
8499     forUnmarshaling->pResolveAttachments =
8500         (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
8501     if (forUnmarshaling->pResolveAttachments) {
8502         vkStream->alloc(
8503             (void**)&forUnmarshaling->pResolveAttachments,
8504             forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference2));
8505         if (forUnmarshaling) {
8506             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
8507                 unmarshal_VkAttachmentReference2(
8508                     vkStream, rootType,
8509                     (VkAttachmentReference2*)(forUnmarshaling->pResolveAttachments + i));
8510             }
8511         }
8512     }
8513     // WARNING PTR CHECK
8514     forUnmarshaling->pDepthStencilAttachment =
8515         (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
8516     if (forUnmarshaling->pDepthStencilAttachment) {
8517         vkStream->alloc((void**)&forUnmarshaling->pDepthStencilAttachment,
8518                         sizeof(const VkAttachmentReference2));
8519         unmarshal_VkAttachmentReference2(
8520             vkStream, rootType,
8521             (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilAttachment));
8522     }
8523     vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
8524     vkStream->alloc((void**)&forUnmarshaling->pPreserveAttachments,
8525                     forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
8526     vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments,
8527                    forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
8528 }
8529 
marshal_VkSubpassDependency2(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassDependency2 * forMarshaling)8530 void marshal_VkSubpassDependency2(VulkanStream* vkStream, VkStructureType rootType,
8531                                   const VkSubpassDependency2* forMarshaling) {
8532     (void)rootType;
8533     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8534     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8535         rootType = forMarshaling->sType;
8536     }
8537     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8538     vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
8539     vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
8540     vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask,
8541                     sizeof(VkPipelineStageFlags));
8542     vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask,
8543                     sizeof(VkPipelineStageFlags));
8544     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
8545     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
8546     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
8547     vkStream->write((int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
8548 }
8549 
unmarshal_VkSubpassDependency2(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDependency2 * forUnmarshaling)8550 void unmarshal_VkSubpassDependency2(VulkanStream* vkStream, VkStructureType rootType,
8551                                     VkSubpassDependency2* forUnmarshaling) {
8552     (void)rootType;
8553     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8554     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8555         rootType = forUnmarshaling->sType;
8556     }
8557     size_t pNext_size;
8558     pNext_size = vkStream->getBe32();
8559     forUnmarshaling->pNext = nullptr;
8560     if (pNext_size) {
8561         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8562         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8563         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8564         vkStream->alloc((void**)&forUnmarshaling->pNext,
8565                         goldfish_vk_extension_struct_size_with_stream_features(
8566                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8567         *(VkStructureType*)forUnmarshaling->pNext = extType;
8568         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8569     }
8570     vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
8571     vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
8572     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask,
8573                    sizeof(VkPipelineStageFlags));
8574     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask,
8575                    sizeof(VkPipelineStageFlags));
8576     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
8577     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
8578     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags,
8579                    sizeof(VkDependencyFlags));
8580     vkStream->read((int32_t*)&forUnmarshaling->viewOffset, sizeof(int32_t));
8581 }
8582 
marshal_VkRenderPassCreateInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassCreateInfo2 * forMarshaling)8583 void marshal_VkRenderPassCreateInfo2(VulkanStream* vkStream, VkStructureType rootType,
8584                                      const VkRenderPassCreateInfo2* forMarshaling) {
8585     (void)rootType;
8586     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8587     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8588         rootType = forMarshaling->sType;
8589     }
8590     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8591     vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags,
8592                     sizeof(VkRenderPassCreateFlags));
8593     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
8594     if (forMarshaling) {
8595         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
8596             marshal_VkAttachmentDescription2(
8597                 vkStream, rootType,
8598                 (const VkAttachmentDescription2*)(forMarshaling->pAttachments + i));
8599         }
8600     }
8601     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
8602     if (forMarshaling) {
8603         for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i) {
8604             marshal_VkSubpassDescription2(
8605                 vkStream, rootType, (const VkSubpassDescription2*)(forMarshaling->pSubpasses + i));
8606         }
8607     }
8608     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
8609     if (forMarshaling) {
8610         for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i) {
8611             marshal_VkSubpassDependency2(
8612                 vkStream, rootType,
8613                 (const VkSubpassDependency2*)(forMarshaling->pDependencies + i));
8614         }
8615     }
8616     vkStream->write((uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
8617     vkStream->write((const uint32_t*)forMarshaling->pCorrelatedViewMasks,
8618                     forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
8619 }
8620 
unmarshal_VkRenderPassCreateInfo2(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassCreateInfo2 * forUnmarshaling)8621 void unmarshal_VkRenderPassCreateInfo2(VulkanStream* vkStream, VkStructureType rootType,
8622                                        VkRenderPassCreateInfo2* forUnmarshaling) {
8623     (void)rootType;
8624     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8625     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8626         rootType = forUnmarshaling->sType;
8627     }
8628     size_t pNext_size;
8629     pNext_size = vkStream->getBe32();
8630     forUnmarshaling->pNext = nullptr;
8631     if (pNext_size) {
8632         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8633         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8634         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8635         vkStream->alloc((void**)&forUnmarshaling->pNext,
8636                         goldfish_vk_extension_struct_size_with_stream_features(
8637                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8638         *(VkStructureType*)forUnmarshaling->pNext = extType;
8639         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8640     }
8641     vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags,
8642                    sizeof(VkRenderPassCreateFlags));
8643     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
8644     vkStream->alloc((void**)&forUnmarshaling->pAttachments,
8645                     forUnmarshaling->attachmentCount * sizeof(const VkAttachmentDescription2));
8646     if (forUnmarshaling) {
8647         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
8648             unmarshal_VkAttachmentDescription2(
8649                 vkStream, rootType, (VkAttachmentDescription2*)(forUnmarshaling->pAttachments + i));
8650         }
8651     }
8652     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
8653     vkStream->alloc((void**)&forUnmarshaling->pSubpasses,
8654                     forUnmarshaling->subpassCount * sizeof(const VkSubpassDescription2));
8655     if (forUnmarshaling) {
8656         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i) {
8657             unmarshal_VkSubpassDescription2(
8658                 vkStream, rootType, (VkSubpassDescription2*)(forUnmarshaling->pSubpasses + i));
8659         }
8660     }
8661     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
8662     vkStream->alloc((void**)&forUnmarshaling->pDependencies,
8663                     forUnmarshaling->dependencyCount * sizeof(const VkSubpassDependency2));
8664     if (forUnmarshaling) {
8665         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i) {
8666             unmarshal_VkSubpassDependency2(
8667                 vkStream, rootType, (VkSubpassDependency2*)(forUnmarshaling->pDependencies + i));
8668         }
8669     }
8670     vkStream->read((uint32_t*)&forUnmarshaling->correlatedViewMaskCount, sizeof(uint32_t));
8671     vkStream->alloc((void**)&forUnmarshaling->pCorrelatedViewMasks,
8672                     forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
8673     vkStream->read((uint32_t*)forUnmarshaling->pCorrelatedViewMasks,
8674                    forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
8675 }
8676 
marshal_VkSubpassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassBeginInfo * forMarshaling)8677 void marshal_VkSubpassBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
8678                                 const VkSubpassBeginInfo* forMarshaling) {
8679     (void)rootType;
8680     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8681     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8682         rootType = forMarshaling->sType;
8683     }
8684     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8685     vkStream->write((VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
8686 }
8687 
unmarshal_VkSubpassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkSubpassBeginInfo * forUnmarshaling)8688 void unmarshal_VkSubpassBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
8689                                   VkSubpassBeginInfo* forUnmarshaling) {
8690     (void)rootType;
8691     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8692     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8693         rootType = forUnmarshaling->sType;
8694     }
8695     size_t pNext_size;
8696     pNext_size = vkStream->getBe32();
8697     forUnmarshaling->pNext = nullptr;
8698     if (pNext_size) {
8699         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8700         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8701         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8702         vkStream->alloc((void**)&forUnmarshaling->pNext,
8703                         goldfish_vk_extension_struct_size_with_stream_features(
8704                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8705         *(VkStructureType*)forUnmarshaling->pNext = extType;
8706         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8707     }
8708     vkStream->read((VkSubpassContents*)&forUnmarshaling->contents, sizeof(VkSubpassContents));
8709 }
8710 
marshal_VkSubpassEndInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassEndInfo * forMarshaling)8711 void marshal_VkSubpassEndInfo(VulkanStream* vkStream, VkStructureType rootType,
8712                               const VkSubpassEndInfo* forMarshaling) {
8713     (void)rootType;
8714     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8715     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8716         rootType = forMarshaling->sType;
8717     }
8718     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8719 }
8720 
unmarshal_VkSubpassEndInfo(VulkanStream * vkStream,VkStructureType rootType,VkSubpassEndInfo * forUnmarshaling)8721 void unmarshal_VkSubpassEndInfo(VulkanStream* vkStream, VkStructureType rootType,
8722                                 VkSubpassEndInfo* forUnmarshaling) {
8723     (void)rootType;
8724     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8725     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8726         rootType = forUnmarshaling->sType;
8727     }
8728     size_t pNext_size;
8729     pNext_size = vkStream->getBe32();
8730     forUnmarshaling->pNext = nullptr;
8731     if (pNext_size) {
8732         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8733         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8734         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8735         vkStream->alloc((void**)&forUnmarshaling->pNext,
8736                         goldfish_vk_extension_struct_size_with_stream_features(
8737                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8738         *(VkStructureType*)forUnmarshaling->pNext = extType;
8739         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8740     }
8741 }
8742 
marshal_VkPhysicalDevice8BitStorageFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevice8BitStorageFeatures * forMarshaling)8743 void marshal_VkPhysicalDevice8BitStorageFeatures(
8744     VulkanStream* vkStream, VkStructureType rootType,
8745     const VkPhysicalDevice8BitStorageFeatures* forMarshaling) {
8746     (void)rootType;
8747     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8748     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8749         rootType = forMarshaling->sType;
8750     }
8751     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8752     vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
8753     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
8754     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
8755 }
8756 
unmarshal_VkPhysicalDevice8BitStorageFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevice8BitStorageFeatures * forUnmarshaling)8757 void unmarshal_VkPhysicalDevice8BitStorageFeatures(
8758     VulkanStream* vkStream, VkStructureType rootType,
8759     VkPhysicalDevice8BitStorageFeatures* forUnmarshaling) {
8760     (void)rootType;
8761     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8762     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8763         rootType = forUnmarshaling->sType;
8764     }
8765     size_t pNext_size;
8766     pNext_size = vkStream->getBe32();
8767     forUnmarshaling->pNext = nullptr;
8768     if (pNext_size) {
8769         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8770         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8771         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8772         vkStream->alloc((void**)&forUnmarshaling->pNext,
8773                         goldfish_vk_extension_struct_size_with_stream_features(
8774                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8775         *(VkStructureType*)forUnmarshaling->pNext = extType;
8776         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8777     }
8778     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
8779     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess,
8780                    sizeof(VkBool32));
8781     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
8782 }
8783 
marshal_VkPhysicalDeviceDriverProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDriverProperties * forMarshaling)8784 void marshal_VkPhysicalDeviceDriverProperties(
8785     VulkanStream* vkStream, VkStructureType rootType,
8786     const VkPhysicalDeviceDriverProperties* forMarshaling) {
8787     (void)rootType;
8788     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8789     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8790         rootType = forMarshaling->sType;
8791     }
8792     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8793     vkStream->write((VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
8794     vkStream->write((char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
8795     vkStream->write((char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
8796     marshal_VkConformanceVersion(vkStream, rootType,
8797                                  (VkConformanceVersion*)(&forMarshaling->conformanceVersion));
8798 }
8799 
unmarshal_VkPhysicalDeviceDriverProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDriverProperties * forUnmarshaling)8800 void unmarshal_VkPhysicalDeviceDriverProperties(VulkanStream* vkStream, VkStructureType rootType,
8801                                                 VkPhysicalDeviceDriverProperties* forUnmarshaling) {
8802     (void)rootType;
8803     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8804     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8805         rootType = forUnmarshaling->sType;
8806     }
8807     size_t pNext_size;
8808     pNext_size = vkStream->getBe32();
8809     forUnmarshaling->pNext = nullptr;
8810     if (pNext_size) {
8811         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8812         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8813         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8814         vkStream->alloc((void**)&forUnmarshaling->pNext,
8815                         goldfish_vk_extension_struct_size_with_stream_features(
8816                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8817         *(VkStructureType*)forUnmarshaling->pNext = extType;
8818         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8819     }
8820     vkStream->read((VkDriverId*)&forUnmarshaling->driverID, sizeof(VkDriverId));
8821     vkStream->read((char*)forUnmarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
8822     vkStream->read((char*)forUnmarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
8823     unmarshal_VkConformanceVersion(vkStream, rootType,
8824                                    (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion));
8825 }
8826 
marshal_VkPhysicalDeviceShaderAtomicInt64Features(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderAtomicInt64Features * forMarshaling)8827 void marshal_VkPhysicalDeviceShaderAtomicInt64Features(
8828     VulkanStream* vkStream, VkStructureType rootType,
8829     const VkPhysicalDeviceShaderAtomicInt64Features* forMarshaling) {
8830     (void)rootType;
8831     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8832     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8833         rootType = forMarshaling->sType;
8834     }
8835     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8836     vkStream->write((VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
8837     vkStream->write((VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
8838 }
8839 
unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderAtomicInt64Features * forUnmarshaling)8840 void unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
8841     VulkanStream* vkStream, VkStructureType rootType,
8842     VkPhysicalDeviceShaderAtomicInt64Features* forUnmarshaling) {
8843     (void)rootType;
8844     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8845     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8846         rootType = forUnmarshaling->sType;
8847     }
8848     size_t pNext_size;
8849     pNext_size = vkStream->getBe32();
8850     forUnmarshaling->pNext = nullptr;
8851     if (pNext_size) {
8852         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8853         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8854         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8855         vkStream->alloc((void**)&forUnmarshaling->pNext,
8856                         goldfish_vk_extension_struct_size_with_stream_features(
8857                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8858         *(VkStructureType*)forUnmarshaling->pNext = extType;
8859         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8860     }
8861     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
8862     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
8863 }
8864 
marshal_VkPhysicalDeviceShaderFloat16Int8Features(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderFloat16Int8Features * forMarshaling)8865 void marshal_VkPhysicalDeviceShaderFloat16Int8Features(
8866     VulkanStream* vkStream, VkStructureType rootType,
8867     const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling) {
8868     (void)rootType;
8869     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8870     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8871         rootType = forMarshaling->sType;
8872     }
8873     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8874     vkStream->write((VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
8875     vkStream->write((VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
8876 }
8877 
unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderFloat16Int8Features * forUnmarshaling)8878 void unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
8879     VulkanStream* vkStream, VkStructureType rootType,
8880     VkPhysicalDeviceShaderFloat16Int8Features* forUnmarshaling) {
8881     (void)rootType;
8882     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8883     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8884         rootType = forUnmarshaling->sType;
8885     }
8886     size_t pNext_size;
8887     pNext_size = vkStream->getBe32();
8888     forUnmarshaling->pNext = nullptr;
8889     if (pNext_size) {
8890         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8891         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8892         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8893         vkStream->alloc((void**)&forUnmarshaling->pNext,
8894                         goldfish_vk_extension_struct_size_with_stream_features(
8895                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8896         *(VkStructureType*)forUnmarshaling->pNext = extType;
8897         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8898     }
8899     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat16, sizeof(VkBool32));
8900     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt8, sizeof(VkBool32));
8901 }
8902 
marshal_VkPhysicalDeviceFloatControlsProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFloatControlsProperties * forMarshaling)8903 void marshal_VkPhysicalDeviceFloatControlsProperties(
8904     VulkanStream* vkStream, VkStructureType rootType,
8905     const VkPhysicalDeviceFloatControlsProperties* forMarshaling) {
8906     (void)rootType;
8907     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8908     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8909         rootType = forMarshaling->sType;
8910     }
8911     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8912     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence,
8913                     sizeof(VkShaderFloatControlsIndependence));
8914     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence,
8915                     sizeof(VkShaderFloatControlsIndependence));
8916     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16,
8917                     sizeof(VkBool32));
8918     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32,
8919                     sizeof(VkBool32));
8920     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64,
8921                     sizeof(VkBool32));
8922     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
8923     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
8924     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
8925     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
8926     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
8927     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
8928     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
8929     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
8930     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
8931     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
8932     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
8933     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
8934 }
8935 
unmarshal_VkPhysicalDeviceFloatControlsProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFloatControlsProperties * forUnmarshaling)8936 void unmarshal_VkPhysicalDeviceFloatControlsProperties(
8937     VulkanStream* vkStream, VkStructureType rootType,
8938     VkPhysicalDeviceFloatControlsProperties* forUnmarshaling) {
8939     (void)rootType;
8940     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8941     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8942         rootType = forUnmarshaling->sType;
8943     }
8944     size_t pNext_size;
8945     pNext_size = vkStream->getBe32();
8946     forUnmarshaling->pNext = nullptr;
8947     if (pNext_size) {
8948         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8949         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
8950         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8951         vkStream->alloc((void**)&forUnmarshaling->pNext,
8952                         goldfish_vk_extension_struct_size_with_stream_features(
8953                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8954         *(VkStructureType*)forUnmarshaling->pNext = extType;
8955         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8956     }
8957     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence,
8958                    sizeof(VkShaderFloatControlsIndependence));
8959     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence,
8960                    sizeof(VkShaderFloatControlsIndependence));
8961     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16,
8962                    sizeof(VkBool32));
8963     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32,
8964                    sizeof(VkBool32));
8965     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64,
8966                    sizeof(VkBool32));
8967     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
8968     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
8969     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
8970     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
8971     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
8972     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
8973     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
8974     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
8975     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
8976     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
8977     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
8978     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
8979 }
8980 
marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutBindingFlagsCreateInfo * forMarshaling)8981 void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
8982     VulkanStream* vkStream, VkStructureType rootType,
8983     const VkDescriptorSetLayoutBindingFlagsCreateInfo* forMarshaling) {
8984     (void)rootType;
8985     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8986     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8987         rootType = forMarshaling->sType;
8988     }
8989     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8990     vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
8991     // WARNING PTR CHECK
8992     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pBindingFlags;
8993     vkStream->putBe64(cgen_var_0);
8994     if (forMarshaling->pBindingFlags) {
8995         vkStream->write((const VkDescriptorBindingFlags*)forMarshaling->pBindingFlags,
8996                         forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
8997     }
8998 }
8999 
unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutBindingFlagsCreateInfo * forUnmarshaling)9000 void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
9001     VulkanStream* vkStream, VkStructureType rootType,
9002     VkDescriptorSetLayoutBindingFlagsCreateInfo* forUnmarshaling) {
9003     (void)rootType;
9004     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9005     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9006         rootType = forUnmarshaling->sType;
9007     }
9008     size_t pNext_size;
9009     pNext_size = vkStream->getBe32();
9010     forUnmarshaling->pNext = nullptr;
9011     if (pNext_size) {
9012         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9013         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9014         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9015         vkStream->alloc((void**)&forUnmarshaling->pNext,
9016                         goldfish_vk_extension_struct_size_with_stream_features(
9017                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9018         *(VkStructureType*)forUnmarshaling->pNext = extType;
9019         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9020     }
9021     vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
9022     // WARNING PTR CHECK
9023     forUnmarshaling->pBindingFlags =
9024         (const VkDescriptorBindingFlags*)(uintptr_t)vkStream->getBe64();
9025     if (forUnmarshaling->pBindingFlags) {
9026         vkStream->alloc((void**)&forUnmarshaling->pBindingFlags,
9027                         forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
9028         vkStream->read((VkDescriptorBindingFlags*)forUnmarshaling->pBindingFlags,
9029                        forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
9030     }
9031 }
9032 
marshal_VkPhysicalDeviceDescriptorIndexingFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingFeatures * forMarshaling)9033 void marshal_VkPhysicalDeviceDescriptorIndexingFeatures(
9034     VulkanStream* vkStream, VkStructureType rootType,
9035     const VkPhysicalDeviceDescriptorIndexingFeatures* forMarshaling) {
9036     (void)rootType;
9037     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9038     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9039         rootType = forMarshaling->sType;
9040     }
9041     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9042     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing,
9043                     sizeof(VkBool32));
9044     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
9045                     sizeof(VkBool32));
9046     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
9047                     sizeof(VkBool32));
9048     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing,
9049                     sizeof(VkBool32));
9050     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing,
9051                     sizeof(VkBool32));
9052     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing,
9053                     sizeof(VkBool32));
9054     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing,
9055                     sizeof(VkBool32));
9056     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing,
9057                     sizeof(VkBool32));
9058     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
9059                     sizeof(VkBool32));
9060     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
9061                     sizeof(VkBool32));
9062     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind,
9063                     sizeof(VkBool32));
9064     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind,
9065                     sizeof(VkBool32));
9066     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind,
9067                     sizeof(VkBool32));
9068     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind,
9069                     sizeof(VkBool32));
9070     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
9071                     sizeof(VkBool32));
9072     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
9073                     sizeof(VkBool32));
9074     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending,
9075                     sizeof(VkBool32));
9076     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
9077     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount,
9078                     sizeof(VkBool32));
9079     vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
9080 }
9081 
unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorIndexingFeatures * forUnmarshaling)9082 void unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
9083     VulkanStream* vkStream, VkStructureType rootType,
9084     VkPhysicalDeviceDescriptorIndexingFeatures* forUnmarshaling) {
9085     (void)rootType;
9086     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9087     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9088         rootType = forUnmarshaling->sType;
9089     }
9090     size_t pNext_size;
9091     pNext_size = vkStream->getBe32();
9092     forUnmarshaling->pNext = nullptr;
9093     if (pNext_size) {
9094         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9095         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9096         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9097         vkStream->alloc((void**)&forUnmarshaling->pNext,
9098                         goldfish_vk_extension_struct_size_with_stream_features(
9099                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9100         *(VkStructureType*)forUnmarshaling->pNext = extType;
9101         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9102     }
9103     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing,
9104                    sizeof(VkBool32));
9105     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
9106                    sizeof(VkBool32));
9107     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
9108                    sizeof(VkBool32));
9109     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing,
9110                    sizeof(VkBool32));
9111     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing,
9112                    sizeof(VkBool32));
9113     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing,
9114                    sizeof(VkBool32));
9115     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing,
9116                    sizeof(VkBool32));
9117     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing,
9118                    sizeof(VkBool32));
9119     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
9120                    sizeof(VkBool32));
9121     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
9122                    sizeof(VkBool32));
9123     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind,
9124                    sizeof(VkBool32));
9125     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind,
9126                    sizeof(VkBool32));
9127     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind,
9128                    sizeof(VkBool32));
9129     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind,
9130                    sizeof(VkBool32));
9131     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
9132                    sizeof(VkBool32));
9133     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
9134                    sizeof(VkBool32));
9135     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending,
9136                    sizeof(VkBool32));
9137     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
9138     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount,
9139                    sizeof(VkBool32));
9140     vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
9141 }
9142 
marshal_VkPhysicalDeviceDescriptorIndexingProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingProperties * forMarshaling)9143 void marshal_VkPhysicalDeviceDescriptorIndexingProperties(
9144     VulkanStream* vkStream, VkStructureType rootType,
9145     const VkPhysicalDeviceDescriptorIndexingProperties* forMarshaling) {
9146     (void)rootType;
9147     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9148     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9149         rootType = forMarshaling->sType;
9150     }
9151     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9152     vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools,
9153                     sizeof(uint32_t));
9154     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
9155                     sizeof(VkBool32));
9156     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative,
9157                     sizeof(VkBool32));
9158     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
9159                     sizeof(VkBool32));
9160     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative,
9161                     sizeof(VkBool32));
9162     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
9163                     sizeof(VkBool32));
9164     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
9165     vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
9166     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
9167                     sizeof(uint32_t));
9168     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
9169                     sizeof(uint32_t));
9170     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
9171                     sizeof(uint32_t));
9172     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
9173                     sizeof(uint32_t));
9174     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
9175                     sizeof(uint32_t));
9176     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
9177                     sizeof(uint32_t));
9178     vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources,
9179                     sizeof(uint32_t));
9180     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers,
9181                     sizeof(uint32_t));
9182     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
9183                     sizeof(uint32_t));
9184     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
9185                     sizeof(uint32_t));
9186     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
9187                     sizeof(uint32_t));
9188     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
9189                     sizeof(uint32_t));
9190     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
9191                     sizeof(uint32_t));
9192     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
9193                     sizeof(uint32_t));
9194     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
9195                     sizeof(uint32_t));
9196 }
9197 
unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorIndexingProperties * forUnmarshaling)9198 void unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
9199     VulkanStream* vkStream, VkStructureType rootType,
9200     VkPhysicalDeviceDescriptorIndexingProperties* forUnmarshaling) {
9201     (void)rootType;
9202     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9203     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9204         rootType = forUnmarshaling->sType;
9205     }
9206     size_t pNext_size;
9207     pNext_size = vkStream->getBe32();
9208     forUnmarshaling->pNext = nullptr;
9209     if (pNext_size) {
9210         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9211         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9212         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9213         vkStream->alloc((void**)&forUnmarshaling->pNext,
9214                         goldfish_vk_extension_struct_size_with_stream_features(
9215                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9216         *(VkStructureType*)forUnmarshaling->pNext = extType;
9217         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9218     }
9219     vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools,
9220                    sizeof(uint32_t));
9221     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
9222                    sizeof(VkBool32));
9223     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative,
9224                    sizeof(VkBool32));
9225     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
9226                    sizeof(VkBool32));
9227     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative,
9228                    sizeof(VkBool32));
9229     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
9230                    sizeof(VkBool32));
9231     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind,
9232                    sizeof(VkBool32));
9233     vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
9234     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
9235                    sizeof(uint32_t));
9236     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
9237                    sizeof(uint32_t));
9238     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
9239                    sizeof(uint32_t));
9240     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
9241                    sizeof(uint32_t));
9242     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
9243                    sizeof(uint32_t));
9244     vkStream->read(
9245         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
9246         sizeof(uint32_t));
9247     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources,
9248                    sizeof(uint32_t));
9249     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers,
9250                    sizeof(uint32_t));
9251     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
9252                    sizeof(uint32_t));
9253     vkStream->read(
9254         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
9255         sizeof(uint32_t));
9256     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
9257                    sizeof(uint32_t));
9258     vkStream->read(
9259         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
9260         sizeof(uint32_t));
9261     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
9262                    sizeof(uint32_t));
9263     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
9264                    sizeof(uint32_t));
9265     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
9266                    sizeof(uint32_t));
9267 }
9268 
marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountAllocateInfo * forMarshaling)9269 void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
9270     VulkanStream* vkStream, VkStructureType rootType,
9271     const VkDescriptorSetVariableDescriptorCountAllocateInfo* forMarshaling) {
9272     (void)rootType;
9273     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9274     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9275         rootType = forMarshaling->sType;
9276     }
9277     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9278     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
9279     vkStream->write((const uint32_t*)forMarshaling->pDescriptorCounts,
9280                     forMarshaling->descriptorSetCount * sizeof(const uint32_t));
9281 }
9282 
unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetVariableDescriptorCountAllocateInfo * forUnmarshaling)9283 void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
9284     VulkanStream* vkStream, VkStructureType rootType,
9285     VkDescriptorSetVariableDescriptorCountAllocateInfo* forUnmarshaling) {
9286     (void)rootType;
9287     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9288     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9289         rootType = forUnmarshaling->sType;
9290     }
9291     size_t pNext_size;
9292     pNext_size = vkStream->getBe32();
9293     forUnmarshaling->pNext = nullptr;
9294     if (pNext_size) {
9295         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9296         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9297         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9298         vkStream->alloc((void**)&forUnmarshaling->pNext,
9299                         goldfish_vk_extension_struct_size_with_stream_features(
9300                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9301         *(VkStructureType*)forUnmarshaling->pNext = extType;
9302         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9303     }
9304     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
9305     vkStream->alloc((void**)&forUnmarshaling->pDescriptorCounts,
9306                     forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
9307     vkStream->read((uint32_t*)forUnmarshaling->pDescriptorCounts,
9308                    forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
9309 }
9310 
marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountLayoutSupport * forMarshaling)9311 void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
9312     VulkanStream* vkStream, VkStructureType rootType,
9313     const VkDescriptorSetVariableDescriptorCountLayoutSupport* forMarshaling) {
9314     (void)rootType;
9315     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9316     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9317         rootType = forMarshaling->sType;
9318     }
9319     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9320     vkStream->write((uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
9321 }
9322 
unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetVariableDescriptorCountLayoutSupport * forUnmarshaling)9323 void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
9324     VulkanStream* vkStream, VkStructureType rootType,
9325     VkDescriptorSetVariableDescriptorCountLayoutSupport* forUnmarshaling) {
9326     (void)rootType;
9327     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9328     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9329         rootType = forUnmarshaling->sType;
9330     }
9331     size_t pNext_size;
9332     pNext_size = vkStream->getBe32();
9333     forUnmarshaling->pNext = nullptr;
9334     if (pNext_size) {
9335         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9336         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9337         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9338         vkStream->alloc((void**)&forUnmarshaling->pNext,
9339                         goldfish_vk_extension_struct_size_with_stream_features(
9340                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9341         *(VkStructureType*)forUnmarshaling->pNext = extType;
9342         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9343     }
9344     vkStream->read((uint32_t*)&forUnmarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
9345 }
9346 
marshal_VkSubpassDescriptionDepthStencilResolve(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassDescriptionDepthStencilResolve * forMarshaling)9347 void marshal_VkSubpassDescriptionDepthStencilResolve(
9348     VulkanStream* vkStream, VkStructureType rootType,
9349     const VkSubpassDescriptionDepthStencilResolve* forMarshaling) {
9350     (void)rootType;
9351     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9352     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9353         rootType = forMarshaling->sType;
9354     }
9355     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9356     vkStream->write((VkResolveModeFlagBits*)&forMarshaling->depthResolveMode,
9357                     sizeof(VkResolveModeFlagBits));
9358     vkStream->write((VkResolveModeFlagBits*)&forMarshaling->stencilResolveMode,
9359                     sizeof(VkResolveModeFlagBits));
9360     // WARNING PTR CHECK
9361     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilResolveAttachment;
9362     vkStream->putBe64(cgen_var_0);
9363     if (forMarshaling->pDepthStencilResolveAttachment) {
9364         marshal_VkAttachmentReference2(
9365             vkStream, rootType,
9366             (const VkAttachmentReference2*)(forMarshaling->pDepthStencilResolveAttachment));
9367     }
9368 }
9369 
unmarshal_VkSubpassDescriptionDepthStencilResolve(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDescriptionDepthStencilResolve * forUnmarshaling)9370 void unmarshal_VkSubpassDescriptionDepthStencilResolve(
9371     VulkanStream* vkStream, VkStructureType rootType,
9372     VkSubpassDescriptionDepthStencilResolve* forUnmarshaling) {
9373     (void)rootType;
9374     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9375     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9376         rootType = forUnmarshaling->sType;
9377     }
9378     size_t pNext_size;
9379     pNext_size = vkStream->getBe32();
9380     forUnmarshaling->pNext = nullptr;
9381     if (pNext_size) {
9382         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9383         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9384         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9385         vkStream->alloc((void**)&forUnmarshaling->pNext,
9386                         goldfish_vk_extension_struct_size_with_stream_features(
9387                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9388         *(VkStructureType*)forUnmarshaling->pNext = extType;
9389         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9390     }
9391     vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->depthResolveMode,
9392                    sizeof(VkResolveModeFlagBits));
9393     vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->stencilResolveMode,
9394                    sizeof(VkResolveModeFlagBits));
9395     // WARNING PTR CHECK
9396     forUnmarshaling->pDepthStencilResolveAttachment =
9397         (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
9398     if (forUnmarshaling->pDepthStencilResolveAttachment) {
9399         vkStream->alloc((void**)&forUnmarshaling->pDepthStencilResolveAttachment,
9400                         sizeof(const VkAttachmentReference2));
9401         unmarshal_VkAttachmentReference2(
9402             vkStream, rootType,
9403             (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilResolveAttachment));
9404     }
9405 }
9406 
marshal_VkPhysicalDeviceDepthStencilResolveProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthStencilResolveProperties * forMarshaling)9407 void marshal_VkPhysicalDeviceDepthStencilResolveProperties(
9408     VulkanStream* vkStream, VkStructureType rootType,
9409     const VkPhysicalDeviceDepthStencilResolveProperties* forMarshaling) {
9410     (void)rootType;
9411     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9412     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9413         rootType = forMarshaling->sType;
9414     }
9415     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9416     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes,
9417                     sizeof(VkResolveModeFlags));
9418     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes,
9419                     sizeof(VkResolveModeFlags));
9420     vkStream->write((VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
9421     vkStream->write((VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
9422 }
9423 
unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthStencilResolveProperties * forUnmarshaling)9424 void unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
9425     VulkanStream* vkStream, VkStructureType rootType,
9426     VkPhysicalDeviceDepthStencilResolveProperties* forUnmarshaling) {
9427     (void)rootType;
9428     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9429     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9430         rootType = forUnmarshaling->sType;
9431     }
9432     size_t pNext_size;
9433     pNext_size = vkStream->getBe32();
9434     forUnmarshaling->pNext = nullptr;
9435     if (pNext_size) {
9436         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9437         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9438         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9439         vkStream->alloc((void**)&forUnmarshaling->pNext,
9440                         goldfish_vk_extension_struct_size_with_stream_features(
9441                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9442         *(VkStructureType*)forUnmarshaling->pNext = extType;
9443         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9444     }
9445     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes,
9446                    sizeof(VkResolveModeFlags));
9447     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes,
9448                    sizeof(VkResolveModeFlags));
9449     vkStream->read((VkBool32*)&forUnmarshaling->independentResolveNone, sizeof(VkBool32));
9450     vkStream->read((VkBool32*)&forUnmarshaling->independentResolve, sizeof(VkBool32));
9451 }
9452 
marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceScalarBlockLayoutFeatures * forMarshaling)9453 void marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
9454     VulkanStream* vkStream, VkStructureType rootType,
9455     const VkPhysicalDeviceScalarBlockLayoutFeatures* forMarshaling) {
9456     (void)rootType;
9457     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9458     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9459         rootType = forMarshaling->sType;
9460     }
9461     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9462     vkStream->write((VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
9463 }
9464 
unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceScalarBlockLayoutFeatures * forUnmarshaling)9465 void unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
9466     VulkanStream* vkStream, VkStructureType rootType,
9467     VkPhysicalDeviceScalarBlockLayoutFeatures* forUnmarshaling) {
9468     (void)rootType;
9469     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9470     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9471         rootType = forUnmarshaling->sType;
9472     }
9473     size_t pNext_size;
9474     pNext_size = vkStream->getBe32();
9475     forUnmarshaling->pNext = nullptr;
9476     if (pNext_size) {
9477         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9478         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9479         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9480         vkStream->alloc((void**)&forUnmarshaling->pNext,
9481                         goldfish_vk_extension_struct_size_with_stream_features(
9482                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9483         *(VkStructureType*)forUnmarshaling->pNext = extType;
9484         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9485     }
9486     vkStream->read((VkBool32*)&forUnmarshaling->scalarBlockLayout, sizeof(VkBool32));
9487 }
9488 
marshal_VkImageStencilUsageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkImageStencilUsageCreateInfo * forMarshaling)9489 void marshal_VkImageStencilUsageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
9490                                            const VkImageStencilUsageCreateInfo* forMarshaling) {
9491     (void)rootType;
9492     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9493     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9494         rootType = forMarshaling->sType;
9495     }
9496     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9497     vkStream->write((VkImageUsageFlags*)&forMarshaling->stencilUsage, sizeof(VkImageUsageFlags));
9498 }
9499 
unmarshal_VkImageStencilUsageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageStencilUsageCreateInfo * forUnmarshaling)9500 void unmarshal_VkImageStencilUsageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
9501                                              VkImageStencilUsageCreateInfo* forUnmarshaling) {
9502     (void)rootType;
9503     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9504     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9505         rootType = forUnmarshaling->sType;
9506     }
9507     size_t pNext_size;
9508     pNext_size = vkStream->getBe32();
9509     forUnmarshaling->pNext = nullptr;
9510     if (pNext_size) {
9511         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9512         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9513         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9514         vkStream->alloc((void**)&forUnmarshaling->pNext,
9515                         goldfish_vk_extension_struct_size_with_stream_features(
9516                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9517         *(VkStructureType*)forUnmarshaling->pNext = extType;
9518         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9519     }
9520     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->stencilUsage, sizeof(VkImageUsageFlags));
9521 }
9522 
marshal_VkSamplerReductionModeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerReductionModeCreateInfo * forMarshaling)9523 void marshal_VkSamplerReductionModeCreateInfo(
9524     VulkanStream* vkStream, VkStructureType rootType,
9525     const VkSamplerReductionModeCreateInfo* forMarshaling) {
9526     (void)rootType;
9527     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9528     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9529         rootType = forMarshaling->sType;
9530     }
9531     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9532     vkStream->write((VkSamplerReductionMode*)&forMarshaling->reductionMode,
9533                     sizeof(VkSamplerReductionMode));
9534 }
9535 
unmarshal_VkSamplerReductionModeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerReductionModeCreateInfo * forUnmarshaling)9536 void unmarshal_VkSamplerReductionModeCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
9537                                                 VkSamplerReductionModeCreateInfo* forUnmarshaling) {
9538     (void)rootType;
9539     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9540     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9541         rootType = forUnmarshaling->sType;
9542     }
9543     size_t pNext_size;
9544     pNext_size = vkStream->getBe32();
9545     forUnmarshaling->pNext = nullptr;
9546     if (pNext_size) {
9547         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9548         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9549         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9550         vkStream->alloc((void**)&forUnmarshaling->pNext,
9551                         goldfish_vk_extension_struct_size_with_stream_features(
9552                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9553         *(VkStructureType*)forUnmarshaling->pNext = extType;
9554         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9555     }
9556     vkStream->read((VkSamplerReductionMode*)&forUnmarshaling->reductionMode,
9557                    sizeof(VkSamplerReductionMode));
9558 }
9559 
marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSamplerFilterMinmaxProperties * forMarshaling)9560 void marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
9561     VulkanStream* vkStream, VkStructureType rootType,
9562     const VkPhysicalDeviceSamplerFilterMinmaxProperties* forMarshaling) {
9563     (void)rootType;
9564     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9565     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9566         rootType = forMarshaling->sType;
9567     }
9568     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9569     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats,
9570                     sizeof(VkBool32));
9571     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
9572 }
9573 
unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSamplerFilterMinmaxProperties * forUnmarshaling)9574 void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
9575     VulkanStream* vkStream, VkStructureType rootType,
9576     VkPhysicalDeviceSamplerFilterMinmaxProperties* forUnmarshaling) {
9577     (void)rootType;
9578     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9579     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9580         rootType = forUnmarshaling->sType;
9581     }
9582     size_t pNext_size;
9583     pNext_size = vkStream->getBe32();
9584     forUnmarshaling->pNext = nullptr;
9585     if (pNext_size) {
9586         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9587         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9588         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9589         vkStream->alloc((void**)&forUnmarshaling->pNext,
9590                         goldfish_vk_extension_struct_size_with_stream_features(
9591                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9592         *(VkStructureType*)forUnmarshaling->pNext = extType;
9593         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9594     }
9595     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats,
9596                    sizeof(VkBool32));
9597     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping,
9598                    sizeof(VkBool32));
9599 }
9600 
marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkanMemoryModelFeatures * forMarshaling)9601 void marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
9602     VulkanStream* vkStream, VkStructureType rootType,
9603     const VkPhysicalDeviceVulkanMemoryModelFeatures* forMarshaling) {
9604     (void)rootType;
9605     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9606     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9607         rootType = forMarshaling->sType;
9608     }
9609     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9610     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
9611     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
9612     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
9613                     sizeof(VkBool32));
9614 }
9615 
unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkanMemoryModelFeatures * forUnmarshaling)9616 void unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
9617     VulkanStream* vkStream, VkStructureType rootType,
9618     VkPhysicalDeviceVulkanMemoryModelFeatures* forUnmarshaling) {
9619     (void)rootType;
9620     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9621     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9622         rootType = forUnmarshaling->sType;
9623     }
9624     size_t pNext_size;
9625     pNext_size = vkStream->getBe32();
9626     forUnmarshaling->pNext = nullptr;
9627     if (pNext_size) {
9628         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9629         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9630         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9631         vkStream->alloc((void**)&forUnmarshaling->pNext,
9632                         goldfish_vk_extension_struct_size_with_stream_features(
9633                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9634         *(VkStructureType*)forUnmarshaling->pNext = extType;
9635         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9636     }
9637     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModel, sizeof(VkBool32));
9638     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
9639     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
9640                    sizeof(VkBool32));
9641 }
9642 
marshal_VkPhysicalDeviceImagelessFramebufferFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImagelessFramebufferFeatures * forMarshaling)9643 void marshal_VkPhysicalDeviceImagelessFramebufferFeatures(
9644     VulkanStream* vkStream, VkStructureType rootType,
9645     const VkPhysicalDeviceImagelessFramebufferFeatures* forMarshaling) {
9646     (void)rootType;
9647     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9648     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9649         rootType = forMarshaling->sType;
9650     }
9651     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9652     vkStream->write((VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
9653 }
9654 
unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImagelessFramebufferFeatures * forUnmarshaling)9655 void unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
9656     VulkanStream* vkStream, VkStructureType rootType,
9657     VkPhysicalDeviceImagelessFramebufferFeatures* forUnmarshaling) {
9658     (void)rootType;
9659     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9660     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9661         rootType = forUnmarshaling->sType;
9662     }
9663     size_t pNext_size;
9664     pNext_size = vkStream->getBe32();
9665     forUnmarshaling->pNext = nullptr;
9666     if (pNext_size) {
9667         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9668         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9669         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9670         vkStream->alloc((void**)&forUnmarshaling->pNext,
9671                         goldfish_vk_extension_struct_size_with_stream_features(
9672                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9673         *(VkStructureType*)forUnmarshaling->pNext = extType;
9674         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9675     }
9676     vkStream->read((VkBool32*)&forUnmarshaling->imagelessFramebuffer, sizeof(VkBool32));
9677 }
9678 
marshal_VkFramebufferAttachmentImageInfo(VulkanStream * vkStream,VkStructureType rootType,const VkFramebufferAttachmentImageInfo * forMarshaling)9679 void marshal_VkFramebufferAttachmentImageInfo(
9680     VulkanStream* vkStream, VkStructureType rootType,
9681     const VkFramebufferAttachmentImageInfo* forMarshaling) {
9682     (void)rootType;
9683     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9684     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9685         rootType = forMarshaling->sType;
9686     }
9687     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9688     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
9689     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
9690     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
9691     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
9692     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
9693     vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
9694     vkStream->write((const VkFormat*)forMarshaling->pViewFormats,
9695                     forMarshaling->viewFormatCount * sizeof(const VkFormat));
9696 }
9697 
unmarshal_VkFramebufferAttachmentImageInfo(VulkanStream * vkStream,VkStructureType rootType,VkFramebufferAttachmentImageInfo * forUnmarshaling)9698 void unmarshal_VkFramebufferAttachmentImageInfo(VulkanStream* vkStream, VkStructureType rootType,
9699                                                 VkFramebufferAttachmentImageInfo* forUnmarshaling) {
9700     (void)rootType;
9701     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9702     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9703         rootType = forUnmarshaling->sType;
9704     }
9705     size_t pNext_size;
9706     pNext_size = vkStream->getBe32();
9707     forUnmarshaling->pNext = nullptr;
9708     if (pNext_size) {
9709         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9710         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9711         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9712         vkStream->alloc((void**)&forUnmarshaling->pNext,
9713                         goldfish_vk_extension_struct_size_with_stream_features(
9714                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9715         *(VkStructureType*)forUnmarshaling->pNext = extType;
9716         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9717     }
9718     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
9719     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
9720     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
9721     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
9722     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
9723     vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
9724     vkStream->alloc((void**)&forUnmarshaling->pViewFormats,
9725                     forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
9726     vkStream->read((VkFormat*)forUnmarshaling->pViewFormats,
9727                    forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
9728 }
9729 
marshal_VkFramebufferAttachmentsCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkFramebufferAttachmentsCreateInfo * forMarshaling)9730 void marshal_VkFramebufferAttachmentsCreateInfo(
9731     VulkanStream* vkStream, VkStructureType rootType,
9732     const VkFramebufferAttachmentsCreateInfo* forMarshaling) {
9733     (void)rootType;
9734     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9735     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9736         rootType = forMarshaling->sType;
9737     }
9738     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9739     vkStream->write((uint32_t*)&forMarshaling->attachmentImageInfoCount, sizeof(uint32_t));
9740     if (forMarshaling) {
9741         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentImageInfoCount; ++i) {
9742             marshal_VkFramebufferAttachmentImageInfo(
9743                 vkStream, rootType,
9744                 (const VkFramebufferAttachmentImageInfo*)(forMarshaling->pAttachmentImageInfos +
9745                                                           i));
9746         }
9747     }
9748 }
9749 
unmarshal_VkFramebufferAttachmentsCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkFramebufferAttachmentsCreateInfo * forUnmarshaling)9750 void unmarshal_VkFramebufferAttachmentsCreateInfo(
9751     VulkanStream* vkStream, VkStructureType rootType,
9752     VkFramebufferAttachmentsCreateInfo* forUnmarshaling) {
9753     (void)rootType;
9754     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9755     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9756         rootType = forUnmarshaling->sType;
9757     }
9758     size_t pNext_size;
9759     pNext_size = vkStream->getBe32();
9760     forUnmarshaling->pNext = nullptr;
9761     if (pNext_size) {
9762         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9763         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9764         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9765         vkStream->alloc((void**)&forUnmarshaling->pNext,
9766                         goldfish_vk_extension_struct_size_with_stream_features(
9767                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9768         *(VkStructureType*)forUnmarshaling->pNext = extType;
9769         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9770     }
9771     vkStream->read((uint32_t*)&forUnmarshaling->attachmentImageInfoCount, sizeof(uint32_t));
9772     vkStream->alloc(
9773         (void**)&forUnmarshaling->pAttachmentImageInfos,
9774         forUnmarshaling->attachmentImageInfoCount * sizeof(const VkFramebufferAttachmentImageInfo));
9775     if (forUnmarshaling) {
9776         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentImageInfoCount; ++i) {
9777             unmarshal_VkFramebufferAttachmentImageInfo(
9778                 vkStream, rootType,
9779                 (VkFramebufferAttachmentImageInfo*)(forUnmarshaling->pAttachmentImageInfos + i));
9780         }
9781     }
9782 }
9783 
marshal_VkRenderPassAttachmentBeginInfo(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassAttachmentBeginInfo * forMarshaling)9784 void marshal_VkRenderPassAttachmentBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
9785                                              const VkRenderPassAttachmentBeginInfo* forMarshaling) {
9786     (void)rootType;
9787     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9788     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9789         rootType = forMarshaling->sType;
9790     }
9791     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9792     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
9793     if (forMarshaling->attachmentCount) {
9794         uint64_t* cgen_var_0;
9795         vkStream->alloc((void**)&cgen_var_0, forMarshaling->attachmentCount * 8);
9796         vkStream->handleMapping()->mapHandles_VkImageView_u64(
9797             forMarshaling->pAttachments, cgen_var_0, forMarshaling->attachmentCount);
9798         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->attachmentCount * 8);
9799     }
9800 }
9801 
unmarshal_VkRenderPassAttachmentBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassAttachmentBeginInfo * forUnmarshaling)9802 void unmarshal_VkRenderPassAttachmentBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
9803                                                VkRenderPassAttachmentBeginInfo* forUnmarshaling) {
9804     (void)rootType;
9805     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9806     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9807         rootType = forUnmarshaling->sType;
9808     }
9809     size_t pNext_size;
9810     pNext_size = vkStream->getBe32();
9811     forUnmarshaling->pNext = nullptr;
9812     if (pNext_size) {
9813         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9814         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9815         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9816         vkStream->alloc((void**)&forUnmarshaling->pNext,
9817                         goldfish_vk_extension_struct_size_with_stream_features(
9818                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9819         *(VkStructureType*)forUnmarshaling->pNext = extType;
9820         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9821     }
9822     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
9823     vkStream->alloc((void**)&forUnmarshaling->pAttachments,
9824                     forUnmarshaling->attachmentCount * sizeof(const VkImageView));
9825     if (forUnmarshaling->attachmentCount) {
9826         uint64_t* cgen_var_0;
9827         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->attachmentCount * 8);
9828         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->attachmentCount * 8);
9829         vkStream->handleMapping()->mapHandles_u64_VkImageView(
9830             cgen_var_0, (VkImageView*)forUnmarshaling->pAttachments,
9831             forUnmarshaling->attachmentCount);
9832     }
9833 }
9834 
marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * forMarshaling)9835 void marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
9836     VulkanStream* vkStream, VkStructureType rootType,
9837     const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forMarshaling) {
9838     (void)rootType;
9839     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9840     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9841         rootType = forMarshaling->sType;
9842     }
9843     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9844     vkStream->write((VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
9845 }
9846 
unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceUniformBufferStandardLayoutFeatures * forUnmarshaling)9847 void unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
9848     VulkanStream* vkStream, VkStructureType rootType,
9849     VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forUnmarshaling) {
9850     (void)rootType;
9851     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9852     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9853         rootType = forUnmarshaling->sType;
9854     }
9855     size_t pNext_size;
9856     pNext_size = vkStream->getBe32();
9857     forUnmarshaling->pNext = nullptr;
9858     if (pNext_size) {
9859         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9860         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9861         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9862         vkStream->alloc((void**)&forUnmarshaling->pNext,
9863                         goldfish_vk_extension_struct_size_with_stream_features(
9864                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9865         *(VkStructureType*)forUnmarshaling->pNext = extType;
9866         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9867     }
9868     vkStream->read((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
9869 }
9870 
marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * forMarshaling)9871 void marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
9872     VulkanStream* vkStream, VkStructureType rootType,
9873     const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forMarshaling) {
9874     (void)rootType;
9875     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9876     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9877         rootType = forMarshaling->sType;
9878     }
9879     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9880     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
9881 }
9882 
unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * forUnmarshaling)9883 void unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
9884     VulkanStream* vkStream, VkStructureType rootType,
9885     VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forUnmarshaling) {
9886     (void)rootType;
9887     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9888     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9889         rootType = forUnmarshaling->sType;
9890     }
9891     size_t pNext_size;
9892     pNext_size = vkStream->getBe32();
9893     forUnmarshaling->pNext = nullptr;
9894     if (pNext_size) {
9895         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9896         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9897         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9898         vkStream->alloc((void**)&forUnmarshaling->pNext,
9899                         goldfish_vk_extension_struct_size_with_stream_features(
9900                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9901         *(VkStructureType*)forUnmarshaling->pNext = extType;
9902         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9903     }
9904     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
9905 }
9906 
marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * forMarshaling)9907 void marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
9908     VulkanStream* vkStream, VkStructureType rootType,
9909     const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forMarshaling) {
9910     (void)rootType;
9911     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9912     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9913         rootType = forMarshaling->sType;
9914     }
9915     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9916     vkStream->write((VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
9917 }
9918 
unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * forUnmarshaling)9919 void unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
9920     VulkanStream* vkStream, VkStructureType rootType,
9921     VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forUnmarshaling) {
9922     (void)rootType;
9923     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9924     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9925         rootType = forUnmarshaling->sType;
9926     }
9927     size_t pNext_size;
9928     pNext_size = vkStream->getBe32();
9929     forUnmarshaling->pNext = nullptr;
9930     if (pNext_size) {
9931         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9932         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9933         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9934         vkStream->alloc((void**)&forUnmarshaling->pNext,
9935                         goldfish_vk_extension_struct_size_with_stream_features(
9936                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9937         *(VkStructureType*)forUnmarshaling->pNext = extType;
9938         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9939     }
9940     vkStream->read((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
9941 }
9942 
marshal_VkAttachmentReferenceStencilLayout(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentReferenceStencilLayout * forMarshaling)9943 void marshal_VkAttachmentReferenceStencilLayout(
9944     VulkanStream* vkStream, VkStructureType rootType,
9945     const VkAttachmentReferenceStencilLayout* forMarshaling) {
9946     (void)rootType;
9947     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9948     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9949         rootType = forMarshaling->sType;
9950     }
9951     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9952     vkStream->write((VkImageLayout*)&forMarshaling->stencilLayout, sizeof(VkImageLayout));
9953 }
9954 
unmarshal_VkAttachmentReferenceStencilLayout(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentReferenceStencilLayout * forUnmarshaling)9955 void unmarshal_VkAttachmentReferenceStencilLayout(
9956     VulkanStream* vkStream, VkStructureType rootType,
9957     VkAttachmentReferenceStencilLayout* forUnmarshaling) {
9958     (void)rootType;
9959     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9960     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9961         rootType = forUnmarshaling->sType;
9962     }
9963     size_t pNext_size;
9964     pNext_size = vkStream->getBe32();
9965     forUnmarshaling->pNext = nullptr;
9966     if (pNext_size) {
9967         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9968         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
9969         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9970         vkStream->alloc((void**)&forUnmarshaling->pNext,
9971                         goldfish_vk_extension_struct_size_with_stream_features(
9972                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9973         *(VkStructureType*)forUnmarshaling->pNext = extType;
9974         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9975     }
9976     vkStream->read((VkImageLayout*)&forUnmarshaling->stencilLayout, sizeof(VkImageLayout));
9977 }
9978 
marshal_VkAttachmentDescriptionStencilLayout(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentDescriptionStencilLayout * forMarshaling)9979 void marshal_VkAttachmentDescriptionStencilLayout(
9980     VulkanStream* vkStream, VkStructureType rootType,
9981     const VkAttachmentDescriptionStencilLayout* forMarshaling) {
9982     (void)rootType;
9983     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9984     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9985         rootType = forMarshaling->sType;
9986     }
9987     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9988     vkStream->write((VkImageLayout*)&forMarshaling->stencilInitialLayout, sizeof(VkImageLayout));
9989     vkStream->write((VkImageLayout*)&forMarshaling->stencilFinalLayout, sizeof(VkImageLayout));
9990 }
9991 
unmarshal_VkAttachmentDescriptionStencilLayout(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentDescriptionStencilLayout * forUnmarshaling)9992 void unmarshal_VkAttachmentDescriptionStencilLayout(
9993     VulkanStream* vkStream, VkStructureType rootType,
9994     VkAttachmentDescriptionStencilLayout* forUnmarshaling) {
9995     (void)rootType;
9996     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9997     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9998         rootType = forUnmarshaling->sType;
9999     }
10000     size_t pNext_size;
10001     pNext_size = vkStream->getBe32();
10002     forUnmarshaling->pNext = nullptr;
10003     if (pNext_size) {
10004         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10005         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10006         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10007         vkStream->alloc((void**)&forUnmarshaling->pNext,
10008                         goldfish_vk_extension_struct_size_with_stream_features(
10009                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10010         *(VkStructureType*)forUnmarshaling->pNext = extType;
10011         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10012     }
10013     vkStream->read((VkImageLayout*)&forUnmarshaling->stencilInitialLayout, sizeof(VkImageLayout));
10014     vkStream->read((VkImageLayout*)&forUnmarshaling->stencilFinalLayout, sizeof(VkImageLayout));
10015 }
10016 
marshal_VkPhysicalDeviceHostQueryResetFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostQueryResetFeatures * forMarshaling)10017 void marshal_VkPhysicalDeviceHostQueryResetFeatures(
10018     VulkanStream* vkStream, VkStructureType rootType,
10019     const VkPhysicalDeviceHostQueryResetFeatures* forMarshaling) {
10020     (void)rootType;
10021     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10022     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10023         rootType = forMarshaling->sType;
10024     }
10025     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10026     vkStream->write((VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
10027 }
10028 
unmarshal_VkPhysicalDeviceHostQueryResetFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceHostQueryResetFeatures * forUnmarshaling)10029 void unmarshal_VkPhysicalDeviceHostQueryResetFeatures(
10030     VulkanStream* vkStream, VkStructureType rootType,
10031     VkPhysicalDeviceHostQueryResetFeatures* forUnmarshaling) {
10032     (void)rootType;
10033     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10034     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10035         rootType = forUnmarshaling->sType;
10036     }
10037     size_t pNext_size;
10038     pNext_size = vkStream->getBe32();
10039     forUnmarshaling->pNext = nullptr;
10040     if (pNext_size) {
10041         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10042         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10043         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10044         vkStream->alloc((void**)&forUnmarshaling->pNext,
10045                         goldfish_vk_extension_struct_size_with_stream_features(
10046                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10047         *(VkStructureType*)forUnmarshaling->pNext = extType;
10048         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10049     }
10050     vkStream->read((VkBool32*)&forUnmarshaling->hostQueryReset, sizeof(VkBool32));
10051 }
10052 
marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreFeatures * forMarshaling)10053 void marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
10054     VulkanStream* vkStream, VkStructureType rootType,
10055     const VkPhysicalDeviceTimelineSemaphoreFeatures* forMarshaling) {
10056     (void)rootType;
10057     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10058     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10059         rootType = forMarshaling->sType;
10060     }
10061     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10062     vkStream->write((VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
10063 }
10064 
unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTimelineSemaphoreFeatures * forUnmarshaling)10065 void unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
10066     VulkanStream* vkStream, VkStructureType rootType,
10067     VkPhysicalDeviceTimelineSemaphoreFeatures* forUnmarshaling) {
10068     (void)rootType;
10069     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10070     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10071         rootType = forUnmarshaling->sType;
10072     }
10073     size_t pNext_size;
10074     pNext_size = vkStream->getBe32();
10075     forUnmarshaling->pNext = nullptr;
10076     if (pNext_size) {
10077         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10078         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10079         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10080         vkStream->alloc((void**)&forUnmarshaling->pNext,
10081                         goldfish_vk_extension_struct_size_with_stream_features(
10082                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10083         *(VkStructureType*)forUnmarshaling->pNext = extType;
10084         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10085     }
10086     vkStream->read((VkBool32*)&forUnmarshaling->timelineSemaphore, sizeof(VkBool32));
10087 }
10088 
marshal_VkPhysicalDeviceTimelineSemaphoreProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreProperties * forMarshaling)10089 void marshal_VkPhysicalDeviceTimelineSemaphoreProperties(
10090     VulkanStream* vkStream, VkStructureType rootType,
10091     const VkPhysicalDeviceTimelineSemaphoreProperties* forMarshaling) {
10092     (void)rootType;
10093     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10094     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10095         rootType = forMarshaling->sType;
10096     }
10097     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10098     vkStream->write((uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference,
10099                     sizeof(uint64_t));
10100 }
10101 
unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTimelineSemaphoreProperties * forUnmarshaling)10102 void unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
10103     VulkanStream* vkStream, VkStructureType rootType,
10104     VkPhysicalDeviceTimelineSemaphoreProperties* forUnmarshaling) {
10105     (void)rootType;
10106     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10107     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10108         rootType = forUnmarshaling->sType;
10109     }
10110     size_t pNext_size;
10111     pNext_size = vkStream->getBe32();
10112     forUnmarshaling->pNext = nullptr;
10113     if (pNext_size) {
10114         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10115         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10116         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10117         vkStream->alloc((void**)&forUnmarshaling->pNext,
10118                         goldfish_vk_extension_struct_size_with_stream_features(
10119                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10120         *(VkStructureType*)forUnmarshaling->pNext = extType;
10121         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10122     }
10123     vkStream->read((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference,
10124                    sizeof(uint64_t));
10125 }
10126 
marshal_VkSemaphoreTypeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreTypeCreateInfo * forMarshaling)10127 void marshal_VkSemaphoreTypeCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
10128                                        const VkSemaphoreTypeCreateInfo* forMarshaling) {
10129     (void)rootType;
10130     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10131     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10132         rootType = forMarshaling->sType;
10133     }
10134     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10135     vkStream->write((VkSemaphoreType*)&forMarshaling->semaphoreType, sizeof(VkSemaphoreType));
10136     vkStream->write((uint64_t*)&forMarshaling->initialValue, sizeof(uint64_t));
10137 }
10138 
unmarshal_VkSemaphoreTypeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreTypeCreateInfo * forUnmarshaling)10139 void unmarshal_VkSemaphoreTypeCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
10140                                          VkSemaphoreTypeCreateInfo* forUnmarshaling) {
10141     (void)rootType;
10142     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10143     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10144         rootType = forUnmarshaling->sType;
10145     }
10146     size_t pNext_size;
10147     pNext_size = vkStream->getBe32();
10148     forUnmarshaling->pNext = nullptr;
10149     if (pNext_size) {
10150         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10151         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10152         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10153         vkStream->alloc((void**)&forUnmarshaling->pNext,
10154                         goldfish_vk_extension_struct_size_with_stream_features(
10155                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10156         *(VkStructureType*)forUnmarshaling->pNext = extType;
10157         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10158     }
10159     vkStream->read((VkSemaphoreType*)&forUnmarshaling->semaphoreType, sizeof(VkSemaphoreType));
10160     vkStream->read((uint64_t*)&forUnmarshaling->initialValue, sizeof(uint64_t));
10161 }
10162 
marshal_VkTimelineSemaphoreSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,const VkTimelineSemaphoreSubmitInfo * forMarshaling)10163 void marshal_VkTimelineSemaphoreSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
10164                                            const VkTimelineSemaphoreSubmitInfo* forMarshaling) {
10165     (void)rootType;
10166     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10167     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10168         rootType = forMarshaling->sType;
10169     }
10170     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10171     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
10172     // WARNING PTR CHECK
10173     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
10174     vkStream->putBe64(cgen_var_0);
10175     if (forMarshaling->pWaitSemaphoreValues) {
10176         vkStream->write((const uint64_t*)forMarshaling->pWaitSemaphoreValues,
10177                         forMarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
10178     }
10179     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
10180     // WARNING PTR CHECK
10181     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
10182     vkStream->putBe64(cgen_var_1);
10183     if (forMarshaling->pSignalSemaphoreValues) {
10184         vkStream->write((const uint64_t*)forMarshaling->pSignalSemaphoreValues,
10185                         forMarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
10186     }
10187 }
10188 
unmarshal_VkTimelineSemaphoreSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkTimelineSemaphoreSubmitInfo * forUnmarshaling)10189 void unmarshal_VkTimelineSemaphoreSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
10190                                              VkTimelineSemaphoreSubmitInfo* forUnmarshaling) {
10191     (void)rootType;
10192     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10193     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10194         rootType = forUnmarshaling->sType;
10195     }
10196     size_t pNext_size;
10197     pNext_size = vkStream->getBe32();
10198     forUnmarshaling->pNext = nullptr;
10199     if (pNext_size) {
10200         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10201         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10202         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10203         vkStream->alloc((void**)&forUnmarshaling->pNext,
10204                         goldfish_vk_extension_struct_size_with_stream_features(
10205                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10206         *(VkStructureType*)forUnmarshaling->pNext = extType;
10207         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10208     }
10209     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
10210     // WARNING PTR CHECK
10211     forUnmarshaling->pWaitSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
10212     if (forUnmarshaling->pWaitSemaphoreValues) {
10213         vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphoreValues,
10214                         forUnmarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
10215         vkStream->read((uint64_t*)forUnmarshaling->pWaitSemaphoreValues,
10216                        forUnmarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
10217     }
10218     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
10219     // WARNING PTR CHECK
10220     forUnmarshaling->pSignalSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
10221     if (forUnmarshaling->pSignalSemaphoreValues) {
10222         vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphoreValues,
10223                         forUnmarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
10224         vkStream->read((uint64_t*)forUnmarshaling->pSignalSemaphoreValues,
10225                        forUnmarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
10226     }
10227 }
10228 
marshal_VkSemaphoreWaitInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreWaitInfo * forMarshaling)10229 void marshal_VkSemaphoreWaitInfo(VulkanStream* vkStream, VkStructureType rootType,
10230                                  const VkSemaphoreWaitInfo* forMarshaling) {
10231     (void)rootType;
10232     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10233     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10234         rootType = forMarshaling->sType;
10235     }
10236     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10237     vkStream->write((VkSemaphoreWaitFlags*)&forMarshaling->flags, sizeof(VkSemaphoreWaitFlags));
10238     vkStream->write((uint32_t*)&forMarshaling->semaphoreCount, sizeof(uint32_t));
10239     if (forMarshaling->semaphoreCount) {
10240         uint64_t* cgen_var_0;
10241         vkStream->alloc((void**)&cgen_var_0, forMarshaling->semaphoreCount * 8);
10242         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
10243             forMarshaling->pSemaphores, cgen_var_0, forMarshaling->semaphoreCount);
10244         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->semaphoreCount * 8);
10245     }
10246     vkStream->write((const uint64_t*)forMarshaling->pValues,
10247                     forMarshaling->semaphoreCount * sizeof(const uint64_t));
10248 }
10249 
unmarshal_VkSemaphoreWaitInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreWaitInfo * forUnmarshaling)10250 void unmarshal_VkSemaphoreWaitInfo(VulkanStream* vkStream, VkStructureType rootType,
10251                                    VkSemaphoreWaitInfo* forUnmarshaling) {
10252     (void)rootType;
10253     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10254     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10255         rootType = forUnmarshaling->sType;
10256     }
10257     size_t pNext_size;
10258     pNext_size = vkStream->getBe32();
10259     forUnmarshaling->pNext = nullptr;
10260     if (pNext_size) {
10261         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10262         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10263         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10264         vkStream->alloc((void**)&forUnmarshaling->pNext,
10265                         goldfish_vk_extension_struct_size_with_stream_features(
10266                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10267         *(VkStructureType*)forUnmarshaling->pNext = extType;
10268         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10269     }
10270     vkStream->read((VkSemaphoreWaitFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreWaitFlags));
10271     vkStream->read((uint32_t*)&forUnmarshaling->semaphoreCount, sizeof(uint32_t));
10272     vkStream->alloc((void**)&forUnmarshaling->pSemaphores,
10273                     forUnmarshaling->semaphoreCount * sizeof(const VkSemaphore));
10274     if (forUnmarshaling->semaphoreCount) {
10275         uint64_t* cgen_var_0;
10276         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->semaphoreCount * 8);
10277         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->semaphoreCount * 8);
10278         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
10279             cgen_var_0, (VkSemaphore*)forUnmarshaling->pSemaphores,
10280             forUnmarshaling->semaphoreCount);
10281     }
10282     vkStream->alloc((void**)&forUnmarshaling->pValues,
10283                     forUnmarshaling->semaphoreCount * sizeof(const uint64_t));
10284     vkStream->read((uint64_t*)forUnmarshaling->pValues,
10285                    forUnmarshaling->semaphoreCount * sizeof(const uint64_t));
10286 }
10287 
marshal_VkSemaphoreSignalInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreSignalInfo * forMarshaling)10288 void marshal_VkSemaphoreSignalInfo(VulkanStream* vkStream, VkStructureType rootType,
10289                                    const VkSemaphoreSignalInfo* forMarshaling) {
10290     (void)rootType;
10291     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10292     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10293         rootType = forMarshaling->sType;
10294     }
10295     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10296     uint64_t cgen_var_0;
10297     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
10298                                                           1);
10299     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
10300     vkStream->write((uint64_t*)&forMarshaling->value, sizeof(uint64_t));
10301 }
10302 
unmarshal_VkSemaphoreSignalInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreSignalInfo * forUnmarshaling)10303 void unmarshal_VkSemaphoreSignalInfo(VulkanStream* vkStream, VkStructureType rootType,
10304                                      VkSemaphoreSignalInfo* forUnmarshaling) {
10305     (void)rootType;
10306     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10307     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10308         rootType = forUnmarshaling->sType;
10309     }
10310     size_t pNext_size;
10311     pNext_size = vkStream->getBe32();
10312     forUnmarshaling->pNext = nullptr;
10313     if (pNext_size) {
10314         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10315         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10316         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10317         vkStream->alloc((void**)&forUnmarshaling->pNext,
10318                         goldfish_vk_extension_struct_size_with_stream_features(
10319                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10320         *(VkStructureType*)forUnmarshaling->pNext = extType;
10321         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10322     }
10323     uint64_t cgen_var_0;
10324     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
10325     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
10326         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
10327     vkStream->read((uint64_t*)&forUnmarshaling->value, sizeof(uint64_t));
10328 }
10329 
marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceBufferDeviceAddressFeatures * forMarshaling)10330 void marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
10331     VulkanStream* vkStream, VkStructureType rootType,
10332     const VkPhysicalDeviceBufferDeviceAddressFeatures* forMarshaling) {
10333     (void)rootType;
10334     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10335     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10336         rootType = forMarshaling->sType;
10337     }
10338     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10339     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
10340     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
10341     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
10342 }
10343 
unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceBufferDeviceAddressFeatures * forUnmarshaling)10344 void unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
10345     VulkanStream* vkStream, VkStructureType rootType,
10346     VkPhysicalDeviceBufferDeviceAddressFeatures* forUnmarshaling) {
10347     (void)rootType;
10348     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10349     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10350         rootType = forUnmarshaling->sType;
10351     }
10352     size_t pNext_size;
10353     pNext_size = vkStream->getBe32();
10354     forUnmarshaling->pNext = nullptr;
10355     if (pNext_size) {
10356         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10357         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10358         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10359         vkStream->alloc((void**)&forUnmarshaling->pNext,
10360                         goldfish_vk_extension_struct_size_with_stream_features(
10361                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10362         *(VkStructureType*)forUnmarshaling->pNext = extType;
10363         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10364     }
10365     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
10366     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
10367     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
10368 }
10369 
marshal_VkBufferDeviceAddressInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBufferDeviceAddressInfo * forMarshaling)10370 void marshal_VkBufferDeviceAddressInfo(VulkanStream* vkStream, VkStructureType rootType,
10371                                        const VkBufferDeviceAddressInfo* forMarshaling) {
10372     (void)rootType;
10373     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10374     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10375         rootType = forMarshaling->sType;
10376     }
10377     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10378     uint64_t cgen_var_0;
10379     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
10380     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
10381 }
10382 
unmarshal_VkBufferDeviceAddressInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferDeviceAddressInfo * forUnmarshaling)10383 void unmarshal_VkBufferDeviceAddressInfo(VulkanStream* vkStream, VkStructureType rootType,
10384                                          VkBufferDeviceAddressInfo* forUnmarshaling) {
10385     (void)rootType;
10386     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10387     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10388         rootType = forUnmarshaling->sType;
10389     }
10390     size_t pNext_size;
10391     pNext_size = vkStream->getBe32();
10392     forUnmarshaling->pNext = nullptr;
10393     if (pNext_size) {
10394         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10395         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10396         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10397         vkStream->alloc((void**)&forUnmarshaling->pNext,
10398                         goldfish_vk_extension_struct_size_with_stream_features(
10399                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10400         *(VkStructureType*)forUnmarshaling->pNext = extType;
10401         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10402     }
10403     uint64_t cgen_var_0;
10404     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
10405     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
10406                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
10407 }
10408 
marshal_VkBufferOpaqueCaptureAddressCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkBufferOpaqueCaptureAddressCreateInfo * forMarshaling)10409 void marshal_VkBufferOpaqueCaptureAddressCreateInfo(
10410     VulkanStream* vkStream, VkStructureType rootType,
10411     const VkBufferOpaqueCaptureAddressCreateInfo* forMarshaling) {
10412     (void)rootType;
10413     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10414     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10415         rootType = forMarshaling->sType;
10416     }
10417     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10418     vkStream->write((uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
10419 }
10420 
unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferOpaqueCaptureAddressCreateInfo * forUnmarshaling)10421 void unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
10422     VulkanStream* vkStream, VkStructureType rootType,
10423     VkBufferOpaqueCaptureAddressCreateInfo* forUnmarshaling) {
10424     (void)rootType;
10425     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10426     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10427         rootType = forUnmarshaling->sType;
10428     }
10429     size_t pNext_size;
10430     pNext_size = vkStream->getBe32();
10431     forUnmarshaling->pNext = nullptr;
10432     if (pNext_size) {
10433         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10434         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10435         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10436         vkStream->alloc((void**)&forUnmarshaling->pNext,
10437                         goldfish_vk_extension_struct_size_with_stream_features(
10438                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10439         *(VkStructureType*)forUnmarshaling->pNext = extType;
10440         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10441     }
10442     vkStream->read((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, sizeof(uint64_t));
10443 }
10444 
marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryOpaqueCaptureAddressAllocateInfo * forMarshaling)10445 void marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
10446     VulkanStream* vkStream, VkStructureType rootType,
10447     const VkMemoryOpaqueCaptureAddressAllocateInfo* forMarshaling) {
10448     (void)rootType;
10449     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10450     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10451         rootType = forMarshaling->sType;
10452     }
10453     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10454     vkStream->write((uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
10455 }
10456 
unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryOpaqueCaptureAddressAllocateInfo * forUnmarshaling)10457 void unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
10458     VulkanStream* vkStream, VkStructureType rootType,
10459     VkMemoryOpaqueCaptureAddressAllocateInfo* forUnmarshaling) {
10460     (void)rootType;
10461     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10462     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10463         rootType = forUnmarshaling->sType;
10464     }
10465     size_t pNext_size;
10466     pNext_size = vkStream->getBe32();
10467     forUnmarshaling->pNext = nullptr;
10468     if (pNext_size) {
10469         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10470         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10471         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10472         vkStream->alloc((void**)&forUnmarshaling->pNext,
10473                         goldfish_vk_extension_struct_size_with_stream_features(
10474                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10475         *(VkStructureType*)forUnmarshaling->pNext = extType;
10476         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10477     }
10478     vkStream->read((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, sizeof(uint64_t));
10479 }
10480 
marshal_VkDeviceMemoryOpaqueCaptureAddressInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceMemoryOpaqueCaptureAddressInfo * forMarshaling)10481 void marshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
10482     VulkanStream* vkStream, VkStructureType rootType,
10483     const VkDeviceMemoryOpaqueCaptureAddressInfo* forMarshaling) {
10484     (void)rootType;
10485     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10486     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10487         rootType = forMarshaling->sType;
10488     }
10489     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10490     uint64_t cgen_var_0;
10491     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
10492                                                              1);
10493     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
10494 }
10495 
unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceMemoryOpaqueCaptureAddressInfo * forUnmarshaling)10496 void unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
10497     VulkanStream* vkStream, VkStructureType rootType,
10498     VkDeviceMemoryOpaqueCaptureAddressInfo* forUnmarshaling) {
10499     (void)rootType;
10500     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10501     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10502         rootType = forUnmarshaling->sType;
10503     }
10504     size_t pNext_size;
10505     pNext_size = vkStream->getBe32();
10506     forUnmarshaling->pNext = nullptr;
10507     if (pNext_size) {
10508         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10509         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10510         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10511         vkStream->alloc((void**)&forUnmarshaling->pNext,
10512                         goldfish_vk_extension_struct_size_with_stream_features(
10513                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10514         *(VkStructureType*)forUnmarshaling->pNext = extType;
10515         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10516     }
10517     uint64_t cgen_var_0;
10518     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
10519     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
10520         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
10521 }
10522 
10523 #endif
10524 #ifdef VK_VERSION_1_3
marshal_VkPhysicalDeviceVulkan13Features(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan13Features * forMarshaling)10525 void marshal_VkPhysicalDeviceVulkan13Features(
10526     VulkanStream* vkStream, VkStructureType rootType,
10527     const VkPhysicalDeviceVulkan13Features* forMarshaling) {
10528     (void)rootType;
10529     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10531         rootType = forMarshaling->sType;
10532     }
10533     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10534     vkStream->write((VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
10535     vkStream->write((VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
10536     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
10537                     sizeof(VkBool32));
10538     vkStream->write((VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
10539     vkStream->write((VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
10540     vkStream->write((VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
10541     vkStream->write((VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
10542     vkStream->write((VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
10543     vkStream->write((VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
10544     vkStream->write((VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
10545     vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
10546     vkStream->write((VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory,
10547                     sizeof(VkBool32));
10548     vkStream->write((VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
10549     vkStream->write((VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
10550     vkStream->write((VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
10551 }
10552 
unmarshal_VkPhysicalDeviceVulkan13Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan13Features * forUnmarshaling)10553 void unmarshal_VkPhysicalDeviceVulkan13Features(VulkanStream* vkStream, VkStructureType rootType,
10554                                                 VkPhysicalDeviceVulkan13Features* forUnmarshaling) {
10555     (void)rootType;
10556     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10557     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10558         rootType = forUnmarshaling->sType;
10559     }
10560     size_t pNext_size;
10561     pNext_size = vkStream->getBe32();
10562     forUnmarshaling->pNext = nullptr;
10563     if (pNext_size) {
10564         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10565         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10566         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10567         vkStream->alloc((void**)&forUnmarshaling->pNext,
10568                         goldfish_vk_extension_struct_size_with_stream_features(
10569                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10570         *(VkStructureType*)forUnmarshaling->pNext = extType;
10571         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10572     }
10573     vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess, sizeof(VkBool32));
10574     vkStream->read((VkBool32*)&forUnmarshaling->inlineUniformBlock, sizeof(VkBool32));
10575     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
10576                    sizeof(VkBool32));
10577     vkStream->read((VkBool32*)&forUnmarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
10578     vkStream->read((VkBool32*)&forUnmarshaling->privateData, sizeof(VkBool32));
10579     vkStream->read((VkBool32*)&forUnmarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
10580     vkStream->read((VkBool32*)&forUnmarshaling->shaderTerminateInvocation, sizeof(VkBool32));
10581     vkStream->read((VkBool32*)&forUnmarshaling->subgroupSizeControl, sizeof(VkBool32));
10582     vkStream->read((VkBool32*)&forUnmarshaling->computeFullSubgroups, sizeof(VkBool32));
10583     vkStream->read((VkBool32*)&forUnmarshaling->synchronization2, sizeof(VkBool32));
10584     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
10585     vkStream->read((VkBool32*)&forUnmarshaling->shaderZeroInitializeWorkgroupMemory,
10586                    sizeof(VkBool32));
10587     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRendering, sizeof(VkBool32));
10588     vkStream->read((VkBool32*)&forUnmarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
10589     vkStream->read((VkBool32*)&forUnmarshaling->maintenance4, sizeof(VkBool32));
10590 }
10591 
marshal_VkPhysicalDeviceVulkan13Properties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan13Properties * forMarshaling)10592 void marshal_VkPhysicalDeviceVulkan13Properties(
10593     VulkanStream* vkStream, VkStructureType rootType,
10594     const VkPhysicalDeviceVulkan13Properties* forMarshaling) {
10595     (void)rootType;
10596     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10597     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10598         rootType = forMarshaling->sType;
10599     }
10600     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10601     vkStream->write((uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
10602     vkStream->write((uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
10603     vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
10604     vkStream->write((VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages,
10605                     sizeof(VkShaderStageFlags));
10606     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
10607     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks,
10608                     sizeof(uint32_t));
10609     vkStream->write(
10610         (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
10611         sizeof(uint32_t));
10612     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks,
10613                     sizeof(uint32_t));
10614     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
10615                     sizeof(uint32_t));
10616     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformTotalSize, sizeof(uint32_t));
10617     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated,
10618                     sizeof(VkBool32));
10619     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated,
10620                     sizeof(VkBool32));
10621     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated,
10622                     sizeof(VkBool32));
10623     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
10624                     sizeof(VkBool32));
10625     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
10626                     sizeof(VkBool32));
10627     vkStream->write(
10628         (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
10629         sizeof(VkBool32));
10630     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated,
10631                     sizeof(VkBool32));
10632     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated,
10633                     sizeof(VkBool32));
10634     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated,
10635                     sizeof(VkBool32));
10636     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated,
10637                     sizeof(VkBool32));
10638     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated,
10639                     sizeof(VkBool32));
10640     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated,
10641                     sizeof(VkBool32));
10642     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated,
10643                     sizeof(VkBool32));
10644     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated,
10645                     sizeof(VkBool32));
10646     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated,
10647                     sizeof(VkBool32));
10648     vkStream->write(
10649         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
10650         sizeof(VkBool32));
10651     vkStream->write(
10652         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
10653         sizeof(VkBool32));
10654     vkStream->write((VkBool32*)&forMarshaling
10655                         ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
10656                     sizeof(VkBool32));
10657     vkStream->write((VkBool32*)&forMarshaling
10658                         ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
10659                     sizeof(VkBool32));
10660     vkStream->write((VkBool32*)&forMarshaling
10661                         ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
10662                     sizeof(VkBool32));
10663     vkStream->write(
10664         (VkBool32*)&forMarshaling
10665             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
10666         sizeof(VkBool32));
10667     vkStream->write(
10668         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
10669         sizeof(VkBool32));
10670     vkStream->write(
10671         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
10672         sizeof(VkBool32));
10673     vkStream->write((VkBool32*)&forMarshaling
10674                         ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
10675                     sizeof(VkBool32));
10676     vkStream->write(
10677         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
10678         sizeof(VkBool32));
10679     vkStream->write(
10680         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
10681         sizeof(VkBool32));
10682     vkStream->write((VkBool32*)&forMarshaling
10683                         ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
10684                     sizeof(VkBool32));
10685     vkStream->write(
10686         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
10687         sizeof(VkBool32));
10688     vkStream->write(
10689         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
10690         sizeof(VkBool32));
10691     vkStream->write((VkBool32*)&forMarshaling
10692                         ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
10693                     sizeof(VkBool32));
10694     vkStream->write((VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes,
10695                     sizeof(VkDeviceSize));
10696     vkStream->write((VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment,
10697                     sizeof(VkBool32));
10698     vkStream->write((VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes,
10699                     sizeof(VkDeviceSize));
10700     vkStream->write((VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
10701                     sizeof(VkBool32));
10702     vkStream->write((VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
10703 }
10704 
unmarshal_VkPhysicalDeviceVulkan13Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan13Properties * forUnmarshaling)10705 void unmarshal_VkPhysicalDeviceVulkan13Properties(
10706     VulkanStream* vkStream, VkStructureType rootType,
10707     VkPhysicalDeviceVulkan13Properties* forUnmarshaling) {
10708     (void)rootType;
10709     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10710     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10711         rootType = forUnmarshaling->sType;
10712     }
10713     size_t pNext_size;
10714     pNext_size = vkStream->getBe32();
10715     forUnmarshaling->pNext = nullptr;
10716     if (pNext_size) {
10717         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10718         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10719         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10720         vkStream->alloc((void**)&forUnmarshaling->pNext,
10721                         goldfish_vk_extension_struct_size_with_stream_features(
10722                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10723         *(VkStructureType*)forUnmarshaling->pNext = extType;
10724         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10725     }
10726     vkStream->read((uint32_t*)&forUnmarshaling->minSubgroupSize, sizeof(uint32_t));
10727     vkStream->read((uint32_t*)&forUnmarshaling->maxSubgroupSize, sizeof(uint32_t));
10728     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
10729     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->requiredSubgroupSizeStages,
10730                    sizeof(VkShaderStageFlags));
10731     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
10732     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInlineUniformBlocks,
10733                    sizeof(uint32_t));
10734     vkStream->read(
10735         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
10736         sizeof(uint32_t));
10737     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInlineUniformBlocks,
10738                    sizeof(uint32_t));
10739     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
10740                    sizeof(uint32_t));
10741     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformTotalSize, sizeof(uint32_t));
10742     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitUnsignedAccelerated,
10743                    sizeof(VkBool32));
10744     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitSignedAccelerated,
10745                    sizeof(VkBool32));
10746     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitMixedSignednessAccelerated,
10747                    sizeof(VkBool32));
10748     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
10749                    sizeof(VkBool32));
10750     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
10751                    sizeof(VkBool32));
10752     vkStream->read(
10753         (VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
10754         sizeof(VkBool32));
10755     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitUnsignedAccelerated,
10756                    sizeof(VkBool32));
10757     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitSignedAccelerated,
10758                    sizeof(VkBool32));
10759     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitMixedSignednessAccelerated,
10760                    sizeof(VkBool32));
10761     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitUnsignedAccelerated,
10762                    sizeof(VkBool32));
10763     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitSignedAccelerated,
10764                    sizeof(VkBool32));
10765     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitMixedSignednessAccelerated,
10766                    sizeof(VkBool32));
10767     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitUnsignedAccelerated,
10768                    sizeof(VkBool32));
10769     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitSignedAccelerated,
10770                    sizeof(VkBool32));
10771     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitMixedSignednessAccelerated,
10772                    sizeof(VkBool32));
10773     vkStream->read(
10774         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
10775         sizeof(VkBool32));
10776     vkStream->read(
10777         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
10778         sizeof(VkBool32));
10779     vkStream->read((VkBool32*)&forUnmarshaling
10780                        ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
10781                    sizeof(VkBool32));
10782     vkStream->read((VkBool32*)&forUnmarshaling
10783                        ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
10784                    sizeof(VkBool32));
10785     vkStream->read((VkBool32*)&forUnmarshaling
10786                        ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
10787                    sizeof(VkBool32));
10788     vkStream->read(
10789         (VkBool32*)&forUnmarshaling
10790             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
10791         sizeof(VkBool32));
10792     vkStream->read((VkBool32*)&forUnmarshaling
10793                        ->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
10794                    sizeof(VkBool32));
10795     vkStream->read(
10796         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
10797         sizeof(VkBool32));
10798     vkStream->read((VkBool32*)&forUnmarshaling
10799                        ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
10800                    sizeof(VkBool32));
10801     vkStream->read((VkBool32*)&forUnmarshaling
10802                        ->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
10803                    sizeof(VkBool32));
10804     vkStream->read(
10805         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
10806         sizeof(VkBool32));
10807     vkStream->read((VkBool32*)&forUnmarshaling
10808                        ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
10809                    sizeof(VkBool32));
10810     vkStream->read((VkBool32*)&forUnmarshaling
10811                        ->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
10812                    sizeof(VkBool32));
10813     vkStream->read(
10814         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
10815         sizeof(VkBool32));
10816     vkStream->read((VkBool32*)&forUnmarshaling
10817                        ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
10818                    sizeof(VkBool32));
10819     vkStream->read((VkDeviceSize*)&forUnmarshaling->storageTexelBufferOffsetAlignmentBytes,
10820                    sizeof(VkDeviceSize));
10821     vkStream->read((VkBool32*)&forUnmarshaling->storageTexelBufferOffsetSingleTexelAlignment,
10822                    sizeof(VkBool32));
10823     vkStream->read((VkDeviceSize*)&forUnmarshaling->uniformTexelBufferOffsetAlignmentBytes,
10824                    sizeof(VkDeviceSize));
10825     vkStream->read((VkBool32*)&forUnmarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
10826                    sizeof(VkBool32));
10827     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxBufferSize, sizeof(VkDeviceSize));
10828 }
10829 
marshal_VkPipelineCreationFeedback(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCreationFeedback * forMarshaling)10830 void marshal_VkPipelineCreationFeedback(VulkanStream* vkStream, VkStructureType rootType,
10831                                         const VkPipelineCreationFeedback* forMarshaling) {
10832     (void)rootType;
10833     vkStream->write((VkPipelineCreationFeedbackFlags*)&forMarshaling->flags,
10834                     sizeof(VkPipelineCreationFeedbackFlags));
10835     vkStream->write((uint64_t*)&forMarshaling->duration, sizeof(uint64_t));
10836 }
10837 
unmarshal_VkPipelineCreationFeedback(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCreationFeedback * forUnmarshaling)10838 void unmarshal_VkPipelineCreationFeedback(VulkanStream* vkStream, VkStructureType rootType,
10839                                           VkPipelineCreationFeedback* forUnmarshaling) {
10840     (void)rootType;
10841     vkStream->read((VkPipelineCreationFeedbackFlags*)&forUnmarshaling->flags,
10842                    sizeof(VkPipelineCreationFeedbackFlags));
10843     vkStream->read((uint64_t*)&forUnmarshaling->duration, sizeof(uint64_t));
10844 }
10845 
marshal_VkPipelineCreationFeedbackCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCreationFeedbackCreateInfo * forMarshaling)10846 void marshal_VkPipelineCreationFeedbackCreateInfo(
10847     VulkanStream* vkStream, VkStructureType rootType,
10848     const VkPipelineCreationFeedbackCreateInfo* forMarshaling) {
10849     (void)rootType;
10850     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10851     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10852         rootType = forMarshaling->sType;
10853     }
10854     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10855     marshal_VkPipelineCreationFeedback(
10856         vkStream, rootType,
10857         (VkPipelineCreationFeedback*)(forMarshaling->pPipelineCreationFeedback));
10858     vkStream->write((uint32_t*)&forMarshaling->pipelineStageCreationFeedbackCount,
10859                     sizeof(uint32_t));
10860     if (forMarshaling) {
10861         for (uint32_t i = 0; i < (uint32_t)forMarshaling->pipelineStageCreationFeedbackCount; ++i) {
10862             marshal_VkPipelineCreationFeedback(
10863                 vkStream, rootType,
10864                 (VkPipelineCreationFeedback*)(forMarshaling->pPipelineStageCreationFeedbacks + i));
10865         }
10866     }
10867 }
10868 
unmarshal_VkPipelineCreationFeedbackCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCreationFeedbackCreateInfo * forUnmarshaling)10869 void unmarshal_VkPipelineCreationFeedbackCreateInfo(
10870     VulkanStream* vkStream, VkStructureType rootType,
10871     VkPipelineCreationFeedbackCreateInfo* forUnmarshaling) {
10872     (void)rootType;
10873     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10874     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10875         rootType = forUnmarshaling->sType;
10876     }
10877     size_t pNext_size;
10878     pNext_size = vkStream->getBe32();
10879     forUnmarshaling->pNext = nullptr;
10880     if (pNext_size) {
10881         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10882         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10883         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10884         vkStream->alloc((void**)&forUnmarshaling->pNext,
10885                         goldfish_vk_extension_struct_size_with_stream_features(
10886                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10887         *(VkStructureType*)forUnmarshaling->pNext = extType;
10888         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10889     }
10890     vkStream->alloc((void**)&forUnmarshaling->pPipelineCreationFeedback,
10891                     sizeof(VkPipelineCreationFeedback));
10892     unmarshal_VkPipelineCreationFeedback(
10893         vkStream, rootType,
10894         (VkPipelineCreationFeedback*)(forUnmarshaling->pPipelineCreationFeedback));
10895     vkStream->read((uint32_t*)&forUnmarshaling->pipelineStageCreationFeedbackCount,
10896                    sizeof(uint32_t));
10897     vkStream->alloc(
10898         (void**)&forUnmarshaling->pPipelineStageCreationFeedbacks,
10899         forUnmarshaling->pipelineStageCreationFeedbackCount * sizeof(VkPipelineCreationFeedback));
10900     if (forUnmarshaling) {
10901         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pipelineStageCreationFeedbackCount;
10902              ++i) {
10903             unmarshal_VkPipelineCreationFeedback(
10904                 vkStream, rootType,
10905                 (VkPipelineCreationFeedback*)(forUnmarshaling->pPipelineStageCreationFeedbacks +
10906                                               i));
10907         }
10908     }
10909 }
10910 
marshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderTerminateInvocationFeatures * forMarshaling)10911 void marshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
10912     VulkanStream* vkStream, VkStructureType rootType,
10913     const VkPhysicalDeviceShaderTerminateInvocationFeatures* forMarshaling) {
10914     (void)rootType;
10915     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10916     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10917         rootType = forMarshaling->sType;
10918     }
10919     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10920     vkStream->write((VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
10921 }
10922 
unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderTerminateInvocationFeatures * forUnmarshaling)10923 void unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
10924     VulkanStream* vkStream, VkStructureType rootType,
10925     VkPhysicalDeviceShaderTerminateInvocationFeatures* forUnmarshaling) {
10926     (void)rootType;
10927     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10928     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10929         rootType = forUnmarshaling->sType;
10930     }
10931     size_t pNext_size;
10932     pNext_size = vkStream->getBe32();
10933     forUnmarshaling->pNext = nullptr;
10934     if (pNext_size) {
10935         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10936         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10937         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10938         vkStream->alloc((void**)&forUnmarshaling->pNext,
10939                         goldfish_vk_extension_struct_size_with_stream_features(
10940                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10941         *(VkStructureType*)forUnmarshaling->pNext = extType;
10942         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10943     }
10944     vkStream->read((VkBool32*)&forUnmarshaling->shaderTerminateInvocation, sizeof(VkBool32));
10945 }
10946 
marshal_VkPhysicalDeviceToolProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceToolProperties * forMarshaling)10947 void marshal_VkPhysicalDeviceToolProperties(VulkanStream* vkStream, VkStructureType rootType,
10948                                             const VkPhysicalDeviceToolProperties* forMarshaling) {
10949     (void)rootType;
10950     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10951     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10952         rootType = forMarshaling->sType;
10953     }
10954     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10955     vkStream->write((char*)forMarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
10956     vkStream->write((char*)forMarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
10957     vkStream->write((VkToolPurposeFlags*)&forMarshaling->purposes, sizeof(VkToolPurposeFlags));
10958     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
10959     vkStream->write((char*)forMarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
10960 }
10961 
unmarshal_VkPhysicalDeviceToolProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceToolProperties * forUnmarshaling)10962 void unmarshal_VkPhysicalDeviceToolProperties(VulkanStream* vkStream, VkStructureType rootType,
10963                                               VkPhysicalDeviceToolProperties* forUnmarshaling) {
10964     (void)rootType;
10965     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10966     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10967         rootType = forUnmarshaling->sType;
10968     }
10969     size_t pNext_size;
10970     pNext_size = vkStream->getBe32();
10971     forUnmarshaling->pNext = nullptr;
10972     if (pNext_size) {
10973         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10974         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
10975         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10976         vkStream->alloc((void**)&forUnmarshaling->pNext,
10977                         goldfish_vk_extension_struct_size_with_stream_features(
10978                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10979         *(VkStructureType*)forUnmarshaling->pNext = extType;
10980         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10981     }
10982     vkStream->read((char*)forUnmarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
10983     vkStream->read((char*)forUnmarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
10984     vkStream->read((VkToolPurposeFlags*)&forUnmarshaling->purposes, sizeof(VkToolPurposeFlags));
10985     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
10986     vkStream->read((char*)forUnmarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
10987 }
10988 
marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * forMarshaling)10989 void marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
10990     VulkanStream* vkStream, VkStructureType rootType,
10991     const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* forMarshaling) {
10992     (void)rootType;
10993     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10994     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10995         rootType = forMarshaling->sType;
10996     }
10997     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10998     vkStream->write((VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
10999 }
11000 
unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * forUnmarshaling)11001 void unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
11002     VulkanStream* vkStream, VkStructureType rootType,
11003     VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* forUnmarshaling) {
11004     (void)rootType;
11005     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11006     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11007         rootType = forUnmarshaling->sType;
11008     }
11009     size_t pNext_size;
11010     pNext_size = vkStream->getBe32();
11011     forUnmarshaling->pNext = nullptr;
11012     if (pNext_size) {
11013         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11014         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11015         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11016         vkStream->alloc((void**)&forUnmarshaling->pNext,
11017                         goldfish_vk_extension_struct_size_with_stream_features(
11018                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11019         *(VkStructureType*)forUnmarshaling->pNext = extType;
11020         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11021     }
11022     vkStream->read((VkBool32*)&forUnmarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
11023 }
11024 
marshal_VkPhysicalDevicePrivateDataFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePrivateDataFeatures * forMarshaling)11025 void marshal_VkPhysicalDevicePrivateDataFeatures(
11026     VulkanStream* vkStream, VkStructureType rootType,
11027     const VkPhysicalDevicePrivateDataFeatures* forMarshaling) {
11028     (void)rootType;
11029     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11030     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11031         rootType = forMarshaling->sType;
11032     }
11033     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11034     vkStream->write((VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
11035 }
11036 
unmarshal_VkPhysicalDevicePrivateDataFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePrivateDataFeatures * forUnmarshaling)11037 void unmarshal_VkPhysicalDevicePrivateDataFeatures(
11038     VulkanStream* vkStream, VkStructureType rootType,
11039     VkPhysicalDevicePrivateDataFeatures* forUnmarshaling) {
11040     (void)rootType;
11041     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11042     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11043         rootType = forUnmarshaling->sType;
11044     }
11045     size_t pNext_size;
11046     pNext_size = vkStream->getBe32();
11047     forUnmarshaling->pNext = nullptr;
11048     if (pNext_size) {
11049         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11050         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11051         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11052         vkStream->alloc((void**)&forUnmarshaling->pNext,
11053                         goldfish_vk_extension_struct_size_with_stream_features(
11054                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11055         *(VkStructureType*)forUnmarshaling->pNext = extType;
11056         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11057     }
11058     vkStream->read((VkBool32*)&forUnmarshaling->privateData, sizeof(VkBool32));
11059 }
11060 
marshal_VkDevicePrivateDataCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDevicePrivateDataCreateInfo * forMarshaling)11061 void marshal_VkDevicePrivateDataCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
11062                                            const VkDevicePrivateDataCreateInfo* forMarshaling) {
11063     (void)rootType;
11064     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11065     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11066         rootType = forMarshaling->sType;
11067     }
11068     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11069     vkStream->write((uint32_t*)&forMarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
11070 }
11071 
unmarshal_VkDevicePrivateDataCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDevicePrivateDataCreateInfo * forUnmarshaling)11072 void unmarshal_VkDevicePrivateDataCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
11073                                              VkDevicePrivateDataCreateInfo* forUnmarshaling) {
11074     (void)rootType;
11075     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11076     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11077         rootType = forUnmarshaling->sType;
11078     }
11079     size_t pNext_size;
11080     pNext_size = vkStream->getBe32();
11081     forUnmarshaling->pNext = nullptr;
11082     if (pNext_size) {
11083         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11084         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11085         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11086         vkStream->alloc((void**)&forUnmarshaling->pNext,
11087                         goldfish_vk_extension_struct_size_with_stream_features(
11088                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11089         *(VkStructureType*)forUnmarshaling->pNext = extType;
11090         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11091     }
11092     vkStream->read((uint32_t*)&forUnmarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
11093 }
11094 
marshal_VkPrivateDataSlotCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPrivateDataSlotCreateInfo * forMarshaling)11095 void marshal_VkPrivateDataSlotCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
11096                                          const VkPrivateDataSlotCreateInfo* forMarshaling) {
11097     (void)rootType;
11098     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11099     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11100         rootType = forMarshaling->sType;
11101     }
11102     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11103     vkStream->write((VkPrivateDataSlotCreateFlags*)&forMarshaling->flags,
11104                     sizeof(VkPrivateDataSlotCreateFlags));
11105 }
11106 
unmarshal_VkPrivateDataSlotCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPrivateDataSlotCreateInfo * forUnmarshaling)11107 void unmarshal_VkPrivateDataSlotCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
11108                                            VkPrivateDataSlotCreateInfo* forUnmarshaling) {
11109     (void)rootType;
11110     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11111     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11112         rootType = forUnmarshaling->sType;
11113     }
11114     size_t pNext_size;
11115     pNext_size = vkStream->getBe32();
11116     forUnmarshaling->pNext = nullptr;
11117     if (pNext_size) {
11118         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11119         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11120         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11121         vkStream->alloc((void**)&forUnmarshaling->pNext,
11122                         goldfish_vk_extension_struct_size_with_stream_features(
11123                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11124         *(VkStructureType*)forUnmarshaling->pNext = extType;
11125         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11126     }
11127     vkStream->read((VkPrivateDataSlotCreateFlags*)&forUnmarshaling->flags,
11128                    sizeof(VkPrivateDataSlotCreateFlags));
11129 }
11130 
marshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineCreationCacheControlFeatures * forMarshaling)11131 void marshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
11132     VulkanStream* vkStream, VkStructureType rootType,
11133     const VkPhysicalDevicePipelineCreationCacheControlFeatures* forMarshaling) {
11134     (void)rootType;
11135     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11136     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11137         rootType = forMarshaling->sType;
11138     }
11139     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11140     vkStream->write((VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
11141 }
11142 
unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineCreationCacheControlFeatures * forUnmarshaling)11143 void unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
11144     VulkanStream* vkStream, VkStructureType rootType,
11145     VkPhysicalDevicePipelineCreationCacheControlFeatures* forUnmarshaling) {
11146     (void)rootType;
11147     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11148     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11149         rootType = forUnmarshaling->sType;
11150     }
11151     size_t pNext_size;
11152     pNext_size = vkStream->getBe32();
11153     forUnmarshaling->pNext = nullptr;
11154     if (pNext_size) {
11155         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11156         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11157         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11158         vkStream->alloc((void**)&forUnmarshaling->pNext,
11159                         goldfish_vk_extension_struct_size_with_stream_features(
11160                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11161         *(VkStructureType*)forUnmarshaling->pNext = extType;
11162         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11163     }
11164     vkStream->read((VkBool32*)&forUnmarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
11165 }
11166 
marshal_VkMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryBarrier2 * forMarshaling)11167 void marshal_VkMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
11168                               const VkMemoryBarrier2* forMarshaling) {
11169     (void)rootType;
11170     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11171     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11172         rootType = forMarshaling->sType;
11173     }
11174     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11175     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
11176                     sizeof(VkPipelineStageFlags2));
11177     vkStream->write((VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
11178     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
11179                     sizeof(VkPipelineStageFlags2));
11180     vkStream->write((VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
11181 }
11182 
unmarshal_VkMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,VkMemoryBarrier2 * forUnmarshaling)11183 void unmarshal_VkMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
11184                                 VkMemoryBarrier2* forUnmarshaling) {
11185     (void)rootType;
11186     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11187     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11188         rootType = forUnmarshaling->sType;
11189     }
11190     size_t pNext_size;
11191     pNext_size = vkStream->getBe32();
11192     forUnmarshaling->pNext = nullptr;
11193     if (pNext_size) {
11194         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11195         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11196         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11197         vkStream->alloc((void**)&forUnmarshaling->pNext,
11198                         goldfish_vk_extension_struct_size_with_stream_features(
11199                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11200         *(VkStructureType*)forUnmarshaling->pNext = extType;
11201         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11202     }
11203     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask,
11204                    sizeof(VkPipelineStageFlags2));
11205     vkStream->read((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2));
11206     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask,
11207                    sizeof(VkPipelineStageFlags2));
11208     vkStream->read((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2));
11209 }
11210 
marshal_VkBufferMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,const VkBufferMemoryBarrier2 * forMarshaling)11211 void marshal_VkBufferMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
11212                                     const VkBufferMemoryBarrier2* forMarshaling) {
11213     (void)rootType;
11214     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11215     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11216         rootType = forMarshaling->sType;
11217     }
11218     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11219     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
11220                     sizeof(VkPipelineStageFlags2));
11221     vkStream->write((VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
11222     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
11223                     sizeof(VkPipelineStageFlags2));
11224     vkStream->write((VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
11225     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
11226     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
11227     uint64_t cgen_var_0;
11228     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
11229     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11230     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
11231     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
11232 }
11233 
unmarshal_VkBufferMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,VkBufferMemoryBarrier2 * forUnmarshaling)11234 void unmarshal_VkBufferMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
11235                                       VkBufferMemoryBarrier2* forUnmarshaling) {
11236     (void)rootType;
11237     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11238     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11239         rootType = forUnmarshaling->sType;
11240     }
11241     size_t pNext_size;
11242     pNext_size = vkStream->getBe32();
11243     forUnmarshaling->pNext = nullptr;
11244     if (pNext_size) {
11245         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11246         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11247         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11248         vkStream->alloc((void**)&forUnmarshaling->pNext,
11249                         goldfish_vk_extension_struct_size_with_stream_features(
11250                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11251         *(VkStructureType*)forUnmarshaling->pNext = extType;
11252         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11253     }
11254     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask,
11255                    sizeof(VkPipelineStageFlags2));
11256     vkStream->read((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2));
11257     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask,
11258                    sizeof(VkPipelineStageFlags2));
11259     vkStream->read((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2));
11260     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
11261     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
11262     uint64_t cgen_var_0;
11263     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11264     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
11265                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
11266     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
11267     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
11268 }
11269 
marshal_VkImageMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,const VkImageMemoryBarrier2 * forMarshaling)11270 void marshal_VkImageMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
11271                                    const VkImageMemoryBarrier2* forMarshaling) {
11272     (void)rootType;
11273     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11274     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11275         rootType = forMarshaling->sType;
11276     }
11277     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11278     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
11279                     sizeof(VkPipelineStageFlags2));
11280     vkStream->write((VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
11281     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
11282                     sizeof(VkPipelineStageFlags2));
11283     vkStream->write((VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
11284     vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
11285     vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
11286     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
11287     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
11288     uint64_t cgen_var_0;
11289     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
11290     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11291     marshal_VkImageSubresourceRange(vkStream, rootType,
11292                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
11293 }
11294 
unmarshal_VkImageMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,VkImageMemoryBarrier2 * forUnmarshaling)11295 void unmarshal_VkImageMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
11296                                      VkImageMemoryBarrier2* forUnmarshaling) {
11297     (void)rootType;
11298     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11299     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11300         rootType = forUnmarshaling->sType;
11301     }
11302     size_t pNext_size;
11303     pNext_size = vkStream->getBe32();
11304     forUnmarshaling->pNext = nullptr;
11305     if (pNext_size) {
11306         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11307         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11308         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11309         vkStream->alloc((void**)&forUnmarshaling->pNext,
11310                         goldfish_vk_extension_struct_size_with_stream_features(
11311                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11312         *(VkStructureType*)forUnmarshaling->pNext = extType;
11313         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11314     }
11315     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask,
11316                    sizeof(VkPipelineStageFlags2));
11317     vkStream->read((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2));
11318     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask,
11319                    sizeof(VkPipelineStageFlags2));
11320     vkStream->read((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2));
11321     vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
11322     vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
11323     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
11324     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
11325     uint64_t cgen_var_0;
11326     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11327     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
11328                                                       (VkImage*)&forUnmarshaling->image, 1);
11329     unmarshal_VkImageSubresourceRange(
11330         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
11331 }
11332 
marshal_VkDependencyInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDependencyInfo * forMarshaling)11333 void marshal_VkDependencyInfo(VulkanStream* vkStream, VkStructureType rootType,
11334                               const VkDependencyInfo* forMarshaling) {
11335     (void)rootType;
11336     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11337     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11338         rootType = forMarshaling->sType;
11339     }
11340     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11341     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
11342     vkStream->write((uint32_t*)&forMarshaling->memoryBarrierCount, sizeof(uint32_t));
11343     if (forMarshaling) {
11344         for (uint32_t i = 0; i < (uint32_t)forMarshaling->memoryBarrierCount; ++i) {
11345             marshal_VkMemoryBarrier2(vkStream, rootType,
11346                                      (const VkMemoryBarrier2*)(forMarshaling->pMemoryBarriers + i));
11347         }
11348     }
11349     vkStream->write((uint32_t*)&forMarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
11350     if (forMarshaling) {
11351         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferMemoryBarrierCount; ++i) {
11352             marshal_VkBufferMemoryBarrier2(
11353                 vkStream, rootType,
11354                 (const VkBufferMemoryBarrier2*)(forMarshaling->pBufferMemoryBarriers + i));
11355         }
11356     }
11357     vkStream->write((uint32_t*)&forMarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
11358     if (forMarshaling) {
11359         for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageMemoryBarrierCount; ++i) {
11360             marshal_VkImageMemoryBarrier2(
11361                 vkStream, rootType,
11362                 (const VkImageMemoryBarrier2*)(forMarshaling->pImageMemoryBarriers + i));
11363         }
11364     }
11365 }
11366 
unmarshal_VkDependencyInfo(VulkanStream * vkStream,VkStructureType rootType,VkDependencyInfo * forUnmarshaling)11367 void unmarshal_VkDependencyInfo(VulkanStream* vkStream, VkStructureType rootType,
11368                                 VkDependencyInfo* forUnmarshaling) {
11369     (void)rootType;
11370     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11371     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11372         rootType = forUnmarshaling->sType;
11373     }
11374     size_t pNext_size;
11375     pNext_size = vkStream->getBe32();
11376     forUnmarshaling->pNext = nullptr;
11377     if (pNext_size) {
11378         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11379         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11380         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11381         vkStream->alloc((void**)&forUnmarshaling->pNext,
11382                         goldfish_vk_extension_struct_size_with_stream_features(
11383                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11384         *(VkStructureType*)forUnmarshaling->pNext = extType;
11385         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11386     }
11387     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags,
11388                    sizeof(VkDependencyFlags));
11389     vkStream->read((uint32_t*)&forUnmarshaling->memoryBarrierCount, sizeof(uint32_t));
11390     vkStream->alloc((void**)&forUnmarshaling->pMemoryBarriers,
11391                     forUnmarshaling->memoryBarrierCount * sizeof(const VkMemoryBarrier2));
11392     if (forUnmarshaling) {
11393         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->memoryBarrierCount; ++i) {
11394             unmarshal_VkMemoryBarrier2(vkStream, rootType,
11395                                        (VkMemoryBarrier2*)(forUnmarshaling->pMemoryBarriers + i));
11396         }
11397     }
11398     vkStream->read((uint32_t*)&forUnmarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
11399     vkStream->alloc(
11400         (void**)&forUnmarshaling->pBufferMemoryBarriers,
11401         forUnmarshaling->bufferMemoryBarrierCount * sizeof(const VkBufferMemoryBarrier2));
11402     if (forUnmarshaling) {
11403         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferMemoryBarrierCount; ++i) {
11404             unmarshal_VkBufferMemoryBarrier2(
11405                 vkStream, rootType,
11406                 (VkBufferMemoryBarrier2*)(forUnmarshaling->pBufferMemoryBarriers + i));
11407         }
11408     }
11409     vkStream->read((uint32_t*)&forUnmarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
11410     vkStream->alloc((void**)&forUnmarshaling->pImageMemoryBarriers,
11411                     forUnmarshaling->imageMemoryBarrierCount * sizeof(const VkImageMemoryBarrier2));
11412     if (forUnmarshaling) {
11413         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageMemoryBarrierCount; ++i) {
11414             unmarshal_VkImageMemoryBarrier2(
11415                 vkStream, rootType,
11416                 (VkImageMemoryBarrier2*)(forUnmarshaling->pImageMemoryBarriers + i));
11417         }
11418     }
11419 }
11420 
marshal_VkSemaphoreSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreSubmitInfo * forMarshaling)11421 void marshal_VkSemaphoreSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
11422                                    const VkSemaphoreSubmitInfo* forMarshaling) {
11423     (void)rootType;
11424     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11425     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11426         rootType = forMarshaling->sType;
11427     }
11428     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11429     uint64_t cgen_var_0;
11430     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
11431                                                           1);
11432     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11433     vkStream->write((uint64_t*)&forMarshaling->value, sizeof(uint64_t));
11434     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->stageMask,
11435                     sizeof(VkPipelineStageFlags2));
11436     vkStream->write((uint32_t*)&forMarshaling->deviceIndex, sizeof(uint32_t));
11437 }
11438 
unmarshal_VkSemaphoreSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreSubmitInfo * forUnmarshaling)11439 void unmarshal_VkSemaphoreSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
11440                                      VkSemaphoreSubmitInfo* forUnmarshaling) {
11441     (void)rootType;
11442     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11443     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11444         rootType = forUnmarshaling->sType;
11445     }
11446     size_t pNext_size;
11447     pNext_size = vkStream->getBe32();
11448     forUnmarshaling->pNext = nullptr;
11449     if (pNext_size) {
11450         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11451         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11452         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11453         vkStream->alloc((void**)&forUnmarshaling->pNext,
11454                         goldfish_vk_extension_struct_size_with_stream_features(
11455                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11456         *(VkStructureType*)forUnmarshaling->pNext = extType;
11457         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11458     }
11459     uint64_t cgen_var_0;
11460     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11461     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
11462         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
11463     vkStream->read((uint64_t*)&forUnmarshaling->value, sizeof(uint64_t));
11464     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->stageMask,
11465                    sizeof(VkPipelineStageFlags2));
11466     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndex, sizeof(uint32_t));
11467 }
11468 
marshal_VkCommandBufferSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferSubmitInfo * forMarshaling)11469 void marshal_VkCommandBufferSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
11470                                        const VkCommandBufferSubmitInfo* forMarshaling) {
11471     (void)rootType;
11472     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11473     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11474         rootType = forMarshaling->sType;
11475     }
11476     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11477     uint64_t cgen_var_0;
11478     vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->commandBuffer,
11479                                                               &cgen_var_0, 1);
11480     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11481     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
11482 }
11483 
unmarshal_VkCommandBufferSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferSubmitInfo * forUnmarshaling)11484 void unmarshal_VkCommandBufferSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
11485                                          VkCommandBufferSubmitInfo* forUnmarshaling) {
11486     (void)rootType;
11487     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11488     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11489         rootType = forUnmarshaling->sType;
11490     }
11491     size_t pNext_size;
11492     pNext_size = vkStream->getBe32();
11493     forUnmarshaling->pNext = nullptr;
11494     if (pNext_size) {
11495         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11496         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11497         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11498         vkStream->alloc((void**)&forUnmarshaling->pNext,
11499                         goldfish_vk_extension_struct_size_with_stream_features(
11500                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11501         *(VkStructureType*)forUnmarshaling->pNext = extType;
11502         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11503     }
11504     uint64_t cgen_var_0;
11505     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11506     vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(
11507         &cgen_var_0, (VkCommandBuffer*)&forUnmarshaling->commandBuffer, 1);
11508     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
11509 }
11510 
marshal_VkSubmitInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkSubmitInfo2 * forMarshaling)11511 void marshal_VkSubmitInfo2(VulkanStream* vkStream, VkStructureType rootType,
11512                            const VkSubmitInfo2* forMarshaling) {
11513     (void)rootType;
11514     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11515     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11516         rootType = forMarshaling->sType;
11517     }
11518     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11519     vkStream->write((VkSubmitFlags*)&forMarshaling->flags, sizeof(VkSubmitFlags));
11520     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
11521     if (forMarshaling) {
11522         for (uint32_t i = 0; i < (uint32_t)forMarshaling->waitSemaphoreInfoCount; ++i) {
11523             marshal_VkSemaphoreSubmitInfo(
11524                 vkStream, rootType,
11525                 (const VkSemaphoreSubmitInfo*)(forMarshaling->pWaitSemaphoreInfos + i));
11526         }
11527     }
11528     vkStream->write((uint32_t*)&forMarshaling->commandBufferInfoCount, sizeof(uint32_t));
11529     if (forMarshaling) {
11530         for (uint32_t i = 0; i < (uint32_t)forMarshaling->commandBufferInfoCount; ++i) {
11531             marshal_VkCommandBufferSubmitInfo(
11532                 vkStream, rootType,
11533                 (const VkCommandBufferSubmitInfo*)(forMarshaling->pCommandBufferInfos + i));
11534         }
11535     }
11536     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
11537     if (forMarshaling) {
11538         for (uint32_t i = 0; i < (uint32_t)forMarshaling->signalSemaphoreInfoCount; ++i) {
11539             marshal_VkSemaphoreSubmitInfo(
11540                 vkStream, rootType,
11541                 (const VkSemaphoreSubmitInfo*)(forMarshaling->pSignalSemaphoreInfos + i));
11542         }
11543     }
11544 }
11545 
unmarshal_VkSubmitInfo2(VulkanStream * vkStream,VkStructureType rootType,VkSubmitInfo2 * forUnmarshaling)11546 void unmarshal_VkSubmitInfo2(VulkanStream* vkStream, VkStructureType rootType,
11547                              VkSubmitInfo2* forUnmarshaling) {
11548     (void)rootType;
11549     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11550     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11551         rootType = forUnmarshaling->sType;
11552     }
11553     size_t pNext_size;
11554     pNext_size = vkStream->getBe32();
11555     forUnmarshaling->pNext = nullptr;
11556     if (pNext_size) {
11557         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11558         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11559         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11560         vkStream->alloc((void**)&forUnmarshaling->pNext,
11561                         goldfish_vk_extension_struct_size_with_stream_features(
11562                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11563         *(VkStructureType*)forUnmarshaling->pNext = extType;
11564         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11565     }
11566     vkStream->read((VkSubmitFlags*)&forUnmarshaling->flags, sizeof(VkSubmitFlags));
11567     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
11568     vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphoreInfos,
11569                     forUnmarshaling->waitSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfo));
11570     if (forUnmarshaling) {
11571         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->waitSemaphoreInfoCount; ++i) {
11572             unmarshal_VkSemaphoreSubmitInfo(
11573                 vkStream, rootType,
11574                 (VkSemaphoreSubmitInfo*)(forUnmarshaling->pWaitSemaphoreInfos + i));
11575         }
11576     }
11577     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferInfoCount, sizeof(uint32_t));
11578     vkStream->alloc(
11579         (void**)&forUnmarshaling->pCommandBufferInfos,
11580         forUnmarshaling->commandBufferInfoCount * sizeof(const VkCommandBufferSubmitInfo));
11581     if (forUnmarshaling) {
11582         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->commandBufferInfoCount; ++i) {
11583             unmarshal_VkCommandBufferSubmitInfo(
11584                 vkStream, rootType,
11585                 (VkCommandBufferSubmitInfo*)(forUnmarshaling->pCommandBufferInfos + i));
11586         }
11587     }
11588     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
11589     vkStream->alloc(
11590         (void**)&forUnmarshaling->pSignalSemaphoreInfos,
11591         forUnmarshaling->signalSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfo));
11592     if (forUnmarshaling) {
11593         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->signalSemaphoreInfoCount; ++i) {
11594             unmarshal_VkSemaphoreSubmitInfo(
11595                 vkStream, rootType,
11596                 (VkSemaphoreSubmitInfo*)(forUnmarshaling->pSignalSemaphoreInfos + i));
11597         }
11598     }
11599 }
11600 
marshal_VkPhysicalDeviceSynchronization2Features(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSynchronization2Features * forMarshaling)11601 void marshal_VkPhysicalDeviceSynchronization2Features(
11602     VulkanStream* vkStream, VkStructureType rootType,
11603     const VkPhysicalDeviceSynchronization2Features* forMarshaling) {
11604     (void)rootType;
11605     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11606     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11607         rootType = forMarshaling->sType;
11608     }
11609     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11610     vkStream->write((VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
11611 }
11612 
unmarshal_VkPhysicalDeviceSynchronization2Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSynchronization2Features * forUnmarshaling)11613 void unmarshal_VkPhysicalDeviceSynchronization2Features(
11614     VulkanStream* vkStream, VkStructureType rootType,
11615     VkPhysicalDeviceSynchronization2Features* forUnmarshaling) {
11616     (void)rootType;
11617     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11618     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11619         rootType = forUnmarshaling->sType;
11620     }
11621     size_t pNext_size;
11622     pNext_size = vkStream->getBe32();
11623     forUnmarshaling->pNext = nullptr;
11624     if (pNext_size) {
11625         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11626         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11627         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11628         vkStream->alloc((void**)&forUnmarshaling->pNext,
11629                         goldfish_vk_extension_struct_size_with_stream_features(
11630                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11631         *(VkStructureType*)forUnmarshaling->pNext = extType;
11632         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11633     }
11634     vkStream->read((VkBool32*)&forUnmarshaling->synchronization2, sizeof(VkBool32));
11635 }
11636 
marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * forMarshaling)11637 void marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
11638     VulkanStream* vkStream, VkStructureType rootType,
11639     const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* forMarshaling) {
11640     (void)rootType;
11641     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11642     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11643         rootType = forMarshaling->sType;
11644     }
11645     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11646     vkStream->write((VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory,
11647                     sizeof(VkBool32));
11648 }
11649 
unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * forUnmarshaling)11650 void unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
11651     VulkanStream* vkStream, VkStructureType rootType,
11652     VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* forUnmarshaling) {
11653     (void)rootType;
11654     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11655     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11656         rootType = forUnmarshaling->sType;
11657     }
11658     size_t pNext_size;
11659     pNext_size = vkStream->getBe32();
11660     forUnmarshaling->pNext = nullptr;
11661     if (pNext_size) {
11662         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11663         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11664         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11665         vkStream->alloc((void**)&forUnmarshaling->pNext,
11666                         goldfish_vk_extension_struct_size_with_stream_features(
11667                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11668         *(VkStructureType*)forUnmarshaling->pNext = extType;
11669         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11670     }
11671     vkStream->read((VkBool32*)&forUnmarshaling->shaderZeroInitializeWorkgroupMemory,
11672                    sizeof(VkBool32));
11673 }
11674 
marshal_VkPhysicalDeviceImageRobustnessFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageRobustnessFeatures * forMarshaling)11675 void marshal_VkPhysicalDeviceImageRobustnessFeatures(
11676     VulkanStream* vkStream, VkStructureType rootType,
11677     const VkPhysicalDeviceImageRobustnessFeatures* forMarshaling) {
11678     (void)rootType;
11679     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11680     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11681         rootType = forMarshaling->sType;
11682     }
11683     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11684     vkStream->write((VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
11685 }
11686 
unmarshal_VkPhysicalDeviceImageRobustnessFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageRobustnessFeatures * forUnmarshaling)11687 void unmarshal_VkPhysicalDeviceImageRobustnessFeatures(
11688     VulkanStream* vkStream, VkStructureType rootType,
11689     VkPhysicalDeviceImageRobustnessFeatures* forUnmarshaling) {
11690     (void)rootType;
11691     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11692     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11693         rootType = forUnmarshaling->sType;
11694     }
11695     size_t pNext_size;
11696     pNext_size = vkStream->getBe32();
11697     forUnmarshaling->pNext = nullptr;
11698     if (pNext_size) {
11699         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11700         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11701         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11702         vkStream->alloc((void**)&forUnmarshaling->pNext,
11703                         goldfish_vk_extension_struct_size_with_stream_features(
11704                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11705         *(VkStructureType*)forUnmarshaling->pNext = extType;
11706         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11707     }
11708     vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess, sizeof(VkBool32));
11709 }
11710 
marshal_VkBufferCopy2(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCopy2 * forMarshaling)11711 void marshal_VkBufferCopy2(VulkanStream* vkStream, VkStructureType rootType,
11712                            const VkBufferCopy2* forMarshaling) {
11713     (void)rootType;
11714     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11715     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11716         rootType = forMarshaling->sType;
11717     }
11718     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11719     vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
11720     vkStream->write((VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
11721     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
11722 }
11723 
unmarshal_VkBufferCopy2(VulkanStream * vkStream,VkStructureType rootType,VkBufferCopy2 * forUnmarshaling)11724 void unmarshal_VkBufferCopy2(VulkanStream* vkStream, VkStructureType rootType,
11725                              VkBufferCopy2* forUnmarshaling) {
11726     (void)rootType;
11727     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11728     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11729         rootType = forUnmarshaling->sType;
11730     }
11731     size_t pNext_size;
11732     pNext_size = vkStream->getBe32();
11733     forUnmarshaling->pNext = nullptr;
11734     if (pNext_size) {
11735         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11736         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11737         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11738         vkStream->alloc((void**)&forUnmarshaling->pNext,
11739                         goldfish_vk_extension_struct_size_with_stream_features(
11740                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11741         *(VkStructureType*)forUnmarshaling->pNext = extType;
11742         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11743     }
11744     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
11745     vkStream->read((VkDeviceSize*)&forUnmarshaling->dstOffset, sizeof(VkDeviceSize));
11746     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
11747 }
11748 
marshal_VkCopyBufferInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkCopyBufferInfo2 * forMarshaling)11749 void marshal_VkCopyBufferInfo2(VulkanStream* vkStream, VkStructureType rootType,
11750                                const VkCopyBufferInfo2* forMarshaling) {
11751     (void)rootType;
11752     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11753     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11754         rootType = forMarshaling->sType;
11755     }
11756     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11757     uint64_t cgen_var_0;
11758     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->srcBuffer, &cgen_var_0, 1);
11759     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11760     uint64_t cgen_var_1;
11761     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBuffer, &cgen_var_1, 1);
11762     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
11763     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
11764     if (forMarshaling) {
11765         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
11766             marshal_VkBufferCopy2(vkStream, rootType,
11767                                   (const VkBufferCopy2*)(forMarshaling->pRegions + i));
11768         }
11769     }
11770 }
11771 
unmarshal_VkCopyBufferInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyBufferInfo2 * forUnmarshaling)11772 void unmarshal_VkCopyBufferInfo2(VulkanStream* vkStream, VkStructureType rootType,
11773                                  VkCopyBufferInfo2* forUnmarshaling) {
11774     (void)rootType;
11775     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11776     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11777         rootType = forUnmarshaling->sType;
11778     }
11779     size_t pNext_size;
11780     pNext_size = vkStream->getBe32();
11781     forUnmarshaling->pNext = nullptr;
11782     if (pNext_size) {
11783         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11784         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11785         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11786         vkStream->alloc((void**)&forUnmarshaling->pNext,
11787                         goldfish_vk_extension_struct_size_with_stream_features(
11788                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11789         *(VkStructureType*)forUnmarshaling->pNext = extType;
11790         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11791     }
11792     uint64_t cgen_var_0;
11793     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11794     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
11795                                                        (VkBuffer*)&forUnmarshaling->srcBuffer, 1);
11796     uint64_t cgen_var_1;
11797     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
11798     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
11799                                                        (VkBuffer*)&forUnmarshaling->dstBuffer, 1);
11800     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
11801     vkStream->alloc((void**)&forUnmarshaling->pRegions,
11802                     forUnmarshaling->regionCount * sizeof(const VkBufferCopy2));
11803     if (forUnmarshaling) {
11804         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
11805             unmarshal_VkBufferCopy2(vkStream, rootType,
11806                                     (VkBufferCopy2*)(forUnmarshaling->pRegions + i));
11807         }
11808     }
11809 }
11810 
marshal_VkImageCopy2(VulkanStream * vkStream,VkStructureType rootType,const VkImageCopy2 * forMarshaling)11811 void marshal_VkImageCopy2(VulkanStream* vkStream, VkStructureType rootType,
11812                           const VkImageCopy2* forMarshaling) {
11813     (void)rootType;
11814     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11815     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11816         rootType = forMarshaling->sType;
11817     }
11818     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11819     marshal_VkImageSubresourceLayers(vkStream, rootType,
11820                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
11821     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
11822     marshal_VkImageSubresourceLayers(vkStream, rootType,
11823                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
11824     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
11825     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
11826 }
11827 
unmarshal_VkImageCopy2(VulkanStream * vkStream,VkStructureType rootType,VkImageCopy2 * forUnmarshaling)11828 void unmarshal_VkImageCopy2(VulkanStream* vkStream, VkStructureType rootType,
11829                             VkImageCopy2* forUnmarshaling) {
11830     (void)rootType;
11831     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11832     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11833         rootType = forUnmarshaling->sType;
11834     }
11835     size_t pNext_size;
11836     pNext_size = vkStream->getBe32();
11837     forUnmarshaling->pNext = nullptr;
11838     if (pNext_size) {
11839         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11840         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11841         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11842         vkStream->alloc((void**)&forUnmarshaling->pNext,
11843                         goldfish_vk_extension_struct_size_with_stream_features(
11844                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11845         *(VkStructureType*)forUnmarshaling->pNext = extType;
11846         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11847     }
11848     unmarshal_VkImageSubresourceLayers(
11849         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
11850     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
11851     unmarshal_VkImageSubresourceLayers(
11852         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
11853     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
11854     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
11855 }
11856 
marshal_VkCopyImageInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkCopyImageInfo2 * forMarshaling)11857 void marshal_VkCopyImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
11858                               const VkCopyImageInfo2* forMarshaling) {
11859     (void)rootType;
11860     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11861     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11862         rootType = forMarshaling->sType;
11863     }
11864     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11865     uint64_t cgen_var_0;
11866     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
11867     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11868     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
11869     uint64_t cgen_var_1;
11870     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
11871     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
11872     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
11873     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
11874     if (forMarshaling) {
11875         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
11876             marshal_VkImageCopy2(vkStream, rootType,
11877                                  (const VkImageCopy2*)(forMarshaling->pRegions + i));
11878         }
11879     }
11880 }
11881 
unmarshal_VkCopyImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyImageInfo2 * forUnmarshaling)11882 void unmarshal_VkCopyImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
11883                                 VkCopyImageInfo2* forUnmarshaling) {
11884     (void)rootType;
11885     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11886     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11887         rootType = forUnmarshaling->sType;
11888     }
11889     size_t pNext_size;
11890     pNext_size = vkStream->getBe32();
11891     forUnmarshaling->pNext = nullptr;
11892     if (pNext_size) {
11893         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11894         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11895         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11896         vkStream->alloc((void**)&forUnmarshaling->pNext,
11897                         goldfish_vk_extension_struct_size_with_stream_features(
11898                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11899         *(VkStructureType*)forUnmarshaling->pNext = extType;
11900         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11901     }
11902     uint64_t cgen_var_0;
11903     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11904     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
11905                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
11906     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
11907     uint64_t cgen_var_1;
11908     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
11909     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
11910                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
11911     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
11912     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
11913     vkStream->alloc((void**)&forUnmarshaling->pRegions,
11914                     forUnmarshaling->regionCount * sizeof(const VkImageCopy2));
11915     if (forUnmarshaling) {
11916         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
11917             unmarshal_VkImageCopy2(vkStream, rootType,
11918                                    (VkImageCopy2*)(forUnmarshaling->pRegions + i));
11919         }
11920     }
11921 }
11922 
marshal_VkBufferImageCopy2(VulkanStream * vkStream,VkStructureType rootType,const VkBufferImageCopy2 * forMarshaling)11923 void marshal_VkBufferImageCopy2(VulkanStream* vkStream, VkStructureType rootType,
11924                                 const VkBufferImageCopy2* forMarshaling) {
11925     (void)rootType;
11926     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11928         rootType = forMarshaling->sType;
11929     }
11930     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11931     vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
11932     vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
11933     vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
11934     marshal_VkImageSubresourceLayers(vkStream, rootType,
11935                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
11936     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
11937     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
11938 }
11939 
unmarshal_VkBufferImageCopy2(VulkanStream * vkStream,VkStructureType rootType,VkBufferImageCopy2 * forUnmarshaling)11940 void unmarshal_VkBufferImageCopy2(VulkanStream* vkStream, VkStructureType rootType,
11941                                   VkBufferImageCopy2* forUnmarshaling) {
11942     (void)rootType;
11943     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11944     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11945         rootType = forUnmarshaling->sType;
11946     }
11947     size_t pNext_size;
11948     pNext_size = vkStream->getBe32();
11949     forUnmarshaling->pNext = nullptr;
11950     if (pNext_size) {
11951         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11952         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
11953         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11954         vkStream->alloc((void**)&forUnmarshaling->pNext,
11955                         goldfish_vk_extension_struct_size_with_stream_features(
11956                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11957         *(VkStructureType*)forUnmarshaling->pNext = extType;
11958         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11959     }
11960     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
11961     vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
11962     vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
11963     unmarshal_VkImageSubresourceLayers(
11964         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
11965     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
11966     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
11967 }
11968 
marshal_VkCopyBufferToImageInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkCopyBufferToImageInfo2 * forMarshaling)11969 void marshal_VkCopyBufferToImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
11970                                       const VkCopyBufferToImageInfo2* forMarshaling) {
11971     (void)rootType;
11972     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11973     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11974         rootType = forMarshaling->sType;
11975     }
11976     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11977     uint64_t cgen_var_0;
11978     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->srcBuffer, &cgen_var_0, 1);
11979     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11980     uint64_t cgen_var_1;
11981     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
11982     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
11983     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
11984     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
11985     if (forMarshaling) {
11986         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
11987             marshal_VkBufferImageCopy2(vkStream, rootType,
11988                                        (const VkBufferImageCopy2*)(forMarshaling->pRegions + i));
11989         }
11990     }
11991 }
11992 
unmarshal_VkCopyBufferToImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyBufferToImageInfo2 * forUnmarshaling)11993 void unmarshal_VkCopyBufferToImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
11994                                         VkCopyBufferToImageInfo2* forUnmarshaling) {
11995     (void)rootType;
11996     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11997     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11998         rootType = forUnmarshaling->sType;
11999     }
12000     size_t pNext_size;
12001     pNext_size = vkStream->getBe32();
12002     forUnmarshaling->pNext = nullptr;
12003     if (pNext_size) {
12004         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12005         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12006         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12007         vkStream->alloc((void**)&forUnmarshaling->pNext,
12008                         goldfish_vk_extension_struct_size_with_stream_features(
12009                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12010         *(VkStructureType*)forUnmarshaling->pNext = extType;
12011         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12012     }
12013     uint64_t cgen_var_0;
12014     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12015     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
12016                                                        (VkBuffer*)&forUnmarshaling->srcBuffer, 1);
12017     uint64_t cgen_var_1;
12018     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12019     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
12020                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
12021     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
12022     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12023     vkStream->alloc((void**)&forUnmarshaling->pRegions,
12024                     forUnmarshaling->regionCount * sizeof(const VkBufferImageCopy2));
12025     if (forUnmarshaling) {
12026         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12027             unmarshal_VkBufferImageCopy2(vkStream, rootType,
12028                                          (VkBufferImageCopy2*)(forUnmarshaling->pRegions + i));
12029         }
12030     }
12031 }
12032 
marshal_VkCopyImageToBufferInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkCopyImageToBufferInfo2 * forMarshaling)12033 void marshal_VkCopyImageToBufferInfo2(VulkanStream* vkStream, VkStructureType rootType,
12034                                       const VkCopyImageToBufferInfo2* forMarshaling) {
12035     (void)rootType;
12036     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12037     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12038         rootType = forMarshaling->sType;
12039     }
12040     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12041     uint64_t cgen_var_0;
12042     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
12043     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12044     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
12045     uint64_t cgen_var_1;
12046     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBuffer, &cgen_var_1, 1);
12047     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
12048     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12049     if (forMarshaling) {
12050         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12051             marshal_VkBufferImageCopy2(vkStream, rootType,
12052                                        (const VkBufferImageCopy2*)(forMarshaling->pRegions + i));
12053         }
12054     }
12055 }
12056 
unmarshal_VkCopyImageToBufferInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyImageToBufferInfo2 * forUnmarshaling)12057 void unmarshal_VkCopyImageToBufferInfo2(VulkanStream* vkStream, VkStructureType rootType,
12058                                         VkCopyImageToBufferInfo2* forUnmarshaling) {
12059     (void)rootType;
12060     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12061     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12062         rootType = forUnmarshaling->sType;
12063     }
12064     size_t pNext_size;
12065     pNext_size = vkStream->getBe32();
12066     forUnmarshaling->pNext = nullptr;
12067     if (pNext_size) {
12068         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12069         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12070         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12071         vkStream->alloc((void**)&forUnmarshaling->pNext,
12072                         goldfish_vk_extension_struct_size_with_stream_features(
12073                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12074         *(VkStructureType*)forUnmarshaling->pNext = extType;
12075         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12076     }
12077     uint64_t cgen_var_0;
12078     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12079     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12080                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
12081     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
12082     uint64_t cgen_var_1;
12083     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12084     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
12085                                                        (VkBuffer*)&forUnmarshaling->dstBuffer, 1);
12086     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12087     vkStream->alloc((void**)&forUnmarshaling->pRegions,
12088                     forUnmarshaling->regionCount * sizeof(const VkBufferImageCopy2));
12089     if (forUnmarshaling) {
12090         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12091             unmarshal_VkBufferImageCopy2(vkStream, rootType,
12092                                          (VkBufferImageCopy2*)(forUnmarshaling->pRegions + i));
12093         }
12094     }
12095 }
12096 
marshal_VkImageBlit2(VulkanStream * vkStream,VkStructureType rootType,const VkImageBlit2 * forMarshaling)12097 void marshal_VkImageBlit2(VulkanStream* vkStream, VkStructureType rootType,
12098                           const VkImageBlit2* forMarshaling) {
12099     (void)rootType;
12100     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12101     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12102         rootType = forMarshaling->sType;
12103     }
12104     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12105     marshal_VkImageSubresourceLayers(vkStream, rootType,
12106                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
12107     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
12108         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->srcOffsets + i));
12109     }
12110     marshal_VkImageSubresourceLayers(vkStream, rootType,
12111                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
12112     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
12113         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->dstOffsets + i));
12114     }
12115 }
12116 
unmarshal_VkImageBlit2(VulkanStream * vkStream,VkStructureType rootType,VkImageBlit2 * forUnmarshaling)12117 void unmarshal_VkImageBlit2(VulkanStream* vkStream, VkStructureType rootType,
12118                             VkImageBlit2* forUnmarshaling) {
12119     (void)rootType;
12120     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12121     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12122         rootType = forUnmarshaling->sType;
12123     }
12124     size_t pNext_size;
12125     pNext_size = vkStream->getBe32();
12126     forUnmarshaling->pNext = nullptr;
12127     if (pNext_size) {
12128         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12129         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12130         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12131         vkStream->alloc((void**)&forUnmarshaling->pNext,
12132                         goldfish_vk_extension_struct_size_with_stream_features(
12133                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12134         *(VkStructureType*)forUnmarshaling->pNext = extType;
12135         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12136     }
12137     unmarshal_VkImageSubresourceLayers(
12138         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
12139     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
12140         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
12141     }
12142     unmarshal_VkImageSubresourceLayers(
12143         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
12144     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
12145         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
12146     }
12147 }
12148 
marshal_VkBlitImageInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkBlitImageInfo2 * forMarshaling)12149 void marshal_VkBlitImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
12150                               const VkBlitImageInfo2* forMarshaling) {
12151     (void)rootType;
12152     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12153     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12154         rootType = forMarshaling->sType;
12155     }
12156     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12157     uint64_t cgen_var_0;
12158     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
12159     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12160     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
12161     uint64_t cgen_var_1;
12162     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
12163     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
12164     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
12165     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12166     if (forMarshaling) {
12167         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12168             marshal_VkImageBlit2(vkStream, rootType,
12169                                  (const VkImageBlit2*)(forMarshaling->pRegions + i));
12170         }
12171     }
12172     vkStream->write((VkFilter*)&forMarshaling->filter, sizeof(VkFilter));
12173 }
12174 
unmarshal_VkBlitImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkBlitImageInfo2 * forUnmarshaling)12175 void unmarshal_VkBlitImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
12176                                 VkBlitImageInfo2* forUnmarshaling) {
12177     (void)rootType;
12178     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12179     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12180         rootType = forUnmarshaling->sType;
12181     }
12182     size_t pNext_size;
12183     pNext_size = vkStream->getBe32();
12184     forUnmarshaling->pNext = nullptr;
12185     if (pNext_size) {
12186         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12187         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12188         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12189         vkStream->alloc((void**)&forUnmarshaling->pNext,
12190                         goldfish_vk_extension_struct_size_with_stream_features(
12191                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12192         *(VkStructureType*)forUnmarshaling->pNext = extType;
12193         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12194     }
12195     uint64_t cgen_var_0;
12196     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12197     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12198                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
12199     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
12200     uint64_t cgen_var_1;
12201     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12202     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
12203                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
12204     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
12205     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12206     vkStream->alloc((void**)&forUnmarshaling->pRegions,
12207                     forUnmarshaling->regionCount * sizeof(const VkImageBlit2));
12208     if (forUnmarshaling) {
12209         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12210             unmarshal_VkImageBlit2(vkStream, rootType,
12211                                    (VkImageBlit2*)(forUnmarshaling->pRegions + i));
12212         }
12213     }
12214     vkStream->read((VkFilter*)&forUnmarshaling->filter, sizeof(VkFilter));
12215 }
12216 
marshal_VkImageResolve2(VulkanStream * vkStream,VkStructureType rootType,const VkImageResolve2 * forMarshaling)12217 void marshal_VkImageResolve2(VulkanStream* vkStream, VkStructureType rootType,
12218                              const VkImageResolve2* forMarshaling) {
12219     (void)rootType;
12220     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12221     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12222         rootType = forMarshaling->sType;
12223     }
12224     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12225     marshal_VkImageSubresourceLayers(vkStream, rootType,
12226                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
12227     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
12228     marshal_VkImageSubresourceLayers(vkStream, rootType,
12229                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
12230     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
12231     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
12232 }
12233 
unmarshal_VkImageResolve2(VulkanStream * vkStream,VkStructureType rootType,VkImageResolve2 * forUnmarshaling)12234 void unmarshal_VkImageResolve2(VulkanStream* vkStream, VkStructureType rootType,
12235                                VkImageResolve2* forUnmarshaling) {
12236     (void)rootType;
12237     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12238     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12239         rootType = forUnmarshaling->sType;
12240     }
12241     size_t pNext_size;
12242     pNext_size = vkStream->getBe32();
12243     forUnmarshaling->pNext = nullptr;
12244     if (pNext_size) {
12245         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12246         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12247         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12248         vkStream->alloc((void**)&forUnmarshaling->pNext,
12249                         goldfish_vk_extension_struct_size_with_stream_features(
12250                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12251         *(VkStructureType*)forUnmarshaling->pNext = extType;
12252         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12253     }
12254     unmarshal_VkImageSubresourceLayers(
12255         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
12256     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
12257     unmarshal_VkImageSubresourceLayers(
12258         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
12259     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
12260     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
12261 }
12262 
marshal_VkResolveImageInfo2(VulkanStream * vkStream,VkStructureType rootType,const VkResolveImageInfo2 * forMarshaling)12263 void marshal_VkResolveImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
12264                                  const VkResolveImageInfo2* forMarshaling) {
12265     (void)rootType;
12266     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12267     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12268         rootType = forMarshaling->sType;
12269     }
12270     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12271     uint64_t cgen_var_0;
12272     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
12273     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12274     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
12275     uint64_t cgen_var_1;
12276     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
12277     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
12278     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
12279     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12280     if (forMarshaling) {
12281         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12282             marshal_VkImageResolve2(vkStream, rootType,
12283                                     (const VkImageResolve2*)(forMarshaling->pRegions + i));
12284         }
12285     }
12286 }
12287 
unmarshal_VkResolveImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkResolveImageInfo2 * forUnmarshaling)12288 void unmarshal_VkResolveImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
12289                                    VkResolveImageInfo2* forUnmarshaling) {
12290     (void)rootType;
12291     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12292     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12293         rootType = forUnmarshaling->sType;
12294     }
12295     size_t pNext_size;
12296     pNext_size = vkStream->getBe32();
12297     forUnmarshaling->pNext = nullptr;
12298     if (pNext_size) {
12299         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12300         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12301         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12302         vkStream->alloc((void**)&forUnmarshaling->pNext,
12303                         goldfish_vk_extension_struct_size_with_stream_features(
12304                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12305         *(VkStructureType*)forUnmarshaling->pNext = extType;
12306         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12307     }
12308     uint64_t cgen_var_0;
12309     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12310     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12311                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
12312     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
12313     uint64_t cgen_var_1;
12314     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12315     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
12316                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
12317     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
12318     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12319     vkStream->alloc((void**)&forUnmarshaling->pRegions,
12320                     forUnmarshaling->regionCount * sizeof(const VkImageResolve2));
12321     if (forUnmarshaling) {
12322         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12323             unmarshal_VkImageResolve2(vkStream, rootType,
12324                                       (VkImageResolve2*)(forUnmarshaling->pRegions + i));
12325         }
12326     }
12327 }
12328 
marshal_VkPhysicalDeviceSubgroupSizeControlFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlFeatures * forMarshaling)12329 void marshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
12330     VulkanStream* vkStream, VkStructureType rootType,
12331     const VkPhysicalDeviceSubgroupSizeControlFeatures* forMarshaling) {
12332     (void)rootType;
12333     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12334     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12335         rootType = forMarshaling->sType;
12336     }
12337     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12338     vkStream->write((VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
12339     vkStream->write((VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
12340 }
12341 
unmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupSizeControlFeatures * forUnmarshaling)12342 void unmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
12343     VulkanStream* vkStream, VkStructureType rootType,
12344     VkPhysicalDeviceSubgroupSizeControlFeatures* forUnmarshaling) {
12345     (void)rootType;
12346     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12347     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12348         rootType = forUnmarshaling->sType;
12349     }
12350     size_t pNext_size;
12351     pNext_size = vkStream->getBe32();
12352     forUnmarshaling->pNext = nullptr;
12353     if (pNext_size) {
12354         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12355         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12356         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12357         vkStream->alloc((void**)&forUnmarshaling->pNext,
12358                         goldfish_vk_extension_struct_size_with_stream_features(
12359                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12360         *(VkStructureType*)forUnmarshaling->pNext = extType;
12361         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12362     }
12363     vkStream->read((VkBool32*)&forUnmarshaling->subgroupSizeControl, sizeof(VkBool32));
12364     vkStream->read((VkBool32*)&forUnmarshaling->computeFullSubgroups, sizeof(VkBool32));
12365 }
12366 
marshal_VkPhysicalDeviceSubgroupSizeControlProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlProperties * forMarshaling)12367 void marshal_VkPhysicalDeviceSubgroupSizeControlProperties(
12368     VulkanStream* vkStream, VkStructureType rootType,
12369     const VkPhysicalDeviceSubgroupSizeControlProperties* forMarshaling) {
12370     (void)rootType;
12371     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12372     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12373         rootType = forMarshaling->sType;
12374     }
12375     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12376     vkStream->write((uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
12377     vkStream->write((uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
12378     vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
12379     vkStream->write((VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages,
12380                     sizeof(VkShaderStageFlags));
12381 }
12382 
unmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupSizeControlProperties * forUnmarshaling)12383 void unmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
12384     VulkanStream* vkStream, VkStructureType rootType,
12385     VkPhysicalDeviceSubgroupSizeControlProperties* forUnmarshaling) {
12386     (void)rootType;
12387     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12388     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12389         rootType = forUnmarshaling->sType;
12390     }
12391     size_t pNext_size;
12392     pNext_size = vkStream->getBe32();
12393     forUnmarshaling->pNext = nullptr;
12394     if (pNext_size) {
12395         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12396         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12397         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12398         vkStream->alloc((void**)&forUnmarshaling->pNext,
12399                         goldfish_vk_extension_struct_size_with_stream_features(
12400                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12401         *(VkStructureType*)forUnmarshaling->pNext = extType;
12402         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12403     }
12404     vkStream->read((uint32_t*)&forUnmarshaling->minSubgroupSize, sizeof(uint32_t));
12405     vkStream->read((uint32_t*)&forUnmarshaling->maxSubgroupSize, sizeof(uint32_t));
12406     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
12407     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->requiredSubgroupSizeStages,
12408                    sizeof(VkShaderStageFlags));
12409 }
12410 
marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * forMarshaling)12411 void marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
12412     VulkanStream* vkStream, VkStructureType rootType,
12413     const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* forMarshaling) {
12414     (void)rootType;
12415     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12416     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12417         rootType = forMarshaling->sType;
12418     }
12419     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12420     vkStream->write((uint32_t*)&forMarshaling->requiredSubgroupSize, sizeof(uint32_t));
12421 }
12422 
unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * forUnmarshaling)12423 void unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
12424     VulkanStream* vkStream, VkStructureType rootType,
12425     VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* forUnmarshaling) {
12426     (void)rootType;
12427     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12428     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12429         rootType = forUnmarshaling->sType;
12430     }
12431     size_t pNext_size;
12432     pNext_size = vkStream->getBe32();
12433     forUnmarshaling->pNext = nullptr;
12434     if (pNext_size) {
12435         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12436         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12437         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12438         vkStream->alloc((void**)&forUnmarshaling->pNext,
12439                         goldfish_vk_extension_struct_size_with_stream_features(
12440                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12441         *(VkStructureType*)forUnmarshaling->pNext = extType;
12442         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12443     }
12444     vkStream->read((uint32_t*)&forUnmarshaling->requiredSubgroupSize, sizeof(uint32_t));
12445 }
12446 
marshal_VkPhysicalDeviceInlineUniformBlockFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockFeatures * forMarshaling)12447 void marshal_VkPhysicalDeviceInlineUniformBlockFeatures(
12448     VulkanStream* vkStream, VkStructureType rootType,
12449     const VkPhysicalDeviceInlineUniformBlockFeatures* forMarshaling) {
12450     (void)rootType;
12451     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12452     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12453         rootType = forMarshaling->sType;
12454     }
12455     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12456     vkStream->write((VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
12457     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
12458                     sizeof(VkBool32));
12459 }
12460 
unmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceInlineUniformBlockFeatures * forUnmarshaling)12461 void unmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
12462     VulkanStream* vkStream, VkStructureType rootType,
12463     VkPhysicalDeviceInlineUniformBlockFeatures* forUnmarshaling) {
12464     (void)rootType;
12465     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12466     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12467         rootType = forUnmarshaling->sType;
12468     }
12469     size_t pNext_size;
12470     pNext_size = vkStream->getBe32();
12471     forUnmarshaling->pNext = nullptr;
12472     if (pNext_size) {
12473         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12474         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12475         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12476         vkStream->alloc((void**)&forUnmarshaling->pNext,
12477                         goldfish_vk_extension_struct_size_with_stream_features(
12478                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12479         *(VkStructureType*)forUnmarshaling->pNext = extType;
12480         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12481     }
12482     vkStream->read((VkBool32*)&forUnmarshaling->inlineUniformBlock, sizeof(VkBool32));
12483     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
12484                    sizeof(VkBool32));
12485 }
12486 
marshal_VkPhysicalDeviceInlineUniformBlockProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockProperties * forMarshaling)12487 void marshal_VkPhysicalDeviceInlineUniformBlockProperties(
12488     VulkanStream* vkStream, VkStructureType rootType,
12489     const VkPhysicalDeviceInlineUniformBlockProperties* forMarshaling) {
12490     (void)rootType;
12491     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12492     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12493         rootType = forMarshaling->sType;
12494     }
12495     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12496     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
12497     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks,
12498                     sizeof(uint32_t));
12499     vkStream->write(
12500         (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
12501         sizeof(uint32_t));
12502     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks,
12503                     sizeof(uint32_t));
12504     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
12505                     sizeof(uint32_t));
12506 }
12507 
unmarshal_VkPhysicalDeviceInlineUniformBlockProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceInlineUniformBlockProperties * forUnmarshaling)12508 void unmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
12509     VulkanStream* vkStream, VkStructureType rootType,
12510     VkPhysicalDeviceInlineUniformBlockProperties* forUnmarshaling) {
12511     (void)rootType;
12512     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12513     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12514         rootType = forUnmarshaling->sType;
12515     }
12516     size_t pNext_size;
12517     pNext_size = vkStream->getBe32();
12518     forUnmarshaling->pNext = nullptr;
12519     if (pNext_size) {
12520         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12521         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12522         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12523         vkStream->alloc((void**)&forUnmarshaling->pNext,
12524                         goldfish_vk_extension_struct_size_with_stream_features(
12525                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12526         *(VkStructureType*)forUnmarshaling->pNext = extType;
12527         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12528     }
12529     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
12530     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInlineUniformBlocks,
12531                    sizeof(uint32_t));
12532     vkStream->read(
12533         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
12534         sizeof(uint32_t));
12535     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInlineUniformBlocks,
12536                    sizeof(uint32_t));
12537     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
12538                    sizeof(uint32_t));
12539 }
12540 
marshal_VkWriteDescriptorSetInlineUniformBlock(VulkanStream * vkStream,VkStructureType rootType,const VkWriteDescriptorSetInlineUniformBlock * forMarshaling)12541 void marshal_VkWriteDescriptorSetInlineUniformBlock(
12542     VulkanStream* vkStream, VkStructureType rootType,
12543     const VkWriteDescriptorSetInlineUniformBlock* forMarshaling) {
12544     (void)rootType;
12545     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12546     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12547         rootType = forMarshaling->sType;
12548     }
12549     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12550     vkStream->write((uint32_t*)&forMarshaling->dataSize, sizeof(uint32_t));
12551     vkStream->write((const void*)forMarshaling->pData,
12552                     forMarshaling->dataSize * sizeof(const uint8_t));
12553 }
12554 
unmarshal_VkWriteDescriptorSetInlineUniformBlock(VulkanStream * vkStream,VkStructureType rootType,VkWriteDescriptorSetInlineUniformBlock * forUnmarshaling)12555 void unmarshal_VkWriteDescriptorSetInlineUniformBlock(
12556     VulkanStream* vkStream, VkStructureType rootType,
12557     VkWriteDescriptorSetInlineUniformBlock* forUnmarshaling) {
12558     (void)rootType;
12559     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12560     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12561         rootType = forUnmarshaling->sType;
12562     }
12563     size_t pNext_size;
12564     pNext_size = vkStream->getBe32();
12565     forUnmarshaling->pNext = nullptr;
12566     if (pNext_size) {
12567         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12568         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12569         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12570         vkStream->alloc((void**)&forUnmarshaling->pNext,
12571                         goldfish_vk_extension_struct_size_with_stream_features(
12572                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12573         *(VkStructureType*)forUnmarshaling->pNext = extType;
12574         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12575     }
12576     vkStream->read((uint32_t*)&forUnmarshaling->dataSize, sizeof(uint32_t));
12577     vkStream->alloc((void**)&forUnmarshaling->pData,
12578                     forUnmarshaling->dataSize * sizeof(const uint8_t));
12579     vkStream->read((void*)forUnmarshaling->pData,
12580                    forUnmarshaling->dataSize * sizeof(const uint8_t));
12581 }
12582 
marshal_VkDescriptorPoolInlineUniformBlockCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorPoolInlineUniformBlockCreateInfo * forMarshaling)12583 void marshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
12584     VulkanStream* vkStream, VkStructureType rootType,
12585     const VkDescriptorPoolInlineUniformBlockCreateInfo* forMarshaling) {
12586     (void)rootType;
12587     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12588     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12589         rootType = forMarshaling->sType;
12590     }
12591     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12592     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
12593 }
12594 
unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorPoolInlineUniformBlockCreateInfo * forUnmarshaling)12595 void unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
12596     VulkanStream* vkStream, VkStructureType rootType,
12597     VkDescriptorPoolInlineUniformBlockCreateInfo* forUnmarshaling) {
12598     (void)rootType;
12599     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12600     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12601         rootType = forUnmarshaling->sType;
12602     }
12603     size_t pNext_size;
12604     pNext_size = vkStream->getBe32();
12605     forUnmarshaling->pNext = nullptr;
12606     if (pNext_size) {
12607         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12608         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12609         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12610         vkStream->alloc((void**)&forUnmarshaling->pNext,
12611                         goldfish_vk_extension_struct_size_with_stream_features(
12612                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12613         *(VkStructureType*)forUnmarshaling->pNext = extType;
12614         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12615     }
12616     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
12617 }
12618 
marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * forMarshaling)12619 void marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
12620     VulkanStream* vkStream, VkStructureType rootType,
12621     const VkPhysicalDeviceTextureCompressionASTCHDRFeatures* forMarshaling) {
12622     (void)rootType;
12623     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12624     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12625         rootType = forMarshaling->sType;
12626     }
12627     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12628     vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
12629 }
12630 
unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTextureCompressionASTCHDRFeatures * forUnmarshaling)12631 void unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
12632     VulkanStream* vkStream, VkStructureType rootType,
12633     VkPhysicalDeviceTextureCompressionASTCHDRFeatures* forUnmarshaling) {
12634     (void)rootType;
12635     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12636     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12637         rootType = forUnmarshaling->sType;
12638     }
12639     size_t pNext_size;
12640     pNext_size = vkStream->getBe32();
12641     forUnmarshaling->pNext = nullptr;
12642     if (pNext_size) {
12643         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12644         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12645         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12646         vkStream->alloc((void**)&forUnmarshaling->pNext,
12647                         goldfish_vk_extension_struct_size_with_stream_features(
12648                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12649         *(VkStructureType*)forUnmarshaling->pNext = extType;
12650         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12651     }
12652     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
12653 }
12654 
marshal_VkRenderingAttachmentInfo(VulkanStream * vkStream,VkStructureType rootType,const VkRenderingAttachmentInfo * forMarshaling)12655 void marshal_VkRenderingAttachmentInfo(VulkanStream* vkStream, VkStructureType rootType,
12656                                        const VkRenderingAttachmentInfo* forMarshaling) {
12657     (void)rootType;
12658     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12659     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12660         rootType = forMarshaling->sType;
12661     }
12662     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12663     uint64_t cgen_var_0;
12664     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
12665                                                           1);
12666     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12667     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
12668     vkStream->write((VkResolveModeFlagBits*)&forMarshaling->resolveMode,
12669                     sizeof(VkResolveModeFlagBits));
12670     uint64_t cgen_var_1;
12671     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->resolveImageView,
12672                                                           &cgen_var_1, 1);
12673     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
12674     vkStream->write((VkImageLayout*)&forMarshaling->resolveImageLayout, sizeof(VkImageLayout));
12675     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
12676     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
12677     marshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue));
12678 }
12679 
unmarshal_VkRenderingAttachmentInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderingAttachmentInfo * forUnmarshaling)12680 void unmarshal_VkRenderingAttachmentInfo(VulkanStream* vkStream, VkStructureType rootType,
12681                                          VkRenderingAttachmentInfo* forUnmarshaling) {
12682     (void)rootType;
12683     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12684     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12685         rootType = forUnmarshaling->sType;
12686     }
12687     size_t pNext_size;
12688     pNext_size = vkStream->getBe32();
12689     forUnmarshaling->pNext = nullptr;
12690     if (pNext_size) {
12691         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12692         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12693         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12694         vkStream->alloc((void**)&forUnmarshaling->pNext,
12695                         goldfish_vk_extension_struct_size_with_stream_features(
12696                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12697         *(VkStructureType*)forUnmarshaling->pNext = extType;
12698         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12699     }
12700     uint64_t cgen_var_0;
12701     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12702     vkStream->handleMapping()->mapHandles_u64_VkImageView(
12703         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
12704     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
12705     vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->resolveMode,
12706                    sizeof(VkResolveModeFlagBits));
12707     uint64_t cgen_var_1;
12708     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12709     vkStream->handleMapping()->mapHandles_u64_VkImageView(
12710         &cgen_var_1, (VkImageView*)&forUnmarshaling->resolveImageView, 1);
12711     vkStream->read((VkImageLayout*)&forUnmarshaling->resolveImageLayout, sizeof(VkImageLayout));
12712     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
12713     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
12714     unmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forUnmarshaling->clearValue));
12715 }
12716 
marshal_VkRenderingInfo(VulkanStream * vkStream,VkStructureType rootType,const VkRenderingInfo * forMarshaling)12717 void marshal_VkRenderingInfo(VulkanStream* vkStream, VkStructureType rootType,
12718                              const VkRenderingInfo* forMarshaling) {
12719     (void)rootType;
12720     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12721     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12722         rootType = forMarshaling->sType;
12723     }
12724     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12725     vkStream->write((VkRenderingFlags*)&forMarshaling->flags, sizeof(VkRenderingFlags));
12726     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea));
12727     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
12728     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
12729     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
12730     if (forMarshaling) {
12731         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
12732             marshal_VkRenderingAttachmentInfo(
12733                 vkStream, rootType,
12734                 (const VkRenderingAttachmentInfo*)(forMarshaling->pColorAttachments + i));
12735         }
12736     }
12737     // WARNING PTR CHECK
12738     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthAttachment;
12739     vkStream->putBe64(cgen_var_0);
12740     if (forMarshaling->pDepthAttachment) {
12741         marshal_VkRenderingAttachmentInfo(
12742             vkStream, rootType,
12743             (const VkRenderingAttachmentInfo*)(forMarshaling->pDepthAttachment));
12744     }
12745     // WARNING PTR CHECK
12746     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pStencilAttachment;
12747     vkStream->putBe64(cgen_var_1);
12748     if (forMarshaling->pStencilAttachment) {
12749         marshal_VkRenderingAttachmentInfo(
12750             vkStream, rootType,
12751             (const VkRenderingAttachmentInfo*)(forMarshaling->pStencilAttachment));
12752     }
12753 }
12754 
unmarshal_VkRenderingInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderingInfo * forUnmarshaling)12755 void unmarshal_VkRenderingInfo(VulkanStream* vkStream, VkStructureType rootType,
12756                                VkRenderingInfo* forUnmarshaling) {
12757     (void)rootType;
12758     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12759     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12760         rootType = forUnmarshaling->sType;
12761     }
12762     size_t pNext_size;
12763     pNext_size = vkStream->getBe32();
12764     forUnmarshaling->pNext = nullptr;
12765     if (pNext_size) {
12766         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12767         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12768         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12769         vkStream->alloc((void**)&forUnmarshaling->pNext,
12770                         goldfish_vk_extension_struct_size_with_stream_features(
12771                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12772         *(VkStructureType*)forUnmarshaling->pNext = extType;
12773         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12774     }
12775     vkStream->read((VkRenderingFlags*)&forUnmarshaling->flags, sizeof(VkRenderingFlags));
12776     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea));
12777     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
12778     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
12779     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
12780     vkStream->alloc(
12781         (void**)&forUnmarshaling->pColorAttachments,
12782         forUnmarshaling->colorAttachmentCount * sizeof(const VkRenderingAttachmentInfo));
12783     if (forUnmarshaling) {
12784         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
12785             unmarshal_VkRenderingAttachmentInfo(
12786                 vkStream, rootType,
12787                 (VkRenderingAttachmentInfo*)(forUnmarshaling->pColorAttachments + i));
12788         }
12789     }
12790     // WARNING PTR CHECK
12791     forUnmarshaling->pDepthAttachment =
12792         (const VkRenderingAttachmentInfo*)(uintptr_t)vkStream->getBe64();
12793     if (forUnmarshaling->pDepthAttachment) {
12794         vkStream->alloc((void**)&forUnmarshaling->pDepthAttachment,
12795                         sizeof(const VkRenderingAttachmentInfo));
12796         unmarshal_VkRenderingAttachmentInfo(
12797             vkStream, rootType, (VkRenderingAttachmentInfo*)(forUnmarshaling->pDepthAttachment));
12798     }
12799     // WARNING PTR CHECK
12800     forUnmarshaling->pStencilAttachment =
12801         (const VkRenderingAttachmentInfo*)(uintptr_t)vkStream->getBe64();
12802     if (forUnmarshaling->pStencilAttachment) {
12803         vkStream->alloc((void**)&forUnmarshaling->pStencilAttachment,
12804                         sizeof(const VkRenderingAttachmentInfo));
12805         unmarshal_VkRenderingAttachmentInfo(
12806             vkStream, rootType, (VkRenderingAttachmentInfo*)(forUnmarshaling->pStencilAttachment));
12807     }
12808 }
12809 
marshal_VkPipelineRenderingCreateInfo(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRenderingCreateInfo * forMarshaling)12810 void marshal_VkPipelineRenderingCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
12811                                            const VkPipelineRenderingCreateInfo* forMarshaling) {
12812     (void)rootType;
12813     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12814     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12815         rootType = forMarshaling->sType;
12816     }
12817     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12818     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
12819     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
12820     // WARNING PTR CHECK
12821     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentFormats;
12822     vkStream->putBe64(cgen_var_0);
12823     if (forMarshaling->pColorAttachmentFormats) {
12824         vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats,
12825                         forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
12826     }
12827     vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
12828     vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
12829 }
12830 
unmarshal_VkPipelineRenderingCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRenderingCreateInfo * forUnmarshaling)12831 void unmarshal_VkPipelineRenderingCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
12832                                              VkPipelineRenderingCreateInfo* forUnmarshaling) {
12833     (void)rootType;
12834     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12835     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12836         rootType = forUnmarshaling->sType;
12837     }
12838     size_t pNext_size;
12839     pNext_size = vkStream->getBe32();
12840     forUnmarshaling->pNext = nullptr;
12841     if (pNext_size) {
12842         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12843         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12844         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12845         vkStream->alloc((void**)&forUnmarshaling->pNext,
12846                         goldfish_vk_extension_struct_size_with_stream_features(
12847                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12848         *(VkStructureType*)forUnmarshaling->pNext = extType;
12849         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12850     }
12851     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
12852     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
12853     // WARNING PTR CHECK
12854     forUnmarshaling->pColorAttachmentFormats = (const VkFormat*)(uintptr_t)vkStream->getBe64();
12855     if (forUnmarshaling->pColorAttachmentFormats) {
12856         vkStream->alloc((void**)&forUnmarshaling->pColorAttachmentFormats,
12857                         forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
12858         vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats,
12859                        forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
12860     }
12861     vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
12862     vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
12863 }
12864 
marshal_VkPhysicalDeviceDynamicRenderingFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDynamicRenderingFeatures * forMarshaling)12865 void marshal_VkPhysicalDeviceDynamicRenderingFeatures(
12866     VulkanStream* vkStream, VkStructureType rootType,
12867     const VkPhysicalDeviceDynamicRenderingFeatures* forMarshaling) {
12868     (void)rootType;
12869     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12870     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12871         rootType = forMarshaling->sType;
12872     }
12873     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12874     vkStream->write((VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
12875 }
12876 
unmarshal_VkPhysicalDeviceDynamicRenderingFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDynamicRenderingFeatures * forUnmarshaling)12877 void unmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
12878     VulkanStream* vkStream, VkStructureType rootType,
12879     VkPhysicalDeviceDynamicRenderingFeatures* forUnmarshaling) {
12880     (void)rootType;
12881     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12882     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12883         rootType = forUnmarshaling->sType;
12884     }
12885     size_t pNext_size;
12886     pNext_size = vkStream->getBe32();
12887     forUnmarshaling->pNext = nullptr;
12888     if (pNext_size) {
12889         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12890         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12891         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12892         vkStream->alloc((void**)&forUnmarshaling->pNext,
12893                         goldfish_vk_extension_struct_size_with_stream_features(
12894                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12895         *(VkStructureType*)forUnmarshaling->pNext = extType;
12896         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12897     }
12898     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRendering, sizeof(VkBool32));
12899 }
12900 
marshal_VkCommandBufferInheritanceRenderingInfo(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceRenderingInfo * forMarshaling)12901 void marshal_VkCommandBufferInheritanceRenderingInfo(
12902     VulkanStream* vkStream, VkStructureType rootType,
12903     const VkCommandBufferInheritanceRenderingInfo* forMarshaling) {
12904     (void)rootType;
12905     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12906     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12907         rootType = forMarshaling->sType;
12908     }
12909     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12910     vkStream->write((VkRenderingFlags*)&forMarshaling->flags, sizeof(VkRenderingFlags));
12911     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
12912     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
12913     vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats,
12914                     forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
12915     vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
12916     vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
12917     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
12918                     sizeof(VkSampleCountFlagBits));
12919 }
12920 
unmarshal_VkCommandBufferInheritanceRenderingInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferInheritanceRenderingInfo * forUnmarshaling)12921 void unmarshal_VkCommandBufferInheritanceRenderingInfo(
12922     VulkanStream* vkStream, VkStructureType rootType,
12923     VkCommandBufferInheritanceRenderingInfo* forUnmarshaling) {
12924     (void)rootType;
12925     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12926     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12927         rootType = forUnmarshaling->sType;
12928     }
12929     size_t pNext_size;
12930     pNext_size = vkStream->getBe32();
12931     forUnmarshaling->pNext = nullptr;
12932     if (pNext_size) {
12933         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12934         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12935         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12936         vkStream->alloc((void**)&forUnmarshaling->pNext,
12937                         goldfish_vk_extension_struct_size_with_stream_features(
12938                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12939         *(VkStructureType*)forUnmarshaling->pNext = extType;
12940         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12941     }
12942     vkStream->read((VkRenderingFlags*)&forUnmarshaling->flags, sizeof(VkRenderingFlags));
12943     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
12944     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
12945     vkStream->alloc((void**)&forUnmarshaling->pColorAttachmentFormats,
12946                     forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
12947     vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats,
12948                    forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
12949     vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
12950     vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
12951     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples,
12952                    sizeof(VkSampleCountFlagBits));
12953 }
12954 
marshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductFeatures * forMarshaling)12955 void marshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
12956     VulkanStream* vkStream, VkStructureType rootType,
12957     const VkPhysicalDeviceShaderIntegerDotProductFeatures* forMarshaling) {
12958     (void)rootType;
12959     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12960     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12961         rootType = forMarshaling->sType;
12962     }
12963     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12964     vkStream->write((VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
12965 }
12966 
unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderIntegerDotProductFeatures * forUnmarshaling)12967 void unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
12968     VulkanStream* vkStream, VkStructureType rootType,
12969     VkPhysicalDeviceShaderIntegerDotProductFeatures* forUnmarshaling) {
12970     (void)rootType;
12971     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12972     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12973         rootType = forUnmarshaling->sType;
12974     }
12975     size_t pNext_size;
12976     pNext_size = vkStream->getBe32();
12977     forUnmarshaling->pNext = nullptr;
12978     if (pNext_size) {
12979         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12980         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
12981         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12982         vkStream->alloc((void**)&forUnmarshaling->pNext,
12983                         goldfish_vk_extension_struct_size_with_stream_features(
12984                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12985         *(VkStructureType*)forUnmarshaling->pNext = extType;
12986         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12987     }
12988     vkStream->read((VkBool32*)&forUnmarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
12989 }
12990 
marshal_VkPhysicalDeviceShaderIntegerDotProductProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductProperties * forMarshaling)12991 void marshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
12992     VulkanStream* vkStream, VkStructureType rootType,
12993     const VkPhysicalDeviceShaderIntegerDotProductProperties* forMarshaling) {
12994     (void)rootType;
12995     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12996     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12997         rootType = forMarshaling->sType;
12998     }
12999     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13000     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated,
13001                     sizeof(VkBool32));
13002     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated,
13003                     sizeof(VkBool32));
13004     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated,
13005                     sizeof(VkBool32));
13006     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
13007                     sizeof(VkBool32));
13008     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
13009                     sizeof(VkBool32));
13010     vkStream->write(
13011         (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
13012         sizeof(VkBool32));
13013     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated,
13014                     sizeof(VkBool32));
13015     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated,
13016                     sizeof(VkBool32));
13017     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated,
13018                     sizeof(VkBool32));
13019     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated,
13020                     sizeof(VkBool32));
13021     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated,
13022                     sizeof(VkBool32));
13023     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated,
13024                     sizeof(VkBool32));
13025     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated,
13026                     sizeof(VkBool32));
13027     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated,
13028                     sizeof(VkBool32));
13029     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated,
13030                     sizeof(VkBool32));
13031     vkStream->write(
13032         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
13033         sizeof(VkBool32));
13034     vkStream->write(
13035         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
13036         sizeof(VkBool32));
13037     vkStream->write((VkBool32*)&forMarshaling
13038                         ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
13039                     sizeof(VkBool32));
13040     vkStream->write((VkBool32*)&forMarshaling
13041                         ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
13042                     sizeof(VkBool32));
13043     vkStream->write((VkBool32*)&forMarshaling
13044                         ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
13045                     sizeof(VkBool32));
13046     vkStream->write(
13047         (VkBool32*)&forMarshaling
13048             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
13049         sizeof(VkBool32));
13050     vkStream->write(
13051         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
13052         sizeof(VkBool32));
13053     vkStream->write(
13054         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
13055         sizeof(VkBool32));
13056     vkStream->write((VkBool32*)&forMarshaling
13057                         ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
13058                     sizeof(VkBool32));
13059     vkStream->write(
13060         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
13061         sizeof(VkBool32));
13062     vkStream->write(
13063         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
13064         sizeof(VkBool32));
13065     vkStream->write((VkBool32*)&forMarshaling
13066                         ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
13067                     sizeof(VkBool32));
13068     vkStream->write(
13069         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
13070         sizeof(VkBool32));
13071     vkStream->write(
13072         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
13073         sizeof(VkBool32));
13074     vkStream->write((VkBool32*)&forMarshaling
13075                         ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
13076                     sizeof(VkBool32));
13077 }
13078 
unmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderIntegerDotProductProperties * forUnmarshaling)13079 void unmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
13080     VulkanStream* vkStream, VkStructureType rootType,
13081     VkPhysicalDeviceShaderIntegerDotProductProperties* forUnmarshaling) {
13082     (void)rootType;
13083     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13084     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13085         rootType = forUnmarshaling->sType;
13086     }
13087     size_t pNext_size;
13088     pNext_size = vkStream->getBe32();
13089     forUnmarshaling->pNext = nullptr;
13090     if (pNext_size) {
13091         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13092         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13093         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13094         vkStream->alloc((void**)&forUnmarshaling->pNext,
13095                         goldfish_vk_extension_struct_size_with_stream_features(
13096                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13097         *(VkStructureType*)forUnmarshaling->pNext = extType;
13098         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13099     }
13100     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitUnsignedAccelerated,
13101                    sizeof(VkBool32));
13102     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitSignedAccelerated,
13103                    sizeof(VkBool32));
13104     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitMixedSignednessAccelerated,
13105                    sizeof(VkBool32));
13106     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
13107                    sizeof(VkBool32));
13108     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
13109                    sizeof(VkBool32));
13110     vkStream->read(
13111         (VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
13112         sizeof(VkBool32));
13113     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitUnsignedAccelerated,
13114                    sizeof(VkBool32));
13115     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitSignedAccelerated,
13116                    sizeof(VkBool32));
13117     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitMixedSignednessAccelerated,
13118                    sizeof(VkBool32));
13119     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitUnsignedAccelerated,
13120                    sizeof(VkBool32));
13121     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitSignedAccelerated,
13122                    sizeof(VkBool32));
13123     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitMixedSignednessAccelerated,
13124                    sizeof(VkBool32));
13125     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitUnsignedAccelerated,
13126                    sizeof(VkBool32));
13127     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitSignedAccelerated,
13128                    sizeof(VkBool32));
13129     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitMixedSignednessAccelerated,
13130                    sizeof(VkBool32));
13131     vkStream->read(
13132         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
13133         sizeof(VkBool32));
13134     vkStream->read(
13135         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
13136         sizeof(VkBool32));
13137     vkStream->read((VkBool32*)&forUnmarshaling
13138                        ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
13139                    sizeof(VkBool32));
13140     vkStream->read((VkBool32*)&forUnmarshaling
13141                        ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
13142                    sizeof(VkBool32));
13143     vkStream->read((VkBool32*)&forUnmarshaling
13144                        ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
13145                    sizeof(VkBool32));
13146     vkStream->read(
13147         (VkBool32*)&forUnmarshaling
13148             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
13149         sizeof(VkBool32));
13150     vkStream->read((VkBool32*)&forUnmarshaling
13151                        ->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
13152                    sizeof(VkBool32));
13153     vkStream->read(
13154         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
13155         sizeof(VkBool32));
13156     vkStream->read((VkBool32*)&forUnmarshaling
13157                        ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
13158                    sizeof(VkBool32));
13159     vkStream->read((VkBool32*)&forUnmarshaling
13160                        ->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
13161                    sizeof(VkBool32));
13162     vkStream->read(
13163         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
13164         sizeof(VkBool32));
13165     vkStream->read((VkBool32*)&forUnmarshaling
13166                        ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
13167                    sizeof(VkBool32));
13168     vkStream->read((VkBool32*)&forUnmarshaling
13169                        ->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
13170                    sizeof(VkBool32));
13171     vkStream->read(
13172         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
13173         sizeof(VkBool32));
13174     vkStream->read((VkBool32*)&forUnmarshaling
13175                        ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
13176                    sizeof(VkBool32));
13177 }
13178 
marshal_VkPhysicalDeviceTexelBufferAlignmentProperties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentProperties * forMarshaling)13179 void marshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
13180     VulkanStream* vkStream, VkStructureType rootType,
13181     const VkPhysicalDeviceTexelBufferAlignmentProperties* forMarshaling) {
13182     (void)rootType;
13183     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13184     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13185         rootType = forMarshaling->sType;
13186     }
13187     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13188     vkStream->write((VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes,
13189                     sizeof(VkDeviceSize));
13190     vkStream->write((VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment,
13191                     sizeof(VkBool32));
13192     vkStream->write((VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes,
13193                     sizeof(VkDeviceSize));
13194     vkStream->write((VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
13195                     sizeof(VkBool32));
13196 }
13197 
unmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTexelBufferAlignmentProperties * forUnmarshaling)13198 void unmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
13199     VulkanStream* vkStream, VkStructureType rootType,
13200     VkPhysicalDeviceTexelBufferAlignmentProperties* forUnmarshaling) {
13201     (void)rootType;
13202     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13203     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13204         rootType = forUnmarshaling->sType;
13205     }
13206     size_t pNext_size;
13207     pNext_size = vkStream->getBe32();
13208     forUnmarshaling->pNext = nullptr;
13209     if (pNext_size) {
13210         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13211         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13212         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13213         vkStream->alloc((void**)&forUnmarshaling->pNext,
13214                         goldfish_vk_extension_struct_size_with_stream_features(
13215                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13216         *(VkStructureType*)forUnmarshaling->pNext = extType;
13217         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13218     }
13219     vkStream->read((VkDeviceSize*)&forUnmarshaling->storageTexelBufferOffsetAlignmentBytes,
13220                    sizeof(VkDeviceSize));
13221     vkStream->read((VkBool32*)&forUnmarshaling->storageTexelBufferOffsetSingleTexelAlignment,
13222                    sizeof(VkBool32));
13223     vkStream->read((VkDeviceSize*)&forUnmarshaling->uniformTexelBufferOffsetAlignmentBytes,
13224                    sizeof(VkDeviceSize));
13225     vkStream->read((VkBool32*)&forUnmarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
13226                    sizeof(VkBool32));
13227 }
13228 
marshal_VkFormatProperties3(VulkanStream * vkStream,VkStructureType rootType,const VkFormatProperties3 * forMarshaling)13229 void marshal_VkFormatProperties3(VulkanStream* vkStream, VkStructureType rootType,
13230                                  const VkFormatProperties3* forMarshaling) {
13231     (void)rootType;
13232     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13233     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13234         rootType = forMarshaling->sType;
13235     }
13236     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13237     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->linearTilingFeatures,
13238                     sizeof(VkFormatFeatureFlags2));
13239     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->optimalTilingFeatures,
13240                     sizeof(VkFormatFeatureFlags2));
13241     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->bufferFeatures,
13242                     sizeof(VkFormatFeatureFlags2));
13243 }
13244 
unmarshal_VkFormatProperties3(VulkanStream * vkStream,VkStructureType rootType,VkFormatProperties3 * forUnmarshaling)13245 void unmarshal_VkFormatProperties3(VulkanStream* vkStream, VkStructureType rootType,
13246                                    VkFormatProperties3* forUnmarshaling) {
13247     (void)rootType;
13248     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13249     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13250         rootType = forUnmarshaling->sType;
13251     }
13252     size_t pNext_size;
13253     pNext_size = vkStream->getBe32();
13254     forUnmarshaling->pNext = nullptr;
13255     if (pNext_size) {
13256         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13257         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13258         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13259         vkStream->alloc((void**)&forUnmarshaling->pNext,
13260                         goldfish_vk_extension_struct_size_with_stream_features(
13261                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13262         *(VkStructureType*)forUnmarshaling->pNext = extType;
13263         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13264     }
13265     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->linearTilingFeatures,
13266                    sizeof(VkFormatFeatureFlags2));
13267     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->optimalTilingFeatures,
13268                    sizeof(VkFormatFeatureFlags2));
13269     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->bufferFeatures,
13270                    sizeof(VkFormatFeatureFlags2));
13271 }
13272 
marshal_VkPhysicalDeviceMaintenance4Features(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Features * forMarshaling)13273 void marshal_VkPhysicalDeviceMaintenance4Features(
13274     VulkanStream* vkStream, VkStructureType rootType,
13275     const VkPhysicalDeviceMaintenance4Features* forMarshaling) {
13276     (void)rootType;
13277     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13278     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13279         rootType = forMarshaling->sType;
13280     }
13281     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13282     vkStream->write((VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
13283 }
13284 
unmarshal_VkPhysicalDeviceMaintenance4Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance4Features * forUnmarshaling)13285 void unmarshal_VkPhysicalDeviceMaintenance4Features(
13286     VulkanStream* vkStream, VkStructureType rootType,
13287     VkPhysicalDeviceMaintenance4Features* forUnmarshaling) {
13288     (void)rootType;
13289     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13290     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13291         rootType = forUnmarshaling->sType;
13292     }
13293     size_t pNext_size;
13294     pNext_size = vkStream->getBe32();
13295     forUnmarshaling->pNext = nullptr;
13296     if (pNext_size) {
13297         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13298         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13299         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13300         vkStream->alloc((void**)&forUnmarshaling->pNext,
13301                         goldfish_vk_extension_struct_size_with_stream_features(
13302                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13303         *(VkStructureType*)forUnmarshaling->pNext = extType;
13304         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13305     }
13306     vkStream->read((VkBool32*)&forUnmarshaling->maintenance4, sizeof(VkBool32));
13307 }
13308 
marshal_VkPhysicalDeviceMaintenance4Properties(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Properties * forMarshaling)13309 void marshal_VkPhysicalDeviceMaintenance4Properties(
13310     VulkanStream* vkStream, VkStructureType rootType,
13311     const VkPhysicalDeviceMaintenance4Properties* forMarshaling) {
13312     (void)rootType;
13313     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13314     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13315         rootType = forMarshaling->sType;
13316     }
13317     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13318     vkStream->write((VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
13319 }
13320 
unmarshal_VkPhysicalDeviceMaintenance4Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance4Properties * forUnmarshaling)13321 void unmarshal_VkPhysicalDeviceMaintenance4Properties(
13322     VulkanStream* vkStream, VkStructureType rootType,
13323     VkPhysicalDeviceMaintenance4Properties* forUnmarshaling) {
13324     (void)rootType;
13325     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13326     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13327         rootType = forUnmarshaling->sType;
13328     }
13329     size_t pNext_size;
13330     pNext_size = vkStream->getBe32();
13331     forUnmarshaling->pNext = nullptr;
13332     if (pNext_size) {
13333         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13334         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13335         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13336         vkStream->alloc((void**)&forUnmarshaling->pNext,
13337                         goldfish_vk_extension_struct_size_with_stream_features(
13338                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13339         *(VkStructureType*)forUnmarshaling->pNext = extType;
13340         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13341     }
13342     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxBufferSize, sizeof(VkDeviceSize));
13343 }
13344 
marshal_VkDeviceBufferMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceBufferMemoryRequirements * forMarshaling)13345 void marshal_VkDeviceBufferMemoryRequirements(
13346     VulkanStream* vkStream, VkStructureType rootType,
13347     const VkDeviceBufferMemoryRequirements* forMarshaling) {
13348     (void)rootType;
13349     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13350     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13351         rootType = forMarshaling->sType;
13352     }
13353     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13354     marshal_VkBufferCreateInfo(vkStream, rootType,
13355                                (const VkBufferCreateInfo*)(forMarshaling->pCreateInfo));
13356 }
13357 
unmarshal_VkDeviceBufferMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkDeviceBufferMemoryRequirements * forUnmarshaling)13358 void unmarshal_VkDeviceBufferMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
13359                                                 VkDeviceBufferMemoryRequirements* forUnmarshaling) {
13360     (void)rootType;
13361     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13362     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13363         rootType = forUnmarshaling->sType;
13364     }
13365     size_t pNext_size;
13366     pNext_size = vkStream->getBe32();
13367     forUnmarshaling->pNext = nullptr;
13368     if (pNext_size) {
13369         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13370         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13371         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13372         vkStream->alloc((void**)&forUnmarshaling->pNext,
13373                         goldfish_vk_extension_struct_size_with_stream_features(
13374                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13375         *(VkStructureType*)forUnmarshaling->pNext = extType;
13376         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13377     }
13378     vkStream->alloc((void**)&forUnmarshaling->pCreateInfo, sizeof(const VkBufferCreateInfo));
13379     unmarshal_VkBufferCreateInfo(vkStream, rootType,
13380                                  (VkBufferCreateInfo*)(forUnmarshaling->pCreateInfo));
13381 }
13382 
marshal_VkDeviceImageMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceImageMemoryRequirements * forMarshaling)13383 void marshal_VkDeviceImageMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
13384                                              const VkDeviceImageMemoryRequirements* forMarshaling) {
13385     (void)rootType;
13386     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13387     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13388         rootType = forMarshaling->sType;
13389     }
13390     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13391     marshal_VkImageCreateInfo(vkStream, rootType,
13392                               (const VkImageCreateInfo*)(forMarshaling->pCreateInfo));
13393     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect,
13394                     sizeof(VkImageAspectFlagBits));
13395 }
13396 
unmarshal_VkDeviceImageMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkDeviceImageMemoryRequirements * forUnmarshaling)13397 void unmarshal_VkDeviceImageMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
13398                                                VkDeviceImageMemoryRequirements* forUnmarshaling) {
13399     (void)rootType;
13400     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13401     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13402         rootType = forUnmarshaling->sType;
13403     }
13404     size_t pNext_size;
13405     pNext_size = vkStream->getBe32();
13406     forUnmarshaling->pNext = nullptr;
13407     if (pNext_size) {
13408         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13409         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13410         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13411         vkStream->alloc((void**)&forUnmarshaling->pNext,
13412                         goldfish_vk_extension_struct_size_with_stream_features(
13413                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13414         *(VkStructureType*)forUnmarshaling->pNext = extType;
13415         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13416     }
13417     vkStream->alloc((void**)&forUnmarshaling->pCreateInfo, sizeof(const VkImageCreateInfo));
13418     unmarshal_VkImageCreateInfo(vkStream, rootType,
13419                                 (VkImageCreateInfo*)(forUnmarshaling->pCreateInfo));
13420     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect,
13421                    sizeof(VkImageAspectFlagBits));
13422 }
13423 
13424 #endif
13425 #ifdef VK_KHR_surface
marshal_VkSurfaceCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceCapabilitiesKHR * forMarshaling)13426 void marshal_VkSurfaceCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
13427                                       const VkSurfaceCapabilitiesKHR* forMarshaling) {
13428     (void)rootType;
13429     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
13430     vkStream->write((uint32_t*)&forMarshaling->maxImageCount, sizeof(uint32_t));
13431     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->currentExtent));
13432     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minImageExtent));
13433     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxImageExtent));
13434     vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
13435     vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms,
13436                     sizeof(VkSurfaceTransformFlagsKHR));
13437     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->currentTransform,
13438                     sizeof(VkSurfaceTransformFlagBitsKHR));
13439     vkStream->write((VkCompositeAlphaFlagsKHR*)&forMarshaling->supportedCompositeAlpha,
13440                     sizeof(VkCompositeAlphaFlagsKHR));
13441     vkStream->write((VkImageUsageFlags*)&forMarshaling->supportedUsageFlags,
13442                     sizeof(VkImageUsageFlags));
13443 }
13444 
unmarshal_VkSurfaceCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceCapabilitiesKHR * forUnmarshaling)13445 void unmarshal_VkSurfaceCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
13446                                         VkSurfaceCapabilitiesKHR* forUnmarshaling) {
13447     (void)rootType;
13448     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
13449     vkStream->read((uint32_t*)&forUnmarshaling->maxImageCount, sizeof(uint32_t));
13450     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->currentExtent));
13451     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minImageExtent));
13452     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxImageExtent));
13453     vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
13454     vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms,
13455                    sizeof(VkSurfaceTransformFlagsKHR));
13456     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->currentTransform,
13457                    sizeof(VkSurfaceTransformFlagBitsKHR));
13458     vkStream->read((VkCompositeAlphaFlagsKHR*)&forUnmarshaling->supportedCompositeAlpha,
13459                    sizeof(VkCompositeAlphaFlagsKHR));
13460     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->supportedUsageFlags,
13461                    sizeof(VkImageUsageFlags));
13462 }
13463 
marshal_VkSurfaceFormatKHR(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceFormatKHR * forMarshaling)13464 void marshal_VkSurfaceFormatKHR(VulkanStream* vkStream, VkStructureType rootType,
13465                                 const VkSurfaceFormatKHR* forMarshaling) {
13466     (void)rootType;
13467     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
13468     vkStream->write((VkColorSpaceKHR*)&forMarshaling->colorSpace, sizeof(VkColorSpaceKHR));
13469 }
13470 
unmarshal_VkSurfaceFormatKHR(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceFormatKHR * forUnmarshaling)13471 void unmarshal_VkSurfaceFormatKHR(VulkanStream* vkStream, VkStructureType rootType,
13472                                   VkSurfaceFormatKHR* forUnmarshaling) {
13473     (void)rootType;
13474     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
13475     vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->colorSpace, sizeof(VkColorSpaceKHR));
13476 }
13477 
13478 #endif
13479 #ifdef VK_KHR_swapchain
marshal_VkSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainCreateInfoKHR * forMarshaling)13480 void marshal_VkSwapchainCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13481                                       const VkSwapchainCreateInfoKHR* forMarshaling) {
13482     (void)rootType;
13483     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13484     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13485         rootType = forMarshaling->sType;
13486     }
13487     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13488     vkStream->write((VkSwapchainCreateFlagsKHR*)&forMarshaling->flags,
13489                     sizeof(VkSwapchainCreateFlagsKHR));
13490     uint64_t cgen_var_0;
13491     vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_0, 1);
13492     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
13493     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
13494     vkStream->write((VkFormat*)&forMarshaling->imageFormat, sizeof(VkFormat));
13495     vkStream->write((VkColorSpaceKHR*)&forMarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
13496     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->imageExtent));
13497     vkStream->write((uint32_t*)&forMarshaling->imageArrayLayers, sizeof(uint32_t));
13498     vkStream->write((VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
13499     vkStream->write((VkSharingMode*)&forMarshaling->imageSharingMode, sizeof(VkSharingMode));
13500     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
13501     // WARNING PTR CHECK
13502     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
13503     vkStream->putBe64(cgen_var_1);
13504     if (forMarshaling->pQueueFamilyIndices) {
13505         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
13506                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
13507     }
13508     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->preTransform,
13509                     sizeof(VkSurfaceTransformFlagBitsKHR));
13510     vkStream->write((VkCompositeAlphaFlagBitsKHR*)&forMarshaling->compositeAlpha,
13511                     sizeof(VkCompositeAlphaFlagBitsKHR));
13512     vkStream->write((VkPresentModeKHR*)&forMarshaling->presentMode, sizeof(VkPresentModeKHR));
13513     vkStream->write((VkBool32*)&forMarshaling->clipped, sizeof(VkBool32));
13514     uint64_t cgen_var_2;
13515     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->oldSwapchain,
13516                                                              &cgen_var_2, 1);
13517     vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
13518 }
13519 
unmarshal_VkSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainCreateInfoKHR * forUnmarshaling)13520 void unmarshal_VkSwapchainCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13521                                         VkSwapchainCreateInfoKHR* forUnmarshaling) {
13522     (void)rootType;
13523     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13524     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13525         rootType = forUnmarshaling->sType;
13526     }
13527     size_t pNext_size;
13528     pNext_size = vkStream->getBe32();
13529     forUnmarshaling->pNext = nullptr;
13530     if (pNext_size) {
13531         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13532         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13533         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13534         vkStream->alloc((void**)&forUnmarshaling->pNext,
13535                         goldfish_vk_extension_struct_size_with_stream_features(
13536                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13537         *(VkStructureType*)forUnmarshaling->pNext = extType;
13538         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13539     }
13540     vkStream->read((VkSwapchainCreateFlagsKHR*)&forUnmarshaling->flags,
13541                    sizeof(VkSwapchainCreateFlagsKHR));
13542     uint64_t cgen_var_0;
13543     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
13544     vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(
13545         &cgen_var_0, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
13546     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
13547     vkStream->read((VkFormat*)&forUnmarshaling->imageFormat, sizeof(VkFormat));
13548     vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
13549     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->imageExtent));
13550     vkStream->read((uint32_t*)&forUnmarshaling->imageArrayLayers, sizeof(uint32_t));
13551     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->imageUsage, sizeof(VkImageUsageFlags));
13552     vkStream->read((VkSharingMode*)&forUnmarshaling->imageSharingMode, sizeof(VkSharingMode));
13553     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
13554     // WARNING PTR CHECK
13555     forUnmarshaling->pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
13556     if (forUnmarshaling->pQueueFamilyIndices) {
13557         vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
13558                         forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
13559         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
13560                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
13561     }
13562     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->preTransform,
13563                    sizeof(VkSurfaceTransformFlagBitsKHR));
13564     vkStream->read((VkCompositeAlphaFlagBitsKHR*)&forUnmarshaling->compositeAlpha,
13565                    sizeof(VkCompositeAlphaFlagBitsKHR));
13566     vkStream->read((VkPresentModeKHR*)&forUnmarshaling->presentMode, sizeof(VkPresentModeKHR));
13567     vkStream->read((VkBool32*)&forUnmarshaling->clipped, sizeof(VkBool32));
13568     uint64_t cgen_var_2;
13569     vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
13570     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
13571         &cgen_var_2, (VkSwapchainKHR*)&forUnmarshaling->oldSwapchain, 1);
13572 }
13573 
marshal_VkPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPresentInfoKHR * forMarshaling)13574 void marshal_VkPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13575                               const VkPresentInfoKHR* forMarshaling) {
13576     (void)rootType;
13577     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13578     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13579         rootType = forMarshaling->sType;
13580     }
13581     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13582     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
13583     if (forMarshaling->waitSemaphoreCount) {
13584         uint64_t* cgen_var_0;
13585         vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
13586         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
13587             forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
13588         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
13589     }
13590     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
13591     if (forMarshaling->swapchainCount) {
13592         uint64_t* cgen_var_1;
13593         vkStream->alloc((void**)&cgen_var_1, forMarshaling->swapchainCount * 8);
13594         vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(
13595             forMarshaling->pSwapchains, cgen_var_1, forMarshaling->swapchainCount);
13596         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->swapchainCount * 8);
13597     }
13598     vkStream->write((const uint32_t*)forMarshaling->pImageIndices,
13599                     forMarshaling->swapchainCount * sizeof(const uint32_t));
13600     // WARNING PTR CHECK
13601     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pResults;
13602     vkStream->putBe64(cgen_var_2);
13603     if (forMarshaling->pResults) {
13604         vkStream->write((VkResult*)forMarshaling->pResults,
13605                         forMarshaling->swapchainCount * sizeof(VkResult));
13606     }
13607 }
13608 
unmarshal_VkPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPresentInfoKHR * forUnmarshaling)13609 void unmarshal_VkPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13610                                 VkPresentInfoKHR* forUnmarshaling) {
13611     (void)rootType;
13612     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13613     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13614         rootType = forUnmarshaling->sType;
13615     }
13616     size_t pNext_size;
13617     pNext_size = vkStream->getBe32();
13618     forUnmarshaling->pNext = nullptr;
13619     if (pNext_size) {
13620         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13621         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13622         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13623         vkStream->alloc((void**)&forUnmarshaling->pNext,
13624                         goldfish_vk_extension_struct_size_with_stream_features(
13625                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13626         *(VkStructureType*)forUnmarshaling->pNext = extType;
13627         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13628     }
13629     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
13630     vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphores,
13631                     forUnmarshaling->waitSemaphoreCount * sizeof(const VkSemaphore));
13632     if (forUnmarshaling->waitSemaphoreCount) {
13633         uint64_t* cgen_var_0;
13634         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
13635         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
13636         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
13637             cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores,
13638             forUnmarshaling->waitSemaphoreCount);
13639     }
13640     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
13641     vkStream->alloc((void**)&forUnmarshaling->pSwapchains,
13642                     forUnmarshaling->swapchainCount * sizeof(const VkSwapchainKHR));
13643     if (forUnmarshaling->swapchainCount) {
13644         uint64_t* cgen_var_1;
13645         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->swapchainCount * 8);
13646         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->swapchainCount * 8);
13647         vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
13648             cgen_var_1, (VkSwapchainKHR*)forUnmarshaling->pSwapchains,
13649             forUnmarshaling->swapchainCount);
13650     }
13651     vkStream->alloc((void**)&forUnmarshaling->pImageIndices,
13652                     forUnmarshaling->swapchainCount * sizeof(const uint32_t));
13653     vkStream->read((uint32_t*)forUnmarshaling->pImageIndices,
13654                    forUnmarshaling->swapchainCount * sizeof(const uint32_t));
13655     // WARNING PTR CHECK
13656     forUnmarshaling->pResults = (VkResult*)(uintptr_t)vkStream->getBe64();
13657     if (forUnmarshaling->pResults) {
13658         vkStream->alloc((void**)&forUnmarshaling->pResults,
13659                         forUnmarshaling->swapchainCount * sizeof(VkResult));
13660         vkStream->read((VkResult*)forUnmarshaling->pResults,
13661                        forUnmarshaling->swapchainCount * sizeof(VkResult));
13662     }
13663 }
13664 
marshal_VkImageSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkImageSwapchainCreateInfoKHR * forMarshaling)13665 void marshal_VkImageSwapchainCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13666                                            const VkImageSwapchainCreateInfoKHR* forMarshaling) {
13667     (void)rootType;
13668     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13669     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13670         rootType = forMarshaling->sType;
13671     }
13672     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13673     uint64_t cgen_var_0;
13674     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
13675                                                              1);
13676     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
13677 }
13678 
unmarshal_VkImageSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImageSwapchainCreateInfoKHR * forUnmarshaling)13679 void unmarshal_VkImageSwapchainCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13680                                              VkImageSwapchainCreateInfoKHR* forUnmarshaling) {
13681     (void)rootType;
13682     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13683     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13684         rootType = forUnmarshaling->sType;
13685     }
13686     size_t pNext_size;
13687     pNext_size = vkStream->getBe32();
13688     forUnmarshaling->pNext = nullptr;
13689     if (pNext_size) {
13690         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13691         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13692         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13693         vkStream->alloc((void**)&forUnmarshaling->pNext,
13694                         goldfish_vk_extension_struct_size_with_stream_features(
13695                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13696         *(VkStructureType*)forUnmarshaling->pNext = extType;
13697         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13698     }
13699     uint64_t cgen_var_0;
13700     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
13701     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
13702         &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
13703 }
13704 
marshal_VkBindImageMemorySwapchainInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkBindImageMemorySwapchainInfoKHR * forMarshaling)13705 void marshal_VkBindImageMemorySwapchainInfoKHR(
13706     VulkanStream* vkStream, VkStructureType rootType,
13707     const VkBindImageMemorySwapchainInfoKHR* forMarshaling) {
13708     (void)rootType;
13709     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13710     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13711         rootType = forMarshaling->sType;
13712     }
13713     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13714     uint64_t cgen_var_0;
13715     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
13716                                                              1);
13717     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
13718     vkStream->write((uint32_t*)&forMarshaling->imageIndex, sizeof(uint32_t));
13719 }
13720 
unmarshal_VkBindImageMemorySwapchainInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkBindImageMemorySwapchainInfoKHR * forUnmarshaling)13721 void unmarshal_VkBindImageMemorySwapchainInfoKHR(
13722     VulkanStream* vkStream, VkStructureType rootType,
13723     VkBindImageMemorySwapchainInfoKHR* forUnmarshaling) {
13724     (void)rootType;
13725     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13726     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13727         rootType = forUnmarshaling->sType;
13728     }
13729     size_t pNext_size;
13730     pNext_size = vkStream->getBe32();
13731     forUnmarshaling->pNext = nullptr;
13732     if (pNext_size) {
13733         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13734         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13735         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13736         vkStream->alloc((void**)&forUnmarshaling->pNext,
13737                         goldfish_vk_extension_struct_size_with_stream_features(
13738                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13739         *(VkStructureType*)forUnmarshaling->pNext = extType;
13740         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13741     }
13742     uint64_t cgen_var_0;
13743     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
13744     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
13745         &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
13746     vkStream->read((uint32_t*)&forUnmarshaling->imageIndex, sizeof(uint32_t));
13747 }
13748 
marshal_VkAcquireNextImageInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAcquireNextImageInfoKHR * forMarshaling)13749 void marshal_VkAcquireNextImageInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13750                                        const VkAcquireNextImageInfoKHR* forMarshaling) {
13751     (void)rootType;
13752     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13753     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13754         rootType = forMarshaling->sType;
13755     }
13756     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13757     uint64_t cgen_var_0;
13758     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
13759                                                              1);
13760     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
13761     vkStream->write((uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
13762     uint64_t cgen_var_1;
13763     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_1,
13764                                                           1);
13765     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
13766     uint64_t cgen_var_2;
13767     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_2, 1);
13768     vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
13769     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
13770 }
13771 
unmarshal_VkAcquireNextImageInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAcquireNextImageInfoKHR * forUnmarshaling)13772 void unmarshal_VkAcquireNextImageInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13773                                          VkAcquireNextImageInfoKHR* forUnmarshaling) {
13774     (void)rootType;
13775     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13776     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13777         rootType = forUnmarshaling->sType;
13778     }
13779     size_t pNext_size;
13780     pNext_size = vkStream->getBe32();
13781     forUnmarshaling->pNext = nullptr;
13782     if (pNext_size) {
13783         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13784         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13785         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13786         vkStream->alloc((void**)&forUnmarshaling->pNext,
13787                         goldfish_vk_extension_struct_size_with_stream_features(
13788                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13789         *(VkStructureType*)forUnmarshaling->pNext = extType;
13790         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13791     }
13792     uint64_t cgen_var_0;
13793     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
13794     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
13795         &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
13796     vkStream->read((uint64_t*)&forUnmarshaling->timeout, sizeof(uint64_t));
13797     uint64_t cgen_var_1;
13798     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
13799     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
13800         &cgen_var_1, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
13801     uint64_t cgen_var_2;
13802     vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
13803     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_2,
13804                                                       (VkFence*)&forUnmarshaling->fence, 1);
13805     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
13806 }
13807 
marshal_VkDeviceGroupPresentCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupPresentCapabilitiesKHR * forMarshaling)13808 void marshal_VkDeviceGroupPresentCapabilitiesKHR(
13809     VulkanStream* vkStream, VkStructureType rootType,
13810     const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling) {
13811     (void)rootType;
13812     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13813     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13814         rootType = forMarshaling->sType;
13815     }
13816     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13817     vkStream->write((uint32_t*)forMarshaling->presentMask,
13818                     VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
13819     vkStream->write((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes,
13820                     sizeof(VkDeviceGroupPresentModeFlagsKHR));
13821 }
13822 
unmarshal_VkDeviceGroupPresentCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupPresentCapabilitiesKHR * forUnmarshaling)13823 void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
13824     VulkanStream* vkStream, VkStructureType rootType,
13825     VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling) {
13826     (void)rootType;
13827     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13828     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13829         rootType = forUnmarshaling->sType;
13830     }
13831     size_t pNext_size;
13832     pNext_size = vkStream->getBe32();
13833     forUnmarshaling->pNext = nullptr;
13834     if (pNext_size) {
13835         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13836         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13837         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13838         vkStream->alloc((void**)&forUnmarshaling->pNext,
13839                         goldfish_vk_extension_struct_size_with_stream_features(
13840                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13841         *(VkStructureType*)forUnmarshaling->pNext = extType;
13842         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13843     }
13844     vkStream->read((uint32_t*)forUnmarshaling->presentMask,
13845                    VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
13846     vkStream->read((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes,
13847                    sizeof(VkDeviceGroupPresentModeFlagsKHR));
13848 }
13849 
marshal_VkDeviceGroupPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupPresentInfoKHR * forMarshaling)13850 void marshal_VkDeviceGroupPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13851                                          const VkDeviceGroupPresentInfoKHR* forMarshaling) {
13852     (void)rootType;
13853     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13854     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13855         rootType = forMarshaling->sType;
13856     }
13857     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13858     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
13859     vkStream->write((const uint32_t*)forMarshaling->pDeviceMasks,
13860                     forMarshaling->swapchainCount * sizeof(const uint32_t));
13861     vkStream->write((VkDeviceGroupPresentModeFlagBitsKHR*)&forMarshaling->mode,
13862                     sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
13863 }
13864 
unmarshal_VkDeviceGroupPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupPresentInfoKHR * forUnmarshaling)13865 void unmarshal_VkDeviceGroupPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13866                                            VkDeviceGroupPresentInfoKHR* forUnmarshaling) {
13867     (void)rootType;
13868     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13869     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13870         rootType = forUnmarshaling->sType;
13871     }
13872     size_t pNext_size;
13873     pNext_size = vkStream->getBe32();
13874     forUnmarshaling->pNext = nullptr;
13875     if (pNext_size) {
13876         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13877         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13878         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13879         vkStream->alloc((void**)&forUnmarshaling->pNext,
13880                         goldfish_vk_extension_struct_size_with_stream_features(
13881                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13882         *(VkStructureType*)forUnmarshaling->pNext = extType;
13883         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13884     }
13885     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
13886     vkStream->alloc((void**)&forUnmarshaling->pDeviceMasks,
13887                     forUnmarshaling->swapchainCount * sizeof(const uint32_t));
13888     vkStream->read((uint32_t*)forUnmarshaling->pDeviceMasks,
13889                    forUnmarshaling->swapchainCount * sizeof(const uint32_t));
13890     vkStream->read((VkDeviceGroupPresentModeFlagBitsKHR*)&forUnmarshaling->mode,
13891                    sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
13892 }
13893 
marshal_VkDeviceGroupSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceGroupSwapchainCreateInfoKHR * forMarshaling)13894 void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
13895     VulkanStream* vkStream, VkStructureType rootType,
13896     const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling) {
13897     (void)rootType;
13898     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13899     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13900         rootType = forMarshaling->sType;
13901     }
13902     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13903     vkStream->write((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes,
13904                     sizeof(VkDeviceGroupPresentModeFlagsKHR));
13905 }
13906 
unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupSwapchainCreateInfoKHR * forUnmarshaling)13907 void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
13908     VulkanStream* vkStream, VkStructureType rootType,
13909     VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling) {
13910     (void)rootType;
13911     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13912     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13913         rootType = forUnmarshaling->sType;
13914     }
13915     size_t pNext_size;
13916     pNext_size = vkStream->getBe32();
13917     forUnmarshaling->pNext = nullptr;
13918     if (pNext_size) {
13919         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13920         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13921         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13922         vkStream->alloc((void**)&forUnmarshaling->pNext,
13923                         goldfish_vk_extension_struct_size_with_stream_features(
13924                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13925         *(VkStructureType*)forUnmarshaling->pNext = extType;
13926         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13927     }
13928     vkStream->read((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes,
13929                    sizeof(VkDeviceGroupPresentModeFlagsKHR));
13930 }
13931 
13932 #endif
13933 #ifdef VK_KHR_display
marshal_VkDisplayModeParametersKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayModeParametersKHR * forMarshaling)13934 void marshal_VkDisplayModeParametersKHR(VulkanStream* vkStream, VkStructureType rootType,
13935                                         const VkDisplayModeParametersKHR* forMarshaling) {
13936     (void)rootType;
13937     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->visibleRegion));
13938     vkStream->write((uint32_t*)&forMarshaling->refreshRate, sizeof(uint32_t));
13939 }
13940 
unmarshal_VkDisplayModeParametersKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayModeParametersKHR * forUnmarshaling)13941 void unmarshal_VkDisplayModeParametersKHR(VulkanStream* vkStream, VkStructureType rootType,
13942                                           VkDisplayModeParametersKHR* forUnmarshaling) {
13943     (void)rootType;
13944     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->visibleRegion));
13945     vkStream->read((uint32_t*)&forUnmarshaling->refreshRate, sizeof(uint32_t));
13946 }
13947 
marshal_VkDisplayModeCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayModeCreateInfoKHR * forMarshaling)13948 void marshal_VkDisplayModeCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13949                                         const VkDisplayModeCreateInfoKHR* forMarshaling) {
13950     (void)rootType;
13951     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13952     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13953         rootType = forMarshaling->sType;
13954     }
13955     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13956     vkStream->write((VkDisplayModeCreateFlagsKHR*)&forMarshaling->flags,
13957                     sizeof(VkDisplayModeCreateFlagsKHR));
13958     marshal_VkDisplayModeParametersKHR(vkStream, rootType,
13959                                        (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
13960 }
13961 
unmarshal_VkDisplayModeCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayModeCreateInfoKHR * forUnmarshaling)13962 void unmarshal_VkDisplayModeCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
13963                                           VkDisplayModeCreateInfoKHR* forUnmarshaling) {
13964     (void)rootType;
13965     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13966     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13967         rootType = forUnmarshaling->sType;
13968     }
13969     size_t pNext_size;
13970     pNext_size = vkStream->getBe32();
13971     forUnmarshaling->pNext = nullptr;
13972     if (pNext_size) {
13973         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13974         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
13975         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13976         vkStream->alloc((void**)&forUnmarshaling->pNext,
13977                         goldfish_vk_extension_struct_size_with_stream_features(
13978                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13979         *(VkStructureType*)forUnmarshaling->pNext = extType;
13980         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13981     }
13982     vkStream->read((VkDisplayModeCreateFlagsKHR*)&forUnmarshaling->flags,
13983                    sizeof(VkDisplayModeCreateFlagsKHR));
13984     unmarshal_VkDisplayModeParametersKHR(
13985         vkStream, rootType, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
13986 }
13987 
marshal_VkDisplayModePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayModePropertiesKHR * forMarshaling)13988 void marshal_VkDisplayModePropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
13989                                         const VkDisplayModePropertiesKHR* forMarshaling) {
13990     (void)rootType;
13991     uint64_t cgen_var_0;
13992     vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode,
13993                                                                &cgen_var_0, 1);
13994     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
13995     marshal_VkDisplayModeParametersKHR(vkStream, rootType,
13996                                        (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
13997 }
13998 
unmarshal_VkDisplayModePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayModePropertiesKHR * forUnmarshaling)13999 void unmarshal_VkDisplayModePropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14000                                           VkDisplayModePropertiesKHR* forUnmarshaling) {
14001     (void)rootType;
14002     uint64_t cgen_var_0;
14003     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
14004     vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(
14005         &cgen_var_0, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
14006     unmarshal_VkDisplayModeParametersKHR(
14007         vkStream, rootType, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
14008 }
14009 
marshal_VkDisplayPlaneCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPlaneCapabilitiesKHR * forMarshaling)14010 void marshal_VkDisplayPlaneCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14011                                            const VkDisplayPlaneCapabilitiesKHR* forMarshaling) {
14012     (void)rootType;
14013     vkStream->write((VkDisplayPlaneAlphaFlagsKHR*)&forMarshaling->supportedAlpha,
14014                     sizeof(VkDisplayPlaneAlphaFlagsKHR));
14015     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->minSrcPosition));
14016     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->maxSrcPosition));
14017     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minSrcExtent));
14018     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxSrcExtent));
14019     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->minDstPosition));
14020     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->maxDstPosition));
14021     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minDstExtent));
14022     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxDstExtent));
14023 }
14024 
unmarshal_VkDisplayPlaneCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPlaneCapabilitiesKHR * forUnmarshaling)14025 void unmarshal_VkDisplayPlaneCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14026                                              VkDisplayPlaneCapabilitiesKHR* forUnmarshaling) {
14027     (void)rootType;
14028     vkStream->read((VkDisplayPlaneAlphaFlagsKHR*)&forUnmarshaling->supportedAlpha,
14029                    sizeof(VkDisplayPlaneAlphaFlagsKHR));
14030     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->minSrcPosition));
14031     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->maxSrcPosition));
14032     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minSrcExtent));
14033     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxSrcExtent));
14034     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->minDstPosition));
14035     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->maxDstPosition));
14036     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minDstExtent));
14037     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxDstExtent));
14038 }
14039 
marshal_VkDisplayPlanePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPlanePropertiesKHR * forMarshaling)14040 void marshal_VkDisplayPlanePropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14041                                          const VkDisplayPlanePropertiesKHR* forMarshaling) {
14042     (void)rootType;
14043     uint64_t cgen_var_0;
14044     vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->currentDisplay,
14045                                                            &cgen_var_0, 1);
14046     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
14047     vkStream->write((uint32_t*)&forMarshaling->currentStackIndex, sizeof(uint32_t));
14048 }
14049 
unmarshal_VkDisplayPlanePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPlanePropertiesKHR * forUnmarshaling)14050 void unmarshal_VkDisplayPlanePropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14051                                            VkDisplayPlanePropertiesKHR* forUnmarshaling) {
14052     (void)rootType;
14053     uint64_t cgen_var_0;
14054     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
14055     vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(
14056         &cgen_var_0, (VkDisplayKHR*)&forUnmarshaling->currentDisplay, 1);
14057     vkStream->read((uint32_t*)&forUnmarshaling->currentStackIndex, sizeof(uint32_t));
14058 }
14059 
marshal_VkDisplayPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPropertiesKHR * forMarshaling)14060 void marshal_VkDisplayPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14061                                     const VkDisplayPropertiesKHR* forMarshaling) {
14062     (void)rootType;
14063     uint64_t cgen_var_0;
14064     vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->display, &cgen_var_0, 1);
14065     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
14066     vkStream->putString(forMarshaling->displayName);
14067     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->physicalDimensions));
14068     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->physicalResolution));
14069     vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms,
14070                     sizeof(VkSurfaceTransformFlagsKHR));
14071     vkStream->write((VkBool32*)&forMarshaling->planeReorderPossible, sizeof(VkBool32));
14072     vkStream->write((VkBool32*)&forMarshaling->persistentContent, sizeof(VkBool32));
14073 }
14074 
unmarshal_VkDisplayPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPropertiesKHR * forUnmarshaling)14075 void unmarshal_VkDisplayPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14076                                       VkDisplayPropertiesKHR* forUnmarshaling) {
14077     (void)rootType;
14078     uint64_t cgen_var_0;
14079     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
14080     vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(
14081         &cgen_var_0, (VkDisplayKHR*)&forUnmarshaling->display, 1);
14082     vkStream->loadStringInPlace((char**)&forUnmarshaling->displayName);
14083     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->physicalDimensions));
14084     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->physicalResolution));
14085     vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms,
14086                    sizeof(VkSurfaceTransformFlagsKHR));
14087     vkStream->read((VkBool32*)&forUnmarshaling->planeReorderPossible, sizeof(VkBool32));
14088     vkStream->read((VkBool32*)&forUnmarshaling->persistentContent, sizeof(VkBool32));
14089 }
14090 
marshal_VkDisplaySurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplaySurfaceCreateInfoKHR * forMarshaling)14091 void marshal_VkDisplaySurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14092                                            const VkDisplaySurfaceCreateInfoKHR* forMarshaling) {
14093     (void)rootType;
14094     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14095     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14096         rootType = forMarshaling->sType;
14097     }
14098     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14099     vkStream->write((VkDisplaySurfaceCreateFlagsKHR*)&forMarshaling->flags,
14100                     sizeof(VkDisplaySurfaceCreateFlagsKHR));
14101     uint64_t cgen_var_0;
14102     vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode,
14103                                                                &cgen_var_0, 1);
14104     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
14105     vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
14106     vkStream->write((uint32_t*)&forMarshaling->planeStackIndex, sizeof(uint32_t));
14107     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform,
14108                     sizeof(VkSurfaceTransformFlagBitsKHR));
14109     vkStream->write((float*)&forMarshaling->globalAlpha, sizeof(float));
14110     vkStream->write((VkDisplayPlaneAlphaFlagBitsKHR*)&forMarshaling->alphaMode,
14111                     sizeof(VkDisplayPlaneAlphaFlagBitsKHR));
14112     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->imageExtent));
14113 }
14114 
unmarshal_VkDisplaySurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplaySurfaceCreateInfoKHR * forUnmarshaling)14115 void unmarshal_VkDisplaySurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14116                                              VkDisplaySurfaceCreateInfoKHR* forUnmarshaling) {
14117     (void)rootType;
14118     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14119     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14120         rootType = forUnmarshaling->sType;
14121     }
14122     size_t pNext_size;
14123     pNext_size = vkStream->getBe32();
14124     forUnmarshaling->pNext = nullptr;
14125     if (pNext_size) {
14126         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14127         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14128         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14129         vkStream->alloc((void**)&forUnmarshaling->pNext,
14130                         goldfish_vk_extension_struct_size_with_stream_features(
14131                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14132         *(VkStructureType*)forUnmarshaling->pNext = extType;
14133         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14134     }
14135     vkStream->read((VkDisplaySurfaceCreateFlagsKHR*)&forUnmarshaling->flags,
14136                    sizeof(VkDisplaySurfaceCreateFlagsKHR));
14137     uint64_t cgen_var_0;
14138     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
14139     vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(
14140         &cgen_var_0, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
14141     vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
14142     vkStream->read((uint32_t*)&forUnmarshaling->planeStackIndex, sizeof(uint32_t));
14143     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform,
14144                    sizeof(VkSurfaceTransformFlagBitsKHR));
14145     vkStream->read((float*)&forUnmarshaling->globalAlpha, sizeof(float));
14146     vkStream->read((VkDisplayPlaneAlphaFlagBitsKHR*)&forUnmarshaling->alphaMode,
14147                    sizeof(VkDisplayPlaneAlphaFlagBitsKHR));
14148     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->imageExtent));
14149 }
14150 
14151 #endif
14152 #ifdef VK_KHR_display_swapchain
marshal_VkDisplayPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPresentInfoKHR * forMarshaling)14153 void marshal_VkDisplayPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14154                                      const VkDisplayPresentInfoKHR* forMarshaling) {
14155     (void)rootType;
14156     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14157     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14158         rootType = forMarshaling->sType;
14159     }
14160     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14161     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->srcRect));
14162     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->dstRect));
14163     vkStream->write((VkBool32*)&forMarshaling->persistent, sizeof(VkBool32));
14164 }
14165 
unmarshal_VkDisplayPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPresentInfoKHR * forUnmarshaling)14166 void unmarshal_VkDisplayPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14167                                        VkDisplayPresentInfoKHR* forUnmarshaling) {
14168     (void)rootType;
14169     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14170     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14171         rootType = forUnmarshaling->sType;
14172     }
14173     size_t pNext_size;
14174     pNext_size = vkStream->getBe32();
14175     forUnmarshaling->pNext = nullptr;
14176     if (pNext_size) {
14177         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14178         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14179         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14180         vkStream->alloc((void**)&forUnmarshaling->pNext,
14181                         goldfish_vk_extension_struct_size_with_stream_features(
14182                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14183         *(VkStructureType*)forUnmarshaling->pNext = extType;
14184         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14185     }
14186     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->srcRect));
14187     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->dstRect));
14188     vkStream->read((VkBool32*)&forUnmarshaling->persistent, sizeof(VkBool32));
14189 }
14190 
14191 #endif
14192 #ifdef VK_KHR_xlib_surface
marshal_VkXlibSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkXlibSurfaceCreateInfoKHR * forMarshaling)14193 void marshal_VkXlibSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14194                                         const VkXlibSurfaceCreateInfoKHR* forMarshaling) {
14195     (void)rootType;
14196     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14197     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14198         rootType = forMarshaling->sType;
14199     }
14200     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14201     vkStream->write((VkXlibSurfaceCreateFlagsKHR*)&forMarshaling->flags,
14202                     sizeof(VkXlibSurfaceCreateFlagsKHR));
14203     // WARNING PTR CHECK
14204     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->dpy;
14205     vkStream->putBe64(cgen_var_0);
14206     if (forMarshaling->dpy) {
14207         vkStream->write((Display*)forMarshaling->dpy, sizeof(Display));
14208     }
14209     vkStream->write((Window*)&forMarshaling->window, sizeof(Window));
14210 }
14211 
unmarshal_VkXlibSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkXlibSurfaceCreateInfoKHR * forUnmarshaling)14212 void unmarshal_VkXlibSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14213                                           VkXlibSurfaceCreateInfoKHR* forUnmarshaling) {
14214     (void)rootType;
14215     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14216     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14217         rootType = forUnmarshaling->sType;
14218     }
14219     size_t pNext_size;
14220     pNext_size = vkStream->getBe32();
14221     forUnmarshaling->pNext = nullptr;
14222     if (pNext_size) {
14223         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14224         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14225         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14226         vkStream->alloc((void**)&forUnmarshaling->pNext,
14227                         goldfish_vk_extension_struct_size_with_stream_features(
14228                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14229         *(VkStructureType*)forUnmarshaling->pNext = extType;
14230         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14231     }
14232     vkStream->read((VkXlibSurfaceCreateFlagsKHR*)&forUnmarshaling->flags,
14233                    sizeof(VkXlibSurfaceCreateFlagsKHR));
14234     // WARNING PTR CHECK
14235     forUnmarshaling->dpy = (Display*)(uintptr_t)vkStream->getBe64();
14236     if (forUnmarshaling->dpy) {
14237         vkStream->alloc((void**)&forUnmarshaling->dpy, sizeof(Display));
14238         vkStream->read((Display*)forUnmarshaling->dpy, sizeof(Display));
14239     }
14240     vkStream->read((Window*)&forUnmarshaling->window, sizeof(Window));
14241 }
14242 
14243 #endif
14244 #ifdef VK_KHR_xcb_surface
marshal_VkXcbSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkXcbSurfaceCreateInfoKHR * forMarshaling)14245 void marshal_VkXcbSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14246                                        const VkXcbSurfaceCreateInfoKHR* forMarshaling) {
14247     (void)rootType;
14248 
14249     // This struct should never be marshaled / unmarshaled.
14250     __builtin_trap();
14251 }
14252 
unmarshal_VkXcbSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkXcbSurfaceCreateInfoKHR * forUnmarshaling)14253 void unmarshal_VkXcbSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14254                                          VkXcbSurfaceCreateInfoKHR* forUnmarshaling) {
14255     (void)rootType;
14256 
14257     // This struct should never be marshaled / unmarshaled.
14258     __builtin_trap();
14259 }
14260 
14261 #endif
14262 #ifdef VK_KHR_wayland_surface
marshal_VkWaylandSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkWaylandSurfaceCreateInfoKHR * forMarshaling)14263 void marshal_VkWaylandSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14264                                            const VkWaylandSurfaceCreateInfoKHR* forMarshaling) {
14265     (void)rootType;
14266     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14267     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14268         rootType = forMarshaling->sType;
14269     }
14270     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14271     vkStream->write((VkWaylandSurfaceCreateFlagsKHR*)&forMarshaling->flags,
14272                     sizeof(VkWaylandSurfaceCreateFlagsKHR));
14273     // WARNING PTR CHECK
14274     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->display;
14275     vkStream->putBe64(cgen_var_0);
14276     if (forMarshaling->display) {
14277         vkStream->write((wl_display*)forMarshaling->display, sizeof(wl_display));
14278     }
14279     // WARNING PTR CHECK
14280     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->surface;
14281     vkStream->putBe64(cgen_var_1);
14282     if (forMarshaling->surface) {
14283         vkStream->write((wl_surface*)forMarshaling->surface, sizeof(wl_surface));
14284     }
14285 }
14286 
unmarshal_VkWaylandSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkWaylandSurfaceCreateInfoKHR * forUnmarshaling)14287 void unmarshal_VkWaylandSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14288                                              VkWaylandSurfaceCreateInfoKHR* forUnmarshaling) {
14289     (void)rootType;
14290     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14291     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14292         rootType = forUnmarshaling->sType;
14293     }
14294     size_t pNext_size;
14295     pNext_size = vkStream->getBe32();
14296     forUnmarshaling->pNext = nullptr;
14297     if (pNext_size) {
14298         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14299         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14300         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14301         vkStream->alloc((void**)&forUnmarshaling->pNext,
14302                         goldfish_vk_extension_struct_size_with_stream_features(
14303                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14304         *(VkStructureType*)forUnmarshaling->pNext = extType;
14305         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14306     }
14307     vkStream->read((VkWaylandSurfaceCreateFlagsKHR*)&forUnmarshaling->flags,
14308                    sizeof(VkWaylandSurfaceCreateFlagsKHR));
14309     // WARNING PTR CHECK
14310     forUnmarshaling->display = (wl_display*)(uintptr_t)vkStream->getBe64();
14311     if (forUnmarshaling->display) {
14312         vkStream->alloc((void**)&forUnmarshaling->display, sizeof(wl_display));
14313         vkStream->read((wl_display*)forUnmarshaling->display, sizeof(wl_display));
14314     }
14315     // WARNING PTR CHECK
14316     forUnmarshaling->surface = (wl_surface*)(uintptr_t)vkStream->getBe64();
14317     if (forUnmarshaling->surface) {
14318         vkStream->alloc((void**)&forUnmarshaling->surface, sizeof(wl_surface));
14319         vkStream->read((wl_surface*)forUnmarshaling->surface, sizeof(wl_surface));
14320     }
14321 }
14322 
14323 #endif
14324 #ifdef VK_KHR_android_surface
marshal_VkAndroidSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAndroidSurfaceCreateInfoKHR * forMarshaling)14325 void marshal_VkAndroidSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14326                                            const VkAndroidSurfaceCreateInfoKHR* forMarshaling) {
14327     (void)rootType;
14328     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14329     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14330         rootType = forMarshaling->sType;
14331     }
14332     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14333     vkStream->write((VkAndroidSurfaceCreateFlagsKHR*)&forMarshaling->flags,
14334                     sizeof(VkAndroidSurfaceCreateFlagsKHR));
14335     // WARNING PTR CHECK
14336     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->window;
14337     vkStream->putBe64(cgen_var_0);
14338     if (forMarshaling->window) {
14339         vkStream->write((ANativeWindow*)forMarshaling->window, sizeof(ANativeWindow));
14340     }
14341 }
14342 
unmarshal_VkAndroidSurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAndroidSurfaceCreateInfoKHR * forUnmarshaling)14343 void unmarshal_VkAndroidSurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14344                                              VkAndroidSurfaceCreateInfoKHR* forUnmarshaling) {
14345     (void)rootType;
14346     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14347     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14348         rootType = forUnmarshaling->sType;
14349     }
14350     size_t pNext_size;
14351     pNext_size = vkStream->getBe32();
14352     forUnmarshaling->pNext = nullptr;
14353     if (pNext_size) {
14354         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14355         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14356         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14357         vkStream->alloc((void**)&forUnmarshaling->pNext,
14358                         goldfish_vk_extension_struct_size_with_stream_features(
14359                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14360         *(VkStructureType*)forUnmarshaling->pNext = extType;
14361         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14362     }
14363     vkStream->read((VkAndroidSurfaceCreateFlagsKHR*)&forUnmarshaling->flags,
14364                    sizeof(VkAndroidSurfaceCreateFlagsKHR));
14365     // WARNING PTR CHECK
14366     forUnmarshaling->window = (ANativeWindow*)(uintptr_t)vkStream->getBe64();
14367     if (forUnmarshaling->window) {
14368         vkStream->alloc((void**)&forUnmarshaling->window, sizeof(ANativeWindow));
14369         vkStream->read((ANativeWindow*)forUnmarshaling->window, sizeof(ANativeWindow));
14370     }
14371 }
14372 
14373 #endif
14374 #ifdef VK_KHR_win32_surface
marshal_VkWin32SurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkWin32SurfaceCreateInfoKHR * forMarshaling)14375 void marshal_VkWin32SurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14376                                          const VkWin32SurfaceCreateInfoKHR* forMarshaling) {
14377     (void)rootType;
14378     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14380         rootType = forMarshaling->sType;
14381     }
14382     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14383     vkStream->write((VkWin32SurfaceCreateFlagsKHR*)&forMarshaling->flags,
14384                     sizeof(VkWin32SurfaceCreateFlagsKHR));
14385     vkStream->write((HINSTANCE*)&forMarshaling->hinstance, sizeof(HINSTANCE));
14386     vkStream->write((HWND*)&forMarshaling->hwnd, sizeof(HWND));
14387 }
14388 
unmarshal_VkWin32SurfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkWin32SurfaceCreateInfoKHR * forUnmarshaling)14389 void unmarshal_VkWin32SurfaceCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14390                                            VkWin32SurfaceCreateInfoKHR* forUnmarshaling) {
14391     (void)rootType;
14392     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14393     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14394         rootType = forUnmarshaling->sType;
14395     }
14396     size_t pNext_size;
14397     pNext_size = vkStream->getBe32();
14398     forUnmarshaling->pNext = nullptr;
14399     if (pNext_size) {
14400         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14401         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14402         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14403         vkStream->alloc((void**)&forUnmarshaling->pNext,
14404                         goldfish_vk_extension_struct_size_with_stream_features(
14405                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14406         *(VkStructureType*)forUnmarshaling->pNext = extType;
14407         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14408     }
14409     vkStream->read((VkWin32SurfaceCreateFlagsKHR*)&forUnmarshaling->flags,
14410                    sizeof(VkWin32SurfaceCreateFlagsKHR));
14411     vkStream->read((HINSTANCE*)&forUnmarshaling->hinstance, sizeof(HINSTANCE));
14412     vkStream->read((HWND*)&forUnmarshaling->hwnd, sizeof(HWND));
14413 }
14414 
14415 #endif
14416 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
14417 #endif
14418 #ifdef VK_KHR_video_queue
marshal_VkQueueFamilyQueryResultStatusPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkQueueFamilyQueryResultStatusPropertiesKHR * forMarshaling)14419 void marshal_VkQueueFamilyQueryResultStatusPropertiesKHR(
14420     VulkanStream* vkStream, VkStructureType rootType,
14421     const VkQueueFamilyQueryResultStatusPropertiesKHR* forMarshaling) {
14422     (void)rootType;
14423     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14424     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14425         rootType = forMarshaling->sType;
14426     }
14427     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14428     vkStream->write((VkBool32*)&forMarshaling->queryResultStatusSupport, sizeof(VkBool32));
14429 }
14430 
unmarshal_VkQueueFamilyQueryResultStatusPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyQueryResultStatusPropertiesKHR * forUnmarshaling)14431 void unmarshal_VkQueueFamilyQueryResultStatusPropertiesKHR(
14432     VulkanStream* vkStream, VkStructureType rootType,
14433     VkQueueFamilyQueryResultStatusPropertiesKHR* forUnmarshaling) {
14434     (void)rootType;
14435     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14436     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14437         rootType = forUnmarshaling->sType;
14438     }
14439     size_t pNext_size;
14440     pNext_size = vkStream->getBe32();
14441     forUnmarshaling->pNext = nullptr;
14442     if (pNext_size) {
14443         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14444         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14445         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14446         vkStream->alloc((void**)&forUnmarshaling->pNext,
14447                         goldfish_vk_extension_struct_size_with_stream_features(
14448                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14449         *(VkStructureType*)forUnmarshaling->pNext = extType;
14450         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14451     }
14452     vkStream->read((VkBool32*)&forUnmarshaling->queryResultStatusSupport, sizeof(VkBool32));
14453 }
14454 
marshal_VkQueueFamilyVideoPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkQueueFamilyVideoPropertiesKHR * forMarshaling)14455 void marshal_VkQueueFamilyVideoPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14456                                              const VkQueueFamilyVideoPropertiesKHR* forMarshaling) {
14457     (void)rootType;
14458     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14459     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14460         rootType = forMarshaling->sType;
14461     }
14462     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14463     vkStream->write((VkVideoCodecOperationFlagsKHR*)&forMarshaling->videoCodecOperations,
14464                     sizeof(VkVideoCodecOperationFlagsKHR));
14465 }
14466 
unmarshal_VkQueueFamilyVideoPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyVideoPropertiesKHR * forUnmarshaling)14467 void unmarshal_VkQueueFamilyVideoPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14468                                                VkQueueFamilyVideoPropertiesKHR* forUnmarshaling) {
14469     (void)rootType;
14470     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14471     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14472         rootType = forUnmarshaling->sType;
14473     }
14474     size_t pNext_size;
14475     pNext_size = vkStream->getBe32();
14476     forUnmarshaling->pNext = nullptr;
14477     if (pNext_size) {
14478         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14479         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14480         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14481         vkStream->alloc((void**)&forUnmarshaling->pNext,
14482                         goldfish_vk_extension_struct_size_with_stream_features(
14483                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14484         *(VkStructureType*)forUnmarshaling->pNext = extType;
14485         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14486     }
14487     vkStream->read((VkVideoCodecOperationFlagsKHR*)&forUnmarshaling->videoCodecOperations,
14488                    sizeof(VkVideoCodecOperationFlagsKHR));
14489 }
14490 
marshal_VkVideoProfileInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoProfileInfoKHR * forMarshaling)14491 void marshal_VkVideoProfileInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14492                                    const VkVideoProfileInfoKHR* forMarshaling) {
14493     (void)rootType;
14494     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14495     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14496         rootType = forMarshaling->sType;
14497     }
14498     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14499     vkStream->write((VkVideoCodecOperationFlagBitsKHR*)&forMarshaling->videoCodecOperation,
14500                     sizeof(VkVideoCodecOperationFlagBitsKHR));
14501     vkStream->write((VkVideoChromaSubsamplingFlagsKHR*)&forMarshaling->chromaSubsampling,
14502                     sizeof(VkVideoChromaSubsamplingFlagsKHR));
14503     vkStream->write((VkVideoComponentBitDepthFlagsKHR*)&forMarshaling->lumaBitDepth,
14504                     sizeof(VkVideoComponentBitDepthFlagsKHR));
14505     vkStream->write((VkVideoComponentBitDepthFlagsKHR*)&forMarshaling->chromaBitDepth,
14506                     sizeof(VkVideoComponentBitDepthFlagsKHR));
14507 }
14508 
unmarshal_VkVideoProfileInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoProfileInfoKHR * forUnmarshaling)14509 void unmarshal_VkVideoProfileInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14510                                      VkVideoProfileInfoKHR* forUnmarshaling) {
14511     (void)rootType;
14512     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14513     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14514         rootType = forUnmarshaling->sType;
14515     }
14516     size_t pNext_size;
14517     pNext_size = vkStream->getBe32();
14518     forUnmarshaling->pNext = nullptr;
14519     if (pNext_size) {
14520         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14521         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14522         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14523         vkStream->alloc((void**)&forUnmarshaling->pNext,
14524                         goldfish_vk_extension_struct_size_with_stream_features(
14525                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14526         *(VkStructureType*)forUnmarshaling->pNext = extType;
14527         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14528     }
14529     vkStream->read((VkVideoCodecOperationFlagBitsKHR*)&forUnmarshaling->videoCodecOperation,
14530                    sizeof(VkVideoCodecOperationFlagBitsKHR));
14531     vkStream->read((VkVideoChromaSubsamplingFlagsKHR*)&forUnmarshaling->chromaSubsampling,
14532                    sizeof(VkVideoChromaSubsamplingFlagsKHR));
14533     vkStream->read((VkVideoComponentBitDepthFlagsKHR*)&forUnmarshaling->lumaBitDepth,
14534                    sizeof(VkVideoComponentBitDepthFlagsKHR));
14535     vkStream->read((VkVideoComponentBitDepthFlagsKHR*)&forUnmarshaling->chromaBitDepth,
14536                    sizeof(VkVideoComponentBitDepthFlagsKHR));
14537 }
14538 
marshal_VkVideoProfileListInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoProfileListInfoKHR * forMarshaling)14539 void marshal_VkVideoProfileListInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14540                                        const VkVideoProfileListInfoKHR* forMarshaling) {
14541     (void)rootType;
14542     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14543     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14544         rootType = forMarshaling->sType;
14545     }
14546     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14547     vkStream->write((uint32_t*)&forMarshaling->profileCount, sizeof(uint32_t));
14548     if (forMarshaling) {
14549         for (uint32_t i = 0; i < (uint32_t)forMarshaling->profileCount; ++i) {
14550             marshal_VkVideoProfileInfoKHR(
14551                 vkStream, rootType, (const VkVideoProfileInfoKHR*)(forMarshaling->pProfiles + i));
14552         }
14553     }
14554 }
14555 
unmarshal_VkVideoProfileListInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoProfileListInfoKHR * forUnmarshaling)14556 void unmarshal_VkVideoProfileListInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14557                                          VkVideoProfileListInfoKHR* forUnmarshaling) {
14558     (void)rootType;
14559     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14560     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14561         rootType = forUnmarshaling->sType;
14562     }
14563     size_t pNext_size;
14564     pNext_size = vkStream->getBe32();
14565     forUnmarshaling->pNext = nullptr;
14566     if (pNext_size) {
14567         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14568         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14569         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14570         vkStream->alloc((void**)&forUnmarshaling->pNext,
14571                         goldfish_vk_extension_struct_size_with_stream_features(
14572                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14573         *(VkStructureType*)forUnmarshaling->pNext = extType;
14574         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14575     }
14576     vkStream->read((uint32_t*)&forUnmarshaling->profileCount, sizeof(uint32_t));
14577     vkStream->alloc((void**)&forUnmarshaling->pProfiles,
14578                     forUnmarshaling->profileCount * sizeof(const VkVideoProfileInfoKHR));
14579     if (forUnmarshaling) {
14580         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->profileCount; ++i) {
14581             unmarshal_VkVideoProfileInfoKHR(
14582                 vkStream, rootType, (VkVideoProfileInfoKHR*)(forUnmarshaling->pProfiles + i));
14583         }
14584     }
14585 }
14586 
marshal_VkVideoCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoCapabilitiesKHR * forMarshaling)14587 void marshal_VkVideoCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14588                                     const VkVideoCapabilitiesKHR* forMarshaling) {
14589     (void)rootType;
14590     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14591     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14592         rootType = forMarshaling->sType;
14593     }
14594     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14595     vkStream->write((VkVideoCapabilityFlagsKHR*)&forMarshaling->flags,
14596                     sizeof(VkVideoCapabilityFlagsKHR));
14597     vkStream->write((VkDeviceSize*)&forMarshaling->minBitstreamBufferOffsetAlignment,
14598                     sizeof(VkDeviceSize));
14599     vkStream->write((VkDeviceSize*)&forMarshaling->minBitstreamBufferSizeAlignment,
14600                     sizeof(VkDeviceSize));
14601     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->pictureAccessGranularity));
14602     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minCodedExtent));
14603     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxCodedExtent));
14604     vkStream->write((uint32_t*)&forMarshaling->maxDpbSlots, sizeof(uint32_t));
14605     vkStream->write((uint32_t*)&forMarshaling->maxActiveReferencePictures, sizeof(uint32_t));
14606     marshal_VkExtensionProperties(vkStream, rootType,
14607                                   (VkExtensionProperties*)(&forMarshaling->stdHeaderVersion));
14608 }
14609 
unmarshal_VkVideoCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoCapabilitiesKHR * forUnmarshaling)14610 void unmarshal_VkVideoCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14611                                       VkVideoCapabilitiesKHR* forUnmarshaling) {
14612     (void)rootType;
14613     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14614     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14615         rootType = forUnmarshaling->sType;
14616     }
14617     size_t pNext_size;
14618     pNext_size = vkStream->getBe32();
14619     forUnmarshaling->pNext = nullptr;
14620     if (pNext_size) {
14621         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14622         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14623         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14624         vkStream->alloc((void**)&forUnmarshaling->pNext,
14625                         goldfish_vk_extension_struct_size_with_stream_features(
14626                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14627         *(VkStructureType*)forUnmarshaling->pNext = extType;
14628         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14629     }
14630     vkStream->read((VkVideoCapabilityFlagsKHR*)&forUnmarshaling->flags,
14631                    sizeof(VkVideoCapabilityFlagsKHR));
14632     vkStream->read((VkDeviceSize*)&forUnmarshaling->minBitstreamBufferOffsetAlignment,
14633                    sizeof(VkDeviceSize));
14634     vkStream->read((VkDeviceSize*)&forUnmarshaling->minBitstreamBufferSizeAlignment,
14635                    sizeof(VkDeviceSize));
14636     unmarshal_VkExtent2D(vkStream, rootType,
14637                          (VkExtent2D*)(&forUnmarshaling->pictureAccessGranularity));
14638     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minCodedExtent));
14639     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxCodedExtent));
14640     vkStream->read((uint32_t*)&forUnmarshaling->maxDpbSlots, sizeof(uint32_t));
14641     vkStream->read((uint32_t*)&forUnmarshaling->maxActiveReferencePictures, sizeof(uint32_t));
14642     unmarshal_VkExtensionProperties(vkStream, rootType,
14643                                     (VkExtensionProperties*)(&forUnmarshaling->stdHeaderVersion));
14644 }
14645 
marshal_VkPhysicalDeviceVideoFormatInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVideoFormatInfoKHR * forMarshaling)14646 void marshal_VkPhysicalDeviceVideoFormatInfoKHR(
14647     VulkanStream* vkStream, VkStructureType rootType,
14648     const VkPhysicalDeviceVideoFormatInfoKHR* forMarshaling) {
14649     (void)rootType;
14650     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14651     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14652         rootType = forMarshaling->sType;
14653     }
14654     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14655     vkStream->write((VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
14656 }
14657 
unmarshal_VkPhysicalDeviceVideoFormatInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVideoFormatInfoKHR * forUnmarshaling)14658 void unmarshal_VkPhysicalDeviceVideoFormatInfoKHR(
14659     VulkanStream* vkStream, VkStructureType rootType,
14660     VkPhysicalDeviceVideoFormatInfoKHR* forUnmarshaling) {
14661     (void)rootType;
14662     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14663     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14664         rootType = forUnmarshaling->sType;
14665     }
14666     size_t pNext_size;
14667     pNext_size = vkStream->getBe32();
14668     forUnmarshaling->pNext = nullptr;
14669     if (pNext_size) {
14670         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14671         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14672         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14673         vkStream->alloc((void**)&forUnmarshaling->pNext,
14674                         goldfish_vk_extension_struct_size_with_stream_features(
14675                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14676         *(VkStructureType*)forUnmarshaling->pNext = extType;
14677         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14678     }
14679     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->imageUsage, sizeof(VkImageUsageFlags));
14680 }
14681 
marshal_VkVideoFormatPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoFormatPropertiesKHR * forMarshaling)14682 void marshal_VkVideoFormatPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14683                                         const VkVideoFormatPropertiesKHR* forMarshaling) {
14684     (void)rootType;
14685     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14686     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14687         rootType = forMarshaling->sType;
14688     }
14689     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14690     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
14691     marshal_VkComponentMapping(vkStream, rootType,
14692                                (VkComponentMapping*)(&forMarshaling->componentMapping));
14693     vkStream->write((VkImageCreateFlags*)&forMarshaling->imageCreateFlags,
14694                     sizeof(VkImageCreateFlags));
14695     vkStream->write((VkImageType*)&forMarshaling->imageType, sizeof(VkImageType));
14696     vkStream->write((VkImageTiling*)&forMarshaling->imageTiling, sizeof(VkImageTiling));
14697     vkStream->write((VkImageUsageFlags*)&forMarshaling->imageUsageFlags, sizeof(VkImageUsageFlags));
14698 }
14699 
unmarshal_VkVideoFormatPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoFormatPropertiesKHR * forUnmarshaling)14700 void unmarshal_VkVideoFormatPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
14701                                           VkVideoFormatPropertiesKHR* forUnmarshaling) {
14702     (void)rootType;
14703     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14704     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14705         rootType = forUnmarshaling->sType;
14706     }
14707     size_t pNext_size;
14708     pNext_size = vkStream->getBe32();
14709     forUnmarshaling->pNext = nullptr;
14710     if (pNext_size) {
14711         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14712         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14713         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14714         vkStream->alloc((void**)&forUnmarshaling->pNext,
14715                         goldfish_vk_extension_struct_size_with_stream_features(
14716                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14717         *(VkStructureType*)forUnmarshaling->pNext = extType;
14718         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14719     }
14720     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
14721     unmarshal_VkComponentMapping(vkStream, rootType,
14722                                  (VkComponentMapping*)(&forUnmarshaling->componentMapping));
14723     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->imageCreateFlags,
14724                    sizeof(VkImageCreateFlags));
14725     vkStream->read((VkImageType*)&forUnmarshaling->imageType, sizeof(VkImageType));
14726     vkStream->read((VkImageTiling*)&forUnmarshaling->imageTiling, sizeof(VkImageTiling));
14727     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->imageUsageFlags,
14728                    sizeof(VkImageUsageFlags));
14729 }
14730 
marshal_VkVideoPictureResourceInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoPictureResourceInfoKHR * forMarshaling)14731 void marshal_VkVideoPictureResourceInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14732                                            const VkVideoPictureResourceInfoKHR* forMarshaling) {
14733     (void)rootType;
14734     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14735     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14736         rootType = forMarshaling->sType;
14737     }
14738     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14739     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->codedOffset));
14740     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->codedExtent));
14741     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
14742     uint64_t cgen_var_0;
14743     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageViewBinding,
14744                                                           &cgen_var_0, 1);
14745     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
14746 }
14747 
unmarshal_VkVideoPictureResourceInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoPictureResourceInfoKHR * forUnmarshaling)14748 void unmarshal_VkVideoPictureResourceInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14749                                              VkVideoPictureResourceInfoKHR* forUnmarshaling) {
14750     (void)rootType;
14751     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14752     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14753         rootType = forUnmarshaling->sType;
14754     }
14755     size_t pNext_size;
14756     pNext_size = vkStream->getBe32();
14757     forUnmarshaling->pNext = nullptr;
14758     if (pNext_size) {
14759         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14760         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14761         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14762         vkStream->alloc((void**)&forUnmarshaling->pNext,
14763                         goldfish_vk_extension_struct_size_with_stream_features(
14764                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14765         *(VkStructureType*)forUnmarshaling->pNext = extType;
14766         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14767     }
14768     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->codedOffset));
14769     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->codedExtent));
14770     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
14771     uint64_t cgen_var_0;
14772     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
14773     vkStream->handleMapping()->mapHandles_u64_VkImageView(
14774         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageViewBinding, 1);
14775 }
14776 
marshal_VkVideoReferenceSlotInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoReferenceSlotInfoKHR * forMarshaling)14777 void marshal_VkVideoReferenceSlotInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14778                                          const VkVideoReferenceSlotInfoKHR* forMarshaling) {
14779     (void)rootType;
14780     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14781     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14782         rootType = forMarshaling->sType;
14783     }
14784     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14785     vkStream->write((int32_t*)&forMarshaling->slotIndex, sizeof(int32_t));
14786     // WARNING PTR CHECK
14787     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pPictureResource;
14788     vkStream->putBe64(cgen_var_0);
14789     if (forMarshaling->pPictureResource) {
14790         marshal_VkVideoPictureResourceInfoKHR(
14791             vkStream, rootType,
14792             (const VkVideoPictureResourceInfoKHR*)(forMarshaling->pPictureResource));
14793     }
14794 }
14795 
unmarshal_VkVideoReferenceSlotInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoReferenceSlotInfoKHR * forUnmarshaling)14796 void unmarshal_VkVideoReferenceSlotInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14797                                            VkVideoReferenceSlotInfoKHR* forUnmarshaling) {
14798     (void)rootType;
14799     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14800     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14801         rootType = forUnmarshaling->sType;
14802     }
14803     size_t pNext_size;
14804     pNext_size = vkStream->getBe32();
14805     forUnmarshaling->pNext = nullptr;
14806     if (pNext_size) {
14807         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14808         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14809         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14810         vkStream->alloc((void**)&forUnmarshaling->pNext,
14811                         goldfish_vk_extension_struct_size_with_stream_features(
14812                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14813         *(VkStructureType*)forUnmarshaling->pNext = extType;
14814         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14815     }
14816     vkStream->read((int32_t*)&forUnmarshaling->slotIndex, sizeof(int32_t));
14817     // WARNING PTR CHECK
14818     forUnmarshaling->pPictureResource =
14819         (const VkVideoPictureResourceInfoKHR*)(uintptr_t)vkStream->getBe64();
14820     if (forUnmarshaling->pPictureResource) {
14821         vkStream->alloc((void**)&forUnmarshaling->pPictureResource,
14822                         sizeof(const VkVideoPictureResourceInfoKHR));
14823         unmarshal_VkVideoPictureResourceInfoKHR(
14824             vkStream, rootType,
14825             (VkVideoPictureResourceInfoKHR*)(forUnmarshaling->pPictureResource));
14826     }
14827 }
14828 
marshal_VkVideoSessionMemoryRequirementsKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoSessionMemoryRequirementsKHR * forMarshaling)14829 void marshal_VkVideoSessionMemoryRequirementsKHR(
14830     VulkanStream* vkStream, VkStructureType rootType,
14831     const VkVideoSessionMemoryRequirementsKHR* forMarshaling) {
14832     (void)rootType;
14833     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14834     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14835         rootType = forMarshaling->sType;
14836     }
14837     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14838     vkStream->write((uint32_t*)&forMarshaling->memoryBindIndex, sizeof(uint32_t));
14839     marshal_VkMemoryRequirements(vkStream, rootType,
14840                                  (VkMemoryRequirements*)(&forMarshaling->memoryRequirements));
14841 }
14842 
unmarshal_VkVideoSessionMemoryRequirementsKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoSessionMemoryRequirementsKHR * forUnmarshaling)14843 void unmarshal_VkVideoSessionMemoryRequirementsKHR(
14844     VulkanStream* vkStream, VkStructureType rootType,
14845     VkVideoSessionMemoryRequirementsKHR* forUnmarshaling) {
14846     (void)rootType;
14847     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14848     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14849         rootType = forUnmarshaling->sType;
14850     }
14851     size_t pNext_size;
14852     pNext_size = vkStream->getBe32();
14853     forUnmarshaling->pNext = nullptr;
14854     if (pNext_size) {
14855         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14856         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14857         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14858         vkStream->alloc((void**)&forUnmarshaling->pNext,
14859                         goldfish_vk_extension_struct_size_with_stream_features(
14860                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14861         *(VkStructureType*)forUnmarshaling->pNext = extType;
14862         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14863     }
14864     vkStream->read((uint32_t*)&forUnmarshaling->memoryBindIndex, sizeof(uint32_t));
14865     unmarshal_VkMemoryRequirements(vkStream, rootType,
14866                                    (VkMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
14867 }
14868 
marshal_VkBindVideoSessionMemoryInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkBindVideoSessionMemoryInfoKHR * forMarshaling)14869 void marshal_VkBindVideoSessionMemoryInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14870                                              const VkBindVideoSessionMemoryInfoKHR* forMarshaling) {
14871     (void)rootType;
14872     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14873     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14874         rootType = forMarshaling->sType;
14875     }
14876     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14877     vkStream->write((uint32_t*)&forMarshaling->memoryBindIndex, sizeof(uint32_t));
14878     uint64_t cgen_var_0;
14879     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
14880                                                              1);
14881     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
14882     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
14883     vkStream->write((VkDeviceSize*)&forMarshaling->memorySize, sizeof(VkDeviceSize));
14884 }
14885 
unmarshal_VkBindVideoSessionMemoryInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkBindVideoSessionMemoryInfoKHR * forUnmarshaling)14886 void unmarshal_VkBindVideoSessionMemoryInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14887                                                VkBindVideoSessionMemoryInfoKHR* forUnmarshaling) {
14888     (void)rootType;
14889     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14890     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14891         rootType = forUnmarshaling->sType;
14892     }
14893     size_t pNext_size;
14894     pNext_size = vkStream->getBe32();
14895     forUnmarshaling->pNext = nullptr;
14896     if (pNext_size) {
14897         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14898         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14899         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14900         vkStream->alloc((void**)&forUnmarshaling->pNext,
14901                         goldfish_vk_extension_struct_size_with_stream_features(
14902                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14903         *(VkStructureType*)forUnmarshaling->pNext = extType;
14904         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14905     }
14906     vkStream->read((uint32_t*)&forUnmarshaling->memoryBindIndex, sizeof(uint32_t));
14907     uint64_t cgen_var_0;
14908     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
14909     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
14910         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
14911     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
14912     vkStream->read((VkDeviceSize*)&forUnmarshaling->memorySize, sizeof(VkDeviceSize));
14913 }
14914 
marshal_VkVideoSessionCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoSessionCreateInfoKHR * forMarshaling)14915 void marshal_VkVideoSessionCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14916                                          const VkVideoSessionCreateInfoKHR* forMarshaling) {
14917     (void)rootType;
14918     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14919     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14920         rootType = forMarshaling->sType;
14921     }
14922     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14923     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
14924     vkStream->write((VkVideoSessionCreateFlagsKHR*)&forMarshaling->flags,
14925                     sizeof(VkVideoSessionCreateFlagsKHR));
14926     marshal_VkVideoProfileInfoKHR(vkStream, rootType,
14927                                   (const VkVideoProfileInfoKHR*)(forMarshaling->pVideoProfile));
14928     vkStream->write((VkFormat*)&forMarshaling->pictureFormat, sizeof(VkFormat));
14929     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxCodedExtent));
14930     vkStream->write((VkFormat*)&forMarshaling->referencePictureFormat, sizeof(VkFormat));
14931     vkStream->write((uint32_t*)&forMarshaling->maxDpbSlots, sizeof(uint32_t));
14932     vkStream->write((uint32_t*)&forMarshaling->maxActiveReferencePictures, sizeof(uint32_t));
14933     marshal_VkExtensionProperties(vkStream, rootType,
14934                                   (const VkExtensionProperties*)(forMarshaling->pStdHeaderVersion));
14935 }
14936 
unmarshal_VkVideoSessionCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoSessionCreateInfoKHR * forUnmarshaling)14937 void unmarshal_VkVideoSessionCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
14938                                            VkVideoSessionCreateInfoKHR* forUnmarshaling) {
14939     (void)rootType;
14940     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14941     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14942         rootType = forUnmarshaling->sType;
14943     }
14944     size_t pNext_size;
14945     pNext_size = vkStream->getBe32();
14946     forUnmarshaling->pNext = nullptr;
14947     if (pNext_size) {
14948         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14949         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
14950         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14951         vkStream->alloc((void**)&forUnmarshaling->pNext,
14952                         goldfish_vk_extension_struct_size_with_stream_features(
14953                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14954         *(VkStructureType*)forUnmarshaling->pNext = extType;
14955         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14956     }
14957     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
14958     vkStream->read((VkVideoSessionCreateFlagsKHR*)&forUnmarshaling->flags,
14959                    sizeof(VkVideoSessionCreateFlagsKHR));
14960     vkStream->alloc((void**)&forUnmarshaling->pVideoProfile, sizeof(const VkVideoProfileInfoKHR));
14961     unmarshal_VkVideoProfileInfoKHR(vkStream, rootType,
14962                                     (VkVideoProfileInfoKHR*)(forUnmarshaling->pVideoProfile));
14963     vkStream->read((VkFormat*)&forUnmarshaling->pictureFormat, sizeof(VkFormat));
14964     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxCodedExtent));
14965     vkStream->read((VkFormat*)&forUnmarshaling->referencePictureFormat, sizeof(VkFormat));
14966     vkStream->read((uint32_t*)&forUnmarshaling->maxDpbSlots, sizeof(uint32_t));
14967     vkStream->read((uint32_t*)&forUnmarshaling->maxActiveReferencePictures, sizeof(uint32_t));
14968     vkStream->alloc((void**)&forUnmarshaling->pStdHeaderVersion,
14969                     sizeof(const VkExtensionProperties));
14970     unmarshal_VkExtensionProperties(vkStream, rootType,
14971                                     (VkExtensionProperties*)(forUnmarshaling->pStdHeaderVersion));
14972 }
14973 
marshal_VkVideoSessionParametersCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoSessionParametersCreateInfoKHR * forMarshaling)14974 void marshal_VkVideoSessionParametersCreateInfoKHR(
14975     VulkanStream* vkStream, VkStructureType rootType,
14976     const VkVideoSessionParametersCreateInfoKHR* forMarshaling) {
14977     (void)rootType;
14978     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14979     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14980         rootType = forMarshaling->sType;
14981     }
14982     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14983     vkStream->write((VkVideoSessionParametersCreateFlagsKHR*)&forMarshaling->flags,
14984                     sizeof(VkVideoSessionParametersCreateFlagsKHR));
14985     uint64_t cgen_var_0 = (uint64_t)forMarshaling->videoSessionParametersTemplate;
14986     vkStream->putBe64(cgen_var_0);
14987     uint64_t cgen_var_1 = (uint64_t)forMarshaling->videoSession;
14988     vkStream->putBe64(cgen_var_1);
14989 }
14990 
unmarshal_VkVideoSessionParametersCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoSessionParametersCreateInfoKHR * forUnmarshaling)14991 void unmarshal_VkVideoSessionParametersCreateInfoKHR(
14992     VulkanStream* vkStream, VkStructureType rootType,
14993     VkVideoSessionParametersCreateInfoKHR* forUnmarshaling) {
14994     (void)rootType;
14995     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14996     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14997         rootType = forUnmarshaling->sType;
14998     }
14999     size_t pNext_size;
15000     pNext_size = vkStream->getBe32();
15001     forUnmarshaling->pNext = nullptr;
15002     if (pNext_size) {
15003         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15004         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15005         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15006         vkStream->alloc((void**)&forUnmarshaling->pNext,
15007                         goldfish_vk_extension_struct_size_with_stream_features(
15008                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15009         *(VkStructureType*)forUnmarshaling->pNext = extType;
15010         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15011     }
15012     vkStream->read((VkVideoSessionParametersCreateFlagsKHR*)&forUnmarshaling->flags,
15013                    sizeof(VkVideoSessionParametersCreateFlagsKHR));
15014     forUnmarshaling->videoSessionParametersTemplate =
15015         (VkVideoSessionParametersKHR)vkStream->getBe64();
15016     forUnmarshaling->videoSession = (VkVideoSessionKHR)vkStream->getBe64();
15017 }
15018 
marshal_VkVideoSessionParametersUpdateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoSessionParametersUpdateInfoKHR * forMarshaling)15019 void marshal_VkVideoSessionParametersUpdateInfoKHR(
15020     VulkanStream* vkStream, VkStructureType rootType,
15021     const VkVideoSessionParametersUpdateInfoKHR* forMarshaling) {
15022     (void)rootType;
15023     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15024     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15025         rootType = forMarshaling->sType;
15026     }
15027     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15028     vkStream->write((uint32_t*)&forMarshaling->updateSequenceCount, sizeof(uint32_t));
15029 }
15030 
unmarshal_VkVideoSessionParametersUpdateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoSessionParametersUpdateInfoKHR * forUnmarshaling)15031 void unmarshal_VkVideoSessionParametersUpdateInfoKHR(
15032     VulkanStream* vkStream, VkStructureType rootType,
15033     VkVideoSessionParametersUpdateInfoKHR* forUnmarshaling) {
15034     (void)rootType;
15035     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15036     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15037         rootType = forUnmarshaling->sType;
15038     }
15039     size_t pNext_size;
15040     pNext_size = vkStream->getBe32();
15041     forUnmarshaling->pNext = nullptr;
15042     if (pNext_size) {
15043         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15044         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15045         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15046         vkStream->alloc((void**)&forUnmarshaling->pNext,
15047                         goldfish_vk_extension_struct_size_with_stream_features(
15048                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15049         *(VkStructureType*)forUnmarshaling->pNext = extType;
15050         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15051     }
15052     vkStream->read((uint32_t*)&forUnmarshaling->updateSequenceCount, sizeof(uint32_t));
15053 }
15054 
marshal_VkVideoBeginCodingInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoBeginCodingInfoKHR * forMarshaling)15055 void marshal_VkVideoBeginCodingInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15056                                        const VkVideoBeginCodingInfoKHR* forMarshaling) {
15057     (void)rootType;
15058     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15059     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15060         rootType = forMarshaling->sType;
15061     }
15062     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15063     vkStream->write((VkVideoBeginCodingFlagsKHR*)&forMarshaling->flags,
15064                     sizeof(VkVideoBeginCodingFlagsKHR));
15065     uint64_t cgen_var_0 = (uint64_t)forMarshaling->videoSession;
15066     vkStream->putBe64(cgen_var_0);
15067     uint64_t cgen_var_1 = (uint64_t)forMarshaling->videoSessionParameters;
15068     vkStream->putBe64(cgen_var_1);
15069     vkStream->write((uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
15070     if (forMarshaling) {
15071         for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i) {
15072             marshal_VkVideoReferenceSlotInfoKHR(
15073                 vkStream, rootType,
15074                 (const VkVideoReferenceSlotInfoKHR*)(forMarshaling->pReferenceSlots + i));
15075         }
15076     }
15077 }
15078 
unmarshal_VkVideoBeginCodingInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoBeginCodingInfoKHR * forUnmarshaling)15079 void unmarshal_VkVideoBeginCodingInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15080                                          VkVideoBeginCodingInfoKHR* forUnmarshaling) {
15081     (void)rootType;
15082     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15083     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15084         rootType = forUnmarshaling->sType;
15085     }
15086     size_t pNext_size;
15087     pNext_size = vkStream->getBe32();
15088     forUnmarshaling->pNext = nullptr;
15089     if (pNext_size) {
15090         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15091         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15092         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15093         vkStream->alloc((void**)&forUnmarshaling->pNext,
15094                         goldfish_vk_extension_struct_size_with_stream_features(
15095                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15096         *(VkStructureType*)forUnmarshaling->pNext = extType;
15097         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15098     }
15099     vkStream->read((VkVideoBeginCodingFlagsKHR*)&forUnmarshaling->flags,
15100                    sizeof(VkVideoBeginCodingFlagsKHR));
15101     forUnmarshaling->videoSession = (VkVideoSessionKHR)vkStream->getBe64();
15102     forUnmarshaling->videoSessionParameters = (VkVideoSessionParametersKHR)vkStream->getBe64();
15103     vkStream->read((uint32_t*)&forUnmarshaling->referenceSlotCount, sizeof(uint32_t));
15104     vkStream->alloc(
15105         (void**)&forUnmarshaling->pReferenceSlots,
15106         forUnmarshaling->referenceSlotCount * sizeof(const VkVideoReferenceSlotInfoKHR));
15107     if (forUnmarshaling) {
15108         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceSlotCount; ++i) {
15109             unmarshal_VkVideoReferenceSlotInfoKHR(
15110                 vkStream, rootType,
15111                 (VkVideoReferenceSlotInfoKHR*)(forUnmarshaling->pReferenceSlots + i));
15112         }
15113     }
15114 }
15115 
marshal_VkVideoEndCodingInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEndCodingInfoKHR * forMarshaling)15116 void marshal_VkVideoEndCodingInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15117                                      const VkVideoEndCodingInfoKHR* forMarshaling) {
15118     (void)rootType;
15119     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15120     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15121         rootType = forMarshaling->sType;
15122     }
15123     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15124     vkStream->write((VkVideoEndCodingFlagsKHR*)&forMarshaling->flags,
15125                     sizeof(VkVideoEndCodingFlagsKHR));
15126 }
15127 
unmarshal_VkVideoEndCodingInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoEndCodingInfoKHR * forUnmarshaling)15128 void unmarshal_VkVideoEndCodingInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15129                                        VkVideoEndCodingInfoKHR* forUnmarshaling) {
15130     (void)rootType;
15131     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15132     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15133         rootType = forUnmarshaling->sType;
15134     }
15135     size_t pNext_size;
15136     pNext_size = vkStream->getBe32();
15137     forUnmarshaling->pNext = nullptr;
15138     if (pNext_size) {
15139         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15140         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15141         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15142         vkStream->alloc((void**)&forUnmarshaling->pNext,
15143                         goldfish_vk_extension_struct_size_with_stream_features(
15144                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15145         *(VkStructureType*)forUnmarshaling->pNext = extType;
15146         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15147     }
15148     vkStream->read((VkVideoEndCodingFlagsKHR*)&forUnmarshaling->flags,
15149                    sizeof(VkVideoEndCodingFlagsKHR));
15150 }
15151 
marshal_VkVideoCodingControlInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoCodingControlInfoKHR * forMarshaling)15152 void marshal_VkVideoCodingControlInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15153                                          const VkVideoCodingControlInfoKHR* forMarshaling) {
15154     (void)rootType;
15155     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15156     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15157         rootType = forMarshaling->sType;
15158     }
15159     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15160     vkStream->write((VkVideoCodingControlFlagsKHR*)&forMarshaling->flags,
15161                     sizeof(VkVideoCodingControlFlagsKHR));
15162 }
15163 
unmarshal_VkVideoCodingControlInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoCodingControlInfoKHR * forUnmarshaling)15164 void unmarshal_VkVideoCodingControlInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15165                                            VkVideoCodingControlInfoKHR* forUnmarshaling) {
15166     (void)rootType;
15167     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15168     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15169         rootType = forUnmarshaling->sType;
15170     }
15171     size_t pNext_size;
15172     pNext_size = vkStream->getBe32();
15173     forUnmarshaling->pNext = nullptr;
15174     if (pNext_size) {
15175         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15176         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15177         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15178         vkStream->alloc((void**)&forUnmarshaling->pNext,
15179                         goldfish_vk_extension_struct_size_with_stream_features(
15180                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15181         *(VkStructureType*)forUnmarshaling->pNext = extType;
15182         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15183     }
15184     vkStream->read((VkVideoCodingControlFlagsKHR*)&forUnmarshaling->flags,
15185                    sizeof(VkVideoCodingControlFlagsKHR));
15186 }
15187 
15188 #endif
15189 #ifdef VK_KHR_video_decode_queue
marshal_VkVideoDecodeCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeCapabilitiesKHR * forMarshaling)15190 void marshal_VkVideoDecodeCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
15191                                           const VkVideoDecodeCapabilitiesKHR* forMarshaling) {
15192     (void)rootType;
15193     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15194     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15195         rootType = forMarshaling->sType;
15196     }
15197     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15198     vkStream->write((VkVideoDecodeCapabilityFlagsKHR*)&forMarshaling->flags,
15199                     sizeof(VkVideoDecodeCapabilityFlagsKHR));
15200 }
15201 
unmarshal_VkVideoDecodeCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeCapabilitiesKHR * forUnmarshaling)15202 void unmarshal_VkVideoDecodeCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
15203                                             VkVideoDecodeCapabilitiesKHR* forUnmarshaling) {
15204     (void)rootType;
15205     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15206     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15207         rootType = forUnmarshaling->sType;
15208     }
15209     size_t pNext_size;
15210     pNext_size = vkStream->getBe32();
15211     forUnmarshaling->pNext = nullptr;
15212     if (pNext_size) {
15213         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15214         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15215         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15216         vkStream->alloc((void**)&forUnmarshaling->pNext,
15217                         goldfish_vk_extension_struct_size_with_stream_features(
15218                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15219         *(VkStructureType*)forUnmarshaling->pNext = extType;
15220         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15221     }
15222     vkStream->read((VkVideoDecodeCapabilityFlagsKHR*)&forUnmarshaling->flags,
15223                    sizeof(VkVideoDecodeCapabilityFlagsKHR));
15224 }
15225 
marshal_VkVideoDecodeUsageInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeUsageInfoKHR * forMarshaling)15226 void marshal_VkVideoDecodeUsageInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15227                                        const VkVideoDecodeUsageInfoKHR* forMarshaling) {
15228     (void)rootType;
15229     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15230     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15231         rootType = forMarshaling->sType;
15232     }
15233     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15234     vkStream->write((VkVideoDecodeUsageFlagsKHR*)&forMarshaling->videoUsageHints,
15235                     sizeof(VkVideoDecodeUsageFlagsKHR));
15236 }
15237 
unmarshal_VkVideoDecodeUsageInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeUsageInfoKHR * forUnmarshaling)15238 void unmarshal_VkVideoDecodeUsageInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15239                                          VkVideoDecodeUsageInfoKHR* forUnmarshaling) {
15240     (void)rootType;
15241     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15243         rootType = forUnmarshaling->sType;
15244     }
15245     size_t pNext_size;
15246     pNext_size = vkStream->getBe32();
15247     forUnmarshaling->pNext = nullptr;
15248     if (pNext_size) {
15249         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15250         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15251         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15252         vkStream->alloc((void**)&forUnmarshaling->pNext,
15253                         goldfish_vk_extension_struct_size_with_stream_features(
15254                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15255         *(VkStructureType*)forUnmarshaling->pNext = extType;
15256         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15257     }
15258     vkStream->read((VkVideoDecodeUsageFlagsKHR*)&forUnmarshaling->videoUsageHints,
15259                    sizeof(VkVideoDecodeUsageFlagsKHR));
15260 }
15261 
marshal_VkVideoDecodeInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeInfoKHR * forMarshaling)15262 void marshal_VkVideoDecodeInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15263                                   const VkVideoDecodeInfoKHR* forMarshaling) {
15264     (void)rootType;
15265     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15266     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15267         rootType = forMarshaling->sType;
15268     }
15269     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15270     vkStream->write((VkVideoDecodeFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoDecodeFlagsKHR));
15271     uint64_t cgen_var_0;
15272     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->srcBuffer, &cgen_var_0, 1);
15273     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
15274     vkStream->write((VkDeviceSize*)&forMarshaling->srcBufferOffset, sizeof(VkDeviceSize));
15275     vkStream->write((VkDeviceSize*)&forMarshaling->srcBufferRange, sizeof(VkDeviceSize));
15276     marshal_VkVideoPictureResourceInfoKHR(
15277         vkStream, rootType, (VkVideoPictureResourceInfoKHR*)(&forMarshaling->dstPictureResource));
15278     marshal_VkVideoReferenceSlotInfoKHR(
15279         vkStream, rootType,
15280         (const VkVideoReferenceSlotInfoKHR*)(forMarshaling->pSetupReferenceSlot));
15281     vkStream->write((uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
15282     if (forMarshaling) {
15283         for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i) {
15284             marshal_VkVideoReferenceSlotInfoKHR(
15285                 vkStream, rootType,
15286                 (const VkVideoReferenceSlotInfoKHR*)(forMarshaling->pReferenceSlots + i));
15287         }
15288     }
15289 }
15290 
unmarshal_VkVideoDecodeInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeInfoKHR * forUnmarshaling)15291 void unmarshal_VkVideoDecodeInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15292                                     VkVideoDecodeInfoKHR* forUnmarshaling) {
15293     (void)rootType;
15294     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15295     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15296         rootType = forUnmarshaling->sType;
15297     }
15298     size_t pNext_size;
15299     pNext_size = vkStream->getBe32();
15300     forUnmarshaling->pNext = nullptr;
15301     if (pNext_size) {
15302         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15303         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15304         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15305         vkStream->alloc((void**)&forUnmarshaling->pNext,
15306                         goldfish_vk_extension_struct_size_with_stream_features(
15307                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15308         *(VkStructureType*)forUnmarshaling->pNext = extType;
15309         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15310     }
15311     vkStream->read((VkVideoDecodeFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoDecodeFlagsKHR));
15312     uint64_t cgen_var_0;
15313     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
15314     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
15315                                                        (VkBuffer*)&forUnmarshaling->srcBuffer, 1);
15316     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcBufferOffset, sizeof(VkDeviceSize));
15317     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcBufferRange, sizeof(VkDeviceSize));
15318     unmarshal_VkVideoPictureResourceInfoKHR(
15319         vkStream, rootType, (VkVideoPictureResourceInfoKHR*)(&forUnmarshaling->dstPictureResource));
15320     vkStream->alloc((void**)&forUnmarshaling->pSetupReferenceSlot,
15321                     sizeof(const VkVideoReferenceSlotInfoKHR));
15322     unmarshal_VkVideoReferenceSlotInfoKHR(
15323         vkStream, rootType, (VkVideoReferenceSlotInfoKHR*)(forUnmarshaling->pSetupReferenceSlot));
15324     vkStream->read((uint32_t*)&forUnmarshaling->referenceSlotCount, sizeof(uint32_t));
15325     vkStream->alloc(
15326         (void**)&forUnmarshaling->pReferenceSlots,
15327         forUnmarshaling->referenceSlotCount * sizeof(const VkVideoReferenceSlotInfoKHR));
15328     if (forUnmarshaling) {
15329         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceSlotCount; ++i) {
15330             unmarshal_VkVideoReferenceSlotInfoKHR(
15331                 vkStream, rootType,
15332                 (VkVideoReferenceSlotInfoKHR*)(forUnmarshaling->pReferenceSlots + i));
15333         }
15334     }
15335 }
15336 
15337 #endif
15338 #ifdef VK_KHR_video_decode_h264
marshal_VkVideoDecodeH264ProfileInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH264ProfileInfoKHR * forMarshaling)15339 void marshal_VkVideoDecodeH264ProfileInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15340                                              const VkVideoDecodeH264ProfileInfoKHR* forMarshaling) {
15341     (void)rootType;
15342     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15343     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15344         rootType = forMarshaling->sType;
15345     }
15346     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15347     vkStream->write((StdVideoH264ProfileIdc*)&forMarshaling->stdProfileIdc,
15348                     sizeof(StdVideoH264ProfileIdc));
15349     vkStream->write((VkVideoDecodeH264PictureLayoutFlagBitsKHR*)&forMarshaling->pictureLayout,
15350                     sizeof(VkVideoDecodeH264PictureLayoutFlagBitsKHR));
15351 }
15352 
unmarshal_VkVideoDecodeH264ProfileInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH264ProfileInfoKHR * forUnmarshaling)15353 void unmarshal_VkVideoDecodeH264ProfileInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15354                                                VkVideoDecodeH264ProfileInfoKHR* forUnmarshaling) {
15355     (void)rootType;
15356     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15357     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15358         rootType = forUnmarshaling->sType;
15359     }
15360     size_t pNext_size;
15361     pNext_size = vkStream->getBe32();
15362     forUnmarshaling->pNext = nullptr;
15363     if (pNext_size) {
15364         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15365         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15366         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15367         vkStream->alloc((void**)&forUnmarshaling->pNext,
15368                         goldfish_vk_extension_struct_size_with_stream_features(
15369                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15370         *(VkStructureType*)forUnmarshaling->pNext = extType;
15371         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15372     }
15373     vkStream->read((StdVideoH264ProfileIdc*)&forUnmarshaling->stdProfileIdc,
15374                    sizeof(StdVideoH264ProfileIdc));
15375     vkStream->read((VkVideoDecodeH264PictureLayoutFlagBitsKHR*)&forUnmarshaling->pictureLayout,
15376                    sizeof(VkVideoDecodeH264PictureLayoutFlagBitsKHR));
15377 }
15378 
marshal_VkVideoDecodeH264CapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH264CapabilitiesKHR * forMarshaling)15379 void marshal_VkVideoDecodeH264CapabilitiesKHR(
15380     VulkanStream* vkStream, VkStructureType rootType,
15381     const VkVideoDecodeH264CapabilitiesKHR* forMarshaling) {
15382     (void)rootType;
15383     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15384     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15385         rootType = forMarshaling->sType;
15386     }
15387     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15388     vkStream->write((StdVideoH264LevelIdc*)&forMarshaling->maxLevelIdc,
15389                     sizeof(StdVideoH264LevelIdc));
15390     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->fieldOffsetGranularity));
15391 }
15392 
unmarshal_VkVideoDecodeH264CapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH264CapabilitiesKHR * forUnmarshaling)15393 void unmarshal_VkVideoDecodeH264CapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
15394                                                 VkVideoDecodeH264CapabilitiesKHR* forUnmarshaling) {
15395     (void)rootType;
15396     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15397     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15398         rootType = forUnmarshaling->sType;
15399     }
15400     size_t pNext_size;
15401     pNext_size = vkStream->getBe32();
15402     forUnmarshaling->pNext = nullptr;
15403     if (pNext_size) {
15404         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15405         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15406         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15407         vkStream->alloc((void**)&forUnmarshaling->pNext,
15408                         goldfish_vk_extension_struct_size_with_stream_features(
15409                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15410         *(VkStructureType*)forUnmarshaling->pNext = extType;
15411         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15412     }
15413     vkStream->read((StdVideoH264LevelIdc*)&forUnmarshaling->maxLevelIdc,
15414                    sizeof(StdVideoH264LevelIdc));
15415     unmarshal_VkOffset2D(vkStream, rootType,
15416                          (VkOffset2D*)(&forUnmarshaling->fieldOffsetGranularity));
15417 }
15418 
marshal_VkVideoDecodeH264SessionParametersAddInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH264SessionParametersAddInfoKHR * forMarshaling)15419 void marshal_VkVideoDecodeH264SessionParametersAddInfoKHR(
15420     VulkanStream* vkStream, VkStructureType rootType,
15421     const VkVideoDecodeH264SessionParametersAddInfoKHR* forMarshaling) {
15422     (void)rootType;
15423     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15424     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15425         rootType = forMarshaling->sType;
15426     }
15427     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15428     vkStream->write((uint32_t*)&forMarshaling->stdSPSCount, sizeof(uint32_t));
15429     vkStream->write((const StdVideoH264SequenceParameterSet*)forMarshaling->pStdSPSs,
15430                     forMarshaling->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet));
15431     vkStream->write((uint32_t*)&forMarshaling->stdPPSCount, sizeof(uint32_t));
15432     vkStream->write((const StdVideoH264PictureParameterSet*)forMarshaling->pStdPPSs,
15433                     forMarshaling->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet));
15434 }
15435 
unmarshal_VkVideoDecodeH264SessionParametersAddInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH264SessionParametersAddInfoKHR * forUnmarshaling)15436 void unmarshal_VkVideoDecodeH264SessionParametersAddInfoKHR(
15437     VulkanStream* vkStream, VkStructureType rootType,
15438     VkVideoDecodeH264SessionParametersAddInfoKHR* forUnmarshaling) {
15439     (void)rootType;
15440     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15441     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15442         rootType = forUnmarshaling->sType;
15443     }
15444     size_t pNext_size;
15445     pNext_size = vkStream->getBe32();
15446     forUnmarshaling->pNext = nullptr;
15447     if (pNext_size) {
15448         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15449         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15450         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15451         vkStream->alloc((void**)&forUnmarshaling->pNext,
15452                         goldfish_vk_extension_struct_size_with_stream_features(
15453                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15454         *(VkStructureType*)forUnmarshaling->pNext = extType;
15455         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15456     }
15457     vkStream->read((uint32_t*)&forUnmarshaling->stdSPSCount, sizeof(uint32_t));
15458     vkStream->alloc((void**)&forUnmarshaling->pStdSPSs,
15459                     forUnmarshaling->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet));
15460     vkStream->read((StdVideoH264SequenceParameterSet*)forUnmarshaling->pStdSPSs,
15461                    forUnmarshaling->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet));
15462     vkStream->read((uint32_t*)&forUnmarshaling->stdPPSCount, sizeof(uint32_t));
15463     vkStream->alloc((void**)&forUnmarshaling->pStdPPSs,
15464                     forUnmarshaling->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet));
15465     vkStream->read((StdVideoH264PictureParameterSet*)forUnmarshaling->pStdPPSs,
15466                    forUnmarshaling->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet));
15467 }
15468 
marshal_VkVideoDecodeH264SessionParametersCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH264SessionParametersCreateInfoKHR * forMarshaling)15469 void marshal_VkVideoDecodeH264SessionParametersCreateInfoKHR(
15470     VulkanStream* vkStream, VkStructureType rootType,
15471     const VkVideoDecodeH264SessionParametersCreateInfoKHR* forMarshaling) {
15472     (void)rootType;
15473     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15474     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15475         rootType = forMarshaling->sType;
15476     }
15477     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15478     vkStream->write((uint32_t*)&forMarshaling->maxStdSPSCount, sizeof(uint32_t));
15479     vkStream->write((uint32_t*)&forMarshaling->maxStdPPSCount, sizeof(uint32_t));
15480     // WARNING PTR CHECK
15481     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
15482     vkStream->putBe64(cgen_var_0);
15483     if (forMarshaling->pParametersAddInfo) {
15484         marshal_VkVideoDecodeH264SessionParametersAddInfoKHR(
15485             vkStream, rootType,
15486             (const VkVideoDecodeH264SessionParametersAddInfoKHR*)(forMarshaling
15487                                                                       ->pParametersAddInfo));
15488     }
15489 }
15490 
unmarshal_VkVideoDecodeH264SessionParametersCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH264SessionParametersCreateInfoKHR * forUnmarshaling)15491 void unmarshal_VkVideoDecodeH264SessionParametersCreateInfoKHR(
15492     VulkanStream* vkStream, VkStructureType rootType,
15493     VkVideoDecodeH264SessionParametersCreateInfoKHR* forUnmarshaling) {
15494     (void)rootType;
15495     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15496     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15497         rootType = forUnmarshaling->sType;
15498     }
15499     size_t pNext_size;
15500     pNext_size = vkStream->getBe32();
15501     forUnmarshaling->pNext = nullptr;
15502     if (pNext_size) {
15503         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15504         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15505         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15506         vkStream->alloc((void**)&forUnmarshaling->pNext,
15507                         goldfish_vk_extension_struct_size_with_stream_features(
15508                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15509         *(VkStructureType*)forUnmarshaling->pNext = extType;
15510         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15511     }
15512     vkStream->read((uint32_t*)&forUnmarshaling->maxStdSPSCount, sizeof(uint32_t));
15513     vkStream->read((uint32_t*)&forUnmarshaling->maxStdPPSCount, sizeof(uint32_t));
15514     // WARNING PTR CHECK
15515     forUnmarshaling->pParametersAddInfo =
15516         (const VkVideoDecodeH264SessionParametersAddInfoKHR*)(uintptr_t)vkStream->getBe64();
15517     if (forUnmarshaling->pParametersAddInfo) {
15518         vkStream->alloc((void**)&forUnmarshaling->pParametersAddInfo,
15519                         sizeof(const VkVideoDecodeH264SessionParametersAddInfoKHR));
15520         unmarshal_VkVideoDecodeH264SessionParametersAddInfoKHR(
15521             vkStream, rootType,
15522             (VkVideoDecodeH264SessionParametersAddInfoKHR*)(forUnmarshaling->pParametersAddInfo));
15523     }
15524 }
15525 
marshal_VkVideoDecodeH264PictureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH264PictureInfoKHR * forMarshaling)15526 void marshal_VkVideoDecodeH264PictureInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15527                                              const VkVideoDecodeH264PictureInfoKHR* forMarshaling) {
15528     (void)rootType;
15529     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15531         rootType = forMarshaling->sType;
15532     }
15533     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15534     vkStream->write((const StdVideoDecodeH264PictureInfo*)forMarshaling->pStdPictureInfo,
15535                     sizeof(const StdVideoDecodeH264PictureInfo));
15536     vkStream->write((uint32_t*)&forMarshaling->sliceCount, sizeof(uint32_t));
15537     vkStream->write((const uint32_t*)forMarshaling->pSliceOffsets,
15538                     forMarshaling->sliceCount * sizeof(const uint32_t));
15539 }
15540 
unmarshal_VkVideoDecodeH264PictureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH264PictureInfoKHR * forUnmarshaling)15541 void unmarshal_VkVideoDecodeH264PictureInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15542                                                VkVideoDecodeH264PictureInfoKHR* forUnmarshaling) {
15543     (void)rootType;
15544     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15545     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15546         rootType = forUnmarshaling->sType;
15547     }
15548     size_t pNext_size;
15549     pNext_size = vkStream->getBe32();
15550     forUnmarshaling->pNext = nullptr;
15551     if (pNext_size) {
15552         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15553         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15554         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15555         vkStream->alloc((void**)&forUnmarshaling->pNext,
15556                         goldfish_vk_extension_struct_size_with_stream_features(
15557                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15558         *(VkStructureType*)forUnmarshaling->pNext = extType;
15559         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15560     }
15561     vkStream->alloc((void**)&forUnmarshaling->pStdPictureInfo,
15562                     sizeof(const StdVideoDecodeH264PictureInfo));
15563     vkStream->read((StdVideoDecodeH264PictureInfo*)forUnmarshaling->pStdPictureInfo,
15564                    sizeof(const StdVideoDecodeH264PictureInfo));
15565     vkStream->read((uint32_t*)&forUnmarshaling->sliceCount, sizeof(uint32_t));
15566     vkStream->alloc((void**)&forUnmarshaling->pSliceOffsets,
15567                     forUnmarshaling->sliceCount * sizeof(const uint32_t));
15568     vkStream->read((uint32_t*)forUnmarshaling->pSliceOffsets,
15569                    forUnmarshaling->sliceCount * sizeof(const uint32_t));
15570 }
15571 
marshal_VkVideoDecodeH264DpbSlotInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH264DpbSlotInfoKHR * forMarshaling)15572 void marshal_VkVideoDecodeH264DpbSlotInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15573                                              const VkVideoDecodeH264DpbSlotInfoKHR* forMarshaling) {
15574     (void)rootType;
15575     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15576     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15577         rootType = forMarshaling->sType;
15578     }
15579     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15580     vkStream->write((const StdVideoDecodeH264ReferenceInfo*)forMarshaling->pStdReferenceInfo,
15581                     sizeof(const StdVideoDecodeH264ReferenceInfo));
15582 }
15583 
unmarshal_VkVideoDecodeH264DpbSlotInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH264DpbSlotInfoKHR * forUnmarshaling)15584 void unmarshal_VkVideoDecodeH264DpbSlotInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15585                                                VkVideoDecodeH264DpbSlotInfoKHR* forUnmarshaling) {
15586     (void)rootType;
15587     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15588     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15589         rootType = forUnmarshaling->sType;
15590     }
15591     size_t pNext_size;
15592     pNext_size = vkStream->getBe32();
15593     forUnmarshaling->pNext = nullptr;
15594     if (pNext_size) {
15595         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15596         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15597         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15598         vkStream->alloc((void**)&forUnmarshaling->pNext,
15599                         goldfish_vk_extension_struct_size_with_stream_features(
15600                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15601         *(VkStructureType*)forUnmarshaling->pNext = extType;
15602         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15603     }
15604     vkStream->alloc((void**)&forUnmarshaling->pStdReferenceInfo,
15605                     sizeof(const StdVideoDecodeH264ReferenceInfo));
15606     vkStream->read((StdVideoDecodeH264ReferenceInfo*)forUnmarshaling->pStdReferenceInfo,
15607                    sizeof(const StdVideoDecodeH264ReferenceInfo));
15608 }
15609 
15610 #endif
15611 #ifdef VK_KHR_dynamic_rendering
marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkRenderingFragmentShadingRateAttachmentInfoKHR * forMarshaling)15612 void marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
15613     VulkanStream* vkStream, VkStructureType rootType,
15614     const VkRenderingFragmentShadingRateAttachmentInfoKHR* forMarshaling) {
15615     (void)rootType;
15616     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15617     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15618         rootType = forMarshaling->sType;
15619     }
15620     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15621     uint64_t cgen_var_0;
15622     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
15623                                                           1);
15624     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
15625     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
15626     marshal_VkExtent2D(vkStream, rootType,
15627                        (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize));
15628 }
15629 
unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRenderingFragmentShadingRateAttachmentInfoKHR * forUnmarshaling)15630 void unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
15631     VulkanStream* vkStream, VkStructureType rootType,
15632     VkRenderingFragmentShadingRateAttachmentInfoKHR* forUnmarshaling) {
15633     (void)rootType;
15634     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15635     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15636         rootType = forUnmarshaling->sType;
15637     }
15638     size_t pNext_size;
15639     pNext_size = vkStream->getBe32();
15640     forUnmarshaling->pNext = nullptr;
15641     if (pNext_size) {
15642         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15643         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15644         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15645         vkStream->alloc((void**)&forUnmarshaling->pNext,
15646                         goldfish_vk_extension_struct_size_with_stream_features(
15647                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15648         *(VkStructureType*)forUnmarshaling->pNext = extType;
15649         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15650     }
15651     uint64_t cgen_var_0;
15652     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
15653     vkStream->handleMapping()->mapHandles_u64_VkImageView(
15654         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
15655     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
15656     unmarshal_VkExtent2D(vkStream, rootType,
15657                          (VkExtent2D*)(&forUnmarshaling->shadingRateAttachmentTexelSize));
15658 }
15659 
marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderingFragmentDensityMapAttachmentInfoEXT * forMarshaling)15660 void marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
15661     VulkanStream* vkStream, VkStructureType rootType,
15662     const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling) {
15663     (void)rootType;
15664     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15665     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15666         rootType = forMarshaling->sType;
15667     }
15668     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15669     uint64_t cgen_var_0;
15670     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
15671                                                           1);
15672     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
15673     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
15674 }
15675 
unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderingFragmentDensityMapAttachmentInfoEXT * forUnmarshaling)15676 void unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
15677     VulkanStream* vkStream, VkStructureType rootType,
15678     VkRenderingFragmentDensityMapAttachmentInfoEXT* forUnmarshaling) {
15679     (void)rootType;
15680     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15681     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15682         rootType = forUnmarshaling->sType;
15683     }
15684     size_t pNext_size;
15685     pNext_size = vkStream->getBe32();
15686     forUnmarshaling->pNext = nullptr;
15687     if (pNext_size) {
15688         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15689         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15690         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15691         vkStream->alloc((void**)&forUnmarshaling->pNext,
15692                         goldfish_vk_extension_struct_size_with_stream_features(
15693                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15694         *(VkStructureType*)forUnmarshaling->pNext = extType;
15695         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15696     }
15697     uint64_t cgen_var_0;
15698     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
15699     vkStream->handleMapping()->mapHandles_u64_VkImageView(
15700         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
15701     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
15702 }
15703 
marshal_VkAttachmentSampleCountInfoAMD(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentSampleCountInfoAMD * forMarshaling)15704 void marshal_VkAttachmentSampleCountInfoAMD(VulkanStream* vkStream, VkStructureType rootType,
15705                                             const VkAttachmentSampleCountInfoAMD* forMarshaling) {
15706     (void)rootType;
15707     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15708     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15709         rootType = forMarshaling->sType;
15710     }
15711     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15712     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
15713     // WARNING PTR CHECK
15714     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentSamples;
15715     vkStream->putBe64(cgen_var_0);
15716     if (forMarshaling->pColorAttachmentSamples) {
15717         vkStream->write((const VkSampleCountFlagBits*)forMarshaling->pColorAttachmentSamples,
15718                         forMarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
15719     }
15720     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->depthStencilAttachmentSamples,
15721                     sizeof(VkSampleCountFlagBits));
15722 }
15723 
unmarshal_VkAttachmentSampleCountInfoAMD(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentSampleCountInfoAMD * forUnmarshaling)15724 void unmarshal_VkAttachmentSampleCountInfoAMD(VulkanStream* vkStream, VkStructureType rootType,
15725                                               VkAttachmentSampleCountInfoAMD* forUnmarshaling) {
15726     (void)rootType;
15727     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15728     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15729         rootType = forUnmarshaling->sType;
15730     }
15731     size_t pNext_size;
15732     pNext_size = vkStream->getBe32();
15733     forUnmarshaling->pNext = nullptr;
15734     if (pNext_size) {
15735         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15736         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15737         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15738         vkStream->alloc((void**)&forUnmarshaling->pNext,
15739                         goldfish_vk_extension_struct_size_with_stream_features(
15740                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15741         *(VkStructureType*)forUnmarshaling->pNext = extType;
15742         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15743     }
15744     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
15745     // WARNING PTR CHECK
15746     forUnmarshaling->pColorAttachmentSamples =
15747         (const VkSampleCountFlagBits*)(uintptr_t)vkStream->getBe64();
15748     if (forUnmarshaling->pColorAttachmentSamples) {
15749         vkStream->alloc(
15750             (void**)&forUnmarshaling->pColorAttachmentSamples,
15751             forUnmarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
15752         vkStream->read((VkSampleCountFlagBits*)forUnmarshaling->pColorAttachmentSamples,
15753                        forUnmarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
15754     }
15755     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->depthStencilAttachmentSamples,
15756                    sizeof(VkSampleCountFlagBits));
15757 }
15758 
marshal_VkMultiviewPerViewAttributesInfoNVX(VulkanStream * vkStream,VkStructureType rootType,const VkMultiviewPerViewAttributesInfoNVX * forMarshaling)15759 void marshal_VkMultiviewPerViewAttributesInfoNVX(
15760     VulkanStream* vkStream, VkStructureType rootType,
15761     const VkMultiviewPerViewAttributesInfoNVX* forMarshaling) {
15762     (void)rootType;
15763     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15764     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15765         rootType = forMarshaling->sType;
15766     }
15767     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15768     vkStream->write((VkBool32*)&forMarshaling->perViewAttributes, sizeof(VkBool32));
15769     vkStream->write((VkBool32*)&forMarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
15770 }
15771 
unmarshal_VkMultiviewPerViewAttributesInfoNVX(VulkanStream * vkStream,VkStructureType rootType,VkMultiviewPerViewAttributesInfoNVX * forUnmarshaling)15772 void unmarshal_VkMultiviewPerViewAttributesInfoNVX(
15773     VulkanStream* vkStream, VkStructureType rootType,
15774     VkMultiviewPerViewAttributesInfoNVX* forUnmarshaling) {
15775     (void)rootType;
15776     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15777     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15778         rootType = forUnmarshaling->sType;
15779     }
15780     size_t pNext_size;
15781     pNext_size = vkStream->getBe32();
15782     forUnmarshaling->pNext = nullptr;
15783     if (pNext_size) {
15784         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15785         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15786         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15787         vkStream->alloc((void**)&forUnmarshaling->pNext,
15788                         goldfish_vk_extension_struct_size_with_stream_features(
15789                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15790         *(VkStructureType*)forUnmarshaling->pNext = extType;
15791         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15792     }
15793     vkStream->read((VkBool32*)&forUnmarshaling->perViewAttributes, sizeof(VkBool32));
15794     vkStream->read((VkBool32*)&forUnmarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
15795 }
15796 
15797 #endif
15798 #ifdef VK_KHR_multiview
15799 #endif
15800 #ifdef VK_KHR_get_physical_device_properties2
15801 #endif
15802 #ifdef VK_KHR_device_group
15803 #endif
15804 #ifdef VK_KHR_shader_draw_parameters
15805 #endif
15806 #ifdef VK_KHR_maintenance1
15807 #endif
15808 #ifdef VK_KHR_device_group_creation
15809 #endif
15810 #ifdef VK_KHR_external_memory_capabilities
15811 #endif
15812 #ifdef VK_KHR_external_memory
15813 #endif
15814 #ifdef VK_KHR_external_memory_win32
marshal_VkImportMemoryWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkImportMemoryWin32HandleInfoKHR * forMarshaling)15815 void marshal_VkImportMemoryWin32HandleInfoKHR(
15816     VulkanStream* vkStream, VkStructureType rootType,
15817     const VkImportMemoryWin32HandleInfoKHR* forMarshaling) {
15818     (void)rootType;
15819     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15820     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15821         rootType = forMarshaling->sType;
15822     }
15823     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15824     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
15825                     sizeof(VkExternalMemoryHandleTypeFlagBits));
15826     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
15827     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
15828 }
15829 
unmarshal_VkImportMemoryWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportMemoryWin32HandleInfoKHR * forUnmarshaling)15830 void unmarshal_VkImportMemoryWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15831                                                 VkImportMemoryWin32HandleInfoKHR* forUnmarshaling) {
15832     (void)rootType;
15833     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15834     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15835         rootType = forUnmarshaling->sType;
15836     }
15837     size_t pNext_size;
15838     pNext_size = vkStream->getBe32();
15839     forUnmarshaling->pNext = nullptr;
15840     if (pNext_size) {
15841         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15842         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15843         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15844         vkStream->alloc((void**)&forUnmarshaling->pNext,
15845                         goldfish_vk_extension_struct_size_with_stream_features(
15846                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15847         *(VkStructureType*)forUnmarshaling->pNext = extType;
15848         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15849     }
15850     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
15851                    sizeof(VkExternalMemoryHandleTypeFlagBits));
15852     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
15853     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
15854 }
15855 
marshal_VkExportMemoryWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkExportMemoryWin32HandleInfoKHR * forMarshaling)15856 void marshal_VkExportMemoryWin32HandleInfoKHR(
15857     VulkanStream* vkStream, VkStructureType rootType,
15858     const VkExportMemoryWin32HandleInfoKHR* forMarshaling) {
15859     (void)rootType;
15860     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15861     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15862         rootType = forMarshaling->sType;
15863     }
15864     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15865     // WARNING PTR CHECK
15866     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
15867     vkStream->putBe64(cgen_var_0);
15868     if (forMarshaling->pAttributes) {
15869         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes,
15870                         sizeof(const SECURITY_ATTRIBUTES));
15871     }
15872     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
15873     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
15874 }
15875 
unmarshal_VkExportMemoryWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkExportMemoryWin32HandleInfoKHR * forUnmarshaling)15876 void unmarshal_VkExportMemoryWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15877                                                 VkExportMemoryWin32HandleInfoKHR* forUnmarshaling) {
15878     (void)rootType;
15879     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15881         rootType = forUnmarshaling->sType;
15882     }
15883     size_t pNext_size;
15884     pNext_size = vkStream->getBe32();
15885     forUnmarshaling->pNext = nullptr;
15886     if (pNext_size) {
15887         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15888         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15889         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15890         vkStream->alloc((void**)&forUnmarshaling->pNext,
15891                         goldfish_vk_extension_struct_size_with_stream_features(
15892                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15893         *(VkStructureType*)forUnmarshaling->pNext = extType;
15894         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15895     }
15896     // WARNING PTR CHECK
15897     forUnmarshaling->pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
15898     if (forUnmarshaling->pAttributes) {
15899         vkStream->alloc((void**)&forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
15900         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes,
15901                        sizeof(const SECURITY_ATTRIBUTES));
15902     }
15903     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
15904     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
15905 }
15906 
marshal_VkMemoryWin32HandlePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryWin32HandlePropertiesKHR * forMarshaling)15907 void marshal_VkMemoryWin32HandlePropertiesKHR(
15908     VulkanStream* vkStream, VkStructureType rootType,
15909     const VkMemoryWin32HandlePropertiesKHR* forMarshaling) {
15910     (void)rootType;
15911     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15912     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15913         rootType = forMarshaling->sType;
15914     }
15915     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15916     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
15917 }
15918 
unmarshal_VkMemoryWin32HandlePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkMemoryWin32HandlePropertiesKHR * forUnmarshaling)15919 void unmarshal_VkMemoryWin32HandlePropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
15920                                                 VkMemoryWin32HandlePropertiesKHR* forUnmarshaling) {
15921     (void)rootType;
15922     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15923     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15924         rootType = forUnmarshaling->sType;
15925     }
15926     size_t pNext_size;
15927     pNext_size = vkStream->getBe32();
15928     forUnmarshaling->pNext = nullptr;
15929     if (pNext_size) {
15930         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15931         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15932         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15933         vkStream->alloc((void**)&forUnmarshaling->pNext,
15934                         goldfish_vk_extension_struct_size_with_stream_features(
15935                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15936         *(VkStructureType*)forUnmarshaling->pNext = extType;
15937         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15938     }
15939     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
15940 }
15941 
marshal_VkMemoryGetWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryGetWin32HandleInfoKHR * forMarshaling)15942 void marshal_VkMemoryGetWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15943                                            const VkMemoryGetWin32HandleInfoKHR* forMarshaling) {
15944     (void)rootType;
15945     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15946     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15947         rootType = forMarshaling->sType;
15948     }
15949     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15950     uint64_t cgen_var_0;
15951     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
15952                                                              1);
15953     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
15954     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
15955                     sizeof(VkExternalMemoryHandleTypeFlagBits));
15956 }
15957 
unmarshal_VkMemoryGetWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkMemoryGetWin32HandleInfoKHR * forUnmarshaling)15958 void unmarshal_VkMemoryGetWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15959                                              VkMemoryGetWin32HandleInfoKHR* forUnmarshaling) {
15960     (void)rootType;
15961     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
15962     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15963         rootType = forUnmarshaling->sType;
15964     }
15965     size_t pNext_size;
15966     pNext_size = vkStream->getBe32();
15967     forUnmarshaling->pNext = nullptr;
15968     if (pNext_size) {
15969         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
15970         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
15971         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
15972         vkStream->alloc((void**)&forUnmarshaling->pNext,
15973                         goldfish_vk_extension_struct_size_with_stream_features(
15974                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
15975         *(VkStructureType*)forUnmarshaling->pNext = extType;
15976         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
15977     }
15978     uint64_t cgen_var_0;
15979     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
15980     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
15981         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
15982     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
15983                    sizeof(VkExternalMemoryHandleTypeFlagBits));
15984 }
15985 
15986 #endif
15987 #ifdef VK_KHR_external_memory_fd
marshal_VkImportMemoryFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkImportMemoryFdInfoKHR * forMarshaling)15988 void marshal_VkImportMemoryFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
15989                                      const VkImportMemoryFdInfoKHR* forMarshaling) {
15990     (void)rootType;
15991     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
15992     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
15993         rootType = forMarshaling->sType;
15994     }
15995     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
15996     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
15997                     sizeof(VkExternalMemoryHandleTypeFlagBits));
15998     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
15999 }
16000 
unmarshal_VkImportMemoryFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportMemoryFdInfoKHR * forUnmarshaling)16001 void unmarshal_VkImportMemoryFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16002                                        VkImportMemoryFdInfoKHR* forUnmarshaling) {
16003     (void)rootType;
16004     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16005     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16006         rootType = forUnmarshaling->sType;
16007     }
16008     size_t pNext_size;
16009     pNext_size = vkStream->getBe32();
16010     forUnmarshaling->pNext = nullptr;
16011     if (pNext_size) {
16012         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16013         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16014         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16015         vkStream->alloc((void**)&forUnmarshaling->pNext,
16016                         goldfish_vk_extension_struct_size_with_stream_features(
16017                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16018         *(VkStructureType*)forUnmarshaling->pNext = extType;
16019         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16020     }
16021     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
16022                    sizeof(VkExternalMemoryHandleTypeFlagBits));
16023     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
16024 }
16025 
marshal_VkMemoryFdPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryFdPropertiesKHR * forMarshaling)16026 void marshal_VkMemoryFdPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
16027                                      const VkMemoryFdPropertiesKHR* forMarshaling) {
16028     (void)rootType;
16029     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16030     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16031         rootType = forMarshaling->sType;
16032     }
16033     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16034     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
16035 }
16036 
unmarshal_VkMemoryFdPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkMemoryFdPropertiesKHR * forUnmarshaling)16037 void unmarshal_VkMemoryFdPropertiesKHR(VulkanStream* vkStream, VkStructureType rootType,
16038                                        VkMemoryFdPropertiesKHR* forUnmarshaling) {
16039     (void)rootType;
16040     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16041     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16042         rootType = forUnmarshaling->sType;
16043     }
16044     size_t pNext_size;
16045     pNext_size = vkStream->getBe32();
16046     forUnmarshaling->pNext = nullptr;
16047     if (pNext_size) {
16048         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16049         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16050         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16051         vkStream->alloc((void**)&forUnmarshaling->pNext,
16052                         goldfish_vk_extension_struct_size_with_stream_features(
16053                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16054         *(VkStructureType*)forUnmarshaling->pNext = extType;
16055         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16056     }
16057     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
16058 }
16059 
marshal_VkMemoryGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryGetFdInfoKHR * forMarshaling)16060 void marshal_VkMemoryGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16061                                   const VkMemoryGetFdInfoKHR* forMarshaling) {
16062     (void)rootType;
16063     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16064     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16065         rootType = forMarshaling->sType;
16066     }
16067     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16068     uint64_t cgen_var_0;
16069     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
16070                                                              1);
16071     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16072     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
16073                     sizeof(VkExternalMemoryHandleTypeFlagBits));
16074 }
16075 
unmarshal_VkMemoryGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkMemoryGetFdInfoKHR * forUnmarshaling)16076 void unmarshal_VkMemoryGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16077                                     VkMemoryGetFdInfoKHR* forUnmarshaling) {
16078     (void)rootType;
16079     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16080     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16081         rootType = forUnmarshaling->sType;
16082     }
16083     size_t pNext_size;
16084     pNext_size = vkStream->getBe32();
16085     forUnmarshaling->pNext = nullptr;
16086     if (pNext_size) {
16087         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16088         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16089         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16090         vkStream->alloc((void**)&forUnmarshaling->pNext,
16091                         goldfish_vk_extension_struct_size_with_stream_features(
16092                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16093         *(VkStructureType*)forUnmarshaling->pNext = extType;
16094         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16095     }
16096     uint64_t cgen_var_0;
16097     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16098     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
16099         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
16100     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
16101                    sizeof(VkExternalMemoryHandleTypeFlagBits));
16102 }
16103 
16104 #endif
16105 #ifdef VK_KHR_win32_keyed_mutex
marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkWin32KeyedMutexAcquireReleaseInfoKHR * forMarshaling)16106 void marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
16107     VulkanStream* vkStream, VkStructureType rootType,
16108     const VkWin32KeyedMutexAcquireReleaseInfoKHR* forMarshaling) {
16109     (void)rootType;
16110     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16111     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16112         rootType = forMarshaling->sType;
16113     }
16114     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16115     vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
16116     if (forMarshaling->acquireCount) {
16117         uint64_t* cgen_var_0;
16118         vkStream->alloc((void**)&cgen_var_0, forMarshaling->acquireCount * 8);
16119         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(
16120             forMarshaling->pAcquireSyncs, cgen_var_0, forMarshaling->acquireCount);
16121         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->acquireCount * 8);
16122     }
16123     vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys,
16124                     forMarshaling->acquireCount * sizeof(const uint64_t));
16125     vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeouts,
16126                     forMarshaling->acquireCount * sizeof(const uint32_t));
16127     vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
16128     if (forMarshaling->releaseCount) {
16129         uint64_t* cgen_var_1;
16130         vkStream->alloc((void**)&cgen_var_1, forMarshaling->releaseCount * 8);
16131         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(
16132             forMarshaling->pReleaseSyncs, cgen_var_1, forMarshaling->releaseCount);
16133         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->releaseCount * 8);
16134     }
16135     vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys,
16136                     forMarshaling->releaseCount * sizeof(const uint64_t));
16137 }
16138 
unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkWin32KeyedMutexAcquireReleaseInfoKHR * forUnmarshaling)16139 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
16140     VulkanStream* vkStream, VkStructureType rootType,
16141     VkWin32KeyedMutexAcquireReleaseInfoKHR* forUnmarshaling) {
16142     (void)rootType;
16143     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16144     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16145         rootType = forUnmarshaling->sType;
16146     }
16147     size_t pNext_size;
16148     pNext_size = vkStream->getBe32();
16149     forUnmarshaling->pNext = nullptr;
16150     if (pNext_size) {
16151         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16152         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16153         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16154         vkStream->alloc((void**)&forUnmarshaling->pNext,
16155                         goldfish_vk_extension_struct_size_with_stream_features(
16156                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16157         *(VkStructureType*)forUnmarshaling->pNext = extType;
16158         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16159     }
16160     vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
16161     vkStream->alloc((void**)&forUnmarshaling->pAcquireSyncs,
16162                     forUnmarshaling->acquireCount * sizeof(const VkDeviceMemory));
16163     if (forUnmarshaling->acquireCount) {
16164         uint64_t* cgen_var_0;
16165         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->acquireCount * 8);
16166         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->acquireCount * 8);
16167         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
16168             cgen_var_0, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs,
16169             forUnmarshaling->acquireCount);
16170     }
16171     vkStream->alloc((void**)&forUnmarshaling->pAcquireKeys,
16172                     forUnmarshaling->acquireCount * sizeof(const uint64_t));
16173     vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys,
16174                    forUnmarshaling->acquireCount * sizeof(const uint64_t));
16175     vkStream->alloc((void**)&forUnmarshaling->pAcquireTimeouts,
16176                     forUnmarshaling->acquireCount * sizeof(const uint32_t));
16177     vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeouts,
16178                    forUnmarshaling->acquireCount * sizeof(const uint32_t));
16179     vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
16180     vkStream->alloc((void**)&forUnmarshaling->pReleaseSyncs,
16181                     forUnmarshaling->releaseCount * sizeof(const VkDeviceMemory));
16182     if (forUnmarshaling->releaseCount) {
16183         uint64_t* cgen_var_1;
16184         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->releaseCount * 8);
16185         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->releaseCount * 8);
16186         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
16187             cgen_var_1, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs,
16188             forUnmarshaling->releaseCount);
16189     }
16190     vkStream->alloc((void**)&forUnmarshaling->pReleaseKeys,
16191                     forUnmarshaling->releaseCount * sizeof(const uint64_t));
16192     vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys,
16193                    forUnmarshaling->releaseCount * sizeof(const uint64_t));
16194 }
16195 
16196 #endif
16197 #ifdef VK_KHR_external_semaphore_capabilities
16198 #endif
16199 #ifdef VK_KHR_external_semaphore
16200 #endif
16201 #ifdef VK_KHR_external_semaphore_win32
marshal_VkImportSemaphoreWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkImportSemaphoreWin32HandleInfoKHR * forMarshaling)16202 void marshal_VkImportSemaphoreWin32HandleInfoKHR(
16203     VulkanStream* vkStream, VkStructureType rootType,
16204     const VkImportSemaphoreWin32HandleInfoKHR* forMarshaling) {
16205     (void)rootType;
16206     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16207     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16208         rootType = forMarshaling->sType;
16209     }
16210     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16211     uint64_t cgen_var_0;
16212     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
16213                                                           1);
16214     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16215     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
16216     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
16217                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16218     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
16219     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
16220 }
16221 
unmarshal_VkImportSemaphoreWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportSemaphoreWin32HandleInfoKHR * forUnmarshaling)16222 void unmarshal_VkImportSemaphoreWin32HandleInfoKHR(
16223     VulkanStream* vkStream, VkStructureType rootType,
16224     VkImportSemaphoreWin32HandleInfoKHR* forUnmarshaling) {
16225     (void)rootType;
16226     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16227     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16228         rootType = forUnmarshaling->sType;
16229     }
16230     size_t pNext_size;
16231     pNext_size = vkStream->getBe32();
16232     forUnmarshaling->pNext = nullptr;
16233     if (pNext_size) {
16234         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16235         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16236         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16237         vkStream->alloc((void**)&forUnmarshaling->pNext,
16238                         goldfish_vk_extension_struct_size_with_stream_features(
16239                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16240         *(VkStructureType*)forUnmarshaling->pNext = extType;
16241         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16242     }
16243     uint64_t cgen_var_0;
16244     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16245     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
16246         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
16247     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags,
16248                    sizeof(VkSemaphoreImportFlags));
16249     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
16250                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16251     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
16252     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
16253 }
16254 
marshal_VkExportSemaphoreWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkExportSemaphoreWin32HandleInfoKHR * forMarshaling)16255 void marshal_VkExportSemaphoreWin32HandleInfoKHR(
16256     VulkanStream* vkStream, VkStructureType rootType,
16257     const VkExportSemaphoreWin32HandleInfoKHR* forMarshaling) {
16258     (void)rootType;
16259     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16260     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16261         rootType = forMarshaling->sType;
16262     }
16263     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16264     // WARNING PTR CHECK
16265     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
16266     vkStream->putBe64(cgen_var_0);
16267     if (forMarshaling->pAttributes) {
16268         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes,
16269                         sizeof(const SECURITY_ATTRIBUTES));
16270     }
16271     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
16272     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
16273 }
16274 
unmarshal_VkExportSemaphoreWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkExportSemaphoreWin32HandleInfoKHR * forUnmarshaling)16275 void unmarshal_VkExportSemaphoreWin32HandleInfoKHR(
16276     VulkanStream* vkStream, VkStructureType rootType,
16277     VkExportSemaphoreWin32HandleInfoKHR* forUnmarshaling) {
16278     (void)rootType;
16279     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16280     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16281         rootType = forUnmarshaling->sType;
16282     }
16283     size_t pNext_size;
16284     pNext_size = vkStream->getBe32();
16285     forUnmarshaling->pNext = nullptr;
16286     if (pNext_size) {
16287         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16288         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16289         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16290         vkStream->alloc((void**)&forUnmarshaling->pNext,
16291                         goldfish_vk_extension_struct_size_with_stream_features(
16292                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16293         *(VkStructureType*)forUnmarshaling->pNext = extType;
16294         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16295     }
16296     // WARNING PTR CHECK
16297     forUnmarshaling->pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
16298     if (forUnmarshaling->pAttributes) {
16299         vkStream->alloc((void**)&forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
16300         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes,
16301                        sizeof(const SECURITY_ATTRIBUTES));
16302     }
16303     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
16304     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
16305 }
16306 
marshal_VkD3D12FenceSubmitInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkD3D12FenceSubmitInfoKHR * forMarshaling)16307 void marshal_VkD3D12FenceSubmitInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16308                                        const VkD3D12FenceSubmitInfoKHR* forMarshaling) {
16309     (void)rootType;
16310     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16311     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16312         rootType = forMarshaling->sType;
16313     }
16314     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16315     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
16316     // WARNING PTR CHECK
16317     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
16318     vkStream->putBe64(cgen_var_0);
16319     if (forMarshaling->pWaitSemaphoreValues) {
16320         vkStream->write((const uint64_t*)forMarshaling->pWaitSemaphoreValues,
16321                         forMarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
16322     }
16323     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
16324     // WARNING PTR CHECK
16325     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
16326     vkStream->putBe64(cgen_var_1);
16327     if (forMarshaling->pSignalSemaphoreValues) {
16328         vkStream->write((const uint64_t*)forMarshaling->pSignalSemaphoreValues,
16329                         forMarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
16330     }
16331 }
16332 
unmarshal_VkD3D12FenceSubmitInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkD3D12FenceSubmitInfoKHR * forUnmarshaling)16333 void unmarshal_VkD3D12FenceSubmitInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16334                                          VkD3D12FenceSubmitInfoKHR* forUnmarshaling) {
16335     (void)rootType;
16336     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16337     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16338         rootType = forUnmarshaling->sType;
16339     }
16340     size_t pNext_size;
16341     pNext_size = vkStream->getBe32();
16342     forUnmarshaling->pNext = nullptr;
16343     if (pNext_size) {
16344         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16345         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16346         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16347         vkStream->alloc((void**)&forUnmarshaling->pNext,
16348                         goldfish_vk_extension_struct_size_with_stream_features(
16349                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16350         *(VkStructureType*)forUnmarshaling->pNext = extType;
16351         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16352     }
16353     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
16354     // WARNING PTR CHECK
16355     forUnmarshaling->pWaitSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
16356     if (forUnmarshaling->pWaitSemaphoreValues) {
16357         vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphoreValues,
16358                         forUnmarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
16359         vkStream->read((uint64_t*)forUnmarshaling->pWaitSemaphoreValues,
16360                        forUnmarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
16361     }
16362     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
16363     // WARNING PTR CHECK
16364     forUnmarshaling->pSignalSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
16365     if (forUnmarshaling->pSignalSemaphoreValues) {
16366         vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphoreValues,
16367                         forUnmarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
16368         vkStream->read((uint64_t*)forUnmarshaling->pSignalSemaphoreValues,
16369                        forUnmarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
16370     }
16371 }
16372 
marshal_VkSemaphoreGetWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreGetWin32HandleInfoKHR * forMarshaling)16373 void marshal_VkSemaphoreGetWin32HandleInfoKHR(
16374     VulkanStream* vkStream, VkStructureType rootType,
16375     const VkSemaphoreGetWin32HandleInfoKHR* forMarshaling) {
16376     (void)rootType;
16377     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16378     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16379         rootType = forMarshaling->sType;
16380     }
16381     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16382     uint64_t cgen_var_0;
16383     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
16384                                                           1);
16385     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16386     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
16387                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16388 }
16389 
unmarshal_VkSemaphoreGetWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreGetWin32HandleInfoKHR * forUnmarshaling)16390 void unmarshal_VkSemaphoreGetWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16391                                                 VkSemaphoreGetWin32HandleInfoKHR* forUnmarshaling) {
16392     (void)rootType;
16393     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16394     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16395         rootType = forUnmarshaling->sType;
16396     }
16397     size_t pNext_size;
16398     pNext_size = vkStream->getBe32();
16399     forUnmarshaling->pNext = nullptr;
16400     if (pNext_size) {
16401         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16402         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16403         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16404         vkStream->alloc((void**)&forUnmarshaling->pNext,
16405                         goldfish_vk_extension_struct_size_with_stream_features(
16406                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16407         *(VkStructureType*)forUnmarshaling->pNext = extType;
16408         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16409     }
16410     uint64_t cgen_var_0;
16411     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16412     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
16413         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
16414     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
16415                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16416 }
16417 
16418 #endif
16419 #ifdef VK_KHR_external_semaphore_fd
marshal_VkImportSemaphoreFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkImportSemaphoreFdInfoKHR * forMarshaling)16420 void marshal_VkImportSemaphoreFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16421                                         const VkImportSemaphoreFdInfoKHR* forMarshaling) {
16422     (void)rootType;
16423     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16424     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16425         rootType = forMarshaling->sType;
16426     }
16427     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16428     uint64_t cgen_var_0;
16429     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
16430                                                           1);
16431     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16432     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
16433     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
16434                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16435     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
16436 }
16437 
unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportSemaphoreFdInfoKHR * forUnmarshaling)16438 void unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16439                                           VkImportSemaphoreFdInfoKHR* forUnmarshaling) {
16440     (void)rootType;
16441     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16442     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16443         rootType = forUnmarshaling->sType;
16444     }
16445     size_t pNext_size;
16446     pNext_size = vkStream->getBe32();
16447     forUnmarshaling->pNext = nullptr;
16448     if (pNext_size) {
16449         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16450         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16451         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16452         vkStream->alloc((void**)&forUnmarshaling->pNext,
16453                         goldfish_vk_extension_struct_size_with_stream_features(
16454                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16455         *(VkStructureType*)forUnmarshaling->pNext = extType;
16456         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16457     }
16458     uint64_t cgen_var_0;
16459     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16460     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
16461         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
16462     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags,
16463                    sizeof(VkSemaphoreImportFlags));
16464     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
16465                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16466     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
16467 }
16468 
marshal_VkSemaphoreGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreGetFdInfoKHR * forMarshaling)16469 void marshal_VkSemaphoreGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16470                                      const VkSemaphoreGetFdInfoKHR* forMarshaling) {
16471     (void)rootType;
16472     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16473     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16474         rootType = forMarshaling->sType;
16475     }
16476     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16477     uint64_t cgen_var_0;
16478     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
16479                                                           1);
16480     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16481     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
16482                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16483 }
16484 
unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreGetFdInfoKHR * forUnmarshaling)16485 void unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16486                                        VkSemaphoreGetFdInfoKHR* forUnmarshaling) {
16487     (void)rootType;
16488     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16489     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16490         rootType = forUnmarshaling->sType;
16491     }
16492     size_t pNext_size;
16493     pNext_size = vkStream->getBe32();
16494     forUnmarshaling->pNext = nullptr;
16495     if (pNext_size) {
16496         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16497         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16498         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16499         vkStream->alloc((void**)&forUnmarshaling->pNext,
16500                         goldfish_vk_extension_struct_size_with_stream_features(
16501                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16502         *(VkStructureType*)forUnmarshaling->pNext = extType;
16503         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16504     }
16505     uint64_t cgen_var_0;
16506     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16507     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
16508         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
16509     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
16510                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
16511 }
16512 
16513 #endif
16514 #ifdef VK_KHR_push_descriptor
marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePushDescriptorPropertiesKHR * forMarshaling)16515 void marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
16516     VulkanStream* vkStream, VkStructureType rootType,
16517     const VkPhysicalDevicePushDescriptorPropertiesKHR* forMarshaling) {
16518     (void)rootType;
16519     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16520     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16521         rootType = forMarshaling->sType;
16522     }
16523     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16524     vkStream->write((uint32_t*)&forMarshaling->maxPushDescriptors, sizeof(uint32_t));
16525 }
16526 
unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePushDescriptorPropertiesKHR * forUnmarshaling)16527 void unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
16528     VulkanStream* vkStream, VkStructureType rootType,
16529     VkPhysicalDevicePushDescriptorPropertiesKHR* forUnmarshaling) {
16530     (void)rootType;
16531     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16532     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16533         rootType = forUnmarshaling->sType;
16534     }
16535     size_t pNext_size;
16536     pNext_size = vkStream->getBe32();
16537     forUnmarshaling->pNext = nullptr;
16538     if (pNext_size) {
16539         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16540         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16541         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16542         vkStream->alloc((void**)&forUnmarshaling->pNext,
16543                         goldfish_vk_extension_struct_size_with_stream_features(
16544                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16545         *(VkStructureType*)forUnmarshaling->pNext = extType;
16546         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16547     }
16548     vkStream->read((uint32_t*)&forUnmarshaling->maxPushDescriptors, sizeof(uint32_t));
16549 }
16550 
16551 #endif
16552 #ifdef VK_KHR_shader_float16_int8
16553 #endif
16554 #ifdef VK_KHR_16bit_storage
16555 #endif
16556 #ifdef VK_KHR_incremental_present
marshal_VkRectLayerKHR(VulkanStream * vkStream,VkStructureType rootType,const VkRectLayerKHR * forMarshaling)16557 void marshal_VkRectLayerKHR(VulkanStream* vkStream, VkStructureType rootType,
16558                             const VkRectLayerKHR* forMarshaling) {
16559     (void)rootType;
16560     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->offset));
16561     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->extent));
16562     vkStream->write((uint32_t*)&forMarshaling->layer, sizeof(uint32_t));
16563 }
16564 
unmarshal_VkRectLayerKHR(VulkanStream * vkStream,VkStructureType rootType,VkRectLayerKHR * forUnmarshaling)16565 void unmarshal_VkRectLayerKHR(VulkanStream* vkStream, VkStructureType rootType,
16566                               VkRectLayerKHR* forUnmarshaling) {
16567     (void)rootType;
16568     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->offset));
16569     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->extent));
16570     vkStream->read((uint32_t*)&forUnmarshaling->layer, sizeof(uint32_t));
16571 }
16572 
marshal_VkPresentRegionKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPresentRegionKHR * forMarshaling)16573 void marshal_VkPresentRegionKHR(VulkanStream* vkStream, VkStructureType rootType,
16574                                 const VkPresentRegionKHR* forMarshaling) {
16575     (void)rootType;
16576     vkStream->write((uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
16577     // WARNING PTR CHECK
16578     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
16579     vkStream->putBe64(cgen_var_0);
16580     if (forMarshaling->pRectangles) {
16581         if (forMarshaling) {
16582             for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i) {
16583                 marshal_VkRectLayerKHR(vkStream, rootType,
16584                                        (const VkRectLayerKHR*)(forMarshaling->pRectangles + i));
16585             }
16586         }
16587     }
16588 }
16589 
unmarshal_VkPresentRegionKHR(VulkanStream * vkStream,VkStructureType rootType,VkPresentRegionKHR * forUnmarshaling)16590 void unmarshal_VkPresentRegionKHR(VulkanStream* vkStream, VkStructureType rootType,
16591                                   VkPresentRegionKHR* forUnmarshaling) {
16592     (void)rootType;
16593     vkStream->read((uint32_t*)&forUnmarshaling->rectangleCount, sizeof(uint32_t));
16594     // WARNING PTR CHECK
16595     forUnmarshaling->pRectangles = (const VkRectLayerKHR*)(uintptr_t)vkStream->getBe64();
16596     if (forUnmarshaling->pRectangles) {
16597         vkStream->alloc((void**)&forUnmarshaling->pRectangles,
16598                         forUnmarshaling->rectangleCount * sizeof(const VkRectLayerKHR));
16599         if (forUnmarshaling) {
16600             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i) {
16601                 unmarshal_VkRectLayerKHR(vkStream, rootType,
16602                                          (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i));
16603             }
16604         }
16605     }
16606 }
16607 
marshal_VkPresentRegionsKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPresentRegionsKHR * forMarshaling)16608 void marshal_VkPresentRegionsKHR(VulkanStream* vkStream, VkStructureType rootType,
16609                                  const VkPresentRegionsKHR* forMarshaling) {
16610     (void)rootType;
16611     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16612     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16613         rootType = forMarshaling->sType;
16614     }
16615     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16616     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
16617     // WARNING PTR CHECK
16618     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
16619     vkStream->putBe64(cgen_var_0);
16620     if (forMarshaling->pRegions) {
16621         if (forMarshaling) {
16622             for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i) {
16623                 marshal_VkPresentRegionKHR(
16624                     vkStream, rootType, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i));
16625             }
16626         }
16627     }
16628 }
16629 
unmarshal_VkPresentRegionsKHR(VulkanStream * vkStream,VkStructureType rootType,VkPresentRegionsKHR * forUnmarshaling)16630 void unmarshal_VkPresentRegionsKHR(VulkanStream* vkStream, VkStructureType rootType,
16631                                    VkPresentRegionsKHR* forUnmarshaling) {
16632     (void)rootType;
16633     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16634     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16635         rootType = forUnmarshaling->sType;
16636     }
16637     size_t pNext_size;
16638     pNext_size = vkStream->getBe32();
16639     forUnmarshaling->pNext = nullptr;
16640     if (pNext_size) {
16641         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16642         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16643         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16644         vkStream->alloc((void**)&forUnmarshaling->pNext,
16645                         goldfish_vk_extension_struct_size_with_stream_features(
16646                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16647         *(VkStructureType*)forUnmarshaling->pNext = extType;
16648         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16649     }
16650     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
16651     // WARNING PTR CHECK
16652     forUnmarshaling->pRegions = (const VkPresentRegionKHR*)(uintptr_t)vkStream->getBe64();
16653     if (forUnmarshaling->pRegions) {
16654         vkStream->alloc((void**)&forUnmarshaling->pRegions,
16655                         forUnmarshaling->swapchainCount * sizeof(const VkPresentRegionKHR));
16656         if (forUnmarshaling) {
16657             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i) {
16658                 unmarshal_VkPresentRegionKHR(vkStream, rootType,
16659                                              (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i));
16660             }
16661         }
16662     }
16663 }
16664 
16665 #endif
16666 #ifdef VK_KHR_descriptor_update_template
16667 #endif
16668 #ifdef VK_KHR_imageless_framebuffer
16669 #endif
16670 #ifdef VK_KHR_create_renderpass2
16671 #endif
16672 #ifdef VK_KHR_shared_presentable_image
marshal_VkSharedPresentSurfaceCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkSharedPresentSurfaceCapabilitiesKHR * forMarshaling)16673 void marshal_VkSharedPresentSurfaceCapabilitiesKHR(
16674     VulkanStream* vkStream, VkStructureType rootType,
16675     const VkSharedPresentSurfaceCapabilitiesKHR* forMarshaling) {
16676     (void)rootType;
16677     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16678     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16679         rootType = forMarshaling->sType;
16680     }
16681     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16682     vkStream->write((VkImageUsageFlags*)&forMarshaling->sharedPresentSupportedUsageFlags,
16683                     sizeof(VkImageUsageFlags));
16684 }
16685 
unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkSharedPresentSurfaceCapabilitiesKHR * forUnmarshaling)16686 void unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
16687     VulkanStream* vkStream, VkStructureType rootType,
16688     VkSharedPresentSurfaceCapabilitiesKHR* forUnmarshaling) {
16689     (void)rootType;
16690     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16691     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16692         rootType = forUnmarshaling->sType;
16693     }
16694     size_t pNext_size;
16695     pNext_size = vkStream->getBe32();
16696     forUnmarshaling->pNext = nullptr;
16697     if (pNext_size) {
16698         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16699         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16700         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16701         vkStream->alloc((void**)&forUnmarshaling->pNext,
16702                         goldfish_vk_extension_struct_size_with_stream_features(
16703                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16704         *(VkStructureType*)forUnmarshaling->pNext = extType;
16705         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16706     }
16707     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->sharedPresentSupportedUsageFlags,
16708                    sizeof(VkImageUsageFlags));
16709 }
16710 
16711 #endif
16712 #ifdef VK_KHR_external_fence_capabilities
16713 #endif
16714 #ifdef VK_KHR_external_fence
16715 #endif
16716 #ifdef VK_KHR_external_fence_win32
marshal_VkImportFenceWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkImportFenceWin32HandleInfoKHR * forMarshaling)16717 void marshal_VkImportFenceWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16718                                              const VkImportFenceWin32HandleInfoKHR* forMarshaling) {
16719     (void)rootType;
16720     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16721     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16722         rootType = forMarshaling->sType;
16723     }
16724     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16725     uint64_t cgen_var_0;
16726     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
16727     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16728     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
16729     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
16730                     sizeof(VkExternalFenceHandleTypeFlagBits));
16731     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
16732     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
16733 }
16734 
unmarshal_VkImportFenceWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportFenceWin32HandleInfoKHR * forUnmarshaling)16735 void unmarshal_VkImportFenceWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16736                                                VkImportFenceWin32HandleInfoKHR* forUnmarshaling) {
16737     (void)rootType;
16738     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16739     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16740         rootType = forUnmarshaling->sType;
16741     }
16742     size_t pNext_size;
16743     pNext_size = vkStream->getBe32();
16744     forUnmarshaling->pNext = nullptr;
16745     if (pNext_size) {
16746         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16747         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16748         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16749         vkStream->alloc((void**)&forUnmarshaling->pNext,
16750                         goldfish_vk_extension_struct_size_with_stream_features(
16751                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16752         *(VkStructureType*)forUnmarshaling->pNext = extType;
16753         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16754     }
16755     uint64_t cgen_var_0;
16756     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16757     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
16758                                                       (VkFence*)&forUnmarshaling->fence, 1);
16759     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
16760     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
16761                    sizeof(VkExternalFenceHandleTypeFlagBits));
16762     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
16763     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
16764 }
16765 
marshal_VkExportFenceWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkExportFenceWin32HandleInfoKHR * forMarshaling)16766 void marshal_VkExportFenceWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16767                                              const VkExportFenceWin32HandleInfoKHR* forMarshaling) {
16768     (void)rootType;
16769     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16770     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16771         rootType = forMarshaling->sType;
16772     }
16773     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16774     // WARNING PTR CHECK
16775     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
16776     vkStream->putBe64(cgen_var_0);
16777     if (forMarshaling->pAttributes) {
16778         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes,
16779                         sizeof(const SECURITY_ATTRIBUTES));
16780     }
16781     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
16782     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
16783 }
16784 
unmarshal_VkExportFenceWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkExportFenceWin32HandleInfoKHR * forUnmarshaling)16785 void unmarshal_VkExportFenceWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16786                                                VkExportFenceWin32HandleInfoKHR* forUnmarshaling) {
16787     (void)rootType;
16788     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16789     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16790         rootType = forUnmarshaling->sType;
16791     }
16792     size_t pNext_size;
16793     pNext_size = vkStream->getBe32();
16794     forUnmarshaling->pNext = nullptr;
16795     if (pNext_size) {
16796         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16797         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16798         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16799         vkStream->alloc((void**)&forUnmarshaling->pNext,
16800                         goldfish_vk_extension_struct_size_with_stream_features(
16801                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16802         *(VkStructureType*)forUnmarshaling->pNext = extType;
16803         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16804     }
16805     // WARNING PTR CHECK
16806     forUnmarshaling->pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
16807     if (forUnmarshaling->pAttributes) {
16808         vkStream->alloc((void**)&forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
16809         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes,
16810                        sizeof(const SECURITY_ATTRIBUTES));
16811     }
16812     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
16813     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
16814 }
16815 
marshal_VkFenceGetWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkFenceGetWin32HandleInfoKHR * forMarshaling)16816 void marshal_VkFenceGetWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16817                                           const VkFenceGetWin32HandleInfoKHR* forMarshaling) {
16818     (void)rootType;
16819     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16820     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16821         rootType = forMarshaling->sType;
16822     }
16823     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16824     uint64_t cgen_var_0;
16825     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
16826     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16827     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
16828                     sizeof(VkExternalFenceHandleTypeFlagBits));
16829 }
16830 
unmarshal_VkFenceGetWin32HandleInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkFenceGetWin32HandleInfoKHR * forUnmarshaling)16831 void unmarshal_VkFenceGetWin32HandleInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16832                                             VkFenceGetWin32HandleInfoKHR* forUnmarshaling) {
16833     (void)rootType;
16834     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16835     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16836         rootType = forUnmarshaling->sType;
16837     }
16838     size_t pNext_size;
16839     pNext_size = vkStream->getBe32();
16840     forUnmarshaling->pNext = nullptr;
16841     if (pNext_size) {
16842         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16843         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16844         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16845         vkStream->alloc((void**)&forUnmarshaling->pNext,
16846                         goldfish_vk_extension_struct_size_with_stream_features(
16847                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16848         *(VkStructureType*)forUnmarshaling->pNext = extType;
16849         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16850     }
16851     uint64_t cgen_var_0;
16852     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16853     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
16854                                                       (VkFence*)&forUnmarshaling->fence, 1);
16855     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
16856                    sizeof(VkExternalFenceHandleTypeFlagBits));
16857 }
16858 
16859 #endif
16860 #ifdef VK_KHR_external_fence_fd
marshal_VkImportFenceFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkImportFenceFdInfoKHR * forMarshaling)16861 void marshal_VkImportFenceFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16862                                     const VkImportFenceFdInfoKHR* forMarshaling) {
16863     (void)rootType;
16864     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16865     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16866         rootType = forMarshaling->sType;
16867     }
16868     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16869     uint64_t cgen_var_0;
16870     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
16871     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16872     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
16873     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
16874                     sizeof(VkExternalFenceHandleTypeFlagBits));
16875     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
16876 }
16877 
unmarshal_VkImportFenceFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportFenceFdInfoKHR * forUnmarshaling)16878 void unmarshal_VkImportFenceFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16879                                       VkImportFenceFdInfoKHR* forUnmarshaling) {
16880     (void)rootType;
16881     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16882     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16883         rootType = forUnmarshaling->sType;
16884     }
16885     size_t pNext_size;
16886     pNext_size = vkStream->getBe32();
16887     forUnmarshaling->pNext = nullptr;
16888     if (pNext_size) {
16889         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16890         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16891         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16892         vkStream->alloc((void**)&forUnmarshaling->pNext,
16893                         goldfish_vk_extension_struct_size_with_stream_features(
16894                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16895         *(VkStructureType*)forUnmarshaling->pNext = extType;
16896         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16897     }
16898     uint64_t cgen_var_0;
16899     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16900     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
16901                                                       (VkFence*)&forUnmarshaling->fence, 1);
16902     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
16903     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
16904                    sizeof(VkExternalFenceHandleTypeFlagBits));
16905     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
16906 }
16907 
marshal_VkFenceGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkFenceGetFdInfoKHR * forMarshaling)16908 void marshal_VkFenceGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16909                                  const VkFenceGetFdInfoKHR* forMarshaling) {
16910     (void)rootType;
16911     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16912     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16913         rootType = forMarshaling->sType;
16914     }
16915     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16916     uint64_t cgen_var_0;
16917     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
16918     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
16919     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
16920                     sizeof(VkExternalFenceHandleTypeFlagBits));
16921 }
16922 
unmarshal_VkFenceGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkFenceGetFdInfoKHR * forUnmarshaling)16923 void unmarshal_VkFenceGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
16924                                    VkFenceGetFdInfoKHR* forUnmarshaling) {
16925     (void)rootType;
16926     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16928         rootType = forUnmarshaling->sType;
16929     }
16930     size_t pNext_size;
16931     pNext_size = vkStream->getBe32();
16932     forUnmarshaling->pNext = nullptr;
16933     if (pNext_size) {
16934         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16935         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16936         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16937         vkStream->alloc((void**)&forUnmarshaling->pNext,
16938                         goldfish_vk_extension_struct_size_with_stream_features(
16939                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16940         *(VkStructureType*)forUnmarshaling->pNext = extType;
16941         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16942     }
16943     uint64_t cgen_var_0;
16944     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
16945     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
16946                                                       (VkFence*)&forUnmarshaling->fence, 1);
16947     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
16948                    sizeof(VkExternalFenceHandleTypeFlagBits));
16949 }
16950 
16951 #endif
16952 #ifdef VK_KHR_performance_query
marshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePerformanceQueryFeaturesKHR * forMarshaling)16953 void marshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
16954     VulkanStream* vkStream, VkStructureType rootType,
16955     const VkPhysicalDevicePerformanceQueryFeaturesKHR* forMarshaling) {
16956     (void)rootType;
16957     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16958     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16959         rootType = forMarshaling->sType;
16960     }
16961     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
16962     vkStream->write((VkBool32*)&forMarshaling->performanceCounterQueryPools, sizeof(VkBool32));
16963     vkStream->write((VkBool32*)&forMarshaling->performanceCounterMultipleQueryPools,
16964                     sizeof(VkBool32));
16965 }
16966 
unmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePerformanceQueryFeaturesKHR * forUnmarshaling)16967 void unmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
16968     VulkanStream* vkStream, VkStructureType rootType,
16969     VkPhysicalDevicePerformanceQueryFeaturesKHR* forUnmarshaling) {
16970     (void)rootType;
16971     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
16972     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16973         rootType = forUnmarshaling->sType;
16974     }
16975     size_t pNext_size;
16976     pNext_size = vkStream->getBe32();
16977     forUnmarshaling->pNext = nullptr;
16978     if (pNext_size) {
16979         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
16980         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
16981         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
16982         vkStream->alloc((void**)&forUnmarshaling->pNext,
16983                         goldfish_vk_extension_struct_size_with_stream_features(
16984                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
16985         *(VkStructureType*)forUnmarshaling->pNext = extType;
16986         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
16987     }
16988     vkStream->read((VkBool32*)&forUnmarshaling->performanceCounterQueryPools, sizeof(VkBool32));
16989     vkStream->read((VkBool32*)&forUnmarshaling->performanceCounterMultipleQueryPools,
16990                    sizeof(VkBool32));
16991 }
16992 
marshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePerformanceQueryPropertiesKHR * forMarshaling)16993 void marshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
16994     VulkanStream* vkStream, VkStructureType rootType,
16995     const VkPhysicalDevicePerformanceQueryPropertiesKHR* forMarshaling) {
16996     (void)rootType;
16997     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
16998     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
16999         rootType = forMarshaling->sType;
17000     }
17001     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17002     vkStream->write((VkBool32*)&forMarshaling->allowCommandBufferQueryCopies, sizeof(VkBool32));
17003 }
17004 
unmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePerformanceQueryPropertiesKHR * forUnmarshaling)17005 void unmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
17006     VulkanStream* vkStream, VkStructureType rootType,
17007     VkPhysicalDevicePerformanceQueryPropertiesKHR* forUnmarshaling) {
17008     (void)rootType;
17009     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17010     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17011         rootType = forUnmarshaling->sType;
17012     }
17013     size_t pNext_size;
17014     pNext_size = vkStream->getBe32();
17015     forUnmarshaling->pNext = nullptr;
17016     if (pNext_size) {
17017         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17018         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17019         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17020         vkStream->alloc((void**)&forUnmarshaling->pNext,
17021                         goldfish_vk_extension_struct_size_with_stream_features(
17022                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17023         *(VkStructureType*)forUnmarshaling->pNext = extType;
17024         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17025     }
17026     vkStream->read((VkBool32*)&forUnmarshaling->allowCommandBufferQueryCopies, sizeof(VkBool32));
17027 }
17028 
marshal_VkPerformanceCounterKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceCounterKHR * forMarshaling)17029 void marshal_VkPerformanceCounterKHR(VulkanStream* vkStream, VkStructureType rootType,
17030                                      const VkPerformanceCounterKHR* forMarshaling) {
17031     (void)rootType;
17032     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17033     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17034         rootType = forMarshaling->sType;
17035     }
17036     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17037     vkStream->write((VkPerformanceCounterUnitKHR*)&forMarshaling->unit,
17038                     sizeof(VkPerformanceCounterUnitKHR));
17039     vkStream->write((VkPerformanceCounterScopeKHR*)&forMarshaling->scope,
17040                     sizeof(VkPerformanceCounterScopeKHR));
17041     vkStream->write((VkPerformanceCounterStorageKHR*)&forMarshaling->storage,
17042                     sizeof(VkPerformanceCounterStorageKHR));
17043     vkStream->write((uint8_t*)forMarshaling->uuid, VK_UUID_SIZE * sizeof(uint8_t));
17044 }
17045 
unmarshal_VkPerformanceCounterKHR(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceCounterKHR * forUnmarshaling)17046 void unmarshal_VkPerformanceCounterKHR(VulkanStream* vkStream, VkStructureType rootType,
17047                                        VkPerformanceCounterKHR* forUnmarshaling) {
17048     (void)rootType;
17049     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17050     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17051         rootType = forUnmarshaling->sType;
17052     }
17053     size_t pNext_size;
17054     pNext_size = vkStream->getBe32();
17055     forUnmarshaling->pNext = nullptr;
17056     if (pNext_size) {
17057         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17058         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17059         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17060         vkStream->alloc((void**)&forUnmarshaling->pNext,
17061                         goldfish_vk_extension_struct_size_with_stream_features(
17062                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17063         *(VkStructureType*)forUnmarshaling->pNext = extType;
17064         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17065     }
17066     vkStream->read((VkPerformanceCounterUnitKHR*)&forUnmarshaling->unit,
17067                    sizeof(VkPerformanceCounterUnitKHR));
17068     vkStream->read((VkPerformanceCounterScopeKHR*)&forUnmarshaling->scope,
17069                    sizeof(VkPerformanceCounterScopeKHR));
17070     vkStream->read((VkPerformanceCounterStorageKHR*)&forUnmarshaling->storage,
17071                    sizeof(VkPerformanceCounterStorageKHR));
17072     vkStream->read((uint8_t*)forUnmarshaling->uuid, VK_UUID_SIZE * sizeof(uint8_t));
17073 }
17074 
marshal_VkPerformanceCounterDescriptionKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceCounterDescriptionKHR * forMarshaling)17075 void marshal_VkPerformanceCounterDescriptionKHR(
17076     VulkanStream* vkStream, VkStructureType rootType,
17077     const VkPerformanceCounterDescriptionKHR* forMarshaling) {
17078     (void)rootType;
17079     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17080     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17081         rootType = forMarshaling->sType;
17082     }
17083     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17084     vkStream->write((VkPerformanceCounterDescriptionFlagsKHR*)&forMarshaling->flags,
17085                     sizeof(VkPerformanceCounterDescriptionFlagsKHR));
17086     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
17087     vkStream->write((char*)forMarshaling->category, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
17088     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
17089 }
17090 
unmarshal_VkPerformanceCounterDescriptionKHR(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceCounterDescriptionKHR * forUnmarshaling)17091 void unmarshal_VkPerformanceCounterDescriptionKHR(
17092     VulkanStream* vkStream, VkStructureType rootType,
17093     VkPerformanceCounterDescriptionKHR* forUnmarshaling) {
17094     (void)rootType;
17095     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17096     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17097         rootType = forUnmarshaling->sType;
17098     }
17099     size_t pNext_size;
17100     pNext_size = vkStream->getBe32();
17101     forUnmarshaling->pNext = nullptr;
17102     if (pNext_size) {
17103         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17104         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17105         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17106         vkStream->alloc((void**)&forUnmarshaling->pNext,
17107                         goldfish_vk_extension_struct_size_with_stream_features(
17108                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17109         *(VkStructureType*)forUnmarshaling->pNext = extType;
17110         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17111     }
17112     vkStream->read((VkPerformanceCounterDescriptionFlagsKHR*)&forUnmarshaling->flags,
17113                    sizeof(VkPerformanceCounterDescriptionFlagsKHR));
17114     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
17115     vkStream->read((char*)forUnmarshaling->category, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
17116     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
17117 }
17118 
marshal_VkQueryPoolPerformanceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkQueryPoolPerformanceCreateInfoKHR * forMarshaling)17119 void marshal_VkQueryPoolPerformanceCreateInfoKHR(
17120     VulkanStream* vkStream, VkStructureType rootType,
17121     const VkQueryPoolPerformanceCreateInfoKHR* forMarshaling) {
17122     (void)rootType;
17123     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17124     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17125         rootType = forMarshaling->sType;
17126     }
17127     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17128     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
17129     vkStream->write((uint32_t*)&forMarshaling->counterIndexCount, sizeof(uint32_t));
17130     vkStream->write((const uint32_t*)forMarshaling->pCounterIndices,
17131                     forMarshaling->counterIndexCount * sizeof(const uint32_t));
17132 }
17133 
unmarshal_VkQueryPoolPerformanceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkQueryPoolPerformanceCreateInfoKHR * forUnmarshaling)17134 void unmarshal_VkQueryPoolPerformanceCreateInfoKHR(
17135     VulkanStream* vkStream, VkStructureType rootType,
17136     VkQueryPoolPerformanceCreateInfoKHR* forUnmarshaling) {
17137     (void)rootType;
17138     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17139     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17140         rootType = forUnmarshaling->sType;
17141     }
17142     size_t pNext_size;
17143     pNext_size = vkStream->getBe32();
17144     forUnmarshaling->pNext = nullptr;
17145     if (pNext_size) {
17146         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17147         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17148         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17149         vkStream->alloc((void**)&forUnmarshaling->pNext,
17150                         goldfish_vk_extension_struct_size_with_stream_features(
17151                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17152         *(VkStructureType*)forUnmarshaling->pNext = extType;
17153         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17154     }
17155     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
17156     vkStream->read((uint32_t*)&forUnmarshaling->counterIndexCount, sizeof(uint32_t));
17157     vkStream->alloc((void**)&forUnmarshaling->pCounterIndices,
17158                     forUnmarshaling->counterIndexCount * sizeof(const uint32_t));
17159     vkStream->read((uint32_t*)forUnmarshaling->pCounterIndices,
17160                    forUnmarshaling->counterIndexCount * sizeof(const uint32_t));
17161 }
17162 
marshal_VkPerformanceCounterResultKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceCounterResultKHR * forMarshaling)17163 void marshal_VkPerformanceCounterResultKHR(VulkanStream* vkStream, VkStructureType rootType,
17164                                            const VkPerformanceCounterResultKHR* forMarshaling) {
17165     (void)rootType;
17166     vkStream->write((int32_t*)&forMarshaling->int32, sizeof(int32_t));
17167 }
17168 
unmarshal_VkPerformanceCounterResultKHR(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceCounterResultKHR * forUnmarshaling)17169 void unmarshal_VkPerformanceCounterResultKHR(VulkanStream* vkStream, VkStructureType rootType,
17170                                              VkPerformanceCounterResultKHR* forUnmarshaling) {
17171     (void)rootType;
17172     vkStream->read((int32_t*)&forUnmarshaling->int32, sizeof(int32_t));
17173 }
17174 
marshal_VkAcquireProfilingLockInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAcquireProfilingLockInfoKHR * forMarshaling)17175 void marshal_VkAcquireProfilingLockInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17176                                            const VkAcquireProfilingLockInfoKHR* forMarshaling) {
17177     (void)rootType;
17178     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17179     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17180         rootType = forMarshaling->sType;
17181     }
17182     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17183     vkStream->write((VkAcquireProfilingLockFlagsKHR*)&forMarshaling->flags,
17184                     sizeof(VkAcquireProfilingLockFlagsKHR));
17185     vkStream->write((uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
17186 }
17187 
unmarshal_VkAcquireProfilingLockInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAcquireProfilingLockInfoKHR * forUnmarshaling)17188 void unmarshal_VkAcquireProfilingLockInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17189                                              VkAcquireProfilingLockInfoKHR* forUnmarshaling) {
17190     (void)rootType;
17191     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17193         rootType = forUnmarshaling->sType;
17194     }
17195     size_t pNext_size;
17196     pNext_size = vkStream->getBe32();
17197     forUnmarshaling->pNext = nullptr;
17198     if (pNext_size) {
17199         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17200         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17201         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17202         vkStream->alloc((void**)&forUnmarshaling->pNext,
17203                         goldfish_vk_extension_struct_size_with_stream_features(
17204                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17205         *(VkStructureType*)forUnmarshaling->pNext = extType;
17206         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17207     }
17208     vkStream->read((VkAcquireProfilingLockFlagsKHR*)&forUnmarshaling->flags,
17209                    sizeof(VkAcquireProfilingLockFlagsKHR));
17210     vkStream->read((uint64_t*)&forUnmarshaling->timeout, sizeof(uint64_t));
17211 }
17212 
marshal_VkPerformanceQuerySubmitInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceQuerySubmitInfoKHR * forMarshaling)17213 void marshal_VkPerformanceQuerySubmitInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17214                                              const VkPerformanceQuerySubmitInfoKHR* forMarshaling) {
17215     (void)rootType;
17216     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17217     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17218         rootType = forMarshaling->sType;
17219     }
17220     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17221     vkStream->write((uint32_t*)&forMarshaling->counterPassIndex, sizeof(uint32_t));
17222 }
17223 
unmarshal_VkPerformanceQuerySubmitInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceQuerySubmitInfoKHR * forUnmarshaling)17224 void unmarshal_VkPerformanceQuerySubmitInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17225                                                VkPerformanceQuerySubmitInfoKHR* forUnmarshaling) {
17226     (void)rootType;
17227     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17228     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17229         rootType = forUnmarshaling->sType;
17230     }
17231     size_t pNext_size;
17232     pNext_size = vkStream->getBe32();
17233     forUnmarshaling->pNext = nullptr;
17234     if (pNext_size) {
17235         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17236         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17237         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17238         vkStream->alloc((void**)&forUnmarshaling->pNext,
17239                         goldfish_vk_extension_struct_size_with_stream_features(
17240                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17241         *(VkStructureType*)forUnmarshaling->pNext = extType;
17242         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17243     }
17244     vkStream->read((uint32_t*)&forUnmarshaling->counterPassIndex, sizeof(uint32_t));
17245 }
17246 
17247 #endif
17248 #ifdef VK_KHR_maintenance2
17249 #endif
17250 #ifdef VK_KHR_get_surface_capabilities2
marshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSurfaceInfo2KHR * forMarshaling)17251 void marshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStream* vkStream, VkStructureType rootType,
17252                                              const VkPhysicalDeviceSurfaceInfo2KHR* forMarshaling) {
17253     (void)rootType;
17254     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17256         rootType = forMarshaling->sType;
17257     }
17258     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17259     uint64_t cgen_var_0;
17260     vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_0, 1);
17261     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
17262 }
17263 
unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSurfaceInfo2KHR * forUnmarshaling)17264 void unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStream* vkStream, VkStructureType rootType,
17265                                                VkPhysicalDeviceSurfaceInfo2KHR* forUnmarshaling) {
17266     (void)rootType;
17267     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17268     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17269         rootType = forUnmarshaling->sType;
17270     }
17271     size_t pNext_size;
17272     pNext_size = vkStream->getBe32();
17273     forUnmarshaling->pNext = nullptr;
17274     if (pNext_size) {
17275         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17276         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17277         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17278         vkStream->alloc((void**)&forUnmarshaling->pNext,
17279                         goldfish_vk_extension_struct_size_with_stream_features(
17280                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17281         *(VkStructureType*)forUnmarshaling->pNext = extType;
17282         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17283     }
17284     uint64_t cgen_var_0;
17285     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
17286     vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(
17287         &cgen_var_0, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
17288 }
17289 
marshal_VkSurfaceCapabilities2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceCapabilities2KHR * forMarshaling)17290 void marshal_VkSurfaceCapabilities2KHR(VulkanStream* vkStream, VkStructureType rootType,
17291                                        const VkSurfaceCapabilities2KHR* forMarshaling) {
17292     (void)rootType;
17293     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17294     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17295         rootType = forMarshaling->sType;
17296     }
17297     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17298     marshal_VkSurfaceCapabilitiesKHR(
17299         vkStream, rootType, (VkSurfaceCapabilitiesKHR*)(&forMarshaling->surfaceCapabilities));
17300 }
17301 
unmarshal_VkSurfaceCapabilities2KHR(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceCapabilities2KHR * forUnmarshaling)17302 void unmarshal_VkSurfaceCapabilities2KHR(VulkanStream* vkStream, VkStructureType rootType,
17303                                          VkSurfaceCapabilities2KHR* forUnmarshaling) {
17304     (void)rootType;
17305     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17306     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17307         rootType = forUnmarshaling->sType;
17308     }
17309     size_t pNext_size;
17310     pNext_size = vkStream->getBe32();
17311     forUnmarshaling->pNext = nullptr;
17312     if (pNext_size) {
17313         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17314         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17315         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17316         vkStream->alloc((void**)&forUnmarshaling->pNext,
17317                         goldfish_vk_extension_struct_size_with_stream_features(
17318                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17319         *(VkStructureType*)forUnmarshaling->pNext = extType;
17320         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17321     }
17322     unmarshal_VkSurfaceCapabilitiesKHR(
17323         vkStream, rootType, (VkSurfaceCapabilitiesKHR*)(&forUnmarshaling->surfaceCapabilities));
17324 }
17325 
marshal_VkSurfaceFormat2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceFormat2KHR * forMarshaling)17326 void marshal_VkSurfaceFormat2KHR(VulkanStream* vkStream, VkStructureType rootType,
17327                                  const VkSurfaceFormat2KHR* forMarshaling) {
17328     (void)rootType;
17329     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17330     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17331         rootType = forMarshaling->sType;
17332     }
17333     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17334     marshal_VkSurfaceFormatKHR(vkStream, rootType,
17335                                (VkSurfaceFormatKHR*)(&forMarshaling->surfaceFormat));
17336 }
17337 
unmarshal_VkSurfaceFormat2KHR(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceFormat2KHR * forUnmarshaling)17338 void unmarshal_VkSurfaceFormat2KHR(VulkanStream* vkStream, VkStructureType rootType,
17339                                    VkSurfaceFormat2KHR* forUnmarshaling) {
17340     (void)rootType;
17341     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17342     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17343         rootType = forUnmarshaling->sType;
17344     }
17345     size_t pNext_size;
17346     pNext_size = vkStream->getBe32();
17347     forUnmarshaling->pNext = nullptr;
17348     if (pNext_size) {
17349         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17350         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17351         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17352         vkStream->alloc((void**)&forUnmarshaling->pNext,
17353                         goldfish_vk_extension_struct_size_with_stream_features(
17354                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17355         *(VkStructureType*)forUnmarshaling->pNext = extType;
17356         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17357     }
17358     unmarshal_VkSurfaceFormatKHR(vkStream, rootType,
17359                                  (VkSurfaceFormatKHR*)(&forUnmarshaling->surfaceFormat));
17360 }
17361 
17362 #endif
17363 #ifdef VK_KHR_variable_pointers
17364 #endif
17365 #ifdef VK_KHR_get_display_properties2
marshal_VkDisplayProperties2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayProperties2KHR * forMarshaling)17366 void marshal_VkDisplayProperties2KHR(VulkanStream* vkStream, VkStructureType rootType,
17367                                      const VkDisplayProperties2KHR* forMarshaling) {
17368     (void)rootType;
17369     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17370     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17371         rootType = forMarshaling->sType;
17372     }
17373     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17374     marshal_VkDisplayPropertiesKHR(vkStream, rootType,
17375                                    (VkDisplayPropertiesKHR*)(&forMarshaling->displayProperties));
17376 }
17377 
unmarshal_VkDisplayProperties2KHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayProperties2KHR * forUnmarshaling)17378 void unmarshal_VkDisplayProperties2KHR(VulkanStream* vkStream, VkStructureType rootType,
17379                                        VkDisplayProperties2KHR* forUnmarshaling) {
17380     (void)rootType;
17381     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17382     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17383         rootType = forUnmarshaling->sType;
17384     }
17385     size_t pNext_size;
17386     pNext_size = vkStream->getBe32();
17387     forUnmarshaling->pNext = nullptr;
17388     if (pNext_size) {
17389         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17390         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17391         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17392         vkStream->alloc((void**)&forUnmarshaling->pNext,
17393                         goldfish_vk_extension_struct_size_with_stream_features(
17394                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17395         *(VkStructureType*)forUnmarshaling->pNext = extType;
17396         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17397     }
17398     unmarshal_VkDisplayPropertiesKHR(
17399         vkStream, rootType, (VkDisplayPropertiesKHR*)(&forUnmarshaling->displayProperties));
17400 }
17401 
marshal_VkDisplayPlaneProperties2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPlaneProperties2KHR * forMarshaling)17402 void marshal_VkDisplayPlaneProperties2KHR(VulkanStream* vkStream, VkStructureType rootType,
17403                                           const VkDisplayPlaneProperties2KHR* forMarshaling) {
17404     (void)rootType;
17405     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17406     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17407         rootType = forMarshaling->sType;
17408     }
17409     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17410     marshal_VkDisplayPlanePropertiesKHR(
17411         vkStream, rootType, (VkDisplayPlanePropertiesKHR*)(&forMarshaling->displayPlaneProperties));
17412 }
17413 
unmarshal_VkDisplayPlaneProperties2KHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPlaneProperties2KHR * forUnmarshaling)17414 void unmarshal_VkDisplayPlaneProperties2KHR(VulkanStream* vkStream, VkStructureType rootType,
17415                                             VkDisplayPlaneProperties2KHR* forUnmarshaling) {
17416     (void)rootType;
17417     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17418     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17419         rootType = forUnmarshaling->sType;
17420     }
17421     size_t pNext_size;
17422     pNext_size = vkStream->getBe32();
17423     forUnmarshaling->pNext = nullptr;
17424     if (pNext_size) {
17425         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17426         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17427         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17428         vkStream->alloc((void**)&forUnmarshaling->pNext,
17429                         goldfish_vk_extension_struct_size_with_stream_features(
17430                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17431         *(VkStructureType*)forUnmarshaling->pNext = extType;
17432         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17433     }
17434     unmarshal_VkDisplayPlanePropertiesKHR(
17435         vkStream, rootType,
17436         (VkDisplayPlanePropertiesKHR*)(&forUnmarshaling->displayPlaneProperties));
17437 }
17438 
marshal_VkDisplayModeProperties2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayModeProperties2KHR * forMarshaling)17439 void marshal_VkDisplayModeProperties2KHR(VulkanStream* vkStream, VkStructureType rootType,
17440                                          const VkDisplayModeProperties2KHR* forMarshaling) {
17441     (void)rootType;
17442     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17443     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17444         rootType = forMarshaling->sType;
17445     }
17446     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17447     marshal_VkDisplayModePropertiesKHR(
17448         vkStream, rootType, (VkDisplayModePropertiesKHR*)(&forMarshaling->displayModeProperties));
17449 }
17450 
unmarshal_VkDisplayModeProperties2KHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayModeProperties2KHR * forUnmarshaling)17451 void unmarshal_VkDisplayModeProperties2KHR(VulkanStream* vkStream, VkStructureType rootType,
17452                                            VkDisplayModeProperties2KHR* forUnmarshaling) {
17453     (void)rootType;
17454     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17455     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17456         rootType = forUnmarshaling->sType;
17457     }
17458     size_t pNext_size;
17459     pNext_size = vkStream->getBe32();
17460     forUnmarshaling->pNext = nullptr;
17461     if (pNext_size) {
17462         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17463         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17464         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17465         vkStream->alloc((void**)&forUnmarshaling->pNext,
17466                         goldfish_vk_extension_struct_size_with_stream_features(
17467                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17468         *(VkStructureType*)forUnmarshaling->pNext = extType;
17469         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17470     }
17471     unmarshal_VkDisplayModePropertiesKHR(
17472         vkStream, rootType, (VkDisplayModePropertiesKHR*)(&forUnmarshaling->displayModeProperties));
17473 }
17474 
marshal_VkDisplayPlaneInfo2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPlaneInfo2KHR * forMarshaling)17475 void marshal_VkDisplayPlaneInfo2KHR(VulkanStream* vkStream, VkStructureType rootType,
17476                                     const VkDisplayPlaneInfo2KHR* forMarshaling) {
17477     (void)rootType;
17478     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17479     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17480         rootType = forMarshaling->sType;
17481     }
17482     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17483     uint64_t cgen_var_0;
17484     vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->mode, &cgen_var_0,
17485                                                                1);
17486     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
17487     vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
17488 }
17489 
unmarshal_VkDisplayPlaneInfo2KHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPlaneInfo2KHR * forUnmarshaling)17490 void unmarshal_VkDisplayPlaneInfo2KHR(VulkanStream* vkStream, VkStructureType rootType,
17491                                       VkDisplayPlaneInfo2KHR* forUnmarshaling) {
17492     (void)rootType;
17493     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17494     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17495         rootType = forUnmarshaling->sType;
17496     }
17497     size_t pNext_size;
17498     pNext_size = vkStream->getBe32();
17499     forUnmarshaling->pNext = nullptr;
17500     if (pNext_size) {
17501         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17502         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17503         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17504         vkStream->alloc((void**)&forUnmarshaling->pNext,
17505                         goldfish_vk_extension_struct_size_with_stream_features(
17506                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17507         *(VkStructureType*)forUnmarshaling->pNext = extType;
17508         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17509     }
17510     uint64_t cgen_var_0;
17511     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
17512     vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(
17513         &cgen_var_0, (VkDisplayModeKHR*)&forUnmarshaling->mode, 1);
17514     vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
17515 }
17516 
marshal_VkDisplayPlaneCapabilities2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPlaneCapabilities2KHR * forMarshaling)17517 void marshal_VkDisplayPlaneCapabilities2KHR(VulkanStream* vkStream, VkStructureType rootType,
17518                                             const VkDisplayPlaneCapabilities2KHR* forMarshaling) {
17519     (void)rootType;
17520     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17521     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17522         rootType = forMarshaling->sType;
17523     }
17524     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17525     marshal_VkDisplayPlaneCapabilitiesKHR(
17526         vkStream, rootType, (VkDisplayPlaneCapabilitiesKHR*)(&forMarshaling->capabilities));
17527 }
17528 
unmarshal_VkDisplayPlaneCapabilities2KHR(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPlaneCapabilities2KHR * forUnmarshaling)17529 void unmarshal_VkDisplayPlaneCapabilities2KHR(VulkanStream* vkStream, VkStructureType rootType,
17530                                               VkDisplayPlaneCapabilities2KHR* forUnmarshaling) {
17531     (void)rootType;
17532     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17533     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17534         rootType = forUnmarshaling->sType;
17535     }
17536     size_t pNext_size;
17537     pNext_size = vkStream->getBe32();
17538     forUnmarshaling->pNext = nullptr;
17539     if (pNext_size) {
17540         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17541         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17542         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17543         vkStream->alloc((void**)&forUnmarshaling->pNext,
17544                         goldfish_vk_extension_struct_size_with_stream_features(
17545                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17546         *(VkStructureType*)forUnmarshaling->pNext = extType;
17547         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17548     }
17549     unmarshal_VkDisplayPlaneCapabilitiesKHR(
17550         vkStream, rootType, (VkDisplayPlaneCapabilitiesKHR*)(&forUnmarshaling->capabilities));
17551 }
17552 
17553 #endif
17554 #ifdef VK_KHR_dedicated_allocation
17555 #endif
17556 #ifdef VK_KHR_storage_buffer_storage_class
17557 #endif
17558 #ifdef VK_KHR_relaxed_block_layout
17559 #endif
17560 #ifdef VK_KHR_get_memory_requirements2
17561 #endif
17562 #ifdef VK_KHR_image_format_list
17563 #endif
17564 #ifdef VK_KHR_sampler_ycbcr_conversion
17565 #endif
17566 #ifdef VK_KHR_bind_memory2
17567 #endif
17568 #ifdef VK_KHR_portability_subset
marshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePortabilitySubsetFeaturesKHR * forMarshaling)17569 void marshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
17570     VulkanStream* vkStream, VkStructureType rootType,
17571     const VkPhysicalDevicePortabilitySubsetFeaturesKHR* forMarshaling) {
17572     (void)rootType;
17573     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17574     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17575         rootType = forMarshaling->sType;
17576     }
17577     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17578     vkStream->write((VkBool32*)&forMarshaling->constantAlphaColorBlendFactors, sizeof(VkBool32));
17579     vkStream->write((VkBool32*)&forMarshaling->events, sizeof(VkBool32));
17580     vkStream->write((VkBool32*)&forMarshaling->imageViewFormatReinterpretation, sizeof(VkBool32));
17581     vkStream->write((VkBool32*)&forMarshaling->imageViewFormatSwizzle, sizeof(VkBool32));
17582     vkStream->write((VkBool32*)&forMarshaling->imageView2DOn3DImage, sizeof(VkBool32));
17583     vkStream->write((VkBool32*)&forMarshaling->multisampleArrayImage, sizeof(VkBool32));
17584     vkStream->write((VkBool32*)&forMarshaling->mutableComparisonSamplers, sizeof(VkBool32));
17585     vkStream->write((VkBool32*)&forMarshaling->pointPolygons, sizeof(VkBool32));
17586     vkStream->write((VkBool32*)&forMarshaling->samplerMipLodBias, sizeof(VkBool32));
17587     vkStream->write((VkBool32*)&forMarshaling->separateStencilMaskRef, sizeof(VkBool32));
17588     vkStream->write((VkBool32*)&forMarshaling->shaderSampleRateInterpolationFunctions,
17589                     sizeof(VkBool32));
17590     vkStream->write((VkBool32*)&forMarshaling->tessellationIsolines, sizeof(VkBool32));
17591     vkStream->write((VkBool32*)&forMarshaling->tessellationPointMode, sizeof(VkBool32));
17592     vkStream->write((VkBool32*)&forMarshaling->triangleFans, sizeof(VkBool32));
17593     vkStream->write((VkBool32*)&forMarshaling->vertexAttributeAccessBeyondStride, sizeof(VkBool32));
17594 }
17595 
unmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePortabilitySubsetFeaturesKHR * forUnmarshaling)17596 void unmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
17597     VulkanStream* vkStream, VkStructureType rootType,
17598     VkPhysicalDevicePortabilitySubsetFeaturesKHR* forUnmarshaling) {
17599     (void)rootType;
17600     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17601     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17602         rootType = forUnmarshaling->sType;
17603     }
17604     size_t pNext_size;
17605     pNext_size = vkStream->getBe32();
17606     forUnmarshaling->pNext = nullptr;
17607     if (pNext_size) {
17608         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17609         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17610         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17611         vkStream->alloc((void**)&forUnmarshaling->pNext,
17612                         goldfish_vk_extension_struct_size_with_stream_features(
17613                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17614         *(VkStructureType*)forUnmarshaling->pNext = extType;
17615         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17616     }
17617     vkStream->read((VkBool32*)&forUnmarshaling->constantAlphaColorBlendFactors, sizeof(VkBool32));
17618     vkStream->read((VkBool32*)&forUnmarshaling->events, sizeof(VkBool32));
17619     vkStream->read((VkBool32*)&forUnmarshaling->imageViewFormatReinterpretation, sizeof(VkBool32));
17620     vkStream->read((VkBool32*)&forUnmarshaling->imageViewFormatSwizzle, sizeof(VkBool32));
17621     vkStream->read((VkBool32*)&forUnmarshaling->imageView2DOn3DImage, sizeof(VkBool32));
17622     vkStream->read((VkBool32*)&forUnmarshaling->multisampleArrayImage, sizeof(VkBool32));
17623     vkStream->read((VkBool32*)&forUnmarshaling->mutableComparisonSamplers, sizeof(VkBool32));
17624     vkStream->read((VkBool32*)&forUnmarshaling->pointPolygons, sizeof(VkBool32));
17625     vkStream->read((VkBool32*)&forUnmarshaling->samplerMipLodBias, sizeof(VkBool32));
17626     vkStream->read((VkBool32*)&forUnmarshaling->separateStencilMaskRef, sizeof(VkBool32));
17627     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampleRateInterpolationFunctions,
17628                    sizeof(VkBool32));
17629     vkStream->read((VkBool32*)&forUnmarshaling->tessellationIsolines, sizeof(VkBool32));
17630     vkStream->read((VkBool32*)&forUnmarshaling->tessellationPointMode, sizeof(VkBool32));
17631     vkStream->read((VkBool32*)&forUnmarshaling->triangleFans, sizeof(VkBool32));
17632     vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeAccessBeyondStride,
17633                    sizeof(VkBool32));
17634 }
17635 
marshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePortabilitySubsetPropertiesKHR * forMarshaling)17636 void marshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
17637     VulkanStream* vkStream, VkStructureType rootType,
17638     const VkPhysicalDevicePortabilitySubsetPropertiesKHR* forMarshaling) {
17639     (void)rootType;
17640     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17641     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17642         rootType = forMarshaling->sType;
17643     }
17644     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17645     vkStream->write((uint32_t*)&forMarshaling->minVertexInputBindingStrideAlignment,
17646                     sizeof(uint32_t));
17647 }
17648 
unmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePortabilitySubsetPropertiesKHR * forUnmarshaling)17649 void unmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
17650     VulkanStream* vkStream, VkStructureType rootType,
17651     VkPhysicalDevicePortabilitySubsetPropertiesKHR* forUnmarshaling) {
17652     (void)rootType;
17653     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17654     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17655         rootType = forUnmarshaling->sType;
17656     }
17657     size_t pNext_size;
17658     pNext_size = vkStream->getBe32();
17659     forUnmarshaling->pNext = nullptr;
17660     if (pNext_size) {
17661         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17662         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17663         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17664         vkStream->alloc((void**)&forUnmarshaling->pNext,
17665                         goldfish_vk_extension_struct_size_with_stream_features(
17666                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17667         *(VkStructureType*)forUnmarshaling->pNext = extType;
17668         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17669     }
17670     vkStream->read((uint32_t*)&forUnmarshaling->minVertexInputBindingStrideAlignment,
17671                    sizeof(uint32_t));
17672 }
17673 
17674 #endif
17675 #ifdef VK_KHR_maintenance3
17676 #endif
17677 #ifdef VK_KHR_draw_indirect_count
17678 #endif
17679 #ifdef VK_KHR_shader_subgroup_extended_types
17680 #endif
17681 #ifdef VK_KHR_8bit_storage
17682 #endif
17683 #ifdef VK_KHR_shader_atomic_int64
17684 #endif
17685 #ifdef VK_KHR_shader_clock
marshal_VkPhysicalDeviceShaderClockFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderClockFeaturesKHR * forMarshaling)17686 void marshal_VkPhysicalDeviceShaderClockFeaturesKHR(
17687     VulkanStream* vkStream, VkStructureType rootType,
17688     const VkPhysicalDeviceShaderClockFeaturesKHR* forMarshaling) {
17689     (void)rootType;
17690     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17691     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17692         rootType = forMarshaling->sType;
17693     }
17694     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17695     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupClock, sizeof(VkBool32));
17696     vkStream->write((VkBool32*)&forMarshaling->shaderDeviceClock, sizeof(VkBool32));
17697 }
17698 
unmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderClockFeaturesKHR * forUnmarshaling)17699 void unmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(
17700     VulkanStream* vkStream, VkStructureType rootType,
17701     VkPhysicalDeviceShaderClockFeaturesKHR* forUnmarshaling) {
17702     (void)rootType;
17703     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17704     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17705         rootType = forUnmarshaling->sType;
17706     }
17707     size_t pNext_size;
17708     pNext_size = vkStream->getBe32();
17709     forUnmarshaling->pNext = nullptr;
17710     if (pNext_size) {
17711         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17712         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17713         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17714         vkStream->alloc((void**)&forUnmarshaling->pNext,
17715                         goldfish_vk_extension_struct_size_with_stream_features(
17716                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17717         *(VkStructureType*)forUnmarshaling->pNext = extType;
17718         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17719     }
17720     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupClock, sizeof(VkBool32));
17721     vkStream->read((VkBool32*)&forUnmarshaling->shaderDeviceClock, sizeof(VkBool32));
17722 }
17723 
17724 #endif
17725 #ifdef VK_KHR_video_decode_h265
marshal_VkVideoDecodeH265ProfileInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH265ProfileInfoKHR * forMarshaling)17726 void marshal_VkVideoDecodeH265ProfileInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17727                                              const VkVideoDecodeH265ProfileInfoKHR* forMarshaling) {
17728     (void)rootType;
17729     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17730     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17731         rootType = forMarshaling->sType;
17732     }
17733     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17734     vkStream->write((StdVideoH265ProfileIdc*)&forMarshaling->stdProfileIdc,
17735                     sizeof(StdVideoH265ProfileIdc));
17736 }
17737 
unmarshal_VkVideoDecodeH265ProfileInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH265ProfileInfoKHR * forUnmarshaling)17738 void unmarshal_VkVideoDecodeH265ProfileInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17739                                                VkVideoDecodeH265ProfileInfoKHR* forUnmarshaling) {
17740     (void)rootType;
17741     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17742     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17743         rootType = forUnmarshaling->sType;
17744     }
17745     size_t pNext_size;
17746     pNext_size = vkStream->getBe32();
17747     forUnmarshaling->pNext = nullptr;
17748     if (pNext_size) {
17749         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17750         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17751         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17752         vkStream->alloc((void**)&forUnmarshaling->pNext,
17753                         goldfish_vk_extension_struct_size_with_stream_features(
17754                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17755         *(VkStructureType*)forUnmarshaling->pNext = extType;
17756         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17757     }
17758     vkStream->read((StdVideoH265ProfileIdc*)&forUnmarshaling->stdProfileIdc,
17759                    sizeof(StdVideoH265ProfileIdc));
17760 }
17761 
marshal_VkVideoDecodeH265CapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH265CapabilitiesKHR * forMarshaling)17762 void marshal_VkVideoDecodeH265CapabilitiesKHR(
17763     VulkanStream* vkStream, VkStructureType rootType,
17764     const VkVideoDecodeH265CapabilitiesKHR* forMarshaling) {
17765     (void)rootType;
17766     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17767     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17768         rootType = forMarshaling->sType;
17769     }
17770     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17771     vkStream->write((StdVideoH265LevelIdc*)&forMarshaling->maxLevelIdc,
17772                     sizeof(StdVideoH265LevelIdc));
17773 }
17774 
unmarshal_VkVideoDecodeH265CapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH265CapabilitiesKHR * forUnmarshaling)17775 void unmarshal_VkVideoDecodeH265CapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
17776                                                 VkVideoDecodeH265CapabilitiesKHR* forUnmarshaling) {
17777     (void)rootType;
17778     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17779     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17780         rootType = forUnmarshaling->sType;
17781     }
17782     size_t pNext_size;
17783     pNext_size = vkStream->getBe32();
17784     forUnmarshaling->pNext = nullptr;
17785     if (pNext_size) {
17786         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17787         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17788         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17789         vkStream->alloc((void**)&forUnmarshaling->pNext,
17790                         goldfish_vk_extension_struct_size_with_stream_features(
17791                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17792         *(VkStructureType*)forUnmarshaling->pNext = extType;
17793         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17794     }
17795     vkStream->read((StdVideoH265LevelIdc*)&forUnmarshaling->maxLevelIdc,
17796                    sizeof(StdVideoH265LevelIdc));
17797 }
17798 
marshal_VkVideoDecodeH265SessionParametersAddInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH265SessionParametersAddInfoKHR * forMarshaling)17799 void marshal_VkVideoDecodeH265SessionParametersAddInfoKHR(
17800     VulkanStream* vkStream, VkStructureType rootType,
17801     const VkVideoDecodeH265SessionParametersAddInfoKHR* forMarshaling) {
17802     (void)rootType;
17803     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17804     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17805         rootType = forMarshaling->sType;
17806     }
17807     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17808     vkStream->write((uint32_t*)&forMarshaling->stdVPSCount, sizeof(uint32_t));
17809     vkStream->write((const StdVideoH265VideoParameterSet*)forMarshaling->pStdVPSs,
17810                     forMarshaling->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet));
17811     vkStream->write((uint32_t*)&forMarshaling->stdSPSCount, sizeof(uint32_t));
17812     vkStream->write((const StdVideoH265SequenceParameterSet*)forMarshaling->pStdSPSs,
17813                     forMarshaling->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet));
17814     vkStream->write((uint32_t*)&forMarshaling->stdPPSCount, sizeof(uint32_t));
17815     vkStream->write((const StdVideoH265PictureParameterSet*)forMarshaling->pStdPPSs,
17816                     forMarshaling->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet));
17817 }
17818 
unmarshal_VkVideoDecodeH265SessionParametersAddInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH265SessionParametersAddInfoKHR * forUnmarshaling)17819 void unmarshal_VkVideoDecodeH265SessionParametersAddInfoKHR(
17820     VulkanStream* vkStream, VkStructureType rootType,
17821     VkVideoDecodeH265SessionParametersAddInfoKHR* forUnmarshaling) {
17822     (void)rootType;
17823     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17824     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17825         rootType = forUnmarshaling->sType;
17826     }
17827     size_t pNext_size;
17828     pNext_size = vkStream->getBe32();
17829     forUnmarshaling->pNext = nullptr;
17830     if (pNext_size) {
17831         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17832         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17833         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17834         vkStream->alloc((void**)&forUnmarshaling->pNext,
17835                         goldfish_vk_extension_struct_size_with_stream_features(
17836                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17837         *(VkStructureType*)forUnmarshaling->pNext = extType;
17838         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17839     }
17840     vkStream->read((uint32_t*)&forUnmarshaling->stdVPSCount, sizeof(uint32_t));
17841     vkStream->alloc((void**)&forUnmarshaling->pStdVPSs,
17842                     forUnmarshaling->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet));
17843     vkStream->read((StdVideoH265VideoParameterSet*)forUnmarshaling->pStdVPSs,
17844                    forUnmarshaling->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet));
17845     vkStream->read((uint32_t*)&forUnmarshaling->stdSPSCount, sizeof(uint32_t));
17846     vkStream->alloc((void**)&forUnmarshaling->pStdSPSs,
17847                     forUnmarshaling->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet));
17848     vkStream->read((StdVideoH265SequenceParameterSet*)forUnmarshaling->pStdSPSs,
17849                    forUnmarshaling->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet));
17850     vkStream->read((uint32_t*)&forUnmarshaling->stdPPSCount, sizeof(uint32_t));
17851     vkStream->alloc((void**)&forUnmarshaling->pStdPPSs,
17852                     forUnmarshaling->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet));
17853     vkStream->read((StdVideoH265PictureParameterSet*)forUnmarshaling->pStdPPSs,
17854                    forUnmarshaling->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet));
17855 }
17856 
marshal_VkVideoDecodeH265SessionParametersCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH265SessionParametersCreateInfoKHR * forMarshaling)17857 void marshal_VkVideoDecodeH265SessionParametersCreateInfoKHR(
17858     VulkanStream* vkStream, VkStructureType rootType,
17859     const VkVideoDecodeH265SessionParametersCreateInfoKHR* forMarshaling) {
17860     (void)rootType;
17861     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17862     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17863         rootType = forMarshaling->sType;
17864     }
17865     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17866     vkStream->write((uint32_t*)&forMarshaling->maxStdVPSCount, sizeof(uint32_t));
17867     vkStream->write((uint32_t*)&forMarshaling->maxStdSPSCount, sizeof(uint32_t));
17868     vkStream->write((uint32_t*)&forMarshaling->maxStdPPSCount, sizeof(uint32_t));
17869     // WARNING PTR CHECK
17870     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
17871     vkStream->putBe64(cgen_var_0);
17872     if (forMarshaling->pParametersAddInfo) {
17873         marshal_VkVideoDecodeH265SessionParametersAddInfoKHR(
17874             vkStream, rootType,
17875             (const VkVideoDecodeH265SessionParametersAddInfoKHR*)(forMarshaling
17876                                                                       ->pParametersAddInfo));
17877     }
17878 }
17879 
unmarshal_VkVideoDecodeH265SessionParametersCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH265SessionParametersCreateInfoKHR * forUnmarshaling)17880 void unmarshal_VkVideoDecodeH265SessionParametersCreateInfoKHR(
17881     VulkanStream* vkStream, VkStructureType rootType,
17882     VkVideoDecodeH265SessionParametersCreateInfoKHR* forUnmarshaling) {
17883     (void)rootType;
17884     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17885     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17886         rootType = forUnmarshaling->sType;
17887     }
17888     size_t pNext_size;
17889     pNext_size = vkStream->getBe32();
17890     forUnmarshaling->pNext = nullptr;
17891     if (pNext_size) {
17892         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17893         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17894         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17895         vkStream->alloc((void**)&forUnmarshaling->pNext,
17896                         goldfish_vk_extension_struct_size_with_stream_features(
17897                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17898         *(VkStructureType*)forUnmarshaling->pNext = extType;
17899         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17900     }
17901     vkStream->read((uint32_t*)&forUnmarshaling->maxStdVPSCount, sizeof(uint32_t));
17902     vkStream->read((uint32_t*)&forUnmarshaling->maxStdSPSCount, sizeof(uint32_t));
17903     vkStream->read((uint32_t*)&forUnmarshaling->maxStdPPSCount, sizeof(uint32_t));
17904     // WARNING PTR CHECK
17905     forUnmarshaling->pParametersAddInfo =
17906         (const VkVideoDecodeH265SessionParametersAddInfoKHR*)(uintptr_t)vkStream->getBe64();
17907     if (forUnmarshaling->pParametersAddInfo) {
17908         vkStream->alloc((void**)&forUnmarshaling->pParametersAddInfo,
17909                         sizeof(const VkVideoDecodeH265SessionParametersAddInfoKHR));
17910         unmarshal_VkVideoDecodeH265SessionParametersAddInfoKHR(
17911             vkStream, rootType,
17912             (VkVideoDecodeH265SessionParametersAddInfoKHR*)(forUnmarshaling->pParametersAddInfo));
17913     }
17914 }
17915 
marshal_VkVideoDecodeH265PictureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH265PictureInfoKHR * forMarshaling)17916 void marshal_VkVideoDecodeH265PictureInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17917                                              const VkVideoDecodeH265PictureInfoKHR* forMarshaling) {
17918     (void)rootType;
17919     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17920     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17921         rootType = forMarshaling->sType;
17922     }
17923     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17924     vkStream->write((const StdVideoDecodeH265PictureInfo*)forMarshaling->pStdPictureInfo,
17925                     sizeof(const StdVideoDecodeH265PictureInfo));
17926     vkStream->write((uint32_t*)&forMarshaling->sliceSegmentCount, sizeof(uint32_t));
17927     vkStream->write((const uint32_t*)forMarshaling->pSliceSegmentOffsets,
17928                     forMarshaling->sliceSegmentCount * sizeof(const uint32_t));
17929 }
17930 
unmarshal_VkVideoDecodeH265PictureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH265PictureInfoKHR * forUnmarshaling)17931 void unmarshal_VkVideoDecodeH265PictureInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17932                                                VkVideoDecodeH265PictureInfoKHR* forUnmarshaling) {
17933     (void)rootType;
17934     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17935     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17936         rootType = forUnmarshaling->sType;
17937     }
17938     size_t pNext_size;
17939     pNext_size = vkStream->getBe32();
17940     forUnmarshaling->pNext = nullptr;
17941     if (pNext_size) {
17942         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17943         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17944         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17945         vkStream->alloc((void**)&forUnmarshaling->pNext,
17946                         goldfish_vk_extension_struct_size_with_stream_features(
17947                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17948         *(VkStructureType*)forUnmarshaling->pNext = extType;
17949         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17950     }
17951     vkStream->alloc((void**)&forUnmarshaling->pStdPictureInfo,
17952                     sizeof(const StdVideoDecodeH265PictureInfo));
17953     vkStream->read((StdVideoDecodeH265PictureInfo*)forUnmarshaling->pStdPictureInfo,
17954                    sizeof(const StdVideoDecodeH265PictureInfo));
17955     vkStream->read((uint32_t*)&forUnmarshaling->sliceSegmentCount, sizeof(uint32_t));
17956     vkStream->alloc((void**)&forUnmarshaling->pSliceSegmentOffsets,
17957                     forUnmarshaling->sliceSegmentCount * sizeof(const uint32_t));
17958     vkStream->read((uint32_t*)forUnmarshaling->pSliceSegmentOffsets,
17959                    forUnmarshaling->sliceSegmentCount * sizeof(const uint32_t));
17960 }
17961 
marshal_VkVideoDecodeH265DpbSlotInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoDecodeH265DpbSlotInfoKHR * forMarshaling)17962 void marshal_VkVideoDecodeH265DpbSlotInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17963                                              const VkVideoDecodeH265DpbSlotInfoKHR* forMarshaling) {
17964     (void)rootType;
17965     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
17966     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17967         rootType = forMarshaling->sType;
17968     }
17969     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
17970     vkStream->write((const StdVideoDecodeH265ReferenceInfo*)forMarshaling->pStdReferenceInfo,
17971                     sizeof(const StdVideoDecodeH265ReferenceInfo));
17972 }
17973 
unmarshal_VkVideoDecodeH265DpbSlotInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoDecodeH265DpbSlotInfoKHR * forUnmarshaling)17974 void unmarshal_VkVideoDecodeH265DpbSlotInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
17975                                                VkVideoDecodeH265DpbSlotInfoKHR* forUnmarshaling) {
17976     (void)rootType;
17977     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
17978     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
17979         rootType = forUnmarshaling->sType;
17980     }
17981     size_t pNext_size;
17982     pNext_size = vkStream->getBe32();
17983     forUnmarshaling->pNext = nullptr;
17984     if (pNext_size) {
17985         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
17986         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
17987         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
17988         vkStream->alloc((void**)&forUnmarshaling->pNext,
17989                         goldfish_vk_extension_struct_size_with_stream_features(
17990                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
17991         *(VkStructureType*)forUnmarshaling->pNext = extType;
17992         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
17993     }
17994     vkStream->alloc((void**)&forUnmarshaling->pStdReferenceInfo,
17995                     sizeof(const StdVideoDecodeH265ReferenceInfo));
17996     vkStream->read((StdVideoDecodeH265ReferenceInfo*)forUnmarshaling->pStdReferenceInfo,
17997                    sizeof(const StdVideoDecodeH265ReferenceInfo));
17998 }
17999 
18000 #endif
18001 #ifdef VK_KHR_global_priority
marshal_VkDeviceQueueGlobalPriorityCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceQueueGlobalPriorityCreateInfoKHR * forMarshaling)18002 void marshal_VkDeviceQueueGlobalPriorityCreateInfoKHR(
18003     VulkanStream* vkStream, VkStructureType rootType,
18004     const VkDeviceQueueGlobalPriorityCreateInfoKHR* forMarshaling) {
18005     (void)rootType;
18006     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18007     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18008         rootType = forMarshaling->sType;
18009     }
18010     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18011     vkStream->write((VkQueueGlobalPriorityKHR*)&forMarshaling->globalPriority,
18012                     sizeof(VkQueueGlobalPriorityKHR));
18013 }
18014 
unmarshal_VkDeviceQueueGlobalPriorityCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceQueueGlobalPriorityCreateInfoKHR * forUnmarshaling)18015 void unmarshal_VkDeviceQueueGlobalPriorityCreateInfoKHR(
18016     VulkanStream* vkStream, VkStructureType rootType,
18017     VkDeviceQueueGlobalPriorityCreateInfoKHR* forUnmarshaling) {
18018     (void)rootType;
18019     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18020     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18021         rootType = forUnmarshaling->sType;
18022     }
18023     size_t pNext_size;
18024     pNext_size = vkStream->getBe32();
18025     forUnmarshaling->pNext = nullptr;
18026     if (pNext_size) {
18027         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18028         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18029         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18030         vkStream->alloc((void**)&forUnmarshaling->pNext,
18031                         goldfish_vk_extension_struct_size_with_stream_features(
18032                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18033         *(VkStructureType*)forUnmarshaling->pNext = extType;
18034         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18035     }
18036     vkStream->read((VkQueueGlobalPriorityKHR*)&forUnmarshaling->globalPriority,
18037                    sizeof(VkQueueGlobalPriorityKHR));
18038 }
18039 
marshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR * forMarshaling)18040 void marshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(
18041     VulkanStream* vkStream, VkStructureType rootType,
18042     const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* forMarshaling) {
18043     (void)rootType;
18044     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18045     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18046         rootType = forMarshaling->sType;
18047     }
18048     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18049     vkStream->write((VkBool32*)&forMarshaling->globalPriorityQuery, sizeof(VkBool32));
18050 }
18051 
unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR * forUnmarshaling)18052 void unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(
18053     VulkanStream* vkStream, VkStructureType rootType,
18054     VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* forUnmarshaling) {
18055     (void)rootType;
18056     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18057     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18058         rootType = forUnmarshaling->sType;
18059     }
18060     size_t pNext_size;
18061     pNext_size = vkStream->getBe32();
18062     forUnmarshaling->pNext = nullptr;
18063     if (pNext_size) {
18064         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18065         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18066         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18067         vkStream->alloc((void**)&forUnmarshaling->pNext,
18068                         goldfish_vk_extension_struct_size_with_stream_features(
18069                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18070         *(VkStructureType*)forUnmarshaling->pNext = extType;
18071         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18072     }
18073     vkStream->read((VkBool32*)&forUnmarshaling->globalPriorityQuery, sizeof(VkBool32));
18074 }
18075 
marshal_VkQueueFamilyGlobalPriorityPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkQueueFamilyGlobalPriorityPropertiesKHR * forMarshaling)18076 void marshal_VkQueueFamilyGlobalPriorityPropertiesKHR(
18077     VulkanStream* vkStream, VkStructureType rootType,
18078     const VkQueueFamilyGlobalPriorityPropertiesKHR* forMarshaling) {
18079     (void)rootType;
18080     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18081     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18082         rootType = forMarshaling->sType;
18083     }
18084     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18085     vkStream->write((uint32_t*)&forMarshaling->priorityCount, sizeof(uint32_t));
18086     vkStream->write((VkQueueGlobalPriorityKHR*)forMarshaling->priorities,
18087                     VK_MAX_GLOBAL_PRIORITY_SIZE_KHR * sizeof(VkQueueGlobalPriorityKHR));
18088 }
18089 
unmarshal_VkQueueFamilyGlobalPriorityPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyGlobalPriorityPropertiesKHR * forUnmarshaling)18090 void unmarshal_VkQueueFamilyGlobalPriorityPropertiesKHR(
18091     VulkanStream* vkStream, VkStructureType rootType,
18092     VkQueueFamilyGlobalPriorityPropertiesKHR* forUnmarshaling) {
18093     (void)rootType;
18094     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18095     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18096         rootType = forUnmarshaling->sType;
18097     }
18098     size_t pNext_size;
18099     pNext_size = vkStream->getBe32();
18100     forUnmarshaling->pNext = nullptr;
18101     if (pNext_size) {
18102         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18103         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18104         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18105         vkStream->alloc((void**)&forUnmarshaling->pNext,
18106                         goldfish_vk_extension_struct_size_with_stream_features(
18107                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18108         *(VkStructureType*)forUnmarshaling->pNext = extType;
18109         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18110     }
18111     vkStream->read((uint32_t*)&forUnmarshaling->priorityCount, sizeof(uint32_t));
18112     vkStream->read((VkQueueGlobalPriorityKHR*)forUnmarshaling->priorities,
18113                    VK_MAX_GLOBAL_PRIORITY_SIZE_KHR * sizeof(VkQueueGlobalPriorityKHR));
18114 }
18115 
18116 #endif
18117 #ifdef VK_KHR_driver_properties
18118 #endif
18119 #ifdef VK_KHR_shader_float_controls
18120 #endif
18121 #ifdef VK_KHR_depth_stencil_resolve
18122 #endif
18123 #ifdef VK_KHR_swapchain_mutable_format
18124 #endif
18125 #ifdef VK_KHR_timeline_semaphore
18126 #endif
18127 #ifdef VK_KHR_vulkan_memory_model
18128 #endif
18129 #ifdef VK_KHR_shader_terminate_invocation
18130 #endif
18131 #ifdef VK_KHR_fragment_shading_rate
marshal_VkFragmentShadingRateAttachmentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkFragmentShadingRateAttachmentInfoKHR * forMarshaling)18132 void marshal_VkFragmentShadingRateAttachmentInfoKHR(
18133     VulkanStream* vkStream, VkStructureType rootType,
18134     const VkFragmentShadingRateAttachmentInfoKHR* forMarshaling) {
18135     (void)rootType;
18136     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18137     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18138         rootType = forMarshaling->sType;
18139     }
18140     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18141     // WARNING PTR CHECK
18142     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pFragmentShadingRateAttachment;
18143     vkStream->putBe64(cgen_var_0);
18144     if (forMarshaling->pFragmentShadingRateAttachment) {
18145         marshal_VkAttachmentReference2(
18146             vkStream, rootType,
18147             (const VkAttachmentReference2*)(forMarshaling->pFragmentShadingRateAttachment));
18148     }
18149     marshal_VkExtent2D(vkStream, rootType,
18150                        (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize));
18151 }
18152 
unmarshal_VkFragmentShadingRateAttachmentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkFragmentShadingRateAttachmentInfoKHR * forUnmarshaling)18153 void unmarshal_VkFragmentShadingRateAttachmentInfoKHR(
18154     VulkanStream* vkStream, VkStructureType rootType,
18155     VkFragmentShadingRateAttachmentInfoKHR* forUnmarshaling) {
18156     (void)rootType;
18157     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18158     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18159         rootType = forUnmarshaling->sType;
18160     }
18161     size_t pNext_size;
18162     pNext_size = vkStream->getBe32();
18163     forUnmarshaling->pNext = nullptr;
18164     if (pNext_size) {
18165         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18166         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18167         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18168         vkStream->alloc((void**)&forUnmarshaling->pNext,
18169                         goldfish_vk_extension_struct_size_with_stream_features(
18170                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18171         *(VkStructureType*)forUnmarshaling->pNext = extType;
18172         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18173     }
18174     // WARNING PTR CHECK
18175     forUnmarshaling->pFragmentShadingRateAttachment =
18176         (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
18177     if (forUnmarshaling->pFragmentShadingRateAttachment) {
18178         vkStream->alloc((void**)&forUnmarshaling->pFragmentShadingRateAttachment,
18179                         sizeof(const VkAttachmentReference2));
18180         unmarshal_VkAttachmentReference2(
18181             vkStream, rootType,
18182             (VkAttachmentReference2*)(forUnmarshaling->pFragmentShadingRateAttachment));
18183     }
18184     unmarshal_VkExtent2D(vkStream, rootType,
18185                          (VkExtent2D*)(&forUnmarshaling->shadingRateAttachmentTexelSize));
18186 }
18187 
marshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineFragmentShadingRateStateCreateInfoKHR * forMarshaling)18188 void marshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
18189     VulkanStream* vkStream, VkStructureType rootType,
18190     const VkPipelineFragmentShadingRateStateCreateInfoKHR* forMarshaling) {
18191     (void)rootType;
18192     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18193     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18194         rootType = forMarshaling->sType;
18195     }
18196     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18197     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->fragmentSize));
18198     vkStream->write((VkFragmentShadingRateCombinerOpKHR*)forMarshaling->combinerOps,
18199                     2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
18200 }
18201 
unmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineFragmentShadingRateStateCreateInfoKHR * forUnmarshaling)18202 void unmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
18203     VulkanStream* vkStream, VkStructureType rootType,
18204     VkPipelineFragmentShadingRateStateCreateInfoKHR* forUnmarshaling) {
18205     (void)rootType;
18206     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18207     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18208         rootType = forUnmarshaling->sType;
18209     }
18210     size_t pNext_size;
18211     pNext_size = vkStream->getBe32();
18212     forUnmarshaling->pNext = nullptr;
18213     if (pNext_size) {
18214         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18215         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18216         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18217         vkStream->alloc((void**)&forUnmarshaling->pNext,
18218                         goldfish_vk_extension_struct_size_with_stream_features(
18219                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18220         *(VkStructureType*)forUnmarshaling->pNext = extType;
18221         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18222     }
18223     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->fragmentSize));
18224     vkStream->read((VkFragmentShadingRateCombinerOpKHR*)forUnmarshaling->combinerOps,
18225                    2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
18226 }
18227 
marshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShadingRateFeaturesKHR * forMarshaling)18228 void marshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
18229     VulkanStream* vkStream, VkStructureType rootType,
18230     const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forMarshaling) {
18231     (void)rootType;
18232     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18233     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18234         rootType = forMarshaling->sType;
18235     }
18236     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18237     vkStream->write((VkBool32*)&forMarshaling->pipelineFragmentShadingRate, sizeof(VkBool32));
18238     vkStream->write((VkBool32*)&forMarshaling->primitiveFragmentShadingRate, sizeof(VkBool32));
18239     vkStream->write((VkBool32*)&forMarshaling->attachmentFragmentShadingRate, sizeof(VkBool32));
18240 }
18241 
unmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShadingRateFeaturesKHR * forUnmarshaling)18242 void unmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
18243     VulkanStream* vkStream, VkStructureType rootType,
18244     VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forUnmarshaling) {
18245     (void)rootType;
18246     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18247     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18248         rootType = forUnmarshaling->sType;
18249     }
18250     size_t pNext_size;
18251     pNext_size = vkStream->getBe32();
18252     forUnmarshaling->pNext = nullptr;
18253     if (pNext_size) {
18254         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18255         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18256         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18257         vkStream->alloc((void**)&forUnmarshaling->pNext,
18258                         goldfish_vk_extension_struct_size_with_stream_features(
18259                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18260         *(VkStructureType*)forUnmarshaling->pNext = extType;
18261         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18262     }
18263     vkStream->read((VkBool32*)&forUnmarshaling->pipelineFragmentShadingRate, sizeof(VkBool32));
18264     vkStream->read((VkBool32*)&forUnmarshaling->primitiveFragmentShadingRate, sizeof(VkBool32));
18265     vkStream->read((VkBool32*)&forUnmarshaling->attachmentFragmentShadingRate, sizeof(VkBool32));
18266 }
18267 
marshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShadingRatePropertiesKHR * forMarshaling)18268 void marshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
18269     VulkanStream* vkStream, VkStructureType rootType,
18270     const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forMarshaling) {
18271     (void)rootType;
18272     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18273     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18274         rootType = forMarshaling->sType;
18275     }
18276     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18277     marshal_VkExtent2D(vkStream, rootType,
18278                        (VkExtent2D*)(&forMarshaling->minFragmentShadingRateAttachmentTexelSize));
18279     marshal_VkExtent2D(vkStream, rootType,
18280                        (VkExtent2D*)(&forMarshaling->maxFragmentShadingRateAttachmentTexelSize));
18281     vkStream->write((uint32_t*)&forMarshaling->maxFragmentShadingRateAttachmentTexelSizeAspectRatio,
18282                     sizeof(uint32_t));
18283     vkStream->write((VkBool32*)&forMarshaling->primitiveFragmentShadingRateWithMultipleViewports,
18284                     sizeof(VkBool32));
18285     vkStream->write((VkBool32*)&forMarshaling->layeredShadingRateAttachments, sizeof(VkBool32));
18286     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateNonTrivialCombinerOps,
18287                     sizeof(VkBool32));
18288     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxFragmentSize));
18289     vkStream->write((uint32_t*)&forMarshaling->maxFragmentSizeAspectRatio, sizeof(uint32_t));
18290     vkStream->write((uint32_t*)&forMarshaling->maxFragmentShadingRateCoverageSamples,
18291                     sizeof(uint32_t));
18292     vkStream->write(
18293         (VkSampleCountFlagBits*)&forMarshaling->maxFragmentShadingRateRasterizationSamples,
18294         sizeof(VkSampleCountFlagBits));
18295     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithShaderDepthStencilWrites,
18296                     sizeof(VkBool32));
18297     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithSampleMask, sizeof(VkBool32));
18298     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithShaderSampleMask,
18299                     sizeof(VkBool32));
18300     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithConservativeRasterization,
18301                     sizeof(VkBool32));
18302     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithFragmentShaderInterlock,
18303                     sizeof(VkBool32));
18304     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithCustomSampleLocations,
18305                     sizeof(VkBool32));
18306     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateStrictMultiplyCombiner,
18307                     sizeof(VkBool32));
18308 }
18309 
unmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShadingRatePropertiesKHR * forUnmarshaling)18310 void unmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
18311     VulkanStream* vkStream, VkStructureType rootType,
18312     VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forUnmarshaling) {
18313     (void)rootType;
18314     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18315     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18316         rootType = forUnmarshaling->sType;
18317     }
18318     size_t pNext_size;
18319     pNext_size = vkStream->getBe32();
18320     forUnmarshaling->pNext = nullptr;
18321     if (pNext_size) {
18322         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18323         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18324         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18325         vkStream->alloc((void**)&forUnmarshaling->pNext,
18326                         goldfish_vk_extension_struct_size_with_stream_features(
18327                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18328         *(VkStructureType*)forUnmarshaling->pNext = extType;
18329         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18330     }
18331     unmarshal_VkExtent2D(
18332         vkStream, rootType,
18333         (VkExtent2D*)(&forUnmarshaling->minFragmentShadingRateAttachmentTexelSize));
18334     unmarshal_VkExtent2D(
18335         vkStream, rootType,
18336         (VkExtent2D*)(&forUnmarshaling->maxFragmentShadingRateAttachmentTexelSize));
18337     vkStream->read(
18338         (uint32_t*)&forUnmarshaling->maxFragmentShadingRateAttachmentTexelSizeAspectRatio,
18339         sizeof(uint32_t));
18340     vkStream->read((VkBool32*)&forUnmarshaling->primitiveFragmentShadingRateWithMultipleViewports,
18341                    sizeof(VkBool32));
18342     vkStream->read((VkBool32*)&forUnmarshaling->layeredShadingRateAttachments, sizeof(VkBool32));
18343     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateNonTrivialCombinerOps,
18344                    sizeof(VkBool32));
18345     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxFragmentSize));
18346     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentSizeAspectRatio, sizeof(uint32_t));
18347     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentShadingRateCoverageSamples,
18348                    sizeof(uint32_t));
18349     vkStream->read(
18350         (VkSampleCountFlagBits*)&forUnmarshaling->maxFragmentShadingRateRasterizationSamples,
18351         sizeof(VkSampleCountFlagBits));
18352     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithShaderDepthStencilWrites,
18353                    sizeof(VkBool32));
18354     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithSampleMask,
18355                    sizeof(VkBool32));
18356     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithShaderSampleMask,
18357                    sizeof(VkBool32));
18358     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithConservativeRasterization,
18359                    sizeof(VkBool32));
18360     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithFragmentShaderInterlock,
18361                    sizeof(VkBool32));
18362     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithCustomSampleLocations,
18363                    sizeof(VkBool32));
18364     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateStrictMultiplyCombiner,
18365                    sizeof(VkBool32));
18366 }
18367 
marshal_VkPhysicalDeviceFragmentShadingRateKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShadingRateKHR * forMarshaling)18368 void marshal_VkPhysicalDeviceFragmentShadingRateKHR(
18369     VulkanStream* vkStream, VkStructureType rootType,
18370     const VkPhysicalDeviceFragmentShadingRateKHR* forMarshaling) {
18371     (void)rootType;
18372     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18373     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18374         rootType = forMarshaling->sType;
18375     }
18376     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18377     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
18378     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->fragmentSize));
18379 }
18380 
unmarshal_VkPhysicalDeviceFragmentShadingRateKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShadingRateKHR * forUnmarshaling)18381 void unmarshal_VkPhysicalDeviceFragmentShadingRateKHR(
18382     VulkanStream* vkStream, VkStructureType rootType,
18383     VkPhysicalDeviceFragmentShadingRateKHR* forUnmarshaling) {
18384     (void)rootType;
18385     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18386     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18387         rootType = forUnmarshaling->sType;
18388     }
18389     size_t pNext_size;
18390     pNext_size = vkStream->getBe32();
18391     forUnmarshaling->pNext = nullptr;
18392     if (pNext_size) {
18393         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18394         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18395         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18396         vkStream->alloc((void**)&forUnmarshaling->pNext,
18397                         goldfish_vk_extension_struct_size_with_stream_features(
18398                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18399         *(VkStructureType*)forUnmarshaling->pNext = extType;
18400         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18401     }
18402     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
18403     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->fragmentSize));
18404 }
18405 
18406 #endif
18407 #ifdef VK_KHR_spirv_1_4
18408 #endif
18409 #ifdef VK_KHR_surface_protected_capabilities
marshal_VkSurfaceProtectedCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceProtectedCapabilitiesKHR * forMarshaling)18410 void marshal_VkSurfaceProtectedCapabilitiesKHR(
18411     VulkanStream* vkStream, VkStructureType rootType,
18412     const VkSurfaceProtectedCapabilitiesKHR* forMarshaling) {
18413     (void)rootType;
18414     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18415     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18416         rootType = forMarshaling->sType;
18417     }
18418     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18419     vkStream->write((VkBool32*)&forMarshaling->supportsProtected, sizeof(VkBool32));
18420 }
18421 
unmarshal_VkSurfaceProtectedCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceProtectedCapabilitiesKHR * forUnmarshaling)18422 void unmarshal_VkSurfaceProtectedCapabilitiesKHR(
18423     VulkanStream* vkStream, VkStructureType rootType,
18424     VkSurfaceProtectedCapabilitiesKHR* forUnmarshaling) {
18425     (void)rootType;
18426     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18427     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18428         rootType = forUnmarshaling->sType;
18429     }
18430     size_t pNext_size;
18431     pNext_size = vkStream->getBe32();
18432     forUnmarshaling->pNext = nullptr;
18433     if (pNext_size) {
18434         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18435         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18436         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18437         vkStream->alloc((void**)&forUnmarshaling->pNext,
18438                         goldfish_vk_extension_struct_size_with_stream_features(
18439                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18440         *(VkStructureType*)forUnmarshaling->pNext = extType;
18441         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18442     }
18443     vkStream->read((VkBool32*)&forUnmarshaling->supportsProtected, sizeof(VkBool32));
18444 }
18445 
18446 #endif
18447 #ifdef VK_KHR_separate_depth_stencil_layouts
18448 #endif
18449 #ifdef VK_KHR_present_wait
marshal_VkPhysicalDevicePresentWaitFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePresentWaitFeaturesKHR * forMarshaling)18450 void marshal_VkPhysicalDevicePresentWaitFeaturesKHR(
18451     VulkanStream* vkStream, VkStructureType rootType,
18452     const VkPhysicalDevicePresentWaitFeaturesKHR* forMarshaling) {
18453     (void)rootType;
18454     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18455     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18456         rootType = forMarshaling->sType;
18457     }
18458     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18459     vkStream->write((VkBool32*)&forMarshaling->presentWait, sizeof(VkBool32));
18460 }
18461 
unmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePresentWaitFeaturesKHR * forUnmarshaling)18462 void unmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(
18463     VulkanStream* vkStream, VkStructureType rootType,
18464     VkPhysicalDevicePresentWaitFeaturesKHR* forUnmarshaling) {
18465     (void)rootType;
18466     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18467     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18468         rootType = forUnmarshaling->sType;
18469     }
18470     size_t pNext_size;
18471     pNext_size = vkStream->getBe32();
18472     forUnmarshaling->pNext = nullptr;
18473     if (pNext_size) {
18474         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18475         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18476         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18477         vkStream->alloc((void**)&forUnmarshaling->pNext,
18478                         goldfish_vk_extension_struct_size_with_stream_features(
18479                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18480         *(VkStructureType*)forUnmarshaling->pNext = extType;
18481         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18482     }
18483     vkStream->read((VkBool32*)&forUnmarshaling->presentWait, sizeof(VkBool32));
18484 }
18485 
18486 #endif
18487 #ifdef VK_KHR_uniform_buffer_standard_layout
18488 #endif
18489 #ifdef VK_KHR_buffer_device_address
18490 #endif
18491 #ifdef VK_KHR_deferred_host_operations
18492 #endif
18493 #ifdef VK_KHR_pipeline_executable_properties
marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forMarshaling)18494 void marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
18495     VulkanStream* vkStream, VkStructureType rootType,
18496     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling) {
18497     (void)rootType;
18498     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18499     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18500         rootType = forMarshaling->sType;
18501     }
18502     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18503     vkStream->write((VkBool32*)&forMarshaling->pipelineExecutableInfo, sizeof(VkBool32));
18504 }
18505 
unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forUnmarshaling)18506 void unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
18507     VulkanStream* vkStream, VkStructureType rootType,
18508     VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forUnmarshaling) {
18509     (void)rootType;
18510     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18511     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18512         rootType = forUnmarshaling->sType;
18513     }
18514     size_t pNext_size;
18515     pNext_size = vkStream->getBe32();
18516     forUnmarshaling->pNext = nullptr;
18517     if (pNext_size) {
18518         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18519         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18520         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18521         vkStream->alloc((void**)&forUnmarshaling->pNext,
18522                         goldfish_vk_extension_struct_size_with_stream_features(
18523                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18524         *(VkStructureType*)forUnmarshaling->pNext = extType;
18525         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18526     }
18527     vkStream->read((VkBool32*)&forUnmarshaling->pipelineExecutableInfo, sizeof(VkBool32));
18528 }
18529 
marshal_VkPipelineInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineInfoKHR * forMarshaling)18530 void marshal_VkPipelineInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18531                                const VkPipelineInfoKHR* forMarshaling) {
18532     (void)rootType;
18533     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18534     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18535         rootType = forMarshaling->sType;
18536     }
18537     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18538     uint64_t cgen_var_0;
18539     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
18540     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
18541 }
18542 
unmarshal_VkPipelineInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineInfoKHR * forUnmarshaling)18543 void unmarshal_VkPipelineInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18544                                  VkPipelineInfoKHR* forUnmarshaling) {
18545     (void)rootType;
18546     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18547     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18548         rootType = forUnmarshaling->sType;
18549     }
18550     size_t pNext_size;
18551     pNext_size = vkStream->getBe32();
18552     forUnmarshaling->pNext = nullptr;
18553     if (pNext_size) {
18554         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18555         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18556         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18557         vkStream->alloc((void**)&forUnmarshaling->pNext,
18558                         goldfish_vk_extension_struct_size_with_stream_features(
18559                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18560         *(VkStructureType*)forUnmarshaling->pNext = extType;
18561         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18562     }
18563     uint64_t cgen_var_0;
18564     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
18565     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
18566         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
18567 }
18568 
marshal_VkPipelineExecutablePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineExecutablePropertiesKHR * forMarshaling)18569 void marshal_VkPipelineExecutablePropertiesKHR(
18570     VulkanStream* vkStream, VkStructureType rootType,
18571     const VkPipelineExecutablePropertiesKHR* forMarshaling) {
18572     (void)rootType;
18573     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18574     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18575         rootType = forMarshaling->sType;
18576     }
18577     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18578     vkStream->write((VkShaderStageFlags*)&forMarshaling->stages, sizeof(VkShaderStageFlags));
18579     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18580     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18581     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
18582 }
18583 
unmarshal_VkPipelineExecutablePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutablePropertiesKHR * forUnmarshaling)18584 void unmarshal_VkPipelineExecutablePropertiesKHR(
18585     VulkanStream* vkStream, VkStructureType rootType,
18586     VkPipelineExecutablePropertiesKHR* forUnmarshaling) {
18587     (void)rootType;
18588     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18589     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18590         rootType = forUnmarshaling->sType;
18591     }
18592     size_t pNext_size;
18593     pNext_size = vkStream->getBe32();
18594     forUnmarshaling->pNext = nullptr;
18595     if (pNext_size) {
18596         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18597         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18598         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18599         vkStream->alloc((void**)&forUnmarshaling->pNext,
18600                         goldfish_vk_extension_struct_size_with_stream_features(
18601                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18602         *(VkStructureType*)forUnmarshaling->pNext = extType;
18603         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18604     }
18605     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stages, sizeof(VkShaderStageFlags));
18606     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18607     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18608     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
18609 }
18610 
marshal_VkPipelineExecutableInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineExecutableInfoKHR * forMarshaling)18611 void marshal_VkPipelineExecutableInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18612                                          const VkPipelineExecutableInfoKHR* forMarshaling) {
18613     (void)rootType;
18614     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18615     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18616         rootType = forMarshaling->sType;
18617     }
18618     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18619     uint64_t cgen_var_0;
18620     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
18621     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
18622     vkStream->write((uint32_t*)&forMarshaling->executableIndex, sizeof(uint32_t));
18623 }
18624 
unmarshal_VkPipelineExecutableInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableInfoKHR * forUnmarshaling)18625 void unmarshal_VkPipelineExecutableInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18626                                            VkPipelineExecutableInfoKHR* forUnmarshaling) {
18627     (void)rootType;
18628     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18629     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18630         rootType = forUnmarshaling->sType;
18631     }
18632     size_t pNext_size;
18633     pNext_size = vkStream->getBe32();
18634     forUnmarshaling->pNext = nullptr;
18635     if (pNext_size) {
18636         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18637         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18638         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18639         vkStream->alloc((void**)&forUnmarshaling->pNext,
18640                         goldfish_vk_extension_struct_size_with_stream_features(
18641                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18642         *(VkStructureType*)forUnmarshaling->pNext = extType;
18643         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18644     }
18645     uint64_t cgen_var_0;
18646     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
18647     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
18648         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
18649     vkStream->read((uint32_t*)&forUnmarshaling->executableIndex, sizeof(uint32_t));
18650 }
18651 
marshal_VkPipelineExecutableStatisticValueKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticValueKHR * forMarshaling)18652 void marshal_VkPipelineExecutableStatisticValueKHR(
18653     VulkanStream* vkStream, VkStructureType rootType,
18654     const VkPipelineExecutableStatisticValueKHR* forMarshaling) {
18655     (void)rootType;
18656     vkStream->write((VkBool32*)&forMarshaling->b32, sizeof(VkBool32));
18657 }
18658 
unmarshal_VkPipelineExecutableStatisticValueKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticValueKHR * forUnmarshaling)18659 void unmarshal_VkPipelineExecutableStatisticValueKHR(
18660     VulkanStream* vkStream, VkStructureType rootType,
18661     VkPipelineExecutableStatisticValueKHR* forUnmarshaling) {
18662     (void)rootType;
18663     vkStream->read((VkBool32*)&forUnmarshaling->b32, sizeof(VkBool32));
18664 }
18665 
marshal_VkPipelineExecutableStatisticKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticKHR * forMarshaling)18666 void marshal_VkPipelineExecutableStatisticKHR(
18667     VulkanStream* vkStream, VkStructureType rootType,
18668     const VkPipelineExecutableStatisticKHR* forMarshaling) {
18669     (void)rootType;
18670     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18671     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18672         rootType = forMarshaling->sType;
18673     }
18674     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18675     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18676     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18677     vkStream->write((VkPipelineExecutableStatisticFormatKHR*)&forMarshaling->format,
18678                     sizeof(VkPipelineExecutableStatisticFormatKHR));
18679     marshal_VkPipelineExecutableStatisticValueKHR(
18680         vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forMarshaling->value));
18681 }
18682 
unmarshal_VkPipelineExecutableStatisticKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticKHR * forUnmarshaling)18683 void unmarshal_VkPipelineExecutableStatisticKHR(VulkanStream* vkStream, VkStructureType rootType,
18684                                                 VkPipelineExecutableStatisticKHR* forUnmarshaling) {
18685     (void)rootType;
18686     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18687     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18688         rootType = forUnmarshaling->sType;
18689     }
18690     size_t pNext_size;
18691     pNext_size = vkStream->getBe32();
18692     forUnmarshaling->pNext = nullptr;
18693     if (pNext_size) {
18694         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18695         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18696         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18697         vkStream->alloc((void**)&forUnmarshaling->pNext,
18698                         goldfish_vk_extension_struct_size_with_stream_features(
18699                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18700         *(VkStructureType*)forUnmarshaling->pNext = extType;
18701         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18702     }
18703     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18704     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18705     vkStream->read((VkPipelineExecutableStatisticFormatKHR*)&forUnmarshaling->format,
18706                    sizeof(VkPipelineExecutableStatisticFormatKHR));
18707     unmarshal_VkPipelineExecutableStatisticValueKHR(
18708         vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forUnmarshaling->value));
18709 }
18710 
marshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineExecutableInternalRepresentationKHR * forMarshaling)18711 void marshal_VkPipelineExecutableInternalRepresentationKHR(
18712     VulkanStream* vkStream, VkStructureType rootType,
18713     const VkPipelineExecutableInternalRepresentationKHR* forMarshaling) {
18714     (void)rootType;
18715     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18716     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18717         rootType = forMarshaling->sType;
18718     }
18719     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18720     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18721     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18722     vkStream->write((VkBool32*)&forMarshaling->isText, sizeof(VkBool32));
18723     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
18724     vkStream->putBe64(cgen_var_0);
18725     // WARNING PTR CHECK
18726     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pData;
18727     vkStream->putBe64(cgen_var_1);
18728     if (forMarshaling->pData) {
18729         vkStream->write((void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(uint8_t));
18730     }
18731 }
18732 
unmarshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableInternalRepresentationKHR * forUnmarshaling)18733 void unmarshal_VkPipelineExecutableInternalRepresentationKHR(
18734     VulkanStream* vkStream, VkStructureType rootType,
18735     VkPipelineExecutableInternalRepresentationKHR* forUnmarshaling) {
18736     (void)rootType;
18737     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18739         rootType = forUnmarshaling->sType;
18740     }
18741     size_t pNext_size;
18742     pNext_size = vkStream->getBe32();
18743     forUnmarshaling->pNext = nullptr;
18744     if (pNext_size) {
18745         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18746         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18747         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18748         vkStream->alloc((void**)&forUnmarshaling->pNext,
18749                         goldfish_vk_extension_struct_size_with_stream_features(
18750                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18751         *(VkStructureType*)forUnmarshaling->pNext = extType;
18752         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18753     }
18754     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18755     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
18756     vkStream->read((VkBool32*)&forUnmarshaling->isText, sizeof(VkBool32));
18757     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
18758     // WARNING PTR CHECK
18759     forUnmarshaling->pData = (void*)(uintptr_t)vkStream->getBe64();
18760     if (forUnmarshaling->pData) {
18761         vkStream->alloc((void**)&forUnmarshaling->pData,
18762                         forUnmarshaling->dataSize * sizeof(uint8_t));
18763         vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(uint8_t));
18764     }
18765 }
18766 
18767 #endif
18768 #ifdef VK_KHR_map_memory2
marshal_VkMemoryMapInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryMapInfoKHR * forMarshaling)18769 void marshal_VkMemoryMapInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18770                                 const VkMemoryMapInfoKHR* forMarshaling) {
18771     (void)rootType;
18772     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18773     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18774         rootType = forMarshaling->sType;
18775     }
18776     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18777     vkStream->write((VkMemoryMapFlags*)&forMarshaling->flags, sizeof(VkMemoryMapFlags));
18778     uint64_t cgen_var_0;
18779     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
18780                                                              1);
18781     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
18782     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
18783     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
18784 }
18785 
unmarshal_VkMemoryMapInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkMemoryMapInfoKHR * forUnmarshaling)18786 void unmarshal_VkMemoryMapInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18787                                   VkMemoryMapInfoKHR* forUnmarshaling) {
18788     (void)rootType;
18789     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18790     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18791         rootType = forUnmarshaling->sType;
18792     }
18793     size_t pNext_size;
18794     pNext_size = vkStream->getBe32();
18795     forUnmarshaling->pNext = nullptr;
18796     if (pNext_size) {
18797         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18798         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18799         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18800         vkStream->alloc((void**)&forUnmarshaling->pNext,
18801                         goldfish_vk_extension_struct_size_with_stream_features(
18802                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18803         *(VkStructureType*)forUnmarshaling->pNext = extType;
18804         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18805     }
18806     vkStream->read((VkMemoryMapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryMapFlags));
18807     uint64_t cgen_var_0;
18808     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
18809     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
18810         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
18811     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
18812     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
18813 }
18814 
marshal_VkMemoryUnmapInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryUnmapInfoKHR * forMarshaling)18815 void marshal_VkMemoryUnmapInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18816                                   const VkMemoryUnmapInfoKHR* forMarshaling) {
18817     (void)rootType;
18818     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18819     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18820         rootType = forMarshaling->sType;
18821     }
18822     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18823     vkStream->write((VkMemoryUnmapFlagsKHR*)&forMarshaling->flags, sizeof(VkMemoryUnmapFlagsKHR));
18824     uint64_t cgen_var_0;
18825     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
18826                                                              1);
18827     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
18828 }
18829 
unmarshal_VkMemoryUnmapInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkMemoryUnmapInfoKHR * forUnmarshaling)18830 void unmarshal_VkMemoryUnmapInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18831                                     VkMemoryUnmapInfoKHR* forUnmarshaling) {
18832     (void)rootType;
18833     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18834     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18835         rootType = forUnmarshaling->sType;
18836     }
18837     size_t pNext_size;
18838     pNext_size = vkStream->getBe32();
18839     forUnmarshaling->pNext = nullptr;
18840     if (pNext_size) {
18841         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18842         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18843         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18844         vkStream->alloc((void**)&forUnmarshaling->pNext,
18845                         goldfish_vk_extension_struct_size_with_stream_features(
18846                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18847         *(VkStructureType*)forUnmarshaling->pNext = extType;
18848         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18849     }
18850     vkStream->read((VkMemoryUnmapFlagsKHR*)&forUnmarshaling->flags, sizeof(VkMemoryUnmapFlagsKHR));
18851     uint64_t cgen_var_0;
18852     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
18853     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
18854         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
18855 }
18856 
18857 #endif
18858 #ifdef VK_KHR_shader_integer_dot_product
18859 #endif
18860 #ifdef VK_KHR_pipeline_library
marshal_VkPipelineLibraryCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineLibraryCreateInfoKHR * forMarshaling)18861 void marshal_VkPipelineLibraryCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18862                                             const VkPipelineLibraryCreateInfoKHR* forMarshaling) {
18863     (void)rootType;
18864     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18865     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18866         rootType = forMarshaling->sType;
18867     }
18868     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18869     vkStream->write((uint32_t*)&forMarshaling->libraryCount, sizeof(uint32_t));
18870     if (forMarshaling->libraryCount) {
18871         uint64_t* cgen_var_0;
18872         vkStream->alloc((void**)&cgen_var_0, forMarshaling->libraryCount * 8);
18873         vkStream->handleMapping()->mapHandles_VkPipeline_u64(forMarshaling->pLibraries, cgen_var_0,
18874                                                              forMarshaling->libraryCount);
18875         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->libraryCount * 8);
18876     }
18877 }
18878 
unmarshal_VkPipelineLibraryCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineLibraryCreateInfoKHR * forUnmarshaling)18879 void unmarshal_VkPipelineLibraryCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
18880                                               VkPipelineLibraryCreateInfoKHR* forUnmarshaling) {
18881     (void)rootType;
18882     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18883     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18884         rootType = forUnmarshaling->sType;
18885     }
18886     size_t pNext_size;
18887     pNext_size = vkStream->getBe32();
18888     forUnmarshaling->pNext = nullptr;
18889     if (pNext_size) {
18890         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18891         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18892         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18893         vkStream->alloc((void**)&forUnmarshaling->pNext,
18894                         goldfish_vk_extension_struct_size_with_stream_features(
18895                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18896         *(VkStructureType*)forUnmarshaling->pNext = extType;
18897         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18898     }
18899     vkStream->read((uint32_t*)&forUnmarshaling->libraryCount, sizeof(uint32_t));
18900     vkStream->alloc((void**)&forUnmarshaling->pLibraries,
18901                     forUnmarshaling->libraryCount * sizeof(const VkPipeline));
18902     if (forUnmarshaling->libraryCount) {
18903         uint64_t* cgen_var_0;
18904         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->libraryCount * 8);
18905         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->libraryCount * 8);
18906         vkStream->handleMapping()->mapHandles_u64_VkPipeline(
18907             cgen_var_0, (VkPipeline*)forUnmarshaling->pLibraries, forUnmarshaling->libraryCount);
18908     }
18909 }
18910 
18911 #endif
18912 #ifdef VK_KHR_shader_non_semantic_info
18913 #endif
18914 #ifdef VK_KHR_present_id
marshal_VkPresentIdKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPresentIdKHR * forMarshaling)18915 void marshal_VkPresentIdKHR(VulkanStream* vkStream, VkStructureType rootType,
18916                             const VkPresentIdKHR* forMarshaling) {
18917     (void)rootType;
18918     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18919     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18920         rootType = forMarshaling->sType;
18921     }
18922     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18923     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
18924     // WARNING PTR CHECK
18925     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pPresentIds;
18926     vkStream->putBe64(cgen_var_0);
18927     if (forMarshaling->pPresentIds) {
18928         vkStream->write((const uint64_t*)forMarshaling->pPresentIds,
18929                         forMarshaling->swapchainCount * sizeof(const uint64_t));
18930     }
18931 }
18932 
unmarshal_VkPresentIdKHR(VulkanStream * vkStream,VkStructureType rootType,VkPresentIdKHR * forUnmarshaling)18933 void unmarshal_VkPresentIdKHR(VulkanStream* vkStream, VkStructureType rootType,
18934                               VkPresentIdKHR* forUnmarshaling) {
18935     (void)rootType;
18936     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18937     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18938         rootType = forUnmarshaling->sType;
18939     }
18940     size_t pNext_size;
18941     pNext_size = vkStream->getBe32();
18942     forUnmarshaling->pNext = nullptr;
18943     if (pNext_size) {
18944         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18945         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18946         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18947         vkStream->alloc((void**)&forUnmarshaling->pNext,
18948                         goldfish_vk_extension_struct_size_with_stream_features(
18949                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18950         *(VkStructureType*)forUnmarshaling->pNext = extType;
18951         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18952     }
18953     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
18954     // WARNING PTR CHECK
18955     forUnmarshaling->pPresentIds = (const uint64_t*)(uintptr_t)vkStream->getBe64();
18956     if (forUnmarshaling->pPresentIds) {
18957         vkStream->alloc((void**)&forUnmarshaling->pPresentIds,
18958                         forUnmarshaling->swapchainCount * sizeof(const uint64_t));
18959         vkStream->read((uint64_t*)forUnmarshaling->pPresentIds,
18960                        forUnmarshaling->swapchainCount * sizeof(const uint64_t));
18961     }
18962 }
18963 
marshal_VkPhysicalDevicePresentIdFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePresentIdFeaturesKHR * forMarshaling)18964 void marshal_VkPhysicalDevicePresentIdFeaturesKHR(
18965     VulkanStream* vkStream, VkStructureType rootType,
18966     const VkPhysicalDevicePresentIdFeaturesKHR* forMarshaling) {
18967     (void)rootType;
18968     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
18969     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18970         rootType = forMarshaling->sType;
18971     }
18972     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
18973     vkStream->write((VkBool32*)&forMarshaling->presentId, sizeof(VkBool32));
18974 }
18975 
unmarshal_VkPhysicalDevicePresentIdFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePresentIdFeaturesKHR * forUnmarshaling)18976 void unmarshal_VkPhysicalDevicePresentIdFeaturesKHR(
18977     VulkanStream* vkStream, VkStructureType rootType,
18978     VkPhysicalDevicePresentIdFeaturesKHR* forUnmarshaling) {
18979     (void)rootType;
18980     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
18981     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
18982         rootType = forUnmarshaling->sType;
18983     }
18984     size_t pNext_size;
18985     pNext_size = vkStream->getBe32();
18986     forUnmarshaling->pNext = nullptr;
18987     if (pNext_size) {
18988         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
18989         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
18990         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
18991         vkStream->alloc((void**)&forUnmarshaling->pNext,
18992                         goldfish_vk_extension_struct_size_with_stream_features(
18993                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
18994         *(VkStructureType*)forUnmarshaling->pNext = extType;
18995         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
18996     }
18997     vkStream->read((VkBool32*)&forUnmarshaling->presentId, sizeof(VkBool32));
18998 }
18999 
19000 #endif
19001 #ifdef VK_KHR_video_encode_queue
marshal_VkVideoEncodeInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeInfoKHR * forMarshaling)19002 void marshal_VkVideoEncodeInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
19003                                   const VkVideoEncodeInfoKHR* forMarshaling) {
19004     (void)rootType;
19005     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19006     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19007         rootType = forMarshaling->sType;
19008     }
19009     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19010     vkStream->write((VkVideoEncodeFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoEncodeFlagsKHR));
19011     vkStream->write((uint32_t*)&forMarshaling->qualityLevel, sizeof(uint32_t));
19012     uint64_t cgen_var_0;
19013     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBuffer, &cgen_var_0, 1);
19014     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
19015     vkStream->write((VkDeviceSize*)&forMarshaling->dstBufferOffset, sizeof(VkDeviceSize));
19016     vkStream->write((VkDeviceSize*)&forMarshaling->dstBufferRange, sizeof(VkDeviceSize));
19017     marshal_VkVideoPictureResourceInfoKHR(
19018         vkStream, rootType, (VkVideoPictureResourceInfoKHR*)(&forMarshaling->srcPictureResource));
19019     // WARNING PTR CHECK
19020     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSetupReferenceSlot;
19021     vkStream->putBe64(cgen_var_1);
19022     if (forMarshaling->pSetupReferenceSlot) {
19023         marshal_VkVideoReferenceSlotInfoKHR(
19024             vkStream, rootType,
19025             (const VkVideoReferenceSlotInfoKHR*)(forMarshaling->pSetupReferenceSlot));
19026     }
19027     vkStream->write((uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
19028     if (forMarshaling) {
19029         for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i) {
19030             marshal_VkVideoReferenceSlotInfoKHR(
19031                 vkStream, rootType,
19032                 (const VkVideoReferenceSlotInfoKHR*)(forMarshaling->pReferenceSlots + i));
19033         }
19034     }
19035     vkStream->write((uint32_t*)&forMarshaling->precedingExternallyEncodedBytes, sizeof(uint32_t));
19036 }
19037 
unmarshal_VkVideoEncodeInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeInfoKHR * forUnmarshaling)19038 void unmarshal_VkVideoEncodeInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
19039                                     VkVideoEncodeInfoKHR* forUnmarshaling) {
19040     (void)rootType;
19041     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19042     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19043         rootType = forUnmarshaling->sType;
19044     }
19045     size_t pNext_size;
19046     pNext_size = vkStream->getBe32();
19047     forUnmarshaling->pNext = nullptr;
19048     if (pNext_size) {
19049         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19050         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19051         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19052         vkStream->alloc((void**)&forUnmarshaling->pNext,
19053                         goldfish_vk_extension_struct_size_with_stream_features(
19054                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19055         *(VkStructureType*)forUnmarshaling->pNext = extType;
19056         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19057     }
19058     vkStream->read((VkVideoEncodeFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoEncodeFlagsKHR));
19059     vkStream->read((uint32_t*)&forUnmarshaling->qualityLevel, sizeof(uint32_t));
19060     uint64_t cgen_var_0;
19061     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
19062     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
19063                                                        (VkBuffer*)&forUnmarshaling->dstBuffer, 1);
19064     vkStream->read((VkDeviceSize*)&forUnmarshaling->dstBufferOffset, sizeof(VkDeviceSize));
19065     vkStream->read((VkDeviceSize*)&forUnmarshaling->dstBufferRange, sizeof(VkDeviceSize));
19066     unmarshal_VkVideoPictureResourceInfoKHR(
19067         vkStream, rootType, (VkVideoPictureResourceInfoKHR*)(&forUnmarshaling->srcPictureResource));
19068     // WARNING PTR CHECK
19069     forUnmarshaling->pSetupReferenceSlot =
19070         (const VkVideoReferenceSlotInfoKHR*)(uintptr_t)vkStream->getBe64();
19071     if (forUnmarshaling->pSetupReferenceSlot) {
19072         vkStream->alloc((void**)&forUnmarshaling->pSetupReferenceSlot,
19073                         sizeof(const VkVideoReferenceSlotInfoKHR));
19074         unmarshal_VkVideoReferenceSlotInfoKHR(
19075             vkStream, rootType,
19076             (VkVideoReferenceSlotInfoKHR*)(forUnmarshaling->pSetupReferenceSlot));
19077     }
19078     vkStream->read((uint32_t*)&forUnmarshaling->referenceSlotCount, sizeof(uint32_t));
19079     vkStream->alloc(
19080         (void**)&forUnmarshaling->pReferenceSlots,
19081         forUnmarshaling->referenceSlotCount * sizeof(const VkVideoReferenceSlotInfoKHR));
19082     if (forUnmarshaling) {
19083         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceSlotCount; ++i) {
19084             unmarshal_VkVideoReferenceSlotInfoKHR(
19085                 vkStream, rootType,
19086                 (VkVideoReferenceSlotInfoKHR*)(forUnmarshaling->pReferenceSlots + i));
19087         }
19088     }
19089     vkStream->read((uint32_t*)&forUnmarshaling->precedingExternallyEncodedBytes, sizeof(uint32_t));
19090 }
19091 
marshal_VkVideoEncodeCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeCapabilitiesKHR * forMarshaling)19092 void marshal_VkVideoEncodeCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
19093                                           const VkVideoEncodeCapabilitiesKHR* forMarshaling) {
19094     (void)rootType;
19095     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19096     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19097         rootType = forMarshaling->sType;
19098     }
19099     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19100     vkStream->write((VkVideoEncodeCapabilityFlagsKHR*)&forMarshaling->flags,
19101                     sizeof(VkVideoEncodeCapabilityFlagsKHR));
19102     vkStream->write((VkVideoEncodeRateControlModeFlagsKHR*)&forMarshaling->rateControlModes,
19103                     sizeof(VkVideoEncodeRateControlModeFlagsKHR));
19104     vkStream->write((uint32_t*)&forMarshaling->maxRateControlLayers, sizeof(uint32_t));
19105     vkStream->write((uint32_t*)&forMarshaling->maxQualityLevels, sizeof(uint32_t));
19106     marshal_VkExtent2D(vkStream, rootType,
19107                        (VkExtent2D*)(&forMarshaling->inputImageDataFillAlignment));
19108     vkStream->write((VkVideoEncodeFeedbackFlagsKHR*)&forMarshaling->supportedEncodeFeedbackFlags,
19109                     sizeof(VkVideoEncodeFeedbackFlagsKHR));
19110 }
19111 
unmarshal_VkVideoEncodeCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeCapabilitiesKHR * forUnmarshaling)19112 void unmarshal_VkVideoEncodeCapabilitiesKHR(VulkanStream* vkStream, VkStructureType rootType,
19113                                             VkVideoEncodeCapabilitiesKHR* forUnmarshaling) {
19114     (void)rootType;
19115     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19116     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19117         rootType = forUnmarshaling->sType;
19118     }
19119     size_t pNext_size;
19120     pNext_size = vkStream->getBe32();
19121     forUnmarshaling->pNext = nullptr;
19122     if (pNext_size) {
19123         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19124         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19125         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19126         vkStream->alloc((void**)&forUnmarshaling->pNext,
19127                         goldfish_vk_extension_struct_size_with_stream_features(
19128                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19129         *(VkStructureType*)forUnmarshaling->pNext = extType;
19130         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19131     }
19132     vkStream->read((VkVideoEncodeCapabilityFlagsKHR*)&forUnmarshaling->flags,
19133                    sizeof(VkVideoEncodeCapabilityFlagsKHR));
19134     vkStream->read((VkVideoEncodeRateControlModeFlagsKHR*)&forUnmarshaling->rateControlModes,
19135                    sizeof(VkVideoEncodeRateControlModeFlagsKHR));
19136     vkStream->read((uint32_t*)&forUnmarshaling->maxRateControlLayers, sizeof(uint32_t));
19137     vkStream->read((uint32_t*)&forUnmarshaling->maxQualityLevels, sizeof(uint32_t));
19138     unmarshal_VkExtent2D(vkStream, rootType,
19139                          (VkExtent2D*)(&forUnmarshaling->inputImageDataFillAlignment));
19140     vkStream->read((VkVideoEncodeFeedbackFlagsKHR*)&forUnmarshaling->supportedEncodeFeedbackFlags,
19141                    sizeof(VkVideoEncodeFeedbackFlagsKHR));
19142 }
19143 
marshal_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR * forMarshaling)19144 void marshal_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(
19145     VulkanStream* vkStream, VkStructureType rootType,
19146     const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR* forMarshaling) {
19147     (void)rootType;
19148     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19149     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19150         rootType = forMarshaling->sType;
19151     }
19152     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19153     vkStream->write((VkVideoEncodeFeedbackFlagsKHR*)&forMarshaling->encodeFeedbackFlags,
19154                     sizeof(VkVideoEncodeFeedbackFlagsKHR));
19155 }
19156 
unmarshal_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkQueryPoolVideoEncodeFeedbackCreateInfoKHR * forUnmarshaling)19157 void unmarshal_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(
19158     VulkanStream* vkStream, VkStructureType rootType,
19159     VkQueryPoolVideoEncodeFeedbackCreateInfoKHR* forUnmarshaling) {
19160     (void)rootType;
19161     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19162     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19163         rootType = forUnmarshaling->sType;
19164     }
19165     size_t pNext_size;
19166     pNext_size = vkStream->getBe32();
19167     forUnmarshaling->pNext = nullptr;
19168     if (pNext_size) {
19169         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19170         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19171         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19172         vkStream->alloc((void**)&forUnmarshaling->pNext,
19173                         goldfish_vk_extension_struct_size_with_stream_features(
19174                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19175         *(VkStructureType*)forUnmarshaling->pNext = extType;
19176         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19177     }
19178     vkStream->read((VkVideoEncodeFeedbackFlagsKHR*)&forUnmarshaling->encodeFeedbackFlags,
19179                    sizeof(VkVideoEncodeFeedbackFlagsKHR));
19180 }
19181 
marshal_VkVideoEncodeUsageInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeUsageInfoKHR * forMarshaling)19182 void marshal_VkVideoEncodeUsageInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
19183                                        const VkVideoEncodeUsageInfoKHR* forMarshaling) {
19184     (void)rootType;
19185     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19186     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19187         rootType = forMarshaling->sType;
19188     }
19189     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19190     vkStream->write((VkVideoEncodeUsageFlagsKHR*)&forMarshaling->videoUsageHints,
19191                     sizeof(VkVideoEncodeUsageFlagsKHR));
19192     vkStream->write((VkVideoEncodeContentFlagsKHR*)&forMarshaling->videoContentHints,
19193                     sizeof(VkVideoEncodeContentFlagsKHR));
19194     vkStream->write((VkVideoEncodeTuningModeKHR*)&forMarshaling->tuningMode,
19195                     sizeof(VkVideoEncodeTuningModeKHR));
19196 }
19197 
unmarshal_VkVideoEncodeUsageInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeUsageInfoKHR * forUnmarshaling)19198 void unmarshal_VkVideoEncodeUsageInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
19199                                          VkVideoEncodeUsageInfoKHR* forUnmarshaling) {
19200     (void)rootType;
19201     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19202     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19203         rootType = forUnmarshaling->sType;
19204     }
19205     size_t pNext_size;
19206     pNext_size = vkStream->getBe32();
19207     forUnmarshaling->pNext = nullptr;
19208     if (pNext_size) {
19209         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19210         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19211         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19212         vkStream->alloc((void**)&forUnmarshaling->pNext,
19213                         goldfish_vk_extension_struct_size_with_stream_features(
19214                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19215         *(VkStructureType*)forUnmarshaling->pNext = extType;
19216         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19217     }
19218     vkStream->read((VkVideoEncodeUsageFlagsKHR*)&forUnmarshaling->videoUsageHints,
19219                    sizeof(VkVideoEncodeUsageFlagsKHR));
19220     vkStream->read((VkVideoEncodeContentFlagsKHR*)&forUnmarshaling->videoContentHints,
19221                    sizeof(VkVideoEncodeContentFlagsKHR));
19222     vkStream->read((VkVideoEncodeTuningModeKHR*)&forUnmarshaling->tuningMode,
19223                    sizeof(VkVideoEncodeTuningModeKHR));
19224 }
19225 
marshal_VkVideoEncodeRateControlLayerInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeRateControlLayerInfoKHR * forMarshaling)19226 void marshal_VkVideoEncodeRateControlLayerInfoKHR(
19227     VulkanStream* vkStream, VkStructureType rootType,
19228     const VkVideoEncodeRateControlLayerInfoKHR* forMarshaling) {
19229     (void)rootType;
19230     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19231     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19232         rootType = forMarshaling->sType;
19233     }
19234     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19235     vkStream->write((uint64_t*)&forMarshaling->averageBitrate, sizeof(uint64_t));
19236     vkStream->write((uint64_t*)&forMarshaling->maxBitrate, sizeof(uint64_t));
19237     vkStream->write((uint32_t*)&forMarshaling->frameRateNumerator, sizeof(uint32_t));
19238     vkStream->write((uint32_t*)&forMarshaling->frameRateDenominator, sizeof(uint32_t));
19239     vkStream->write((uint32_t*)&forMarshaling->virtualBufferSizeInMs, sizeof(uint32_t));
19240     vkStream->write((uint32_t*)&forMarshaling->initialVirtualBufferSizeInMs, sizeof(uint32_t));
19241 }
19242 
unmarshal_VkVideoEncodeRateControlLayerInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeRateControlLayerInfoKHR * forUnmarshaling)19243 void unmarshal_VkVideoEncodeRateControlLayerInfoKHR(
19244     VulkanStream* vkStream, VkStructureType rootType,
19245     VkVideoEncodeRateControlLayerInfoKHR* forUnmarshaling) {
19246     (void)rootType;
19247     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19248     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19249         rootType = forUnmarshaling->sType;
19250     }
19251     size_t pNext_size;
19252     pNext_size = vkStream->getBe32();
19253     forUnmarshaling->pNext = nullptr;
19254     if (pNext_size) {
19255         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19256         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19257         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19258         vkStream->alloc((void**)&forUnmarshaling->pNext,
19259                         goldfish_vk_extension_struct_size_with_stream_features(
19260                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19261         *(VkStructureType*)forUnmarshaling->pNext = extType;
19262         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19263     }
19264     vkStream->read((uint64_t*)&forUnmarshaling->averageBitrate, sizeof(uint64_t));
19265     vkStream->read((uint64_t*)&forUnmarshaling->maxBitrate, sizeof(uint64_t));
19266     vkStream->read((uint32_t*)&forUnmarshaling->frameRateNumerator, sizeof(uint32_t));
19267     vkStream->read((uint32_t*)&forUnmarshaling->frameRateDenominator, sizeof(uint32_t));
19268     vkStream->read((uint32_t*)&forUnmarshaling->virtualBufferSizeInMs, sizeof(uint32_t));
19269     vkStream->read((uint32_t*)&forUnmarshaling->initialVirtualBufferSizeInMs, sizeof(uint32_t));
19270 }
19271 
marshal_VkVideoEncodeRateControlInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeRateControlInfoKHR * forMarshaling)19272 void marshal_VkVideoEncodeRateControlInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
19273                                              const VkVideoEncodeRateControlInfoKHR* forMarshaling) {
19274     (void)rootType;
19275     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19276     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19277         rootType = forMarshaling->sType;
19278     }
19279     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19280     vkStream->write((VkVideoEncodeRateControlFlagsKHR*)&forMarshaling->flags,
19281                     sizeof(VkVideoEncodeRateControlFlagsKHR));
19282     vkStream->write((VkVideoEncodeRateControlModeFlagBitsKHR*)&forMarshaling->rateControlMode,
19283                     sizeof(VkVideoEncodeRateControlModeFlagBitsKHR));
19284     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
19285     if (forMarshaling) {
19286         for (uint32_t i = 0; i < (uint32_t)forMarshaling->layerCount; ++i) {
19287             marshal_VkVideoEncodeRateControlLayerInfoKHR(
19288                 vkStream, rootType,
19289                 (const VkVideoEncodeRateControlLayerInfoKHR*)(forMarshaling->pLayers + i));
19290         }
19291     }
19292 }
19293 
unmarshal_VkVideoEncodeRateControlInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeRateControlInfoKHR * forUnmarshaling)19294 void unmarshal_VkVideoEncodeRateControlInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
19295                                                VkVideoEncodeRateControlInfoKHR* forUnmarshaling) {
19296     (void)rootType;
19297     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19298     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19299         rootType = forUnmarshaling->sType;
19300     }
19301     size_t pNext_size;
19302     pNext_size = vkStream->getBe32();
19303     forUnmarshaling->pNext = nullptr;
19304     if (pNext_size) {
19305         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19306         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19307         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19308         vkStream->alloc((void**)&forUnmarshaling->pNext,
19309                         goldfish_vk_extension_struct_size_with_stream_features(
19310                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19311         *(VkStructureType*)forUnmarshaling->pNext = extType;
19312         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19313     }
19314     vkStream->read((VkVideoEncodeRateControlFlagsKHR*)&forUnmarshaling->flags,
19315                    sizeof(VkVideoEncodeRateControlFlagsKHR));
19316     vkStream->read((VkVideoEncodeRateControlModeFlagBitsKHR*)&forUnmarshaling->rateControlMode,
19317                    sizeof(VkVideoEncodeRateControlModeFlagBitsKHR));
19318     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
19319     vkStream->alloc(
19320         (void**)&forUnmarshaling->pLayers,
19321         forUnmarshaling->layerCount * sizeof(const VkVideoEncodeRateControlLayerInfoKHR));
19322     if (forUnmarshaling) {
19323         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->layerCount; ++i) {
19324             unmarshal_VkVideoEncodeRateControlLayerInfoKHR(
19325                 vkStream, rootType,
19326                 (VkVideoEncodeRateControlLayerInfoKHR*)(forUnmarshaling->pLayers + i));
19327         }
19328     }
19329 }
19330 
19331 #endif
19332 #ifdef VK_KHR_synchronization2
marshal_VkQueueFamilyCheckpointProperties2NV(VulkanStream * vkStream,VkStructureType rootType,const VkQueueFamilyCheckpointProperties2NV * forMarshaling)19333 void marshal_VkQueueFamilyCheckpointProperties2NV(
19334     VulkanStream* vkStream, VkStructureType rootType,
19335     const VkQueueFamilyCheckpointProperties2NV* forMarshaling) {
19336     (void)rootType;
19337     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19338     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19339         rootType = forMarshaling->sType;
19340     }
19341     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19342     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->checkpointExecutionStageMask,
19343                     sizeof(VkPipelineStageFlags2));
19344 }
19345 
unmarshal_VkQueueFamilyCheckpointProperties2NV(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyCheckpointProperties2NV * forUnmarshaling)19346 void unmarshal_VkQueueFamilyCheckpointProperties2NV(
19347     VulkanStream* vkStream, VkStructureType rootType,
19348     VkQueueFamilyCheckpointProperties2NV* forUnmarshaling) {
19349     (void)rootType;
19350     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19351     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19352         rootType = forUnmarshaling->sType;
19353     }
19354     size_t pNext_size;
19355     pNext_size = vkStream->getBe32();
19356     forUnmarshaling->pNext = nullptr;
19357     if (pNext_size) {
19358         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19359         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19360         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19361         vkStream->alloc((void**)&forUnmarshaling->pNext,
19362                         goldfish_vk_extension_struct_size_with_stream_features(
19363                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19364         *(VkStructureType*)forUnmarshaling->pNext = extType;
19365         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19366     }
19367     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->checkpointExecutionStageMask,
19368                    sizeof(VkPipelineStageFlags2));
19369 }
19370 
marshal_VkCheckpointData2NV(VulkanStream * vkStream,VkStructureType rootType,const VkCheckpointData2NV * forMarshaling)19371 void marshal_VkCheckpointData2NV(VulkanStream* vkStream, VkStructureType rootType,
19372                                  const VkCheckpointData2NV* forMarshaling) {
19373     (void)rootType;
19374     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19375     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19376         rootType = forMarshaling->sType;
19377     }
19378     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19379     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->stage, sizeof(VkPipelineStageFlags2));
19380     // WARNING PTR CHECK
19381     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
19382     vkStream->putBe64(cgen_var_0);
19383     if (forMarshaling->pCheckpointMarker) {
19384         vkStream->write((void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
19385     }
19386 }
19387 
unmarshal_VkCheckpointData2NV(VulkanStream * vkStream,VkStructureType rootType,VkCheckpointData2NV * forUnmarshaling)19388 void unmarshal_VkCheckpointData2NV(VulkanStream* vkStream, VkStructureType rootType,
19389                                    VkCheckpointData2NV* forUnmarshaling) {
19390     (void)rootType;
19391     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19392     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19393         rootType = forUnmarshaling->sType;
19394     }
19395     size_t pNext_size;
19396     pNext_size = vkStream->getBe32();
19397     forUnmarshaling->pNext = nullptr;
19398     if (pNext_size) {
19399         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19400         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19401         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19402         vkStream->alloc((void**)&forUnmarshaling->pNext,
19403                         goldfish_vk_extension_struct_size_with_stream_features(
19404                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19405         *(VkStructureType*)forUnmarshaling->pNext = extType;
19406         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19407     }
19408     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->stage, sizeof(VkPipelineStageFlags2));
19409     // WARNING PTR CHECK
19410     forUnmarshaling->pCheckpointMarker = (void*)(uintptr_t)vkStream->getBe64();
19411     if (forUnmarshaling->pCheckpointMarker) {
19412         vkStream->alloc((void**)&forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
19413         vkStream->read((void*)forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
19414     }
19415 }
19416 
19417 #endif
19418 #ifdef VK_KHR_fragment_shader_barycentric
marshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR * forMarshaling)19419 void marshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(
19420     VulkanStream* vkStream, VkStructureType rootType,
19421     const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* forMarshaling) {
19422     (void)rootType;
19423     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19424     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19425         rootType = forMarshaling->sType;
19426     }
19427     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19428     vkStream->write((VkBool32*)&forMarshaling->fragmentShaderBarycentric, sizeof(VkBool32));
19429 }
19430 
unmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR * forUnmarshaling)19431 void unmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(
19432     VulkanStream* vkStream, VkStructureType rootType,
19433     VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* forUnmarshaling) {
19434     (void)rootType;
19435     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19436     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19437         rootType = forUnmarshaling->sType;
19438     }
19439     size_t pNext_size;
19440     pNext_size = vkStream->getBe32();
19441     forUnmarshaling->pNext = nullptr;
19442     if (pNext_size) {
19443         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19444         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19445         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19446         vkStream->alloc((void**)&forUnmarshaling->pNext,
19447                         goldfish_vk_extension_struct_size_with_stream_features(
19448                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19449         *(VkStructureType*)forUnmarshaling->pNext = extType;
19450         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19451     }
19452     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderBarycentric, sizeof(VkBool32));
19453 }
19454 
marshal_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR * forMarshaling)19455 void marshal_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(
19456     VulkanStream* vkStream, VkStructureType rootType,
19457     const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* forMarshaling) {
19458     (void)rootType;
19459     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19460     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19461         rootType = forMarshaling->sType;
19462     }
19463     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19464     vkStream->write((VkBool32*)&forMarshaling->triStripVertexOrderIndependentOfProvokingVertex,
19465                     sizeof(VkBool32));
19466 }
19467 
unmarshal_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR * forUnmarshaling)19468 void unmarshal_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(
19469     VulkanStream* vkStream, VkStructureType rootType,
19470     VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* forUnmarshaling) {
19471     (void)rootType;
19472     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19473     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19474         rootType = forUnmarshaling->sType;
19475     }
19476     size_t pNext_size;
19477     pNext_size = vkStream->getBe32();
19478     forUnmarshaling->pNext = nullptr;
19479     if (pNext_size) {
19480         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19481         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19482         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19483         vkStream->alloc((void**)&forUnmarshaling->pNext,
19484                         goldfish_vk_extension_struct_size_with_stream_features(
19485                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19486         *(VkStructureType*)forUnmarshaling->pNext = extType;
19487         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19488     }
19489     vkStream->read((VkBool32*)&forUnmarshaling->triStripVertexOrderIndependentOfProvokingVertex,
19490                    sizeof(VkBool32));
19491 }
19492 
19493 #endif
19494 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
marshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR * forMarshaling)19495 void marshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
19496     VulkanStream* vkStream, VkStructureType rootType,
19497     const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forMarshaling) {
19498     (void)rootType;
19499     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19500     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19501         rootType = forMarshaling->sType;
19502     }
19503     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19504     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupUniformControlFlow, sizeof(VkBool32));
19505 }
19506 
unmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR * forUnmarshaling)19507 void unmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
19508     VulkanStream* vkStream, VkStructureType rootType,
19509     VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forUnmarshaling) {
19510     (void)rootType;
19511     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19512     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19513         rootType = forUnmarshaling->sType;
19514     }
19515     size_t pNext_size;
19516     pNext_size = vkStream->getBe32();
19517     forUnmarshaling->pNext = nullptr;
19518     if (pNext_size) {
19519         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19520         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19521         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19522         vkStream->alloc((void**)&forUnmarshaling->pNext,
19523                         goldfish_vk_extension_struct_size_with_stream_features(
19524                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19525         *(VkStructureType*)forUnmarshaling->pNext = extType;
19526         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19527     }
19528     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupUniformControlFlow, sizeof(VkBool32));
19529 }
19530 
19531 #endif
19532 #ifdef VK_KHR_zero_initialize_workgroup_memory
19533 #endif
19534 #ifdef VK_KHR_workgroup_memory_explicit_layout
marshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR * forMarshaling)19535 void marshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
19536     VulkanStream* vkStream, VkStructureType rootType,
19537     const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forMarshaling) {
19538     (void)rootType;
19539     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19540     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19541         rootType = forMarshaling->sType;
19542     }
19543     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19544     vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout, sizeof(VkBool32));
19545     vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayoutScalarBlockLayout,
19546                     sizeof(VkBool32));
19547     vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout8BitAccess,
19548                     sizeof(VkBool32));
19549     vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout16BitAccess,
19550                     sizeof(VkBool32));
19551 }
19552 
unmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR * forUnmarshaling)19553 void unmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
19554     VulkanStream* vkStream, VkStructureType rootType,
19555     VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forUnmarshaling) {
19556     (void)rootType;
19557     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19558     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19559         rootType = forUnmarshaling->sType;
19560     }
19561     size_t pNext_size;
19562     pNext_size = vkStream->getBe32();
19563     forUnmarshaling->pNext = nullptr;
19564     if (pNext_size) {
19565         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19566         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19567         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19568         vkStream->alloc((void**)&forUnmarshaling->pNext,
19569                         goldfish_vk_extension_struct_size_with_stream_features(
19570                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19571         *(VkStructureType*)forUnmarshaling->pNext = extType;
19572         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19573     }
19574     vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayout, sizeof(VkBool32));
19575     vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayoutScalarBlockLayout,
19576                    sizeof(VkBool32));
19577     vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayout8BitAccess,
19578                    sizeof(VkBool32));
19579     vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayout16BitAccess,
19580                    sizeof(VkBool32));
19581 }
19582 
19583 #endif
19584 #ifdef VK_KHR_copy_commands2
19585 #endif
19586 #ifdef VK_KHR_format_feature_flags2
19587 #endif
19588 #ifdef VK_KHR_ray_tracing_maintenance1
marshal_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR * forMarshaling)19589 void marshal_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(
19590     VulkanStream* vkStream, VkStructureType rootType,
19591     const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* forMarshaling) {
19592     (void)rootType;
19593     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19594     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19595         rootType = forMarshaling->sType;
19596     }
19597     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19598     vkStream->write((VkBool32*)&forMarshaling->rayTracingMaintenance1, sizeof(VkBool32));
19599     vkStream->write((VkBool32*)&forMarshaling->rayTracingPipelineTraceRaysIndirect2,
19600                     sizeof(VkBool32));
19601 }
19602 
unmarshal_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR * forUnmarshaling)19603 void unmarshal_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(
19604     VulkanStream* vkStream, VkStructureType rootType,
19605     VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* forUnmarshaling) {
19606     (void)rootType;
19607     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19608     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19609         rootType = forUnmarshaling->sType;
19610     }
19611     size_t pNext_size;
19612     pNext_size = vkStream->getBe32();
19613     forUnmarshaling->pNext = nullptr;
19614     if (pNext_size) {
19615         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19616         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19617         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19618         vkStream->alloc((void**)&forUnmarshaling->pNext,
19619                         goldfish_vk_extension_struct_size_with_stream_features(
19620                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19621         *(VkStructureType*)forUnmarshaling->pNext = extType;
19622         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19623     }
19624     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingMaintenance1, sizeof(VkBool32));
19625     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipelineTraceRaysIndirect2,
19626                    sizeof(VkBool32));
19627 }
19628 
marshal_VkTraceRaysIndirectCommand2KHR(VulkanStream * vkStream,VkStructureType rootType,const VkTraceRaysIndirectCommand2KHR * forMarshaling)19629 void marshal_VkTraceRaysIndirectCommand2KHR(VulkanStream* vkStream, VkStructureType rootType,
19630                                             const VkTraceRaysIndirectCommand2KHR* forMarshaling) {
19631     (void)rootType;
19632     vkStream->write((VkDeviceAddress*)&forMarshaling->raygenShaderRecordAddress,
19633                     sizeof(VkDeviceAddress));
19634     vkStream->write((VkDeviceSize*)&forMarshaling->raygenShaderRecordSize, sizeof(VkDeviceSize));
19635     vkStream->write((VkDeviceAddress*)&forMarshaling->missShaderBindingTableAddress,
19636                     sizeof(VkDeviceAddress));
19637     vkStream->write((VkDeviceSize*)&forMarshaling->missShaderBindingTableSize,
19638                     sizeof(VkDeviceSize));
19639     vkStream->write((VkDeviceSize*)&forMarshaling->missShaderBindingTableStride,
19640                     sizeof(VkDeviceSize));
19641     vkStream->write((VkDeviceAddress*)&forMarshaling->hitShaderBindingTableAddress,
19642                     sizeof(VkDeviceAddress));
19643     vkStream->write((VkDeviceSize*)&forMarshaling->hitShaderBindingTableSize, sizeof(VkDeviceSize));
19644     vkStream->write((VkDeviceSize*)&forMarshaling->hitShaderBindingTableStride,
19645                     sizeof(VkDeviceSize));
19646     vkStream->write((VkDeviceAddress*)&forMarshaling->callableShaderBindingTableAddress,
19647                     sizeof(VkDeviceAddress));
19648     vkStream->write((VkDeviceSize*)&forMarshaling->callableShaderBindingTableSize,
19649                     sizeof(VkDeviceSize));
19650     vkStream->write((VkDeviceSize*)&forMarshaling->callableShaderBindingTableStride,
19651                     sizeof(VkDeviceSize));
19652     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
19653     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
19654     vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
19655 }
19656 
unmarshal_VkTraceRaysIndirectCommand2KHR(VulkanStream * vkStream,VkStructureType rootType,VkTraceRaysIndirectCommand2KHR * forUnmarshaling)19657 void unmarshal_VkTraceRaysIndirectCommand2KHR(VulkanStream* vkStream, VkStructureType rootType,
19658                                               VkTraceRaysIndirectCommand2KHR* forUnmarshaling) {
19659     (void)rootType;
19660     vkStream->read((VkDeviceAddress*)&forUnmarshaling->raygenShaderRecordAddress,
19661                    sizeof(VkDeviceAddress));
19662     vkStream->read((VkDeviceSize*)&forUnmarshaling->raygenShaderRecordSize, sizeof(VkDeviceSize));
19663     vkStream->read((VkDeviceAddress*)&forUnmarshaling->missShaderBindingTableAddress,
19664                    sizeof(VkDeviceAddress));
19665     vkStream->read((VkDeviceSize*)&forUnmarshaling->missShaderBindingTableSize,
19666                    sizeof(VkDeviceSize));
19667     vkStream->read((VkDeviceSize*)&forUnmarshaling->missShaderBindingTableStride,
19668                    sizeof(VkDeviceSize));
19669     vkStream->read((VkDeviceAddress*)&forUnmarshaling->hitShaderBindingTableAddress,
19670                    sizeof(VkDeviceAddress));
19671     vkStream->read((VkDeviceSize*)&forUnmarshaling->hitShaderBindingTableSize,
19672                    sizeof(VkDeviceSize));
19673     vkStream->read((VkDeviceSize*)&forUnmarshaling->hitShaderBindingTableStride,
19674                    sizeof(VkDeviceSize));
19675     vkStream->read((VkDeviceAddress*)&forUnmarshaling->callableShaderBindingTableAddress,
19676                    sizeof(VkDeviceAddress));
19677     vkStream->read((VkDeviceSize*)&forUnmarshaling->callableShaderBindingTableSize,
19678                    sizeof(VkDeviceSize));
19679     vkStream->read((VkDeviceSize*)&forUnmarshaling->callableShaderBindingTableStride,
19680                    sizeof(VkDeviceSize));
19681     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
19682     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
19683     vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
19684 }
19685 
19686 #endif
19687 #ifdef VK_KHR_portability_enumeration
19688 #endif
19689 #ifdef VK_KHR_maintenance4
19690 #endif
19691 #ifdef VK_KHR_ray_tracing_position_fetch
marshal_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR * forMarshaling)19692 void marshal_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(
19693     VulkanStream* vkStream, VkStructureType rootType,
19694     const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR* forMarshaling) {
19695     (void)rootType;
19696     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19697     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19698         rootType = forMarshaling->sType;
19699     }
19700     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19701     vkStream->write((VkBool32*)&forMarshaling->rayTracingPositionFetch, sizeof(VkBool32));
19702 }
19703 
unmarshal_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR * forUnmarshaling)19704 void unmarshal_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(
19705     VulkanStream* vkStream, VkStructureType rootType,
19706     VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR* forUnmarshaling) {
19707     (void)rootType;
19708     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19709     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19710         rootType = forUnmarshaling->sType;
19711     }
19712     size_t pNext_size;
19713     pNext_size = vkStream->getBe32();
19714     forUnmarshaling->pNext = nullptr;
19715     if (pNext_size) {
19716         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19717         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19718         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19719         vkStream->alloc((void**)&forUnmarshaling->pNext,
19720                         goldfish_vk_extension_struct_size_with_stream_features(
19721                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19722         *(VkStructureType*)forUnmarshaling->pNext = extType;
19723         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19724     }
19725     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPositionFetch, sizeof(VkBool32));
19726 }
19727 
19728 #endif
19729 #ifdef VK_ANDROID_native_buffer
marshal_VkNativeBufferUsage2ANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkNativeBufferUsage2ANDROID * forMarshaling)19730 void marshal_VkNativeBufferUsage2ANDROID(VulkanStream* vkStream, VkStructureType rootType,
19731                                          const VkNativeBufferUsage2ANDROID* forMarshaling) {
19732     (void)rootType;
19733     vkStream->write((uint64_t*)&forMarshaling->consumer, sizeof(uint64_t));
19734     vkStream->write((uint64_t*)&forMarshaling->producer, sizeof(uint64_t));
19735 }
19736 
unmarshal_VkNativeBufferUsage2ANDROID(VulkanStream * vkStream,VkStructureType rootType,VkNativeBufferUsage2ANDROID * forUnmarshaling)19737 void unmarshal_VkNativeBufferUsage2ANDROID(VulkanStream* vkStream, VkStructureType rootType,
19738                                            VkNativeBufferUsage2ANDROID* forUnmarshaling) {
19739     (void)rootType;
19740     vkStream->read((uint64_t*)&forUnmarshaling->consumer, sizeof(uint64_t));
19741     vkStream->read((uint64_t*)&forUnmarshaling->producer, sizeof(uint64_t));
19742 }
19743 
marshal_VkNativeBufferANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkNativeBufferANDROID * forMarshaling)19744 void marshal_VkNativeBufferANDROID(VulkanStream* vkStream, VkStructureType rootType,
19745                                    const VkNativeBufferANDROID* forMarshaling) {
19746     (void)rootType;
19747     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19748     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19749         rootType = forMarshaling->sType;
19750     }
19751     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19752     // WARNING PTR CHECK
19753     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->handle;
19754     vkStream->putBe64(cgen_var_0);
19755     if (forMarshaling->handle) {
19756         vkStream->write((const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
19757     }
19758     vkStream->write((int*)&forMarshaling->stride, sizeof(int));
19759     vkStream->write((int*)&forMarshaling->format, sizeof(int));
19760     vkStream->write((int*)&forMarshaling->usage, sizeof(int));
19761     marshal_VkNativeBufferUsage2ANDROID(vkStream, rootType,
19762                                         (VkNativeBufferUsage2ANDROID*)(&forMarshaling->usage2));
19763 }
19764 
unmarshal_VkNativeBufferANDROID(VulkanStream * vkStream,VkStructureType rootType,VkNativeBufferANDROID * forUnmarshaling)19765 void unmarshal_VkNativeBufferANDROID(VulkanStream* vkStream, VkStructureType rootType,
19766                                      VkNativeBufferANDROID* forUnmarshaling) {
19767     (void)rootType;
19768     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19769     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19770         rootType = forUnmarshaling->sType;
19771     }
19772     size_t pNext_size;
19773     pNext_size = vkStream->getBe32();
19774     forUnmarshaling->pNext = nullptr;
19775     if (pNext_size) {
19776         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19777         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19778         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19779         vkStream->alloc((void**)&forUnmarshaling->pNext,
19780                         goldfish_vk_extension_struct_size_with_stream_features(
19781                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19782         *(VkStructureType*)forUnmarshaling->pNext = extType;
19783         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19784     }
19785     // WARNING PTR CHECK
19786     forUnmarshaling->handle = (const uint32_t*)(uintptr_t)vkStream->getBe64();
19787     if (forUnmarshaling->handle) {
19788         vkStream->alloc((void**)&forUnmarshaling->handle, sizeof(const uint32_t));
19789         vkStream->read((uint32_t*)forUnmarshaling->handle, sizeof(const uint32_t));
19790     }
19791     vkStream->read((int*)&forUnmarshaling->stride, sizeof(int));
19792     vkStream->read((int*)&forUnmarshaling->format, sizeof(int));
19793     vkStream->read((int*)&forUnmarshaling->usage, sizeof(int));
19794     unmarshal_VkNativeBufferUsage2ANDROID(vkStream, rootType,
19795                                           (VkNativeBufferUsage2ANDROID*)(&forUnmarshaling->usage2));
19796 }
19797 
marshal_VkSwapchainImageCreateInfoANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainImageCreateInfoANDROID * forMarshaling)19798 void marshal_VkSwapchainImageCreateInfoANDROID(
19799     VulkanStream* vkStream, VkStructureType rootType,
19800     const VkSwapchainImageCreateInfoANDROID* forMarshaling) {
19801     (void)rootType;
19802     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19803     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19804         rootType = forMarshaling->sType;
19805     }
19806     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19807     vkStream->write((VkSwapchainImageUsageFlagsANDROID*)&forMarshaling->usage,
19808                     sizeof(VkSwapchainImageUsageFlagsANDROID));
19809 }
19810 
unmarshal_VkSwapchainImageCreateInfoANDROID(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainImageCreateInfoANDROID * forUnmarshaling)19811 void unmarshal_VkSwapchainImageCreateInfoANDROID(
19812     VulkanStream* vkStream, VkStructureType rootType,
19813     VkSwapchainImageCreateInfoANDROID* forUnmarshaling) {
19814     (void)rootType;
19815     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19816     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19817         rootType = forUnmarshaling->sType;
19818     }
19819     size_t pNext_size;
19820     pNext_size = vkStream->getBe32();
19821     forUnmarshaling->pNext = nullptr;
19822     if (pNext_size) {
19823         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19824         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19825         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19826         vkStream->alloc((void**)&forUnmarshaling->pNext,
19827                         goldfish_vk_extension_struct_size_with_stream_features(
19828                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19829         *(VkStructureType*)forUnmarshaling->pNext = extType;
19830         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19831     }
19832     vkStream->read((VkSwapchainImageUsageFlagsANDROID*)&forUnmarshaling->usage,
19833                    sizeof(VkSwapchainImageUsageFlagsANDROID));
19834 }
19835 
marshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePresentationPropertiesANDROID * forMarshaling)19836 void marshal_VkPhysicalDevicePresentationPropertiesANDROID(
19837     VulkanStream* vkStream, VkStructureType rootType,
19838     const VkPhysicalDevicePresentationPropertiesANDROID* forMarshaling) {
19839     (void)rootType;
19840     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19841     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19842         rootType = forMarshaling->sType;
19843     }
19844     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19845     vkStream->write((VkBool32*)&forMarshaling->sharedImage, sizeof(VkBool32));
19846 }
19847 
unmarshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePresentationPropertiesANDROID * forUnmarshaling)19848 void unmarshal_VkPhysicalDevicePresentationPropertiesANDROID(
19849     VulkanStream* vkStream, VkStructureType rootType,
19850     VkPhysicalDevicePresentationPropertiesANDROID* forUnmarshaling) {
19851     (void)rootType;
19852     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19853     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19854         rootType = forUnmarshaling->sType;
19855     }
19856     size_t pNext_size;
19857     pNext_size = vkStream->getBe32();
19858     forUnmarshaling->pNext = nullptr;
19859     if (pNext_size) {
19860         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19861         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19862         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19863         vkStream->alloc((void**)&forUnmarshaling->pNext,
19864                         goldfish_vk_extension_struct_size_with_stream_features(
19865                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19866         *(VkStructureType*)forUnmarshaling->pNext = extType;
19867         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19868     }
19869     vkStream->read((VkBool32*)&forUnmarshaling->sharedImage, sizeof(VkBool32));
19870 }
19871 
19872 #endif
19873 #ifdef VK_EXT_debug_report
marshal_VkDebugReportCallbackCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugReportCallbackCreateInfoEXT * forMarshaling)19874 void marshal_VkDebugReportCallbackCreateInfoEXT(
19875     VulkanStream* vkStream, VkStructureType rootType,
19876     const VkDebugReportCallbackCreateInfoEXT* forMarshaling) {
19877     (void)rootType;
19878     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19879     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19880         rootType = forMarshaling->sType;
19881     }
19882     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19883     vkStream->write((VkDebugReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugReportFlagsEXT));
19884     uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnCallback;
19885     vkStream->putBe64(cgen_var_0);
19886     // WARNING PTR CHECK
19887     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
19888     vkStream->putBe64(cgen_var_1);
19889     if (forMarshaling->pUserData) {
19890         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
19891     }
19892 }
19893 
unmarshal_VkDebugReportCallbackCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugReportCallbackCreateInfoEXT * forUnmarshaling)19894 void unmarshal_VkDebugReportCallbackCreateInfoEXT(
19895     VulkanStream* vkStream, VkStructureType rootType,
19896     VkDebugReportCallbackCreateInfoEXT* forUnmarshaling) {
19897     (void)rootType;
19898     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19899     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19900         rootType = forUnmarshaling->sType;
19901     }
19902     size_t pNext_size;
19903     pNext_size = vkStream->getBe32();
19904     forUnmarshaling->pNext = nullptr;
19905     if (pNext_size) {
19906         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19907         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19908         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19909         vkStream->alloc((void**)&forUnmarshaling->pNext,
19910                         goldfish_vk_extension_struct_size_with_stream_features(
19911                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19912         *(VkStructureType*)forUnmarshaling->pNext = extType;
19913         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19914     }
19915     vkStream->read((VkDebugReportFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDebugReportFlagsEXT));
19916     forUnmarshaling->pfnCallback = (PFN_vkDebugReportCallbackEXT)vkStream->getBe64();
19917     // WARNING PTR CHECK
19918     forUnmarshaling->pUserData = (void*)(uintptr_t)vkStream->getBe64();
19919     if (forUnmarshaling->pUserData) {
19920         vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
19921         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
19922     }
19923 }
19924 
19925 #endif
19926 #ifdef VK_NV_glsl_shader
19927 #endif
19928 #ifdef VK_EXT_depth_range_unrestricted
19929 #endif
19930 #ifdef VK_IMG_filter_cubic
19931 #endif
19932 #ifdef VK_AMD_rasterization_order
marshal_VkPipelineRasterizationStateRasterizationOrderAMD(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateRasterizationOrderAMD * forMarshaling)19933 void marshal_VkPipelineRasterizationStateRasterizationOrderAMD(
19934     VulkanStream* vkStream, VkStructureType rootType,
19935     const VkPipelineRasterizationStateRasterizationOrderAMD* forMarshaling) {
19936     (void)rootType;
19937     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19938     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19939         rootType = forMarshaling->sType;
19940     }
19941     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19942     vkStream->write((VkRasterizationOrderAMD*)&forMarshaling->rasterizationOrder,
19943                     sizeof(VkRasterizationOrderAMD));
19944 }
19945 
unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationStateRasterizationOrderAMD * forUnmarshaling)19946 void unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(
19947     VulkanStream* vkStream, VkStructureType rootType,
19948     VkPipelineRasterizationStateRasterizationOrderAMD* forUnmarshaling) {
19949     (void)rootType;
19950     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19951     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19952         rootType = forUnmarshaling->sType;
19953     }
19954     size_t pNext_size;
19955     pNext_size = vkStream->getBe32();
19956     forUnmarshaling->pNext = nullptr;
19957     if (pNext_size) {
19958         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
19959         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
19960         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
19961         vkStream->alloc((void**)&forUnmarshaling->pNext,
19962                         goldfish_vk_extension_struct_size_with_stream_features(
19963                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
19964         *(VkStructureType*)forUnmarshaling->pNext = extType;
19965         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
19966     }
19967     vkStream->read((VkRasterizationOrderAMD*)&forUnmarshaling->rasterizationOrder,
19968                    sizeof(VkRasterizationOrderAMD));
19969 }
19970 
19971 #endif
19972 #ifdef VK_AMD_shader_trinary_minmax
19973 #endif
19974 #ifdef VK_AMD_shader_explicit_vertex_parameter
19975 #endif
19976 #ifdef VK_EXT_debug_marker
marshal_VkDebugMarkerObjectNameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugMarkerObjectNameInfoEXT * forMarshaling)19977 void marshal_VkDebugMarkerObjectNameInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
19978                                             const VkDebugMarkerObjectNameInfoEXT* forMarshaling) {
19979     (void)rootType;
19980     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
19981     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19982         rootType = forMarshaling->sType;
19983     }
19984     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
19985     vkStream->write((VkDebugReportObjectTypeEXT*)&forMarshaling->objectType,
19986                     sizeof(VkDebugReportObjectTypeEXT));
19987     vkStream->write((uint64_t*)&forMarshaling->object, sizeof(uint64_t));
19988     vkStream->putString(forMarshaling->pObjectName);
19989 }
19990 
unmarshal_VkDebugMarkerObjectNameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugMarkerObjectNameInfoEXT * forUnmarshaling)19991 void unmarshal_VkDebugMarkerObjectNameInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
19992                                               VkDebugMarkerObjectNameInfoEXT* forUnmarshaling) {
19993     (void)rootType;
19994     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
19995     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
19996         rootType = forUnmarshaling->sType;
19997     }
19998     size_t pNext_size;
19999     pNext_size = vkStream->getBe32();
20000     forUnmarshaling->pNext = nullptr;
20001     if (pNext_size) {
20002         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20003         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20004         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20005         vkStream->alloc((void**)&forUnmarshaling->pNext,
20006                         goldfish_vk_extension_struct_size_with_stream_features(
20007                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20008         *(VkStructureType*)forUnmarshaling->pNext = extType;
20009         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20010     }
20011     vkStream->read((VkDebugReportObjectTypeEXT*)&forUnmarshaling->objectType,
20012                    sizeof(VkDebugReportObjectTypeEXT));
20013     vkStream->read((uint64_t*)&forUnmarshaling->object, sizeof(uint64_t));
20014     vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
20015 }
20016 
marshal_VkDebugMarkerObjectTagInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugMarkerObjectTagInfoEXT * forMarshaling)20017 void marshal_VkDebugMarkerObjectTagInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20018                                            const VkDebugMarkerObjectTagInfoEXT* forMarshaling) {
20019     (void)rootType;
20020     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20021     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20022         rootType = forMarshaling->sType;
20023     }
20024     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20025     vkStream->write((VkDebugReportObjectTypeEXT*)&forMarshaling->objectType,
20026                     sizeof(VkDebugReportObjectTypeEXT));
20027     vkStream->write((uint64_t*)&forMarshaling->object, sizeof(uint64_t));
20028     vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
20029     uint64_t cgen_var_0 = (uint64_t)forMarshaling->tagSize;
20030     vkStream->putBe64(cgen_var_0);
20031     vkStream->write((const void*)forMarshaling->pTag,
20032                     forMarshaling->tagSize * sizeof(const uint8_t));
20033 }
20034 
unmarshal_VkDebugMarkerObjectTagInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugMarkerObjectTagInfoEXT * forUnmarshaling)20035 void unmarshal_VkDebugMarkerObjectTagInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20036                                              VkDebugMarkerObjectTagInfoEXT* forUnmarshaling) {
20037     (void)rootType;
20038     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20039     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20040         rootType = forUnmarshaling->sType;
20041     }
20042     size_t pNext_size;
20043     pNext_size = vkStream->getBe32();
20044     forUnmarshaling->pNext = nullptr;
20045     if (pNext_size) {
20046         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20047         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20048         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20049         vkStream->alloc((void**)&forUnmarshaling->pNext,
20050                         goldfish_vk_extension_struct_size_with_stream_features(
20051                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20052         *(VkStructureType*)forUnmarshaling->pNext = extType;
20053         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20054     }
20055     vkStream->read((VkDebugReportObjectTypeEXT*)&forUnmarshaling->objectType,
20056                    sizeof(VkDebugReportObjectTypeEXT));
20057     vkStream->read((uint64_t*)&forUnmarshaling->object, sizeof(uint64_t));
20058     vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
20059     forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
20060     vkStream->alloc((void**)&forUnmarshaling->pTag,
20061                     forUnmarshaling->tagSize * sizeof(const uint8_t));
20062     vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
20063 }
20064 
marshal_VkDebugMarkerMarkerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugMarkerMarkerInfoEXT * forMarshaling)20065 void marshal_VkDebugMarkerMarkerInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20066                                         const VkDebugMarkerMarkerInfoEXT* forMarshaling) {
20067     (void)rootType;
20068     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20069     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20070         rootType = forMarshaling->sType;
20071     }
20072     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20073     vkStream->putString(forMarshaling->pMarkerName);
20074     vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
20075 }
20076 
unmarshal_VkDebugMarkerMarkerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugMarkerMarkerInfoEXT * forUnmarshaling)20077 void unmarshal_VkDebugMarkerMarkerInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20078                                           VkDebugMarkerMarkerInfoEXT* forUnmarshaling) {
20079     (void)rootType;
20080     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20081     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20082         rootType = forUnmarshaling->sType;
20083     }
20084     size_t pNext_size;
20085     pNext_size = vkStream->getBe32();
20086     forUnmarshaling->pNext = nullptr;
20087     if (pNext_size) {
20088         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20089         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20090         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20091         vkStream->alloc((void**)&forUnmarshaling->pNext,
20092                         goldfish_vk_extension_struct_size_with_stream_features(
20093                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20094         *(VkStructureType*)forUnmarshaling->pNext = extType;
20095         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20096     }
20097     vkStream->loadStringInPlace((char**)&forUnmarshaling->pMarkerName);
20098     vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
20099 }
20100 
20101 #endif
20102 #ifdef VK_AMD_gcn_shader
20103 #endif
20104 #ifdef VK_NV_dedicated_allocation
marshal_VkDedicatedAllocationImageCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkDedicatedAllocationImageCreateInfoNV * forMarshaling)20105 void marshal_VkDedicatedAllocationImageCreateInfoNV(
20106     VulkanStream* vkStream, VkStructureType rootType,
20107     const VkDedicatedAllocationImageCreateInfoNV* forMarshaling) {
20108     (void)rootType;
20109     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20110     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20111         rootType = forMarshaling->sType;
20112     }
20113     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20114     vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocation, sizeof(VkBool32));
20115 }
20116 
unmarshal_VkDedicatedAllocationImageCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkDedicatedAllocationImageCreateInfoNV * forUnmarshaling)20117 void unmarshal_VkDedicatedAllocationImageCreateInfoNV(
20118     VulkanStream* vkStream, VkStructureType rootType,
20119     VkDedicatedAllocationImageCreateInfoNV* forUnmarshaling) {
20120     (void)rootType;
20121     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20122     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20123         rootType = forUnmarshaling->sType;
20124     }
20125     size_t pNext_size;
20126     pNext_size = vkStream->getBe32();
20127     forUnmarshaling->pNext = nullptr;
20128     if (pNext_size) {
20129         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20130         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20131         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20132         vkStream->alloc((void**)&forUnmarshaling->pNext,
20133                         goldfish_vk_extension_struct_size_with_stream_features(
20134                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20135         *(VkStructureType*)forUnmarshaling->pNext = extType;
20136         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20137     }
20138     vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocation, sizeof(VkBool32));
20139 }
20140 
marshal_VkDedicatedAllocationBufferCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkDedicatedAllocationBufferCreateInfoNV * forMarshaling)20141 void marshal_VkDedicatedAllocationBufferCreateInfoNV(
20142     VulkanStream* vkStream, VkStructureType rootType,
20143     const VkDedicatedAllocationBufferCreateInfoNV* forMarshaling) {
20144     (void)rootType;
20145     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20146     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20147         rootType = forMarshaling->sType;
20148     }
20149     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20150     vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocation, sizeof(VkBool32));
20151 }
20152 
unmarshal_VkDedicatedAllocationBufferCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkDedicatedAllocationBufferCreateInfoNV * forUnmarshaling)20153 void unmarshal_VkDedicatedAllocationBufferCreateInfoNV(
20154     VulkanStream* vkStream, VkStructureType rootType,
20155     VkDedicatedAllocationBufferCreateInfoNV* forUnmarshaling) {
20156     (void)rootType;
20157     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20158     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20159         rootType = forUnmarshaling->sType;
20160     }
20161     size_t pNext_size;
20162     pNext_size = vkStream->getBe32();
20163     forUnmarshaling->pNext = nullptr;
20164     if (pNext_size) {
20165         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20166         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20167         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20168         vkStream->alloc((void**)&forUnmarshaling->pNext,
20169                         goldfish_vk_extension_struct_size_with_stream_features(
20170                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20171         *(VkStructureType*)forUnmarshaling->pNext = extType;
20172         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20173     }
20174     vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocation, sizeof(VkBool32));
20175 }
20176 
marshal_VkDedicatedAllocationMemoryAllocateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkDedicatedAllocationMemoryAllocateInfoNV * forMarshaling)20177 void marshal_VkDedicatedAllocationMemoryAllocateInfoNV(
20178     VulkanStream* vkStream, VkStructureType rootType,
20179     const VkDedicatedAllocationMemoryAllocateInfoNV* forMarshaling) {
20180     (void)rootType;
20181     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20182     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20183         rootType = forMarshaling->sType;
20184     }
20185     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20186     uint64_t cgen_var_0;
20187     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
20188     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
20189     uint64_t cgen_var_1;
20190     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_1, 1);
20191     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
20192 }
20193 
unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkDedicatedAllocationMemoryAllocateInfoNV * forUnmarshaling)20194 void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
20195     VulkanStream* vkStream, VkStructureType rootType,
20196     VkDedicatedAllocationMemoryAllocateInfoNV* forUnmarshaling) {
20197     (void)rootType;
20198     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20199     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20200         rootType = forUnmarshaling->sType;
20201     }
20202     size_t pNext_size;
20203     pNext_size = vkStream->getBe32();
20204     forUnmarshaling->pNext = nullptr;
20205     if (pNext_size) {
20206         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20207         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20208         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20209         vkStream->alloc((void**)&forUnmarshaling->pNext,
20210                         goldfish_vk_extension_struct_size_with_stream_features(
20211                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20212         *(VkStructureType*)forUnmarshaling->pNext = extType;
20213         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20214     }
20215     uint64_t cgen_var_0;
20216     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
20217     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
20218                                                       (VkImage*)&forUnmarshaling->image, 1);
20219     uint64_t cgen_var_1;
20220     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
20221     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
20222                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
20223 }
20224 
20225 #endif
20226 #ifdef VK_EXT_transform_feedback
marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * forMarshaling)20227 void marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
20228     VulkanStream* vkStream, VkStructureType rootType,
20229     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling) {
20230     (void)rootType;
20231     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20232     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20233         rootType = forMarshaling->sType;
20234     }
20235     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20236     vkStream->write((VkBool32*)&forMarshaling->transformFeedback, sizeof(VkBool32));
20237     vkStream->write((VkBool32*)&forMarshaling->geometryStreams, sizeof(VkBool32));
20238 }
20239 
unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackFeaturesEXT * forUnmarshaling)20240 void unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
20241     VulkanStream* vkStream, VkStructureType rootType,
20242     VkPhysicalDeviceTransformFeedbackFeaturesEXT* forUnmarshaling) {
20243     (void)rootType;
20244     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20245     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20246         rootType = forUnmarshaling->sType;
20247     }
20248     size_t pNext_size;
20249     pNext_size = vkStream->getBe32();
20250     forUnmarshaling->pNext = nullptr;
20251     if (pNext_size) {
20252         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20253         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20254         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20255         vkStream->alloc((void**)&forUnmarshaling->pNext,
20256                         goldfish_vk_extension_struct_size_with_stream_features(
20257                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20258         *(VkStructureType*)forUnmarshaling->pNext = extType;
20259         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20260     }
20261     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedback, sizeof(VkBool32));
20262     vkStream->read((VkBool32*)&forUnmarshaling->geometryStreams, sizeof(VkBool32));
20263 }
20264 
marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * forMarshaling)20265 void marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
20266     VulkanStream* vkStream, VkStructureType rootType,
20267     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling) {
20268     (void)rootType;
20269     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20270     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20271         rootType = forMarshaling->sType;
20272     }
20273     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20274     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
20275     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
20276     vkStream->write((VkDeviceSize*)&forMarshaling->maxTransformFeedbackBufferSize,
20277                     sizeof(VkDeviceSize));
20278     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreamDataSize,
20279                     sizeof(uint32_t));
20280     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataSize,
20281                     sizeof(uint32_t));
20282     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataStride,
20283                     sizeof(uint32_t));
20284     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackQueries, sizeof(VkBool32));
20285     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackStreamsLinesTriangles,
20286                     sizeof(VkBool32));
20287     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackRasterizationStreamSelect,
20288                     sizeof(VkBool32));
20289     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackDraw, sizeof(VkBool32));
20290 }
20291 
unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackPropertiesEXT * forUnmarshaling)20292 void unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
20293     VulkanStream* vkStream, VkStructureType rootType,
20294     VkPhysicalDeviceTransformFeedbackPropertiesEXT* forUnmarshaling) {
20295     (void)rootType;
20296     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20297     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20298         rootType = forUnmarshaling->sType;
20299     }
20300     size_t pNext_size;
20301     pNext_size = vkStream->getBe32();
20302     forUnmarshaling->pNext = nullptr;
20303     if (pNext_size) {
20304         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20305         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20306         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20307         vkStream->alloc((void**)&forUnmarshaling->pNext,
20308                         goldfish_vk_extension_struct_size_with_stream_features(
20309                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20310         *(VkStructureType*)forUnmarshaling->pNext = extType;
20311         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20312     }
20313     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
20314     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
20315     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxTransformFeedbackBufferSize,
20316                    sizeof(VkDeviceSize));
20317     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreamDataSize,
20318                    sizeof(uint32_t));
20319     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataSize,
20320                    sizeof(uint32_t));
20321     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataStride,
20322                    sizeof(uint32_t));
20323     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackQueries, sizeof(VkBool32));
20324     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackStreamsLinesTriangles,
20325                    sizeof(VkBool32));
20326     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackRasterizationStreamSelect,
20327                    sizeof(VkBool32));
20328     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackDraw, sizeof(VkBool32));
20329 }
20330 
marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateStreamCreateInfoEXT * forMarshaling)20331 void marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
20332     VulkanStream* vkStream, VkStructureType rootType,
20333     const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling) {
20334     (void)rootType;
20335     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20336     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20337         rootType = forMarshaling->sType;
20338     }
20339     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20340     vkStream->write((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forMarshaling->flags,
20341                     sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
20342     vkStream->write((uint32_t*)&forMarshaling->rasterizationStream, sizeof(uint32_t));
20343 }
20344 
unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationStateStreamCreateInfoEXT * forUnmarshaling)20345 void unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
20346     VulkanStream* vkStream, VkStructureType rootType,
20347     VkPipelineRasterizationStateStreamCreateInfoEXT* forUnmarshaling) {
20348     (void)rootType;
20349     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20350     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20351         rootType = forUnmarshaling->sType;
20352     }
20353     size_t pNext_size;
20354     pNext_size = vkStream->getBe32();
20355     forUnmarshaling->pNext = nullptr;
20356     if (pNext_size) {
20357         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20358         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20359         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20360         vkStream->alloc((void**)&forUnmarshaling->pNext,
20361                         goldfish_vk_extension_struct_size_with_stream_features(
20362                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20363         *(VkStructureType*)forUnmarshaling->pNext = extType;
20364         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20365     }
20366     vkStream->read((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forUnmarshaling->flags,
20367                    sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
20368     vkStream->read((uint32_t*)&forUnmarshaling->rasterizationStream, sizeof(uint32_t));
20369 }
20370 
20371 #endif
20372 #ifdef VK_NVX_binary_import
marshal_VkCuModuleCreateInfoNVX(VulkanStream * vkStream,VkStructureType rootType,const VkCuModuleCreateInfoNVX * forMarshaling)20373 void marshal_VkCuModuleCreateInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20374                                      const VkCuModuleCreateInfoNVX* forMarshaling) {
20375     (void)rootType;
20376     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20377     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20378         rootType = forMarshaling->sType;
20379     }
20380     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20381     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
20382     vkStream->putBe64(cgen_var_0);
20383     vkStream->write((const void*)forMarshaling->pData,
20384                     forMarshaling->dataSize * sizeof(const uint8_t));
20385 }
20386 
unmarshal_VkCuModuleCreateInfoNVX(VulkanStream * vkStream,VkStructureType rootType,VkCuModuleCreateInfoNVX * forUnmarshaling)20387 void unmarshal_VkCuModuleCreateInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20388                                        VkCuModuleCreateInfoNVX* forUnmarshaling) {
20389     (void)rootType;
20390     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20391     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20392         rootType = forUnmarshaling->sType;
20393     }
20394     size_t pNext_size;
20395     pNext_size = vkStream->getBe32();
20396     forUnmarshaling->pNext = nullptr;
20397     if (pNext_size) {
20398         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20399         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20400         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20401         vkStream->alloc((void**)&forUnmarshaling->pNext,
20402                         goldfish_vk_extension_struct_size_with_stream_features(
20403                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20404         *(VkStructureType*)forUnmarshaling->pNext = extType;
20405         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20406     }
20407     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
20408     vkStream->alloc((void**)&forUnmarshaling->pData,
20409                     forUnmarshaling->dataSize * sizeof(const uint8_t));
20410     vkStream->read((void*)forUnmarshaling->pData,
20411                    forUnmarshaling->dataSize * sizeof(const uint8_t));
20412 }
20413 
marshal_VkCuFunctionCreateInfoNVX(VulkanStream * vkStream,VkStructureType rootType,const VkCuFunctionCreateInfoNVX * forMarshaling)20414 void marshal_VkCuFunctionCreateInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20415                                        const VkCuFunctionCreateInfoNVX* forMarshaling) {
20416     (void)rootType;
20417     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20418     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20419         rootType = forMarshaling->sType;
20420     }
20421     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20422     uint64_t cgen_var_0 = (uint64_t)forMarshaling->module;
20423     vkStream->putBe64(cgen_var_0);
20424     vkStream->putString(forMarshaling->pName);
20425 }
20426 
unmarshal_VkCuFunctionCreateInfoNVX(VulkanStream * vkStream,VkStructureType rootType,VkCuFunctionCreateInfoNVX * forUnmarshaling)20427 void unmarshal_VkCuFunctionCreateInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20428                                          VkCuFunctionCreateInfoNVX* forUnmarshaling) {
20429     (void)rootType;
20430     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20431     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20432         rootType = forUnmarshaling->sType;
20433     }
20434     size_t pNext_size;
20435     pNext_size = vkStream->getBe32();
20436     forUnmarshaling->pNext = nullptr;
20437     if (pNext_size) {
20438         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20439         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20440         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20441         vkStream->alloc((void**)&forUnmarshaling->pNext,
20442                         goldfish_vk_extension_struct_size_with_stream_features(
20443                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20444         *(VkStructureType*)forUnmarshaling->pNext = extType;
20445         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20446     }
20447     forUnmarshaling->module = (VkCuModuleNVX)vkStream->getBe64();
20448     vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
20449 }
20450 
marshal_VkCuLaunchInfoNVX(VulkanStream * vkStream,VkStructureType rootType,const VkCuLaunchInfoNVX * forMarshaling)20451 void marshal_VkCuLaunchInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20452                                const VkCuLaunchInfoNVX* forMarshaling) {
20453     (void)rootType;
20454     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20455     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20456         rootType = forMarshaling->sType;
20457     }
20458     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20459     uint64_t cgen_var_0 = (uint64_t)forMarshaling->function;
20460     vkStream->putBe64(cgen_var_0);
20461     vkStream->write((uint32_t*)&forMarshaling->gridDimX, sizeof(uint32_t));
20462     vkStream->write((uint32_t*)&forMarshaling->gridDimY, sizeof(uint32_t));
20463     vkStream->write((uint32_t*)&forMarshaling->gridDimZ, sizeof(uint32_t));
20464     vkStream->write((uint32_t*)&forMarshaling->blockDimX, sizeof(uint32_t));
20465     vkStream->write((uint32_t*)&forMarshaling->blockDimY, sizeof(uint32_t));
20466     vkStream->write((uint32_t*)&forMarshaling->blockDimZ, sizeof(uint32_t));
20467     vkStream->write((uint32_t*)&forMarshaling->sharedMemBytes, sizeof(uint32_t));
20468     uint64_t cgen_var_1 = (uint64_t)forMarshaling->paramCount;
20469     vkStream->putBe64(cgen_var_1);
20470     uint64_t cgen_var_2 = (uint64_t)forMarshaling->extraCount;
20471     vkStream->putBe64(cgen_var_2);
20472 }
20473 
unmarshal_VkCuLaunchInfoNVX(VulkanStream * vkStream,VkStructureType rootType,VkCuLaunchInfoNVX * forUnmarshaling)20474 void unmarshal_VkCuLaunchInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20475                                  VkCuLaunchInfoNVX* forUnmarshaling) {
20476     (void)rootType;
20477     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20478     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20479         rootType = forUnmarshaling->sType;
20480     }
20481     size_t pNext_size;
20482     pNext_size = vkStream->getBe32();
20483     forUnmarshaling->pNext = nullptr;
20484     if (pNext_size) {
20485         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20486         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20487         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20488         vkStream->alloc((void**)&forUnmarshaling->pNext,
20489                         goldfish_vk_extension_struct_size_with_stream_features(
20490                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20491         *(VkStructureType*)forUnmarshaling->pNext = extType;
20492         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20493     }
20494     forUnmarshaling->function = (VkCuFunctionNVX)vkStream->getBe64();
20495     vkStream->read((uint32_t*)&forUnmarshaling->gridDimX, sizeof(uint32_t));
20496     vkStream->read((uint32_t*)&forUnmarshaling->gridDimY, sizeof(uint32_t));
20497     vkStream->read((uint32_t*)&forUnmarshaling->gridDimZ, sizeof(uint32_t));
20498     vkStream->read((uint32_t*)&forUnmarshaling->blockDimX, sizeof(uint32_t));
20499     vkStream->read((uint32_t*)&forUnmarshaling->blockDimY, sizeof(uint32_t));
20500     vkStream->read((uint32_t*)&forUnmarshaling->blockDimZ, sizeof(uint32_t));
20501     vkStream->read((uint32_t*)&forUnmarshaling->sharedMemBytes, sizeof(uint32_t));
20502     forUnmarshaling->paramCount = (size_t)vkStream->getBe64();
20503     forUnmarshaling->extraCount = (size_t)vkStream->getBe64();
20504 }
20505 
20506 #endif
20507 #ifdef VK_NVX_image_view_handle
marshal_VkImageViewHandleInfoNVX(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewHandleInfoNVX * forMarshaling)20508 void marshal_VkImageViewHandleInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20509                                       const VkImageViewHandleInfoNVX* forMarshaling) {
20510     (void)rootType;
20511     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20512     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20513         rootType = forMarshaling->sType;
20514     }
20515     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20516     uint64_t cgen_var_0;
20517     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
20518                                                           1);
20519     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
20520     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
20521     uint64_t cgen_var_1;
20522     vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_1, 1);
20523     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
20524 }
20525 
unmarshal_VkImageViewHandleInfoNVX(VulkanStream * vkStream,VkStructureType rootType,VkImageViewHandleInfoNVX * forUnmarshaling)20526 void unmarshal_VkImageViewHandleInfoNVX(VulkanStream* vkStream, VkStructureType rootType,
20527                                         VkImageViewHandleInfoNVX* forUnmarshaling) {
20528     (void)rootType;
20529     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20531         rootType = forUnmarshaling->sType;
20532     }
20533     size_t pNext_size;
20534     pNext_size = vkStream->getBe32();
20535     forUnmarshaling->pNext = nullptr;
20536     if (pNext_size) {
20537         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20538         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20539         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20540         vkStream->alloc((void**)&forUnmarshaling->pNext,
20541                         goldfish_vk_extension_struct_size_with_stream_features(
20542                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20543         *(VkStructureType*)forUnmarshaling->pNext = extType;
20544         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20545     }
20546     uint64_t cgen_var_0;
20547     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
20548     vkStream->handleMapping()->mapHandles_u64_VkImageView(
20549         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
20550     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
20551     uint64_t cgen_var_1;
20552     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
20553     vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_1,
20554                                                         (VkSampler*)&forUnmarshaling->sampler, 1);
20555 }
20556 
marshal_VkImageViewAddressPropertiesNVX(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewAddressPropertiesNVX * forMarshaling)20557 void marshal_VkImageViewAddressPropertiesNVX(VulkanStream* vkStream, VkStructureType rootType,
20558                                              const VkImageViewAddressPropertiesNVX* forMarshaling) {
20559     (void)rootType;
20560     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20561     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20562         rootType = forMarshaling->sType;
20563     }
20564     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20565     vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
20566     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
20567 }
20568 
unmarshal_VkImageViewAddressPropertiesNVX(VulkanStream * vkStream,VkStructureType rootType,VkImageViewAddressPropertiesNVX * forUnmarshaling)20569 void unmarshal_VkImageViewAddressPropertiesNVX(VulkanStream* vkStream, VkStructureType rootType,
20570                                                VkImageViewAddressPropertiesNVX* forUnmarshaling) {
20571     (void)rootType;
20572     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20573     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20574         rootType = forUnmarshaling->sType;
20575     }
20576     size_t pNext_size;
20577     pNext_size = vkStream->getBe32();
20578     forUnmarshaling->pNext = nullptr;
20579     if (pNext_size) {
20580         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20581         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20582         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20583         vkStream->alloc((void**)&forUnmarshaling->pNext,
20584                         goldfish_vk_extension_struct_size_with_stream_features(
20585                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20586         *(VkStructureType*)forUnmarshaling->pNext = extType;
20587         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20588     }
20589     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
20590     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
20591 }
20592 
20593 #endif
20594 #ifdef VK_AMD_draw_indirect_count
20595 #endif
20596 #ifdef VK_AMD_negative_viewport_height
20597 #endif
20598 #ifdef VK_AMD_gpu_shader_half_float
20599 #endif
20600 #ifdef VK_AMD_shader_ballot
20601 #endif
20602 #ifdef VK_EXT_video_encode_h264
marshal_VkVideoEncodeH264CapabilitiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264CapabilitiesEXT * forMarshaling)20603 void marshal_VkVideoEncodeH264CapabilitiesEXT(
20604     VulkanStream* vkStream, VkStructureType rootType,
20605     const VkVideoEncodeH264CapabilitiesEXT* forMarshaling) {
20606     (void)rootType;
20607     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20608     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20609         rootType = forMarshaling->sType;
20610     }
20611     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20612     vkStream->write((VkVideoEncodeH264CapabilityFlagsEXT*)&forMarshaling->flags,
20613                     sizeof(VkVideoEncodeH264CapabilityFlagsEXT));
20614     vkStream->write((uint32_t*)&forMarshaling->maxPPictureL0ReferenceCount, sizeof(uint32_t));
20615     vkStream->write((uint32_t*)&forMarshaling->maxBPictureL0ReferenceCount, sizeof(uint32_t));
20616     vkStream->write((uint32_t*)&forMarshaling->maxL1ReferenceCount, sizeof(uint32_t));
20617     vkStream->write((VkBool32*)&forMarshaling->motionVectorsOverPicBoundariesFlag,
20618                     sizeof(VkBool32));
20619     vkStream->write((uint32_t*)&forMarshaling->maxBytesPerPicDenom, sizeof(uint32_t));
20620     vkStream->write((uint32_t*)&forMarshaling->maxBitsPerMbDenom, sizeof(uint32_t));
20621     vkStream->write((uint32_t*)&forMarshaling->log2MaxMvLengthHorizontal, sizeof(uint32_t));
20622     vkStream->write((uint32_t*)&forMarshaling->log2MaxMvLengthVertical, sizeof(uint32_t));
20623 }
20624 
unmarshal_VkVideoEncodeH264CapabilitiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264CapabilitiesEXT * forUnmarshaling)20625 void unmarshal_VkVideoEncodeH264CapabilitiesEXT(VulkanStream* vkStream, VkStructureType rootType,
20626                                                 VkVideoEncodeH264CapabilitiesEXT* forUnmarshaling) {
20627     (void)rootType;
20628     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20629     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20630         rootType = forUnmarshaling->sType;
20631     }
20632     size_t pNext_size;
20633     pNext_size = vkStream->getBe32();
20634     forUnmarshaling->pNext = nullptr;
20635     if (pNext_size) {
20636         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20637         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20638         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20639         vkStream->alloc((void**)&forUnmarshaling->pNext,
20640                         goldfish_vk_extension_struct_size_with_stream_features(
20641                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20642         *(VkStructureType*)forUnmarshaling->pNext = extType;
20643         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20644     }
20645     vkStream->read((VkVideoEncodeH264CapabilityFlagsEXT*)&forUnmarshaling->flags,
20646                    sizeof(VkVideoEncodeH264CapabilityFlagsEXT));
20647     vkStream->read((uint32_t*)&forUnmarshaling->maxPPictureL0ReferenceCount, sizeof(uint32_t));
20648     vkStream->read((uint32_t*)&forUnmarshaling->maxBPictureL0ReferenceCount, sizeof(uint32_t));
20649     vkStream->read((uint32_t*)&forUnmarshaling->maxL1ReferenceCount, sizeof(uint32_t));
20650     vkStream->read((VkBool32*)&forUnmarshaling->motionVectorsOverPicBoundariesFlag,
20651                    sizeof(VkBool32));
20652     vkStream->read((uint32_t*)&forUnmarshaling->maxBytesPerPicDenom, sizeof(uint32_t));
20653     vkStream->read((uint32_t*)&forUnmarshaling->maxBitsPerMbDenom, sizeof(uint32_t));
20654     vkStream->read((uint32_t*)&forUnmarshaling->log2MaxMvLengthHorizontal, sizeof(uint32_t));
20655     vkStream->read((uint32_t*)&forUnmarshaling->log2MaxMvLengthVertical, sizeof(uint32_t));
20656 }
20657 
marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264SessionParametersAddInfoEXT * forMarshaling)20658 void marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
20659     VulkanStream* vkStream, VkStructureType rootType,
20660     const VkVideoEncodeH264SessionParametersAddInfoEXT* forMarshaling) {
20661     (void)rootType;
20662     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20663     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20664         rootType = forMarshaling->sType;
20665     }
20666     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20667     vkStream->write((uint32_t*)&forMarshaling->stdSPSCount, sizeof(uint32_t));
20668     // WARNING PTR CHECK
20669     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pStdSPSs;
20670     vkStream->putBe64(cgen_var_0);
20671     if (forMarshaling->pStdSPSs) {
20672         vkStream->write(
20673             (const StdVideoH264SequenceParameterSet*)forMarshaling->pStdSPSs,
20674             forMarshaling->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet));
20675     }
20676     vkStream->write((uint32_t*)&forMarshaling->stdPPSCount, sizeof(uint32_t));
20677     // WARNING PTR CHECK
20678     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pStdPPSs;
20679     vkStream->putBe64(cgen_var_1);
20680     if (forMarshaling->pStdPPSs) {
20681         vkStream->write((const StdVideoH264PictureParameterSet*)forMarshaling->pStdPPSs,
20682                         forMarshaling->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet));
20683     }
20684 }
20685 
unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264SessionParametersAddInfoEXT * forUnmarshaling)20686 void unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
20687     VulkanStream* vkStream, VkStructureType rootType,
20688     VkVideoEncodeH264SessionParametersAddInfoEXT* forUnmarshaling) {
20689     (void)rootType;
20690     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20691     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20692         rootType = forUnmarshaling->sType;
20693     }
20694     size_t pNext_size;
20695     pNext_size = vkStream->getBe32();
20696     forUnmarshaling->pNext = nullptr;
20697     if (pNext_size) {
20698         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20699         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20700         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20701         vkStream->alloc((void**)&forUnmarshaling->pNext,
20702                         goldfish_vk_extension_struct_size_with_stream_features(
20703                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20704         *(VkStructureType*)forUnmarshaling->pNext = extType;
20705         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20706     }
20707     vkStream->read((uint32_t*)&forUnmarshaling->stdSPSCount, sizeof(uint32_t));
20708     // WARNING PTR CHECK
20709     forUnmarshaling->pStdSPSs =
20710         (const StdVideoH264SequenceParameterSet*)(uintptr_t)vkStream->getBe64();
20711     if (forUnmarshaling->pStdSPSs) {
20712         vkStream->alloc(
20713             (void**)&forUnmarshaling->pStdSPSs,
20714             forUnmarshaling->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet));
20715         vkStream->read(
20716             (StdVideoH264SequenceParameterSet*)forUnmarshaling->pStdSPSs,
20717             forUnmarshaling->stdSPSCount * sizeof(const StdVideoH264SequenceParameterSet));
20718     }
20719     vkStream->read((uint32_t*)&forUnmarshaling->stdPPSCount, sizeof(uint32_t));
20720     // WARNING PTR CHECK
20721     forUnmarshaling->pStdPPSs =
20722         (const StdVideoH264PictureParameterSet*)(uintptr_t)vkStream->getBe64();
20723     if (forUnmarshaling->pStdPPSs) {
20724         vkStream->alloc(
20725             (void**)&forUnmarshaling->pStdPPSs,
20726             forUnmarshaling->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet));
20727         vkStream->read(
20728             (StdVideoH264PictureParameterSet*)forUnmarshaling->pStdPPSs,
20729             forUnmarshaling->stdPPSCount * sizeof(const StdVideoH264PictureParameterSet));
20730     }
20731 }
20732 
marshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264SessionParametersCreateInfoEXT * forMarshaling)20733 void marshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
20734     VulkanStream* vkStream, VkStructureType rootType,
20735     const VkVideoEncodeH264SessionParametersCreateInfoEXT* forMarshaling) {
20736     (void)rootType;
20737     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20739         rootType = forMarshaling->sType;
20740     }
20741     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20742     vkStream->write((uint32_t*)&forMarshaling->maxStdSPSCount, sizeof(uint32_t));
20743     vkStream->write((uint32_t*)&forMarshaling->maxStdPPSCount, sizeof(uint32_t));
20744     // WARNING PTR CHECK
20745     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
20746     vkStream->putBe64(cgen_var_0);
20747     if (forMarshaling->pParametersAddInfo) {
20748         marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
20749             vkStream, rootType,
20750             (const VkVideoEncodeH264SessionParametersAddInfoEXT*)(forMarshaling
20751                                                                       ->pParametersAddInfo));
20752     }
20753 }
20754 
unmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264SessionParametersCreateInfoEXT * forUnmarshaling)20755 void unmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
20756     VulkanStream* vkStream, VkStructureType rootType,
20757     VkVideoEncodeH264SessionParametersCreateInfoEXT* forUnmarshaling) {
20758     (void)rootType;
20759     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20760     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20761         rootType = forUnmarshaling->sType;
20762     }
20763     size_t pNext_size;
20764     pNext_size = vkStream->getBe32();
20765     forUnmarshaling->pNext = nullptr;
20766     if (pNext_size) {
20767         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20768         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20769         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20770         vkStream->alloc((void**)&forUnmarshaling->pNext,
20771                         goldfish_vk_extension_struct_size_with_stream_features(
20772                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20773         *(VkStructureType*)forUnmarshaling->pNext = extType;
20774         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20775     }
20776     vkStream->read((uint32_t*)&forUnmarshaling->maxStdSPSCount, sizeof(uint32_t));
20777     vkStream->read((uint32_t*)&forUnmarshaling->maxStdPPSCount, sizeof(uint32_t));
20778     // WARNING PTR CHECK
20779     forUnmarshaling->pParametersAddInfo =
20780         (const VkVideoEncodeH264SessionParametersAddInfoEXT*)(uintptr_t)vkStream->getBe64();
20781     if (forUnmarshaling->pParametersAddInfo) {
20782         vkStream->alloc((void**)&forUnmarshaling->pParametersAddInfo,
20783                         sizeof(const VkVideoEncodeH264SessionParametersAddInfoEXT));
20784         unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
20785             vkStream, rootType,
20786             (VkVideoEncodeH264SessionParametersAddInfoEXT*)(forUnmarshaling->pParametersAddInfo));
20787     }
20788 }
20789 
marshal_VkVideoEncodeH264NaluSliceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264NaluSliceInfoEXT * forMarshaling)20790 void marshal_VkVideoEncodeH264NaluSliceInfoEXT(
20791     VulkanStream* vkStream, VkStructureType rootType,
20792     const VkVideoEncodeH264NaluSliceInfoEXT* forMarshaling) {
20793     (void)rootType;
20794     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20795     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20796         rootType = forMarshaling->sType;
20797     }
20798     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20799     vkStream->write((uint32_t*)&forMarshaling->mbCount, sizeof(uint32_t));
20800     // WARNING PTR CHECK
20801     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pStdReferenceFinalLists;
20802     vkStream->putBe64(cgen_var_0);
20803     if (forMarshaling->pStdReferenceFinalLists) {
20804         vkStream->write(
20805             (const StdVideoEncodeH264ReferenceListsInfo*)forMarshaling->pStdReferenceFinalLists,
20806             sizeof(const StdVideoEncodeH264ReferenceListsInfo));
20807     }
20808     vkStream->write((const StdVideoEncodeH264SliceHeader*)forMarshaling->pStdSliceHeader,
20809                     sizeof(const StdVideoEncodeH264SliceHeader));
20810 }
20811 
unmarshal_VkVideoEncodeH264NaluSliceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264NaluSliceInfoEXT * forUnmarshaling)20812 void unmarshal_VkVideoEncodeH264NaluSliceInfoEXT(
20813     VulkanStream* vkStream, VkStructureType rootType,
20814     VkVideoEncodeH264NaluSliceInfoEXT* forUnmarshaling) {
20815     (void)rootType;
20816     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20817     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20818         rootType = forUnmarshaling->sType;
20819     }
20820     size_t pNext_size;
20821     pNext_size = vkStream->getBe32();
20822     forUnmarshaling->pNext = nullptr;
20823     if (pNext_size) {
20824         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20825         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20826         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20827         vkStream->alloc((void**)&forUnmarshaling->pNext,
20828                         goldfish_vk_extension_struct_size_with_stream_features(
20829                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20830         *(VkStructureType*)forUnmarshaling->pNext = extType;
20831         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20832     }
20833     vkStream->read((uint32_t*)&forUnmarshaling->mbCount, sizeof(uint32_t));
20834     // WARNING PTR CHECK
20835     forUnmarshaling->pStdReferenceFinalLists =
20836         (const StdVideoEncodeH264ReferenceListsInfo*)(uintptr_t)vkStream->getBe64();
20837     if (forUnmarshaling->pStdReferenceFinalLists) {
20838         vkStream->alloc((void**)&forUnmarshaling->pStdReferenceFinalLists,
20839                         sizeof(const StdVideoEncodeH264ReferenceListsInfo));
20840         vkStream->read(
20841             (StdVideoEncodeH264ReferenceListsInfo*)forUnmarshaling->pStdReferenceFinalLists,
20842             sizeof(const StdVideoEncodeH264ReferenceListsInfo));
20843     }
20844     vkStream->alloc((void**)&forUnmarshaling->pStdSliceHeader,
20845                     sizeof(const StdVideoEncodeH264SliceHeader));
20846     vkStream->read((StdVideoEncodeH264SliceHeader*)forUnmarshaling->pStdSliceHeader,
20847                    sizeof(const StdVideoEncodeH264SliceHeader));
20848 }
20849 
marshal_VkVideoEncodeH264VclFrameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264VclFrameInfoEXT * forMarshaling)20850 void marshal_VkVideoEncodeH264VclFrameInfoEXT(
20851     VulkanStream* vkStream, VkStructureType rootType,
20852     const VkVideoEncodeH264VclFrameInfoEXT* forMarshaling) {
20853     (void)rootType;
20854     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20855     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20856         rootType = forMarshaling->sType;
20857     }
20858     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20859     // WARNING PTR CHECK
20860     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pStdReferenceFinalLists;
20861     vkStream->putBe64(cgen_var_0);
20862     if (forMarshaling->pStdReferenceFinalLists) {
20863         vkStream->write(
20864             (const StdVideoEncodeH264ReferenceListsInfo*)forMarshaling->pStdReferenceFinalLists,
20865             sizeof(const StdVideoEncodeH264ReferenceListsInfo));
20866     }
20867     vkStream->write((uint32_t*)&forMarshaling->naluSliceEntryCount, sizeof(uint32_t));
20868     if (forMarshaling) {
20869         for (uint32_t i = 0; i < (uint32_t)forMarshaling->naluSliceEntryCount; ++i) {
20870             marshal_VkVideoEncodeH264NaluSliceInfoEXT(
20871                 vkStream, rootType,
20872                 (const VkVideoEncodeH264NaluSliceInfoEXT*)(forMarshaling->pNaluSliceEntries + i));
20873         }
20874     }
20875     vkStream->write((const StdVideoEncodeH264PictureInfo*)forMarshaling->pStdPictureInfo,
20876                     sizeof(const StdVideoEncodeH264PictureInfo));
20877 }
20878 
unmarshal_VkVideoEncodeH264VclFrameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264VclFrameInfoEXT * forUnmarshaling)20879 void unmarshal_VkVideoEncodeH264VclFrameInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20880                                                 VkVideoEncodeH264VclFrameInfoEXT* forUnmarshaling) {
20881     (void)rootType;
20882     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20883     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20884         rootType = forUnmarshaling->sType;
20885     }
20886     size_t pNext_size;
20887     pNext_size = vkStream->getBe32();
20888     forUnmarshaling->pNext = nullptr;
20889     if (pNext_size) {
20890         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20891         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20892         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20893         vkStream->alloc((void**)&forUnmarshaling->pNext,
20894                         goldfish_vk_extension_struct_size_with_stream_features(
20895                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20896         *(VkStructureType*)forUnmarshaling->pNext = extType;
20897         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20898     }
20899     // WARNING PTR CHECK
20900     forUnmarshaling->pStdReferenceFinalLists =
20901         (const StdVideoEncodeH264ReferenceListsInfo*)(uintptr_t)vkStream->getBe64();
20902     if (forUnmarshaling->pStdReferenceFinalLists) {
20903         vkStream->alloc((void**)&forUnmarshaling->pStdReferenceFinalLists,
20904                         sizeof(const StdVideoEncodeH264ReferenceListsInfo));
20905         vkStream->read(
20906             (StdVideoEncodeH264ReferenceListsInfo*)forUnmarshaling->pStdReferenceFinalLists,
20907             sizeof(const StdVideoEncodeH264ReferenceListsInfo));
20908     }
20909     vkStream->read((uint32_t*)&forUnmarshaling->naluSliceEntryCount, sizeof(uint32_t));
20910     vkStream->alloc(
20911         (void**)&forUnmarshaling->pNaluSliceEntries,
20912         forUnmarshaling->naluSliceEntryCount * sizeof(const VkVideoEncodeH264NaluSliceInfoEXT));
20913     if (forUnmarshaling) {
20914         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->naluSliceEntryCount; ++i) {
20915             unmarshal_VkVideoEncodeH264NaluSliceInfoEXT(
20916                 vkStream, rootType,
20917                 (VkVideoEncodeH264NaluSliceInfoEXT*)(forUnmarshaling->pNaluSliceEntries + i));
20918         }
20919     }
20920     vkStream->alloc((void**)&forUnmarshaling->pStdPictureInfo,
20921                     sizeof(const StdVideoEncodeH264PictureInfo));
20922     vkStream->read((StdVideoEncodeH264PictureInfo*)forUnmarshaling->pStdPictureInfo,
20923                    sizeof(const StdVideoEncodeH264PictureInfo));
20924 }
20925 
marshal_VkVideoEncodeH264DpbSlotInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264DpbSlotInfoEXT * forMarshaling)20926 void marshal_VkVideoEncodeH264DpbSlotInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20927                                              const VkVideoEncodeH264DpbSlotInfoEXT* forMarshaling) {
20928     (void)rootType;
20929     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20930     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20931         rootType = forMarshaling->sType;
20932     }
20933     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20934     vkStream->write((const StdVideoEncodeH264ReferenceInfo*)forMarshaling->pStdReferenceInfo,
20935                     sizeof(const StdVideoEncodeH264ReferenceInfo));
20936 }
20937 
unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264DpbSlotInfoEXT * forUnmarshaling)20938 void unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20939                                                VkVideoEncodeH264DpbSlotInfoEXT* forUnmarshaling) {
20940     (void)rootType;
20941     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20942     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20943         rootType = forUnmarshaling->sType;
20944     }
20945     size_t pNext_size;
20946     pNext_size = vkStream->getBe32();
20947     forUnmarshaling->pNext = nullptr;
20948     if (pNext_size) {
20949         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20950         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20951         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20952         vkStream->alloc((void**)&forUnmarshaling->pNext,
20953                         goldfish_vk_extension_struct_size_with_stream_features(
20954                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20955         *(VkStructureType*)forUnmarshaling->pNext = extType;
20956         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20957     }
20958     vkStream->alloc((void**)&forUnmarshaling->pStdReferenceInfo,
20959                     sizeof(const StdVideoEncodeH264ReferenceInfo));
20960     vkStream->read((StdVideoEncodeH264ReferenceInfo*)forUnmarshaling->pStdReferenceInfo,
20961                    sizeof(const StdVideoEncodeH264ReferenceInfo));
20962 }
20963 
marshal_VkVideoEncodeH264ProfileInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264ProfileInfoEXT * forMarshaling)20964 void marshal_VkVideoEncodeH264ProfileInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20965                                              const VkVideoEncodeH264ProfileInfoEXT* forMarshaling) {
20966     (void)rootType;
20967     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
20968     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20969         rootType = forMarshaling->sType;
20970     }
20971     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
20972     vkStream->write((StdVideoH264ProfileIdc*)&forMarshaling->stdProfileIdc,
20973                     sizeof(StdVideoH264ProfileIdc));
20974 }
20975 
unmarshal_VkVideoEncodeH264ProfileInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264ProfileInfoEXT * forUnmarshaling)20976 void unmarshal_VkVideoEncodeH264ProfileInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
20977                                                VkVideoEncodeH264ProfileInfoEXT* forUnmarshaling) {
20978     (void)rootType;
20979     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
20980     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
20981         rootType = forUnmarshaling->sType;
20982     }
20983     size_t pNext_size;
20984     pNext_size = vkStream->getBe32();
20985     forUnmarshaling->pNext = nullptr;
20986     if (pNext_size) {
20987         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
20988         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
20989         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
20990         vkStream->alloc((void**)&forUnmarshaling->pNext,
20991                         goldfish_vk_extension_struct_size_with_stream_features(
20992                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
20993         *(VkStructureType*)forUnmarshaling->pNext = extType;
20994         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
20995     }
20996     vkStream->read((StdVideoH264ProfileIdc*)&forUnmarshaling->stdProfileIdc,
20997                    sizeof(StdVideoH264ProfileIdc));
20998 }
20999 
marshal_VkVideoEncodeH264RateControlInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264RateControlInfoEXT * forMarshaling)21000 void marshal_VkVideoEncodeH264RateControlInfoEXT(
21001     VulkanStream* vkStream, VkStructureType rootType,
21002     const VkVideoEncodeH264RateControlInfoEXT* forMarshaling) {
21003     (void)rootType;
21004     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21005     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21006         rootType = forMarshaling->sType;
21007     }
21008     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21009     vkStream->write((uint32_t*)&forMarshaling->gopFrameCount, sizeof(uint32_t));
21010     vkStream->write((uint32_t*)&forMarshaling->idrPeriod, sizeof(uint32_t));
21011     vkStream->write((uint32_t*)&forMarshaling->consecutiveBFrameCount, sizeof(uint32_t));
21012     vkStream->write((VkVideoEncodeH264RateControlStructureEXT*)&forMarshaling->rateControlStructure,
21013                     sizeof(VkVideoEncodeH264RateControlStructureEXT));
21014     vkStream->write((uint32_t*)&forMarshaling->temporalLayerCount, sizeof(uint32_t));
21015 }
21016 
unmarshal_VkVideoEncodeH264RateControlInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264RateControlInfoEXT * forUnmarshaling)21017 void unmarshal_VkVideoEncodeH264RateControlInfoEXT(
21018     VulkanStream* vkStream, VkStructureType rootType,
21019     VkVideoEncodeH264RateControlInfoEXT* forUnmarshaling) {
21020     (void)rootType;
21021     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21022     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21023         rootType = forUnmarshaling->sType;
21024     }
21025     size_t pNext_size;
21026     pNext_size = vkStream->getBe32();
21027     forUnmarshaling->pNext = nullptr;
21028     if (pNext_size) {
21029         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21030         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21031         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21032         vkStream->alloc((void**)&forUnmarshaling->pNext,
21033                         goldfish_vk_extension_struct_size_with_stream_features(
21034                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21035         *(VkStructureType*)forUnmarshaling->pNext = extType;
21036         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21037     }
21038     vkStream->read((uint32_t*)&forUnmarshaling->gopFrameCount, sizeof(uint32_t));
21039     vkStream->read((uint32_t*)&forUnmarshaling->idrPeriod, sizeof(uint32_t));
21040     vkStream->read((uint32_t*)&forUnmarshaling->consecutiveBFrameCount, sizeof(uint32_t));
21041     vkStream->read(
21042         (VkVideoEncodeH264RateControlStructureEXT*)&forUnmarshaling->rateControlStructure,
21043         sizeof(VkVideoEncodeH264RateControlStructureEXT));
21044     vkStream->read((uint32_t*)&forUnmarshaling->temporalLayerCount, sizeof(uint32_t));
21045 }
21046 
marshal_VkVideoEncodeH264QpEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264QpEXT * forMarshaling)21047 void marshal_VkVideoEncodeH264QpEXT(VulkanStream* vkStream, VkStructureType rootType,
21048                                     const VkVideoEncodeH264QpEXT* forMarshaling) {
21049     (void)rootType;
21050     vkStream->write((int32_t*)&forMarshaling->qpI, sizeof(int32_t));
21051     vkStream->write((int32_t*)&forMarshaling->qpP, sizeof(int32_t));
21052     vkStream->write((int32_t*)&forMarshaling->qpB, sizeof(int32_t));
21053 }
21054 
unmarshal_VkVideoEncodeH264QpEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264QpEXT * forUnmarshaling)21055 void unmarshal_VkVideoEncodeH264QpEXT(VulkanStream* vkStream, VkStructureType rootType,
21056                                       VkVideoEncodeH264QpEXT* forUnmarshaling) {
21057     (void)rootType;
21058     vkStream->read((int32_t*)&forUnmarshaling->qpI, sizeof(int32_t));
21059     vkStream->read((int32_t*)&forUnmarshaling->qpP, sizeof(int32_t));
21060     vkStream->read((int32_t*)&forUnmarshaling->qpB, sizeof(int32_t));
21061 }
21062 
marshal_VkVideoEncodeH264FrameSizeEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264FrameSizeEXT * forMarshaling)21063 void marshal_VkVideoEncodeH264FrameSizeEXT(VulkanStream* vkStream, VkStructureType rootType,
21064                                            const VkVideoEncodeH264FrameSizeEXT* forMarshaling) {
21065     (void)rootType;
21066     vkStream->write((uint32_t*)&forMarshaling->frameISize, sizeof(uint32_t));
21067     vkStream->write((uint32_t*)&forMarshaling->framePSize, sizeof(uint32_t));
21068     vkStream->write((uint32_t*)&forMarshaling->frameBSize, sizeof(uint32_t));
21069 }
21070 
unmarshal_VkVideoEncodeH264FrameSizeEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264FrameSizeEXT * forUnmarshaling)21071 void unmarshal_VkVideoEncodeH264FrameSizeEXT(VulkanStream* vkStream, VkStructureType rootType,
21072                                              VkVideoEncodeH264FrameSizeEXT* forUnmarshaling) {
21073     (void)rootType;
21074     vkStream->read((uint32_t*)&forUnmarshaling->frameISize, sizeof(uint32_t));
21075     vkStream->read((uint32_t*)&forUnmarshaling->framePSize, sizeof(uint32_t));
21076     vkStream->read((uint32_t*)&forUnmarshaling->frameBSize, sizeof(uint32_t));
21077 }
21078 
marshal_VkVideoEncodeH264RateControlLayerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH264RateControlLayerInfoEXT * forMarshaling)21079 void marshal_VkVideoEncodeH264RateControlLayerInfoEXT(
21080     VulkanStream* vkStream, VkStructureType rootType,
21081     const VkVideoEncodeH264RateControlLayerInfoEXT* forMarshaling) {
21082     (void)rootType;
21083     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21084     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21085         rootType = forMarshaling->sType;
21086     }
21087     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21088     vkStream->write((uint32_t*)&forMarshaling->temporalLayerId, sizeof(uint32_t));
21089     vkStream->write((VkBool32*)&forMarshaling->useInitialRcQp, sizeof(VkBool32));
21090     marshal_VkVideoEncodeH264QpEXT(vkStream, rootType,
21091                                    (VkVideoEncodeH264QpEXT*)(&forMarshaling->initialRcQp));
21092     vkStream->write((VkBool32*)&forMarshaling->useMinQp, sizeof(VkBool32));
21093     marshal_VkVideoEncodeH264QpEXT(vkStream, rootType,
21094                                    (VkVideoEncodeH264QpEXT*)(&forMarshaling->minQp));
21095     vkStream->write((VkBool32*)&forMarshaling->useMaxQp, sizeof(VkBool32));
21096     marshal_VkVideoEncodeH264QpEXT(vkStream, rootType,
21097                                    (VkVideoEncodeH264QpEXT*)(&forMarshaling->maxQp));
21098     vkStream->write((VkBool32*)&forMarshaling->useMaxFrameSize, sizeof(VkBool32));
21099     marshal_VkVideoEncodeH264FrameSizeEXT(
21100         vkStream, rootType, (VkVideoEncodeH264FrameSizeEXT*)(&forMarshaling->maxFrameSize));
21101 }
21102 
unmarshal_VkVideoEncodeH264RateControlLayerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH264RateControlLayerInfoEXT * forUnmarshaling)21103 void unmarshal_VkVideoEncodeH264RateControlLayerInfoEXT(
21104     VulkanStream* vkStream, VkStructureType rootType,
21105     VkVideoEncodeH264RateControlLayerInfoEXT* forUnmarshaling) {
21106     (void)rootType;
21107     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21108     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21109         rootType = forUnmarshaling->sType;
21110     }
21111     size_t pNext_size;
21112     pNext_size = vkStream->getBe32();
21113     forUnmarshaling->pNext = nullptr;
21114     if (pNext_size) {
21115         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21116         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21117         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21118         vkStream->alloc((void**)&forUnmarshaling->pNext,
21119                         goldfish_vk_extension_struct_size_with_stream_features(
21120                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21121         *(VkStructureType*)forUnmarshaling->pNext = extType;
21122         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21123     }
21124     vkStream->read((uint32_t*)&forUnmarshaling->temporalLayerId, sizeof(uint32_t));
21125     vkStream->read((VkBool32*)&forUnmarshaling->useInitialRcQp, sizeof(VkBool32));
21126     unmarshal_VkVideoEncodeH264QpEXT(vkStream, rootType,
21127                                      (VkVideoEncodeH264QpEXT*)(&forUnmarshaling->initialRcQp));
21128     vkStream->read((VkBool32*)&forUnmarshaling->useMinQp, sizeof(VkBool32));
21129     unmarshal_VkVideoEncodeH264QpEXT(vkStream, rootType,
21130                                      (VkVideoEncodeH264QpEXT*)(&forUnmarshaling->minQp));
21131     vkStream->read((VkBool32*)&forUnmarshaling->useMaxQp, sizeof(VkBool32));
21132     unmarshal_VkVideoEncodeH264QpEXT(vkStream, rootType,
21133                                      (VkVideoEncodeH264QpEXT*)(&forUnmarshaling->maxQp));
21134     vkStream->read((VkBool32*)&forUnmarshaling->useMaxFrameSize, sizeof(VkBool32));
21135     unmarshal_VkVideoEncodeH264FrameSizeEXT(
21136         vkStream, rootType, (VkVideoEncodeH264FrameSizeEXT*)(&forUnmarshaling->maxFrameSize));
21137 }
21138 
21139 #endif
21140 #ifdef VK_EXT_video_encode_h265
marshal_VkVideoEncodeH265CapabilitiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265CapabilitiesEXT * forMarshaling)21141 void marshal_VkVideoEncodeH265CapabilitiesEXT(
21142     VulkanStream* vkStream, VkStructureType rootType,
21143     const VkVideoEncodeH265CapabilitiesEXT* forMarshaling) {
21144     (void)rootType;
21145     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21146     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21147         rootType = forMarshaling->sType;
21148     }
21149     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21150     vkStream->write((VkVideoEncodeH265CapabilityFlagsEXT*)&forMarshaling->flags,
21151                     sizeof(VkVideoEncodeH265CapabilityFlagsEXT));
21152     vkStream->write((VkVideoEncodeH265CtbSizeFlagsEXT*)&forMarshaling->ctbSizes,
21153                     sizeof(VkVideoEncodeH265CtbSizeFlagsEXT));
21154     vkStream->write(
21155         (VkVideoEncodeH265TransformBlockSizeFlagsEXT*)&forMarshaling->transformBlockSizes,
21156         sizeof(VkVideoEncodeH265TransformBlockSizeFlagsEXT));
21157     vkStream->write((uint32_t*)&forMarshaling->maxPPictureL0ReferenceCount, sizeof(uint32_t));
21158     vkStream->write((uint32_t*)&forMarshaling->maxBPictureL0ReferenceCount, sizeof(uint32_t));
21159     vkStream->write((uint32_t*)&forMarshaling->maxL1ReferenceCount, sizeof(uint32_t));
21160     vkStream->write((uint32_t*)&forMarshaling->maxSubLayersCount, sizeof(uint32_t));
21161     vkStream->write((uint32_t*)&forMarshaling->minLog2MinLumaCodingBlockSizeMinus3,
21162                     sizeof(uint32_t));
21163     vkStream->write((uint32_t*)&forMarshaling->maxLog2MinLumaCodingBlockSizeMinus3,
21164                     sizeof(uint32_t));
21165     vkStream->write((uint32_t*)&forMarshaling->minLog2MinLumaTransformBlockSizeMinus2,
21166                     sizeof(uint32_t));
21167     vkStream->write((uint32_t*)&forMarshaling->maxLog2MinLumaTransformBlockSizeMinus2,
21168                     sizeof(uint32_t));
21169     vkStream->write((uint32_t*)&forMarshaling->minMaxTransformHierarchyDepthInter,
21170                     sizeof(uint32_t));
21171     vkStream->write((uint32_t*)&forMarshaling->maxMaxTransformHierarchyDepthInter,
21172                     sizeof(uint32_t));
21173     vkStream->write((uint32_t*)&forMarshaling->minMaxTransformHierarchyDepthIntra,
21174                     sizeof(uint32_t));
21175     vkStream->write((uint32_t*)&forMarshaling->maxMaxTransformHierarchyDepthIntra,
21176                     sizeof(uint32_t));
21177     vkStream->write((uint32_t*)&forMarshaling->maxDiffCuQpDeltaDepth, sizeof(uint32_t));
21178     vkStream->write((uint32_t*)&forMarshaling->minMaxNumMergeCand, sizeof(uint32_t));
21179     vkStream->write((uint32_t*)&forMarshaling->maxMaxNumMergeCand, sizeof(uint32_t));
21180 }
21181 
unmarshal_VkVideoEncodeH265CapabilitiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265CapabilitiesEXT * forUnmarshaling)21182 void unmarshal_VkVideoEncodeH265CapabilitiesEXT(VulkanStream* vkStream, VkStructureType rootType,
21183                                                 VkVideoEncodeH265CapabilitiesEXT* forUnmarshaling) {
21184     (void)rootType;
21185     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21186     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21187         rootType = forUnmarshaling->sType;
21188     }
21189     size_t pNext_size;
21190     pNext_size = vkStream->getBe32();
21191     forUnmarshaling->pNext = nullptr;
21192     if (pNext_size) {
21193         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21194         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21195         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21196         vkStream->alloc((void**)&forUnmarshaling->pNext,
21197                         goldfish_vk_extension_struct_size_with_stream_features(
21198                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21199         *(VkStructureType*)forUnmarshaling->pNext = extType;
21200         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21201     }
21202     vkStream->read((VkVideoEncodeH265CapabilityFlagsEXT*)&forUnmarshaling->flags,
21203                    sizeof(VkVideoEncodeH265CapabilityFlagsEXT));
21204     vkStream->read((VkVideoEncodeH265CtbSizeFlagsEXT*)&forUnmarshaling->ctbSizes,
21205                    sizeof(VkVideoEncodeH265CtbSizeFlagsEXT));
21206     vkStream->read(
21207         (VkVideoEncodeH265TransformBlockSizeFlagsEXT*)&forUnmarshaling->transformBlockSizes,
21208         sizeof(VkVideoEncodeH265TransformBlockSizeFlagsEXT));
21209     vkStream->read((uint32_t*)&forUnmarshaling->maxPPictureL0ReferenceCount, sizeof(uint32_t));
21210     vkStream->read((uint32_t*)&forUnmarshaling->maxBPictureL0ReferenceCount, sizeof(uint32_t));
21211     vkStream->read((uint32_t*)&forUnmarshaling->maxL1ReferenceCount, sizeof(uint32_t));
21212     vkStream->read((uint32_t*)&forUnmarshaling->maxSubLayersCount, sizeof(uint32_t));
21213     vkStream->read((uint32_t*)&forUnmarshaling->minLog2MinLumaCodingBlockSizeMinus3,
21214                    sizeof(uint32_t));
21215     vkStream->read((uint32_t*)&forUnmarshaling->maxLog2MinLumaCodingBlockSizeMinus3,
21216                    sizeof(uint32_t));
21217     vkStream->read((uint32_t*)&forUnmarshaling->minLog2MinLumaTransformBlockSizeMinus2,
21218                    sizeof(uint32_t));
21219     vkStream->read((uint32_t*)&forUnmarshaling->maxLog2MinLumaTransformBlockSizeMinus2,
21220                    sizeof(uint32_t));
21221     vkStream->read((uint32_t*)&forUnmarshaling->minMaxTransformHierarchyDepthInter,
21222                    sizeof(uint32_t));
21223     vkStream->read((uint32_t*)&forUnmarshaling->maxMaxTransformHierarchyDepthInter,
21224                    sizeof(uint32_t));
21225     vkStream->read((uint32_t*)&forUnmarshaling->minMaxTransformHierarchyDepthIntra,
21226                    sizeof(uint32_t));
21227     vkStream->read((uint32_t*)&forUnmarshaling->maxMaxTransformHierarchyDepthIntra,
21228                    sizeof(uint32_t));
21229     vkStream->read((uint32_t*)&forUnmarshaling->maxDiffCuQpDeltaDepth, sizeof(uint32_t));
21230     vkStream->read((uint32_t*)&forUnmarshaling->minMaxNumMergeCand, sizeof(uint32_t));
21231     vkStream->read((uint32_t*)&forUnmarshaling->maxMaxNumMergeCand, sizeof(uint32_t));
21232 }
21233 
marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265SessionParametersAddInfoEXT * forMarshaling)21234 void marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
21235     VulkanStream* vkStream, VkStructureType rootType,
21236     const VkVideoEncodeH265SessionParametersAddInfoEXT* forMarshaling) {
21237     (void)rootType;
21238     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21239     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21240         rootType = forMarshaling->sType;
21241     }
21242     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21243     vkStream->write((uint32_t*)&forMarshaling->stdVPSCount, sizeof(uint32_t));
21244     // WARNING PTR CHECK
21245     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pStdVPSs;
21246     vkStream->putBe64(cgen_var_0);
21247     if (forMarshaling->pStdVPSs) {
21248         vkStream->write((const StdVideoH265VideoParameterSet*)forMarshaling->pStdVPSs,
21249                         forMarshaling->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet));
21250     }
21251     vkStream->write((uint32_t*)&forMarshaling->stdSPSCount, sizeof(uint32_t));
21252     // WARNING PTR CHECK
21253     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pStdSPSs;
21254     vkStream->putBe64(cgen_var_1);
21255     if (forMarshaling->pStdSPSs) {
21256         vkStream->write(
21257             (const StdVideoH265SequenceParameterSet*)forMarshaling->pStdSPSs,
21258             forMarshaling->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet));
21259     }
21260     vkStream->write((uint32_t*)&forMarshaling->stdPPSCount, sizeof(uint32_t));
21261     // WARNING PTR CHECK
21262     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pStdPPSs;
21263     vkStream->putBe64(cgen_var_2);
21264     if (forMarshaling->pStdPPSs) {
21265         vkStream->write((const StdVideoH265PictureParameterSet*)forMarshaling->pStdPPSs,
21266                         forMarshaling->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet));
21267     }
21268 }
21269 
unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265SessionParametersAddInfoEXT * forUnmarshaling)21270 void unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
21271     VulkanStream* vkStream, VkStructureType rootType,
21272     VkVideoEncodeH265SessionParametersAddInfoEXT* forUnmarshaling) {
21273     (void)rootType;
21274     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21275     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21276         rootType = forUnmarshaling->sType;
21277     }
21278     size_t pNext_size;
21279     pNext_size = vkStream->getBe32();
21280     forUnmarshaling->pNext = nullptr;
21281     if (pNext_size) {
21282         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21283         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21284         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21285         vkStream->alloc((void**)&forUnmarshaling->pNext,
21286                         goldfish_vk_extension_struct_size_with_stream_features(
21287                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21288         *(VkStructureType*)forUnmarshaling->pNext = extType;
21289         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21290     }
21291     vkStream->read((uint32_t*)&forUnmarshaling->stdVPSCount, sizeof(uint32_t));
21292     // WARNING PTR CHECK
21293     forUnmarshaling->pStdVPSs =
21294         (const StdVideoH265VideoParameterSet*)(uintptr_t)vkStream->getBe64();
21295     if (forUnmarshaling->pStdVPSs) {
21296         vkStream->alloc((void**)&forUnmarshaling->pStdVPSs,
21297                         forUnmarshaling->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet));
21298         vkStream->read((StdVideoH265VideoParameterSet*)forUnmarshaling->pStdVPSs,
21299                        forUnmarshaling->stdVPSCount * sizeof(const StdVideoH265VideoParameterSet));
21300     }
21301     vkStream->read((uint32_t*)&forUnmarshaling->stdSPSCount, sizeof(uint32_t));
21302     // WARNING PTR CHECK
21303     forUnmarshaling->pStdSPSs =
21304         (const StdVideoH265SequenceParameterSet*)(uintptr_t)vkStream->getBe64();
21305     if (forUnmarshaling->pStdSPSs) {
21306         vkStream->alloc(
21307             (void**)&forUnmarshaling->pStdSPSs,
21308             forUnmarshaling->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet));
21309         vkStream->read(
21310             (StdVideoH265SequenceParameterSet*)forUnmarshaling->pStdSPSs,
21311             forUnmarshaling->stdSPSCount * sizeof(const StdVideoH265SequenceParameterSet));
21312     }
21313     vkStream->read((uint32_t*)&forUnmarshaling->stdPPSCount, sizeof(uint32_t));
21314     // WARNING PTR CHECK
21315     forUnmarshaling->pStdPPSs =
21316         (const StdVideoH265PictureParameterSet*)(uintptr_t)vkStream->getBe64();
21317     if (forUnmarshaling->pStdPPSs) {
21318         vkStream->alloc(
21319             (void**)&forUnmarshaling->pStdPPSs,
21320             forUnmarshaling->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet));
21321         vkStream->read(
21322             (StdVideoH265PictureParameterSet*)forUnmarshaling->pStdPPSs,
21323             forUnmarshaling->stdPPSCount * sizeof(const StdVideoH265PictureParameterSet));
21324     }
21325 }
21326 
marshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265SessionParametersCreateInfoEXT * forMarshaling)21327 void marshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
21328     VulkanStream* vkStream, VkStructureType rootType,
21329     const VkVideoEncodeH265SessionParametersCreateInfoEXT* forMarshaling) {
21330     (void)rootType;
21331     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21332     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21333         rootType = forMarshaling->sType;
21334     }
21335     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21336     vkStream->write((uint32_t*)&forMarshaling->maxStdVPSCount, sizeof(uint32_t));
21337     vkStream->write((uint32_t*)&forMarshaling->maxStdSPSCount, sizeof(uint32_t));
21338     vkStream->write((uint32_t*)&forMarshaling->maxStdPPSCount, sizeof(uint32_t));
21339     // WARNING PTR CHECK
21340     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
21341     vkStream->putBe64(cgen_var_0);
21342     if (forMarshaling->pParametersAddInfo) {
21343         marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
21344             vkStream, rootType,
21345             (const VkVideoEncodeH265SessionParametersAddInfoEXT*)(forMarshaling
21346                                                                       ->pParametersAddInfo));
21347     }
21348 }
21349 
unmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265SessionParametersCreateInfoEXT * forUnmarshaling)21350 void unmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
21351     VulkanStream* vkStream, VkStructureType rootType,
21352     VkVideoEncodeH265SessionParametersCreateInfoEXT* forUnmarshaling) {
21353     (void)rootType;
21354     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21355     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21356         rootType = forUnmarshaling->sType;
21357     }
21358     size_t pNext_size;
21359     pNext_size = vkStream->getBe32();
21360     forUnmarshaling->pNext = nullptr;
21361     if (pNext_size) {
21362         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21363         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21364         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21365         vkStream->alloc((void**)&forUnmarshaling->pNext,
21366                         goldfish_vk_extension_struct_size_with_stream_features(
21367                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21368         *(VkStructureType*)forUnmarshaling->pNext = extType;
21369         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21370     }
21371     vkStream->read((uint32_t*)&forUnmarshaling->maxStdVPSCount, sizeof(uint32_t));
21372     vkStream->read((uint32_t*)&forUnmarshaling->maxStdSPSCount, sizeof(uint32_t));
21373     vkStream->read((uint32_t*)&forUnmarshaling->maxStdPPSCount, sizeof(uint32_t));
21374     // WARNING PTR CHECK
21375     forUnmarshaling->pParametersAddInfo =
21376         (const VkVideoEncodeH265SessionParametersAddInfoEXT*)(uintptr_t)vkStream->getBe64();
21377     if (forUnmarshaling->pParametersAddInfo) {
21378         vkStream->alloc((void**)&forUnmarshaling->pParametersAddInfo,
21379                         sizeof(const VkVideoEncodeH265SessionParametersAddInfoEXT));
21380         unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
21381             vkStream, rootType,
21382             (VkVideoEncodeH265SessionParametersAddInfoEXT*)(forUnmarshaling->pParametersAddInfo));
21383     }
21384 }
21385 
marshal_VkVideoEncodeH265NaluSliceSegmentInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265NaluSliceSegmentInfoEXT * forMarshaling)21386 void marshal_VkVideoEncodeH265NaluSliceSegmentInfoEXT(
21387     VulkanStream* vkStream, VkStructureType rootType,
21388     const VkVideoEncodeH265NaluSliceSegmentInfoEXT* forMarshaling) {
21389     (void)rootType;
21390     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21391     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21392         rootType = forMarshaling->sType;
21393     }
21394     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21395     vkStream->write((uint32_t*)&forMarshaling->ctbCount, sizeof(uint32_t));
21396     // WARNING PTR CHECK
21397     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pStdReferenceFinalLists;
21398     vkStream->putBe64(cgen_var_0);
21399     if (forMarshaling->pStdReferenceFinalLists) {
21400         vkStream->write(
21401             (const StdVideoEncodeH265ReferenceListsInfo*)forMarshaling->pStdReferenceFinalLists,
21402             sizeof(const StdVideoEncodeH265ReferenceListsInfo));
21403     }
21404     vkStream->write(
21405         (const StdVideoEncodeH265SliceSegmentHeader*)forMarshaling->pStdSliceSegmentHeader,
21406         sizeof(const StdVideoEncodeH265SliceSegmentHeader));
21407 }
21408 
unmarshal_VkVideoEncodeH265NaluSliceSegmentInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265NaluSliceSegmentInfoEXT * forUnmarshaling)21409 void unmarshal_VkVideoEncodeH265NaluSliceSegmentInfoEXT(
21410     VulkanStream* vkStream, VkStructureType rootType,
21411     VkVideoEncodeH265NaluSliceSegmentInfoEXT* forUnmarshaling) {
21412     (void)rootType;
21413     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21414     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21415         rootType = forUnmarshaling->sType;
21416     }
21417     size_t pNext_size;
21418     pNext_size = vkStream->getBe32();
21419     forUnmarshaling->pNext = nullptr;
21420     if (pNext_size) {
21421         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21422         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21423         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21424         vkStream->alloc((void**)&forUnmarshaling->pNext,
21425                         goldfish_vk_extension_struct_size_with_stream_features(
21426                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21427         *(VkStructureType*)forUnmarshaling->pNext = extType;
21428         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21429     }
21430     vkStream->read((uint32_t*)&forUnmarshaling->ctbCount, sizeof(uint32_t));
21431     // WARNING PTR CHECK
21432     forUnmarshaling->pStdReferenceFinalLists =
21433         (const StdVideoEncodeH265ReferenceListsInfo*)(uintptr_t)vkStream->getBe64();
21434     if (forUnmarshaling->pStdReferenceFinalLists) {
21435         vkStream->alloc((void**)&forUnmarshaling->pStdReferenceFinalLists,
21436                         sizeof(const StdVideoEncodeH265ReferenceListsInfo));
21437         vkStream->read(
21438             (StdVideoEncodeH265ReferenceListsInfo*)forUnmarshaling->pStdReferenceFinalLists,
21439             sizeof(const StdVideoEncodeH265ReferenceListsInfo));
21440     }
21441     vkStream->alloc((void**)&forUnmarshaling->pStdSliceSegmentHeader,
21442                     sizeof(const StdVideoEncodeH265SliceSegmentHeader));
21443     vkStream->read((StdVideoEncodeH265SliceSegmentHeader*)forUnmarshaling->pStdSliceSegmentHeader,
21444                    sizeof(const StdVideoEncodeH265SliceSegmentHeader));
21445 }
21446 
marshal_VkVideoEncodeH265VclFrameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265VclFrameInfoEXT * forMarshaling)21447 void marshal_VkVideoEncodeH265VclFrameInfoEXT(
21448     VulkanStream* vkStream, VkStructureType rootType,
21449     const VkVideoEncodeH265VclFrameInfoEXT* forMarshaling) {
21450     (void)rootType;
21451     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21452     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21453         rootType = forMarshaling->sType;
21454     }
21455     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21456     // WARNING PTR CHECK
21457     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pStdReferenceFinalLists;
21458     vkStream->putBe64(cgen_var_0);
21459     if (forMarshaling->pStdReferenceFinalLists) {
21460         vkStream->write(
21461             (const StdVideoEncodeH265ReferenceListsInfo*)forMarshaling->pStdReferenceFinalLists,
21462             sizeof(const StdVideoEncodeH265ReferenceListsInfo));
21463     }
21464     vkStream->write((uint32_t*)&forMarshaling->naluSliceSegmentEntryCount, sizeof(uint32_t));
21465     if (forMarshaling) {
21466         for (uint32_t i = 0; i < (uint32_t)forMarshaling->naluSliceSegmentEntryCount; ++i) {
21467             marshal_VkVideoEncodeH265NaluSliceSegmentInfoEXT(
21468                 vkStream, rootType,
21469                 (const VkVideoEncodeH265NaluSliceSegmentInfoEXT*)(forMarshaling
21470                                                                       ->pNaluSliceSegmentEntries +
21471                                                                   i));
21472         }
21473     }
21474     vkStream->write((const StdVideoEncodeH265PictureInfo*)forMarshaling->pStdPictureInfo,
21475                     sizeof(const StdVideoEncodeH265PictureInfo));
21476 }
21477 
unmarshal_VkVideoEncodeH265VclFrameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265VclFrameInfoEXT * forUnmarshaling)21478 void unmarshal_VkVideoEncodeH265VclFrameInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
21479                                                 VkVideoEncodeH265VclFrameInfoEXT* forUnmarshaling) {
21480     (void)rootType;
21481     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21482     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21483         rootType = forUnmarshaling->sType;
21484     }
21485     size_t pNext_size;
21486     pNext_size = vkStream->getBe32();
21487     forUnmarshaling->pNext = nullptr;
21488     if (pNext_size) {
21489         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21490         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21491         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21492         vkStream->alloc((void**)&forUnmarshaling->pNext,
21493                         goldfish_vk_extension_struct_size_with_stream_features(
21494                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21495         *(VkStructureType*)forUnmarshaling->pNext = extType;
21496         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21497     }
21498     // WARNING PTR CHECK
21499     forUnmarshaling->pStdReferenceFinalLists =
21500         (const StdVideoEncodeH265ReferenceListsInfo*)(uintptr_t)vkStream->getBe64();
21501     if (forUnmarshaling->pStdReferenceFinalLists) {
21502         vkStream->alloc((void**)&forUnmarshaling->pStdReferenceFinalLists,
21503                         sizeof(const StdVideoEncodeH265ReferenceListsInfo));
21504         vkStream->read(
21505             (StdVideoEncodeH265ReferenceListsInfo*)forUnmarshaling->pStdReferenceFinalLists,
21506             sizeof(const StdVideoEncodeH265ReferenceListsInfo));
21507     }
21508     vkStream->read((uint32_t*)&forUnmarshaling->naluSliceSegmentEntryCount, sizeof(uint32_t));
21509     vkStream->alloc((void**)&forUnmarshaling->pNaluSliceSegmentEntries,
21510                     forUnmarshaling->naluSliceSegmentEntryCount *
21511                         sizeof(const VkVideoEncodeH265NaluSliceSegmentInfoEXT));
21512     if (forUnmarshaling) {
21513         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->naluSliceSegmentEntryCount; ++i) {
21514             unmarshal_VkVideoEncodeH265NaluSliceSegmentInfoEXT(
21515                 vkStream, rootType,
21516                 (VkVideoEncodeH265NaluSliceSegmentInfoEXT*)(forUnmarshaling
21517                                                                 ->pNaluSliceSegmentEntries +
21518                                                             i));
21519         }
21520     }
21521     vkStream->alloc((void**)&forUnmarshaling->pStdPictureInfo,
21522                     sizeof(const StdVideoEncodeH265PictureInfo));
21523     vkStream->read((StdVideoEncodeH265PictureInfo*)forUnmarshaling->pStdPictureInfo,
21524                    sizeof(const StdVideoEncodeH265PictureInfo));
21525 }
21526 
marshal_VkVideoEncodeH265DpbSlotInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265DpbSlotInfoEXT * forMarshaling)21527 void marshal_VkVideoEncodeH265DpbSlotInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
21528                                              const VkVideoEncodeH265DpbSlotInfoEXT* forMarshaling) {
21529     (void)rootType;
21530     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21531     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21532         rootType = forMarshaling->sType;
21533     }
21534     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21535     vkStream->write((const StdVideoEncodeH265ReferenceInfo*)forMarshaling->pStdReferenceInfo,
21536                     sizeof(const StdVideoEncodeH265ReferenceInfo));
21537 }
21538 
unmarshal_VkVideoEncodeH265DpbSlotInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265DpbSlotInfoEXT * forUnmarshaling)21539 void unmarshal_VkVideoEncodeH265DpbSlotInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
21540                                                VkVideoEncodeH265DpbSlotInfoEXT* forUnmarshaling) {
21541     (void)rootType;
21542     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21543     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21544         rootType = forUnmarshaling->sType;
21545     }
21546     size_t pNext_size;
21547     pNext_size = vkStream->getBe32();
21548     forUnmarshaling->pNext = nullptr;
21549     if (pNext_size) {
21550         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21551         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21552         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21553         vkStream->alloc((void**)&forUnmarshaling->pNext,
21554                         goldfish_vk_extension_struct_size_with_stream_features(
21555                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21556         *(VkStructureType*)forUnmarshaling->pNext = extType;
21557         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21558     }
21559     vkStream->alloc((void**)&forUnmarshaling->pStdReferenceInfo,
21560                     sizeof(const StdVideoEncodeH265ReferenceInfo));
21561     vkStream->read((StdVideoEncodeH265ReferenceInfo*)forUnmarshaling->pStdReferenceInfo,
21562                    sizeof(const StdVideoEncodeH265ReferenceInfo));
21563 }
21564 
marshal_VkVideoEncodeH265ProfileInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265ProfileInfoEXT * forMarshaling)21565 void marshal_VkVideoEncodeH265ProfileInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
21566                                              const VkVideoEncodeH265ProfileInfoEXT* forMarshaling) {
21567     (void)rootType;
21568     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21569     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21570         rootType = forMarshaling->sType;
21571     }
21572     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21573     vkStream->write((StdVideoH265ProfileIdc*)&forMarshaling->stdProfileIdc,
21574                     sizeof(StdVideoH265ProfileIdc));
21575 }
21576 
unmarshal_VkVideoEncodeH265ProfileInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265ProfileInfoEXT * forUnmarshaling)21577 void unmarshal_VkVideoEncodeH265ProfileInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
21578                                                VkVideoEncodeH265ProfileInfoEXT* forUnmarshaling) {
21579     (void)rootType;
21580     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21581     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21582         rootType = forUnmarshaling->sType;
21583     }
21584     size_t pNext_size;
21585     pNext_size = vkStream->getBe32();
21586     forUnmarshaling->pNext = nullptr;
21587     if (pNext_size) {
21588         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21589         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21590         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21591         vkStream->alloc((void**)&forUnmarshaling->pNext,
21592                         goldfish_vk_extension_struct_size_with_stream_features(
21593                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21594         *(VkStructureType*)forUnmarshaling->pNext = extType;
21595         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21596     }
21597     vkStream->read((StdVideoH265ProfileIdc*)&forUnmarshaling->stdProfileIdc,
21598                    sizeof(StdVideoH265ProfileIdc));
21599 }
21600 
marshal_VkVideoEncodeH265RateControlInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265RateControlInfoEXT * forMarshaling)21601 void marshal_VkVideoEncodeH265RateControlInfoEXT(
21602     VulkanStream* vkStream, VkStructureType rootType,
21603     const VkVideoEncodeH265RateControlInfoEXT* forMarshaling) {
21604     (void)rootType;
21605     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21606     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21607         rootType = forMarshaling->sType;
21608     }
21609     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21610     vkStream->write((uint32_t*)&forMarshaling->gopFrameCount, sizeof(uint32_t));
21611     vkStream->write((uint32_t*)&forMarshaling->idrPeriod, sizeof(uint32_t));
21612     vkStream->write((uint32_t*)&forMarshaling->consecutiveBFrameCount, sizeof(uint32_t));
21613     vkStream->write((VkVideoEncodeH265RateControlStructureEXT*)&forMarshaling->rateControlStructure,
21614                     sizeof(VkVideoEncodeH265RateControlStructureEXT));
21615     vkStream->write((uint32_t*)&forMarshaling->subLayerCount, sizeof(uint32_t));
21616 }
21617 
unmarshal_VkVideoEncodeH265RateControlInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265RateControlInfoEXT * forUnmarshaling)21618 void unmarshal_VkVideoEncodeH265RateControlInfoEXT(
21619     VulkanStream* vkStream, VkStructureType rootType,
21620     VkVideoEncodeH265RateControlInfoEXT* forUnmarshaling) {
21621     (void)rootType;
21622     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21623     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21624         rootType = forUnmarshaling->sType;
21625     }
21626     size_t pNext_size;
21627     pNext_size = vkStream->getBe32();
21628     forUnmarshaling->pNext = nullptr;
21629     if (pNext_size) {
21630         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21631         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21632         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21633         vkStream->alloc((void**)&forUnmarshaling->pNext,
21634                         goldfish_vk_extension_struct_size_with_stream_features(
21635                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21636         *(VkStructureType*)forUnmarshaling->pNext = extType;
21637         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21638     }
21639     vkStream->read((uint32_t*)&forUnmarshaling->gopFrameCount, sizeof(uint32_t));
21640     vkStream->read((uint32_t*)&forUnmarshaling->idrPeriod, sizeof(uint32_t));
21641     vkStream->read((uint32_t*)&forUnmarshaling->consecutiveBFrameCount, sizeof(uint32_t));
21642     vkStream->read(
21643         (VkVideoEncodeH265RateControlStructureEXT*)&forUnmarshaling->rateControlStructure,
21644         sizeof(VkVideoEncodeH265RateControlStructureEXT));
21645     vkStream->read((uint32_t*)&forUnmarshaling->subLayerCount, sizeof(uint32_t));
21646 }
21647 
marshal_VkVideoEncodeH265QpEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265QpEXT * forMarshaling)21648 void marshal_VkVideoEncodeH265QpEXT(VulkanStream* vkStream, VkStructureType rootType,
21649                                     const VkVideoEncodeH265QpEXT* forMarshaling) {
21650     (void)rootType;
21651     vkStream->write((int32_t*)&forMarshaling->qpI, sizeof(int32_t));
21652     vkStream->write((int32_t*)&forMarshaling->qpP, sizeof(int32_t));
21653     vkStream->write((int32_t*)&forMarshaling->qpB, sizeof(int32_t));
21654 }
21655 
unmarshal_VkVideoEncodeH265QpEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265QpEXT * forUnmarshaling)21656 void unmarshal_VkVideoEncodeH265QpEXT(VulkanStream* vkStream, VkStructureType rootType,
21657                                       VkVideoEncodeH265QpEXT* forUnmarshaling) {
21658     (void)rootType;
21659     vkStream->read((int32_t*)&forUnmarshaling->qpI, sizeof(int32_t));
21660     vkStream->read((int32_t*)&forUnmarshaling->qpP, sizeof(int32_t));
21661     vkStream->read((int32_t*)&forUnmarshaling->qpB, sizeof(int32_t));
21662 }
21663 
marshal_VkVideoEncodeH265FrameSizeEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265FrameSizeEXT * forMarshaling)21664 void marshal_VkVideoEncodeH265FrameSizeEXT(VulkanStream* vkStream, VkStructureType rootType,
21665                                            const VkVideoEncodeH265FrameSizeEXT* forMarshaling) {
21666     (void)rootType;
21667     vkStream->write((uint32_t*)&forMarshaling->frameISize, sizeof(uint32_t));
21668     vkStream->write((uint32_t*)&forMarshaling->framePSize, sizeof(uint32_t));
21669     vkStream->write((uint32_t*)&forMarshaling->frameBSize, sizeof(uint32_t));
21670 }
21671 
unmarshal_VkVideoEncodeH265FrameSizeEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265FrameSizeEXT * forUnmarshaling)21672 void unmarshal_VkVideoEncodeH265FrameSizeEXT(VulkanStream* vkStream, VkStructureType rootType,
21673                                              VkVideoEncodeH265FrameSizeEXT* forUnmarshaling) {
21674     (void)rootType;
21675     vkStream->read((uint32_t*)&forUnmarshaling->frameISize, sizeof(uint32_t));
21676     vkStream->read((uint32_t*)&forUnmarshaling->framePSize, sizeof(uint32_t));
21677     vkStream->read((uint32_t*)&forUnmarshaling->frameBSize, sizeof(uint32_t));
21678 }
21679 
marshal_VkVideoEncodeH265RateControlLayerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVideoEncodeH265RateControlLayerInfoEXT * forMarshaling)21680 void marshal_VkVideoEncodeH265RateControlLayerInfoEXT(
21681     VulkanStream* vkStream, VkStructureType rootType,
21682     const VkVideoEncodeH265RateControlLayerInfoEXT* forMarshaling) {
21683     (void)rootType;
21684     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21685     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21686         rootType = forMarshaling->sType;
21687     }
21688     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21689     vkStream->write((uint32_t*)&forMarshaling->temporalId, sizeof(uint32_t));
21690     vkStream->write((VkBool32*)&forMarshaling->useInitialRcQp, sizeof(VkBool32));
21691     marshal_VkVideoEncodeH265QpEXT(vkStream, rootType,
21692                                    (VkVideoEncodeH265QpEXT*)(&forMarshaling->initialRcQp));
21693     vkStream->write((VkBool32*)&forMarshaling->useMinQp, sizeof(VkBool32));
21694     marshal_VkVideoEncodeH265QpEXT(vkStream, rootType,
21695                                    (VkVideoEncodeH265QpEXT*)(&forMarshaling->minQp));
21696     vkStream->write((VkBool32*)&forMarshaling->useMaxQp, sizeof(VkBool32));
21697     marshal_VkVideoEncodeH265QpEXT(vkStream, rootType,
21698                                    (VkVideoEncodeH265QpEXT*)(&forMarshaling->maxQp));
21699     vkStream->write((VkBool32*)&forMarshaling->useMaxFrameSize, sizeof(VkBool32));
21700     marshal_VkVideoEncodeH265FrameSizeEXT(
21701         vkStream, rootType, (VkVideoEncodeH265FrameSizeEXT*)(&forMarshaling->maxFrameSize));
21702 }
21703 
unmarshal_VkVideoEncodeH265RateControlLayerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkVideoEncodeH265RateControlLayerInfoEXT * forUnmarshaling)21704 void unmarshal_VkVideoEncodeH265RateControlLayerInfoEXT(
21705     VulkanStream* vkStream, VkStructureType rootType,
21706     VkVideoEncodeH265RateControlLayerInfoEXT* forUnmarshaling) {
21707     (void)rootType;
21708     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21709     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21710         rootType = forUnmarshaling->sType;
21711     }
21712     size_t pNext_size;
21713     pNext_size = vkStream->getBe32();
21714     forUnmarshaling->pNext = nullptr;
21715     if (pNext_size) {
21716         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21717         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21718         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21719         vkStream->alloc((void**)&forUnmarshaling->pNext,
21720                         goldfish_vk_extension_struct_size_with_stream_features(
21721                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21722         *(VkStructureType*)forUnmarshaling->pNext = extType;
21723         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21724     }
21725     vkStream->read((uint32_t*)&forUnmarshaling->temporalId, sizeof(uint32_t));
21726     vkStream->read((VkBool32*)&forUnmarshaling->useInitialRcQp, sizeof(VkBool32));
21727     unmarshal_VkVideoEncodeH265QpEXT(vkStream, rootType,
21728                                      (VkVideoEncodeH265QpEXT*)(&forUnmarshaling->initialRcQp));
21729     vkStream->read((VkBool32*)&forUnmarshaling->useMinQp, sizeof(VkBool32));
21730     unmarshal_VkVideoEncodeH265QpEXT(vkStream, rootType,
21731                                      (VkVideoEncodeH265QpEXT*)(&forUnmarshaling->minQp));
21732     vkStream->read((VkBool32*)&forUnmarshaling->useMaxQp, sizeof(VkBool32));
21733     unmarshal_VkVideoEncodeH265QpEXT(vkStream, rootType,
21734                                      (VkVideoEncodeH265QpEXT*)(&forUnmarshaling->maxQp));
21735     vkStream->read((VkBool32*)&forUnmarshaling->useMaxFrameSize, sizeof(VkBool32));
21736     unmarshal_VkVideoEncodeH265FrameSizeEXT(
21737         vkStream, rootType, (VkVideoEncodeH265FrameSizeEXT*)(&forUnmarshaling->maxFrameSize));
21738 }
21739 
21740 #endif
21741 #ifdef VK_AMD_texture_gather_bias_lod
marshal_VkTextureLODGatherFormatPropertiesAMD(VulkanStream * vkStream,VkStructureType rootType,const VkTextureLODGatherFormatPropertiesAMD * forMarshaling)21742 void marshal_VkTextureLODGatherFormatPropertiesAMD(
21743     VulkanStream* vkStream, VkStructureType rootType,
21744     const VkTextureLODGatherFormatPropertiesAMD* forMarshaling) {
21745     (void)rootType;
21746     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21747     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21748         rootType = forMarshaling->sType;
21749     }
21750     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21751     vkStream->write((VkBool32*)&forMarshaling->supportsTextureGatherLODBiasAMD, sizeof(VkBool32));
21752 }
21753 
unmarshal_VkTextureLODGatherFormatPropertiesAMD(VulkanStream * vkStream,VkStructureType rootType,VkTextureLODGatherFormatPropertiesAMD * forUnmarshaling)21754 void unmarshal_VkTextureLODGatherFormatPropertiesAMD(
21755     VulkanStream* vkStream, VkStructureType rootType,
21756     VkTextureLODGatherFormatPropertiesAMD* forUnmarshaling) {
21757     (void)rootType;
21758     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21759     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21760         rootType = forUnmarshaling->sType;
21761     }
21762     size_t pNext_size;
21763     pNext_size = vkStream->getBe32();
21764     forUnmarshaling->pNext = nullptr;
21765     if (pNext_size) {
21766         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21767         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21768         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21769         vkStream->alloc((void**)&forUnmarshaling->pNext,
21770                         goldfish_vk_extension_struct_size_with_stream_features(
21771                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21772         *(VkStructureType*)forUnmarshaling->pNext = extType;
21773         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21774     }
21775     vkStream->read((VkBool32*)&forUnmarshaling->supportsTextureGatherLODBiasAMD, sizeof(VkBool32));
21776 }
21777 
21778 #endif
21779 #ifdef VK_AMD_shader_info
marshal_VkShaderResourceUsageAMD(VulkanStream * vkStream,VkStructureType rootType,const VkShaderResourceUsageAMD * forMarshaling)21780 void marshal_VkShaderResourceUsageAMD(VulkanStream* vkStream, VkStructureType rootType,
21781                                       const VkShaderResourceUsageAMD* forMarshaling) {
21782     (void)rootType;
21783     vkStream->write((uint32_t*)&forMarshaling->numUsedVgprs, sizeof(uint32_t));
21784     vkStream->write((uint32_t*)&forMarshaling->numUsedSgprs, sizeof(uint32_t));
21785     vkStream->write((uint32_t*)&forMarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
21786     uint64_t cgen_var_0 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
21787     vkStream->putBe64(cgen_var_0);
21788     uint64_t cgen_var_1 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
21789     vkStream->putBe64(cgen_var_1);
21790 }
21791 
unmarshal_VkShaderResourceUsageAMD(VulkanStream * vkStream,VkStructureType rootType,VkShaderResourceUsageAMD * forUnmarshaling)21792 void unmarshal_VkShaderResourceUsageAMD(VulkanStream* vkStream, VkStructureType rootType,
21793                                         VkShaderResourceUsageAMD* forUnmarshaling) {
21794     (void)rootType;
21795     vkStream->read((uint32_t*)&forUnmarshaling->numUsedVgprs, sizeof(uint32_t));
21796     vkStream->read((uint32_t*)&forUnmarshaling->numUsedSgprs, sizeof(uint32_t));
21797     vkStream->read((uint32_t*)&forUnmarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
21798     forUnmarshaling->ldsUsageSizeInBytes = (size_t)vkStream->getBe64();
21799     forUnmarshaling->scratchMemUsageInBytes = (size_t)vkStream->getBe64();
21800 }
21801 
marshal_VkShaderStatisticsInfoAMD(VulkanStream * vkStream,VkStructureType rootType,const VkShaderStatisticsInfoAMD * forMarshaling)21802 void marshal_VkShaderStatisticsInfoAMD(VulkanStream* vkStream, VkStructureType rootType,
21803                                        const VkShaderStatisticsInfoAMD* forMarshaling) {
21804     (void)rootType;
21805     vkStream->write((VkShaderStageFlags*)&forMarshaling->shaderStageMask,
21806                     sizeof(VkShaderStageFlags));
21807     marshal_VkShaderResourceUsageAMD(vkStream, rootType,
21808                                      (VkShaderResourceUsageAMD*)(&forMarshaling->resourceUsage));
21809     vkStream->write((uint32_t*)&forMarshaling->numPhysicalVgprs, sizeof(uint32_t));
21810     vkStream->write((uint32_t*)&forMarshaling->numPhysicalSgprs, sizeof(uint32_t));
21811     vkStream->write((uint32_t*)&forMarshaling->numAvailableVgprs, sizeof(uint32_t));
21812     vkStream->write((uint32_t*)&forMarshaling->numAvailableSgprs, sizeof(uint32_t));
21813     vkStream->write((uint32_t*)forMarshaling->computeWorkGroupSize, 3 * sizeof(uint32_t));
21814 }
21815 
unmarshal_VkShaderStatisticsInfoAMD(VulkanStream * vkStream,VkStructureType rootType,VkShaderStatisticsInfoAMD * forUnmarshaling)21816 void unmarshal_VkShaderStatisticsInfoAMD(VulkanStream* vkStream, VkStructureType rootType,
21817                                          VkShaderStatisticsInfoAMD* forUnmarshaling) {
21818     (void)rootType;
21819     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->shaderStageMask,
21820                    sizeof(VkShaderStageFlags));
21821     unmarshal_VkShaderResourceUsageAMD(
21822         vkStream, rootType, (VkShaderResourceUsageAMD*)(&forUnmarshaling->resourceUsage));
21823     vkStream->read((uint32_t*)&forUnmarshaling->numPhysicalVgprs, sizeof(uint32_t));
21824     vkStream->read((uint32_t*)&forUnmarshaling->numPhysicalSgprs, sizeof(uint32_t));
21825     vkStream->read((uint32_t*)&forUnmarshaling->numAvailableVgprs, sizeof(uint32_t));
21826     vkStream->read((uint32_t*)&forUnmarshaling->numAvailableSgprs, sizeof(uint32_t));
21827     vkStream->read((uint32_t*)forUnmarshaling->computeWorkGroupSize, 3 * sizeof(uint32_t));
21828 }
21829 
21830 #endif
21831 #ifdef VK_AMD_shader_image_load_store_lod
21832 #endif
21833 #ifdef VK_GGP_stream_descriptor_surface
marshal_VkStreamDescriptorSurfaceCreateInfoGGP(VulkanStream * vkStream,VkStructureType rootType,const VkStreamDescriptorSurfaceCreateInfoGGP * forMarshaling)21834 void marshal_VkStreamDescriptorSurfaceCreateInfoGGP(
21835     VulkanStream* vkStream, VkStructureType rootType,
21836     const VkStreamDescriptorSurfaceCreateInfoGGP* forMarshaling) {
21837     (void)rootType;
21838     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21839     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21840         rootType = forMarshaling->sType;
21841     }
21842     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21843     vkStream->write((VkStreamDescriptorSurfaceCreateFlagsGGP*)&forMarshaling->flags,
21844                     sizeof(VkStreamDescriptorSurfaceCreateFlagsGGP));
21845     vkStream->write((GgpStreamDescriptor*)&forMarshaling->streamDescriptor,
21846                     sizeof(GgpStreamDescriptor));
21847 }
21848 
unmarshal_VkStreamDescriptorSurfaceCreateInfoGGP(VulkanStream * vkStream,VkStructureType rootType,VkStreamDescriptorSurfaceCreateInfoGGP * forUnmarshaling)21849 void unmarshal_VkStreamDescriptorSurfaceCreateInfoGGP(
21850     VulkanStream* vkStream, VkStructureType rootType,
21851     VkStreamDescriptorSurfaceCreateInfoGGP* forUnmarshaling) {
21852     (void)rootType;
21853     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21854     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21855         rootType = forUnmarshaling->sType;
21856     }
21857     size_t pNext_size;
21858     pNext_size = vkStream->getBe32();
21859     forUnmarshaling->pNext = nullptr;
21860     if (pNext_size) {
21861         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21862         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21863         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21864         vkStream->alloc((void**)&forUnmarshaling->pNext,
21865                         goldfish_vk_extension_struct_size_with_stream_features(
21866                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21867         *(VkStructureType*)forUnmarshaling->pNext = extType;
21868         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21869     }
21870     vkStream->read((VkStreamDescriptorSurfaceCreateFlagsGGP*)&forUnmarshaling->flags,
21871                    sizeof(VkStreamDescriptorSurfaceCreateFlagsGGP));
21872     vkStream->read((GgpStreamDescriptor*)&forUnmarshaling->streamDescriptor,
21873                    sizeof(GgpStreamDescriptor));
21874 }
21875 
21876 #endif
21877 #ifdef VK_NV_corner_sampled_image
marshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCornerSampledImageFeaturesNV * forMarshaling)21878 void marshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
21879     VulkanStream* vkStream, VkStructureType rootType,
21880     const VkPhysicalDeviceCornerSampledImageFeaturesNV* forMarshaling) {
21881     (void)rootType;
21882     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21883     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21884         rootType = forMarshaling->sType;
21885     }
21886     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21887     vkStream->write((VkBool32*)&forMarshaling->cornerSampledImage, sizeof(VkBool32));
21888 }
21889 
unmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCornerSampledImageFeaturesNV * forUnmarshaling)21890 void unmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
21891     VulkanStream* vkStream, VkStructureType rootType,
21892     VkPhysicalDeviceCornerSampledImageFeaturesNV* forUnmarshaling) {
21893     (void)rootType;
21894     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21895     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21896         rootType = forUnmarshaling->sType;
21897     }
21898     size_t pNext_size;
21899     pNext_size = vkStream->getBe32();
21900     forUnmarshaling->pNext = nullptr;
21901     if (pNext_size) {
21902         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21903         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21904         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21905         vkStream->alloc((void**)&forUnmarshaling->pNext,
21906                         goldfish_vk_extension_struct_size_with_stream_features(
21907                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21908         *(VkStructureType*)forUnmarshaling->pNext = extType;
21909         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21910     }
21911     vkStream->read((VkBool32*)&forUnmarshaling->cornerSampledImage, sizeof(VkBool32));
21912 }
21913 
21914 #endif
21915 #ifdef VK_IMG_format_pvrtc
21916 #endif
21917 #ifdef VK_NV_external_memory_capabilities
marshal_VkExternalImageFormatPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkExternalImageFormatPropertiesNV * forMarshaling)21918 void marshal_VkExternalImageFormatPropertiesNV(
21919     VulkanStream* vkStream, VkStructureType rootType,
21920     const VkExternalImageFormatPropertiesNV* forMarshaling) {
21921     (void)rootType;
21922     marshal_VkImageFormatProperties(
21923         vkStream, rootType, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
21924     vkStream->write((VkExternalMemoryFeatureFlagsNV*)&forMarshaling->externalMemoryFeatures,
21925                     sizeof(VkExternalMemoryFeatureFlagsNV));
21926     vkStream->write(
21927         (VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->exportFromImportedHandleTypes,
21928         sizeof(VkExternalMemoryHandleTypeFlagsNV));
21929     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->compatibleHandleTypes,
21930                     sizeof(VkExternalMemoryHandleTypeFlagsNV));
21931 }
21932 
unmarshal_VkExternalImageFormatPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkExternalImageFormatPropertiesNV * forUnmarshaling)21933 void unmarshal_VkExternalImageFormatPropertiesNV(
21934     VulkanStream* vkStream, VkStructureType rootType,
21935     VkExternalImageFormatPropertiesNV* forUnmarshaling) {
21936     (void)rootType;
21937     unmarshal_VkImageFormatProperties(
21938         vkStream, rootType, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
21939     vkStream->read((VkExternalMemoryFeatureFlagsNV*)&forUnmarshaling->externalMemoryFeatures,
21940                    sizeof(VkExternalMemoryFeatureFlagsNV));
21941     vkStream->read(
21942         (VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->exportFromImportedHandleTypes,
21943         sizeof(VkExternalMemoryHandleTypeFlagsNV));
21944     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->compatibleHandleTypes,
21945                    sizeof(VkExternalMemoryHandleTypeFlagsNV));
21946 }
21947 
21948 #endif
21949 #ifdef VK_NV_external_memory
marshal_VkExternalMemoryImageCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkExternalMemoryImageCreateInfoNV * forMarshaling)21950 void marshal_VkExternalMemoryImageCreateInfoNV(
21951     VulkanStream* vkStream, VkStructureType rootType,
21952     const VkExternalMemoryImageCreateInfoNV* forMarshaling) {
21953     (void)rootType;
21954     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21955     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21956         rootType = forMarshaling->sType;
21957     }
21958     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21959     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleTypes,
21960                     sizeof(VkExternalMemoryHandleTypeFlagsNV));
21961 }
21962 
unmarshal_VkExternalMemoryImageCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkExternalMemoryImageCreateInfoNV * forUnmarshaling)21963 void unmarshal_VkExternalMemoryImageCreateInfoNV(
21964     VulkanStream* vkStream, VkStructureType rootType,
21965     VkExternalMemoryImageCreateInfoNV* forUnmarshaling) {
21966     (void)rootType;
21967     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
21968     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21969         rootType = forUnmarshaling->sType;
21970     }
21971     size_t pNext_size;
21972     pNext_size = vkStream->getBe32();
21973     forUnmarshaling->pNext = nullptr;
21974     if (pNext_size) {
21975         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
21976         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
21977         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
21978         vkStream->alloc((void**)&forUnmarshaling->pNext,
21979                         goldfish_vk_extension_struct_size_with_stream_features(
21980                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
21981         *(VkStructureType*)forUnmarshaling->pNext = extType;
21982         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
21983     }
21984     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleTypes,
21985                    sizeof(VkExternalMemoryHandleTypeFlagsNV));
21986 }
21987 
marshal_VkExportMemoryAllocateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkExportMemoryAllocateInfoNV * forMarshaling)21988 void marshal_VkExportMemoryAllocateInfoNV(VulkanStream* vkStream, VkStructureType rootType,
21989                                           const VkExportMemoryAllocateInfoNV* forMarshaling) {
21990     (void)rootType;
21991     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
21992     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
21993         rootType = forMarshaling->sType;
21994     }
21995     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
21996     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleTypes,
21997                     sizeof(VkExternalMemoryHandleTypeFlagsNV));
21998 }
21999 
unmarshal_VkExportMemoryAllocateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkExportMemoryAllocateInfoNV * forUnmarshaling)22000 void unmarshal_VkExportMemoryAllocateInfoNV(VulkanStream* vkStream, VkStructureType rootType,
22001                                             VkExportMemoryAllocateInfoNV* forUnmarshaling) {
22002     (void)rootType;
22003     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22004     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22005         rootType = forUnmarshaling->sType;
22006     }
22007     size_t pNext_size;
22008     pNext_size = vkStream->getBe32();
22009     forUnmarshaling->pNext = nullptr;
22010     if (pNext_size) {
22011         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22012         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22013         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22014         vkStream->alloc((void**)&forUnmarshaling->pNext,
22015                         goldfish_vk_extension_struct_size_with_stream_features(
22016                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22017         *(VkStructureType*)forUnmarshaling->pNext = extType;
22018         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22019     }
22020     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleTypes,
22021                    sizeof(VkExternalMemoryHandleTypeFlagsNV));
22022 }
22023 
22024 #endif
22025 #ifdef VK_NV_external_memory_win32
marshal_VkImportMemoryWin32HandleInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkImportMemoryWin32HandleInfoNV * forMarshaling)22026 void marshal_VkImportMemoryWin32HandleInfoNV(VulkanStream* vkStream, VkStructureType rootType,
22027                                              const VkImportMemoryWin32HandleInfoNV* forMarshaling) {
22028     (void)rootType;
22029     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22030     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22031         rootType = forMarshaling->sType;
22032     }
22033     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22034     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleType,
22035                     sizeof(VkExternalMemoryHandleTypeFlagsNV));
22036     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
22037 }
22038 
unmarshal_VkImportMemoryWin32HandleInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkImportMemoryWin32HandleInfoNV * forUnmarshaling)22039 void unmarshal_VkImportMemoryWin32HandleInfoNV(VulkanStream* vkStream, VkStructureType rootType,
22040                                                VkImportMemoryWin32HandleInfoNV* forUnmarshaling) {
22041     (void)rootType;
22042     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22043     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22044         rootType = forUnmarshaling->sType;
22045     }
22046     size_t pNext_size;
22047     pNext_size = vkStream->getBe32();
22048     forUnmarshaling->pNext = nullptr;
22049     if (pNext_size) {
22050         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22051         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22052         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22053         vkStream->alloc((void**)&forUnmarshaling->pNext,
22054                         goldfish_vk_extension_struct_size_with_stream_features(
22055                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22056         *(VkStructureType*)forUnmarshaling->pNext = extType;
22057         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22058     }
22059     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleType,
22060                    sizeof(VkExternalMemoryHandleTypeFlagsNV));
22061     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
22062 }
22063 
marshal_VkExportMemoryWin32HandleInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkExportMemoryWin32HandleInfoNV * forMarshaling)22064 void marshal_VkExportMemoryWin32HandleInfoNV(VulkanStream* vkStream, VkStructureType rootType,
22065                                              const VkExportMemoryWin32HandleInfoNV* forMarshaling) {
22066     (void)rootType;
22067     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22068     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22069         rootType = forMarshaling->sType;
22070     }
22071     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22072     // WARNING PTR CHECK
22073     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
22074     vkStream->putBe64(cgen_var_0);
22075     if (forMarshaling->pAttributes) {
22076         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes,
22077                         sizeof(const SECURITY_ATTRIBUTES));
22078     }
22079     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
22080 }
22081 
unmarshal_VkExportMemoryWin32HandleInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkExportMemoryWin32HandleInfoNV * forUnmarshaling)22082 void unmarshal_VkExportMemoryWin32HandleInfoNV(VulkanStream* vkStream, VkStructureType rootType,
22083                                                VkExportMemoryWin32HandleInfoNV* forUnmarshaling) {
22084     (void)rootType;
22085     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22086     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22087         rootType = forUnmarshaling->sType;
22088     }
22089     size_t pNext_size;
22090     pNext_size = vkStream->getBe32();
22091     forUnmarshaling->pNext = nullptr;
22092     if (pNext_size) {
22093         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22094         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22095         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22096         vkStream->alloc((void**)&forUnmarshaling->pNext,
22097                         goldfish_vk_extension_struct_size_with_stream_features(
22098                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22099         *(VkStructureType*)forUnmarshaling->pNext = extType;
22100         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22101     }
22102     // WARNING PTR CHECK
22103     forUnmarshaling->pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
22104     if (forUnmarshaling->pAttributes) {
22105         vkStream->alloc((void**)&forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
22106         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes,
22107                        sizeof(const SECURITY_ATTRIBUTES));
22108     }
22109     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
22110 }
22111 
22112 #endif
22113 #ifdef VK_NV_win32_keyed_mutex
marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkWin32KeyedMutexAcquireReleaseInfoNV * forMarshaling)22114 void marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
22115     VulkanStream* vkStream, VkStructureType rootType,
22116     const VkWin32KeyedMutexAcquireReleaseInfoNV* forMarshaling) {
22117     (void)rootType;
22118     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22119     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22120         rootType = forMarshaling->sType;
22121     }
22122     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22123     vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
22124     if (forMarshaling->acquireCount) {
22125         uint64_t* cgen_var_0;
22126         vkStream->alloc((void**)&cgen_var_0, forMarshaling->acquireCount * 8);
22127         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(
22128             forMarshaling->pAcquireSyncs, cgen_var_0, forMarshaling->acquireCount);
22129         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->acquireCount * 8);
22130     }
22131     vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys,
22132                     forMarshaling->acquireCount * sizeof(const uint64_t));
22133     vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeoutMilliseconds,
22134                     forMarshaling->acquireCount * sizeof(const uint32_t));
22135     vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
22136     if (forMarshaling->releaseCount) {
22137         uint64_t* cgen_var_1;
22138         vkStream->alloc((void**)&cgen_var_1, forMarshaling->releaseCount * 8);
22139         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(
22140             forMarshaling->pReleaseSyncs, cgen_var_1, forMarshaling->releaseCount);
22141         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->releaseCount * 8);
22142     }
22143     vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys,
22144                     forMarshaling->releaseCount * sizeof(const uint64_t));
22145 }
22146 
unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkWin32KeyedMutexAcquireReleaseInfoNV * forUnmarshaling)22147 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
22148     VulkanStream* vkStream, VkStructureType rootType,
22149     VkWin32KeyedMutexAcquireReleaseInfoNV* forUnmarshaling) {
22150     (void)rootType;
22151     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22152     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22153         rootType = forUnmarshaling->sType;
22154     }
22155     size_t pNext_size;
22156     pNext_size = vkStream->getBe32();
22157     forUnmarshaling->pNext = nullptr;
22158     if (pNext_size) {
22159         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22160         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22161         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22162         vkStream->alloc((void**)&forUnmarshaling->pNext,
22163                         goldfish_vk_extension_struct_size_with_stream_features(
22164                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22165         *(VkStructureType*)forUnmarshaling->pNext = extType;
22166         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22167     }
22168     vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
22169     vkStream->alloc((void**)&forUnmarshaling->pAcquireSyncs,
22170                     forUnmarshaling->acquireCount * sizeof(const VkDeviceMemory));
22171     if (forUnmarshaling->acquireCount) {
22172         uint64_t* cgen_var_0;
22173         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->acquireCount * 8);
22174         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->acquireCount * 8);
22175         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
22176             cgen_var_0, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs,
22177             forUnmarshaling->acquireCount);
22178     }
22179     vkStream->alloc((void**)&forUnmarshaling->pAcquireKeys,
22180                     forUnmarshaling->acquireCount * sizeof(const uint64_t));
22181     vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys,
22182                    forUnmarshaling->acquireCount * sizeof(const uint64_t));
22183     vkStream->alloc((void**)&forUnmarshaling->pAcquireTimeoutMilliseconds,
22184                     forUnmarshaling->acquireCount * sizeof(const uint32_t));
22185     vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeoutMilliseconds,
22186                    forUnmarshaling->acquireCount * sizeof(const uint32_t));
22187     vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
22188     vkStream->alloc((void**)&forUnmarshaling->pReleaseSyncs,
22189                     forUnmarshaling->releaseCount * sizeof(const VkDeviceMemory));
22190     if (forUnmarshaling->releaseCount) {
22191         uint64_t* cgen_var_1;
22192         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->releaseCount * 8);
22193         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->releaseCount * 8);
22194         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
22195             cgen_var_1, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs,
22196             forUnmarshaling->releaseCount);
22197     }
22198     vkStream->alloc((void**)&forUnmarshaling->pReleaseKeys,
22199                     forUnmarshaling->releaseCount * sizeof(const uint64_t));
22200     vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys,
22201                    forUnmarshaling->releaseCount * sizeof(const uint64_t));
22202 }
22203 
22204 #endif
22205 #ifdef VK_EXT_validation_flags
marshal_VkValidationFlagsEXT(VulkanStream * vkStream,VkStructureType rootType,const VkValidationFlagsEXT * forMarshaling)22206 void marshal_VkValidationFlagsEXT(VulkanStream* vkStream, VkStructureType rootType,
22207                                   const VkValidationFlagsEXT* forMarshaling) {
22208     (void)rootType;
22209     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22210     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22211         rootType = forMarshaling->sType;
22212     }
22213     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22214     vkStream->write((uint32_t*)&forMarshaling->disabledValidationCheckCount, sizeof(uint32_t));
22215     vkStream->write(
22216         (const VkValidationCheckEXT*)forMarshaling->pDisabledValidationChecks,
22217         forMarshaling->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
22218 }
22219 
unmarshal_VkValidationFlagsEXT(VulkanStream * vkStream,VkStructureType rootType,VkValidationFlagsEXT * forUnmarshaling)22220 void unmarshal_VkValidationFlagsEXT(VulkanStream* vkStream, VkStructureType rootType,
22221                                     VkValidationFlagsEXT* forUnmarshaling) {
22222     (void)rootType;
22223     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22224     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22225         rootType = forUnmarshaling->sType;
22226     }
22227     size_t pNext_size;
22228     pNext_size = vkStream->getBe32();
22229     forUnmarshaling->pNext = nullptr;
22230     if (pNext_size) {
22231         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22232         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22233         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22234         vkStream->alloc((void**)&forUnmarshaling->pNext,
22235                         goldfish_vk_extension_struct_size_with_stream_features(
22236                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22237         *(VkStructureType*)forUnmarshaling->pNext = extType;
22238         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22239     }
22240     vkStream->read((uint32_t*)&forUnmarshaling->disabledValidationCheckCount, sizeof(uint32_t));
22241     vkStream->alloc(
22242         (void**)&forUnmarshaling->pDisabledValidationChecks,
22243         forUnmarshaling->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
22244     vkStream->read(
22245         (VkValidationCheckEXT*)forUnmarshaling->pDisabledValidationChecks,
22246         forUnmarshaling->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
22247 }
22248 
22249 #endif
22250 #ifdef VK_NN_vi_surface
marshal_VkViSurfaceCreateInfoNN(VulkanStream * vkStream,VkStructureType rootType,const VkViSurfaceCreateInfoNN * forMarshaling)22251 void marshal_VkViSurfaceCreateInfoNN(VulkanStream* vkStream, VkStructureType rootType,
22252                                      const VkViSurfaceCreateInfoNN* forMarshaling) {
22253     (void)rootType;
22254     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22256         rootType = forMarshaling->sType;
22257     }
22258     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22259     vkStream->write((VkViSurfaceCreateFlagsNN*)&forMarshaling->flags,
22260                     sizeof(VkViSurfaceCreateFlagsNN));
22261     // WARNING PTR CHECK
22262     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->window;
22263     vkStream->putBe64(cgen_var_0);
22264     if (forMarshaling->window) {
22265         vkStream->write((void*)forMarshaling->window, sizeof(uint8_t));
22266     }
22267 }
22268 
unmarshal_VkViSurfaceCreateInfoNN(VulkanStream * vkStream,VkStructureType rootType,VkViSurfaceCreateInfoNN * forUnmarshaling)22269 void unmarshal_VkViSurfaceCreateInfoNN(VulkanStream* vkStream, VkStructureType rootType,
22270                                        VkViSurfaceCreateInfoNN* forUnmarshaling) {
22271     (void)rootType;
22272     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22273     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22274         rootType = forUnmarshaling->sType;
22275     }
22276     size_t pNext_size;
22277     pNext_size = vkStream->getBe32();
22278     forUnmarshaling->pNext = nullptr;
22279     if (pNext_size) {
22280         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22281         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22282         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22283         vkStream->alloc((void**)&forUnmarshaling->pNext,
22284                         goldfish_vk_extension_struct_size_with_stream_features(
22285                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22286         *(VkStructureType*)forUnmarshaling->pNext = extType;
22287         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22288     }
22289     vkStream->read((VkViSurfaceCreateFlagsNN*)&forUnmarshaling->flags,
22290                    sizeof(VkViSurfaceCreateFlagsNN));
22291     // WARNING PTR CHECK
22292     forUnmarshaling->window = (void*)(uintptr_t)vkStream->getBe64();
22293     if (forUnmarshaling->window) {
22294         vkStream->alloc((void**)&forUnmarshaling->window, sizeof(uint8_t));
22295         vkStream->read((void*)forUnmarshaling->window, sizeof(uint8_t));
22296     }
22297 }
22298 
22299 #endif
22300 #ifdef VK_EXT_shader_subgroup_ballot
22301 #endif
22302 #ifdef VK_EXT_shader_subgroup_vote
22303 #endif
22304 #ifdef VK_EXT_texture_compression_astc_hdr
22305 #endif
22306 #ifdef VK_EXT_astc_decode_mode
marshal_VkImageViewASTCDecodeModeEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewASTCDecodeModeEXT * forMarshaling)22307 void marshal_VkImageViewASTCDecodeModeEXT(VulkanStream* vkStream, VkStructureType rootType,
22308                                           const VkImageViewASTCDecodeModeEXT* forMarshaling) {
22309     (void)rootType;
22310     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22311     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22312         rootType = forMarshaling->sType;
22313     }
22314     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22315     vkStream->write((VkFormat*)&forMarshaling->decodeMode, sizeof(VkFormat));
22316 }
22317 
unmarshal_VkImageViewASTCDecodeModeEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageViewASTCDecodeModeEXT * forUnmarshaling)22318 void unmarshal_VkImageViewASTCDecodeModeEXT(VulkanStream* vkStream, VkStructureType rootType,
22319                                             VkImageViewASTCDecodeModeEXT* forUnmarshaling) {
22320     (void)rootType;
22321     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22322     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22323         rootType = forUnmarshaling->sType;
22324     }
22325     size_t pNext_size;
22326     pNext_size = vkStream->getBe32();
22327     forUnmarshaling->pNext = nullptr;
22328     if (pNext_size) {
22329         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22330         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22331         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22332         vkStream->alloc((void**)&forUnmarshaling->pNext,
22333                         goldfish_vk_extension_struct_size_with_stream_features(
22334                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22335         *(VkStructureType*)forUnmarshaling->pNext = extType;
22336         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22337     }
22338     vkStream->read((VkFormat*)&forUnmarshaling->decodeMode, sizeof(VkFormat));
22339 }
22340 
marshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceASTCDecodeFeaturesEXT * forMarshaling)22341 void marshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
22342     VulkanStream* vkStream, VkStructureType rootType,
22343     const VkPhysicalDeviceASTCDecodeFeaturesEXT* forMarshaling) {
22344     (void)rootType;
22345     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22346     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22347         rootType = forMarshaling->sType;
22348     }
22349     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22350     vkStream->write((VkBool32*)&forMarshaling->decodeModeSharedExponent, sizeof(VkBool32));
22351 }
22352 
unmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceASTCDecodeFeaturesEXT * forUnmarshaling)22353 void unmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
22354     VulkanStream* vkStream, VkStructureType rootType,
22355     VkPhysicalDeviceASTCDecodeFeaturesEXT* forUnmarshaling) {
22356     (void)rootType;
22357     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22358     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22359         rootType = forUnmarshaling->sType;
22360     }
22361     size_t pNext_size;
22362     pNext_size = vkStream->getBe32();
22363     forUnmarshaling->pNext = nullptr;
22364     if (pNext_size) {
22365         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22366         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22367         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22368         vkStream->alloc((void**)&forUnmarshaling->pNext,
22369                         goldfish_vk_extension_struct_size_with_stream_features(
22370                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22371         *(VkStructureType*)forUnmarshaling->pNext = extType;
22372         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22373     }
22374     vkStream->read((VkBool32*)&forUnmarshaling->decodeModeSharedExponent, sizeof(VkBool32));
22375 }
22376 
22377 #endif
22378 #ifdef VK_EXT_pipeline_robustness
marshal_VkPhysicalDevicePipelineRobustnessFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineRobustnessFeaturesEXT * forMarshaling)22379 void marshal_VkPhysicalDevicePipelineRobustnessFeaturesEXT(
22380     VulkanStream* vkStream, VkStructureType rootType,
22381     const VkPhysicalDevicePipelineRobustnessFeaturesEXT* forMarshaling) {
22382     (void)rootType;
22383     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22384     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22385         rootType = forMarshaling->sType;
22386     }
22387     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22388     vkStream->write((VkBool32*)&forMarshaling->pipelineRobustness, sizeof(VkBool32));
22389 }
22390 
unmarshal_VkPhysicalDevicePipelineRobustnessFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineRobustnessFeaturesEXT * forUnmarshaling)22391 void unmarshal_VkPhysicalDevicePipelineRobustnessFeaturesEXT(
22392     VulkanStream* vkStream, VkStructureType rootType,
22393     VkPhysicalDevicePipelineRobustnessFeaturesEXT* forUnmarshaling) {
22394     (void)rootType;
22395     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22396     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22397         rootType = forUnmarshaling->sType;
22398     }
22399     size_t pNext_size;
22400     pNext_size = vkStream->getBe32();
22401     forUnmarshaling->pNext = nullptr;
22402     if (pNext_size) {
22403         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22404         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22405         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22406         vkStream->alloc((void**)&forUnmarshaling->pNext,
22407                         goldfish_vk_extension_struct_size_with_stream_features(
22408                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22409         *(VkStructureType*)forUnmarshaling->pNext = extType;
22410         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22411     }
22412     vkStream->read((VkBool32*)&forUnmarshaling->pipelineRobustness, sizeof(VkBool32));
22413 }
22414 
marshal_VkPhysicalDevicePipelineRobustnessPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineRobustnessPropertiesEXT * forMarshaling)22415 void marshal_VkPhysicalDevicePipelineRobustnessPropertiesEXT(
22416     VulkanStream* vkStream, VkStructureType rootType,
22417     const VkPhysicalDevicePipelineRobustnessPropertiesEXT* forMarshaling) {
22418     (void)rootType;
22419     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22420     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22421         rootType = forMarshaling->sType;
22422     }
22423     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22424     vkStream->write(
22425         (VkPipelineRobustnessBufferBehaviorEXT*)&forMarshaling->defaultRobustnessStorageBuffers,
22426         sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22427     vkStream->write(
22428         (VkPipelineRobustnessBufferBehaviorEXT*)&forMarshaling->defaultRobustnessUniformBuffers,
22429         sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22430     vkStream->write(
22431         (VkPipelineRobustnessBufferBehaviorEXT*)&forMarshaling->defaultRobustnessVertexInputs,
22432         sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22433     vkStream->write((VkPipelineRobustnessImageBehaviorEXT*)&forMarshaling->defaultRobustnessImages,
22434                     sizeof(VkPipelineRobustnessImageBehaviorEXT));
22435 }
22436 
unmarshal_VkPhysicalDevicePipelineRobustnessPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineRobustnessPropertiesEXT * forUnmarshaling)22437 void unmarshal_VkPhysicalDevicePipelineRobustnessPropertiesEXT(
22438     VulkanStream* vkStream, VkStructureType rootType,
22439     VkPhysicalDevicePipelineRobustnessPropertiesEXT* forUnmarshaling) {
22440     (void)rootType;
22441     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22442     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22443         rootType = forUnmarshaling->sType;
22444     }
22445     size_t pNext_size;
22446     pNext_size = vkStream->getBe32();
22447     forUnmarshaling->pNext = nullptr;
22448     if (pNext_size) {
22449         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22450         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22451         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22452         vkStream->alloc((void**)&forUnmarshaling->pNext,
22453                         goldfish_vk_extension_struct_size_with_stream_features(
22454                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22455         *(VkStructureType*)forUnmarshaling->pNext = extType;
22456         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22457     }
22458     vkStream->read(
22459         (VkPipelineRobustnessBufferBehaviorEXT*)&forUnmarshaling->defaultRobustnessStorageBuffers,
22460         sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22461     vkStream->read(
22462         (VkPipelineRobustnessBufferBehaviorEXT*)&forUnmarshaling->defaultRobustnessUniformBuffers,
22463         sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22464     vkStream->read(
22465         (VkPipelineRobustnessBufferBehaviorEXT*)&forUnmarshaling->defaultRobustnessVertexInputs,
22466         sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22467     vkStream->read((VkPipelineRobustnessImageBehaviorEXT*)&forUnmarshaling->defaultRobustnessImages,
22468                    sizeof(VkPipelineRobustnessImageBehaviorEXT));
22469 }
22470 
marshal_VkPipelineRobustnessCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRobustnessCreateInfoEXT * forMarshaling)22471 void marshal_VkPipelineRobustnessCreateInfoEXT(
22472     VulkanStream* vkStream, VkStructureType rootType,
22473     const VkPipelineRobustnessCreateInfoEXT* forMarshaling) {
22474     (void)rootType;
22475     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22476     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22477         rootType = forMarshaling->sType;
22478     }
22479     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22480     vkStream->write((VkPipelineRobustnessBufferBehaviorEXT*)&forMarshaling->storageBuffers,
22481                     sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22482     vkStream->write((VkPipelineRobustnessBufferBehaviorEXT*)&forMarshaling->uniformBuffers,
22483                     sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22484     vkStream->write((VkPipelineRobustnessBufferBehaviorEXT*)&forMarshaling->vertexInputs,
22485                     sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22486     vkStream->write((VkPipelineRobustnessImageBehaviorEXT*)&forMarshaling->images,
22487                     sizeof(VkPipelineRobustnessImageBehaviorEXT));
22488 }
22489 
unmarshal_VkPipelineRobustnessCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRobustnessCreateInfoEXT * forUnmarshaling)22490 void unmarshal_VkPipelineRobustnessCreateInfoEXT(
22491     VulkanStream* vkStream, VkStructureType rootType,
22492     VkPipelineRobustnessCreateInfoEXT* forUnmarshaling) {
22493     (void)rootType;
22494     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22495     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22496         rootType = forUnmarshaling->sType;
22497     }
22498     size_t pNext_size;
22499     pNext_size = vkStream->getBe32();
22500     forUnmarshaling->pNext = nullptr;
22501     if (pNext_size) {
22502         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22503         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22504         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22505         vkStream->alloc((void**)&forUnmarshaling->pNext,
22506                         goldfish_vk_extension_struct_size_with_stream_features(
22507                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22508         *(VkStructureType*)forUnmarshaling->pNext = extType;
22509         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22510     }
22511     vkStream->read((VkPipelineRobustnessBufferBehaviorEXT*)&forUnmarshaling->storageBuffers,
22512                    sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22513     vkStream->read((VkPipelineRobustnessBufferBehaviorEXT*)&forUnmarshaling->uniformBuffers,
22514                    sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22515     vkStream->read((VkPipelineRobustnessBufferBehaviorEXT*)&forUnmarshaling->vertexInputs,
22516                    sizeof(VkPipelineRobustnessBufferBehaviorEXT));
22517     vkStream->read((VkPipelineRobustnessImageBehaviorEXT*)&forUnmarshaling->images,
22518                    sizeof(VkPipelineRobustnessImageBehaviorEXT));
22519 }
22520 
22521 #endif
22522 #ifdef VK_EXT_conditional_rendering
marshal_VkConditionalRenderingBeginInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkConditionalRenderingBeginInfoEXT * forMarshaling)22523 void marshal_VkConditionalRenderingBeginInfoEXT(
22524     VulkanStream* vkStream, VkStructureType rootType,
22525     const VkConditionalRenderingBeginInfoEXT* forMarshaling) {
22526     (void)rootType;
22527     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22528     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22529         rootType = forMarshaling->sType;
22530     }
22531     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22532     uint64_t cgen_var_0;
22533     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
22534     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
22535     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
22536     vkStream->write((VkConditionalRenderingFlagsEXT*)&forMarshaling->flags,
22537                     sizeof(VkConditionalRenderingFlagsEXT));
22538 }
22539 
unmarshal_VkConditionalRenderingBeginInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkConditionalRenderingBeginInfoEXT * forUnmarshaling)22540 void unmarshal_VkConditionalRenderingBeginInfoEXT(
22541     VulkanStream* vkStream, VkStructureType rootType,
22542     VkConditionalRenderingBeginInfoEXT* forUnmarshaling) {
22543     (void)rootType;
22544     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22545     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22546         rootType = forUnmarshaling->sType;
22547     }
22548     size_t pNext_size;
22549     pNext_size = vkStream->getBe32();
22550     forUnmarshaling->pNext = nullptr;
22551     if (pNext_size) {
22552         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22553         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22554         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22555         vkStream->alloc((void**)&forUnmarshaling->pNext,
22556                         goldfish_vk_extension_struct_size_with_stream_features(
22557                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22558         *(VkStructureType*)forUnmarshaling->pNext = extType;
22559         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22560     }
22561     uint64_t cgen_var_0;
22562     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
22563     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
22564                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
22565     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
22566     vkStream->read((VkConditionalRenderingFlagsEXT*)&forUnmarshaling->flags,
22567                    sizeof(VkConditionalRenderingFlagsEXT));
22568 }
22569 
marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceConditionalRenderingFeaturesEXT * forMarshaling)22570 void marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
22571     VulkanStream* vkStream, VkStructureType rootType,
22572     const VkPhysicalDeviceConditionalRenderingFeaturesEXT* forMarshaling) {
22573     (void)rootType;
22574     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22575     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22576         rootType = forMarshaling->sType;
22577     }
22578     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22579     vkStream->write((VkBool32*)&forMarshaling->conditionalRendering, sizeof(VkBool32));
22580     vkStream->write((VkBool32*)&forMarshaling->inheritedConditionalRendering, sizeof(VkBool32));
22581 }
22582 
unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceConditionalRenderingFeaturesEXT * forUnmarshaling)22583 void unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
22584     VulkanStream* vkStream, VkStructureType rootType,
22585     VkPhysicalDeviceConditionalRenderingFeaturesEXT* forUnmarshaling) {
22586     (void)rootType;
22587     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22588     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22589         rootType = forUnmarshaling->sType;
22590     }
22591     size_t pNext_size;
22592     pNext_size = vkStream->getBe32();
22593     forUnmarshaling->pNext = nullptr;
22594     if (pNext_size) {
22595         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22596         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22597         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22598         vkStream->alloc((void**)&forUnmarshaling->pNext,
22599                         goldfish_vk_extension_struct_size_with_stream_features(
22600                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22601         *(VkStructureType*)forUnmarshaling->pNext = extType;
22602         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22603     }
22604     vkStream->read((VkBool32*)&forUnmarshaling->conditionalRendering, sizeof(VkBool32));
22605     vkStream->read((VkBool32*)&forUnmarshaling->inheritedConditionalRendering, sizeof(VkBool32));
22606 }
22607 
marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceConditionalRenderingInfoEXT * forMarshaling)22608 void marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
22609     VulkanStream* vkStream, VkStructureType rootType,
22610     const VkCommandBufferInheritanceConditionalRenderingInfoEXT* forMarshaling) {
22611     (void)rootType;
22612     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22613     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22614         rootType = forMarshaling->sType;
22615     }
22616     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22617     vkStream->write((VkBool32*)&forMarshaling->conditionalRenderingEnable, sizeof(VkBool32));
22618 }
22619 
unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferInheritanceConditionalRenderingInfoEXT * forUnmarshaling)22620 void unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
22621     VulkanStream* vkStream, VkStructureType rootType,
22622     VkCommandBufferInheritanceConditionalRenderingInfoEXT* forUnmarshaling) {
22623     (void)rootType;
22624     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22625     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22626         rootType = forUnmarshaling->sType;
22627     }
22628     size_t pNext_size;
22629     pNext_size = vkStream->getBe32();
22630     forUnmarshaling->pNext = nullptr;
22631     if (pNext_size) {
22632         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22633         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22634         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22635         vkStream->alloc((void**)&forUnmarshaling->pNext,
22636                         goldfish_vk_extension_struct_size_with_stream_features(
22637                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22638         *(VkStructureType*)forUnmarshaling->pNext = extType;
22639         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22640     }
22641     vkStream->read((VkBool32*)&forUnmarshaling->conditionalRenderingEnable, sizeof(VkBool32));
22642 }
22643 
22644 #endif
22645 #ifdef VK_NV_clip_space_w_scaling
marshal_VkViewportWScalingNV(VulkanStream * vkStream,VkStructureType rootType,const VkViewportWScalingNV * forMarshaling)22646 void marshal_VkViewportWScalingNV(VulkanStream* vkStream, VkStructureType rootType,
22647                                   const VkViewportWScalingNV* forMarshaling) {
22648     (void)rootType;
22649     vkStream->write((float*)&forMarshaling->xcoeff, sizeof(float));
22650     vkStream->write((float*)&forMarshaling->ycoeff, sizeof(float));
22651 }
22652 
unmarshal_VkViewportWScalingNV(VulkanStream * vkStream,VkStructureType rootType,VkViewportWScalingNV * forUnmarshaling)22653 void unmarshal_VkViewportWScalingNV(VulkanStream* vkStream, VkStructureType rootType,
22654                                     VkViewportWScalingNV* forUnmarshaling) {
22655     (void)rootType;
22656     vkStream->read((float*)&forUnmarshaling->xcoeff, sizeof(float));
22657     vkStream->read((float*)&forUnmarshaling->ycoeff, sizeof(float));
22658 }
22659 
marshal_VkPipelineViewportWScalingStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineViewportWScalingStateCreateInfoNV * forMarshaling)22660 void marshal_VkPipelineViewportWScalingStateCreateInfoNV(
22661     VulkanStream* vkStream, VkStructureType rootType,
22662     const VkPipelineViewportWScalingStateCreateInfoNV* forMarshaling) {
22663     (void)rootType;
22664     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22665     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22666         rootType = forMarshaling->sType;
22667     }
22668     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22669     vkStream->write((VkBool32*)&forMarshaling->viewportWScalingEnable, sizeof(VkBool32));
22670     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
22671     // WARNING PTR CHECK
22672     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
22673     vkStream->putBe64(cgen_var_0);
22674     if (forMarshaling->pViewportWScalings) {
22675         if (forMarshaling) {
22676             for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i) {
22677                 marshal_VkViewportWScalingNV(
22678                     vkStream, rootType,
22679                     (const VkViewportWScalingNV*)(forMarshaling->pViewportWScalings + i));
22680             }
22681         }
22682     }
22683 }
22684 
unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportWScalingStateCreateInfoNV * forUnmarshaling)22685 void unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(
22686     VulkanStream* vkStream, VkStructureType rootType,
22687     VkPipelineViewportWScalingStateCreateInfoNV* forUnmarshaling) {
22688     (void)rootType;
22689     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22690     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22691         rootType = forUnmarshaling->sType;
22692     }
22693     size_t pNext_size;
22694     pNext_size = vkStream->getBe32();
22695     forUnmarshaling->pNext = nullptr;
22696     if (pNext_size) {
22697         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22698         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22699         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22700         vkStream->alloc((void**)&forUnmarshaling->pNext,
22701                         goldfish_vk_extension_struct_size_with_stream_features(
22702                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22703         *(VkStructureType*)forUnmarshaling->pNext = extType;
22704         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22705     }
22706     vkStream->read((VkBool32*)&forUnmarshaling->viewportWScalingEnable, sizeof(VkBool32));
22707     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
22708     // WARNING PTR CHECK
22709     forUnmarshaling->pViewportWScalings =
22710         (const VkViewportWScalingNV*)(uintptr_t)vkStream->getBe64();
22711     if (forUnmarshaling->pViewportWScalings) {
22712         vkStream->alloc((void**)&forUnmarshaling->pViewportWScalings,
22713                         forUnmarshaling->viewportCount * sizeof(const VkViewportWScalingNV));
22714         if (forUnmarshaling) {
22715             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i) {
22716                 unmarshal_VkViewportWScalingNV(
22717                     vkStream, rootType,
22718                     (VkViewportWScalingNV*)(forUnmarshaling->pViewportWScalings + i));
22719             }
22720         }
22721     }
22722 }
22723 
22724 #endif
22725 #ifdef VK_EXT_direct_mode_display
22726 #endif
22727 #ifdef VK_EXT_acquire_xlib_display
22728 #endif
22729 #ifdef VK_EXT_display_surface_counter
marshal_VkSurfaceCapabilities2EXT(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceCapabilities2EXT * forMarshaling)22730 void marshal_VkSurfaceCapabilities2EXT(VulkanStream* vkStream, VkStructureType rootType,
22731                                        const VkSurfaceCapabilities2EXT* forMarshaling) {
22732     (void)rootType;
22733     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22734     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22735         rootType = forMarshaling->sType;
22736     }
22737     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22738     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
22739     vkStream->write((uint32_t*)&forMarshaling->maxImageCount, sizeof(uint32_t));
22740     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->currentExtent));
22741     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minImageExtent));
22742     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxImageExtent));
22743     vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
22744     vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms,
22745                     sizeof(VkSurfaceTransformFlagsKHR));
22746     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->currentTransform,
22747                     sizeof(VkSurfaceTransformFlagBitsKHR));
22748     vkStream->write((VkCompositeAlphaFlagsKHR*)&forMarshaling->supportedCompositeAlpha,
22749                     sizeof(VkCompositeAlphaFlagsKHR));
22750     vkStream->write((VkImageUsageFlags*)&forMarshaling->supportedUsageFlags,
22751                     sizeof(VkImageUsageFlags));
22752     vkStream->write((VkSurfaceCounterFlagsEXT*)&forMarshaling->supportedSurfaceCounters,
22753                     sizeof(VkSurfaceCounterFlagsEXT));
22754 }
22755 
unmarshal_VkSurfaceCapabilities2EXT(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceCapabilities2EXT * forUnmarshaling)22756 void unmarshal_VkSurfaceCapabilities2EXT(VulkanStream* vkStream, VkStructureType rootType,
22757                                          VkSurfaceCapabilities2EXT* forUnmarshaling) {
22758     (void)rootType;
22759     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22760     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22761         rootType = forUnmarshaling->sType;
22762     }
22763     size_t pNext_size;
22764     pNext_size = vkStream->getBe32();
22765     forUnmarshaling->pNext = nullptr;
22766     if (pNext_size) {
22767         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22768         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22769         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22770         vkStream->alloc((void**)&forUnmarshaling->pNext,
22771                         goldfish_vk_extension_struct_size_with_stream_features(
22772                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22773         *(VkStructureType*)forUnmarshaling->pNext = extType;
22774         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22775     }
22776     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
22777     vkStream->read((uint32_t*)&forUnmarshaling->maxImageCount, sizeof(uint32_t));
22778     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->currentExtent));
22779     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minImageExtent));
22780     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxImageExtent));
22781     vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
22782     vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms,
22783                    sizeof(VkSurfaceTransformFlagsKHR));
22784     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->currentTransform,
22785                    sizeof(VkSurfaceTransformFlagBitsKHR));
22786     vkStream->read((VkCompositeAlphaFlagsKHR*)&forUnmarshaling->supportedCompositeAlpha,
22787                    sizeof(VkCompositeAlphaFlagsKHR));
22788     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->supportedUsageFlags,
22789                    sizeof(VkImageUsageFlags));
22790     vkStream->read((VkSurfaceCounterFlagsEXT*)&forUnmarshaling->supportedSurfaceCounters,
22791                    sizeof(VkSurfaceCounterFlagsEXT));
22792 }
22793 
22794 #endif
22795 #ifdef VK_EXT_display_control
marshal_VkDisplayPowerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayPowerInfoEXT * forMarshaling)22796 void marshal_VkDisplayPowerInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22797                                    const VkDisplayPowerInfoEXT* forMarshaling) {
22798     (void)rootType;
22799     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22800     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22801         rootType = forMarshaling->sType;
22802     }
22803     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22804     vkStream->write((VkDisplayPowerStateEXT*)&forMarshaling->powerState,
22805                     sizeof(VkDisplayPowerStateEXT));
22806 }
22807 
unmarshal_VkDisplayPowerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDisplayPowerInfoEXT * forUnmarshaling)22808 void unmarshal_VkDisplayPowerInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22809                                      VkDisplayPowerInfoEXT* forUnmarshaling) {
22810     (void)rootType;
22811     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22812     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22813         rootType = forUnmarshaling->sType;
22814     }
22815     size_t pNext_size;
22816     pNext_size = vkStream->getBe32();
22817     forUnmarshaling->pNext = nullptr;
22818     if (pNext_size) {
22819         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22820         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22821         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22822         vkStream->alloc((void**)&forUnmarshaling->pNext,
22823                         goldfish_vk_extension_struct_size_with_stream_features(
22824                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22825         *(VkStructureType*)forUnmarshaling->pNext = extType;
22826         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22827     }
22828     vkStream->read((VkDisplayPowerStateEXT*)&forUnmarshaling->powerState,
22829                    sizeof(VkDisplayPowerStateEXT));
22830 }
22831 
marshal_VkDeviceEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceEventInfoEXT * forMarshaling)22832 void marshal_VkDeviceEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22833                                   const VkDeviceEventInfoEXT* forMarshaling) {
22834     (void)rootType;
22835     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22836     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22837         rootType = forMarshaling->sType;
22838     }
22839     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22840     vkStream->write((VkDeviceEventTypeEXT*)&forMarshaling->deviceEvent,
22841                     sizeof(VkDeviceEventTypeEXT));
22842 }
22843 
unmarshal_VkDeviceEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceEventInfoEXT * forUnmarshaling)22844 void unmarshal_VkDeviceEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22845                                     VkDeviceEventInfoEXT* forUnmarshaling) {
22846     (void)rootType;
22847     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22848     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22849         rootType = forUnmarshaling->sType;
22850     }
22851     size_t pNext_size;
22852     pNext_size = vkStream->getBe32();
22853     forUnmarshaling->pNext = nullptr;
22854     if (pNext_size) {
22855         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22856         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22857         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22858         vkStream->alloc((void**)&forUnmarshaling->pNext,
22859                         goldfish_vk_extension_struct_size_with_stream_features(
22860                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22861         *(VkStructureType*)forUnmarshaling->pNext = extType;
22862         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22863     }
22864     vkStream->read((VkDeviceEventTypeEXT*)&forUnmarshaling->deviceEvent,
22865                    sizeof(VkDeviceEventTypeEXT));
22866 }
22867 
marshal_VkDisplayEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayEventInfoEXT * forMarshaling)22868 void marshal_VkDisplayEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22869                                    const VkDisplayEventInfoEXT* forMarshaling) {
22870     (void)rootType;
22871     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22872     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22873         rootType = forMarshaling->sType;
22874     }
22875     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22876     vkStream->write((VkDisplayEventTypeEXT*)&forMarshaling->displayEvent,
22877                     sizeof(VkDisplayEventTypeEXT));
22878 }
22879 
unmarshal_VkDisplayEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDisplayEventInfoEXT * forUnmarshaling)22880 void unmarshal_VkDisplayEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22881                                      VkDisplayEventInfoEXT* forUnmarshaling) {
22882     (void)rootType;
22883     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22884     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22885         rootType = forUnmarshaling->sType;
22886     }
22887     size_t pNext_size;
22888     pNext_size = vkStream->getBe32();
22889     forUnmarshaling->pNext = nullptr;
22890     if (pNext_size) {
22891         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22892         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22893         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22894         vkStream->alloc((void**)&forUnmarshaling->pNext,
22895                         goldfish_vk_extension_struct_size_with_stream_features(
22896                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22897         *(VkStructureType*)forUnmarshaling->pNext = extType;
22898         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22899     }
22900     vkStream->read((VkDisplayEventTypeEXT*)&forUnmarshaling->displayEvent,
22901                    sizeof(VkDisplayEventTypeEXT));
22902 }
22903 
marshal_VkSwapchainCounterCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainCounterCreateInfoEXT * forMarshaling)22904 void marshal_VkSwapchainCounterCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22905                                              const VkSwapchainCounterCreateInfoEXT* forMarshaling) {
22906     (void)rootType;
22907     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22908     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22909         rootType = forMarshaling->sType;
22910     }
22911     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22912     vkStream->write((VkSurfaceCounterFlagsEXT*)&forMarshaling->surfaceCounters,
22913                     sizeof(VkSurfaceCounterFlagsEXT));
22914 }
22915 
unmarshal_VkSwapchainCounterCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainCounterCreateInfoEXT * forUnmarshaling)22916 void unmarshal_VkSwapchainCounterCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
22917                                                VkSwapchainCounterCreateInfoEXT* forUnmarshaling) {
22918     (void)rootType;
22919     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
22920     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22921         rootType = forUnmarshaling->sType;
22922     }
22923     size_t pNext_size;
22924     pNext_size = vkStream->getBe32();
22925     forUnmarshaling->pNext = nullptr;
22926     if (pNext_size) {
22927         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
22928         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
22929         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
22930         vkStream->alloc((void**)&forUnmarshaling->pNext,
22931                         goldfish_vk_extension_struct_size_with_stream_features(
22932                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
22933         *(VkStructureType*)forUnmarshaling->pNext = extType;
22934         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
22935     }
22936     vkStream->read((VkSurfaceCounterFlagsEXT*)&forUnmarshaling->surfaceCounters,
22937                    sizeof(VkSurfaceCounterFlagsEXT));
22938 }
22939 
22940 #endif
22941 #ifdef VK_GOOGLE_display_timing
marshal_VkRefreshCycleDurationGOOGLE(VulkanStream * vkStream,VkStructureType rootType,const VkRefreshCycleDurationGOOGLE * forMarshaling)22942 void marshal_VkRefreshCycleDurationGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
22943                                           const VkRefreshCycleDurationGOOGLE* forMarshaling) {
22944     (void)rootType;
22945     vkStream->write((uint64_t*)&forMarshaling->refreshDuration, sizeof(uint64_t));
22946 }
22947 
unmarshal_VkRefreshCycleDurationGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkRefreshCycleDurationGOOGLE * forUnmarshaling)22948 void unmarshal_VkRefreshCycleDurationGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
22949                                             VkRefreshCycleDurationGOOGLE* forUnmarshaling) {
22950     (void)rootType;
22951     vkStream->read((uint64_t*)&forUnmarshaling->refreshDuration, sizeof(uint64_t));
22952 }
22953 
marshal_VkPastPresentationTimingGOOGLE(VulkanStream * vkStream,VkStructureType rootType,const VkPastPresentationTimingGOOGLE * forMarshaling)22954 void marshal_VkPastPresentationTimingGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
22955                                             const VkPastPresentationTimingGOOGLE* forMarshaling) {
22956     (void)rootType;
22957     vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
22958     vkStream->write((uint64_t*)&forMarshaling->desiredPresentTime, sizeof(uint64_t));
22959     vkStream->write((uint64_t*)&forMarshaling->actualPresentTime, sizeof(uint64_t));
22960     vkStream->write((uint64_t*)&forMarshaling->earliestPresentTime, sizeof(uint64_t));
22961     vkStream->write((uint64_t*)&forMarshaling->presentMargin, sizeof(uint64_t));
22962 }
22963 
unmarshal_VkPastPresentationTimingGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkPastPresentationTimingGOOGLE * forUnmarshaling)22964 void unmarshal_VkPastPresentationTimingGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
22965                                               VkPastPresentationTimingGOOGLE* forUnmarshaling) {
22966     (void)rootType;
22967     vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
22968     vkStream->read((uint64_t*)&forUnmarshaling->desiredPresentTime, sizeof(uint64_t));
22969     vkStream->read((uint64_t*)&forUnmarshaling->actualPresentTime, sizeof(uint64_t));
22970     vkStream->read((uint64_t*)&forUnmarshaling->earliestPresentTime, sizeof(uint64_t));
22971     vkStream->read((uint64_t*)&forUnmarshaling->presentMargin, sizeof(uint64_t));
22972 }
22973 
marshal_VkPresentTimeGOOGLE(VulkanStream * vkStream,VkStructureType rootType,const VkPresentTimeGOOGLE * forMarshaling)22974 void marshal_VkPresentTimeGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
22975                                  const VkPresentTimeGOOGLE* forMarshaling) {
22976     (void)rootType;
22977     vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
22978     vkStream->write((uint64_t*)&forMarshaling->desiredPresentTime, sizeof(uint64_t));
22979 }
22980 
unmarshal_VkPresentTimeGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkPresentTimeGOOGLE * forUnmarshaling)22981 void unmarshal_VkPresentTimeGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
22982                                    VkPresentTimeGOOGLE* forUnmarshaling) {
22983     (void)rootType;
22984     vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
22985     vkStream->read((uint64_t*)&forUnmarshaling->desiredPresentTime, sizeof(uint64_t));
22986 }
22987 
marshal_VkPresentTimesInfoGOOGLE(VulkanStream * vkStream,VkStructureType rootType,const VkPresentTimesInfoGOOGLE * forMarshaling)22988 void marshal_VkPresentTimesInfoGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
22989                                       const VkPresentTimesInfoGOOGLE* forMarshaling) {
22990     (void)rootType;
22991     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
22992     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
22993         rootType = forMarshaling->sType;
22994     }
22995     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
22996     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
22997     // WARNING PTR CHECK
22998     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
22999     vkStream->putBe64(cgen_var_0);
23000     if (forMarshaling->pTimes) {
23001         if (forMarshaling) {
23002             for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i) {
23003                 marshal_VkPresentTimeGOOGLE(
23004                     vkStream, rootType, (const VkPresentTimeGOOGLE*)(forMarshaling->pTimes + i));
23005             }
23006         }
23007     }
23008 }
23009 
unmarshal_VkPresentTimesInfoGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkPresentTimesInfoGOOGLE * forUnmarshaling)23010 void unmarshal_VkPresentTimesInfoGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
23011                                         VkPresentTimesInfoGOOGLE* forUnmarshaling) {
23012     (void)rootType;
23013     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23014     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23015         rootType = forUnmarshaling->sType;
23016     }
23017     size_t pNext_size;
23018     pNext_size = vkStream->getBe32();
23019     forUnmarshaling->pNext = nullptr;
23020     if (pNext_size) {
23021         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23022         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23023         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23024         vkStream->alloc((void**)&forUnmarshaling->pNext,
23025                         goldfish_vk_extension_struct_size_with_stream_features(
23026                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23027         *(VkStructureType*)forUnmarshaling->pNext = extType;
23028         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23029     }
23030     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
23031     // WARNING PTR CHECK
23032     forUnmarshaling->pTimes = (const VkPresentTimeGOOGLE*)(uintptr_t)vkStream->getBe64();
23033     if (forUnmarshaling->pTimes) {
23034         vkStream->alloc((void**)&forUnmarshaling->pTimes,
23035                         forUnmarshaling->swapchainCount * sizeof(const VkPresentTimeGOOGLE));
23036         if (forUnmarshaling) {
23037             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i) {
23038                 unmarshal_VkPresentTimeGOOGLE(vkStream, rootType,
23039                                               (VkPresentTimeGOOGLE*)(forUnmarshaling->pTimes + i));
23040             }
23041         }
23042     }
23043 }
23044 
23045 #endif
23046 #ifdef VK_NV_sample_mask_override_coverage
23047 #endif
23048 #ifdef VK_NV_geometry_shader_passthrough
23049 #endif
23050 #ifdef VK_NV_viewport_array2
23051 #endif
23052 #ifdef VK_NVX_multiview_per_view_attributes
marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * forMarshaling)23053 void marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
23054     VulkanStream* vkStream, VkStructureType rootType,
23055     const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forMarshaling) {
23056     (void)rootType;
23057     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23058     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23059         rootType = forMarshaling->sType;
23060     }
23061     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23062     vkStream->write((VkBool32*)&forMarshaling->perViewPositionAllComponents, sizeof(VkBool32));
23063 }
23064 
unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * forUnmarshaling)23065 void unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
23066     VulkanStream* vkStream, VkStructureType rootType,
23067     VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forUnmarshaling) {
23068     (void)rootType;
23069     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23070     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23071         rootType = forUnmarshaling->sType;
23072     }
23073     size_t pNext_size;
23074     pNext_size = vkStream->getBe32();
23075     forUnmarshaling->pNext = nullptr;
23076     if (pNext_size) {
23077         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23078         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23079         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23080         vkStream->alloc((void**)&forUnmarshaling->pNext,
23081                         goldfish_vk_extension_struct_size_with_stream_features(
23082                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23083         *(VkStructureType*)forUnmarshaling->pNext = extType;
23084         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23085     }
23086     vkStream->read((VkBool32*)&forUnmarshaling->perViewPositionAllComponents, sizeof(VkBool32));
23087 }
23088 
23089 #endif
23090 #ifdef VK_NV_viewport_swizzle
marshal_VkViewportSwizzleNV(VulkanStream * vkStream,VkStructureType rootType,const VkViewportSwizzleNV * forMarshaling)23091 void marshal_VkViewportSwizzleNV(VulkanStream* vkStream, VkStructureType rootType,
23092                                  const VkViewportSwizzleNV* forMarshaling) {
23093     (void)rootType;
23094     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->x,
23095                     sizeof(VkViewportCoordinateSwizzleNV));
23096     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->y,
23097                     sizeof(VkViewportCoordinateSwizzleNV));
23098     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->z,
23099                     sizeof(VkViewportCoordinateSwizzleNV));
23100     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->w,
23101                     sizeof(VkViewportCoordinateSwizzleNV));
23102 }
23103 
unmarshal_VkViewportSwizzleNV(VulkanStream * vkStream,VkStructureType rootType,VkViewportSwizzleNV * forUnmarshaling)23104 void unmarshal_VkViewportSwizzleNV(VulkanStream* vkStream, VkStructureType rootType,
23105                                    VkViewportSwizzleNV* forUnmarshaling) {
23106     (void)rootType;
23107     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->x,
23108                    sizeof(VkViewportCoordinateSwizzleNV));
23109     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->y,
23110                    sizeof(VkViewportCoordinateSwizzleNV));
23111     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->z,
23112                    sizeof(VkViewportCoordinateSwizzleNV));
23113     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->w,
23114                    sizeof(VkViewportCoordinateSwizzleNV));
23115 }
23116 
marshal_VkPipelineViewportSwizzleStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineViewportSwizzleStateCreateInfoNV * forMarshaling)23117 void marshal_VkPipelineViewportSwizzleStateCreateInfoNV(
23118     VulkanStream* vkStream, VkStructureType rootType,
23119     const VkPipelineViewportSwizzleStateCreateInfoNV* forMarshaling) {
23120     (void)rootType;
23121     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23122     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23123         rootType = forMarshaling->sType;
23124     }
23125     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23126     vkStream->write((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forMarshaling->flags,
23127                     sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
23128     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
23129     if (forMarshaling) {
23130         for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i) {
23131             marshal_VkViewportSwizzleNV(
23132                 vkStream, rootType,
23133                 (const VkViewportSwizzleNV*)(forMarshaling->pViewportSwizzles + i));
23134         }
23135     }
23136 }
23137 
unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportSwizzleStateCreateInfoNV * forUnmarshaling)23138 void unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(
23139     VulkanStream* vkStream, VkStructureType rootType,
23140     VkPipelineViewportSwizzleStateCreateInfoNV* forUnmarshaling) {
23141     (void)rootType;
23142     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23143     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23144         rootType = forUnmarshaling->sType;
23145     }
23146     size_t pNext_size;
23147     pNext_size = vkStream->getBe32();
23148     forUnmarshaling->pNext = nullptr;
23149     if (pNext_size) {
23150         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23151         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23152         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23153         vkStream->alloc((void**)&forUnmarshaling->pNext,
23154                         goldfish_vk_extension_struct_size_with_stream_features(
23155                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23156         *(VkStructureType*)forUnmarshaling->pNext = extType;
23157         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23158     }
23159     vkStream->read((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forUnmarshaling->flags,
23160                    sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
23161     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
23162     vkStream->alloc((void**)&forUnmarshaling->pViewportSwizzles,
23163                     forUnmarshaling->viewportCount * sizeof(const VkViewportSwizzleNV));
23164     if (forUnmarshaling) {
23165         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i) {
23166             unmarshal_VkViewportSwizzleNV(
23167                 vkStream, rootType, (VkViewportSwizzleNV*)(forUnmarshaling->pViewportSwizzles + i));
23168         }
23169     }
23170 }
23171 
23172 #endif
23173 #ifdef VK_EXT_discard_rectangles
marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDiscardRectanglePropertiesEXT * forMarshaling)23174 void marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
23175     VulkanStream* vkStream, VkStructureType rootType,
23176     const VkPhysicalDeviceDiscardRectanglePropertiesEXT* forMarshaling) {
23177     (void)rootType;
23178     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23179     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23180         rootType = forMarshaling->sType;
23181     }
23182     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23183     vkStream->write((uint32_t*)&forMarshaling->maxDiscardRectangles, sizeof(uint32_t));
23184 }
23185 
unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDiscardRectanglePropertiesEXT * forUnmarshaling)23186 void unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
23187     VulkanStream* vkStream, VkStructureType rootType,
23188     VkPhysicalDeviceDiscardRectanglePropertiesEXT* forUnmarshaling) {
23189     (void)rootType;
23190     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23191     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23192         rootType = forUnmarshaling->sType;
23193     }
23194     size_t pNext_size;
23195     pNext_size = vkStream->getBe32();
23196     forUnmarshaling->pNext = nullptr;
23197     if (pNext_size) {
23198         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23199         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23200         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23201         vkStream->alloc((void**)&forUnmarshaling->pNext,
23202                         goldfish_vk_extension_struct_size_with_stream_features(
23203                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23204         *(VkStructureType*)forUnmarshaling->pNext = extType;
23205         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23206     }
23207     vkStream->read((uint32_t*)&forUnmarshaling->maxDiscardRectangles, sizeof(uint32_t));
23208 }
23209 
marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineDiscardRectangleStateCreateInfoEXT * forMarshaling)23210 void marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
23211     VulkanStream* vkStream, VkStructureType rootType,
23212     const VkPipelineDiscardRectangleStateCreateInfoEXT* forMarshaling) {
23213     (void)rootType;
23214     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23215     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23216         rootType = forMarshaling->sType;
23217     }
23218     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23219     vkStream->write((VkPipelineDiscardRectangleStateCreateFlagsEXT*)&forMarshaling->flags,
23220                     sizeof(VkPipelineDiscardRectangleStateCreateFlagsEXT));
23221     vkStream->write((VkDiscardRectangleModeEXT*)&forMarshaling->discardRectangleMode,
23222                     sizeof(VkDiscardRectangleModeEXT));
23223     vkStream->write((uint32_t*)&forMarshaling->discardRectangleCount, sizeof(uint32_t));
23224     // WARNING PTR CHECK
23225     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
23226     vkStream->putBe64(cgen_var_0);
23227     if (forMarshaling->pDiscardRectangles) {
23228         if (forMarshaling) {
23229             for (uint32_t i = 0; i < (uint32_t)forMarshaling->discardRectangleCount; ++i) {
23230                 marshal_VkRect2D(vkStream, rootType,
23231                                  (const VkRect2D*)(forMarshaling->pDiscardRectangles + i));
23232             }
23233         }
23234     }
23235 }
23236 
unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineDiscardRectangleStateCreateInfoEXT * forUnmarshaling)23237 void unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
23238     VulkanStream* vkStream, VkStructureType rootType,
23239     VkPipelineDiscardRectangleStateCreateInfoEXT* forUnmarshaling) {
23240     (void)rootType;
23241     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23243         rootType = forUnmarshaling->sType;
23244     }
23245     size_t pNext_size;
23246     pNext_size = vkStream->getBe32();
23247     forUnmarshaling->pNext = nullptr;
23248     if (pNext_size) {
23249         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23250         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23251         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23252         vkStream->alloc((void**)&forUnmarshaling->pNext,
23253                         goldfish_vk_extension_struct_size_with_stream_features(
23254                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23255         *(VkStructureType*)forUnmarshaling->pNext = extType;
23256         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23257     }
23258     vkStream->read((VkPipelineDiscardRectangleStateCreateFlagsEXT*)&forUnmarshaling->flags,
23259                    sizeof(VkPipelineDiscardRectangleStateCreateFlagsEXT));
23260     vkStream->read((VkDiscardRectangleModeEXT*)&forUnmarshaling->discardRectangleMode,
23261                    sizeof(VkDiscardRectangleModeEXT));
23262     vkStream->read((uint32_t*)&forUnmarshaling->discardRectangleCount, sizeof(uint32_t));
23263     // WARNING PTR CHECK
23264     forUnmarshaling->pDiscardRectangles = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
23265     if (forUnmarshaling->pDiscardRectangles) {
23266         vkStream->alloc((void**)&forUnmarshaling->pDiscardRectangles,
23267                         forUnmarshaling->discardRectangleCount * sizeof(const VkRect2D));
23268         if (forUnmarshaling) {
23269             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->discardRectangleCount; ++i) {
23270                 unmarshal_VkRect2D(vkStream, rootType,
23271                                    (VkRect2D*)(forUnmarshaling->pDiscardRectangles + i));
23272             }
23273         }
23274     }
23275 }
23276 
23277 #endif
23278 #ifdef VK_EXT_conservative_rasterization
marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceConservativeRasterizationPropertiesEXT * forMarshaling)23279 void marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
23280     VulkanStream* vkStream, VkStructureType rootType,
23281     const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forMarshaling) {
23282     (void)rootType;
23283     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23284     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23285         rootType = forMarshaling->sType;
23286     }
23287     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23288     vkStream->write((float*)&forMarshaling->primitiveOverestimationSize, sizeof(float));
23289     vkStream->write((float*)&forMarshaling->maxExtraPrimitiveOverestimationSize, sizeof(float));
23290     vkStream->write((float*)&forMarshaling->extraPrimitiveOverestimationSizeGranularity,
23291                     sizeof(float));
23292     vkStream->write((VkBool32*)&forMarshaling->primitiveUnderestimation, sizeof(VkBool32));
23293     vkStream->write((VkBool32*)&forMarshaling->conservativePointAndLineRasterization,
23294                     sizeof(VkBool32));
23295     vkStream->write((VkBool32*)&forMarshaling->degenerateTrianglesRasterized, sizeof(VkBool32));
23296     vkStream->write((VkBool32*)&forMarshaling->degenerateLinesRasterized, sizeof(VkBool32));
23297     vkStream->write((VkBool32*)&forMarshaling->fullyCoveredFragmentShaderInputVariable,
23298                     sizeof(VkBool32));
23299     vkStream->write((VkBool32*)&forMarshaling->conservativeRasterizationPostDepthCoverage,
23300                     sizeof(VkBool32));
23301 }
23302 
unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceConservativeRasterizationPropertiesEXT * forUnmarshaling)23303 void unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
23304     VulkanStream* vkStream, VkStructureType rootType,
23305     VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forUnmarshaling) {
23306     (void)rootType;
23307     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23308     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23309         rootType = forUnmarshaling->sType;
23310     }
23311     size_t pNext_size;
23312     pNext_size = vkStream->getBe32();
23313     forUnmarshaling->pNext = nullptr;
23314     if (pNext_size) {
23315         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23316         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23317         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23318         vkStream->alloc((void**)&forUnmarshaling->pNext,
23319                         goldfish_vk_extension_struct_size_with_stream_features(
23320                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23321         *(VkStructureType*)forUnmarshaling->pNext = extType;
23322         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23323     }
23324     vkStream->read((float*)&forUnmarshaling->primitiveOverestimationSize, sizeof(float));
23325     vkStream->read((float*)&forUnmarshaling->maxExtraPrimitiveOverestimationSize, sizeof(float));
23326     vkStream->read((float*)&forUnmarshaling->extraPrimitiveOverestimationSizeGranularity,
23327                    sizeof(float));
23328     vkStream->read((VkBool32*)&forUnmarshaling->primitiveUnderestimation, sizeof(VkBool32));
23329     vkStream->read((VkBool32*)&forUnmarshaling->conservativePointAndLineRasterization,
23330                    sizeof(VkBool32));
23331     vkStream->read((VkBool32*)&forUnmarshaling->degenerateTrianglesRasterized, sizeof(VkBool32));
23332     vkStream->read((VkBool32*)&forUnmarshaling->degenerateLinesRasterized, sizeof(VkBool32));
23333     vkStream->read((VkBool32*)&forUnmarshaling->fullyCoveredFragmentShaderInputVariable,
23334                    sizeof(VkBool32));
23335     vkStream->read((VkBool32*)&forUnmarshaling->conservativeRasterizationPostDepthCoverage,
23336                    sizeof(VkBool32));
23337 }
23338 
marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRasterizationConservativeStateCreateInfoEXT * forMarshaling)23339 void marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
23340     VulkanStream* vkStream, VkStructureType rootType,
23341     const VkPipelineRasterizationConservativeStateCreateInfoEXT* forMarshaling) {
23342     (void)rootType;
23343     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23344     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23345         rootType = forMarshaling->sType;
23346     }
23347     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23348     vkStream->write((VkPipelineRasterizationConservativeStateCreateFlagsEXT*)&forMarshaling->flags,
23349                     sizeof(VkPipelineRasterizationConservativeStateCreateFlagsEXT));
23350     vkStream->write(
23351         (VkConservativeRasterizationModeEXT*)&forMarshaling->conservativeRasterizationMode,
23352         sizeof(VkConservativeRasterizationModeEXT));
23353     vkStream->write((float*)&forMarshaling->extraPrimitiveOverestimationSize, sizeof(float));
23354 }
23355 
unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationConservativeStateCreateInfoEXT * forUnmarshaling)23356 void unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
23357     VulkanStream* vkStream, VkStructureType rootType,
23358     VkPipelineRasterizationConservativeStateCreateInfoEXT* forUnmarshaling) {
23359     (void)rootType;
23360     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23361     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23362         rootType = forUnmarshaling->sType;
23363     }
23364     size_t pNext_size;
23365     pNext_size = vkStream->getBe32();
23366     forUnmarshaling->pNext = nullptr;
23367     if (pNext_size) {
23368         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23369         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23370         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23371         vkStream->alloc((void**)&forUnmarshaling->pNext,
23372                         goldfish_vk_extension_struct_size_with_stream_features(
23373                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23374         *(VkStructureType*)forUnmarshaling->pNext = extType;
23375         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23376     }
23377     vkStream->read((VkPipelineRasterizationConservativeStateCreateFlagsEXT*)&forUnmarshaling->flags,
23378                    sizeof(VkPipelineRasterizationConservativeStateCreateFlagsEXT));
23379     vkStream->read(
23380         (VkConservativeRasterizationModeEXT*)&forUnmarshaling->conservativeRasterizationMode,
23381         sizeof(VkConservativeRasterizationModeEXT));
23382     vkStream->read((float*)&forUnmarshaling->extraPrimitiveOverestimationSize, sizeof(float));
23383 }
23384 
23385 #endif
23386 #ifdef VK_EXT_depth_clip_enable
marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * forMarshaling)23387 void marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
23388     VulkanStream* vkStream, VkStructureType rootType,
23389     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling) {
23390     (void)rootType;
23391     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23392     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23393         rootType = forMarshaling->sType;
23394     }
23395     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23396     vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
23397 }
23398 
unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthClipEnableFeaturesEXT * forUnmarshaling)23399 void unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
23400     VulkanStream* vkStream, VkStructureType rootType,
23401     VkPhysicalDeviceDepthClipEnableFeaturesEXT* forUnmarshaling) {
23402     (void)rootType;
23403     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23404     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23405         rootType = forUnmarshaling->sType;
23406     }
23407     size_t pNext_size;
23408     pNext_size = vkStream->getBe32();
23409     forUnmarshaling->pNext = nullptr;
23410     if (pNext_size) {
23411         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23412         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23413         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23414         vkStream->alloc((void**)&forUnmarshaling->pNext,
23415                         goldfish_vk_extension_struct_size_with_stream_features(
23416                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23417         *(VkStructureType*)forUnmarshaling->pNext = extType;
23418         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23419     }
23420     vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
23421 }
23422 
marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRasterizationDepthClipStateCreateInfoEXT * forMarshaling)23423 void marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
23424     VulkanStream* vkStream, VkStructureType rootType,
23425     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling) {
23426     (void)rootType;
23427     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23428     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23429         rootType = forMarshaling->sType;
23430     }
23431     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23432     vkStream->write((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forMarshaling->flags,
23433                     sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
23434     vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
23435 }
23436 
unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationDepthClipStateCreateInfoEXT * forUnmarshaling)23437 void unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
23438     VulkanStream* vkStream, VkStructureType rootType,
23439     VkPipelineRasterizationDepthClipStateCreateInfoEXT* forUnmarshaling) {
23440     (void)rootType;
23441     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23442     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23443         rootType = forUnmarshaling->sType;
23444     }
23445     size_t pNext_size;
23446     pNext_size = vkStream->getBe32();
23447     forUnmarshaling->pNext = nullptr;
23448     if (pNext_size) {
23449         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23450         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23451         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23452         vkStream->alloc((void**)&forUnmarshaling->pNext,
23453                         goldfish_vk_extension_struct_size_with_stream_features(
23454                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23455         *(VkStructureType*)forUnmarshaling->pNext = extType;
23456         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23457     }
23458     vkStream->read((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forUnmarshaling->flags,
23459                    sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
23460     vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
23461 }
23462 
23463 #endif
23464 #ifdef VK_EXT_swapchain_colorspace
23465 #endif
23466 #ifdef VK_EXT_hdr_metadata
marshal_VkXYColorEXT(VulkanStream * vkStream,VkStructureType rootType,const VkXYColorEXT * forMarshaling)23467 void marshal_VkXYColorEXT(VulkanStream* vkStream, VkStructureType rootType,
23468                           const VkXYColorEXT* forMarshaling) {
23469     (void)rootType;
23470     vkStream->write((float*)&forMarshaling->x, sizeof(float));
23471     vkStream->write((float*)&forMarshaling->y, sizeof(float));
23472 }
23473 
unmarshal_VkXYColorEXT(VulkanStream * vkStream,VkStructureType rootType,VkXYColorEXT * forUnmarshaling)23474 void unmarshal_VkXYColorEXT(VulkanStream* vkStream, VkStructureType rootType,
23475                             VkXYColorEXT* forUnmarshaling) {
23476     (void)rootType;
23477     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
23478     vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
23479 }
23480 
marshal_VkHdrMetadataEXT(VulkanStream * vkStream,VkStructureType rootType,const VkHdrMetadataEXT * forMarshaling)23481 void marshal_VkHdrMetadataEXT(VulkanStream* vkStream, VkStructureType rootType,
23482                               const VkHdrMetadataEXT* forMarshaling) {
23483     (void)rootType;
23484     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23485     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23486         rootType = forMarshaling->sType;
23487     }
23488     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23489     marshal_VkXYColorEXT(vkStream, rootType, (VkXYColorEXT*)(&forMarshaling->displayPrimaryRed));
23490     marshal_VkXYColorEXT(vkStream, rootType, (VkXYColorEXT*)(&forMarshaling->displayPrimaryGreen));
23491     marshal_VkXYColorEXT(vkStream, rootType, (VkXYColorEXT*)(&forMarshaling->displayPrimaryBlue));
23492     marshal_VkXYColorEXT(vkStream, rootType, (VkXYColorEXT*)(&forMarshaling->whitePoint));
23493     vkStream->write((float*)&forMarshaling->maxLuminance, sizeof(float));
23494     vkStream->write((float*)&forMarshaling->minLuminance, sizeof(float));
23495     vkStream->write((float*)&forMarshaling->maxContentLightLevel, sizeof(float));
23496     vkStream->write((float*)&forMarshaling->maxFrameAverageLightLevel, sizeof(float));
23497 }
23498 
unmarshal_VkHdrMetadataEXT(VulkanStream * vkStream,VkStructureType rootType,VkHdrMetadataEXT * forUnmarshaling)23499 void unmarshal_VkHdrMetadataEXT(VulkanStream* vkStream, VkStructureType rootType,
23500                                 VkHdrMetadataEXT* forUnmarshaling) {
23501     (void)rootType;
23502     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23503     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23504         rootType = forUnmarshaling->sType;
23505     }
23506     size_t pNext_size;
23507     pNext_size = vkStream->getBe32();
23508     forUnmarshaling->pNext = nullptr;
23509     if (pNext_size) {
23510         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23511         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23512         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23513         vkStream->alloc((void**)&forUnmarshaling->pNext,
23514                         goldfish_vk_extension_struct_size_with_stream_features(
23515                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23516         *(VkStructureType*)forUnmarshaling->pNext = extType;
23517         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23518     }
23519     unmarshal_VkXYColorEXT(vkStream, rootType,
23520                            (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryRed));
23521     unmarshal_VkXYColorEXT(vkStream, rootType,
23522                            (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryGreen));
23523     unmarshal_VkXYColorEXT(vkStream, rootType,
23524                            (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryBlue));
23525     unmarshal_VkXYColorEXT(vkStream, rootType, (VkXYColorEXT*)(&forUnmarshaling->whitePoint));
23526     vkStream->read((float*)&forUnmarshaling->maxLuminance, sizeof(float));
23527     vkStream->read((float*)&forUnmarshaling->minLuminance, sizeof(float));
23528     vkStream->read((float*)&forUnmarshaling->maxContentLightLevel, sizeof(float));
23529     vkStream->read((float*)&forUnmarshaling->maxFrameAverageLightLevel, sizeof(float));
23530 }
23531 
23532 #endif
23533 #ifdef VK_MVK_ios_surface
marshal_VkIOSSurfaceCreateInfoMVK(VulkanStream * vkStream,VkStructureType rootType,const VkIOSSurfaceCreateInfoMVK * forMarshaling)23534 void marshal_VkIOSSurfaceCreateInfoMVK(VulkanStream* vkStream, VkStructureType rootType,
23535                                        const VkIOSSurfaceCreateInfoMVK* forMarshaling) {
23536     (void)rootType;
23537     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23538     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23539         rootType = forMarshaling->sType;
23540     }
23541     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23542     vkStream->write((VkIOSSurfaceCreateFlagsMVK*)&forMarshaling->flags,
23543                     sizeof(VkIOSSurfaceCreateFlagsMVK));
23544     // WARNING PTR CHECK
23545     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pView;
23546     vkStream->putBe64(cgen_var_0);
23547     if (forMarshaling->pView) {
23548         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
23549     }
23550 }
23551 
unmarshal_VkIOSSurfaceCreateInfoMVK(VulkanStream * vkStream,VkStructureType rootType,VkIOSSurfaceCreateInfoMVK * forUnmarshaling)23552 void unmarshal_VkIOSSurfaceCreateInfoMVK(VulkanStream* vkStream, VkStructureType rootType,
23553                                          VkIOSSurfaceCreateInfoMVK* forUnmarshaling) {
23554     (void)rootType;
23555     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23556     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23557         rootType = forUnmarshaling->sType;
23558     }
23559     size_t pNext_size;
23560     pNext_size = vkStream->getBe32();
23561     forUnmarshaling->pNext = nullptr;
23562     if (pNext_size) {
23563         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23564         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23565         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23566         vkStream->alloc((void**)&forUnmarshaling->pNext,
23567                         goldfish_vk_extension_struct_size_with_stream_features(
23568                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23569         *(VkStructureType*)forUnmarshaling->pNext = extType;
23570         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23571     }
23572     vkStream->read((VkIOSSurfaceCreateFlagsMVK*)&forUnmarshaling->flags,
23573                    sizeof(VkIOSSurfaceCreateFlagsMVK));
23574     // WARNING PTR CHECK
23575     forUnmarshaling->pView = (const void*)(uintptr_t)vkStream->getBe64();
23576     if (forUnmarshaling->pView) {
23577         vkStream->alloc((void**)&forUnmarshaling->pView, sizeof(const uint8_t));
23578         vkStream->read((void*)forUnmarshaling->pView, sizeof(const uint8_t));
23579     }
23580 }
23581 
23582 #endif
23583 #ifdef VK_MVK_macos_surface
marshal_VkMacOSSurfaceCreateInfoMVK(VulkanStream * vkStream,VkStructureType rootType,const VkMacOSSurfaceCreateInfoMVK * forMarshaling)23584 void marshal_VkMacOSSurfaceCreateInfoMVK(VulkanStream* vkStream, VkStructureType rootType,
23585                                          const VkMacOSSurfaceCreateInfoMVK* forMarshaling) {
23586     (void)rootType;
23587     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23588     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23589         rootType = forMarshaling->sType;
23590     }
23591     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23592     vkStream->write((VkMacOSSurfaceCreateFlagsMVK*)&forMarshaling->flags,
23593                     sizeof(VkMacOSSurfaceCreateFlagsMVK));
23594     // WARNING PTR CHECK
23595     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pView;
23596     vkStream->putBe64(cgen_var_0);
23597     if (forMarshaling->pView) {
23598         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
23599     }
23600 }
23601 
unmarshal_VkMacOSSurfaceCreateInfoMVK(VulkanStream * vkStream,VkStructureType rootType,VkMacOSSurfaceCreateInfoMVK * forUnmarshaling)23602 void unmarshal_VkMacOSSurfaceCreateInfoMVK(VulkanStream* vkStream, VkStructureType rootType,
23603                                            VkMacOSSurfaceCreateInfoMVK* forUnmarshaling) {
23604     (void)rootType;
23605     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23606     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23607         rootType = forUnmarshaling->sType;
23608     }
23609     size_t pNext_size;
23610     pNext_size = vkStream->getBe32();
23611     forUnmarshaling->pNext = nullptr;
23612     if (pNext_size) {
23613         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23614         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23615         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23616         vkStream->alloc((void**)&forUnmarshaling->pNext,
23617                         goldfish_vk_extension_struct_size_with_stream_features(
23618                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23619         *(VkStructureType*)forUnmarshaling->pNext = extType;
23620         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23621     }
23622     vkStream->read((VkMacOSSurfaceCreateFlagsMVK*)&forUnmarshaling->flags,
23623                    sizeof(VkMacOSSurfaceCreateFlagsMVK));
23624     // WARNING PTR CHECK
23625     forUnmarshaling->pView = (const void*)(uintptr_t)vkStream->getBe64();
23626     if (forUnmarshaling->pView) {
23627         vkStream->alloc((void**)&forUnmarshaling->pView, sizeof(const uint8_t));
23628         vkStream->read((void*)forUnmarshaling->pView, sizeof(const uint8_t));
23629     }
23630 }
23631 
23632 #endif
23633 #ifdef VK_EXT_external_memory_dma_buf
23634 #endif
23635 #ifdef VK_EXT_queue_family_foreign
23636 #endif
23637 #ifdef VK_EXT_debug_utils
marshal_VkDebugUtilsLabelEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugUtilsLabelEXT * forMarshaling)23638 void marshal_VkDebugUtilsLabelEXT(VulkanStream* vkStream, VkStructureType rootType,
23639                                   const VkDebugUtilsLabelEXT* forMarshaling) {
23640     (void)rootType;
23641     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23642     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23643         rootType = forMarshaling->sType;
23644     }
23645     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23646     vkStream->putString(forMarshaling->pLabelName);
23647     vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
23648 }
23649 
unmarshal_VkDebugUtilsLabelEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsLabelEXT * forUnmarshaling)23650 void unmarshal_VkDebugUtilsLabelEXT(VulkanStream* vkStream, VkStructureType rootType,
23651                                     VkDebugUtilsLabelEXT* forUnmarshaling) {
23652     (void)rootType;
23653     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23654     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23655         rootType = forUnmarshaling->sType;
23656     }
23657     size_t pNext_size;
23658     pNext_size = vkStream->getBe32();
23659     forUnmarshaling->pNext = nullptr;
23660     if (pNext_size) {
23661         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23662         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23663         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23664         vkStream->alloc((void**)&forUnmarshaling->pNext,
23665                         goldfish_vk_extension_struct_size_with_stream_features(
23666                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23667         *(VkStructureType*)forUnmarshaling->pNext = extType;
23668         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23669     }
23670     vkStream->loadStringInPlace((char**)&forUnmarshaling->pLabelName);
23671     vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
23672 }
23673 
marshal_VkDebugUtilsObjectNameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugUtilsObjectNameInfoEXT * forMarshaling)23674 void marshal_VkDebugUtilsObjectNameInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
23675                                            const VkDebugUtilsObjectNameInfoEXT* forMarshaling) {
23676     (void)rootType;
23677     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23678     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23679         rootType = forMarshaling->sType;
23680     }
23681     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23682     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
23683     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
23684     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
23685         // WARNING PTR CHECK
23686         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pObjectName;
23687         vkStream->putBe64(cgen_var_0);
23688         if (forMarshaling->pObjectName) {
23689             vkStream->putString(forMarshaling->pObjectName);
23690         }
23691     } else {
23692         vkStream->putString(forMarshaling->pObjectName);
23693     }
23694 }
23695 
unmarshal_VkDebugUtilsObjectNameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsObjectNameInfoEXT * forUnmarshaling)23696 void unmarshal_VkDebugUtilsObjectNameInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
23697                                              VkDebugUtilsObjectNameInfoEXT* forUnmarshaling) {
23698     (void)rootType;
23699     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23700     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23701         rootType = forUnmarshaling->sType;
23702     }
23703     size_t pNext_size;
23704     pNext_size = vkStream->getBe32();
23705     forUnmarshaling->pNext = nullptr;
23706     if (pNext_size) {
23707         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23708         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23709         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23710         vkStream->alloc((void**)&forUnmarshaling->pNext,
23711                         goldfish_vk_extension_struct_size_with_stream_features(
23712                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23713         *(VkStructureType*)forUnmarshaling->pNext = extType;
23714         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23715     }
23716     vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
23717     vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
23718     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
23719         // WARNING PTR CHECK
23720         forUnmarshaling->pObjectName = (const char*)(uintptr_t)vkStream->getBe64();
23721         if (forUnmarshaling->pObjectName) {
23722             vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
23723         }
23724     } else {
23725         vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
23726     }
23727 }
23728 
marshal_VkDebugUtilsMessengerCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugUtilsMessengerCallbackDataEXT * forMarshaling)23729 void marshal_VkDebugUtilsMessengerCallbackDataEXT(
23730     VulkanStream* vkStream, VkStructureType rootType,
23731     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling) {
23732     (void)rootType;
23733     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23734     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23735         rootType = forMarshaling->sType;
23736     }
23737     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23738     vkStream->write((VkDebugUtilsMessengerCallbackDataFlagsEXT*)&forMarshaling->flags,
23739                     sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT));
23740     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
23741         // WARNING PTR CHECK
23742         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pMessageIdName;
23743         vkStream->putBe64(cgen_var_0);
23744         if (forMarshaling->pMessageIdName) {
23745             vkStream->putString(forMarshaling->pMessageIdName);
23746         }
23747     } else {
23748         vkStream->putString(forMarshaling->pMessageIdName);
23749     }
23750     vkStream->write((int32_t*)&forMarshaling->messageIdNumber, sizeof(int32_t));
23751     vkStream->putString(forMarshaling->pMessage);
23752     vkStream->write((uint32_t*)&forMarshaling->queueLabelCount, sizeof(uint32_t));
23753     if (forMarshaling) {
23754         for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueLabelCount; ++i) {
23755             marshal_VkDebugUtilsLabelEXT(
23756                 vkStream, rootType, (const VkDebugUtilsLabelEXT*)(forMarshaling->pQueueLabels + i));
23757         }
23758     }
23759     vkStream->write((uint32_t*)&forMarshaling->cmdBufLabelCount, sizeof(uint32_t));
23760     if (forMarshaling) {
23761         for (uint32_t i = 0; i < (uint32_t)forMarshaling->cmdBufLabelCount; ++i) {
23762             marshal_VkDebugUtilsLabelEXT(
23763                 vkStream, rootType,
23764                 (const VkDebugUtilsLabelEXT*)(forMarshaling->pCmdBufLabels + i));
23765         }
23766     }
23767     vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
23768     if (forMarshaling) {
23769         for (uint32_t i = 0; i < (uint32_t)forMarshaling->objectCount; ++i) {
23770             marshal_VkDebugUtilsObjectNameInfoEXT(
23771                 vkStream, rootType,
23772                 (const VkDebugUtilsObjectNameInfoEXT*)(forMarshaling->pObjects + i));
23773         }
23774     }
23775 }
23776 
unmarshal_VkDebugUtilsMessengerCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsMessengerCallbackDataEXT * forUnmarshaling)23777 void unmarshal_VkDebugUtilsMessengerCallbackDataEXT(
23778     VulkanStream* vkStream, VkStructureType rootType,
23779     VkDebugUtilsMessengerCallbackDataEXT* forUnmarshaling) {
23780     (void)rootType;
23781     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23782     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23783         rootType = forUnmarshaling->sType;
23784     }
23785     size_t pNext_size;
23786     pNext_size = vkStream->getBe32();
23787     forUnmarshaling->pNext = nullptr;
23788     if (pNext_size) {
23789         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23790         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23791         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23792         vkStream->alloc((void**)&forUnmarshaling->pNext,
23793                         goldfish_vk_extension_struct_size_with_stream_features(
23794                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23795         *(VkStructureType*)forUnmarshaling->pNext = extType;
23796         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23797     }
23798     vkStream->read((VkDebugUtilsMessengerCallbackDataFlagsEXT*)&forUnmarshaling->flags,
23799                    sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT));
23800     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
23801         // WARNING PTR CHECK
23802         forUnmarshaling->pMessageIdName = (const char*)(uintptr_t)vkStream->getBe64();
23803         if (forUnmarshaling->pMessageIdName) {
23804             vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessageIdName);
23805         }
23806     } else {
23807         vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessageIdName);
23808     }
23809     vkStream->read((int32_t*)&forUnmarshaling->messageIdNumber, sizeof(int32_t));
23810     vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessage);
23811     vkStream->read((uint32_t*)&forUnmarshaling->queueLabelCount, sizeof(uint32_t));
23812     vkStream->alloc((void**)&forUnmarshaling->pQueueLabels,
23813                     forUnmarshaling->queueLabelCount * sizeof(const VkDebugUtilsLabelEXT));
23814     if (forUnmarshaling) {
23815         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueLabelCount; ++i) {
23816             unmarshal_VkDebugUtilsLabelEXT(
23817                 vkStream, rootType, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pQueueLabels + i));
23818         }
23819     }
23820     vkStream->read((uint32_t*)&forUnmarshaling->cmdBufLabelCount, sizeof(uint32_t));
23821     vkStream->alloc((void**)&forUnmarshaling->pCmdBufLabels,
23822                     forUnmarshaling->cmdBufLabelCount * sizeof(const VkDebugUtilsLabelEXT));
23823     if (forUnmarshaling) {
23824         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->cmdBufLabelCount; ++i) {
23825             unmarshal_VkDebugUtilsLabelEXT(
23826                 vkStream, rootType, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pCmdBufLabels + i));
23827         }
23828     }
23829     vkStream->read((uint32_t*)&forUnmarshaling->objectCount, sizeof(uint32_t));
23830     vkStream->alloc((void**)&forUnmarshaling->pObjects,
23831                     forUnmarshaling->objectCount * sizeof(const VkDebugUtilsObjectNameInfoEXT));
23832     if (forUnmarshaling) {
23833         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->objectCount; ++i) {
23834             unmarshal_VkDebugUtilsObjectNameInfoEXT(
23835                 vkStream, rootType,
23836                 (VkDebugUtilsObjectNameInfoEXT*)(forUnmarshaling->pObjects + i));
23837         }
23838     }
23839 }
23840 
marshal_VkDebugUtilsMessengerCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugUtilsMessengerCreateInfoEXT * forMarshaling)23841 void marshal_VkDebugUtilsMessengerCreateInfoEXT(
23842     VulkanStream* vkStream, VkStructureType rootType,
23843     const VkDebugUtilsMessengerCreateInfoEXT* forMarshaling) {
23844     (void)rootType;
23845     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23846     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23847         rootType = forMarshaling->sType;
23848     }
23849     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23850     vkStream->write((VkDebugUtilsMessengerCreateFlagsEXT*)&forMarshaling->flags,
23851                     sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
23852     vkStream->write((VkDebugUtilsMessageSeverityFlagsEXT*)&forMarshaling->messageSeverity,
23853                     sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
23854     vkStream->write((VkDebugUtilsMessageTypeFlagsEXT*)&forMarshaling->messageType,
23855                     sizeof(VkDebugUtilsMessageTypeFlagsEXT));
23856     uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
23857     vkStream->putBe64(cgen_var_0);
23858     // WARNING PTR CHECK
23859     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
23860     vkStream->putBe64(cgen_var_1);
23861     if (forMarshaling->pUserData) {
23862         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
23863     }
23864 }
23865 
unmarshal_VkDebugUtilsMessengerCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsMessengerCreateInfoEXT * forUnmarshaling)23866 void unmarshal_VkDebugUtilsMessengerCreateInfoEXT(
23867     VulkanStream* vkStream, VkStructureType rootType,
23868     VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling) {
23869     (void)rootType;
23870     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23871     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23872         rootType = forUnmarshaling->sType;
23873     }
23874     size_t pNext_size;
23875     pNext_size = vkStream->getBe32();
23876     forUnmarshaling->pNext = nullptr;
23877     if (pNext_size) {
23878         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23879         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23880         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23881         vkStream->alloc((void**)&forUnmarshaling->pNext,
23882                         goldfish_vk_extension_struct_size_with_stream_features(
23883                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23884         *(VkStructureType*)forUnmarshaling->pNext = extType;
23885         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23886     }
23887     vkStream->read((VkDebugUtilsMessengerCreateFlagsEXT*)&forUnmarshaling->flags,
23888                    sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
23889     vkStream->read((VkDebugUtilsMessageSeverityFlagsEXT*)&forUnmarshaling->messageSeverity,
23890                    sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
23891     vkStream->read((VkDebugUtilsMessageTypeFlagsEXT*)&forUnmarshaling->messageType,
23892                    sizeof(VkDebugUtilsMessageTypeFlagsEXT));
23893     forUnmarshaling->pfnUserCallback = (PFN_vkDebugUtilsMessengerCallbackEXT)vkStream->getBe64();
23894     // WARNING PTR CHECK
23895     forUnmarshaling->pUserData = (void*)(uintptr_t)vkStream->getBe64();
23896     if (forUnmarshaling->pUserData) {
23897         vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
23898         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
23899     }
23900 }
23901 
marshal_VkDebugUtilsObjectTagInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDebugUtilsObjectTagInfoEXT * forMarshaling)23902 void marshal_VkDebugUtilsObjectTagInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
23903                                           const VkDebugUtilsObjectTagInfoEXT* forMarshaling) {
23904     (void)rootType;
23905     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23906     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23907         rootType = forMarshaling->sType;
23908     }
23909     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23910     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
23911     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
23912     vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
23913     uint64_t cgen_var_0 = (uint64_t)forMarshaling->tagSize;
23914     vkStream->putBe64(cgen_var_0);
23915     vkStream->write((const void*)forMarshaling->pTag,
23916                     forMarshaling->tagSize * sizeof(const uint8_t));
23917 }
23918 
unmarshal_VkDebugUtilsObjectTagInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsObjectTagInfoEXT * forUnmarshaling)23919 void unmarshal_VkDebugUtilsObjectTagInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
23920                                             VkDebugUtilsObjectTagInfoEXT* forUnmarshaling) {
23921     (void)rootType;
23922     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23923     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23924         rootType = forUnmarshaling->sType;
23925     }
23926     size_t pNext_size;
23927     pNext_size = vkStream->getBe32();
23928     forUnmarshaling->pNext = nullptr;
23929     if (pNext_size) {
23930         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23931         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23932         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23933         vkStream->alloc((void**)&forUnmarshaling->pNext,
23934                         goldfish_vk_extension_struct_size_with_stream_features(
23935                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23936         *(VkStructureType*)forUnmarshaling->pNext = extType;
23937         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23938     }
23939     vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
23940     vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
23941     vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
23942     forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
23943     vkStream->alloc((void**)&forUnmarshaling->pTag,
23944                     forUnmarshaling->tagSize * sizeof(const uint8_t));
23945     vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
23946 }
23947 
23948 #endif
23949 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
marshal_VkAndroidHardwareBufferUsageANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkAndroidHardwareBufferUsageANDROID * forMarshaling)23950 void marshal_VkAndroidHardwareBufferUsageANDROID(
23951     VulkanStream* vkStream, VkStructureType rootType,
23952     const VkAndroidHardwareBufferUsageANDROID* forMarshaling) {
23953     (void)rootType;
23954     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23955     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23956         rootType = forMarshaling->sType;
23957     }
23958     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23959     vkStream->write((uint64_t*)&forMarshaling->androidHardwareBufferUsage, sizeof(uint64_t));
23960 }
23961 
unmarshal_VkAndroidHardwareBufferUsageANDROID(VulkanStream * vkStream,VkStructureType rootType,VkAndroidHardwareBufferUsageANDROID * forUnmarshaling)23962 void unmarshal_VkAndroidHardwareBufferUsageANDROID(
23963     VulkanStream* vkStream, VkStructureType rootType,
23964     VkAndroidHardwareBufferUsageANDROID* forUnmarshaling) {
23965     (void)rootType;
23966     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
23967     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23968         rootType = forUnmarshaling->sType;
23969     }
23970     size_t pNext_size;
23971     pNext_size = vkStream->getBe32();
23972     forUnmarshaling->pNext = nullptr;
23973     if (pNext_size) {
23974         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
23975         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
23976         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
23977         vkStream->alloc((void**)&forUnmarshaling->pNext,
23978                         goldfish_vk_extension_struct_size_with_stream_features(
23979                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
23980         *(VkStructureType*)forUnmarshaling->pNext = extType;
23981         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
23982     }
23983     vkStream->read((uint64_t*)&forUnmarshaling->androidHardwareBufferUsage, sizeof(uint64_t));
23984 }
23985 
marshal_VkAndroidHardwareBufferPropertiesANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkAndroidHardwareBufferPropertiesANDROID * forMarshaling)23986 void marshal_VkAndroidHardwareBufferPropertiesANDROID(
23987     VulkanStream* vkStream, VkStructureType rootType,
23988     const VkAndroidHardwareBufferPropertiesANDROID* forMarshaling) {
23989     (void)rootType;
23990     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
23991     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
23992         rootType = forMarshaling->sType;
23993     }
23994     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
23995     vkStream->write((VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
23996     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
23997 }
23998 
unmarshal_VkAndroidHardwareBufferPropertiesANDROID(VulkanStream * vkStream,VkStructureType rootType,VkAndroidHardwareBufferPropertiesANDROID * forUnmarshaling)23999 void unmarshal_VkAndroidHardwareBufferPropertiesANDROID(
24000     VulkanStream* vkStream, VkStructureType rootType,
24001     VkAndroidHardwareBufferPropertiesANDROID* forUnmarshaling) {
24002     (void)rootType;
24003     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24004     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24005         rootType = forUnmarshaling->sType;
24006     }
24007     size_t pNext_size;
24008     pNext_size = vkStream->getBe32();
24009     forUnmarshaling->pNext = nullptr;
24010     if (pNext_size) {
24011         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24012         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24013         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24014         vkStream->alloc((void**)&forUnmarshaling->pNext,
24015                         goldfish_vk_extension_struct_size_with_stream_features(
24016                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24017         *(VkStructureType*)forUnmarshaling->pNext = extType;
24018         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24019     }
24020     vkStream->read((VkDeviceSize*)&forUnmarshaling->allocationSize, sizeof(VkDeviceSize));
24021     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
24022 }
24023 
marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkAndroidHardwareBufferFormatPropertiesANDROID * forMarshaling)24024 void marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
24025     VulkanStream* vkStream, VkStructureType rootType,
24026     const VkAndroidHardwareBufferFormatPropertiesANDROID* forMarshaling) {
24027     (void)rootType;
24028     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24029     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24030         rootType = forMarshaling->sType;
24031     }
24032     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24033     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
24034     vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
24035     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->formatFeatures,
24036                     sizeof(VkFormatFeatureFlags));
24037     marshal_VkComponentMapping(
24038         vkStream, rootType,
24039         (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents));
24040     vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel,
24041                     sizeof(VkSamplerYcbcrModelConversion));
24042     vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange,
24043                     sizeof(VkSamplerYcbcrRange));
24044     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedXChromaOffset,
24045                     sizeof(VkChromaLocation));
24046     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedYChromaOffset,
24047                     sizeof(VkChromaLocation));
24048 }
24049 
unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(VulkanStream * vkStream,VkStructureType rootType,VkAndroidHardwareBufferFormatPropertiesANDROID * forUnmarshaling)24050 void unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
24051     VulkanStream* vkStream, VkStructureType rootType,
24052     VkAndroidHardwareBufferFormatPropertiesANDROID* forUnmarshaling) {
24053     (void)rootType;
24054     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24055     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24056         rootType = forUnmarshaling->sType;
24057     }
24058     size_t pNext_size;
24059     pNext_size = vkStream->getBe32();
24060     forUnmarshaling->pNext = nullptr;
24061     if (pNext_size) {
24062         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24063         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24064         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24065         vkStream->alloc((void**)&forUnmarshaling->pNext,
24066                         goldfish_vk_extension_struct_size_with_stream_features(
24067                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24068         *(VkStructureType*)forUnmarshaling->pNext = extType;
24069         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24070     }
24071     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
24072     vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
24073     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->formatFeatures,
24074                    sizeof(VkFormatFeatureFlags));
24075     unmarshal_VkComponentMapping(
24076         vkStream, rootType,
24077         (VkComponentMapping*)(&forUnmarshaling->samplerYcbcrConversionComponents));
24078     vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->suggestedYcbcrModel,
24079                    sizeof(VkSamplerYcbcrModelConversion));
24080     vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->suggestedYcbcrRange,
24081                    sizeof(VkSamplerYcbcrRange));
24082     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedXChromaOffset,
24083                    sizeof(VkChromaLocation));
24084     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedYChromaOffset,
24085                    sizeof(VkChromaLocation));
24086 }
24087 
marshal_VkImportAndroidHardwareBufferInfoANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkImportAndroidHardwareBufferInfoANDROID * forMarshaling)24088 void marshal_VkImportAndroidHardwareBufferInfoANDROID(
24089     VulkanStream* vkStream, VkStructureType rootType,
24090     const VkImportAndroidHardwareBufferInfoANDROID* forMarshaling) {
24091     (void)rootType;
24092     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24093     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24094         rootType = forMarshaling->sType;
24095     }
24096     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24097     vkStream->write((AHardwareBuffer*)forMarshaling->buffer, sizeof(AHardwareBuffer));
24098 }
24099 
unmarshal_VkImportAndroidHardwareBufferInfoANDROID(VulkanStream * vkStream,VkStructureType rootType,VkImportAndroidHardwareBufferInfoANDROID * forUnmarshaling)24100 void unmarshal_VkImportAndroidHardwareBufferInfoANDROID(
24101     VulkanStream* vkStream, VkStructureType rootType,
24102     VkImportAndroidHardwareBufferInfoANDROID* forUnmarshaling) {
24103     (void)rootType;
24104     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24105     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24106         rootType = forUnmarshaling->sType;
24107     }
24108     size_t pNext_size;
24109     pNext_size = vkStream->getBe32();
24110     forUnmarshaling->pNext = nullptr;
24111     if (pNext_size) {
24112         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24113         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24114         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24115         vkStream->alloc((void**)&forUnmarshaling->pNext,
24116                         goldfish_vk_extension_struct_size_with_stream_features(
24117                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24118         *(VkStructureType*)forUnmarshaling->pNext = extType;
24119         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24120     }
24121     vkStream->alloc((void**)&forUnmarshaling->buffer, sizeof(AHardwareBuffer));
24122     vkStream->read((AHardwareBuffer*)forUnmarshaling->buffer, sizeof(AHardwareBuffer));
24123 }
24124 
marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryGetAndroidHardwareBufferInfoANDROID * forMarshaling)24125 void marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
24126     VulkanStream* vkStream, VkStructureType rootType,
24127     const VkMemoryGetAndroidHardwareBufferInfoANDROID* forMarshaling) {
24128     (void)rootType;
24129     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24130     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24131         rootType = forMarshaling->sType;
24132     }
24133     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24134     uint64_t cgen_var_0;
24135     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
24136                                                              1);
24137     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
24138 }
24139 
unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(VulkanStream * vkStream,VkStructureType rootType,VkMemoryGetAndroidHardwareBufferInfoANDROID * forUnmarshaling)24140 void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
24141     VulkanStream* vkStream, VkStructureType rootType,
24142     VkMemoryGetAndroidHardwareBufferInfoANDROID* forUnmarshaling) {
24143     (void)rootType;
24144     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24145     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24146         rootType = forUnmarshaling->sType;
24147     }
24148     size_t pNext_size;
24149     pNext_size = vkStream->getBe32();
24150     forUnmarshaling->pNext = nullptr;
24151     if (pNext_size) {
24152         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24153         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24154         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24155         vkStream->alloc((void**)&forUnmarshaling->pNext,
24156                         goldfish_vk_extension_struct_size_with_stream_features(
24157                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24158         *(VkStructureType*)forUnmarshaling->pNext = extType;
24159         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24160     }
24161     uint64_t cgen_var_0;
24162     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
24163     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
24164         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
24165 }
24166 
marshal_VkExternalFormatANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkExternalFormatANDROID * forMarshaling)24167 void marshal_VkExternalFormatANDROID(VulkanStream* vkStream, VkStructureType rootType,
24168                                      const VkExternalFormatANDROID* forMarshaling) {
24169     (void)rootType;
24170     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24171     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24172         rootType = forMarshaling->sType;
24173     }
24174     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24175     vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
24176 }
24177 
unmarshal_VkExternalFormatANDROID(VulkanStream * vkStream,VkStructureType rootType,VkExternalFormatANDROID * forUnmarshaling)24178 void unmarshal_VkExternalFormatANDROID(VulkanStream* vkStream, VkStructureType rootType,
24179                                        VkExternalFormatANDROID* forUnmarshaling) {
24180     (void)rootType;
24181     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24182     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24183         rootType = forUnmarshaling->sType;
24184     }
24185     size_t pNext_size;
24186     pNext_size = vkStream->getBe32();
24187     forUnmarshaling->pNext = nullptr;
24188     if (pNext_size) {
24189         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24190         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24191         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24192         vkStream->alloc((void**)&forUnmarshaling->pNext,
24193                         goldfish_vk_extension_struct_size_with_stream_features(
24194                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24195         *(VkStructureType*)forUnmarshaling->pNext = extType;
24196         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24197     }
24198     vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
24199 }
24200 
marshal_VkAndroidHardwareBufferFormatProperties2ANDROID(VulkanStream * vkStream,VkStructureType rootType,const VkAndroidHardwareBufferFormatProperties2ANDROID * forMarshaling)24201 void marshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
24202     VulkanStream* vkStream, VkStructureType rootType,
24203     const VkAndroidHardwareBufferFormatProperties2ANDROID* forMarshaling) {
24204     (void)rootType;
24205     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24206     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24207         rootType = forMarshaling->sType;
24208     }
24209     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24210     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
24211     vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
24212     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->formatFeatures,
24213                     sizeof(VkFormatFeatureFlags2));
24214     marshal_VkComponentMapping(
24215         vkStream, rootType,
24216         (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents));
24217     vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel,
24218                     sizeof(VkSamplerYcbcrModelConversion));
24219     vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange,
24220                     sizeof(VkSamplerYcbcrRange));
24221     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedXChromaOffset,
24222                     sizeof(VkChromaLocation));
24223     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedYChromaOffset,
24224                     sizeof(VkChromaLocation));
24225 }
24226 
unmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(VulkanStream * vkStream,VkStructureType rootType,VkAndroidHardwareBufferFormatProperties2ANDROID * forUnmarshaling)24227 void unmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
24228     VulkanStream* vkStream, VkStructureType rootType,
24229     VkAndroidHardwareBufferFormatProperties2ANDROID* forUnmarshaling) {
24230     (void)rootType;
24231     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24232     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24233         rootType = forUnmarshaling->sType;
24234     }
24235     size_t pNext_size;
24236     pNext_size = vkStream->getBe32();
24237     forUnmarshaling->pNext = nullptr;
24238     if (pNext_size) {
24239         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24240         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24241         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24242         vkStream->alloc((void**)&forUnmarshaling->pNext,
24243                         goldfish_vk_extension_struct_size_with_stream_features(
24244                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24245         *(VkStructureType*)forUnmarshaling->pNext = extType;
24246         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24247     }
24248     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
24249     vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
24250     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->formatFeatures,
24251                    sizeof(VkFormatFeatureFlags2));
24252     unmarshal_VkComponentMapping(
24253         vkStream, rootType,
24254         (VkComponentMapping*)(&forUnmarshaling->samplerYcbcrConversionComponents));
24255     vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->suggestedYcbcrModel,
24256                    sizeof(VkSamplerYcbcrModelConversion));
24257     vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->suggestedYcbcrRange,
24258                    sizeof(VkSamplerYcbcrRange));
24259     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedXChromaOffset,
24260                    sizeof(VkChromaLocation));
24261     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedYChromaOffset,
24262                    sizeof(VkChromaLocation));
24263 }
24264 
24265 #endif
24266 #ifdef VK_EXT_sampler_filter_minmax
24267 #endif
24268 #ifdef VK_AMD_gpu_shader_int16
24269 #endif
24270 #ifdef VK_AMD_mixed_attachment_samples
24271 #endif
24272 #ifdef VK_AMD_shader_fragment_mask
24273 #endif
24274 #ifdef VK_EXT_inline_uniform_block
24275 #endif
24276 #ifdef VK_EXT_shader_stencil_export
24277 #endif
24278 #ifdef VK_EXT_sample_locations
marshal_VkSampleLocationEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSampleLocationEXT * forMarshaling)24279 void marshal_VkSampleLocationEXT(VulkanStream* vkStream, VkStructureType rootType,
24280                                  const VkSampleLocationEXT* forMarshaling) {
24281     (void)rootType;
24282     vkStream->write((float*)&forMarshaling->x, sizeof(float));
24283     vkStream->write((float*)&forMarshaling->y, sizeof(float));
24284 }
24285 
unmarshal_VkSampleLocationEXT(VulkanStream * vkStream,VkStructureType rootType,VkSampleLocationEXT * forUnmarshaling)24286 void unmarshal_VkSampleLocationEXT(VulkanStream* vkStream, VkStructureType rootType,
24287                                    VkSampleLocationEXT* forUnmarshaling) {
24288     (void)rootType;
24289     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
24290     vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
24291 }
24292 
marshal_VkSampleLocationsInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSampleLocationsInfoEXT * forMarshaling)24293 void marshal_VkSampleLocationsInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
24294                                       const VkSampleLocationsInfoEXT* forMarshaling) {
24295     (void)rootType;
24296     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24297     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24298         rootType = forMarshaling->sType;
24299     }
24300     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24301     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->sampleLocationsPerPixel,
24302                     sizeof(VkSampleCountFlagBits));
24303     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->sampleLocationGridSize));
24304     vkStream->write((uint32_t*)&forMarshaling->sampleLocationsCount, sizeof(uint32_t));
24305     if (forMarshaling) {
24306         for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationsCount; ++i) {
24307             marshal_VkSampleLocationEXT(
24308                 vkStream, rootType,
24309                 (const VkSampleLocationEXT*)(forMarshaling->pSampleLocations + i));
24310         }
24311     }
24312 }
24313 
unmarshal_VkSampleLocationsInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSampleLocationsInfoEXT * forUnmarshaling)24314 void unmarshal_VkSampleLocationsInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
24315                                         VkSampleLocationsInfoEXT* forUnmarshaling) {
24316     (void)rootType;
24317     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24318     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24319         rootType = forUnmarshaling->sType;
24320     }
24321     size_t pNext_size;
24322     pNext_size = vkStream->getBe32();
24323     forUnmarshaling->pNext = nullptr;
24324     if (pNext_size) {
24325         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24326         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24327         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24328         vkStream->alloc((void**)&forUnmarshaling->pNext,
24329                         goldfish_vk_extension_struct_size_with_stream_features(
24330                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24331         *(VkStructureType*)forUnmarshaling->pNext = extType;
24332         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24333     }
24334     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->sampleLocationsPerPixel,
24335                    sizeof(VkSampleCountFlagBits));
24336     unmarshal_VkExtent2D(vkStream, rootType,
24337                          (VkExtent2D*)(&forUnmarshaling->sampleLocationGridSize));
24338     vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationsCount, sizeof(uint32_t));
24339     vkStream->alloc((void**)&forUnmarshaling->pSampleLocations,
24340                     forUnmarshaling->sampleLocationsCount * sizeof(const VkSampleLocationEXT));
24341     if (forUnmarshaling) {
24342         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->sampleLocationsCount; ++i) {
24343             unmarshal_VkSampleLocationEXT(
24344                 vkStream, rootType, (VkSampleLocationEXT*)(forUnmarshaling->pSampleLocations + i));
24345         }
24346     }
24347 }
24348 
marshal_VkAttachmentSampleLocationsEXT(VulkanStream * vkStream,VkStructureType rootType,const VkAttachmentSampleLocationsEXT * forMarshaling)24349 void marshal_VkAttachmentSampleLocationsEXT(VulkanStream* vkStream, VkStructureType rootType,
24350                                             const VkAttachmentSampleLocationsEXT* forMarshaling) {
24351     (void)rootType;
24352     vkStream->write((uint32_t*)&forMarshaling->attachmentIndex, sizeof(uint32_t));
24353     marshal_VkSampleLocationsInfoEXT(
24354         vkStream, rootType, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
24355 }
24356 
unmarshal_VkAttachmentSampleLocationsEXT(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentSampleLocationsEXT * forUnmarshaling)24357 void unmarshal_VkAttachmentSampleLocationsEXT(VulkanStream* vkStream, VkStructureType rootType,
24358                                               VkAttachmentSampleLocationsEXT* forUnmarshaling) {
24359     (void)rootType;
24360     vkStream->read((uint32_t*)&forUnmarshaling->attachmentIndex, sizeof(uint32_t));
24361     unmarshal_VkSampleLocationsInfoEXT(
24362         vkStream, rootType, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
24363 }
24364 
marshal_VkSubpassSampleLocationsEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassSampleLocationsEXT * forMarshaling)24365 void marshal_VkSubpassSampleLocationsEXT(VulkanStream* vkStream, VkStructureType rootType,
24366                                          const VkSubpassSampleLocationsEXT* forMarshaling) {
24367     (void)rootType;
24368     vkStream->write((uint32_t*)&forMarshaling->subpassIndex, sizeof(uint32_t));
24369     marshal_VkSampleLocationsInfoEXT(
24370         vkStream, rootType, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
24371 }
24372 
unmarshal_VkSubpassSampleLocationsEXT(VulkanStream * vkStream,VkStructureType rootType,VkSubpassSampleLocationsEXT * forUnmarshaling)24373 void unmarshal_VkSubpassSampleLocationsEXT(VulkanStream* vkStream, VkStructureType rootType,
24374                                            VkSubpassSampleLocationsEXT* forUnmarshaling) {
24375     (void)rootType;
24376     vkStream->read((uint32_t*)&forUnmarshaling->subpassIndex, sizeof(uint32_t));
24377     unmarshal_VkSampleLocationsInfoEXT(
24378         vkStream, rootType, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
24379 }
24380 
marshal_VkRenderPassSampleLocationsBeginInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassSampleLocationsBeginInfoEXT * forMarshaling)24381 void marshal_VkRenderPassSampleLocationsBeginInfoEXT(
24382     VulkanStream* vkStream, VkStructureType rootType,
24383     const VkRenderPassSampleLocationsBeginInfoEXT* forMarshaling) {
24384     (void)rootType;
24385     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24386     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24387         rootType = forMarshaling->sType;
24388     }
24389     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24390     vkStream->write((uint32_t*)&forMarshaling->attachmentInitialSampleLocationsCount,
24391                     sizeof(uint32_t));
24392     if (forMarshaling) {
24393         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentInitialSampleLocationsCount;
24394              ++i) {
24395             marshal_VkAttachmentSampleLocationsEXT(
24396                 vkStream, rootType,
24397                 (const VkAttachmentSampleLocationsEXT*)(forMarshaling
24398                                                             ->pAttachmentInitialSampleLocations +
24399                                                         i));
24400         }
24401     }
24402     vkStream->write((uint32_t*)&forMarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
24403     if (forMarshaling) {
24404         for (uint32_t i = 0; i < (uint32_t)forMarshaling->postSubpassSampleLocationsCount; ++i) {
24405             marshal_VkSubpassSampleLocationsEXT(
24406                 vkStream, rootType,
24407                 (const VkSubpassSampleLocationsEXT*)(forMarshaling->pPostSubpassSampleLocations +
24408                                                      i));
24409         }
24410     }
24411 }
24412 
unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassSampleLocationsBeginInfoEXT * forUnmarshaling)24413 void unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(
24414     VulkanStream* vkStream, VkStructureType rootType,
24415     VkRenderPassSampleLocationsBeginInfoEXT* forUnmarshaling) {
24416     (void)rootType;
24417     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24418     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24419         rootType = forUnmarshaling->sType;
24420     }
24421     size_t pNext_size;
24422     pNext_size = vkStream->getBe32();
24423     forUnmarshaling->pNext = nullptr;
24424     if (pNext_size) {
24425         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24426         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24427         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24428         vkStream->alloc((void**)&forUnmarshaling->pNext,
24429                         goldfish_vk_extension_struct_size_with_stream_features(
24430                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24431         *(VkStructureType*)forUnmarshaling->pNext = extType;
24432         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24433     }
24434     vkStream->read((uint32_t*)&forUnmarshaling->attachmentInitialSampleLocationsCount,
24435                    sizeof(uint32_t));
24436     vkStream->alloc((void**)&forUnmarshaling->pAttachmentInitialSampleLocations,
24437                     forUnmarshaling->attachmentInitialSampleLocationsCount *
24438                         sizeof(const VkAttachmentSampleLocationsEXT));
24439     if (forUnmarshaling) {
24440         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentInitialSampleLocationsCount;
24441              ++i) {
24442             unmarshal_VkAttachmentSampleLocationsEXT(
24443                 vkStream, rootType,
24444                 (VkAttachmentSampleLocationsEXT*)(forUnmarshaling
24445                                                       ->pAttachmentInitialSampleLocations +
24446                                                   i));
24447         }
24448     }
24449     vkStream->read((uint32_t*)&forUnmarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
24450     vkStream->alloc((void**)&forUnmarshaling->pPostSubpassSampleLocations,
24451                     forUnmarshaling->postSubpassSampleLocationsCount *
24452                         sizeof(const VkSubpassSampleLocationsEXT));
24453     if (forUnmarshaling) {
24454         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->postSubpassSampleLocationsCount; ++i) {
24455             unmarshal_VkSubpassSampleLocationsEXT(
24456                 vkStream, rootType,
24457                 (VkSubpassSampleLocationsEXT*)(forUnmarshaling->pPostSubpassSampleLocations + i));
24458         }
24459     }
24460 }
24461 
marshal_VkPipelineSampleLocationsStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineSampleLocationsStateCreateInfoEXT * forMarshaling)24462 void marshal_VkPipelineSampleLocationsStateCreateInfoEXT(
24463     VulkanStream* vkStream, VkStructureType rootType,
24464     const VkPipelineSampleLocationsStateCreateInfoEXT* forMarshaling) {
24465     (void)rootType;
24466     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24467     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24468         rootType = forMarshaling->sType;
24469     }
24470     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24471     vkStream->write((VkBool32*)&forMarshaling->sampleLocationsEnable, sizeof(VkBool32));
24472     marshal_VkSampleLocationsInfoEXT(
24473         vkStream, rootType, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
24474 }
24475 
unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineSampleLocationsStateCreateInfoEXT * forUnmarshaling)24476 void unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(
24477     VulkanStream* vkStream, VkStructureType rootType,
24478     VkPipelineSampleLocationsStateCreateInfoEXT* forUnmarshaling) {
24479     (void)rootType;
24480     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24481     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24482         rootType = forUnmarshaling->sType;
24483     }
24484     size_t pNext_size;
24485     pNext_size = vkStream->getBe32();
24486     forUnmarshaling->pNext = nullptr;
24487     if (pNext_size) {
24488         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24489         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24490         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24491         vkStream->alloc((void**)&forUnmarshaling->pNext,
24492                         goldfish_vk_extension_struct_size_with_stream_features(
24493                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24494         *(VkStructureType*)forUnmarshaling->pNext = extType;
24495         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24496     }
24497     vkStream->read((VkBool32*)&forUnmarshaling->sampleLocationsEnable, sizeof(VkBool32));
24498     unmarshal_VkSampleLocationsInfoEXT(
24499         vkStream, rootType, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
24500 }
24501 
marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSampleLocationsPropertiesEXT * forMarshaling)24502 void marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
24503     VulkanStream* vkStream, VkStructureType rootType,
24504     const VkPhysicalDeviceSampleLocationsPropertiesEXT* forMarshaling) {
24505     (void)rootType;
24506     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24507     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24508         rootType = forMarshaling->sType;
24509     }
24510     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24511     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleLocationSampleCounts,
24512                     sizeof(VkSampleCountFlags));
24513     marshal_VkExtent2D(vkStream, rootType,
24514                        (VkExtent2D*)(&forMarshaling->maxSampleLocationGridSize));
24515     vkStream->write((float*)forMarshaling->sampleLocationCoordinateRange, 2 * sizeof(float));
24516     vkStream->write((uint32_t*)&forMarshaling->sampleLocationSubPixelBits, sizeof(uint32_t));
24517     vkStream->write((VkBool32*)&forMarshaling->variableSampleLocations, sizeof(VkBool32));
24518 }
24519 
unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSampleLocationsPropertiesEXT * forUnmarshaling)24520 void unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
24521     VulkanStream* vkStream, VkStructureType rootType,
24522     VkPhysicalDeviceSampleLocationsPropertiesEXT* forUnmarshaling) {
24523     (void)rootType;
24524     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24525     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24526         rootType = forUnmarshaling->sType;
24527     }
24528     size_t pNext_size;
24529     pNext_size = vkStream->getBe32();
24530     forUnmarshaling->pNext = nullptr;
24531     if (pNext_size) {
24532         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24533         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24534         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24535         vkStream->alloc((void**)&forUnmarshaling->pNext,
24536                         goldfish_vk_extension_struct_size_with_stream_features(
24537                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24538         *(VkStructureType*)forUnmarshaling->pNext = extType;
24539         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24540     }
24541     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleLocationSampleCounts,
24542                    sizeof(VkSampleCountFlags));
24543     unmarshal_VkExtent2D(vkStream, rootType,
24544                          (VkExtent2D*)(&forUnmarshaling->maxSampleLocationGridSize));
24545     vkStream->read((float*)forUnmarshaling->sampleLocationCoordinateRange, 2 * sizeof(float));
24546     vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationSubPixelBits, sizeof(uint32_t));
24547     vkStream->read((VkBool32*)&forUnmarshaling->variableSampleLocations, sizeof(VkBool32));
24548 }
24549 
marshal_VkMultisamplePropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMultisamplePropertiesEXT * forMarshaling)24550 void marshal_VkMultisamplePropertiesEXT(VulkanStream* vkStream, VkStructureType rootType,
24551                                         const VkMultisamplePropertiesEXT* forMarshaling) {
24552     (void)rootType;
24553     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24554     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24555         rootType = forMarshaling->sType;
24556     }
24557     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24558     marshal_VkExtent2D(vkStream, rootType,
24559                        (VkExtent2D*)(&forMarshaling->maxSampleLocationGridSize));
24560 }
24561 
unmarshal_VkMultisamplePropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkMultisamplePropertiesEXT * forUnmarshaling)24562 void unmarshal_VkMultisamplePropertiesEXT(VulkanStream* vkStream, VkStructureType rootType,
24563                                           VkMultisamplePropertiesEXT* forUnmarshaling) {
24564     (void)rootType;
24565     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24566     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24567         rootType = forUnmarshaling->sType;
24568     }
24569     size_t pNext_size;
24570     pNext_size = vkStream->getBe32();
24571     forUnmarshaling->pNext = nullptr;
24572     if (pNext_size) {
24573         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24574         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24575         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24576         vkStream->alloc((void**)&forUnmarshaling->pNext,
24577                         goldfish_vk_extension_struct_size_with_stream_features(
24578                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24579         *(VkStructureType*)forUnmarshaling->pNext = extType;
24580         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24581     }
24582     unmarshal_VkExtent2D(vkStream, rootType,
24583                          (VkExtent2D*)(&forUnmarshaling->maxSampleLocationGridSize));
24584 }
24585 
24586 #endif
24587 #ifdef VK_EXT_blend_operation_advanced
marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * forMarshaling)24588 void marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
24589     VulkanStream* vkStream, VkStructureType rootType,
24590     const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forMarshaling) {
24591     (void)rootType;
24592     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24593     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24594         rootType = forMarshaling->sType;
24595     }
24596     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24597     vkStream->write((VkBool32*)&forMarshaling->advancedBlendCoherentOperations, sizeof(VkBool32));
24598 }
24599 
unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * forUnmarshaling)24600 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
24601     VulkanStream* vkStream, VkStructureType rootType,
24602     VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forUnmarshaling) {
24603     (void)rootType;
24604     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24605     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24606         rootType = forUnmarshaling->sType;
24607     }
24608     size_t pNext_size;
24609     pNext_size = vkStream->getBe32();
24610     forUnmarshaling->pNext = nullptr;
24611     if (pNext_size) {
24612         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24613         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24614         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24615         vkStream->alloc((void**)&forUnmarshaling->pNext,
24616                         goldfish_vk_extension_struct_size_with_stream_features(
24617                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24618         *(VkStructureType*)forUnmarshaling->pNext = extType;
24619         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24620     }
24621     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendCoherentOperations, sizeof(VkBool32));
24622 }
24623 
marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * forMarshaling)24624 void marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
24625     VulkanStream* vkStream, VkStructureType rootType,
24626     const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forMarshaling) {
24627     (void)rootType;
24628     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24629     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24630         rootType = forMarshaling->sType;
24631     }
24632     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24633     vkStream->write((uint32_t*)&forMarshaling->advancedBlendMaxColorAttachments, sizeof(uint32_t));
24634     vkStream->write((VkBool32*)&forMarshaling->advancedBlendIndependentBlend, sizeof(VkBool32));
24635     vkStream->write((VkBool32*)&forMarshaling->advancedBlendNonPremultipliedSrcColor,
24636                     sizeof(VkBool32));
24637     vkStream->write((VkBool32*)&forMarshaling->advancedBlendNonPremultipliedDstColor,
24638                     sizeof(VkBool32));
24639     vkStream->write((VkBool32*)&forMarshaling->advancedBlendCorrelatedOverlap, sizeof(VkBool32));
24640     vkStream->write((VkBool32*)&forMarshaling->advancedBlendAllOperations, sizeof(VkBool32));
24641 }
24642 
unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * forUnmarshaling)24643 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
24644     VulkanStream* vkStream, VkStructureType rootType,
24645     VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forUnmarshaling) {
24646     (void)rootType;
24647     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24648     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24649         rootType = forUnmarshaling->sType;
24650     }
24651     size_t pNext_size;
24652     pNext_size = vkStream->getBe32();
24653     forUnmarshaling->pNext = nullptr;
24654     if (pNext_size) {
24655         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24656         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24657         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24658         vkStream->alloc((void**)&forUnmarshaling->pNext,
24659                         goldfish_vk_extension_struct_size_with_stream_features(
24660                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24661         *(VkStructureType*)forUnmarshaling->pNext = extType;
24662         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24663     }
24664     vkStream->read((uint32_t*)&forUnmarshaling->advancedBlendMaxColorAttachments, sizeof(uint32_t));
24665     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendIndependentBlend, sizeof(VkBool32));
24666     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendNonPremultipliedSrcColor,
24667                    sizeof(VkBool32));
24668     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendNonPremultipliedDstColor,
24669                    sizeof(VkBool32));
24670     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendCorrelatedOverlap, sizeof(VkBool32));
24671     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendAllOperations, sizeof(VkBool32));
24672 }
24673 
marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineColorBlendAdvancedStateCreateInfoEXT * forMarshaling)24674 void marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
24675     VulkanStream* vkStream, VkStructureType rootType,
24676     const VkPipelineColorBlendAdvancedStateCreateInfoEXT* forMarshaling) {
24677     (void)rootType;
24678     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24679     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24680         rootType = forMarshaling->sType;
24681     }
24682     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24683     vkStream->write((VkBool32*)&forMarshaling->srcPremultiplied, sizeof(VkBool32));
24684     vkStream->write((VkBool32*)&forMarshaling->dstPremultiplied, sizeof(VkBool32));
24685     vkStream->write((VkBlendOverlapEXT*)&forMarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
24686 }
24687 
unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineColorBlendAdvancedStateCreateInfoEXT * forUnmarshaling)24688 void unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
24689     VulkanStream* vkStream, VkStructureType rootType,
24690     VkPipelineColorBlendAdvancedStateCreateInfoEXT* forUnmarshaling) {
24691     (void)rootType;
24692     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24693     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24694         rootType = forUnmarshaling->sType;
24695     }
24696     size_t pNext_size;
24697     pNext_size = vkStream->getBe32();
24698     forUnmarshaling->pNext = nullptr;
24699     if (pNext_size) {
24700         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24701         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24702         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24703         vkStream->alloc((void**)&forUnmarshaling->pNext,
24704                         goldfish_vk_extension_struct_size_with_stream_features(
24705                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24706         *(VkStructureType*)forUnmarshaling->pNext = extType;
24707         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24708     }
24709     vkStream->read((VkBool32*)&forUnmarshaling->srcPremultiplied, sizeof(VkBool32));
24710     vkStream->read((VkBool32*)&forUnmarshaling->dstPremultiplied, sizeof(VkBool32));
24711     vkStream->read((VkBlendOverlapEXT*)&forUnmarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
24712 }
24713 
24714 #endif
24715 #ifdef VK_NV_fragment_coverage_to_color
marshal_VkPipelineCoverageToColorStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCoverageToColorStateCreateInfoNV * forMarshaling)24716 void marshal_VkPipelineCoverageToColorStateCreateInfoNV(
24717     VulkanStream* vkStream, VkStructureType rootType,
24718     const VkPipelineCoverageToColorStateCreateInfoNV* forMarshaling) {
24719     (void)rootType;
24720     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24721     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24722         rootType = forMarshaling->sType;
24723     }
24724     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24725     vkStream->write((VkPipelineCoverageToColorStateCreateFlagsNV*)&forMarshaling->flags,
24726                     sizeof(VkPipelineCoverageToColorStateCreateFlagsNV));
24727     vkStream->write((VkBool32*)&forMarshaling->coverageToColorEnable, sizeof(VkBool32));
24728     vkStream->write((uint32_t*)&forMarshaling->coverageToColorLocation, sizeof(uint32_t));
24729 }
24730 
unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCoverageToColorStateCreateInfoNV * forUnmarshaling)24731 void unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(
24732     VulkanStream* vkStream, VkStructureType rootType,
24733     VkPipelineCoverageToColorStateCreateInfoNV* forUnmarshaling) {
24734     (void)rootType;
24735     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24736     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24737         rootType = forUnmarshaling->sType;
24738     }
24739     size_t pNext_size;
24740     pNext_size = vkStream->getBe32();
24741     forUnmarshaling->pNext = nullptr;
24742     if (pNext_size) {
24743         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24744         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24745         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24746         vkStream->alloc((void**)&forUnmarshaling->pNext,
24747                         goldfish_vk_extension_struct_size_with_stream_features(
24748                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24749         *(VkStructureType*)forUnmarshaling->pNext = extType;
24750         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24751     }
24752     vkStream->read((VkPipelineCoverageToColorStateCreateFlagsNV*)&forUnmarshaling->flags,
24753                    sizeof(VkPipelineCoverageToColorStateCreateFlagsNV));
24754     vkStream->read((VkBool32*)&forUnmarshaling->coverageToColorEnable, sizeof(VkBool32));
24755     vkStream->read((uint32_t*)&forUnmarshaling->coverageToColorLocation, sizeof(uint32_t));
24756 }
24757 
24758 #endif
24759 #ifdef VK_NV_framebuffer_mixed_samples
marshal_VkPipelineCoverageModulationStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCoverageModulationStateCreateInfoNV * forMarshaling)24760 void marshal_VkPipelineCoverageModulationStateCreateInfoNV(
24761     VulkanStream* vkStream, VkStructureType rootType,
24762     const VkPipelineCoverageModulationStateCreateInfoNV* forMarshaling) {
24763     (void)rootType;
24764     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24765     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24766         rootType = forMarshaling->sType;
24767     }
24768     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24769     vkStream->write((VkPipelineCoverageModulationStateCreateFlagsNV*)&forMarshaling->flags,
24770                     sizeof(VkPipelineCoverageModulationStateCreateFlagsNV));
24771     vkStream->write((VkCoverageModulationModeNV*)&forMarshaling->coverageModulationMode,
24772                     sizeof(VkCoverageModulationModeNV));
24773     vkStream->write((VkBool32*)&forMarshaling->coverageModulationTableEnable, sizeof(VkBool32));
24774     vkStream->write((uint32_t*)&forMarshaling->coverageModulationTableCount, sizeof(uint32_t));
24775     // WARNING PTR CHECK
24776     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
24777     vkStream->putBe64(cgen_var_0);
24778     if (forMarshaling->pCoverageModulationTable) {
24779         vkStream->write((const float*)forMarshaling->pCoverageModulationTable,
24780                         forMarshaling->coverageModulationTableCount * sizeof(const float));
24781     }
24782 }
24783 
unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCoverageModulationStateCreateInfoNV * forUnmarshaling)24784 void unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(
24785     VulkanStream* vkStream, VkStructureType rootType,
24786     VkPipelineCoverageModulationStateCreateInfoNV* forUnmarshaling) {
24787     (void)rootType;
24788     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24789     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24790         rootType = forUnmarshaling->sType;
24791     }
24792     size_t pNext_size;
24793     pNext_size = vkStream->getBe32();
24794     forUnmarshaling->pNext = nullptr;
24795     if (pNext_size) {
24796         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24797         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24798         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24799         vkStream->alloc((void**)&forUnmarshaling->pNext,
24800                         goldfish_vk_extension_struct_size_with_stream_features(
24801                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24802         *(VkStructureType*)forUnmarshaling->pNext = extType;
24803         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24804     }
24805     vkStream->read((VkPipelineCoverageModulationStateCreateFlagsNV*)&forUnmarshaling->flags,
24806                    sizeof(VkPipelineCoverageModulationStateCreateFlagsNV));
24807     vkStream->read((VkCoverageModulationModeNV*)&forUnmarshaling->coverageModulationMode,
24808                    sizeof(VkCoverageModulationModeNV));
24809     vkStream->read((VkBool32*)&forUnmarshaling->coverageModulationTableEnable, sizeof(VkBool32));
24810     vkStream->read((uint32_t*)&forUnmarshaling->coverageModulationTableCount, sizeof(uint32_t));
24811     // WARNING PTR CHECK
24812     forUnmarshaling->pCoverageModulationTable = (const float*)(uintptr_t)vkStream->getBe64();
24813     if (forUnmarshaling->pCoverageModulationTable) {
24814         vkStream->alloc((void**)&forUnmarshaling->pCoverageModulationTable,
24815                         forUnmarshaling->coverageModulationTableCount * sizeof(const float));
24816         vkStream->read((float*)forUnmarshaling->pCoverageModulationTable,
24817                        forUnmarshaling->coverageModulationTableCount * sizeof(const float));
24818     }
24819 }
24820 
24821 #endif
24822 #ifdef VK_NV_fill_rectangle
24823 #endif
24824 #ifdef VK_NV_shader_sm_builtins
marshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV * forMarshaling)24825 void marshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
24826     VulkanStream* vkStream, VkStructureType rootType,
24827     const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forMarshaling) {
24828     (void)rootType;
24829     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24830     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24831         rootType = forMarshaling->sType;
24832     }
24833     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24834     vkStream->write((uint32_t*)&forMarshaling->shaderSMCount, sizeof(uint32_t));
24835     vkStream->write((uint32_t*)&forMarshaling->shaderWarpsPerSM, sizeof(uint32_t));
24836 }
24837 
unmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderSMBuiltinsPropertiesNV * forUnmarshaling)24838 void unmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
24839     VulkanStream* vkStream, VkStructureType rootType,
24840     VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forUnmarshaling) {
24841     (void)rootType;
24842     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24843     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24844         rootType = forUnmarshaling->sType;
24845     }
24846     size_t pNext_size;
24847     pNext_size = vkStream->getBe32();
24848     forUnmarshaling->pNext = nullptr;
24849     if (pNext_size) {
24850         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24851         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24852         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24853         vkStream->alloc((void**)&forUnmarshaling->pNext,
24854                         goldfish_vk_extension_struct_size_with_stream_features(
24855                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24856         *(VkStructureType*)forUnmarshaling->pNext = extType;
24857         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24858     }
24859     vkStream->read((uint32_t*)&forUnmarshaling->shaderSMCount, sizeof(uint32_t));
24860     vkStream->read((uint32_t*)&forUnmarshaling->shaderWarpsPerSM, sizeof(uint32_t));
24861 }
24862 
marshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV * forMarshaling)24863 void marshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
24864     VulkanStream* vkStream, VkStructureType rootType,
24865     const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forMarshaling) {
24866     (void)rootType;
24867     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24868     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24869         rootType = forMarshaling->sType;
24870     }
24871     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24872     vkStream->write((VkBool32*)&forMarshaling->shaderSMBuiltins, sizeof(VkBool32));
24873 }
24874 
unmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderSMBuiltinsFeaturesNV * forUnmarshaling)24875 void unmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
24876     VulkanStream* vkStream, VkStructureType rootType,
24877     VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forUnmarshaling) {
24878     (void)rootType;
24879     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24881         rootType = forUnmarshaling->sType;
24882     }
24883     size_t pNext_size;
24884     pNext_size = vkStream->getBe32();
24885     forUnmarshaling->pNext = nullptr;
24886     if (pNext_size) {
24887         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24888         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24889         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24890         vkStream->alloc((void**)&forUnmarshaling->pNext,
24891                         goldfish_vk_extension_struct_size_with_stream_features(
24892                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24893         *(VkStructureType*)forUnmarshaling->pNext = extType;
24894         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24895     }
24896     vkStream->read((VkBool32*)&forUnmarshaling->shaderSMBuiltins, sizeof(VkBool32));
24897 }
24898 
24899 #endif
24900 #ifdef VK_EXT_post_depth_coverage
24901 #endif
24902 #ifdef VK_EXT_image_drm_format_modifier
marshal_VkDrmFormatModifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesEXT * forMarshaling)24903 void marshal_VkDrmFormatModifierPropertiesEXT(
24904     VulkanStream* vkStream, VkStructureType rootType,
24905     const VkDrmFormatModifierPropertiesEXT* forMarshaling) {
24906     (void)rootType;
24907     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
24908     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
24909     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->drmFormatModifierTilingFeatures,
24910                     sizeof(VkFormatFeatureFlags));
24911 }
24912 
unmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesEXT * forUnmarshaling)24913 void unmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStream* vkStream, VkStructureType rootType,
24914                                                 VkDrmFormatModifierPropertiesEXT* forUnmarshaling) {
24915     (void)rootType;
24916     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
24917     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
24918     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->drmFormatModifierTilingFeatures,
24919                    sizeof(VkFormatFeatureFlags));
24920 }
24921 
marshal_VkDrmFormatModifierPropertiesListEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesListEXT * forMarshaling)24922 void marshal_VkDrmFormatModifierPropertiesListEXT(
24923     VulkanStream* vkStream, VkStructureType rootType,
24924     const VkDrmFormatModifierPropertiesListEXT* forMarshaling) {
24925     (void)rootType;
24926     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24928         rootType = forMarshaling->sType;
24929     }
24930     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24931     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
24932     // WARNING PTR CHECK
24933     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
24934     vkStream->putBe64(cgen_var_0);
24935     if (forMarshaling->pDrmFormatModifierProperties) {
24936         if (forMarshaling) {
24937             for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
24938                 marshal_VkDrmFormatModifierPropertiesEXT(
24939                     vkStream, rootType,
24940                     (VkDrmFormatModifierPropertiesEXT*)(forMarshaling
24941                                                             ->pDrmFormatModifierProperties +
24942                                                         i));
24943             }
24944         }
24945     }
24946 }
24947 
unmarshal_VkDrmFormatModifierPropertiesListEXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesListEXT * forUnmarshaling)24948 void unmarshal_VkDrmFormatModifierPropertiesListEXT(
24949     VulkanStream* vkStream, VkStructureType rootType,
24950     VkDrmFormatModifierPropertiesListEXT* forUnmarshaling) {
24951     (void)rootType;
24952     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
24953     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24954         rootType = forUnmarshaling->sType;
24955     }
24956     size_t pNext_size;
24957     pNext_size = vkStream->getBe32();
24958     forUnmarshaling->pNext = nullptr;
24959     if (pNext_size) {
24960         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
24961         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
24962         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
24963         vkStream->alloc((void**)&forUnmarshaling->pNext,
24964                         goldfish_vk_extension_struct_size_with_stream_features(
24965                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
24966         *(VkStructureType*)forUnmarshaling->pNext = extType;
24967         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
24968     }
24969     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
24970     // WARNING PTR CHECK
24971     forUnmarshaling->pDrmFormatModifierProperties =
24972         (VkDrmFormatModifierPropertiesEXT*)(uintptr_t)vkStream->getBe64();
24973     if (forUnmarshaling->pDrmFormatModifierProperties) {
24974         vkStream->alloc(
24975             (void**)&forUnmarshaling->pDrmFormatModifierProperties,
24976             forUnmarshaling->drmFormatModifierCount * sizeof(VkDrmFormatModifierPropertiesEXT));
24977         if (forUnmarshaling) {
24978             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
24979                 unmarshal_VkDrmFormatModifierPropertiesEXT(
24980                     vkStream, rootType,
24981                     (VkDrmFormatModifierPropertiesEXT*)(forUnmarshaling
24982                                                             ->pDrmFormatModifierProperties +
24983                                                         i));
24984             }
24985         }
24986     }
24987 }
24988 
marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forMarshaling)24989 void marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
24990     VulkanStream* vkStream, VkStructureType rootType,
24991     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling) {
24992     (void)rootType;
24993     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
24994     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
24995         rootType = forMarshaling->sType;
24996     }
24997     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
24998     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
24999     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
25000     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
25001     // WARNING PTR CHECK
25002     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
25003     vkStream->putBe64(cgen_var_0);
25004     if (forMarshaling->pQueueFamilyIndices) {
25005         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
25006                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
25007     }
25008 }
25009 
unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forUnmarshaling)25010 void unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
25011     VulkanStream* vkStream, VkStructureType rootType,
25012     VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forUnmarshaling) {
25013     (void)rootType;
25014     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25015     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25016         rootType = forUnmarshaling->sType;
25017     }
25018     size_t pNext_size;
25019     pNext_size = vkStream->getBe32();
25020     forUnmarshaling->pNext = nullptr;
25021     if (pNext_size) {
25022         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25023         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25024         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25025         vkStream->alloc((void**)&forUnmarshaling->pNext,
25026                         goldfish_vk_extension_struct_size_with_stream_features(
25027                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25028         *(VkStructureType*)forUnmarshaling->pNext = extType;
25029         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25030     }
25031     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
25032     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
25033     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
25034     // WARNING PTR CHECK
25035     forUnmarshaling->pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
25036     if (forUnmarshaling->pQueueFamilyIndices) {
25037         vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
25038                         forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
25039         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
25040                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
25041     }
25042 }
25043 
marshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierListCreateInfoEXT * forMarshaling)25044 void marshal_VkImageDrmFormatModifierListCreateInfoEXT(
25045     VulkanStream* vkStream, VkStructureType rootType,
25046     const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling) {
25047     (void)rootType;
25048     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25049     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25050         rootType = forMarshaling->sType;
25051     }
25052     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25053     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
25054     vkStream->write((const uint64_t*)forMarshaling->pDrmFormatModifiers,
25055                     forMarshaling->drmFormatModifierCount * sizeof(const uint64_t));
25056 }
25057 
unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageDrmFormatModifierListCreateInfoEXT * forUnmarshaling)25058 void unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
25059     VulkanStream* vkStream, VkStructureType rootType,
25060     VkImageDrmFormatModifierListCreateInfoEXT* forUnmarshaling) {
25061     (void)rootType;
25062     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25063     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25064         rootType = forUnmarshaling->sType;
25065     }
25066     size_t pNext_size;
25067     pNext_size = vkStream->getBe32();
25068     forUnmarshaling->pNext = nullptr;
25069     if (pNext_size) {
25070         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25071         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25072         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25073         vkStream->alloc((void**)&forUnmarshaling->pNext,
25074                         goldfish_vk_extension_struct_size_with_stream_features(
25075                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25076         *(VkStructureType*)forUnmarshaling->pNext = extType;
25077         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25078     }
25079     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
25080     vkStream->alloc((void**)&forUnmarshaling->pDrmFormatModifiers,
25081                     forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t));
25082     vkStream->read((uint64_t*)forUnmarshaling->pDrmFormatModifiers,
25083                    forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t));
25084 }
25085 
marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierExplicitCreateInfoEXT * forMarshaling)25086 void marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
25087     VulkanStream* vkStream, VkStructureType rootType,
25088     const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling) {
25089     (void)rootType;
25090     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25091     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25092         rootType = forMarshaling->sType;
25093     }
25094     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25095     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
25096     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
25097     if (forMarshaling) {
25098         for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierPlaneCount; ++i) {
25099             marshal_VkSubresourceLayout(
25100                 vkStream, rootType, (const VkSubresourceLayout*)(forMarshaling->pPlaneLayouts + i));
25101         }
25102     }
25103 }
25104 
unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageDrmFormatModifierExplicitCreateInfoEXT * forUnmarshaling)25105 void unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
25106     VulkanStream* vkStream, VkStructureType rootType,
25107     VkImageDrmFormatModifierExplicitCreateInfoEXT* forUnmarshaling) {
25108     (void)rootType;
25109     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25110     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25111         rootType = forUnmarshaling->sType;
25112     }
25113     size_t pNext_size;
25114     pNext_size = vkStream->getBe32();
25115     forUnmarshaling->pNext = nullptr;
25116     if (pNext_size) {
25117         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25118         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25119         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25120         vkStream->alloc((void**)&forUnmarshaling->pNext,
25121                         goldfish_vk_extension_struct_size_with_stream_features(
25122                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25123         *(VkStructureType*)forUnmarshaling->pNext = extType;
25124         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25125     }
25126     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
25127     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
25128     vkStream->alloc(
25129         (void**)&forUnmarshaling->pPlaneLayouts,
25130         forUnmarshaling->drmFormatModifierPlaneCount * sizeof(const VkSubresourceLayout));
25131     if (forUnmarshaling) {
25132         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierPlaneCount; ++i) {
25133             unmarshal_VkSubresourceLayout(
25134                 vkStream, rootType, (VkSubresourceLayout*)(forUnmarshaling->pPlaneLayouts + i));
25135         }
25136     }
25137 }
25138 
marshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierPropertiesEXT * forMarshaling)25139 void marshal_VkImageDrmFormatModifierPropertiesEXT(
25140     VulkanStream* vkStream, VkStructureType rootType,
25141     const VkImageDrmFormatModifierPropertiesEXT* forMarshaling) {
25142     (void)rootType;
25143     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25144     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25145         rootType = forMarshaling->sType;
25146     }
25147     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25148     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
25149 }
25150 
unmarshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageDrmFormatModifierPropertiesEXT * forUnmarshaling)25151 void unmarshal_VkImageDrmFormatModifierPropertiesEXT(
25152     VulkanStream* vkStream, VkStructureType rootType,
25153     VkImageDrmFormatModifierPropertiesEXT* forUnmarshaling) {
25154     (void)rootType;
25155     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25156     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25157         rootType = forUnmarshaling->sType;
25158     }
25159     size_t pNext_size;
25160     pNext_size = vkStream->getBe32();
25161     forUnmarshaling->pNext = nullptr;
25162     if (pNext_size) {
25163         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25164         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25165         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25166         vkStream->alloc((void**)&forUnmarshaling->pNext,
25167                         goldfish_vk_extension_struct_size_with_stream_features(
25168                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25169         *(VkStructureType*)forUnmarshaling->pNext = extType;
25170         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25171     }
25172     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
25173 }
25174 
marshal_VkDrmFormatModifierProperties2EXT(VulkanStream * vkStream,VkStructureType rootType,const VkDrmFormatModifierProperties2EXT * forMarshaling)25175 void marshal_VkDrmFormatModifierProperties2EXT(
25176     VulkanStream* vkStream, VkStructureType rootType,
25177     const VkDrmFormatModifierProperties2EXT* forMarshaling) {
25178     (void)rootType;
25179     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
25180     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
25181     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->drmFormatModifierTilingFeatures,
25182                     sizeof(VkFormatFeatureFlags2));
25183 }
25184 
unmarshal_VkDrmFormatModifierProperties2EXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierProperties2EXT * forUnmarshaling)25185 void unmarshal_VkDrmFormatModifierProperties2EXT(
25186     VulkanStream* vkStream, VkStructureType rootType,
25187     VkDrmFormatModifierProperties2EXT* forUnmarshaling) {
25188     (void)rootType;
25189     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
25190     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
25191     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->drmFormatModifierTilingFeatures,
25192                    sizeof(VkFormatFeatureFlags2));
25193 }
25194 
marshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStream * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesList2EXT * forMarshaling)25195 void marshal_VkDrmFormatModifierPropertiesList2EXT(
25196     VulkanStream* vkStream, VkStructureType rootType,
25197     const VkDrmFormatModifierPropertiesList2EXT* forMarshaling) {
25198     (void)rootType;
25199     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25200     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25201         rootType = forMarshaling->sType;
25202     }
25203     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25204     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
25205     // WARNING PTR CHECK
25206     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
25207     vkStream->putBe64(cgen_var_0);
25208     if (forMarshaling->pDrmFormatModifierProperties) {
25209         if (forMarshaling) {
25210             for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
25211                 marshal_VkDrmFormatModifierProperties2EXT(
25212                     vkStream, rootType,
25213                     (VkDrmFormatModifierProperties2EXT*)(forMarshaling
25214                                                              ->pDrmFormatModifierProperties +
25215                                                          i));
25216             }
25217         }
25218     }
25219 }
25220 
unmarshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesList2EXT * forUnmarshaling)25221 void unmarshal_VkDrmFormatModifierPropertiesList2EXT(
25222     VulkanStream* vkStream, VkStructureType rootType,
25223     VkDrmFormatModifierPropertiesList2EXT* forUnmarshaling) {
25224     (void)rootType;
25225     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25226     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25227         rootType = forUnmarshaling->sType;
25228     }
25229     size_t pNext_size;
25230     pNext_size = vkStream->getBe32();
25231     forUnmarshaling->pNext = nullptr;
25232     if (pNext_size) {
25233         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25234         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25235         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25236         vkStream->alloc((void**)&forUnmarshaling->pNext,
25237                         goldfish_vk_extension_struct_size_with_stream_features(
25238                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25239         *(VkStructureType*)forUnmarshaling->pNext = extType;
25240         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25241     }
25242     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
25243     // WARNING PTR CHECK
25244     forUnmarshaling->pDrmFormatModifierProperties =
25245         (VkDrmFormatModifierProperties2EXT*)(uintptr_t)vkStream->getBe64();
25246     if (forUnmarshaling->pDrmFormatModifierProperties) {
25247         vkStream->alloc(
25248             (void**)&forUnmarshaling->pDrmFormatModifierProperties,
25249             forUnmarshaling->drmFormatModifierCount * sizeof(VkDrmFormatModifierProperties2EXT));
25250         if (forUnmarshaling) {
25251             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
25252                 unmarshal_VkDrmFormatModifierProperties2EXT(
25253                     vkStream, rootType,
25254                     (VkDrmFormatModifierProperties2EXT*)(forUnmarshaling
25255                                                              ->pDrmFormatModifierProperties +
25256                                                          i));
25257             }
25258         }
25259     }
25260 }
25261 
25262 #endif
25263 #ifdef VK_EXT_validation_cache
marshal_VkValidationCacheCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkValidationCacheCreateInfoEXT * forMarshaling)25264 void marshal_VkValidationCacheCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
25265                                             const VkValidationCacheCreateInfoEXT* forMarshaling) {
25266     (void)rootType;
25267     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25268     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25269         rootType = forMarshaling->sType;
25270     }
25271     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25272     vkStream->write((VkValidationCacheCreateFlagsEXT*)&forMarshaling->flags,
25273                     sizeof(VkValidationCacheCreateFlagsEXT));
25274     uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
25275     vkStream->putBe64(cgen_var_0);
25276     vkStream->write((const void*)forMarshaling->pInitialData,
25277                     forMarshaling->initialDataSize * sizeof(const uint8_t));
25278 }
25279 
unmarshal_VkValidationCacheCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkValidationCacheCreateInfoEXT * forUnmarshaling)25280 void unmarshal_VkValidationCacheCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
25281                                               VkValidationCacheCreateInfoEXT* forUnmarshaling) {
25282     (void)rootType;
25283     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25284     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25285         rootType = forUnmarshaling->sType;
25286     }
25287     size_t pNext_size;
25288     pNext_size = vkStream->getBe32();
25289     forUnmarshaling->pNext = nullptr;
25290     if (pNext_size) {
25291         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25292         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25293         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25294         vkStream->alloc((void**)&forUnmarshaling->pNext,
25295                         goldfish_vk_extension_struct_size_with_stream_features(
25296                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25297         *(VkStructureType*)forUnmarshaling->pNext = extType;
25298         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25299     }
25300     vkStream->read((VkValidationCacheCreateFlagsEXT*)&forUnmarshaling->flags,
25301                    sizeof(VkValidationCacheCreateFlagsEXT));
25302     forUnmarshaling->initialDataSize = (size_t)vkStream->getBe64();
25303     vkStream->alloc((void**)&forUnmarshaling->pInitialData,
25304                     forUnmarshaling->initialDataSize * sizeof(const uint8_t));
25305     vkStream->read((void*)forUnmarshaling->pInitialData,
25306                    forUnmarshaling->initialDataSize * sizeof(const uint8_t));
25307 }
25308 
marshal_VkShaderModuleValidationCacheCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkShaderModuleValidationCacheCreateInfoEXT * forMarshaling)25309 void marshal_VkShaderModuleValidationCacheCreateInfoEXT(
25310     VulkanStream* vkStream, VkStructureType rootType,
25311     const VkShaderModuleValidationCacheCreateInfoEXT* forMarshaling) {
25312     (void)rootType;
25313     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25314     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25315         rootType = forMarshaling->sType;
25316     }
25317     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25318     uint64_t cgen_var_0;
25319     vkStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&forMarshaling->validationCache,
25320                                                                    &cgen_var_0, 1);
25321     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
25322 }
25323 
unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkShaderModuleValidationCacheCreateInfoEXT * forUnmarshaling)25324 void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
25325     VulkanStream* vkStream, VkStructureType rootType,
25326     VkShaderModuleValidationCacheCreateInfoEXT* forUnmarshaling) {
25327     (void)rootType;
25328     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25329     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25330         rootType = forUnmarshaling->sType;
25331     }
25332     size_t pNext_size;
25333     pNext_size = vkStream->getBe32();
25334     forUnmarshaling->pNext = nullptr;
25335     if (pNext_size) {
25336         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25337         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25338         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25339         vkStream->alloc((void**)&forUnmarshaling->pNext,
25340                         goldfish_vk_extension_struct_size_with_stream_features(
25341                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25342         *(VkStructureType*)forUnmarshaling->pNext = extType;
25343         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25344     }
25345     uint64_t cgen_var_0;
25346     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
25347     vkStream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(
25348         &cgen_var_0, (VkValidationCacheEXT*)&forUnmarshaling->validationCache, 1);
25349 }
25350 
25351 #endif
25352 #ifdef VK_EXT_descriptor_indexing
25353 #endif
25354 #ifdef VK_EXT_shader_viewport_index_layer
25355 #endif
25356 #ifdef VK_NV_shading_rate_image
marshal_VkShadingRatePaletteNV(VulkanStream * vkStream,VkStructureType rootType,const VkShadingRatePaletteNV * forMarshaling)25357 void marshal_VkShadingRatePaletteNV(VulkanStream* vkStream, VkStructureType rootType,
25358                                     const VkShadingRatePaletteNV* forMarshaling) {
25359     (void)rootType;
25360     vkStream->write((uint32_t*)&forMarshaling->shadingRatePaletteEntryCount, sizeof(uint32_t));
25361     vkStream->write(
25362         (const VkShadingRatePaletteEntryNV*)forMarshaling->pShadingRatePaletteEntries,
25363         forMarshaling->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV));
25364 }
25365 
unmarshal_VkShadingRatePaletteNV(VulkanStream * vkStream,VkStructureType rootType,VkShadingRatePaletteNV * forUnmarshaling)25366 void unmarshal_VkShadingRatePaletteNV(VulkanStream* vkStream, VkStructureType rootType,
25367                                       VkShadingRatePaletteNV* forUnmarshaling) {
25368     (void)rootType;
25369     vkStream->read((uint32_t*)&forUnmarshaling->shadingRatePaletteEntryCount, sizeof(uint32_t));
25370     vkStream->alloc(
25371         (void**)&forUnmarshaling->pShadingRatePaletteEntries,
25372         forUnmarshaling->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV));
25373     vkStream->read(
25374         (VkShadingRatePaletteEntryNV*)forUnmarshaling->pShadingRatePaletteEntries,
25375         forUnmarshaling->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV));
25376 }
25377 
marshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineViewportShadingRateImageStateCreateInfoNV * forMarshaling)25378 void marshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
25379     VulkanStream* vkStream, VkStructureType rootType,
25380     const VkPipelineViewportShadingRateImageStateCreateInfoNV* forMarshaling) {
25381     (void)rootType;
25382     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25383     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25384         rootType = forMarshaling->sType;
25385     }
25386     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25387     vkStream->write((VkBool32*)&forMarshaling->shadingRateImageEnable, sizeof(VkBool32));
25388     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
25389     // WARNING PTR CHECK
25390     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pShadingRatePalettes;
25391     vkStream->putBe64(cgen_var_0);
25392     if (forMarshaling->pShadingRatePalettes) {
25393         if (forMarshaling) {
25394             for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i) {
25395                 marshal_VkShadingRatePaletteNV(
25396                     vkStream, rootType,
25397                     (const VkShadingRatePaletteNV*)(forMarshaling->pShadingRatePalettes + i));
25398             }
25399         }
25400     }
25401 }
25402 
unmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportShadingRateImageStateCreateInfoNV * forUnmarshaling)25403 void unmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
25404     VulkanStream* vkStream, VkStructureType rootType,
25405     VkPipelineViewportShadingRateImageStateCreateInfoNV* forUnmarshaling) {
25406     (void)rootType;
25407     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25408     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25409         rootType = forUnmarshaling->sType;
25410     }
25411     size_t pNext_size;
25412     pNext_size = vkStream->getBe32();
25413     forUnmarshaling->pNext = nullptr;
25414     if (pNext_size) {
25415         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25416         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25417         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25418         vkStream->alloc((void**)&forUnmarshaling->pNext,
25419                         goldfish_vk_extension_struct_size_with_stream_features(
25420                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25421         *(VkStructureType*)forUnmarshaling->pNext = extType;
25422         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25423     }
25424     vkStream->read((VkBool32*)&forUnmarshaling->shadingRateImageEnable, sizeof(VkBool32));
25425     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
25426     // WARNING PTR CHECK
25427     forUnmarshaling->pShadingRatePalettes =
25428         (const VkShadingRatePaletteNV*)(uintptr_t)vkStream->getBe64();
25429     if (forUnmarshaling->pShadingRatePalettes) {
25430         vkStream->alloc((void**)&forUnmarshaling->pShadingRatePalettes,
25431                         forUnmarshaling->viewportCount * sizeof(const VkShadingRatePaletteNV));
25432         if (forUnmarshaling) {
25433             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i) {
25434                 unmarshal_VkShadingRatePaletteNV(
25435                     vkStream, rootType,
25436                     (VkShadingRatePaletteNV*)(forUnmarshaling->pShadingRatePalettes + i));
25437             }
25438         }
25439     }
25440 }
25441 
marshal_VkPhysicalDeviceShadingRateImageFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShadingRateImageFeaturesNV * forMarshaling)25442 void marshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
25443     VulkanStream* vkStream, VkStructureType rootType,
25444     const VkPhysicalDeviceShadingRateImageFeaturesNV* forMarshaling) {
25445     (void)rootType;
25446     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25447     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25448         rootType = forMarshaling->sType;
25449     }
25450     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25451     vkStream->write((VkBool32*)&forMarshaling->shadingRateImage, sizeof(VkBool32));
25452     vkStream->write((VkBool32*)&forMarshaling->shadingRateCoarseSampleOrder, sizeof(VkBool32));
25453 }
25454 
unmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShadingRateImageFeaturesNV * forUnmarshaling)25455 void unmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
25456     VulkanStream* vkStream, VkStructureType rootType,
25457     VkPhysicalDeviceShadingRateImageFeaturesNV* forUnmarshaling) {
25458     (void)rootType;
25459     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25460     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25461         rootType = forUnmarshaling->sType;
25462     }
25463     size_t pNext_size;
25464     pNext_size = vkStream->getBe32();
25465     forUnmarshaling->pNext = nullptr;
25466     if (pNext_size) {
25467         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25468         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25469         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25470         vkStream->alloc((void**)&forUnmarshaling->pNext,
25471                         goldfish_vk_extension_struct_size_with_stream_features(
25472                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25473         *(VkStructureType*)forUnmarshaling->pNext = extType;
25474         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25475     }
25476     vkStream->read((VkBool32*)&forUnmarshaling->shadingRateImage, sizeof(VkBool32));
25477     vkStream->read((VkBool32*)&forUnmarshaling->shadingRateCoarseSampleOrder, sizeof(VkBool32));
25478 }
25479 
marshal_VkPhysicalDeviceShadingRateImagePropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShadingRateImagePropertiesNV * forMarshaling)25480 void marshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
25481     VulkanStream* vkStream, VkStructureType rootType,
25482     const VkPhysicalDeviceShadingRateImagePropertiesNV* forMarshaling) {
25483     (void)rootType;
25484     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25485     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25486         rootType = forMarshaling->sType;
25487     }
25488     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25489     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->shadingRateTexelSize));
25490     vkStream->write((uint32_t*)&forMarshaling->shadingRatePaletteSize, sizeof(uint32_t));
25491     vkStream->write((uint32_t*)&forMarshaling->shadingRateMaxCoarseSamples, sizeof(uint32_t));
25492 }
25493 
unmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShadingRateImagePropertiesNV * forUnmarshaling)25494 void unmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
25495     VulkanStream* vkStream, VkStructureType rootType,
25496     VkPhysicalDeviceShadingRateImagePropertiesNV* forUnmarshaling) {
25497     (void)rootType;
25498     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25499     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25500         rootType = forUnmarshaling->sType;
25501     }
25502     size_t pNext_size;
25503     pNext_size = vkStream->getBe32();
25504     forUnmarshaling->pNext = nullptr;
25505     if (pNext_size) {
25506         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25507         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25508         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25509         vkStream->alloc((void**)&forUnmarshaling->pNext,
25510                         goldfish_vk_extension_struct_size_with_stream_features(
25511                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25512         *(VkStructureType*)forUnmarshaling->pNext = extType;
25513         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25514     }
25515     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->shadingRateTexelSize));
25516     vkStream->read((uint32_t*)&forUnmarshaling->shadingRatePaletteSize, sizeof(uint32_t));
25517     vkStream->read((uint32_t*)&forUnmarshaling->shadingRateMaxCoarseSamples, sizeof(uint32_t));
25518 }
25519 
marshal_VkCoarseSampleLocationNV(VulkanStream * vkStream,VkStructureType rootType,const VkCoarseSampleLocationNV * forMarshaling)25520 void marshal_VkCoarseSampleLocationNV(VulkanStream* vkStream, VkStructureType rootType,
25521                                       const VkCoarseSampleLocationNV* forMarshaling) {
25522     (void)rootType;
25523     vkStream->write((uint32_t*)&forMarshaling->pixelX, sizeof(uint32_t));
25524     vkStream->write((uint32_t*)&forMarshaling->pixelY, sizeof(uint32_t));
25525     vkStream->write((uint32_t*)&forMarshaling->sample, sizeof(uint32_t));
25526 }
25527 
unmarshal_VkCoarseSampleLocationNV(VulkanStream * vkStream,VkStructureType rootType,VkCoarseSampleLocationNV * forUnmarshaling)25528 void unmarshal_VkCoarseSampleLocationNV(VulkanStream* vkStream, VkStructureType rootType,
25529                                         VkCoarseSampleLocationNV* forUnmarshaling) {
25530     (void)rootType;
25531     vkStream->read((uint32_t*)&forUnmarshaling->pixelX, sizeof(uint32_t));
25532     vkStream->read((uint32_t*)&forUnmarshaling->pixelY, sizeof(uint32_t));
25533     vkStream->read((uint32_t*)&forUnmarshaling->sample, sizeof(uint32_t));
25534 }
25535 
marshal_VkCoarseSampleOrderCustomNV(VulkanStream * vkStream,VkStructureType rootType,const VkCoarseSampleOrderCustomNV * forMarshaling)25536 void marshal_VkCoarseSampleOrderCustomNV(VulkanStream* vkStream, VkStructureType rootType,
25537                                          const VkCoarseSampleOrderCustomNV* forMarshaling) {
25538     (void)rootType;
25539     vkStream->write((VkShadingRatePaletteEntryNV*)&forMarshaling->shadingRate,
25540                     sizeof(VkShadingRatePaletteEntryNV));
25541     vkStream->write((uint32_t*)&forMarshaling->sampleCount, sizeof(uint32_t));
25542     vkStream->write((uint32_t*)&forMarshaling->sampleLocationCount, sizeof(uint32_t));
25543     if (forMarshaling) {
25544         for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationCount; ++i) {
25545             marshal_VkCoarseSampleLocationNV(
25546                 vkStream, rootType,
25547                 (const VkCoarseSampleLocationNV*)(forMarshaling->pSampleLocations + i));
25548         }
25549     }
25550 }
25551 
unmarshal_VkCoarseSampleOrderCustomNV(VulkanStream * vkStream,VkStructureType rootType,VkCoarseSampleOrderCustomNV * forUnmarshaling)25552 void unmarshal_VkCoarseSampleOrderCustomNV(VulkanStream* vkStream, VkStructureType rootType,
25553                                            VkCoarseSampleOrderCustomNV* forUnmarshaling) {
25554     (void)rootType;
25555     vkStream->read((VkShadingRatePaletteEntryNV*)&forUnmarshaling->shadingRate,
25556                    sizeof(VkShadingRatePaletteEntryNV));
25557     vkStream->read((uint32_t*)&forUnmarshaling->sampleCount, sizeof(uint32_t));
25558     vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationCount, sizeof(uint32_t));
25559     vkStream->alloc((void**)&forUnmarshaling->pSampleLocations,
25560                     forUnmarshaling->sampleLocationCount * sizeof(const VkCoarseSampleLocationNV));
25561     if (forUnmarshaling) {
25562         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->sampleLocationCount; ++i) {
25563             unmarshal_VkCoarseSampleLocationNV(
25564                 vkStream, rootType,
25565                 (VkCoarseSampleLocationNV*)(forUnmarshaling->pSampleLocations + i));
25566         }
25567     }
25568 }
25569 
marshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV * forMarshaling)25570 void marshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
25571     VulkanStream* vkStream, VkStructureType rootType,
25572     const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forMarshaling) {
25573     (void)rootType;
25574     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25575     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25576         rootType = forMarshaling->sType;
25577     }
25578     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25579     vkStream->write((VkCoarseSampleOrderTypeNV*)&forMarshaling->sampleOrderType,
25580                     sizeof(VkCoarseSampleOrderTypeNV));
25581     vkStream->write((uint32_t*)&forMarshaling->customSampleOrderCount, sizeof(uint32_t));
25582     if (forMarshaling) {
25583         for (uint32_t i = 0; i < (uint32_t)forMarshaling->customSampleOrderCount; ++i) {
25584             marshal_VkCoarseSampleOrderCustomNV(
25585                 vkStream, rootType,
25586                 (const VkCoarseSampleOrderCustomNV*)(forMarshaling->pCustomSampleOrders + i));
25587         }
25588     }
25589 }
25590 
unmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportCoarseSampleOrderStateCreateInfoNV * forUnmarshaling)25591 void unmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
25592     VulkanStream* vkStream, VkStructureType rootType,
25593     VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forUnmarshaling) {
25594     (void)rootType;
25595     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25596     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25597         rootType = forUnmarshaling->sType;
25598     }
25599     size_t pNext_size;
25600     pNext_size = vkStream->getBe32();
25601     forUnmarshaling->pNext = nullptr;
25602     if (pNext_size) {
25603         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25604         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25605         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25606         vkStream->alloc((void**)&forUnmarshaling->pNext,
25607                         goldfish_vk_extension_struct_size_with_stream_features(
25608                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25609         *(VkStructureType*)forUnmarshaling->pNext = extType;
25610         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25611     }
25612     vkStream->read((VkCoarseSampleOrderTypeNV*)&forUnmarshaling->sampleOrderType,
25613                    sizeof(VkCoarseSampleOrderTypeNV));
25614     vkStream->read((uint32_t*)&forUnmarshaling->customSampleOrderCount, sizeof(uint32_t));
25615     vkStream->alloc(
25616         (void**)&forUnmarshaling->pCustomSampleOrders,
25617         forUnmarshaling->customSampleOrderCount * sizeof(const VkCoarseSampleOrderCustomNV));
25618     if (forUnmarshaling) {
25619         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->customSampleOrderCount; ++i) {
25620             unmarshal_VkCoarseSampleOrderCustomNV(
25621                 vkStream, rootType,
25622                 (VkCoarseSampleOrderCustomNV*)(forUnmarshaling->pCustomSampleOrders + i));
25623         }
25624     }
25625 }
25626 
25627 #endif
25628 #ifdef VK_NV_ray_tracing
marshal_VkRayTracingShaderGroupCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkRayTracingShaderGroupCreateInfoNV * forMarshaling)25629 void marshal_VkRayTracingShaderGroupCreateInfoNV(
25630     VulkanStream* vkStream, VkStructureType rootType,
25631     const VkRayTracingShaderGroupCreateInfoNV* forMarshaling) {
25632     (void)rootType;
25633     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25634     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25635         rootType = forMarshaling->sType;
25636     }
25637     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25638     vkStream->write((VkRayTracingShaderGroupTypeKHR*)&forMarshaling->type,
25639                     sizeof(VkRayTracingShaderGroupTypeKHR));
25640     vkStream->write((uint32_t*)&forMarshaling->generalShader, sizeof(uint32_t));
25641     vkStream->write((uint32_t*)&forMarshaling->closestHitShader, sizeof(uint32_t));
25642     vkStream->write((uint32_t*)&forMarshaling->anyHitShader, sizeof(uint32_t));
25643     vkStream->write((uint32_t*)&forMarshaling->intersectionShader, sizeof(uint32_t));
25644 }
25645 
unmarshal_VkRayTracingShaderGroupCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingShaderGroupCreateInfoNV * forUnmarshaling)25646 void unmarshal_VkRayTracingShaderGroupCreateInfoNV(
25647     VulkanStream* vkStream, VkStructureType rootType,
25648     VkRayTracingShaderGroupCreateInfoNV* forUnmarshaling) {
25649     (void)rootType;
25650     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25651     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25652         rootType = forUnmarshaling->sType;
25653     }
25654     size_t pNext_size;
25655     pNext_size = vkStream->getBe32();
25656     forUnmarshaling->pNext = nullptr;
25657     if (pNext_size) {
25658         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25659         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25660         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25661         vkStream->alloc((void**)&forUnmarshaling->pNext,
25662                         goldfish_vk_extension_struct_size_with_stream_features(
25663                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25664         *(VkStructureType*)forUnmarshaling->pNext = extType;
25665         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25666     }
25667     vkStream->read((VkRayTracingShaderGroupTypeKHR*)&forUnmarshaling->type,
25668                    sizeof(VkRayTracingShaderGroupTypeKHR));
25669     vkStream->read((uint32_t*)&forUnmarshaling->generalShader, sizeof(uint32_t));
25670     vkStream->read((uint32_t*)&forUnmarshaling->closestHitShader, sizeof(uint32_t));
25671     vkStream->read((uint32_t*)&forUnmarshaling->anyHitShader, sizeof(uint32_t));
25672     vkStream->read((uint32_t*)&forUnmarshaling->intersectionShader, sizeof(uint32_t));
25673 }
25674 
marshal_VkRayTracingPipelineCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkRayTracingPipelineCreateInfoNV * forMarshaling)25675 void marshal_VkRayTracingPipelineCreateInfoNV(
25676     VulkanStream* vkStream, VkStructureType rootType,
25677     const VkRayTracingPipelineCreateInfoNV* forMarshaling) {
25678     (void)rootType;
25679     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25680     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25681         rootType = forMarshaling->sType;
25682     }
25683     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25684     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
25685     vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
25686     if (forMarshaling) {
25687         for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i) {
25688             marshal_VkPipelineShaderStageCreateInfo(
25689                 vkStream, rootType,
25690                 (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
25691         }
25692     }
25693     vkStream->write((uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
25694     if (forMarshaling) {
25695         for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i) {
25696             marshal_VkRayTracingShaderGroupCreateInfoNV(
25697                 vkStream, rootType,
25698                 (const VkRayTracingShaderGroupCreateInfoNV*)(forMarshaling->pGroups + i));
25699         }
25700     }
25701     vkStream->write((uint32_t*)&forMarshaling->maxRecursionDepth, sizeof(uint32_t));
25702     uint64_t cgen_var_0;
25703     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0,
25704                                                                1);
25705     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
25706     uint64_t cgen_var_1;
25707     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle,
25708                                                          &cgen_var_1, 1);
25709     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
25710     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
25711 }
25712 
unmarshal_VkRayTracingPipelineCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingPipelineCreateInfoNV * forUnmarshaling)25713 void unmarshal_VkRayTracingPipelineCreateInfoNV(VulkanStream* vkStream, VkStructureType rootType,
25714                                                 VkRayTracingPipelineCreateInfoNV* forUnmarshaling) {
25715     (void)rootType;
25716     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25717     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25718         rootType = forUnmarshaling->sType;
25719     }
25720     size_t pNext_size;
25721     pNext_size = vkStream->getBe32();
25722     forUnmarshaling->pNext = nullptr;
25723     if (pNext_size) {
25724         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25725         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25726         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25727         vkStream->alloc((void**)&forUnmarshaling->pNext,
25728                         goldfish_vk_extension_struct_size_with_stream_features(
25729                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25730         *(VkStructureType*)forUnmarshaling->pNext = extType;
25731         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25732     }
25733     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
25734     vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
25735     vkStream->alloc((void**)&forUnmarshaling->pStages,
25736                     forUnmarshaling->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
25737     if (forUnmarshaling) {
25738         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i) {
25739             unmarshal_VkPipelineShaderStageCreateInfo(
25740                 vkStream, rootType,
25741                 (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
25742         }
25743     }
25744     vkStream->read((uint32_t*)&forUnmarshaling->groupCount, sizeof(uint32_t));
25745     vkStream->alloc(
25746         (void**)&forUnmarshaling->pGroups,
25747         forUnmarshaling->groupCount * sizeof(const VkRayTracingShaderGroupCreateInfoNV));
25748     if (forUnmarshaling) {
25749         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->groupCount; ++i) {
25750             unmarshal_VkRayTracingShaderGroupCreateInfoNV(
25751                 vkStream, rootType,
25752                 (VkRayTracingShaderGroupCreateInfoNV*)(forUnmarshaling->pGroups + i));
25753         }
25754     }
25755     vkStream->read((uint32_t*)&forUnmarshaling->maxRecursionDepth, sizeof(uint32_t));
25756     uint64_t cgen_var_0;
25757     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
25758     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
25759         &cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
25760     uint64_t cgen_var_1;
25761     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
25762     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
25763         &cgen_var_1, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
25764     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
25765 }
25766 
marshal_VkGeometryTrianglesNV(VulkanStream * vkStream,VkStructureType rootType,const VkGeometryTrianglesNV * forMarshaling)25767 void marshal_VkGeometryTrianglesNV(VulkanStream* vkStream, VkStructureType rootType,
25768                                    const VkGeometryTrianglesNV* forMarshaling) {
25769     (void)rootType;
25770     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25771     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25772         rootType = forMarshaling->sType;
25773     }
25774     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25775     uint64_t cgen_var_0;
25776     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->vertexData, &cgen_var_0, 1);
25777     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
25778     vkStream->write((VkDeviceSize*)&forMarshaling->vertexOffset, sizeof(VkDeviceSize));
25779     vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
25780     vkStream->write((VkDeviceSize*)&forMarshaling->vertexStride, sizeof(VkDeviceSize));
25781     vkStream->write((VkFormat*)&forMarshaling->vertexFormat, sizeof(VkFormat));
25782     uint64_t cgen_var_1;
25783     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->indexData, &cgen_var_1, 1);
25784     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
25785     vkStream->write((VkDeviceSize*)&forMarshaling->indexOffset, sizeof(VkDeviceSize));
25786     vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
25787     vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
25788     uint64_t cgen_var_2;
25789     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->transformData, &cgen_var_2,
25790                                                        1);
25791     vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
25792     vkStream->write((VkDeviceSize*)&forMarshaling->transformOffset, sizeof(VkDeviceSize));
25793 }
25794 
unmarshal_VkGeometryTrianglesNV(VulkanStream * vkStream,VkStructureType rootType,VkGeometryTrianglesNV * forUnmarshaling)25795 void unmarshal_VkGeometryTrianglesNV(VulkanStream* vkStream, VkStructureType rootType,
25796                                      VkGeometryTrianglesNV* forUnmarshaling) {
25797     (void)rootType;
25798     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25799     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25800         rootType = forUnmarshaling->sType;
25801     }
25802     size_t pNext_size;
25803     pNext_size = vkStream->getBe32();
25804     forUnmarshaling->pNext = nullptr;
25805     if (pNext_size) {
25806         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25807         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25808         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25809         vkStream->alloc((void**)&forUnmarshaling->pNext,
25810                         goldfish_vk_extension_struct_size_with_stream_features(
25811                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25812         *(VkStructureType*)forUnmarshaling->pNext = extType;
25813         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25814     }
25815     uint64_t cgen_var_0;
25816     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
25817     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
25818                                                        (VkBuffer*)&forUnmarshaling->vertexData, 1);
25819     vkStream->read((VkDeviceSize*)&forUnmarshaling->vertexOffset, sizeof(VkDeviceSize));
25820     vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
25821     vkStream->read((VkDeviceSize*)&forUnmarshaling->vertexStride, sizeof(VkDeviceSize));
25822     vkStream->read((VkFormat*)&forUnmarshaling->vertexFormat, sizeof(VkFormat));
25823     uint64_t cgen_var_1;
25824     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
25825     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
25826                                                        (VkBuffer*)&forUnmarshaling->indexData, 1);
25827     vkStream->read((VkDeviceSize*)&forUnmarshaling->indexOffset, sizeof(VkDeviceSize));
25828     vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
25829     vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
25830     uint64_t cgen_var_2;
25831     vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
25832     vkStream->handleMapping()->mapHandles_u64_VkBuffer(
25833         &cgen_var_2, (VkBuffer*)&forUnmarshaling->transformData, 1);
25834     vkStream->read((VkDeviceSize*)&forUnmarshaling->transformOffset, sizeof(VkDeviceSize));
25835 }
25836 
marshal_VkGeometryAABBNV(VulkanStream * vkStream,VkStructureType rootType,const VkGeometryAABBNV * forMarshaling)25837 void marshal_VkGeometryAABBNV(VulkanStream* vkStream, VkStructureType rootType,
25838                               const VkGeometryAABBNV* forMarshaling) {
25839     (void)rootType;
25840     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25841     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25842         rootType = forMarshaling->sType;
25843     }
25844     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25845     uint64_t cgen_var_0;
25846     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->aabbData, &cgen_var_0, 1);
25847     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
25848     vkStream->write((uint32_t*)&forMarshaling->numAABBs, sizeof(uint32_t));
25849     vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
25850     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
25851 }
25852 
unmarshal_VkGeometryAABBNV(VulkanStream * vkStream,VkStructureType rootType,VkGeometryAABBNV * forUnmarshaling)25853 void unmarshal_VkGeometryAABBNV(VulkanStream* vkStream, VkStructureType rootType,
25854                                 VkGeometryAABBNV* forUnmarshaling) {
25855     (void)rootType;
25856     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25857     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25858         rootType = forUnmarshaling->sType;
25859     }
25860     size_t pNext_size;
25861     pNext_size = vkStream->getBe32();
25862     forUnmarshaling->pNext = nullptr;
25863     if (pNext_size) {
25864         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25865         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25866         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25867         vkStream->alloc((void**)&forUnmarshaling->pNext,
25868                         goldfish_vk_extension_struct_size_with_stream_features(
25869                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25870         *(VkStructureType*)forUnmarshaling->pNext = extType;
25871         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25872     }
25873     uint64_t cgen_var_0;
25874     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
25875     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
25876                                                        (VkBuffer*)&forUnmarshaling->aabbData, 1);
25877     vkStream->read((uint32_t*)&forUnmarshaling->numAABBs, sizeof(uint32_t));
25878     vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
25879     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
25880 }
25881 
marshal_VkGeometryDataNV(VulkanStream * vkStream,VkStructureType rootType,const VkGeometryDataNV * forMarshaling)25882 void marshal_VkGeometryDataNV(VulkanStream* vkStream, VkStructureType rootType,
25883                               const VkGeometryDataNV* forMarshaling) {
25884     (void)rootType;
25885     marshal_VkGeometryTrianglesNV(vkStream, rootType,
25886                                   (VkGeometryTrianglesNV*)(&forMarshaling->triangles));
25887     marshal_VkGeometryAABBNV(vkStream, rootType, (VkGeometryAABBNV*)(&forMarshaling->aabbs));
25888 }
25889 
unmarshal_VkGeometryDataNV(VulkanStream * vkStream,VkStructureType rootType,VkGeometryDataNV * forUnmarshaling)25890 void unmarshal_VkGeometryDataNV(VulkanStream* vkStream, VkStructureType rootType,
25891                                 VkGeometryDataNV* forUnmarshaling) {
25892     (void)rootType;
25893     unmarshal_VkGeometryTrianglesNV(vkStream, rootType,
25894                                     (VkGeometryTrianglesNV*)(&forUnmarshaling->triangles));
25895     unmarshal_VkGeometryAABBNV(vkStream, rootType, (VkGeometryAABBNV*)(&forUnmarshaling->aabbs));
25896 }
25897 
marshal_VkGeometryNV(VulkanStream * vkStream,VkStructureType rootType,const VkGeometryNV * forMarshaling)25898 void marshal_VkGeometryNV(VulkanStream* vkStream, VkStructureType rootType,
25899                           const VkGeometryNV* forMarshaling) {
25900     (void)rootType;
25901     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25902     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25903         rootType = forMarshaling->sType;
25904     }
25905     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25906     vkStream->write((VkGeometryTypeKHR*)&forMarshaling->geometryType, sizeof(VkGeometryTypeKHR));
25907     marshal_VkGeometryDataNV(vkStream, rootType, (VkGeometryDataNV*)(&forMarshaling->geometry));
25908     vkStream->write((VkGeometryFlagsKHR*)&forMarshaling->flags, sizeof(VkGeometryFlagsKHR));
25909 }
25910 
unmarshal_VkGeometryNV(VulkanStream * vkStream,VkStructureType rootType,VkGeometryNV * forUnmarshaling)25911 void unmarshal_VkGeometryNV(VulkanStream* vkStream, VkStructureType rootType,
25912                             VkGeometryNV* forUnmarshaling) {
25913     (void)rootType;
25914     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25915     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25916         rootType = forUnmarshaling->sType;
25917     }
25918     size_t pNext_size;
25919     pNext_size = vkStream->getBe32();
25920     forUnmarshaling->pNext = nullptr;
25921     if (pNext_size) {
25922         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25923         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25924         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25925         vkStream->alloc((void**)&forUnmarshaling->pNext,
25926                         goldfish_vk_extension_struct_size_with_stream_features(
25927                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25928         *(VkStructureType*)forUnmarshaling->pNext = extType;
25929         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25930     }
25931     vkStream->read((VkGeometryTypeKHR*)&forUnmarshaling->geometryType, sizeof(VkGeometryTypeKHR));
25932     unmarshal_VkGeometryDataNV(vkStream, rootType, (VkGeometryDataNV*)(&forUnmarshaling->geometry));
25933     vkStream->read((VkGeometryFlagsKHR*)&forUnmarshaling->flags, sizeof(VkGeometryFlagsKHR));
25934 }
25935 
marshal_VkAccelerationStructureInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureInfoNV * forMarshaling)25936 void marshal_VkAccelerationStructureInfoNV(VulkanStream* vkStream, VkStructureType rootType,
25937                                            const VkAccelerationStructureInfoNV* forMarshaling) {
25938     (void)rootType;
25939     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25940     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25941         rootType = forMarshaling->sType;
25942     }
25943     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
25944     vkStream->write((VkAccelerationStructureTypeNV*)&forMarshaling->type,
25945                     sizeof(VkAccelerationStructureTypeNV));
25946     vkStream->write((VkBuildAccelerationStructureFlagsNV*)&forMarshaling->flags,
25947                     sizeof(VkBuildAccelerationStructureFlagsNV));
25948     vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
25949     vkStream->write((uint32_t*)&forMarshaling->geometryCount, sizeof(uint32_t));
25950     if (forMarshaling) {
25951         for (uint32_t i = 0; i < (uint32_t)forMarshaling->geometryCount; ++i) {
25952             marshal_VkGeometryNV(vkStream, rootType,
25953                                  (const VkGeometryNV*)(forMarshaling->pGeometries + i));
25954         }
25955     }
25956 }
25957 
unmarshal_VkAccelerationStructureInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureInfoNV * forUnmarshaling)25958 void unmarshal_VkAccelerationStructureInfoNV(VulkanStream* vkStream, VkStructureType rootType,
25959                                              VkAccelerationStructureInfoNV* forUnmarshaling) {
25960     (void)rootType;
25961     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
25962     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
25963         rootType = forUnmarshaling->sType;
25964     }
25965     size_t pNext_size;
25966     pNext_size = vkStream->getBe32();
25967     forUnmarshaling->pNext = nullptr;
25968     if (pNext_size) {
25969         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
25970         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
25971         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
25972         vkStream->alloc((void**)&forUnmarshaling->pNext,
25973                         goldfish_vk_extension_struct_size_with_stream_features(
25974                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
25975         *(VkStructureType*)forUnmarshaling->pNext = extType;
25976         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
25977     }
25978     vkStream->read((VkAccelerationStructureTypeNV*)&forUnmarshaling->type,
25979                    sizeof(VkAccelerationStructureTypeNV));
25980     vkStream->read((VkBuildAccelerationStructureFlagsNV*)&forUnmarshaling->flags,
25981                    sizeof(VkBuildAccelerationStructureFlagsNV));
25982     vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
25983     vkStream->read((uint32_t*)&forUnmarshaling->geometryCount, sizeof(uint32_t));
25984     vkStream->alloc((void**)&forUnmarshaling->pGeometries,
25985                     forUnmarshaling->geometryCount * sizeof(const VkGeometryNV));
25986     if (forUnmarshaling) {
25987         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->geometryCount; ++i) {
25988             unmarshal_VkGeometryNV(vkStream, rootType,
25989                                    (VkGeometryNV*)(forUnmarshaling->pGeometries + i));
25990         }
25991     }
25992 }
25993 
marshal_VkAccelerationStructureCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureCreateInfoNV * forMarshaling)25994 void marshal_VkAccelerationStructureCreateInfoNV(
25995     VulkanStream* vkStream, VkStructureType rootType,
25996     const VkAccelerationStructureCreateInfoNV* forMarshaling) {
25997     (void)rootType;
25998     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
25999     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26000         rootType = forMarshaling->sType;
26001     }
26002     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26003     vkStream->write((VkDeviceSize*)&forMarshaling->compactedSize, sizeof(VkDeviceSize));
26004     marshal_VkAccelerationStructureInfoNV(vkStream, rootType,
26005                                           (VkAccelerationStructureInfoNV*)(&forMarshaling->info));
26006 }
26007 
unmarshal_VkAccelerationStructureCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureCreateInfoNV * forUnmarshaling)26008 void unmarshal_VkAccelerationStructureCreateInfoNV(
26009     VulkanStream* vkStream, VkStructureType rootType,
26010     VkAccelerationStructureCreateInfoNV* forUnmarshaling) {
26011     (void)rootType;
26012     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26014         rootType = forUnmarshaling->sType;
26015     }
26016     size_t pNext_size;
26017     pNext_size = vkStream->getBe32();
26018     forUnmarshaling->pNext = nullptr;
26019     if (pNext_size) {
26020         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26021         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26022         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26023         vkStream->alloc((void**)&forUnmarshaling->pNext,
26024                         goldfish_vk_extension_struct_size_with_stream_features(
26025                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26026         *(VkStructureType*)forUnmarshaling->pNext = extType;
26027         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26028     }
26029     vkStream->read((VkDeviceSize*)&forUnmarshaling->compactedSize, sizeof(VkDeviceSize));
26030     unmarshal_VkAccelerationStructureInfoNV(
26031         vkStream, rootType, (VkAccelerationStructureInfoNV*)(&forUnmarshaling->info));
26032 }
26033 
marshal_VkBindAccelerationStructureMemoryInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkBindAccelerationStructureMemoryInfoNV * forMarshaling)26034 void marshal_VkBindAccelerationStructureMemoryInfoNV(
26035     VulkanStream* vkStream, VkStructureType rootType,
26036     const VkBindAccelerationStructureMemoryInfoNV* forMarshaling) {
26037     (void)rootType;
26038     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26039     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26040         rootType = forMarshaling->sType;
26041     }
26042     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26043     uint64_t cgen_var_0;
26044     vkStream->handleMapping()->mapHandles_VkAccelerationStructureNV_u64(
26045         &forMarshaling->accelerationStructure, &cgen_var_0, 1);
26046     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
26047     uint64_t cgen_var_1;
26048     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1,
26049                                                              1);
26050     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
26051     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
26052     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
26053     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices,
26054                     forMarshaling->deviceIndexCount * sizeof(const uint32_t));
26055 }
26056 
unmarshal_VkBindAccelerationStructureMemoryInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkBindAccelerationStructureMemoryInfoNV * forUnmarshaling)26057 void unmarshal_VkBindAccelerationStructureMemoryInfoNV(
26058     VulkanStream* vkStream, VkStructureType rootType,
26059     VkBindAccelerationStructureMemoryInfoNV* forUnmarshaling) {
26060     (void)rootType;
26061     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26062     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26063         rootType = forUnmarshaling->sType;
26064     }
26065     size_t pNext_size;
26066     pNext_size = vkStream->getBe32();
26067     forUnmarshaling->pNext = nullptr;
26068     if (pNext_size) {
26069         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26070         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26071         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26072         vkStream->alloc((void**)&forUnmarshaling->pNext,
26073                         goldfish_vk_extension_struct_size_with_stream_features(
26074                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26075         *(VkStructureType*)forUnmarshaling->pNext = extType;
26076         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26077     }
26078     uint64_t cgen_var_0;
26079     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
26080     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(
26081         &cgen_var_0, (VkAccelerationStructureNV*)&forUnmarshaling->accelerationStructure, 1);
26082     uint64_t cgen_var_1;
26083     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
26084     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
26085         &cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
26086     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
26087     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
26088     vkStream->alloc((void**)&forUnmarshaling->pDeviceIndices,
26089                     forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
26090     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices,
26091                    forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
26092 }
26093 
marshal_VkWriteDescriptorSetAccelerationStructureNV(VulkanStream * vkStream,VkStructureType rootType,const VkWriteDescriptorSetAccelerationStructureNV * forMarshaling)26094 void marshal_VkWriteDescriptorSetAccelerationStructureNV(
26095     VulkanStream* vkStream, VkStructureType rootType,
26096     const VkWriteDescriptorSetAccelerationStructureNV* forMarshaling) {
26097     (void)rootType;
26098     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26099     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26100         rootType = forMarshaling->sType;
26101     }
26102     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26103     vkStream->write((uint32_t*)&forMarshaling->accelerationStructureCount, sizeof(uint32_t));
26104     // WARNING PTR CHECK
26105     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAccelerationStructures;
26106     vkStream->putBe64(cgen_var_0);
26107     if (forMarshaling->pAccelerationStructures) {
26108         if (forMarshaling->accelerationStructureCount) {
26109             uint64_t* cgen_var_0_0;
26110             vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
26111             vkStream->handleMapping()->mapHandles_VkAccelerationStructureNV_u64(
26112                 forMarshaling->pAccelerationStructures, cgen_var_0_0,
26113                 forMarshaling->accelerationStructureCount);
26114             vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
26115         }
26116     }
26117 }
26118 
unmarshal_VkWriteDescriptorSetAccelerationStructureNV(VulkanStream * vkStream,VkStructureType rootType,VkWriteDescriptorSetAccelerationStructureNV * forUnmarshaling)26119 void unmarshal_VkWriteDescriptorSetAccelerationStructureNV(
26120     VulkanStream* vkStream, VkStructureType rootType,
26121     VkWriteDescriptorSetAccelerationStructureNV* forUnmarshaling) {
26122     (void)rootType;
26123     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26124     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26125         rootType = forUnmarshaling->sType;
26126     }
26127     size_t pNext_size;
26128     pNext_size = vkStream->getBe32();
26129     forUnmarshaling->pNext = nullptr;
26130     if (pNext_size) {
26131         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26132         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26133         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26134         vkStream->alloc((void**)&forUnmarshaling->pNext,
26135                         goldfish_vk_extension_struct_size_with_stream_features(
26136                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26137         *(VkStructureType*)forUnmarshaling->pNext = extType;
26138         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26139     }
26140     vkStream->read((uint32_t*)&forUnmarshaling->accelerationStructureCount, sizeof(uint32_t));
26141     // WARNING PTR CHECK
26142     forUnmarshaling->pAccelerationStructures =
26143         (const VkAccelerationStructureNV*)(uintptr_t)vkStream->getBe64();
26144     if (forUnmarshaling->pAccelerationStructures) {
26145         vkStream->alloc(
26146             (void**)&forUnmarshaling->pAccelerationStructures,
26147             forUnmarshaling->accelerationStructureCount * sizeof(const VkAccelerationStructureNV));
26148         if (forUnmarshaling->accelerationStructureCount) {
26149             uint64_t* cgen_var_0_0;
26150             vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->accelerationStructureCount * 8);
26151             vkStream->read((uint64_t*)cgen_var_0_0,
26152                            forUnmarshaling->accelerationStructureCount * 8);
26153             vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(
26154                 cgen_var_0_0, (VkAccelerationStructureNV*)forUnmarshaling->pAccelerationStructures,
26155                 forUnmarshaling->accelerationStructureCount);
26156         }
26157     }
26158 }
26159 
marshal_VkAccelerationStructureMemoryRequirementsInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureMemoryRequirementsInfoNV * forMarshaling)26160 void marshal_VkAccelerationStructureMemoryRequirementsInfoNV(
26161     VulkanStream* vkStream, VkStructureType rootType,
26162     const VkAccelerationStructureMemoryRequirementsInfoNV* forMarshaling) {
26163     (void)rootType;
26164     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26165     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26166         rootType = forMarshaling->sType;
26167     }
26168     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26169     vkStream->write((VkAccelerationStructureMemoryRequirementsTypeNV*)&forMarshaling->type,
26170                     sizeof(VkAccelerationStructureMemoryRequirementsTypeNV));
26171     uint64_t cgen_var_0;
26172     vkStream->handleMapping()->mapHandles_VkAccelerationStructureNV_u64(
26173         &forMarshaling->accelerationStructure, &cgen_var_0, 1);
26174     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
26175 }
26176 
unmarshal_VkAccelerationStructureMemoryRequirementsInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureMemoryRequirementsInfoNV * forUnmarshaling)26177 void unmarshal_VkAccelerationStructureMemoryRequirementsInfoNV(
26178     VulkanStream* vkStream, VkStructureType rootType,
26179     VkAccelerationStructureMemoryRequirementsInfoNV* forUnmarshaling) {
26180     (void)rootType;
26181     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26182     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26183         rootType = forUnmarshaling->sType;
26184     }
26185     size_t pNext_size;
26186     pNext_size = vkStream->getBe32();
26187     forUnmarshaling->pNext = nullptr;
26188     if (pNext_size) {
26189         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26190         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26191         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26192         vkStream->alloc((void**)&forUnmarshaling->pNext,
26193                         goldfish_vk_extension_struct_size_with_stream_features(
26194                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26195         *(VkStructureType*)forUnmarshaling->pNext = extType;
26196         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26197     }
26198     vkStream->read((VkAccelerationStructureMemoryRequirementsTypeNV*)&forUnmarshaling->type,
26199                    sizeof(VkAccelerationStructureMemoryRequirementsTypeNV));
26200     uint64_t cgen_var_0;
26201     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
26202     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(
26203         &cgen_var_0, (VkAccelerationStructureNV*)&forUnmarshaling->accelerationStructure, 1);
26204 }
26205 
marshal_VkPhysicalDeviceRayTracingPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingPropertiesNV * forMarshaling)26206 void marshal_VkPhysicalDeviceRayTracingPropertiesNV(
26207     VulkanStream* vkStream, VkStructureType rootType,
26208     const VkPhysicalDeviceRayTracingPropertiesNV* forMarshaling) {
26209     (void)rootType;
26210     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26211     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26212         rootType = forMarshaling->sType;
26213     }
26214     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26215     vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleSize, sizeof(uint32_t));
26216     vkStream->write((uint32_t*)&forMarshaling->maxRecursionDepth, sizeof(uint32_t));
26217     vkStream->write((uint32_t*)&forMarshaling->maxShaderGroupStride, sizeof(uint32_t));
26218     vkStream->write((uint32_t*)&forMarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
26219     vkStream->write((uint64_t*)&forMarshaling->maxGeometryCount, sizeof(uint64_t));
26220     vkStream->write((uint64_t*)&forMarshaling->maxInstanceCount, sizeof(uint64_t));
26221     vkStream->write((uint64_t*)&forMarshaling->maxTriangleCount, sizeof(uint64_t));
26222     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetAccelerationStructures,
26223                     sizeof(uint32_t));
26224 }
26225 
unmarshal_VkPhysicalDeviceRayTracingPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingPropertiesNV * forUnmarshaling)26226 void unmarshal_VkPhysicalDeviceRayTracingPropertiesNV(
26227     VulkanStream* vkStream, VkStructureType rootType,
26228     VkPhysicalDeviceRayTracingPropertiesNV* forUnmarshaling) {
26229     (void)rootType;
26230     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26231     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26232         rootType = forUnmarshaling->sType;
26233     }
26234     size_t pNext_size;
26235     pNext_size = vkStream->getBe32();
26236     forUnmarshaling->pNext = nullptr;
26237     if (pNext_size) {
26238         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26239         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26240         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26241         vkStream->alloc((void**)&forUnmarshaling->pNext,
26242                         goldfish_vk_extension_struct_size_with_stream_features(
26243                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26244         *(VkStructureType*)forUnmarshaling->pNext = extType;
26245         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26246     }
26247     vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleSize, sizeof(uint32_t));
26248     vkStream->read((uint32_t*)&forUnmarshaling->maxRecursionDepth, sizeof(uint32_t));
26249     vkStream->read((uint32_t*)&forUnmarshaling->maxShaderGroupStride, sizeof(uint32_t));
26250     vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
26251     vkStream->read((uint64_t*)&forUnmarshaling->maxGeometryCount, sizeof(uint64_t));
26252     vkStream->read((uint64_t*)&forUnmarshaling->maxInstanceCount, sizeof(uint64_t));
26253     vkStream->read((uint64_t*)&forUnmarshaling->maxTriangleCount, sizeof(uint64_t));
26254     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetAccelerationStructures,
26255                    sizeof(uint32_t));
26256 }
26257 
marshal_VkTransformMatrixKHR(VulkanStream * vkStream,VkStructureType rootType,const VkTransformMatrixKHR * forMarshaling)26258 void marshal_VkTransformMatrixKHR(VulkanStream* vkStream, VkStructureType rootType,
26259                                   const VkTransformMatrixKHR* forMarshaling) {
26260     (void)rootType;
26261     vkStream->write((float*)forMarshaling->matrix, ((3) * (4)) * sizeof(float));
26262 }
26263 
unmarshal_VkTransformMatrixKHR(VulkanStream * vkStream,VkStructureType rootType,VkTransformMatrixKHR * forUnmarshaling)26264 void unmarshal_VkTransformMatrixKHR(VulkanStream* vkStream, VkStructureType rootType,
26265                                     VkTransformMatrixKHR* forUnmarshaling) {
26266     (void)rootType;
26267     vkStream->read((float*)forUnmarshaling->matrix, ((3) * (4)) * sizeof(float));
26268 }
26269 
marshal_VkAabbPositionsKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAabbPositionsKHR * forMarshaling)26270 void marshal_VkAabbPositionsKHR(VulkanStream* vkStream, VkStructureType rootType,
26271                                 const VkAabbPositionsKHR* forMarshaling) {
26272     (void)rootType;
26273     vkStream->write((float*)&forMarshaling->minX, sizeof(float));
26274     vkStream->write((float*)&forMarshaling->minY, sizeof(float));
26275     vkStream->write((float*)&forMarshaling->minZ, sizeof(float));
26276     vkStream->write((float*)&forMarshaling->maxX, sizeof(float));
26277     vkStream->write((float*)&forMarshaling->maxY, sizeof(float));
26278     vkStream->write((float*)&forMarshaling->maxZ, sizeof(float));
26279 }
26280 
unmarshal_VkAabbPositionsKHR(VulkanStream * vkStream,VkStructureType rootType,VkAabbPositionsKHR * forUnmarshaling)26281 void unmarshal_VkAabbPositionsKHR(VulkanStream* vkStream, VkStructureType rootType,
26282                                   VkAabbPositionsKHR* forUnmarshaling) {
26283     (void)rootType;
26284     vkStream->read((float*)&forUnmarshaling->minX, sizeof(float));
26285     vkStream->read((float*)&forUnmarshaling->minY, sizeof(float));
26286     vkStream->read((float*)&forUnmarshaling->minZ, sizeof(float));
26287     vkStream->read((float*)&forUnmarshaling->maxX, sizeof(float));
26288     vkStream->read((float*)&forUnmarshaling->maxY, sizeof(float));
26289     vkStream->read((float*)&forUnmarshaling->maxZ, sizeof(float));
26290 }
26291 
marshal_VkAccelerationStructureInstanceKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureInstanceKHR * forMarshaling)26292 void marshal_VkAccelerationStructureInstanceKHR(
26293     VulkanStream* vkStream, VkStructureType rootType,
26294     const VkAccelerationStructureInstanceKHR* forMarshaling) {
26295     (void)rootType;
26296 
26297     typedef struct VkAccelerationStructureInstanceKHRWithoutBitFields {
26298         VkTransformMatrixKHR transform;
26299         uint32_t dwords[2];
26300         uint64_t accelerationStructureReference;
26301     } VkAccelerationStructureInstanceKHRWithoutBitFields;
26302 
26303     const VkAccelerationStructureInstanceKHRWithoutBitFields* forMarshaling_new =
26304         (const VkAccelerationStructureInstanceKHRWithoutBitFields*)(forMarshaling);
26305     marshal_VkTransformMatrixKHR(vkStream, rootType,
26306                                  (VkTransformMatrixKHR*)(&forMarshaling_new->transform));
26307     for (uint32_t i = 0; i < 2; i++) {
26308         vkStream->write((uint32_t*)&(forMarshaling_new->dwords[i]), sizeof(uint32_t));
26309     }
26310     vkStream->write((uint64_t*)&forMarshaling_new->accelerationStructureReference,
26311                     sizeof(uint64_t));
26312 }
26313 
unmarshal_VkAccelerationStructureInstanceKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureInstanceKHR * forUnmarshaling)26314 void unmarshal_VkAccelerationStructureInstanceKHR(
26315     VulkanStream* vkStream, VkStructureType rootType,
26316     VkAccelerationStructureInstanceKHR* forUnmarshaling) {
26317     (void)rootType;
26318 
26319     typedef struct VkAccelerationStructureInstanceKHRWithoutBitFields {
26320         VkTransformMatrixKHR transform;
26321         uint32_t dwords[2];
26322         uint64_t accelerationStructureReference;
26323     } VkAccelerationStructureInstanceKHRWithoutBitFields;
26324 
26325     VkAccelerationStructureInstanceKHRWithoutBitFields* forUnmarshaling_new =
26326         (VkAccelerationStructureInstanceKHRWithoutBitFields*)(forUnmarshaling);
26327     unmarshal_VkTransformMatrixKHR(vkStream, rootType,
26328                                    (VkTransformMatrixKHR*)(&forUnmarshaling_new->transform));
26329     for (uint32_t i = 0; i < 2; i++) {
26330         vkStream->read((uint32_t*)&(forUnmarshaling_new->dwords[i]), sizeof(uint32_t));
26331     }
26332     vkStream->read((uint64_t*)&forUnmarshaling_new->accelerationStructureReference,
26333                    sizeof(uint64_t));
26334 }
26335 
26336 #endif
26337 #ifdef VK_NV_representative_fragment_test
marshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV * forMarshaling)26338 void marshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
26339     VulkanStream* vkStream, VkStructureType rootType,
26340     const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forMarshaling) {
26341     (void)rootType;
26342     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26343     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26344         rootType = forMarshaling->sType;
26345     }
26346     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26347     vkStream->write((VkBool32*)&forMarshaling->representativeFragmentTest, sizeof(VkBool32));
26348 }
26349 
unmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV * forUnmarshaling)26350 void unmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
26351     VulkanStream* vkStream, VkStructureType rootType,
26352     VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forUnmarshaling) {
26353     (void)rootType;
26354     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26355     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26356         rootType = forUnmarshaling->sType;
26357     }
26358     size_t pNext_size;
26359     pNext_size = vkStream->getBe32();
26360     forUnmarshaling->pNext = nullptr;
26361     if (pNext_size) {
26362         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26363         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26364         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26365         vkStream->alloc((void**)&forUnmarshaling->pNext,
26366                         goldfish_vk_extension_struct_size_with_stream_features(
26367                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26368         *(VkStructureType*)forUnmarshaling->pNext = extType;
26369         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26370     }
26371     vkStream->read((VkBool32*)&forUnmarshaling->representativeFragmentTest, sizeof(VkBool32));
26372 }
26373 
marshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRepresentativeFragmentTestStateCreateInfoNV * forMarshaling)26374 void marshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
26375     VulkanStream* vkStream, VkStructureType rootType,
26376     const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forMarshaling) {
26377     (void)rootType;
26378     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26380         rootType = forMarshaling->sType;
26381     }
26382     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26383     vkStream->write((VkBool32*)&forMarshaling->representativeFragmentTestEnable, sizeof(VkBool32));
26384 }
26385 
unmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRepresentativeFragmentTestStateCreateInfoNV * forUnmarshaling)26386 void unmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
26387     VulkanStream* vkStream, VkStructureType rootType,
26388     VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forUnmarshaling) {
26389     (void)rootType;
26390     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26391     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26392         rootType = forUnmarshaling->sType;
26393     }
26394     size_t pNext_size;
26395     pNext_size = vkStream->getBe32();
26396     forUnmarshaling->pNext = nullptr;
26397     if (pNext_size) {
26398         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26399         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26400         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26401         vkStream->alloc((void**)&forUnmarshaling->pNext,
26402                         goldfish_vk_extension_struct_size_with_stream_features(
26403                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26404         *(VkStructureType*)forUnmarshaling->pNext = extType;
26405         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26406     }
26407     vkStream->read((VkBool32*)&forUnmarshaling->representativeFragmentTestEnable, sizeof(VkBool32));
26408 }
26409 
26410 #endif
26411 #ifdef VK_EXT_filter_cubic
marshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageViewImageFormatInfoEXT * forMarshaling)26412 void marshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
26413     VulkanStream* vkStream, VkStructureType rootType,
26414     const VkPhysicalDeviceImageViewImageFormatInfoEXT* forMarshaling) {
26415     (void)rootType;
26416     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26417     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26418         rootType = forMarshaling->sType;
26419     }
26420     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26421     vkStream->write((VkImageViewType*)&forMarshaling->imageViewType, sizeof(VkImageViewType));
26422 }
26423 
unmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageViewImageFormatInfoEXT * forUnmarshaling)26424 void unmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
26425     VulkanStream* vkStream, VkStructureType rootType,
26426     VkPhysicalDeviceImageViewImageFormatInfoEXT* forUnmarshaling) {
26427     (void)rootType;
26428     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26429     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26430         rootType = forUnmarshaling->sType;
26431     }
26432     size_t pNext_size;
26433     pNext_size = vkStream->getBe32();
26434     forUnmarshaling->pNext = nullptr;
26435     if (pNext_size) {
26436         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26437         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26438         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26439         vkStream->alloc((void**)&forUnmarshaling->pNext,
26440                         goldfish_vk_extension_struct_size_with_stream_features(
26441                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26442         *(VkStructureType*)forUnmarshaling->pNext = extType;
26443         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26444     }
26445     vkStream->read((VkImageViewType*)&forUnmarshaling->imageViewType, sizeof(VkImageViewType));
26446 }
26447 
marshal_VkFilterCubicImageViewImageFormatPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkFilterCubicImageViewImageFormatPropertiesEXT * forMarshaling)26448 void marshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
26449     VulkanStream* vkStream, VkStructureType rootType,
26450     const VkFilterCubicImageViewImageFormatPropertiesEXT* forMarshaling) {
26451     (void)rootType;
26452     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26453     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26454         rootType = forMarshaling->sType;
26455     }
26456     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26457     vkStream->write((VkBool32*)&forMarshaling->filterCubic, sizeof(VkBool32));
26458     vkStream->write((VkBool32*)&forMarshaling->filterCubicMinmax, sizeof(VkBool32));
26459 }
26460 
unmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkFilterCubicImageViewImageFormatPropertiesEXT * forUnmarshaling)26461 void unmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
26462     VulkanStream* vkStream, VkStructureType rootType,
26463     VkFilterCubicImageViewImageFormatPropertiesEXT* forUnmarshaling) {
26464     (void)rootType;
26465     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26466     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26467         rootType = forUnmarshaling->sType;
26468     }
26469     size_t pNext_size;
26470     pNext_size = vkStream->getBe32();
26471     forUnmarshaling->pNext = nullptr;
26472     if (pNext_size) {
26473         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26474         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26475         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26476         vkStream->alloc((void**)&forUnmarshaling->pNext,
26477                         goldfish_vk_extension_struct_size_with_stream_features(
26478                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26479         *(VkStructureType*)forUnmarshaling->pNext = extType;
26480         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26481     }
26482     vkStream->read((VkBool32*)&forUnmarshaling->filterCubic, sizeof(VkBool32));
26483     vkStream->read((VkBool32*)&forUnmarshaling->filterCubicMinmax, sizeof(VkBool32));
26484 }
26485 
26486 #endif
26487 #ifdef VK_QCOM_render_pass_shader_resolve
26488 #endif
26489 #ifdef VK_EXT_global_priority
26490 #endif
26491 #ifdef VK_EXT_external_memory_host
marshal_VkImportMemoryHostPointerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImportMemoryHostPointerInfoEXT * forMarshaling)26492 void marshal_VkImportMemoryHostPointerInfoEXT(
26493     VulkanStream* vkStream, VkStructureType rootType,
26494     const VkImportMemoryHostPointerInfoEXT* forMarshaling) {
26495     (void)rootType;
26496     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26497     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26498         rootType = forMarshaling->sType;
26499     }
26500     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26501     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
26502                     sizeof(VkExternalMemoryHandleTypeFlagBits));
26503     // WARNING PTR CHECK
26504     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
26505     vkStream->putBe64(cgen_var_0);
26506     if (forMarshaling->pHostPointer) {
26507         vkStream->write((void*)forMarshaling->pHostPointer, sizeof(uint8_t));
26508     }
26509 }
26510 
unmarshal_VkImportMemoryHostPointerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImportMemoryHostPointerInfoEXT * forUnmarshaling)26511 void unmarshal_VkImportMemoryHostPointerInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
26512                                                 VkImportMemoryHostPointerInfoEXT* forUnmarshaling) {
26513     (void)rootType;
26514     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26515     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26516         rootType = forUnmarshaling->sType;
26517     }
26518     size_t pNext_size;
26519     pNext_size = vkStream->getBe32();
26520     forUnmarshaling->pNext = nullptr;
26521     if (pNext_size) {
26522         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26523         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26524         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26525         vkStream->alloc((void**)&forUnmarshaling->pNext,
26526                         goldfish_vk_extension_struct_size_with_stream_features(
26527                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26528         *(VkStructureType*)forUnmarshaling->pNext = extType;
26529         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26530     }
26531     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
26532                    sizeof(VkExternalMemoryHandleTypeFlagBits));
26533     // WARNING PTR CHECK
26534     forUnmarshaling->pHostPointer = (void*)(uintptr_t)vkStream->getBe64();
26535     if (forUnmarshaling->pHostPointer) {
26536         vkStream->alloc((void**)&forUnmarshaling->pHostPointer, sizeof(uint8_t));
26537         vkStream->read((void*)forUnmarshaling->pHostPointer, sizeof(uint8_t));
26538     }
26539 }
26540 
marshal_VkMemoryHostPointerPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryHostPointerPropertiesEXT * forMarshaling)26541 void marshal_VkMemoryHostPointerPropertiesEXT(
26542     VulkanStream* vkStream, VkStructureType rootType,
26543     const VkMemoryHostPointerPropertiesEXT* forMarshaling) {
26544     (void)rootType;
26545     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26546     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26547         rootType = forMarshaling->sType;
26548     }
26549     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26550     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
26551 }
26552 
unmarshal_VkMemoryHostPointerPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkMemoryHostPointerPropertiesEXT * forUnmarshaling)26553 void unmarshal_VkMemoryHostPointerPropertiesEXT(VulkanStream* vkStream, VkStructureType rootType,
26554                                                 VkMemoryHostPointerPropertiesEXT* forUnmarshaling) {
26555     (void)rootType;
26556     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26557     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26558         rootType = forUnmarshaling->sType;
26559     }
26560     size_t pNext_size;
26561     pNext_size = vkStream->getBe32();
26562     forUnmarshaling->pNext = nullptr;
26563     if (pNext_size) {
26564         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26565         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26566         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26567         vkStream->alloc((void**)&forUnmarshaling->pNext,
26568                         goldfish_vk_extension_struct_size_with_stream_features(
26569                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26570         *(VkStructureType*)forUnmarshaling->pNext = extType;
26571         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26572     }
26573     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
26574 }
26575 
marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalMemoryHostPropertiesEXT * forMarshaling)26576 void marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
26577     VulkanStream* vkStream, VkStructureType rootType,
26578     const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forMarshaling) {
26579     (void)rootType;
26580     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26581     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26582         rootType = forMarshaling->sType;
26583     }
26584     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26585     vkStream->write((VkDeviceSize*)&forMarshaling->minImportedHostPointerAlignment,
26586                     sizeof(VkDeviceSize));
26587 }
26588 
unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalMemoryHostPropertiesEXT * forUnmarshaling)26589 void unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
26590     VulkanStream* vkStream, VkStructureType rootType,
26591     VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling) {
26592     (void)rootType;
26593     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26594     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26595         rootType = forUnmarshaling->sType;
26596     }
26597     size_t pNext_size;
26598     pNext_size = vkStream->getBe32();
26599     forUnmarshaling->pNext = nullptr;
26600     if (pNext_size) {
26601         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26602         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26603         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26604         vkStream->alloc((void**)&forUnmarshaling->pNext,
26605                         goldfish_vk_extension_struct_size_with_stream_features(
26606                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26607         *(VkStructureType*)forUnmarshaling->pNext = extType;
26608         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26609     }
26610     vkStream->read((VkDeviceSize*)&forUnmarshaling->minImportedHostPointerAlignment,
26611                    sizeof(VkDeviceSize));
26612 }
26613 
26614 #endif
26615 #ifdef VK_AMD_buffer_marker
26616 #endif
26617 #ifdef VK_AMD_pipeline_compiler_control
marshal_VkPipelineCompilerControlCreateInfoAMD(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCompilerControlCreateInfoAMD * forMarshaling)26618 void marshal_VkPipelineCompilerControlCreateInfoAMD(
26619     VulkanStream* vkStream, VkStructureType rootType,
26620     const VkPipelineCompilerControlCreateInfoAMD* forMarshaling) {
26621     (void)rootType;
26622     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26623     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26624         rootType = forMarshaling->sType;
26625     }
26626     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26627     vkStream->write((VkPipelineCompilerControlFlagsAMD*)&forMarshaling->compilerControlFlags,
26628                     sizeof(VkPipelineCompilerControlFlagsAMD));
26629 }
26630 
unmarshal_VkPipelineCompilerControlCreateInfoAMD(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCompilerControlCreateInfoAMD * forUnmarshaling)26631 void unmarshal_VkPipelineCompilerControlCreateInfoAMD(
26632     VulkanStream* vkStream, VkStructureType rootType,
26633     VkPipelineCompilerControlCreateInfoAMD* forUnmarshaling) {
26634     (void)rootType;
26635     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26636     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26637         rootType = forUnmarshaling->sType;
26638     }
26639     size_t pNext_size;
26640     pNext_size = vkStream->getBe32();
26641     forUnmarshaling->pNext = nullptr;
26642     if (pNext_size) {
26643         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26644         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26645         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26646         vkStream->alloc((void**)&forUnmarshaling->pNext,
26647                         goldfish_vk_extension_struct_size_with_stream_features(
26648                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26649         *(VkStructureType*)forUnmarshaling->pNext = extType;
26650         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26651     }
26652     vkStream->read((VkPipelineCompilerControlFlagsAMD*)&forUnmarshaling->compilerControlFlags,
26653                    sizeof(VkPipelineCompilerControlFlagsAMD));
26654 }
26655 
26656 #endif
26657 #ifdef VK_EXT_calibrated_timestamps
marshal_VkCalibratedTimestampInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkCalibratedTimestampInfoEXT * forMarshaling)26658 void marshal_VkCalibratedTimestampInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
26659                                           const VkCalibratedTimestampInfoEXT* forMarshaling) {
26660     (void)rootType;
26661     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26662     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26663         rootType = forMarshaling->sType;
26664     }
26665     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26666     vkStream->write((VkTimeDomainEXT*)&forMarshaling->timeDomain, sizeof(VkTimeDomainEXT));
26667 }
26668 
unmarshal_VkCalibratedTimestampInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCalibratedTimestampInfoEXT * forUnmarshaling)26669 void unmarshal_VkCalibratedTimestampInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
26670                                             VkCalibratedTimestampInfoEXT* forUnmarshaling) {
26671     (void)rootType;
26672     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26673     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26674         rootType = forUnmarshaling->sType;
26675     }
26676     size_t pNext_size;
26677     pNext_size = vkStream->getBe32();
26678     forUnmarshaling->pNext = nullptr;
26679     if (pNext_size) {
26680         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26681         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26682         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26683         vkStream->alloc((void**)&forUnmarshaling->pNext,
26684                         goldfish_vk_extension_struct_size_with_stream_features(
26685                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26686         *(VkStructureType*)forUnmarshaling->pNext = extType;
26687         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26688     }
26689     vkStream->read((VkTimeDomainEXT*)&forUnmarshaling->timeDomain, sizeof(VkTimeDomainEXT));
26690 }
26691 
26692 #endif
26693 #ifdef VK_AMD_shader_core_properties
marshal_VkPhysicalDeviceShaderCorePropertiesAMD(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderCorePropertiesAMD * forMarshaling)26694 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
26695     VulkanStream* vkStream, VkStructureType rootType,
26696     const VkPhysicalDeviceShaderCorePropertiesAMD* forMarshaling) {
26697     (void)rootType;
26698     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26699     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26700         rootType = forMarshaling->sType;
26701     }
26702     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26703     vkStream->write((uint32_t*)&forMarshaling->shaderEngineCount, sizeof(uint32_t));
26704     vkStream->write((uint32_t*)&forMarshaling->shaderArraysPerEngineCount, sizeof(uint32_t));
26705     vkStream->write((uint32_t*)&forMarshaling->computeUnitsPerShaderArray, sizeof(uint32_t));
26706     vkStream->write((uint32_t*)&forMarshaling->simdPerComputeUnit, sizeof(uint32_t));
26707     vkStream->write((uint32_t*)&forMarshaling->wavefrontsPerSimd, sizeof(uint32_t));
26708     vkStream->write((uint32_t*)&forMarshaling->wavefrontSize, sizeof(uint32_t));
26709     vkStream->write((uint32_t*)&forMarshaling->sgprsPerSimd, sizeof(uint32_t));
26710     vkStream->write((uint32_t*)&forMarshaling->minSgprAllocation, sizeof(uint32_t));
26711     vkStream->write((uint32_t*)&forMarshaling->maxSgprAllocation, sizeof(uint32_t));
26712     vkStream->write((uint32_t*)&forMarshaling->sgprAllocationGranularity, sizeof(uint32_t));
26713     vkStream->write((uint32_t*)&forMarshaling->vgprsPerSimd, sizeof(uint32_t));
26714     vkStream->write((uint32_t*)&forMarshaling->minVgprAllocation, sizeof(uint32_t));
26715     vkStream->write((uint32_t*)&forMarshaling->maxVgprAllocation, sizeof(uint32_t));
26716     vkStream->write((uint32_t*)&forMarshaling->vgprAllocationGranularity, sizeof(uint32_t));
26717 }
26718 
unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderCorePropertiesAMD * forUnmarshaling)26719 void unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
26720     VulkanStream* vkStream, VkStructureType rootType,
26721     VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling) {
26722     (void)rootType;
26723     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26724     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26725         rootType = forUnmarshaling->sType;
26726     }
26727     size_t pNext_size;
26728     pNext_size = vkStream->getBe32();
26729     forUnmarshaling->pNext = nullptr;
26730     if (pNext_size) {
26731         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26732         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26733         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26734         vkStream->alloc((void**)&forUnmarshaling->pNext,
26735                         goldfish_vk_extension_struct_size_with_stream_features(
26736                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26737         *(VkStructureType*)forUnmarshaling->pNext = extType;
26738         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26739     }
26740     vkStream->read((uint32_t*)&forUnmarshaling->shaderEngineCount, sizeof(uint32_t));
26741     vkStream->read((uint32_t*)&forUnmarshaling->shaderArraysPerEngineCount, sizeof(uint32_t));
26742     vkStream->read((uint32_t*)&forUnmarshaling->computeUnitsPerShaderArray, sizeof(uint32_t));
26743     vkStream->read((uint32_t*)&forUnmarshaling->simdPerComputeUnit, sizeof(uint32_t));
26744     vkStream->read((uint32_t*)&forUnmarshaling->wavefrontsPerSimd, sizeof(uint32_t));
26745     vkStream->read((uint32_t*)&forUnmarshaling->wavefrontSize, sizeof(uint32_t));
26746     vkStream->read((uint32_t*)&forUnmarshaling->sgprsPerSimd, sizeof(uint32_t));
26747     vkStream->read((uint32_t*)&forUnmarshaling->minSgprAllocation, sizeof(uint32_t));
26748     vkStream->read((uint32_t*)&forUnmarshaling->maxSgprAllocation, sizeof(uint32_t));
26749     vkStream->read((uint32_t*)&forUnmarshaling->sgprAllocationGranularity, sizeof(uint32_t));
26750     vkStream->read((uint32_t*)&forUnmarshaling->vgprsPerSimd, sizeof(uint32_t));
26751     vkStream->read((uint32_t*)&forUnmarshaling->minVgprAllocation, sizeof(uint32_t));
26752     vkStream->read((uint32_t*)&forUnmarshaling->maxVgprAllocation, sizeof(uint32_t));
26753     vkStream->read((uint32_t*)&forUnmarshaling->vgprAllocationGranularity, sizeof(uint32_t));
26754 }
26755 
26756 #endif
26757 #ifdef VK_AMD_memory_overallocation_behavior
marshal_VkDeviceMemoryOverallocationCreateInfoAMD(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceMemoryOverallocationCreateInfoAMD * forMarshaling)26758 void marshal_VkDeviceMemoryOverallocationCreateInfoAMD(
26759     VulkanStream* vkStream, VkStructureType rootType,
26760     const VkDeviceMemoryOverallocationCreateInfoAMD* forMarshaling) {
26761     (void)rootType;
26762     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26763     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26764         rootType = forMarshaling->sType;
26765     }
26766     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26767     vkStream->write((VkMemoryOverallocationBehaviorAMD*)&forMarshaling->overallocationBehavior,
26768                     sizeof(VkMemoryOverallocationBehaviorAMD));
26769 }
26770 
unmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(VulkanStream * vkStream,VkStructureType rootType,VkDeviceMemoryOverallocationCreateInfoAMD * forUnmarshaling)26771 void unmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
26772     VulkanStream* vkStream, VkStructureType rootType,
26773     VkDeviceMemoryOverallocationCreateInfoAMD* forUnmarshaling) {
26774     (void)rootType;
26775     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26776     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26777         rootType = forUnmarshaling->sType;
26778     }
26779     size_t pNext_size;
26780     pNext_size = vkStream->getBe32();
26781     forUnmarshaling->pNext = nullptr;
26782     if (pNext_size) {
26783         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26784         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26785         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26786         vkStream->alloc((void**)&forUnmarshaling->pNext,
26787                         goldfish_vk_extension_struct_size_with_stream_features(
26788                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26789         *(VkStructureType*)forUnmarshaling->pNext = extType;
26790         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26791     }
26792     vkStream->read((VkMemoryOverallocationBehaviorAMD*)&forUnmarshaling->overallocationBehavior,
26793                    sizeof(VkMemoryOverallocationBehaviorAMD));
26794 }
26795 
26796 #endif
26797 #ifdef VK_EXT_vertex_attribute_divisor
marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forMarshaling)26798 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
26799     VulkanStream* vkStream, VkStructureType rootType,
26800     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling) {
26801     (void)rootType;
26802     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26803     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26804         rootType = forMarshaling->sType;
26805     }
26806     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26807     vkStream->write((uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
26808 }
26809 
unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forUnmarshaling)26810 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
26811     VulkanStream* vkStream, VkStructureType rootType,
26812     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling) {
26813     (void)rootType;
26814     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26815     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26816         rootType = forUnmarshaling->sType;
26817     }
26818     size_t pNext_size;
26819     pNext_size = vkStream->getBe32();
26820     forUnmarshaling->pNext = nullptr;
26821     if (pNext_size) {
26822         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26823         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26824         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26825         vkStream->alloc((void**)&forUnmarshaling->pNext,
26826                         goldfish_vk_extension_struct_size_with_stream_features(
26827                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26828         *(VkStructureType*)forUnmarshaling->pNext = extType;
26829         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26830     }
26831     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
26832 }
26833 
marshal_VkVertexInputBindingDivisorDescriptionEXT(VulkanStream * vkStream,VkStructureType rootType,const VkVertexInputBindingDivisorDescriptionEXT * forMarshaling)26834 void marshal_VkVertexInputBindingDivisorDescriptionEXT(
26835     VulkanStream* vkStream, VkStructureType rootType,
26836     const VkVertexInputBindingDivisorDescriptionEXT* forMarshaling) {
26837     (void)rootType;
26838     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
26839     vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
26840 }
26841 
unmarshal_VkVertexInputBindingDivisorDescriptionEXT(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputBindingDivisorDescriptionEXT * forUnmarshaling)26842 void unmarshal_VkVertexInputBindingDivisorDescriptionEXT(
26843     VulkanStream* vkStream, VkStructureType rootType,
26844     VkVertexInputBindingDivisorDescriptionEXT* forUnmarshaling) {
26845     (void)rootType;
26846     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
26847     vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
26848 }
26849 
marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineVertexInputDivisorStateCreateInfoEXT * forMarshaling)26850 void marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
26851     VulkanStream* vkStream, VkStructureType rootType,
26852     const VkPipelineVertexInputDivisorStateCreateInfoEXT* forMarshaling) {
26853     (void)rootType;
26854     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26855     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26856         rootType = forMarshaling->sType;
26857     }
26858     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26859     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
26860     if (forMarshaling) {
26861         for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDivisorCount; ++i) {
26862             marshal_VkVertexInputBindingDivisorDescriptionEXT(
26863                 vkStream, rootType,
26864                 (const VkVertexInputBindingDivisorDescriptionEXT*)(forMarshaling
26865                                                                        ->pVertexBindingDivisors +
26866                                                                    i));
26867         }
26868     }
26869 }
26870 
unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineVertexInputDivisorStateCreateInfoEXT * forUnmarshaling)26871 void unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
26872     VulkanStream* vkStream, VkStructureType rootType,
26873     VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling) {
26874     (void)rootType;
26875     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26876     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26877         rootType = forUnmarshaling->sType;
26878     }
26879     size_t pNext_size;
26880     pNext_size = vkStream->getBe32();
26881     forUnmarshaling->pNext = nullptr;
26882     if (pNext_size) {
26883         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26884         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26885         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26886         vkStream->alloc((void**)&forUnmarshaling->pNext,
26887                         goldfish_vk_extension_struct_size_with_stream_features(
26888                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26889         *(VkStructureType*)forUnmarshaling->pNext = extType;
26890         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26891     }
26892     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
26893     vkStream->alloc((void**)&forUnmarshaling->pVertexBindingDivisors,
26894                     forUnmarshaling->vertexBindingDivisorCount *
26895                         sizeof(const VkVertexInputBindingDivisorDescriptionEXT));
26896     if (forUnmarshaling) {
26897         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDivisorCount; ++i) {
26898             unmarshal_VkVertexInputBindingDivisorDescriptionEXT(
26899                 vkStream, rootType,
26900                 (VkVertexInputBindingDivisorDescriptionEXT*)(forUnmarshaling
26901                                                                  ->pVertexBindingDivisors +
26902                                                              i));
26903         }
26904     }
26905 }
26906 
marshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * forMarshaling)26907 void marshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
26908     VulkanStream* vkStream, VkStructureType rootType,
26909     const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forMarshaling) {
26910     (void)rootType;
26911     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26912     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26913         rootType = forMarshaling->sType;
26914     }
26915     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26916     vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateDivisor,
26917                     sizeof(VkBool32));
26918     vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateZeroDivisor,
26919                     sizeof(VkBool32));
26920 }
26921 
unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * forUnmarshaling)26922 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
26923     VulkanStream* vkStream, VkStructureType rootType,
26924     VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forUnmarshaling) {
26925     (void)rootType;
26926     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26928         rootType = forUnmarshaling->sType;
26929     }
26930     size_t pNext_size;
26931     pNext_size = vkStream->getBe32();
26932     forUnmarshaling->pNext = nullptr;
26933     if (pNext_size) {
26934         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26935         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26936         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26937         vkStream->alloc((void**)&forUnmarshaling->pNext,
26938                         goldfish_vk_extension_struct_size_with_stream_features(
26939                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26940         *(VkStructureType*)forUnmarshaling->pNext = extType;
26941         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26942     }
26943     vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateDivisor,
26944                    sizeof(VkBool32));
26945     vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateZeroDivisor,
26946                    sizeof(VkBool32));
26947 }
26948 
26949 #endif
26950 #ifdef VK_GGP_frame_token
marshal_VkPresentFrameTokenGGP(VulkanStream * vkStream,VkStructureType rootType,const VkPresentFrameTokenGGP * forMarshaling)26951 void marshal_VkPresentFrameTokenGGP(VulkanStream* vkStream, VkStructureType rootType,
26952                                     const VkPresentFrameTokenGGP* forMarshaling) {
26953     (void)rootType;
26954     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26955     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26956         rootType = forMarshaling->sType;
26957     }
26958     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
26959     vkStream->write((GgpFrameToken*)&forMarshaling->frameToken, sizeof(GgpFrameToken));
26960 }
26961 
unmarshal_VkPresentFrameTokenGGP(VulkanStream * vkStream,VkStructureType rootType,VkPresentFrameTokenGGP * forUnmarshaling)26962 void unmarshal_VkPresentFrameTokenGGP(VulkanStream* vkStream, VkStructureType rootType,
26963                                       VkPresentFrameTokenGGP* forUnmarshaling) {
26964     (void)rootType;
26965     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
26966     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26967         rootType = forUnmarshaling->sType;
26968     }
26969     size_t pNext_size;
26970     pNext_size = vkStream->getBe32();
26971     forUnmarshaling->pNext = nullptr;
26972     if (pNext_size) {
26973         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
26974         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
26975         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
26976         vkStream->alloc((void**)&forUnmarshaling->pNext,
26977                         goldfish_vk_extension_struct_size_with_stream_features(
26978                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
26979         *(VkStructureType*)forUnmarshaling->pNext = extType;
26980         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
26981     }
26982     vkStream->read((GgpFrameToken*)&forUnmarshaling->frameToken, sizeof(GgpFrameToken));
26983 }
26984 
26985 #endif
26986 #ifdef VK_EXT_pipeline_creation_feedback
26987 #endif
26988 #ifdef VK_NV_shader_subgroup_partitioned
26989 #endif
26990 #ifdef VK_NV_compute_shader_derivatives
marshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV * forMarshaling)26991 void marshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
26992     VulkanStream* vkStream, VkStructureType rootType,
26993     const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forMarshaling) {
26994     (void)rootType;
26995     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
26996     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
26997         rootType = forMarshaling->sType;
26998     }
26999     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27000     vkStream->write((VkBool32*)&forMarshaling->computeDerivativeGroupQuads, sizeof(VkBool32));
27001     vkStream->write((VkBool32*)&forMarshaling->computeDerivativeGroupLinear, sizeof(VkBool32));
27002 }
27003 
unmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceComputeShaderDerivativesFeaturesNV * forUnmarshaling)27004 void unmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
27005     VulkanStream* vkStream, VkStructureType rootType,
27006     VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forUnmarshaling) {
27007     (void)rootType;
27008     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27009     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27010         rootType = forUnmarshaling->sType;
27011     }
27012     size_t pNext_size;
27013     pNext_size = vkStream->getBe32();
27014     forUnmarshaling->pNext = nullptr;
27015     if (pNext_size) {
27016         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27017         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27018         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27019         vkStream->alloc((void**)&forUnmarshaling->pNext,
27020                         goldfish_vk_extension_struct_size_with_stream_features(
27021                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27022         *(VkStructureType*)forUnmarshaling->pNext = extType;
27023         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27024     }
27025     vkStream->read((VkBool32*)&forUnmarshaling->computeDerivativeGroupQuads, sizeof(VkBool32));
27026     vkStream->read((VkBool32*)&forUnmarshaling->computeDerivativeGroupLinear, sizeof(VkBool32));
27027 }
27028 
27029 #endif
27030 #ifdef VK_NV_mesh_shader
marshal_VkPhysicalDeviceMeshShaderFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMeshShaderFeaturesNV * forMarshaling)27031 void marshal_VkPhysicalDeviceMeshShaderFeaturesNV(
27032     VulkanStream* vkStream, VkStructureType rootType,
27033     const VkPhysicalDeviceMeshShaderFeaturesNV* forMarshaling) {
27034     (void)rootType;
27035     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27036     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27037         rootType = forMarshaling->sType;
27038     }
27039     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27040     vkStream->write((VkBool32*)&forMarshaling->taskShader, sizeof(VkBool32));
27041     vkStream->write((VkBool32*)&forMarshaling->meshShader, sizeof(VkBool32));
27042 }
27043 
unmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMeshShaderFeaturesNV * forUnmarshaling)27044 void unmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(
27045     VulkanStream* vkStream, VkStructureType rootType,
27046     VkPhysicalDeviceMeshShaderFeaturesNV* forUnmarshaling) {
27047     (void)rootType;
27048     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27049     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27050         rootType = forUnmarshaling->sType;
27051     }
27052     size_t pNext_size;
27053     pNext_size = vkStream->getBe32();
27054     forUnmarshaling->pNext = nullptr;
27055     if (pNext_size) {
27056         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27057         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27058         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27059         vkStream->alloc((void**)&forUnmarshaling->pNext,
27060                         goldfish_vk_extension_struct_size_with_stream_features(
27061                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27062         *(VkStructureType*)forUnmarshaling->pNext = extType;
27063         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27064     }
27065     vkStream->read((VkBool32*)&forUnmarshaling->taskShader, sizeof(VkBool32));
27066     vkStream->read((VkBool32*)&forUnmarshaling->meshShader, sizeof(VkBool32));
27067 }
27068 
marshal_VkPhysicalDeviceMeshShaderPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMeshShaderPropertiesNV * forMarshaling)27069 void marshal_VkPhysicalDeviceMeshShaderPropertiesNV(
27070     VulkanStream* vkStream, VkStructureType rootType,
27071     const VkPhysicalDeviceMeshShaderPropertiesNV* forMarshaling) {
27072     (void)rootType;
27073     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27074     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27075         rootType = forMarshaling->sType;
27076     }
27077     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27078     vkStream->write((uint32_t*)&forMarshaling->maxDrawMeshTasksCount, sizeof(uint32_t));
27079     vkStream->write((uint32_t*)&forMarshaling->maxTaskWorkGroupInvocations, sizeof(uint32_t));
27080     vkStream->write((uint32_t*)forMarshaling->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
27081     vkStream->write((uint32_t*)&forMarshaling->maxTaskTotalMemorySize, sizeof(uint32_t));
27082     vkStream->write((uint32_t*)&forMarshaling->maxTaskOutputCount, sizeof(uint32_t));
27083     vkStream->write((uint32_t*)&forMarshaling->maxMeshWorkGroupInvocations, sizeof(uint32_t));
27084     vkStream->write((uint32_t*)forMarshaling->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
27085     vkStream->write((uint32_t*)&forMarshaling->maxMeshTotalMemorySize, sizeof(uint32_t));
27086     vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputVertices, sizeof(uint32_t));
27087     vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputPrimitives, sizeof(uint32_t));
27088     vkStream->write((uint32_t*)&forMarshaling->maxMeshMultiviewViewCount, sizeof(uint32_t));
27089     vkStream->write((uint32_t*)&forMarshaling->meshOutputPerVertexGranularity, sizeof(uint32_t));
27090     vkStream->write((uint32_t*)&forMarshaling->meshOutputPerPrimitiveGranularity, sizeof(uint32_t));
27091 }
27092 
unmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMeshShaderPropertiesNV * forUnmarshaling)27093 void unmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(
27094     VulkanStream* vkStream, VkStructureType rootType,
27095     VkPhysicalDeviceMeshShaderPropertiesNV* forUnmarshaling) {
27096     (void)rootType;
27097     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27098     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27099         rootType = forUnmarshaling->sType;
27100     }
27101     size_t pNext_size;
27102     pNext_size = vkStream->getBe32();
27103     forUnmarshaling->pNext = nullptr;
27104     if (pNext_size) {
27105         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27106         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27107         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27108         vkStream->alloc((void**)&forUnmarshaling->pNext,
27109                         goldfish_vk_extension_struct_size_with_stream_features(
27110                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27111         *(VkStructureType*)forUnmarshaling->pNext = extType;
27112         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27113     }
27114     vkStream->read((uint32_t*)&forUnmarshaling->maxDrawMeshTasksCount, sizeof(uint32_t));
27115     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskWorkGroupInvocations, sizeof(uint32_t));
27116     vkStream->read((uint32_t*)forUnmarshaling->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
27117     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskTotalMemorySize, sizeof(uint32_t));
27118     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskOutputCount, sizeof(uint32_t));
27119     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshWorkGroupInvocations, sizeof(uint32_t));
27120     vkStream->read((uint32_t*)forUnmarshaling->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
27121     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshTotalMemorySize, sizeof(uint32_t));
27122     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputVertices, sizeof(uint32_t));
27123     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputPrimitives, sizeof(uint32_t));
27124     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshMultiviewViewCount, sizeof(uint32_t));
27125     vkStream->read((uint32_t*)&forUnmarshaling->meshOutputPerVertexGranularity, sizeof(uint32_t));
27126     vkStream->read((uint32_t*)&forUnmarshaling->meshOutputPerPrimitiveGranularity,
27127                    sizeof(uint32_t));
27128 }
27129 
marshal_VkDrawMeshTasksIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,const VkDrawMeshTasksIndirectCommandNV * forMarshaling)27130 void marshal_VkDrawMeshTasksIndirectCommandNV(
27131     VulkanStream* vkStream, VkStructureType rootType,
27132     const VkDrawMeshTasksIndirectCommandNV* forMarshaling) {
27133     (void)rootType;
27134     vkStream->write((uint32_t*)&forMarshaling->taskCount, sizeof(uint32_t));
27135     vkStream->write((uint32_t*)&forMarshaling->firstTask, sizeof(uint32_t));
27136 }
27137 
unmarshal_VkDrawMeshTasksIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,VkDrawMeshTasksIndirectCommandNV * forUnmarshaling)27138 void unmarshal_VkDrawMeshTasksIndirectCommandNV(VulkanStream* vkStream, VkStructureType rootType,
27139                                                 VkDrawMeshTasksIndirectCommandNV* forUnmarshaling) {
27140     (void)rootType;
27141     vkStream->read((uint32_t*)&forUnmarshaling->taskCount, sizeof(uint32_t));
27142     vkStream->read((uint32_t*)&forUnmarshaling->firstTask, sizeof(uint32_t));
27143 }
27144 
27145 #endif
27146 #ifdef VK_NV_fragment_shader_barycentric
27147 #endif
27148 #ifdef VK_NV_shader_image_footprint
marshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderImageFootprintFeaturesNV * forMarshaling)27149 void marshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
27150     VulkanStream* vkStream, VkStructureType rootType,
27151     const VkPhysicalDeviceShaderImageFootprintFeaturesNV* forMarshaling) {
27152     (void)rootType;
27153     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27154     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27155         rootType = forMarshaling->sType;
27156     }
27157     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27158     vkStream->write((VkBool32*)&forMarshaling->imageFootprint, sizeof(VkBool32));
27159 }
27160 
unmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderImageFootprintFeaturesNV * forUnmarshaling)27161 void unmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
27162     VulkanStream* vkStream, VkStructureType rootType,
27163     VkPhysicalDeviceShaderImageFootprintFeaturesNV* forUnmarshaling) {
27164     (void)rootType;
27165     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27166     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27167         rootType = forUnmarshaling->sType;
27168     }
27169     size_t pNext_size;
27170     pNext_size = vkStream->getBe32();
27171     forUnmarshaling->pNext = nullptr;
27172     if (pNext_size) {
27173         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27174         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27175         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27176         vkStream->alloc((void**)&forUnmarshaling->pNext,
27177                         goldfish_vk_extension_struct_size_with_stream_features(
27178                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27179         *(VkStructureType*)forUnmarshaling->pNext = extType;
27180         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27181     }
27182     vkStream->read((VkBool32*)&forUnmarshaling->imageFootprint, sizeof(VkBool32));
27183 }
27184 
27185 #endif
27186 #ifdef VK_NV_scissor_exclusive
marshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineViewportExclusiveScissorStateCreateInfoNV * forMarshaling)27187 void marshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
27188     VulkanStream* vkStream, VkStructureType rootType,
27189     const VkPipelineViewportExclusiveScissorStateCreateInfoNV* forMarshaling) {
27190     (void)rootType;
27191     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27193         rootType = forMarshaling->sType;
27194     }
27195     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27196     vkStream->write((uint32_t*)&forMarshaling->exclusiveScissorCount, sizeof(uint32_t));
27197     // WARNING PTR CHECK
27198     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pExclusiveScissors;
27199     vkStream->putBe64(cgen_var_0);
27200     if (forMarshaling->pExclusiveScissors) {
27201         if (forMarshaling) {
27202             for (uint32_t i = 0; i < (uint32_t)forMarshaling->exclusiveScissorCount; ++i) {
27203                 marshal_VkRect2D(vkStream, rootType,
27204                                  (const VkRect2D*)(forMarshaling->pExclusiveScissors + i));
27205             }
27206         }
27207     }
27208 }
27209 
unmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportExclusiveScissorStateCreateInfoNV * forUnmarshaling)27210 void unmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
27211     VulkanStream* vkStream, VkStructureType rootType,
27212     VkPipelineViewportExclusiveScissorStateCreateInfoNV* forUnmarshaling) {
27213     (void)rootType;
27214     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27215     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27216         rootType = forUnmarshaling->sType;
27217     }
27218     size_t pNext_size;
27219     pNext_size = vkStream->getBe32();
27220     forUnmarshaling->pNext = nullptr;
27221     if (pNext_size) {
27222         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27223         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27224         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27225         vkStream->alloc((void**)&forUnmarshaling->pNext,
27226                         goldfish_vk_extension_struct_size_with_stream_features(
27227                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27228         *(VkStructureType*)forUnmarshaling->pNext = extType;
27229         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27230     }
27231     vkStream->read((uint32_t*)&forUnmarshaling->exclusiveScissorCount, sizeof(uint32_t));
27232     // WARNING PTR CHECK
27233     forUnmarshaling->pExclusiveScissors = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
27234     if (forUnmarshaling->pExclusiveScissors) {
27235         vkStream->alloc((void**)&forUnmarshaling->pExclusiveScissors,
27236                         forUnmarshaling->exclusiveScissorCount * sizeof(const VkRect2D));
27237         if (forUnmarshaling) {
27238             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->exclusiveScissorCount; ++i) {
27239                 unmarshal_VkRect2D(vkStream, rootType,
27240                                    (VkRect2D*)(forUnmarshaling->pExclusiveScissors + i));
27241             }
27242         }
27243     }
27244 }
27245 
marshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExclusiveScissorFeaturesNV * forMarshaling)27246 void marshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
27247     VulkanStream* vkStream, VkStructureType rootType,
27248     const VkPhysicalDeviceExclusiveScissorFeaturesNV* forMarshaling) {
27249     (void)rootType;
27250     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27251     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27252         rootType = forMarshaling->sType;
27253     }
27254     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27255     vkStream->write((VkBool32*)&forMarshaling->exclusiveScissor, sizeof(VkBool32));
27256 }
27257 
unmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExclusiveScissorFeaturesNV * forUnmarshaling)27258 void unmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
27259     VulkanStream* vkStream, VkStructureType rootType,
27260     VkPhysicalDeviceExclusiveScissorFeaturesNV* forUnmarshaling) {
27261     (void)rootType;
27262     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27263     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27264         rootType = forUnmarshaling->sType;
27265     }
27266     size_t pNext_size;
27267     pNext_size = vkStream->getBe32();
27268     forUnmarshaling->pNext = nullptr;
27269     if (pNext_size) {
27270         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27271         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27272         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27273         vkStream->alloc((void**)&forUnmarshaling->pNext,
27274                         goldfish_vk_extension_struct_size_with_stream_features(
27275                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27276         *(VkStructureType*)forUnmarshaling->pNext = extType;
27277         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27278     }
27279     vkStream->read((VkBool32*)&forUnmarshaling->exclusiveScissor, sizeof(VkBool32));
27280 }
27281 
27282 #endif
27283 #ifdef VK_NV_device_diagnostic_checkpoints
marshal_VkQueueFamilyCheckpointPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkQueueFamilyCheckpointPropertiesNV * forMarshaling)27284 void marshal_VkQueueFamilyCheckpointPropertiesNV(
27285     VulkanStream* vkStream, VkStructureType rootType,
27286     const VkQueueFamilyCheckpointPropertiesNV* forMarshaling) {
27287     (void)rootType;
27288     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27289     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27290         rootType = forMarshaling->sType;
27291     }
27292     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27293     vkStream->write((VkPipelineStageFlags*)&forMarshaling->checkpointExecutionStageMask,
27294                     sizeof(VkPipelineStageFlags));
27295 }
27296 
unmarshal_VkQueueFamilyCheckpointPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyCheckpointPropertiesNV * forUnmarshaling)27297 void unmarshal_VkQueueFamilyCheckpointPropertiesNV(
27298     VulkanStream* vkStream, VkStructureType rootType,
27299     VkQueueFamilyCheckpointPropertiesNV* forUnmarshaling) {
27300     (void)rootType;
27301     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27302     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27303         rootType = forUnmarshaling->sType;
27304     }
27305     size_t pNext_size;
27306     pNext_size = vkStream->getBe32();
27307     forUnmarshaling->pNext = nullptr;
27308     if (pNext_size) {
27309         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27310         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27311         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27312         vkStream->alloc((void**)&forUnmarshaling->pNext,
27313                         goldfish_vk_extension_struct_size_with_stream_features(
27314                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27315         *(VkStructureType*)forUnmarshaling->pNext = extType;
27316         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27317     }
27318     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->checkpointExecutionStageMask,
27319                    sizeof(VkPipelineStageFlags));
27320 }
27321 
marshal_VkCheckpointDataNV(VulkanStream * vkStream,VkStructureType rootType,const VkCheckpointDataNV * forMarshaling)27322 void marshal_VkCheckpointDataNV(VulkanStream* vkStream, VkStructureType rootType,
27323                                 const VkCheckpointDataNV* forMarshaling) {
27324     (void)rootType;
27325     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27326     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27327         rootType = forMarshaling->sType;
27328     }
27329     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27330     vkStream->write((VkPipelineStageFlagBits*)&forMarshaling->stage,
27331                     sizeof(VkPipelineStageFlagBits));
27332     // WARNING PTR CHECK
27333     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
27334     vkStream->putBe64(cgen_var_0);
27335     if (forMarshaling->pCheckpointMarker) {
27336         vkStream->write((void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
27337     }
27338 }
27339 
unmarshal_VkCheckpointDataNV(VulkanStream * vkStream,VkStructureType rootType,VkCheckpointDataNV * forUnmarshaling)27340 void unmarshal_VkCheckpointDataNV(VulkanStream* vkStream, VkStructureType rootType,
27341                                   VkCheckpointDataNV* forUnmarshaling) {
27342     (void)rootType;
27343     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27344     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27345         rootType = forUnmarshaling->sType;
27346     }
27347     size_t pNext_size;
27348     pNext_size = vkStream->getBe32();
27349     forUnmarshaling->pNext = nullptr;
27350     if (pNext_size) {
27351         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27352         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27353         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27354         vkStream->alloc((void**)&forUnmarshaling->pNext,
27355                         goldfish_vk_extension_struct_size_with_stream_features(
27356                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27357         *(VkStructureType*)forUnmarshaling->pNext = extType;
27358         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27359     }
27360     vkStream->read((VkPipelineStageFlagBits*)&forUnmarshaling->stage,
27361                    sizeof(VkPipelineStageFlagBits));
27362     // WARNING PTR CHECK
27363     forUnmarshaling->pCheckpointMarker = (void*)(uintptr_t)vkStream->getBe64();
27364     if (forUnmarshaling->pCheckpointMarker) {
27365         vkStream->alloc((void**)&forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
27366         vkStream->read((void*)forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
27367     }
27368 }
27369 
27370 #endif
27371 #ifdef VK_INTEL_shader_integer_functions2
marshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL * forMarshaling)27372 void marshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
27373     VulkanStream* vkStream, VkStructureType rootType,
27374     const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forMarshaling) {
27375     (void)rootType;
27376     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27377     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27378         rootType = forMarshaling->sType;
27379     }
27380     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27381     vkStream->write((VkBool32*)&forMarshaling->shaderIntegerFunctions2, sizeof(VkBool32));
27382 }
27383 
unmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL * forUnmarshaling)27384 void unmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
27385     VulkanStream* vkStream, VkStructureType rootType,
27386     VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forUnmarshaling) {
27387     (void)rootType;
27388     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27389     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27390         rootType = forUnmarshaling->sType;
27391     }
27392     size_t pNext_size;
27393     pNext_size = vkStream->getBe32();
27394     forUnmarshaling->pNext = nullptr;
27395     if (pNext_size) {
27396         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27397         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27398         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27399         vkStream->alloc((void**)&forUnmarshaling->pNext,
27400                         goldfish_vk_extension_struct_size_with_stream_features(
27401                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27402         *(VkStructureType*)forUnmarshaling->pNext = extType;
27403         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27404     }
27405     vkStream->read((VkBool32*)&forUnmarshaling->shaderIntegerFunctions2, sizeof(VkBool32));
27406 }
27407 
27408 #endif
27409 #ifdef VK_INTEL_performance_query
marshal_VkPerformanceValueDataINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceValueDataINTEL * forMarshaling)27410 void marshal_VkPerformanceValueDataINTEL(VulkanStream* vkStream, VkStructureType rootType,
27411                                          const VkPerformanceValueDataINTEL* forMarshaling) {
27412     (void)rootType;
27413     vkStream->write((uint32_t*)&forMarshaling->value32, sizeof(uint32_t));
27414 }
27415 
unmarshal_VkPerformanceValueDataINTEL(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceValueDataINTEL * forUnmarshaling)27416 void unmarshal_VkPerformanceValueDataINTEL(VulkanStream* vkStream, VkStructureType rootType,
27417                                            VkPerformanceValueDataINTEL* forUnmarshaling) {
27418     (void)rootType;
27419     vkStream->read((uint32_t*)&forUnmarshaling->value32, sizeof(uint32_t));
27420 }
27421 
marshal_VkPerformanceValueINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceValueINTEL * forMarshaling)27422 void marshal_VkPerformanceValueINTEL(VulkanStream* vkStream, VkStructureType rootType,
27423                                      const VkPerformanceValueINTEL* forMarshaling) {
27424     (void)rootType;
27425     vkStream->write((VkPerformanceValueTypeINTEL*)&forMarshaling->type,
27426                     sizeof(VkPerformanceValueTypeINTEL));
27427     marshal_VkPerformanceValueDataINTEL(vkStream, rootType,
27428                                         (VkPerformanceValueDataINTEL*)(&forMarshaling->data));
27429 }
27430 
unmarshal_VkPerformanceValueINTEL(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceValueINTEL * forUnmarshaling)27431 void unmarshal_VkPerformanceValueINTEL(VulkanStream* vkStream, VkStructureType rootType,
27432                                        VkPerformanceValueINTEL* forUnmarshaling) {
27433     (void)rootType;
27434     vkStream->read((VkPerformanceValueTypeINTEL*)&forUnmarshaling->type,
27435                    sizeof(VkPerformanceValueTypeINTEL));
27436     unmarshal_VkPerformanceValueDataINTEL(vkStream, rootType,
27437                                           (VkPerformanceValueDataINTEL*)(&forUnmarshaling->data));
27438 }
27439 
marshal_VkInitializePerformanceApiInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkInitializePerformanceApiInfoINTEL * forMarshaling)27440 void marshal_VkInitializePerformanceApiInfoINTEL(
27441     VulkanStream* vkStream, VkStructureType rootType,
27442     const VkInitializePerformanceApiInfoINTEL* forMarshaling) {
27443     (void)rootType;
27444     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27445     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27446         rootType = forMarshaling->sType;
27447     }
27448     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27449     // WARNING PTR CHECK
27450     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
27451     vkStream->putBe64(cgen_var_0);
27452     if (forMarshaling->pUserData) {
27453         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
27454     }
27455 }
27456 
unmarshal_VkInitializePerformanceApiInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,VkInitializePerformanceApiInfoINTEL * forUnmarshaling)27457 void unmarshal_VkInitializePerformanceApiInfoINTEL(
27458     VulkanStream* vkStream, VkStructureType rootType,
27459     VkInitializePerformanceApiInfoINTEL* forUnmarshaling) {
27460     (void)rootType;
27461     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27462     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27463         rootType = forUnmarshaling->sType;
27464     }
27465     size_t pNext_size;
27466     pNext_size = vkStream->getBe32();
27467     forUnmarshaling->pNext = nullptr;
27468     if (pNext_size) {
27469         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27470         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27471         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27472         vkStream->alloc((void**)&forUnmarshaling->pNext,
27473                         goldfish_vk_extension_struct_size_with_stream_features(
27474                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27475         *(VkStructureType*)forUnmarshaling->pNext = extType;
27476         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27477     }
27478     // WARNING PTR CHECK
27479     forUnmarshaling->pUserData = (void*)(uintptr_t)vkStream->getBe64();
27480     if (forUnmarshaling->pUserData) {
27481         vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
27482         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
27483     }
27484 }
27485 
marshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkQueryPoolPerformanceQueryCreateInfoINTEL * forMarshaling)27486 void marshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
27487     VulkanStream* vkStream, VkStructureType rootType,
27488     const VkQueryPoolPerformanceQueryCreateInfoINTEL* forMarshaling) {
27489     (void)rootType;
27490     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27491     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27492         rootType = forMarshaling->sType;
27493     }
27494     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27495     vkStream->write((VkQueryPoolSamplingModeINTEL*)&forMarshaling->performanceCountersSampling,
27496                     sizeof(VkQueryPoolSamplingModeINTEL));
27497 }
27498 
unmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,VkQueryPoolPerformanceQueryCreateInfoINTEL * forUnmarshaling)27499 void unmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
27500     VulkanStream* vkStream, VkStructureType rootType,
27501     VkQueryPoolPerformanceQueryCreateInfoINTEL* forUnmarshaling) {
27502     (void)rootType;
27503     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27504     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27505         rootType = forUnmarshaling->sType;
27506     }
27507     size_t pNext_size;
27508     pNext_size = vkStream->getBe32();
27509     forUnmarshaling->pNext = nullptr;
27510     if (pNext_size) {
27511         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27512         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27513         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27514         vkStream->alloc((void**)&forUnmarshaling->pNext,
27515                         goldfish_vk_extension_struct_size_with_stream_features(
27516                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27517         *(VkStructureType*)forUnmarshaling->pNext = extType;
27518         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27519     }
27520     vkStream->read((VkQueryPoolSamplingModeINTEL*)&forUnmarshaling->performanceCountersSampling,
27521                    sizeof(VkQueryPoolSamplingModeINTEL));
27522 }
27523 
marshal_VkPerformanceMarkerInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceMarkerInfoINTEL * forMarshaling)27524 void marshal_VkPerformanceMarkerInfoINTEL(VulkanStream* vkStream, VkStructureType rootType,
27525                                           const VkPerformanceMarkerInfoINTEL* forMarshaling) {
27526     (void)rootType;
27527     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27528     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27529         rootType = forMarshaling->sType;
27530     }
27531     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27532     vkStream->write((uint64_t*)&forMarshaling->marker, sizeof(uint64_t));
27533 }
27534 
unmarshal_VkPerformanceMarkerInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceMarkerInfoINTEL * forUnmarshaling)27535 void unmarshal_VkPerformanceMarkerInfoINTEL(VulkanStream* vkStream, VkStructureType rootType,
27536                                             VkPerformanceMarkerInfoINTEL* forUnmarshaling) {
27537     (void)rootType;
27538     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27539     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27540         rootType = forUnmarshaling->sType;
27541     }
27542     size_t pNext_size;
27543     pNext_size = vkStream->getBe32();
27544     forUnmarshaling->pNext = nullptr;
27545     if (pNext_size) {
27546         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27547         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27548         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27549         vkStream->alloc((void**)&forUnmarshaling->pNext,
27550                         goldfish_vk_extension_struct_size_with_stream_features(
27551                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27552         *(VkStructureType*)forUnmarshaling->pNext = extType;
27553         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27554     }
27555     vkStream->read((uint64_t*)&forUnmarshaling->marker, sizeof(uint64_t));
27556 }
27557 
marshal_VkPerformanceStreamMarkerInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceStreamMarkerInfoINTEL * forMarshaling)27558 void marshal_VkPerformanceStreamMarkerInfoINTEL(
27559     VulkanStream* vkStream, VkStructureType rootType,
27560     const VkPerformanceStreamMarkerInfoINTEL* forMarshaling) {
27561     (void)rootType;
27562     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27563     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27564         rootType = forMarshaling->sType;
27565     }
27566     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27567     vkStream->write((uint32_t*)&forMarshaling->marker, sizeof(uint32_t));
27568 }
27569 
unmarshal_VkPerformanceStreamMarkerInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceStreamMarkerInfoINTEL * forUnmarshaling)27570 void unmarshal_VkPerformanceStreamMarkerInfoINTEL(
27571     VulkanStream* vkStream, VkStructureType rootType,
27572     VkPerformanceStreamMarkerInfoINTEL* forUnmarshaling) {
27573     (void)rootType;
27574     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27575     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27576         rootType = forUnmarshaling->sType;
27577     }
27578     size_t pNext_size;
27579     pNext_size = vkStream->getBe32();
27580     forUnmarshaling->pNext = nullptr;
27581     if (pNext_size) {
27582         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27583         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27584         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27585         vkStream->alloc((void**)&forUnmarshaling->pNext,
27586                         goldfish_vk_extension_struct_size_with_stream_features(
27587                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27588         *(VkStructureType*)forUnmarshaling->pNext = extType;
27589         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27590     }
27591     vkStream->read((uint32_t*)&forUnmarshaling->marker, sizeof(uint32_t));
27592 }
27593 
marshal_VkPerformanceOverrideInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceOverrideInfoINTEL * forMarshaling)27594 void marshal_VkPerformanceOverrideInfoINTEL(VulkanStream* vkStream, VkStructureType rootType,
27595                                             const VkPerformanceOverrideInfoINTEL* forMarshaling) {
27596     (void)rootType;
27597     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27598     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27599         rootType = forMarshaling->sType;
27600     }
27601     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27602     vkStream->write((VkPerformanceOverrideTypeINTEL*)&forMarshaling->type,
27603                     sizeof(VkPerformanceOverrideTypeINTEL));
27604     vkStream->write((VkBool32*)&forMarshaling->enable, sizeof(VkBool32));
27605     vkStream->write((uint64_t*)&forMarshaling->parameter, sizeof(uint64_t));
27606 }
27607 
unmarshal_VkPerformanceOverrideInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceOverrideInfoINTEL * forUnmarshaling)27608 void unmarshal_VkPerformanceOverrideInfoINTEL(VulkanStream* vkStream, VkStructureType rootType,
27609                                               VkPerformanceOverrideInfoINTEL* forUnmarshaling) {
27610     (void)rootType;
27611     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27612     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27613         rootType = forUnmarshaling->sType;
27614     }
27615     size_t pNext_size;
27616     pNext_size = vkStream->getBe32();
27617     forUnmarshaling->pNext = nullptr;
27618     if (pNext_size) {
27619         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27620         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27621         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27622         vkStream->alloc((void**)&forUnmarshaling->pNext,
27623                         goldfish_vk_extension_struct_size_with_stream_features(
27624                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27625         *(VkStructureType*)forUnmarshaling->pNext = extType;
27626         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27627     }
27628     vkStream->read((VkPerformanceOverrideTypeINTEL*)&forUnmarshaling->type,
27629                    sizeof(VkPerformanceOverrideTypeINTEL));
27630     vkStream->read((VkBool32*)&forUnmarshaling->enable, sizeof(VkBool32));
27631     vkStream->read((uint64_t*)&forUnmarshaling->parameter, sizeof(uint64_t));
27632 }
27633 
marshal_VkPerformanceConfigurationAcquireInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,const VkPerformanceConfigurationAcquireInfoINTEL * forMarshaling)27634 void marshal_VkPerformanceConfigurationAcquireInfoINTEL(
27635     VulkanStream* vkStream, VkStructureType rootType,
27636     const VkPerformanceConfigurationAcquireInfoINTEL* forMarshaling) {
27637     (void)rootType;
27638     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27639     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27640         rootType = forMarshaling->sType;
27641     }
27642     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27643     vkStream->write((VkPerformanceConfigurationTypeINTEL*)&forMarshaling->type,
27644                     sizeof(VkPerformanceConfigurationTypeINTEL));
27645 }
27646 
unmarshal_VkPerformanceConfigurationAcquireInfoINTEL(VulkanStream * vkStream,VkStructureType rootType,VkPerformanceConfigurationAcquireInfoINTEL * forUnmarshaling)27647 void unmarshal_VkPerformanceConfigurationAcquireInfoINTEL(
27648     VulkanStream* vkStream, VkStructureType rootType,
27649     VkPerformanceConfigurationAcquireInfoINTEL* forUnmarshaling) {
27650     (void)rootType;
27651     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27652     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27653         rootType = forUnmarshaling->sType;
27654     }
27655     size_t pNext_size;
27656     pNext_size = vkStream->getBe32();
27657     forUnmarshaling->pNext = nullptr;
27658     if (pNext_size) {
27659         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27660         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27661         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27662         vkStream->alloc((void**)&forUnmarshaling->pNext,
27663                         goldfish_vk_extension_struct_size_with_stream_features(
27664                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27665         *(VkStructureType*)forUnmarshaling->pNext = extType;
27666         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27667     }
27668     vkStream->read((VkPerformanceConfigurationTypeINTEL*)&forUnmarshaling->type,
27669                    sizeof(VkPerformanceConfigurationTypeINTEL));
27670 }
27671 
27672 #endif
27673 #ifdef VK_EXT_pci_bus_info
marshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePCIBusInfoPropertiesEXT * forMarshaling)27674 void marshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
27675     VulkanStream* vkStream, VkStructureType rootType,
27676     const VkPhysicalDevicePCIBusInfoPropertiesEXT* forMarshaling) {
27677     (void)rootType;
27678     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27679     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27680         rootType = forMarshaling->sType;
27681     }
27682     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27683     vkStream->write((uint32_t*)&forMarshaling->pciDomain, sizeof(uint32_t));
27684     vkStream->write((uint32_t*)&forMarshaling->pciBus, sizeof(uint32_t));
27685     vkStream->write((uint32_t*)&forMarshaling->pciDevice, sizeof(uint32_t));
27686     vkStream->write((uint32_t*)&forMarshaling->pciFunction, sizeof(uint32_t));
27687 }
27688 
unmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePCIBusInfoPropertiesEXT * forUnmarshaling)27689 void unmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
27690     VulkanStream* vkStream, VkStructureType rootType,
27691     VkPhysicalDevicePCIBusInfoPropertiesEXT* forUnmarshaling) {
27692     (void)rootType;
27693     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27694     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27695         rootType = forUnmarshaling->sType;
27696     }
27697     size_t pNext_size;
27698     pNext_size = vkStream->getBe32();
27699     forUnmarshaling->pNext = nullptr;
27700     if (pNext_size) {
27701         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27702         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27703         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27704         vkStream->alloc((void**)&forUnmarshaling->pNext,
27705                         goldfish_vk_extension_struct_size_with_stream_features(
27706                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27707         *(VkStructureType*)forUnmarshaling->pNext = extType;
27708         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27709     }
27710     vkStream->read((uint32_t*)&forUnmarshaling->pciDomain, sizeof(uint32_t));
27711     vkStream->read((uint32_t*)&forUnmarshaling->pciBus, sizeof(uint32_t));
27712     vkStream->read((uint32_t*)&forUnmarshaling->pciDevice, sizeof(uint32_t));
27713     vkStream->read((uint32_t*)&forUnmarshaling->pciFunction, sizeof(uint32_t));
27714 }
27715 
27716 #endif
27717 #ifdef VK_AMD_display_native_hdr
marshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(VulkanStream * vkStream,VkStructureType rootType,const VkDisplayNativeHdrSurfaceCapabilitiesAMD * forMarshaling)27718 void marshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
27719     VulkanStream* vkStream, VkStructureType rootType,
27720     const VkDisplayNativeHdrSurfaceCapabilitiesAMD* forMarshaling) {
27721     (void)rootType;
27722     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27723     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27724         rootType = forMarshaling->sType;
27725     }
27726     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27727     vkStream->write((VkBool32*)&forMarshaling->localDimmingSupport, sizeof(VkBool32));
27728 }
27729 
unmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(VulkanStream * vkStream,VkStructureType rootType,VkDisplayNativeHdrSurfaceCapabilitiesAMD * forUnmarshaling)27730 void unmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
27731     VulkanStream* vkStream, VkStructureType rootType,
27732     VkDisplayNativeHdrSurfaceCapabilitiesAMD* forUnmarshaling) {
27733     (void)rootType;
27734     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27735     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27736         rootType = forUnmarshaling->sType;
27737     }
27738     size_t pNext_size;
27739     pNext_size = vkStream->getBe32();
27740     forUnmarshaling->pNext = nullptr;
27741     if (pNext_size) {
27742         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27743         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27744         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27745         vkStream->alloc((void**)&forUnmarshaling->pNext,
27746                         goldfish_vk_extension_struct_size_with_stream_features(
27747                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27748         *(VkStructureType*)forUnmarshaling->pNext = extType;
27749         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27750     }
27751     vkStream->read((VkBool32*)&forUnmarshaling->localDimmingSupport, sizeof(VkBool32));
27752 }
27753 
marshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainDisplayNativeHdrCreateInfoAMD * forMarshaling)27754 void marshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
27755     VulkanStream* vkStream, VkStructureType rootType,
27756     const VkSwapchainDisplayNativeHdrCreateInfoAMD* forMarshaling) {
27757     (void)rootType;
27758     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27759     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27760         rootType = forMarshaling->sType;
27761     }
27762     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27763     vkStream->write((VkBool32*)&forMarshaling->localDimmingEnable, sizeof(VkBool32));
27764 }
27765 
unmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainDisplayNativeHdrCreateInfoAMD * forUnmarshaling)27766 void unmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
27767     VulkanStream* vkStream, VkStructureType rootType,
27768     VkSwapchainDisplayNativeHdrCreateInfoAMD* forUnmarshaling) {
27769     (void)rootType;
27770     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27771     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27772         rootType = forUnmarshaling->sType;
27773     }
27774     size_t pNext_size;
27775     pNext_size = vkStream->getBe32();
27776     forUnmarshaling->pNext = nullptr;
27777     if (pNext_size) {
27778         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27779         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27780         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27781         vkStream->alloc((void**)&forUnmarshaling->pNext,
27782                         goldfish_vk_extension_struct_size_with_stream_features(
27783                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27784         *(VkStructureType*)forUnmarshaling->pNext = extType;
27785         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27786     }
27787     vkStream->read((VkBool32*)&forUnmarshaling->localDimmingEnable, sizeof(VkBool32));
27788 }
27789 
27790 #endif
27791 #ifdef VK_FUCHSIA_imagepipe_surface
marshal_VkImagePipeSurfaceCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkImagePipeSurfaceCreateInfoFUCHSIA * forMarshaling)27792 void marshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
27793     VulkanStream* vkStream, VkStructureType rootType,
27794     const VkImagePipeSurfaceCreateInfoFUCHSIA* forMarshaling) {
27795     (void)rootType;
27796     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27797     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27798         rootType = forMarshaling->sType;
27799     }
27800     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27801     vkStream->write((VkImagePipeSurfaceCreateFlagsFUCHSIA*)&forMarshaling->flags,
27802                     sizeof(VkImagePipeSurfaceCreateFlagsFUCHSIA));
27803     vkStream->write((zx_handle_t*)&forMarshaling->imagePipeHandle, sizeof(zx_handle_t));
27804 }
27805 
unmarshal_VkImagePipeSurfaceCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkImagePipeSurfaceCreateInfoFUCHSIA * forUnmarshaling)27806 void unmarshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
27807     VulkanStream* vkStream, VkStructureType rootType,
27808     VkImagePipeSurfaceCreateInfoFUCHSIA* forUnmarshaling) {
27809     (void)rootType;
27810     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27811     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27812         rootType = forUnmarshaling->sType;
27813     }
27814     size_t pNext_size;
27815     pNext_size = vkStream->getBe32();
27816     forUnmarshaling->pNext = nullptr;
27817     if (pNext_size) {
27818         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27819         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27820         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27821         vkStream->alloc((void**)&forUnmarshaling->pNext,
27822                         goldfish_vk_extension_struct_size_with_stream_features(
27823                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27824         *(VkStructureType*)forUnmarshaling->pNext = extType;
27825         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27826     }
27827     vkStream->read((VkImagePipeSurfaceCreateFlagsFUCHSIA*)&forUnmarshaling->flags,
27828                    sizeof(VkImagePipeSurfaceCreateFlagsFUCHSIA));
27829     vkStream->read((zx_handle_t*)&forUnmarshaling->imagePipeHandle, sizeof(zx_handle_t));
27830 }
27831 
27832 #endif
27833 #ifdef VK_EXT_metal_surface
marshal_VkMetalSurfaceCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMetalSurfaceCreateInfoEXT * forMarshaling)27834 void marshal_VkMetalSurfaceCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
27835                                          const VkMetalSurfaceCreateInfoEXT* forMarshaling) {
27836     (void)rootType;
27837 
27838     // This struct should never be marshaled / unmarshaled.
27839     __builtin_trap();
27840 }
27841 
unmarshal_VkMetalSurfaceCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMetalSurfaceCreateInfoEXT * forUnmarshaling)27842 void unmarshal_VkMetalSurfaceCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
27843                                            VkMetalSurfaceCreateInfoEXT* forUnmarshaling) {
27844     (void)rootType;
27845 
27846     // This struct should never be marshaled / unmarshaled.
27847     __builtin_trap();
27848 }
27849 
27850 #endif
27851 #ifdef VK_EXT_fragment_density_map
marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forMarshaling)27852 void marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
27853     VulkanStream* vkStream, VkStructureType rootType,
27854     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forMarshaling) {
27855     (void)rootType;
27856     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27857     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27858         rootType = forMarshaling->sType;
27859     }
27860     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27861     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMap, sizeof(VkBool32));
27862     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapDynamic, sizeof(VkBool32));
27863     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapNonSubsampledImages,
27864                     sizeof(VkBool32));
27865 }
27866 
unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forUnmarshaling)27867 void unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
27868     VulkanStream* vkStream, VkStructureType rootType,
27869     VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forUnmarshaling) {
27870     (void)rootType;
27871     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27872     forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
27873     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27874         rootType = forUnmarshaling->sType;
27875     }
27876     size_t pNext_size;
27877     pNext_size = vkStream->getBe32();
27878     forUnmarshaling->pNext = nullptr;
27879     if (pNext_size) {
27880         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27881         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27882         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27883         vkStream->alloc((void**)&forUnmarshaling->pNext,
27884                         goldfish_vk_extension_struct_size_with_stream_features(
27885                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27886         *(VkStructureType*)forUnmarshaling->pNext = extType;
27887         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27888     }
27889     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMap, sizeof(VkBool32));
27890     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapDynamic, sizeof(VkBool32));
27891     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapNonSubsampledImages,
27892                    sizeof(VkBool32));
27893 }
27894 
marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forMarshaling)27895 void marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
27896     VulkanStream* vkStream, VkStructureType rootType,
27897     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forMarshaling) {
27898     (void)rootType;
27899     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27900     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27901         rootType = forMarshaling->sType;
27902     }
27903     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27904     marshal_VkExtent2D(vkStream, rootType,
27905                        (VkExtent2D*)(&forMarshaling->minFragmentDensityTexelSize));
27906     marshal_VkExtent2D(vkStream, rootType,
27907                        (VkExtent2D*)(&forMarshaling->maxFragmentDensityTexelSize));
27908     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityInvocations, sizeof(VkBool32));
27909 }
27910 
unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forUnmarshaling)27911 void unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
27912     VulkanStream* vkStream, VkStructureType rootType,
27913     VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forUnmarshaling) {
27914     (void)rootType;
27915     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27916     forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
27917     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27918         rootType = forUnmarshaling->sType;
27919     }
27920     size_t pNext_size;
27921     pNext_size = vkStream->getBe32();
27922     forUnmarshaling->pNext = nullptr;
27923     if (pNext_size) {
27924         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27925         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27926         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27927         vkStream->alloc((void**)&forUnmarshaling->pNext,
27928                         goldfish_vk_extension_struct_size_with_stream_features(
27929                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27930         *(VkStructureType*)forUnmarshaling->pNext = extType;
27931         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27932     }
27933     unmarshal_VkExtent2D(vkStream, rootType,
27934                          (VkExtent2D*)(&forUnmarshaling->minFragmentDensityTexelSize));
27935     unmarshal_VkExtent2D(vkStream, rootType,
27936                          (VkExtent2D*)(&forUnmarshaling->maxFragmentDensityTexelSize));
27937     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityInvocations, sizeof(VkBool32));
27938 }
27939 
marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassFragmentDensityMapCreateInfoEXT * forMarshaling)27940 void marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
27941     VulkanStream* vkStream, VkStructureType rootType,
27942     const VkRenderPassFragmentDensityMapCreateInfoEXT* forMarshaling) {
27943     (void)rootType;
27944     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27945     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27946         rootType = forMarshaling->sType;
27947     }
27948     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27949     marshal_VkAttachmentReference(
27950         vkStream, rootType, (VkAttachmentReference*)(&forMarshaling->fragmentDensityMapAttachment));
27951 }
27952 
unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassFragmentDensityMapCreateInfoEXT * forUnmarshaling)27953 void unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
27954     VulkanStream* vkStream, VkStructureType rootType,
27955     VkRenderPassFragmentDensityMapCreateInfoEXT* forUnmarshaling) {
27956     (void)rootType;
27957     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
27958     forUnmarshaling->sType = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
27959     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27960         rootType = forUnmarshaling->sType;
27961     }
27962     size_t pNext_size;
27963     pNext_size = vkStream->getBe32();
27964     forUnmarshaling->pNext = nullptr;
27965     if (pNext_size) {
27966         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
27967         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
27968         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
27969         vkStream->alloc((void**)&forUnmarshaling->pNext,
27970                         goldfish_vk_extension_struct_size_with_stream_features(
27971                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
27972         *(VkStructureType*)forUnmarshaling->pNext = extType;
27973         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
27974     }
27975     unmarshal_VkAttachmentReference(
27976         vkStream, rootType,
27977         (VkAttachmentReference*)(&forUnmarshaling->fragmentDensityMapAttachment));
27978 }
27979 
27980 #endif
27981 #ifdef VK_EXT_scalar_block_layout
27982 #endif
27983 #ifdef VK_GOOGLE_hlsl_functionality1
27984 #endif
27985 #ifdef VK_GOOGLE_decorate_string
27986 #endif
27987 #ifdef VK_EXT_subgroup_size_control
27988 #endif
27989 #ifdef VK_AMD_shader_core_properties2
marshal_VkPhysicalDeviceShaderCoreProperties2AMD(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderCoreProperties2AMD * forMarshaling)27990 void marshal_VkPhysicalDeviceShaderCoreProperties2AMD(
27991     VulkanStream* vkStream, VkStructureType rootType,
27992     const VkPhysicalDeviceShaderCoreProperties2AMD* forMarshaling) {
27993     (void)rootType;
27994     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
27995     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
27996         rootType = forMarshaling->sType;
27997     }
27998     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
27999     vkStream->write((VkShaderCorePropertiesFlagsAMD*)&forMarshaling->shaderCoreFeatures,
28000                     sizeof(VkShaderCorePropertiesFlagsAMD));
28001     vkStream->write((uint32_t*)&forMarshaling->activeComputeUnitCount, sizeof(uint32_t));
28002 }
28003 
unmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderCoreProperties2AMD * forUnmarshaling)28004 void unmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(
28005     VulkanStream* vkStream, VkStructureType rootType,
28006     VkPhysicalDeviceShaderCoreProperties2AMD* forUnmarshaling) {
28007     (void)rootType;
28008     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28009     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28010         rootType = forUnmarshaling->sType;
28011     }
28012     size_t pNext_size;
28013     pNext_size = vkStream->getBe32();
28014     forUnmarshaling->pNext = nullptr;
28015     if (pNext_size) {
28016         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28017         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28018         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28019         vkStream->alloc((void**)&forUnmarshaling->pNext,
28020                         goldfish_vk_extension_struct_size_with_stream_features(
28021                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28022         *(VkStructureType*)forUnmarshaling->pNext = extType;
28023         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28024     }
28025     vkStream->read((VkShaderCorePropertiesFlagsAMD*)&forUnmarshaling->shaderCoreFeatures,
28026                    sizeof(VkShaderCorePropertiesFlagsAMD));
28027     vkStream->read((uint32_t*)&forUnmarshaling->activeComputeUnitCount, sizeof(uint32_t));
28028 }
28029 
28030 #endif
28031 #ifdef VK_AMD_device_coherent_memory
marshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCoherentMemoryFeaturesAMD * forMarshaling)28032 void marshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
28033     VulkanStream* vkStream, VkStructureType rootType,
28034     const VkPhysicalDeviceCoherentMemoryFeaturesAMD* forMarshaling) {
28035     (void)rootType;
28036     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28037     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28038         rootType = forMarshaling->sType;
28039     }
28040     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28041     vkStream->write((VkBool32*)&forMarshaling->deviceCoherentMemory, sizeof(VkBool32));
28042 }
28043 
unmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCoherentMemoryFeaturesAMD * forUnmarshaling)28044 void unmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
28045     VulkanStream* vkStream, VkStructureType rootType,
28046     VkPhysicalDeviceCoherentMemoryFeaturesAMD* forUnmarshaling) {
28047     (void)rootType;
28048     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28049     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28050         rootType = forUnmarshaling->sType;
28051     }
28052     size_t pNext_size;
28053     pNext_size = vkStream->getBe32();
28054     forUnmarshaling->pNext = nullptr;
28055     if (pNext_size) {
28056         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28057         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28058         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28059         vkStream->alloc((void**)&forUnmarshaling->pNext,
28060                         goldfish_vk_extension_struct_size_with_stream_features(
28061                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28062         *(VkStructureType*)forUnmarshaling->pNext = extType;
28063         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28064     }
28065     vkStream->read((VkBool32*)&forUnmarshaling->deviceCoherentMemory, sizeof(VkBool32));
28066 }
28067 
28068 #endif
28069 #ifdef VK_EXT_shader_image_atomic_int64
marshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT * forMarshaling)28070 void marshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
28071     VulkanStream* vkStream, VkStructureType rootType,
28072     const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forMarshaling) {
28073     (void)rootType;
28074     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28075     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28076         rootType = forMarshaling->sType;
28077     }
28078     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28079     vkStream->write((VkBool32*)&forMarshaling->shaderImageInt64Atomics, sizeof(VkBool32));
28080     vkStream->write((VkBool32*)&forMarshaling->sparseImageInt64Atomics, sizeof(VkBool32));
28081 }
28082 
unmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT * forUnmarshaling)28083 void unmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
28084     VulkanStream* vkStream, VkStructureType rootType,
28085     VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forUnmarshaling) {
28086     (void)rootType;
28087     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28088     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28089         rootType = forUnmarshaling->sType;
28090     }
28091     size_t pNext_size;
28092     pNext_size = vkStream->getBe32();
28093     forUnmarshaling->pNext = nullptr;
28094     if (pNext_size) {
28095         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28096         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28097         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28098         vkStream->alloc((void**)&forUnmarshaling->pNext,
28099                         goldfish_vk_extension_struct_size_with_stream_features(
28100                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28101         *(VkStructureType*)forUnmarshaling->pNext = extType;
28102         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28103     }
28104     vkStream->read((VkBool32*)&forUnmarshaling->shaderImageInt64Atomics, sizeof(VkBool32));
28105     vkStream->read((VkBool32*)&forUnmarshaling->sparseImageInt64Atomics, sizeof(VkBool32));
28106 }
28107 
28108 #endif
28109 #ifdef VK_EXT_memory_budget
marshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryBudgetPropertiesEXT * forMarshaling)28110 void marshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
28111     VulkanStream* vkStream, VkStructureType rootType,
28112     const VkPhysicalDeviceMemoryBudgetPropertiesEXT* forMarshaling) {
28113     (void)rootType;
28114     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28115     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28116         rootType = forMarshaling->sType;
28117     }
28118     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28119     vkStream->write((VkDeviceSize*)forMarshaling->heapBudget,
28120                     VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
28121     vkStream->write((VkDeviceSize*)forMarshaling->heapUsage,
28122                     VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
28123 }
28124 
unmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryBudgetPropertiesEXT * forUnmarshaling)28125 void unmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
28126     VulkanStream* vkStream, VkStructureType rootType,
28127     VkPhysicalDeviceMemoryBudgetPropertiesEXT* forUnmarshaling) {
28128     (void)rootType;
28129     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28130     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28131         rootType = forUnmarshaling->sType;
28132     }
28133     size_t pNext_size;
28134     pNext_size = vkStream->getBe32();
28135     forUnmarshaling->pNext = nullptr;
28136     if (pNext_size) {
28137         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28138         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28139         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28140         vkStream->alloc((void**)&forUnmarshaling->pNext,
28141                         goldfish_vk_extension_struct_size_with_stream_features(
28142                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28143         *(VkStructureType*)forUnmarshaling->pNext = extType;
28144         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28145     }
28146     vkStream->read((VkDeviceSize*)forUnmarshaling->heapBudget,
28147                    VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
28148     vkStream->read((VkDeviceSize*)forUnmarshaling->heapUsage,
28149                    VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
28150 }
28151 
28152 #endif
28153 #ifdef VK_EXT_memory_priority
marshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryPriorityFeaturesEXT * forMarshaling)28154 void marshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
28155     VulkanStream* vkStream, VkStructureType rootType,
28156     const VkPhysicalDeviceMemoryPriorityFeaturesEXT* forMarshaling) {
28157     (void)rootType;
28158     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28159     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28160         rootType = forMarshaling->sType;
28161     }
28162     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28163     vkStream->write((VkBool32*)&forMarshaling->memoryPriority, sizeof(VkBool32));
28164 }
28165 
unmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryPriorityFeaturesEXT * forUnmarshaling)28166 void unmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
28167     VulkanStream* vkStream, VkStructureType rootType,
28168     VkPhysicalDeviceMemoryPriorityFeaturesEXT* forUnmarshaling) {
28169     (void)rootType;
28170     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28171     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28172         rootType = forUnmarshaling->sType;
28173     }
28174     size_t pNext_size;
28175     pNext_size = vkStream->getBe32();
28176     forUnmarshaling->pNext = nullptr;
28177     if (pNext_size) {
28178         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28179         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28180         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28181         vkStream->alloc((void**)&forUnmarshaling->pNext,
28182                         goldfish_vk_extension_struct_size_with_stream_features(
28183                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28184         *(VkStructureType*)forUnmarshaling->pNext = extType;
28185         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28186     }
28187     vkStream->read((VkBool32*)&forUnmarshaling->memoryPriority, sizeof(VkBool32));
28188 }
28189 
marshal_VkMemoryPriorityAllocateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryPriorityAllocateInfoEXT * forMarshaling)28190 void marshal_VkMemoryPriorityAllocateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
28191                                              const VkMemoryPriorityAllocateInfoEXT* forMarshaling) {
28192     (void)rootType;
28193     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28194     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28195         rootType = forMarshaling->sType;
28196     }
28197     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28198     vkStream->write((float*)&forMarshaling->priority, sizeof(float));
28199 }
28200 
unmarshal_VkMemoryPriorityAllocateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMemoryPriorityAllocateInfoEXT * forUnmarshaling)28201 void unmarshal_VkMemoryPriorityAllocateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
28202                                                VkMemoryPriorityAllocateInfoEXT* forUnmarshaling) {
28203     (void)rootType;
28204     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28205     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28206         rootType = forUnmarshaling->sType;
28207     }
28208     size_t pNext_size;
28209     pNext_size = vkStream->getBe32();
28210     forUnmarshaling->pNext = nullptr;
28211     if (pNext_size) {
28212         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28213         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28214         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28215         vkStream->alloc((void**)&forUnmarshaling->pNext,
28216                         goldfish_vk_extension_struct_size_with_stream_features(
28217                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28218         *(VkStructureType*)forUnmarshaling->pNext = extType;
28219         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28220     }
28221     vkStream->read((float*)&forUnmarshaling->priority, sizeof(float));
28222 }
28223 
28224 #endif
28225 #ifdef VK_NV_dedicated_allocation_image_aliasing
marshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV * forMarshaling)28226 void marshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
28227     VulkanStream* vkStream, VkStructureType rootType,
28228     const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forMarshaling) {
28229     (void)rootType;
28230     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28231     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28232         rootType = forMarshaling->sType;
28233     }
28234     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28235     vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocationImageAliasing, sizeof(VkBool32));
28236 }
28237 
unmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV * forUnmarshaling)28238 void unmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
28239     VulkanStream* vkStream, VkStructureType rootType,
28240     VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forUnmarshaling) {
28241     (void)rootType;
28242     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28243     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28244         rootType = forUnmarshaling->sType;
28245     }
28246     size_t pNext_size;
28247     pNext_size = vkStream->getBe32();
28248     forUnmarshaling->pNext = nullptr;
28249     if (pNext_size) {
28250         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28251         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28252         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28253         vkStream->alloc((void**)&forUnmarshaling->pNext,
28254                         goldfish_vk_extension_struct_size_with_stream_features(
28255                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28256         *(VkStructureType*)forUnmarshaling->pNext = extType;
28257         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28258     }
28259     vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocationImageAliasing, sizeof(VkBool32));
28260 }
28261 
28262 #endif
28263 #ifdef VK_EXT_buffer_device_address
marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT * forMarshaling)28264 void marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
28265     VulkanStream* vkStream, VkStructureType rootType,
28266     const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forMarshaling) {
28267     (void)rootType;
28268     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28269     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28270         rootType = forMarshaling->sType;
28271     }
28272     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28273     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
28274     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
28275     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
28276 }
28277 
unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceBufferDeviceAddressFeaturesEXT * forUnmarshaling)28278 void unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
28279     VulkanStream* vkStream, VkStructureType rootType,
28280     VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forUnmarshaling) {
28281     (void)rootType;
28282     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28283     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28284         rootType = forUnmarshaling->sType;
28285     }
28286     size_t pNext_size;
28287     pNext_size = vkStream->getBe32();
28288     forUnmarshaling->pNext = nullptr;
28289     if (pNext_size) {
28290         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28291         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28292         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28293         vkStream->alloc((void**)&forUnmarshaling->pNext,
28294                         goldfish_vk_extension_struct_size_with_stream_features(
28295                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28296         *(VkStructureType*)forUnmarshaling->pNext = extType;
28297         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28298     }
28299     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
28300     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
28301     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
28302 }
28303 
marshal_VkBufferDeviceAddressCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkBufferDeviceAddressCreateInfoEXT * forMarshaling)28304 void marshal_VkBufferDeviceAddressCreateInfoEXT(
28305     VulkanStream* vkStream, VkStructureType rootType,
28306     const VkBufferDeviceAddressCreateInfoEXT* forMarshaling) {
28307     (void)rootType;
28308     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28309     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28310         rootType = forMarshaling->sType;
28311     }
28312     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28313     vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
28314 }
28315 
unmarshal_VkBufferDeviceAddressCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkBufferDeviceAddressCreateInfoEXT * forUnmarshaling)28316 void unmarshal_VkBufferDeviceAddressCreateInfoEXT(
28317     VulkanStream* vkStream, VkStructureType rootType,
28318     VkBufferDeviceAddressCreateInfoEXT* forUnmarshaling) {
28319     (void)rootType;
28320     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28321     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28322         rootType = forUnmarshaling->sType;
28323     }
28324     size_t pNext_size;
28325     pNext_size = vkStream->getBe32();
28326     forUnmarshaling->pNext = nullptr;
28327     if (pNext_size) {
28328         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28329         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28330         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28331         vkStream->alloc((void**)&forUnmarshaling->pNext,
28332                         goldfish_vk_extension_struct_size_with_stream_features(
28333                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28334         *(VkStructureType*)forUnmarshaling->pNext = extType;
28335         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28336     }
28337     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
28338 }
28339 
28340 #endif
28341 #ifdef VK_EXT_tooling_info
28342 #endif
28343 #ifdef VK_EXT_separate_stencil_usage
28344 #endif
28345 #ifdef VK_EXT_validation_features
marshal_VkValidationFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkValidationFeaturesEXT * forMarshaling)28346 void marshal_VkValidationFeaturesEXT(VulkanStream* vkStream, VkStructureType rootType,
28347                                      const VkValidationFeaturesEXT* forMarshaling) {
28348     (void)rootType;
28349     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28350     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28351         rootType = forMarshaling->sType;
28352     }
28353     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28354     vkStream->write((uint32_t*)&forMarshaling->enabledValidationFeatureCount, sizeof(uint32_t));
28355     vkStream->write(
28356         (const VkValidationFeatureEnableEXT*)forMarshaling->pEnabledValidationFeatures,
28357         forMarshaling->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT));
28358     vkStream->write((uint32_t*)&forMarshaling->disabledValidationFeatureCount, sizeof(uint32_t));
28359     vkStream->write(
28360         (const VkValidationFeatureDisableEXT*)forMarshaling->pDisabledValidationFeatures,
28361         forMarshaling->disabledValidationFeatureCount *
28362             sizeof(const VkValidationFeatureDisableEXT));
28363 }
28364 
unmarshal_VkValidationFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkValidationFeaturesEXT * forUnmarshaling)28365 void unmarshal_VkValidationFeaturesEXT(VulkanStream* vkStream, VkStructureType rootType,
28366                                        VkValidationFeaturesEXT* forUnmarshaling) {
28367     (void)rootType;
28368     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28369     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28370         rootType = forUnmarshaling->sType;
28371     }
28372     size_t pNext_size;
28373     pNext_size = vkStream->getBe32();
28374     forUnmarshaling->pNext = nullptr;
28375     if (pNext_size) {
28376         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28377         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28378         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28379         vkStream->alloc((void**)&forUnmarshaling->pNext,
28380                         goldfish_vk_extension_struct_size_with_stream_features(
28381                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28382         *(VkStructureType*)forUnmarshaling->pNext = extType;
28383         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28384     }
28385     vkStream->read((uint32_t*)&forUnmarshaling->enabledValidationFeatureCount, sizeof(uint32_t));
28386     vkStream->alloc((void**)&forUnmarshaling->pEnabledValidationFeatures,
28387                     forUnmarshaling->enabledValidationFeatureCount *
28388                         sizeof(const VkValidationFeatureEnableEXT));
28389     vkStream->read((VkValidationFeatureEnableEXT*)forUnmarshaling->pEnabledValidationFeatures,
28390                    forUnmarshaling->enabledValidationFeatureCount *
28391                        sizeof(const VkValidationFeatureEnableEXT));
28392     vkStream->read((uint32_t*)&forUnmarshaling->disabledValidationFeatureCount, sizeof(uint32_t));
28393     vkStream->alloc((void**)&forUnmarshaling->pDisabledValidationFeatures,
28394                     forUnmarshaling->disabledValidationFeatureCount *
28395                         sizeof(const VkValidationFeatureDisableEXT));
28396     vkStream->read((VkValidationFeatureDisableEXT*)forUnmarshaling->pDisabledValidationFeatures,
28397                    forUnmarshaling->disabledValidationFeatureCount *
28398                        sizeof(const VkValidationFeatureDisableEXT));
28399 }
28400 
28401 #endif
28402 #ifdef VK_NV_cooperative_matrix
marshal_VkCooperativeMatrixPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkCooperativeMatrixPropertiesNV * forMarshaling)28403 void marshal_VkCooperativeMatrixPropertiesNV(VulkanStream* vkStream, VkStructureType rootType,
28404                                              const VkCooperativeMatrixPropertiesNV* forMarshaling) {
28405     (void)rootType;
28406     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28407     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28408         rootType = forMarshaling->sType;
28409     }
28410     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28411     vkStream->write((uint32_t*)&forMarshaling->MSize, sizeof(uint32_t));
28412     vkStream->write((uint32_t*)&forMarshaling->NSize, sizeof(uint32_t));
28413     vkStream->write((uint32_t*)&forMarshaling->KSize, sizeof(uint32_t));
28414     vkStream->write((VkComponentTypeNV*)&forMarshaling->AType, sizeof(VkComponentTypeNV));
28415     vkStream->write((VkComponentTypeNV*)&forMarshaling->BType, sizeof(VkComponentTypeNV));
28416     vkStream->write((VkComponentTypeNV*)&forMarshaling->CType, sizeof(VkComponentTypeNV));
28417     vkStream->write((VkComponentTypeNV*)&forMarshaling->DType, sizeof(VkComponentTypeNV));
28418     vkStream->write((VkScopeNV*)&forMarshaling->scope, sizeof(VkScopeNV));
28419 }
28420 
unmarshal_VkCooperativeMatrixPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkCooperativeMatrixPropertiesNV * forUnmarshaling)28421 void unmarshal_VkCooperativeMatrixPropertiesNV(VulkanStream* vkStream, VkStructureType rootType,
28422                                                VkCooperativeMatrixPropertiesNV* forUnmarshaling) {
28423     (void)rootType;
28424     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28425     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28426         rootType = forUnmarshaling->sType;
28427     }
28428     size_t pNext_size;
28429     pNext_size = vkStream->getBe32();
28430     forUnmarshaling->pNext = nullptr;
28431     if (pNext_size) {
28432         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28433         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28434         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28435         vkStream->alloc((void**)&forUnmarshaling->pNext,
28436                         goldfish_vk_extension_struct_size_with_stream_features(
28437                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28438         *(VkStructureType*)forUnmarshaling->pNext = extType;
28439         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28440     }
28441     vkStream->read((uint32_t*)&forUnmarshaling->MSize, sizeof(uint32_t));
28442     vkStream->read((uint32_t*)&forUnmarshaling->NSize, sizeof(uint32_t));
28443     vkStream->read((uint32_t*)&forUnmarshaling->KSize, sizeof(uint32_t));
28444     vkStream->read((VkComponentTypeNV*)&forUnmarshaling->AType, sizeof(VkComponentTypeNV));
28445     vkStream->read((VkComponentTypeNV*)&forUnmarshaling->BType, sizeof(VkComponentTypeNV));
28446     vkStream->read((VkComponentTypeNV*)&forUnmarshaling->CType, sizeof(VkComponentTypeNV));
28447     vkStream->read((VkComponentTypeNV*)&forUnmarshaling->DType, sizeof(VkComponentTypeNV));
28448     vkStream->read((VkScopeNV*)&forUnmarshaling->scope, sizeof(VkScopeNV));
28449 }
28450 
marshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCooperativeMatrixFeaturesNV * forMarshaling)28451 void marshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
28452     VulkanStream* vkStream, VkStructureType rootType,
28453     const VkPhysicalDeviceCooperativeMatrixFeaturesNV* forMarshaling) {
28454     (void)rootType;
28455     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28456     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28457         rootType = forMarshaling->sType;
28458     }
28459     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28460     vkStream->write((VkBool32*)&forMarshaling->cooperativeMatrix, sizeof(VkBool32));
28461     vkStream->write((VkBool32*)&forMarshaling->cooperativeMatrixRobustBufferAccess,
28462                     sizeof(VkBool32));
28463 }
28464 
unmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCooperativeMatrixFeaturesNV * forUnmarshaling)28465 void unmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
28466     VulkanStream* vkStream, VkStructureType rootType,
28467     VkPhysicalDeviceCooperativeMatrixFeaturesNV* forUnmarshaling) {
28468     (void)rootType;
28469     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28470     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28471         rootType = forUnmarshaling->sType;
28472     }
28473     size_t pNext_size;
28474     pNext_size = vkStream->getBe32();
28475     forUnmarshaling->pNext = nullptr;
28476     if (pNext_size) {
28477         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28478         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28479         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28480         vkStream->alloc((void**)&forUnmarshaling->pNext,
28481                         goldfish_vk_extension_struct_size_with_stream_features(
28482                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28483         *(VkStructureType*)forUnmarshaling->pNext = extType;
28484         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28485     }
28486     vkStream->read((VkBool32*)&forUnmarshaling->cooperativeMatrix, sizeof(VkBool32));
28487     vkStream->read((VkBool32*)&forUnmarshaling->cooperativeMatrixRobustBufferAccess,
28488                    sizeof(VkBool32));
28489 }
28490 
marshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCooperativeMatrixPropertiesNV * forMarshaling)28491 void marshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
28492     VulkanStream* vkStream, VkStructureType rootType,
28493     const VkPhysicalDeviceCooperativeMatrixPropertiesNV* forMarshaling) {
28494     (void)rootType;
28495     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28496     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28497         rootType = forMarshaling->sType;
28498     }
28499     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28500     vkStream->write((VkShaderStageFlags*)&forMarshaling->cooperativeMatrixSupportedStages,
28501                     sizeof(VkShaderStageFlags));
28502 }
28503 
unmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCooperativeMatrixPropertiesNV * forUnmarshaling)28504 void unmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
28505     VulkanStream* vkStream, VkStructureType rootType,
28506     VkPhysicalDeviceCooperativeMatrixPropertiesNV* forUnmarshaling) {
28507     (void)rootType;
28508     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28509     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28510         rootType = forUnmarshaling->sType;
28511     }
28512     size_t pNext_size;
28513     pNext_size = vkStream->getBe32();
28514     forUnmarshaling->pNext = nullptr;
28515     if (pNext_size) {
28516         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28517         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28518         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28519         vkStream->alloc((void**)&forUnmarshaling->pNext,
28520                         goldfish_vk_extension_struct_size_with_stream_features(
28521                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28522         *(VkStructureType*)forUnmarshaling->pNext = extType;
28523         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28524     }
28525     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->cooperativeMatrixSupportedStages,
28526                    sizeof(VkShaderStageFlags));
28527 }
28528 
28529 #endif
28530 #ifdef VK_NV_coverage_reduction_mode
marshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCoverageReductionModeFeaturesNV * forMarshaling)28531 void marshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
28532     VulkanStream* vkStream, VkStructureType rootType,
28533     const VkPhysicalDeviceCoverageReductionModeFeaturesNV* forMarshaling) {
28534     (void)rootType;
28535     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28536     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28537         rootType = forMarshaling->sType;
28538     }
28539     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28540     vkStream->write((VkBool32*)&forMarshaling->coverageReductionMode, sizeof(VkBool32));
28541 }
28542 
unmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCoverageReductionModeFeaturesNV * forUnmarshaling)28543 void unmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
28544     VulkanStream* vkStream, VkStructureType rootType,
28545     VkPhysicalDeviceCoverageReductionModeFeaturesNV* forUnmarshaling) {
28546     (void)rootType;
28547     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28548     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28549         rootType = forUnmarshaling->sType;
28550     }
28551     size_t pNext_size;
28552     pNext_size = vkStream->getBe32();
28553     forUnmarshaling->pNext = nullptr;
28554     if (pNext_size) {
28555         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28556         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28557         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28558         vkStream->alloc((void**)&forUnmarshaling->pNext,
28559                         goldfish_vk_extension_struct_size_with_stream_features(
28560                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28561         *(VkStructureType*)forUnmarshaling->pNext = extType;
28562         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28563     }
28564     vkStream->read((VkBool32*)&forUnmarshaling->coverageReductionMode, sizeof(VkBool32));
28565 }
28566 
marshal_VkPipelineCoverageReductionStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineCoverageReductionStateCreateInfoNV * forMarshaling)28567 void marshal_VkPipelineCoverageReductionStateCreateInfoNV(
28568     VulkanStream* vkStream, VkStructureType rootType,
28569     const VkPipelineCoverageReductionStateCreateInfoNV* forMarshaling) {
28570     (void)rootType;
28571     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28572     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28573         rootType = forMarshaling->sType;
28574     }
28575     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28576     vkStream->write((VkPipelineCoverageReductionStateCreateFlagsNV*)&forMarshaling->flags,
28577                     sizeof(VkPipelineCoverageReductionStateCreateFlagsNV));
28578     vkStream->write((VkCoverageReductionModeNV*)&forMarshaling->coverageReductionMode,
28579                     sizeof(VkCoverageReductionModeNV));
28580 }
28581 
unmarshal_VkPipelineCoverageReductionStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCoverageReductionStateCreateInfoNV * forUnmarshaling)28582 void unmarshal_VkPipelineCoverageReductionStateCreateInfoNV(
28583     VulkanStream* vkStream, VkStructureType rootType,
28584     VkPipelineCoverageReductionStateCreateInfoNV* forUnmarshaling) {
28585     (void)rootType;
28586     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28587     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28588         rootType = forUnmarshaling->sType;
28589     }
28590     size_t pNext_size;
28591     pNext_size = vkStream->getBe32();
28592     forUnmarshaling->pNext = nullptr;
28593     if (pNext_size) {
28594         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28595         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28596         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28597         vkStream->alloc((void**)&forUnmarshaling->pNext,
28598                         goldfish_vk_extension_struct_size_with_stream_features(
28599                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28600         *(VkStructureType*)forUnmarshaling->pNext = extType;
28601         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28602     }
28603     vkStream->read((VkPipelineCoverageReductionStateCreateFlagsNV*)&forUnmarshaling->flags,
28604                    sizeof(VkPipelineCoverageReductionStateCreateFlagsNV));
28605     vkStream->read((VkCoverageReductionModeNV*)&forUnmarshaling->coverageReductionMode,
28606                    sizeof(VkCoverageReductionModeNV));
28607 }
28608 
marshal_VkFramebufferMixedSamplesCombinationNV(VulkanStream * vkStream,VkStructureType rootType,const VkFramebufferMixedSamplesCombinationNV * forMarshaling)28609 void marshal_VkFramebufferMixedSamplesCombinationNV(
28610     VulkanStream* vkStream, VkStructureType rootType,
28611     const VkFramebufferMixedSamplesCombinationNV* forMarshaling) {
28612     (void)rootType;
28613     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28614     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28615         rootType = forMarshaling->sType;
28616     }
28617     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28618     vkStream->write((VkCoverageReductionModeNV*)&forMarshaling->coverageReductionMode,
28619                     sizeof(VkCoverageReductionModeNV));
28620     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
28621                     sizeof(VkSampleCountFlagBits));
28622     vkStream->write((VkSampleCountFlags*)&forMarshaling->depthStencilSamples,
28623                     sizeof(VkSampleCountFlags));
28624     vkStream->write((VkSampleCountFlags*)&forMarshaling->colorSamples, sizeof(VkSampleCountFlags));
28625 }
28626 
unmarshal_VkFramebufferMixedSamplesCombinationNV(VulkanStream * vkStream,VkStructureType rootType,VkFramebufferMixedSamplesCombinationNV * forUnmarshaling)28627 void unmarshal_VkFramebufferMixedSamplesCombinationNV(
28628     VulkanStream* vkStream, VkStructureType rootType,
28629     VkFramebufferMixedSamplesCombinationNV* forUnmarshaling) {
28630     (void)rootType;
28631     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28632     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28633         rootType = forUnmarshaling->sType;
28634     }
28635     size_t pNext_size;
28636     pNext_size = vkStream->getBe32();
28637     forUnmarshaling->pNext = nullptr;
28638     if (pNext_size) {
28639         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28640         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28641         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28642         vkStream->alloc((void**)&forUnmarshaling->pNext,
28643                         goldfish_vk_extension_struct_size_with_stream_features(
28644                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28645         *(VkStructureType*)forUnmarshaling->pNext = extType;
28646         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28647     }
28648     vkStream->read((VkCoverageReductionModeNV*)&forUnmarshaling->coverageReductionMode,
28649                    sizeof(VkCoverageReductionModeNV));
28650     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples,
28651                    sizeof(VkSampleCountFlagBits));
28652     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->depthStencilSamples,
28653                    sizeof(VkSampleCountFlags));
28654     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->colorSamples, sizeof(VkSampleCountFlags));
28655 }
28656 
28657 #endif
28658 #ifdef VK_EXT_fragment_shader_interlock
marshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT * forMarshaling)28659 void marshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
28660     VulkanStream* vkStream, VkStructureType rootType,
28661     const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forMarshaling) {
28662     (void)rootType;
28663     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28664     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28665         rootType = forMarshaling->sType;
28666     }
28667     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28668     vkStream->write((VkBool32*)&forMarshaling->fragmentShaderSampleInterlock, sizeof(VkBool32));
28669     vkStream->write((VkBool32*)&forMarshaling->fragmentShaderPixelInterlock, sizeof(VkBool32));
28670     vkStream->write((VkBool32*)&forMarshaling->fragmentShaderShadingRateInterlock,
28671                     sizeof(VkBool32));
28672 }
28673 
unmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT * forUnmarshaling)28674 void unmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
28675     VulkanStream* vkStream, VkStructureType rootType,
28676     VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forUnmarshaling) {
28677     (void)rootType;
28678     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28679     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28680         rootType = forUnmarshaling->sType;
28681     }
28682     size_t pNext_size;
28683     pNext_size = vkStream->getBe32();
28684     forUnmarshaling->pNext = nullptr;
28685     if (pNext_size) {
28686         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28687         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28688         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28689         vkStream->alloc((void**)&forUnmarshaling->pNext,
28690                         goldfish_vk_extension_struct_size_with_stream_features(
28691                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28692         *(VkStructureType*)forUnmarshaling->pNext = extType;
28693         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28694     }
28695     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderSampleInterlock, sizeof(VkBool32));
28696     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderPixelInterlock, sizeof(VkBool32));
28697     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderShadingRateInterlock,
28698                    sizeof(VkBool32));
28699 }
28700 
28701 #endif
28702 #ifdef VK_EXT_ycbcr_image_arrays
marshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT * forMarshaling)28703 void marshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
28704     VulkanStream* vkStream, VkStructureType rootType,
28705     const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forMarshaling) {
28706     (void)rootType;
28707     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28708     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28709         rootType = forMarshaling->sType;
28710     }
28711     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28712     vkStream->write((VkBool32*)&forMarshaling->ycbcrImageArrays, sizeof(VkBool32));
28713 }
28714 
unmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceYcbcrImageArraysFeaturesEXT * forUnmarshaling)28715 void unmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
28716     VulkanStream* vkStream, VkStructureType rootType,
28717     VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forUnmarshaling) {
28718     (void)rootType;
28719     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28720     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28721         rootType = forUnmarshaling->sType;
28722     }
28723     size_t pNext_size;
28724     pNext_size = vkStream->getBe32();
28725     forUnmarshaling->pNext = nullptr;
28726     if (pNext_size) {
28727         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28728         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28729         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28730         vkStream->alloc((void**)&forUnmarshaling->pNext,
28731                         goldfish_vk_extension_struct_size_with_stream_features(
28732                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28733         *(VkStructureType*)forUnmarshaling->pNext = extType;
28734         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28735     }
28736     vkStream->read((VkBool32*)&forUnmarshaling->ycbcrImageArrays, sizeof(VkBool32));
28737 }
28738 
28739 #endif
28740 #ifdef VK_EXT_provoking_vertex
marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexFeaturesEXT * forMarshaling)28741 void marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
28742     VulkanStream* vkStream, VkStructureType rootType,
28743     const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling) {
28744     (void)rootType;
28745     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28746     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28747         rootType = forMarshaling->sType;
28748     }
28749     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28750     vkStream->write((VkBool32*)&forMarshaling->provokingVertexLast, sizeof(VkBool32));
28751     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesProvokingVertex,
28752                     sizeof(VkBool32));
28753 }
28754 
unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexFeaturesEXT * forUnmarshaling)28755 void unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
28756     VulkanStream* vkStream, VkStructureType rootType,
28757     VkPhysicalDeviceProvokingVertexFeaturesEXT* forUnmarshaling) {
28758     (void)rootType;
28759     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28760     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28761         rootType = forUnmarshaling->sType;
28762     }
28763     size_t pNext_size;
28764     pNext_size = vkStream->getBe32();
28765     forUnmarshaling->pNext = nullptr;
28766     if (pNext_size) {
28767         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28768         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28769         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28770         vkStream->alloc((void**)&forUnmarshaling->pNext,
28771                         goldfish_vk_extension_struct_size_with_stream_features(
28772                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28773         *(VkStructureType*)forUnmarshaling->pNext = extType;
28774         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28775     }
28776     vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexLast, sizeof(VkBool32));
28777     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackPreservesProvokingVertex,
28778                    sizeof(VkBool32));
28779 }
28780 
marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexPropertiesEXT * forMarshaling)28781 void marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
28782     VulkanStream* vkStream, VkStructureType rootType,
28783     const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling) {
28784     (void)rootType;
28785     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28786     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28787         rootType = forMarshaling->sType;
28788     }
28789     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28790     vkStream->write((VkBool32*)&forMarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
28791     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesTriangleFanProvokingVertex,
28792                     sizeof(VkBool32));
28793 }
28794 
unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexPropertiesEXT * forUnmarshaling)28795 void unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
28796     VulkanStream* vkStream, VkStructureType rootType,
28797     VkPhysicalDeviceProvokingVertexPropertiesEXT* forUnmarshaling) {
28798     (void)rootType;
28799     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28800     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28801         rootType = forUnmarshaling->sType;
28802     }
28803     size_t pNext_size;
28804     pNext_size = vkStream->getBe32();
28805     forUnmarshaling->pNext = nullptr;
28806     if (pNext_size) {
28807         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28808         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28809         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28810         vkStream->alloc((void**)&forUnmarshaling->pNext,
28811                         goldfish_vk_extension_struct_size_with_stream_features(
28812                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28813         *(VkStructureType*)forUnmarshaling->pNext = extType;
28814         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28815     }
28816     vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
28817     vkStream->read(
28818         (VkBool32*)&forUnmarshaling->transformFeedbackPreservesTriangleFanProvokingVertex,
28819         sizeof(VkBool32));
28820 }
28821 
marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forMarshaling)28822 void marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
28823     VulkanStream* vkStream, VkStructureType rootType,
28824     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forMarshaling) {
28825     (void)rootType;
28826     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28827     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28828         rootType = forMarshaling->sType;
28829     }
28830     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28831     vkStream->write((VkProvokingVertexModeEXT*)&forMarshaling->provokingVertexMode,
28832                     sizeof(VkProvokingVertexModeEXT));
28833 }
28834 
unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forUnmarshaling)28835 void unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
28836     VulkanStream* vkStream, VkStructureType rootType,
28837     VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forUnmarshaling) {
28838     (void)rootType;
28839     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28840     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28841         rootType = forUnmarshaling->sType;
28842     }
28843     size_t pNext_size;
28844     pNext_size = vkStream->getBe32();
28845     forUnmarshaling->pNext = nullptr;
28846     if (pNext_size) {
28847         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28848         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28849         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28850         vkStream->alloc((void**)&forUnmarshaling->pNext,
28851                         goldfish_vk_extension_struct_size_with_stream_features(
28852                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28853         *(VkStructureType*)forUnmarshaling->pNext = extType;
28854         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28855     }
28856     vkStream->read((VkProvokingVertexModeEXT*)&forUnmarshaling->provokingVertexMode,
28857                    sizeof(VkProvokingVertexModeEXT));
28858 }
28859 
28860 #endif
28861 #ifdef VK_EXT_full_screen_exclusive
marshal_VkSurfaceFullScreenExclusiveInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceFullScreenExclusiveInfoEXT * forMarshaling)28862 void marshal_VkSurfaceFullScreenExclusiveInfoEXT(
28863     VulkanStream* vkStream, VkStructureType rootType,
28864     const VkSurfaceFullScreenExclusiveInfoEXT* forMarshaling) {
28865     (void)rootType;
28866     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28867     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28868         rootType = forMarshaling->sType;
28869     }
28870     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28871     vkStream->write((VkFullScreenExclusiveEXT*)&forMarshaling->fullScreenExclusive,
28872                     sizeof(VkFullScreenExclusiveEXT));
28873 }
28874 
unmarshal_VkSurfaceFullScreenExclusiveInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceFullScreenExclusiveInfoEXT * forUnmarshaling)28875 void unmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
28876     VulkanStream* vkStream, VkStructureType rootType,
28877     VkSurfaceFullScreenExclusiveInfoEXT* forUnmarshaling) {
28878     (void)rootType;
28879     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28881         rootType = forUnmarshaling->sType;
28882     }
28883     size_t pNext_size;
28884     pNext_size = vkStream->getBe32();
28885     forUnmarshaling->pNext = nullptr;
28886     if (pNext_size) {
28887         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28888         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28889         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28890         vkStream->alloc((void**)&forUnmarshaling->pNext,
28891                         goldfish_vk_extension_struct_size_with_stream_features(
28892                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28893         *(VkStructureType*)forUnmarshaling->pNext = extType;
28894         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28895     }
28896     vkStream->read((VkFullScreenExclusiveEXT*)&forUnmarshaling->fullScreenExclusive,
28897                    sizeof(VkFullScreenExclusiveEXT));
28898 }
28899 
marshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceCapabilitiesFullScreenExclusiveEXT * forMarshaling)28900 void marshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
28901     VulkanStream* vkStream, VkStructureType rootType,
28902     const VkSurfaceCapabilitiesFullScreenExclusiveEXT* forMarshaling) {
28903     (void)rootType;
28904     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28905     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28906         rootType = forMarshaling->sType;
28907     }
28908     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28909     vkStream->write((VkBool32*)&forMarshaling->fullScreenExclusiveSupported, sizeof(VkBool32));
28910 }
28911 
unmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceCapabilitiesFullScreenExclusiveEXT * forUnmarshaling)28912 void unmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
28913     VulkanStream* vkStream, VkStructureType rootType,
28914     VkSurfaceCapabilitiesFullScreenExclusiveEXT* forUnmarshaling) {
28915     (void)rootType;
28916     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28917     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28918         rootType = forUnmarshaling->sType;
28919     }
28920     size_t pNext_size;
28921     pNext_size = vkStream->getBe32();
28922     forUnmarshaling->pNext = nullptr;
28923     if (pNext_size) {
28924         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28925         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28926         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28927         vkStream->alloc((void**)&forUnmarshaling->pNext,
28928                         goldfish_vk_extension_struct_size_with_stream_features(
28929                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28930         *(VkStructureType*)forUnmarshaling->pNext = extType;
28931         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28932     }
28933     vkStream->read((VkBool32*)&forUnmarshaling->fullScreenExclusiveSupported, sizeof(VkBool32));
28934 }
28935 
marshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceFullScreenExclusiveWin32InfoEXT * forMarshaling)28936 void marshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
28937     VulkanStream* vkStream, VkStructureType rootType,
28938     const VkSurfaceFullScreenExclusiveWin32InfoEXT* forMarshaling) {
28939     (void)rootType;
28940     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28941     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28942         rootType = forMarshaling->sType;
28943     }
28944     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28945     vkStream->write((HMONITOR*)&forMarshaling->hmonitor, sizeof(HMONITOR));
28946 }
28947 
unmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceFullScreenExclusiveWin32InfoEXT * forUnmarshaling)28948 void unmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
28949     VulkanStream* vkStream, VkStructureType rootType,
28950     VkSurfaceFullScreenExclusiveWin32InfoEXT* forUnmarshaling) {
28951     (void)rootType;
28952     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28953     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28954         rootType = forUnmarshaling->sType;
28955     }
28956     size_t pNext_size;
28957     pNext_size = vkStream->getBe32();
28958     forUnmarshaling->pNext = nullptr;
28959     if (pNext_size) {
28960         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28961         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28962         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
28963         vkStream->alloc((void**)&forUnmarshaling->pNext,
28964                         goldfish_vk_extension_struct_size_with_stream_features(
28965                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
28966         *(VkStructureType*)forUnmarshaling->pNext = extType;
28967         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
28968     }
28969     vkStream->read((HMONITOR*)&forUnmarshaling->hmonitor, sizeof(HMONITOR));
28970 }
28971 
28972 #endif
28973 #ifdef VK_EXT_headless_surface
marshal_VkHeadlessSurfaceCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkHeadlessSurfaceCreateInfoEXT * forMarshaling)28974 void marshal_VkHeadlessSurfaceCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
28975                                             const VkHeadlessSurfaceCreateInfoEXT* forMarshaling) {
28976     (void)rootType;
28977     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
28978     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28979         rootType = forMarshaling->sType;
28980     }
28981     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
28982     vkStream->write((VkHeadlessSurfaceCreateFlagsEXT*)&forMarshaling->flags,
28983                     sizeof(VkHeadlessSurfaceCreateFlagsEXT));
28984 }
28985 
unmarshal_VkHeadlessSurfaceCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkHeadlessSurfaceCreateInfoEXT * forUnmarshaling)28986 void unmarshal_VkHeadlessSurfaceCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
28987                                               VkHeadlessSurfaceCreateInfoEXT* forUnmarshaling) {
28988     (void)rootType;
28989     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
28990     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
28991         rootType = forUnmarshaling->sType;
28992     }
28993     size_t pNext_size;
28994     pNext_size = vkStream->getBe32();
28995     forUnmarshaling->pNext = nullptr;
28996     if (pNext_size) {
28997         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
28998         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
28999         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29000         vkStream->alloc((void**)&forUnmarshaling->pNext,
29001                         goldfish_vk_extension_struct_size_with_stream_features(
29002                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29003         *(VkStructureType*)forUnmarshaling->pNext = extType;
29004         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29005     }
29006     vkStream->read((VkHeadlessSurfaceCreateFlagsEXT*)&forUnmarshaling->flags,
29007                    sizeof(VkHeadlessSurfaceCreateFlagsEXT));
29008 }
29009 
29010 #endif
29011 #ifdef VK_EXT_line_rasterization
marshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationFeaturesEXT * forMarshaling)29012 void marshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
29013     VulkanStream* vkStream, VkStructureType rootType,
29014     const VkPhysicalDeviceLineRasterizationFeaturesEXT* forMarshaling) {
29015     (void)rootType;
29016     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29017     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29018         rootType = forMarshaling->sType;
29019     }
29020     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29021     vkStream->write((VkBool32*)&forMarshaling->rectangularLines, sizeof(VkBool32));
29022     vkStream->write((VkBool32*)&forMarshaling->bresenhamLines, sizeof(VkBool32));
29023     vkStream->write((VkBool32*)&forMarshaling->smoothLines, sizeof(VkBool32));
29024     vkStream->write((VkBool32*)&forMarshaling->stippledRectangularLines, sizeof(VkBool32));
29025     vkStream->write((VkBool32*)&forMarshaling->stippledBresenhamLines, sizeof(VkBool32));
29026     vkStream->write((VkBool32*)&forMarshaling->stippledSmoothLines, sizeof(VkBool32));
29027 }
29028 
unmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationFeaturesEXT * forUnmarshaling)29029 void unmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
29030     VulkanStream* vkStream, VkStructureType rootType,
29031     VkPhysicalDeviceLineRasterizationFeaturesEXT* forUnmarshaling) {
29032     (void)rootType;
29033     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29034     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29035         rootType = forUnmarshaling->sType;
29036     }
29037     size_t pNext_size;
29038     pNext_size = vkStream->getBe32();
29039     forUnmarshaling->pNext = nullptr;
29040     if (pNext_size) {
29041         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29042         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29043         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29044         vkStream->alloc((void**)&forUnmarshaling->pNext,
29045                         goldfish_vk_extension_struct_size_with_stream_features(
29046                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29047         *(VkStructureType*)forUnmarshaling->pNext = extType;
29048         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29049     }
29050     vkStream->read((VkBool32*)&forUnmarshaling->rectangularLines, sizeof(VkBool32));
29051     vkStream->read((VkBool32*)&forUnmarshaling->bresenhamLines, sizeof(VkBool32));
29052     vkStream->read((VkBool32*)&forUnmarshaling->smoothLines, sizeof(VkBool32));
29053     vkStream->read((VkBool32*)&forUnmarshaling->stippledRectangularLines, sizeof(VkBool32));
29054     vkStream->read((VkBool32*)&forUnmarshaling->stippledBresenhamLines, sizeof(VkBool32));
29055     vkStream->read((VkBool32*)&forUnmarshaling->stippledSmoothLines, sizeof(VkBool32));
29056 }
29057 
marshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationPropertiesEXT * forMarshaling)29058 void marshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
29059     VulkanStream* vkStream, VkStructureType rootType,
29060     const VkPhysicalDeviceLineRasterizationPropertiesEXT* forMarshaling) {
29061     (void)rootType;
29062     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29063     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29064         rootType = forMarshaling->sType;
29065     }
29066     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29067     vkStream->write((uint32_t*)&forMarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
29068 }
29069 
unmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationPropertiesEXT * forUnmarshaling)29070 void unmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
29071     VulkanStream* vkStream, VkStructureType rootType,
29072     VkPhysicalDeviceLineRasterizationPropertiesEXT* forUnmarshaling) {
29073     (void)rootType;
29074     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29075     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29076         rootType = forUnmarshaling->sType;
29077     }
29078     size_t pNext_size;
29079     pNext_size = vkStream->getBe32();
29080     forUnmarshaling->pNext = nullptr;
29081     if (pNext_size) {
29082         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29083         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29084         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29085         vkStream->alloc((void**)&forUnmarshaling->pNext,
29086                         goldfish_vk_extension_struct_size_with_stream_features(
29087                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29088         *(VkStructureType*)forUnmarshaling->pNext = extType;
29089         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29090     }
29091     vkStream->read((uint32_t*)&forUnmarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
29092 }
29093 
marshal_VkPipelineRasterizationLineStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineRasterizationLineStateCreateInfoEXT * forMarshaling)29094 void marshal_VkPipelineRasterizationLineStateCreateInfoEXT(
29095     VulkanStream* vkStream, VkStructureType rootType,
29096     const VkPipelineRasterizationLineStateCreateInfoEXT* forMarshaling) {
29097     (void)rootType;
29098     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29099     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29100         rootType = forMarshaling->sType;
29101     }
29102     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29103     vkStream->write((VkLineRasterizationModeEXT*)&forMarshaling->lineRasterizationMode,
29104                     sizeof(VkLineRasterizationModeEXT));
29105     vkStream->write((VkBool32*)&forMarshaling->stippledLineEnable, sizeof(VkBool32));
29106     vkStream->write((uint32_t*)&forMarshaling->lineStippleFactor, sizeof(uint32_t));
29107     vkStream->write((uint16_t*)&forMarshaling->lineStipplePattern, sizeof(uint16_t));
29108 }
29109 
unmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationLineStateCreateInfoEXT * forUnmarshaling)29110 void unmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(
29111     VulkanStream* vkStream, VkStructureType rootType,
29112     VkPipelineRasterizationLineStateCreateInfoEXT* forUnmarshaling) {
29113     (void)rootType;
29114     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29115     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29116         rootType = forUnmarshaling->sType;
29117     }
29118     size_t pNext_size;
29119     pNext_size = vkStream->getBe32();
29120     forUnmarshaling->pNext = nullptr;
29121     if (pNext_size) {
29122         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29123         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29124         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29125         vkStream->alloc((void**)&forUnmarshaling->pNext,
29126                         goldfish_vk_extension_struct_size_with_stream_features(
29127                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29128         *(VkStructureType*)forUnmarshaling->pNext = extType;
29129         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29130     }
29131     vkStream->read((VkLineRasterizationModeEXT*)&forUnmarshaling->lineRasterizationMode,
29132                    sizeof(VkLineRasterizationModeEXT));
29133     vkStream->read((VkBool32*)&forUnmarshaling->stippledLineEnable, sizeof(VkBool32));
29134     vkStream->read((uint32_t*)&forUnmarshaling->lineStippleFactor, sizeof(uint32_t));
29135     vkStream->read((uint16_t*)&forUnmarshaling->lineStipplePattern, sizeof(uint16_t));
29136 }
29137 
29138 #endif
29139 #ifdef VK_EXT_shader_atomic_float
marshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT * forMarshaling)29140 void marshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
29141     VulkanStream* vkStream, VkStructureType rootType,
29142     const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forMarshaling) {
29143     (void)rootType;
29144     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29145     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29146         rootType = forMarshaling->sType;
29147     }
29148     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29149     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat32Atomics, sizeof(VkBool32));
29150     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat32AtomicAdd, sizeof(VkBool32));
29151     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat64Atomics, sizeof(VkBool32));
29152     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat64AtomicAdd, sizeof(VkBool32));
29153     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat32Atomics, sizeof(VkBool32));
29154     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat32AtomicAdd, sizeof(VkBool32));
29155     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat64Atomics, sizeof(VkBool32));
29156     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat64AtomicAdd, sizeof(VkBool32));
29157     vkStream->write((VkBool32*)&forMarshaling->shaderImageFloat32Atomics, sizeof(VkBool32));
29158     vkStream->write((VkBool32*)&forMarshaling->shaderImageFloat32AtomicAdd, sizeof(VkBool32));
29159     vkStream->write((VkBool32*)&forMarshaling->sparseImageFloat32Atomics, sizeof(VkBool32));
29160     vkStream->write((VkBool32*)&forMarshaling->sparseImageFloat32AtomicAdd, sizeof(VkBool32));
29161 }
29162 
unmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderAtomicFloatFeaturesEXT * forUnmarshaling)29163 void unmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
29164     VulkanStream* vkStream, VkStructureType rootType,
29165     VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forUnmarshaling) {
29166     (void)rootType;
29167     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29168     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29169         rootType = forUnmarshaling->sType;
29170     }
29171     size_t pNext_size;
29172     pNext_size = vkStream->getBe32();
29173     forUnmarshaling->pNext = nullptr;
29174     if (pNext_size) {
29175         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29176         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29177         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29178         vkStream->alloc((void**)&forUnmarshaling->pNext,
29179                         goldfish_vk_extension_struct_size_with_stream_features(
29180                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29181         *(VkStructureType*)forUnmarshaling->pNext = extType;
29182         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29183     }
29184     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat32Atomics, sizeof(VkBool32));
29185     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat32AtomicAdd, sizeof(VkBool32));
29186     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat64Atomics, sizeof(VkBool32));
29187     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat64AtomicAdd, sizeof(VkBool32));
29188     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat32Atomics, sizeof(VkBool32));
29189     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat32AtomicAdd, sizeof(VkBool32));
29190     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat64Atomics, sizeof(VkBool32));
29191     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat64AtomicAdd, sizeof(VkBool32));
29192     vkStream->read((VkBool32*)&forUnmarshaling->shaderImageFloat32Atomics, sizeof(VkBool32));
29193     vkStream->read((VkBool32*)&forUnmarshaling->shaderImageFloat32AtomicAdd, sizeof(VkBool32));
29194     vkStream->read((VkBool32*)&forUnmarshaling->sparseImageFloat32Atomics, sizeof(VkBool32));
29195     vkStream->read((VkBool32*)&forUnmarshaling->sparseImageFloat32AtomicAdd, sizeof(VkBool32));
29196 }
29197 
29198 #endif
29199 #ifdef VK_EXT_host_query_reset
29200 #endif
29201 #ifdef VK_EXT_index_type_uint8
marshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceIndexTypeUint8FeaturesEXT * forMarshaling)29202 void marshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
29203     VulkanStream* vkStream, VkStructureType rootType,
29204     const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forMarshaling) {
29205     (void)rootType;
29206     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29207     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29208         rootType = forMarshaling->sType;
29209     }
29210     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29211     vkStream->write((VkBool32*)&forMarshaling->indexTypeUint8, sizeof(VkBool32));
29212 }
29213 
unmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceIndexTypeUint8FeaturesEXT * forUnmarshaling)29214 void unmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
29215     VulkanStream* vkStream, VkStructureType rootType,
29216     VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forUnmarshaling) {
29217     (void)rootType;
29218     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29219     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29220         rootType = forUnmarshaling->sType;
29221     }
29222     size_t pNext_size;
29223     pNext_size = vkStream->getBe32();
29224     forUnmarshaling->pNext = nullptr;
29225     if (pNext_size) {
29226         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29227         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29228         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29229         vkStream->alloc((void**)&forUnmarshaling->pNext,
29230                         goldfish_vk_extension_struct_size_with_stream_features(
29231                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29232         *(VkStructureType*)forUnmarshaling->pNext = extType;
29233         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29234     }
29235     vkStream->read((VkBool32*)&forUnmarshaling->indexTypeUint8, sizeof(VkBool32));
29236 }
29237 
29238 #endif
29239 #ifdef VK_EXT_extended_dynamic_state
marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forMarshaling)29240 void marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
29241     VulkanStream* vkStream, VkStructureType rootType,
29242     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling) {
29243     (void)rootType;
29244     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29245     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29246         rootType = forMarshaling->sType;
29247     }
29248     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29249     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState, sizeof(VkBool32));
29250 }
29251 
unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forUnmarshaling)29252 void unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
29253     VulkanStream* vkStream, VkStructureType rootType,
29254     VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forUnmarshaling) {
29255     (void)rootType;
29256     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29257     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29258         rootType = forUnmarshaling->sType;
29259     }
29260     size_t pNext_size;
29261     pNext_size = vkStream->getBe32();
29262     forUnmarshaling->pNext = nullptr;
29263     if (pNext_size) {
29264         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29265         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29266         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29267         vkStream->alloc((void**)&forUnmarshaling->pNext,
29268                         goldfish_vk_extension_struct_size_with_stream_features(
29269                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29270         *(VkStructureType*)forUnmarshaling->pNext = extType;
29271         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29272     }
29273     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState, sizeof(VkBool32));
29274 }
29275 
29276 #endif
29277 #ifdef VK_EXT_shader_atomic_float2
marshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT * forMarshaling)29278 void marshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
29279     VulkanStream* vkStream, VkStructureType rootType,
29280     const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forMarshaling) {
29281     (void)rootType;
29282     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29283     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29284         rootType = forMarshaling->sType;
29285     }
29286     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29287     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat16Atomics, sizeof(VkBool32));
29288     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat16AtomicAdd, sizeof(VkBool32));
29289     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat16AtomicMinMax, sizeof(VkBool32));
29290     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat32AtomicMinMax, sizeof(VkBool32));
29291     vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat64AtomicMinMax, sizeof(VkBool32));
29292     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat16Atomics, sizeof(VkBool32));
29293     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat16AtomicAdd, sizeof(VkBool32));
29294     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat16AtomicMinMax, sizeof(VkBool32));
29295     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat32AtomicMinMax, sizeof(VkBool32));
29296     vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat64AtomicMinMax, sizeof(VkBool32));
29297     vkStream->write((VkBool32*)&forMarshaling->shaderImageFloat32AtomicMinMax, sizeof(VkBool32));
29298     vkStream->write((VkBool32*)&forMarshaling->sparseImageFloat32AtomicMinMax, sizeof(VkBool32));
29299 }
29300 
unmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT * forUnmarshaling)29301 void unmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
29302     VulkanStream* vkStream, VkStructureType rootType,
29303     VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forUnmarshaling) {
29304     (void)rootType;
29305     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29306     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29307         rootType = forUnmarshaling->sType;
29308     }
29309     size_t pNext_size;
29310     pNext_size = vkStream->getBe32();
29311     forUnmarshaling->pNext = nullptr;
29312     if (pNext_size) {
29313         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29314         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29315         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29316         vkStream->alloc((void**)&forUnmarshaling->pNext,
29317                         goldfish_vk_extension_struct_size_with_stream_features(
29318                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29319         *(VkStructureType*)forUnmarshaling->pNext = extType;
29320         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29321     }
29322     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat16Atomics, sizeof(VkBool32));
29323     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat16AtomicAdd, sizeof(VkBool32));
29324     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat16AtomicMinMax, sizeof(VkBool32));
29325     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat32AtomicMinMax, sizeof(VkBool32));
29326     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat64AtomicMinMax, sizeof(VkBool32));
29327     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat16Atomics, sizeof(VkBool32));
29328     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat16AtomicAdd, sizeof(VkBool32));
29329     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat16AtomicMinMax, sizeof(VkBool32));
29330     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat32AtomicMinMax, sizeof(VkBool32));
29331     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat64AtomicMinMax, sizeof(VkBool32));
29332     vkStream->read((VkBool32*)&forUnmarshaling->shaderImageFloat32AtomicMinMax, sizeof(VkBool32));
29333     vkStream->read((VkBool32*)&forUnmarshaling->sparseImageFloat32AtomicMinMax, sizeof(VkBool32));
29334 }
29335 
29336 #endif
29337 #ifdef VK_EXT_surface_maintenance1
marshal_VkSurfacePresentModeEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSurfacePresentModeEXT * forMarshaling)29338 void marshal_VkSurfacePresentModeEXT(VulkanStream* vkStream, VkStructureType rootType,
29339                                      const VkSurfacePresentModeEXT* forMarshaling) {
29340     (void)rootType;
29341     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29342     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29343         rootType = forMarshaling->sType;
29344     }
29345     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29346     vkStream->write((VkPresentModeKHR*)&forMarshaling->presentMode, sizeof(VkPresentModeKHR));
29347 }
29348 
unmarshal_VkSurfacePresentModeEXT(VulkanStream * vkStream,VkStructureType rootType,VkSurfacePresentModeEXT * forUnmarshaling)29349 void unmarshal_VkSurfacePresentModeEXT(VulkanStream* vkStream, VkStructureType rootType,
29350                                        VkSurfacePresentModeEXT* forUnmarshaling) {
29351     (void)rootType;
29352     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29353     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29354         rootType = forUnmarshaling->sType;
29355     }
29356     size_t pNext_size;
29357     pNext_size = vkStream->getBe32();
29358     forUnmarshaling->pNext = nullptr;
29359     if (pNext_size) {
29360         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29361         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29362         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29363         vkStream->alloc((void**)&forUnmarshaling->pNext,
29364                         goldfish_vk_extension_struct_size_with_stream_features(
29365                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29366         *(VkStructureType*)forUnmarshaling->pNext = extType;
29367         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29368     }
29369     vkStream->read((VkPresentModeKHR*)&forUnmarshaling->presentMode, sizeof(VkPresentModeKHR));
29370 }
29371 
marshal_VkSurfacePresentScalingCapabilitiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSurfacePresentScalingCapabilitiesEXT * forMarshaling)29372 void marshal_VkSurfacePresentScalingCapabilitiesEXT(
29373     VulkanStream* vkStream, VkStructureType rootType,
29374     const VkSurfacePresentScalingCapabilitiesEXT* forMarshaling) {
29375     (void)rootType;
29376     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29377     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29378         rootType = forMarshaling->sType;
29379     }
29380     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29381     vkStream->write((VkPresentScalingFlagsEXT*)&forMarshaling->supportedPresentScaling,
29382                     sizeof(VkPresentScalingFlagsEXT));
29383     vkStream->write((VkPresentGravityFlagsEXT*)&forMarshaling->supportedPresentGravityX,
29384                     sizeof(VkPresentGravityFlagsEXT));
29385     vkStream->write((VkPresentGravityFlagsEXT*)&forMarshaling->supportedPresentGravityY,
29386                     sizeof(VkPresentGravityFlagsEXT));
29387     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minScaledImageExtent));
29388     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxScaledImageExtent));
29389 }
29390 
unmarshal_VkSurfacePresentScalingCapabilitiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkSurfacePresentScalingCapabilitiesEXT * forUnmarshaling)29391 void unmarshal_VkSurfacePresentScalingCapabilitiesEXT(
29392     VulkanStream* vkStream, VkStructureType rootType,
29393     VkSurfacePresentScalingCapabilitiesEXT* forUnmarshaling) {
29394     (void)rootType;
29395     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29396     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29397         rootType = forUnmarshaling->sType;
29398     }
29399     size_t pNext_size;
29400     pNext_size = vkStream->getBe32();
29401     forUnmarshaling->pNext = nullptr;
29402     if (pNext_size) {
29403         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29404         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29405         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29406         vkStream->alloc((void**)&forUnmarshaling->pNext,
29407                         goldfish_vk_extension_struct_size_with_stream_features(
29408                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29409         *(VkStructureType*)forUnmarshaling->pNext = extType;
29410         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29411     }
29412     vkStream->read((VkPresentScalingFlagsEXT*)&forUnmarshaling->supportedPresentScaling,
29413                    sizeof(VkPresentScalingFlagsEXT));
29414     vkStream->read((VkPresentGravityFlagsEXT*)&forUnmarshaling->supportedPresentGravityX,
29415                    sizeof(VkPresentGravityFlagsEXT));
29416     vkStream->read((VkPresentGravityFlagsEXT*)&forUnmarshaling->supportedPresentGravityY,
29417                    sizeof(VkPresentGravityFlagsEXT));
29418     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minScaledImageExtent));
29419     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxScaledImageExtent));
29420 }
29421 
marshal_VkSurfacePresentModeCompatibilityEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSurfacePresentModeCompatibilityEXT * forMarshaling)29422 void marshal_VkSurfacePresentModeCompatibilityEXT(
29423     VulkanStream* vkStream, VkStructureType rootType,
29424     const VkSurfacePresentModeCompatibilityEXT* forMarshaling) {
29425     (void)rootType;
29426     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29427     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29428         rootType = forMarshaling->sType;
29429     }
29430     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29431     vkStream->write((uint32_t*)&forMarshaling->presentModeCount, sizeof(uint32_t));
29432     // WARNING PTR CHECK
29433     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pPresentModes;
29434     vkStream->putBe64(cgen_var_0);
29435     if (forMarshaling->pPresentModes) {
29436         vkStream->write((VkPresentModeKHR*)forMarshaling->pPresentModes,
29437                         forMarshaling->presentModeCount * sizeof(VkPresentModeKHR));
29438     }
29439 }
29440 
unmarshal_VkSurfacePresentModeCompatibilityEXT(VulkanStream * vkStream,VkStructureType rootType,VkSurfacePresentModeCompatibilityEXT * forUnmarshaling)29441 void unmarshal_VkSurfacePresentModeCompatibilityEXT(
29442     VulkanStream* vkStream, VkStructureType rootType,
29443     VkSurfacePresentModeCompatibilityEXT* forUnmarshaling) {
29444     (void)rootType;
29445     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29446     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29447         rootType = forUnmarshaling->sType;
29448     }
29449     size_t pNext_size;
29450     pNext_size = vkStream->getBe32();
29451     forUnmarshaling->pNext = nullptr;
29452     if (pNext_size) {
29453         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29454         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29455         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29456         vkStream->alloc((void**)&forUnmarshaling->pNext,
29457                         goldfish_vk_extension_struct_size_with_stream_features(
29458                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29459         *(VkStructureType*)forUnmarshaling->pNext = extType;
29460         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29461     }
29462     vkStream->read((uint32_t*)&forUnmarshaling->presentModeCount, sizeof(uint32_t));
29463     // WARNING PTR CHECK
29464     forUnmarshaling->pPresentModes = (VkPresentModeKHR*)(uintptr_t)vkStream->getBe64();
29465     if (forUnmarshaling->pPresentModes) {
29466         vkStream->alloc((void**)&forUnmarshaling->pPresentModes,
29467                         forUnmarshaling->presentModeCount * sizeof(VkPresentModeKHR));
29468         vkStream->read((VkPresentModeKHR*)forUnmarshaling->pPresentModes,
29469                        forUnmarshaling->presentModeCount * sizeof(VkPresentModeKHR));
29470     }
29471 }
29472 
29473 #endif
29474 #ifdef VK_EXT_swapchain_maintenance1
marshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT * forMarshaling)29475 void marshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
29476     VulkanStream* vkStream, VkStructureType rootType,
29477     const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* forMarshaling) {
29478     (void)rootType;
29479     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29480     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29481         rootType = forMarshaling->sType;
29482     }
29483     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29484     vkStream->write((VkBool32*)&forMarshaling->swapchainMaintenance1, sizeof(VkBool32));
29485 }
29486 
unmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT * forUnmarshaling)29487 void unmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
29488     VulkanStream* vkStream, VkStructureType rootType,
29489     VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* forUnmarshaling) {
29490     (void)rootType;
29491     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29492     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29493         rootType = forUnmarshaling->sType;
29494     }
29495     size_t pNext_size;
29496     pNext_size = vkStream->getBe32();
29497     forUnmarshaling->pNext = nullptr;
29498     if (pNext_size) {
29499         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29500         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29501         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29502         vkStream->alloc((void**)&forUnmarshaling->pNext,
29503                         goldfish_vk_extension_struct_size_with_stream_features(
29504                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29505         *(VkStructureType*)forUnmarshaling->pNext = extType;
29506         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29507     }
29508     vkStream->read((VkBool32*)&forUnmarshaling->swapchainMaintenance1, sizeof(VkBool32));
29509 }
29510 
marshal_VkSwapchainPresentFenceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainPresentFenceInfoEXT * forMarshaling)29511 void marshal_VkSwapchainPresentFenceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
29512                                             const VkSwapchainPresentFenceInfoEXT* forMarshaling) {
29513     (void)rootType;
29514     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29515     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29516         rootType = forMarshaling->sType;
29517     }
29518     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29519     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
29520     if (forMarshaling->swapchainCount) {
29521         uint64_t* cgen_var_0;
29522         vkStream->alloc((void**)&cgen_var_0, forMarshaling->swapchainCount * 8);
29523         vkStream->handleMapping()->mapHandles_VkFence_u64(forMarshaling->pFences, cgen_var_0,
29524                                                           forMarshaling->swapchainCount);
29525         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->swapchainCount * 8);
29526     }
29527 }
29528 
unmarshal_VkSwapchainPresentFenceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentFenceInfoEXT * forUnmarshaling)29529 void unmarshal_VkSwapchainPresentFenceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
29530                                               VkSwapchainPresentFenceInfoEXT* forUnmarshaling) {
29531     (void)rootType;
29532     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29533     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29534         rootType = forUnmarshaling->sType;
29535     }
29536     size_t pNext_size;
29537     pNext_size = vkStream->getBe32();
29538     forUnmarshaling->pNext = nullptr;
29539     if (pNext_size) {
29540         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29541         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29542         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29543         vkStream->alloc((void**)&forUnmarshaling->pNext,
29544                         goldfish_vk_extension_struct_size_with_stream_features(
29545                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29546         *(VkStructureType*)forUnmarshaling->pNext = extType;
29547         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29548     }
29549     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
29550     vkStream->alloc((void**)&forUnmarshaling->pFences,
29551                     forUnmarshaling->swapchainCount * sizeof(const VkFence));
29552     if (forUnmarshaling->swapchainCount) {
29553         uint64_t* cgen_var_0;
29554         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->swapchainCount * 8);
29555         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->swapchainCount * 8);
29556         vkStream->handleMapping()->mapHandles_u64_VkFence(
29557             cgen_var_0, (VkFence*)forUnmarshaling->pFences, forUnmarshaling->swapchainCount);
29558     }
29559 }
29560 
marshal_VkSwapchainPresentModesCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainPresentModesCreateInfoEXT * forMarshaling)29561 void marshal_VkSwapchainPresentModesCreateInfoEXT(
29562     VulkanStream* vkStream, VkStructureType rootType,
29563     const VkSwapchainPresentModesCreateInfoEXT* forMarshaling) {
29564     (void)rootType;
29565     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29566     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29567         rootType = forMarshaling->sType;
29568     }
29569     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29570     vkStream->write((uint32_t*)&forMarshaling->presentModeCount, sizeof(uint32_t));
29571     vkStream->write((const VkPresentModeKHR*)forMarshaling->pPresentModes,
29572                     forMarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
29573 }
29574 
unmarshal_VkSwapchainPresentModesCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentModesCreateInfoEXT * forUnmarshaling)29575 void unmarshal_VkSwapchainPresentModesCreateInfoEXT(
29576     VulkanStream* vkStream, VkStructureType rootType,
29577     VkSwapchainPresentModesCreateInfoEXT* forUnmarshaling) {
29578     (void)rootType;
29579     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29580     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29581         rootType = forUnmarshaling->sType;
29582     }
29583     size_t pNext_size;
29584     pNext_size = vkStream->getBe32();
29585     forUnmarshaling->pNext = nullptr;
29586     if (pNext_size) {
29587         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29588         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29589         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29590         vkStream->alloc((void**)&forUnmarshaling->pNext,
29591                         goldfish_vk_extension_struct_size_with_stream_features(
29592                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29593         *(VkStructureType*)forUnmarshaling->pNext = extType;
29594         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29595     }
29596     vkStream->read((uint32_t*)&forUnmarshaling->presentModeCount, sizeof(uint32_t));
29597     vkStream->alloc((void**)&forUnmarshaling->pPresentModes,
29598                     forUnmarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
29599     vkStream->read((VkPresentModeKHR*)forUnmarshaling->pPresentModes,
29600                    forUnmarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
29601 }
29602 
marshal_VkSwapchainPresentModeInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainPresentModeInfoEXT * forMarshaling)29603 void marshal_VkSwapchainPresentModeInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
29604                                            const VkSwapchainPresentModeInfoEXT* forMarshaling) {
29605     (void)rootType;
29606     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29607     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29608         rootType = forMarshaling->sType;
29609     }
29610     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29611     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
29612     vkStream->write((const VkPresentModeKHR*)forMarshaling->pPresentModes,
29613                     forMarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
29614 }
29615 
unmarshal_VkSwapchainPresentModeInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentModeInfoEXT * forUnmarshaling)29616 void unmarshal_VkSwapchainPresentModeInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
29617                                              VkSwapchainPresentModeInfoEXT* forUnmarshaling) {
29618     (void)rootType;
29619     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29620     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29621         rootType = forUnmarshaling->sType;
29622     }
29623     size_t pNext_size;
29624     pNext_size = vkStream->getBe32();
29625     forUnmarshaling->pNext = nullptr;
29626     if (pNext_size) {
29627         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29628         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29629         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29630         vkStream->alloc((void**)&forUnmarshaling->pNext,
29631                         goldfish_vk_extension_struct_size_with_stream_features(
29632                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29633         *(VkStructureType*)forUnmarshaling->pNext = extType;
29634         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29635     }
29636     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
29637     vkStream->alloc((void**)&forUnmarshaling->pPresentModes,
29638                     forUnmarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
29639     vkStream->read((VkPresentModeKHR*)forUnmarshaling->pPresentModes,
29640                    forUnmarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
29641 }
29642 
marshal_VkSwapchainPresentScalingCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainPresentScalingCreateInfoEXT * forMarshaling)29643 void marshal_VkSwapchainPresentScalingCreateInfoEXT(
29644     VulkanStream* vkStream, VkStructureType rootType,
29645     const VkSwapchainPresentScalingCreateInfoEXT* forMarshaling) {
29646     (void)rootType;
29647     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29648     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29649         rootType = forMarshaling->sType;
29650     }
29651     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29652     vkStream->write((VkPresentScalingFlagsEXT*)&forMarshaling->scalingBehavior,
29653                     sizeof(VkPresentScalingFlagsEXT));
29654     vkStream->write((VkPresentGravityFlagsEXT*)&forMarshaling->presentGravityX,
29655                     sizeof(VkPresentGravityFlagsEXT));
29656     vkStream->write((VkPresentGravityFlagsEXT*)&forMarshaling->presentGravityY,
29657                     sizeof(VkPresentGravityFlagsEXT));
29658 }
29659 
unmarshal_VkSwapchainPresentScalingCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentScalingCreateInfoEXT * forUnmarshaling)29660 void unmarshal_VkSwapchainPresentScalingCreateInfoEXT(
29661     VulkanStream* vkStream, VkStructureType rootType,
29662     VkSwapchainPresentScalingCreateInfoEXT* forUnmarshaling) {
29663     (void)rootType;
29664     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29665     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29666         rootType = forUnmarshaling->sType;
29667     }
29668     size_t pNext_size;
29669     pNext_size = vkStream->getBe32();
29670     forUnmarshaling->pNext = nullptr;
29671     if (pNext_size) {
29672         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29673         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29674         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29675         vkStream->alloc((void**)&forUnmarshaling->pNext,
29676                         goldfish_vk_extension_struct_size_with_stream_features(
29677                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29678         *(VkStructureType*)forUnmarshaling->pNext = extType;
29679         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29680     }
29681     vkStream->read((VkPresentScalingFlagsEXT*)&forUnmarshaling->scalingBehavior,
29682                    sizeof(VkPresentScalingFlagsEXT));
29683     vkStream->read((VkPresentGravityFlagsEXT*)&forUnmarshaling->presentGravityX,
29684                    sizeof(VkPresentGravityFlagsEXT));
29685     vkStream->read((VkPresentGravityFlagsEXT*)&forUnmarshaling->presentGravityY,
29686                    sizeof(VkPresentGravityFlagsEXT));
29687 }
29688 
marshal_VkReleaseSwapchainImagesInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkReleaseSwapchainImagesInfoEXT * forMarshaling)29689 void marshal_VkReleaseSwapchainImagesInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
29690                                              const VkReleaseSwapchainImagesInfoEXT* forMarshaling) {
29691     (void)rootType;
29692     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29693     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29694         rootType = forMarshaling->sType;
29695     }
29696     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29697     uint64_t cgen_var_0;
29698     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
29699                                                              1);
29700     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
29701     vkStream->write((uint32_t*)&forMarshaling->imageIndexCount, sizeof(uint32_t));
29702     vkStream->write((const uint32_t*)forMarshaling->pImageIndices,
29703                     forMarshaling->imageIndexCount * sizeof(const uint32_t));
29704 }
29705 
unmarshal_VkReleaseSwapchainImagesInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkReleaseSwapchainImagesInfoEXT * forUnmarshaling)29706 void unmarshal_VkReleaseSwapchainImagesInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
29707                                                VkReleaseSwapchainImagesInfoEXT* forUnmarshaling) {
29708     (void)rootType;
29709     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29710     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29711         rootType = forUnmarshaling->sType;
29712     }
29713     size_t pNext_size;
29714     pNext_size = vkStream->getBe32();
29715     forUnmarshaling->pNext = nullptr;
29716     if (pNext_size) {
29717         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29718         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29719         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29720         vkStream->alloc((void**)&forUnmarshaling->pNext,
29721                         goldfish_vk_extension_struct_size_with_stream_features(
29722                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29723         *(VkStructureType*)forUnmarshaling->pNext = extType;
29724         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29725     }
29726     uint64_t cgen_var_0;
29727     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
29728     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
29729         &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
29730     vkStream->read((uint32_t*)&forUnmarshaling->imageIndexCount, sizeof(uint32_t));
29731     vkStream->alloc((void**)&forUnmarshaling->pImageIndices,
29732                     forUnmarshaling->imageIndexCount * sizeof(const uint32_t));
29733     vkStream->read((uint32_t*)forUnmarshaling->pImageIndices,
29734                    forUnmarshaling->imageIndexCount * sizeof(const uint32_t));
29735 }
29736 
29737 #endif
29738 #ifdef VK_EXT_shader_demote_to_helper_invocation
29739 #endif
29740 #ifdef VK_NV_device_generated_commands
marshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV * forMarshaling)29741 void marshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
29742     VulkanStream* vkStream, VkStructureType rootType,
29743     const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forMarshaling) {
29744     (void)rootType;
29745     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29746     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29747         rootType = forMarshaling->sType;
29748     }
29749     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29750     vkStream->write((uint32_t*)&forMarshaling->maxGraphicsShaderGroupCount, sizeof(uint32_t));
29751     vkStream->write((uint32_t*)&forMarshaling->maxIndirectSequenceCount, sizeof(uint32_t));
29752     vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsTokenCount, sizeof(uint32_t));
29753     vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsStreamCount, sizeof(uint32_t));
29754     vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsTokenOffset, sizeof(uint32_t));
29755     vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsStreamStride, sizeof(uint32_t));
29756     vkStream->write((uint32_t*)&forMarshaling->minSequencesCountBufferOffsetAlignment,
29757                     sizeof(uint32_t));
29758     vkStream->write((uint32_t*)&forMarshaling->minSequencesIndexBufferOffsetAlignment,
29759                     sizeof(uint32_t));
29760     vkStream->write((uint32_t*)&forMarshaling->minIndirectCommandsBufferOffsetAlignment,
29761                     sizeof(uint32_t));
29762 }
29763 
unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV * forUnmarshaling)29764 void unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
29765     VulkanStream* vkStream, VkStructureType rootType,
29766     VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forUnmarshaling) {
29767     (void)rootType;
29768     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29769     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29770         rootType = forUnmarshaling->sType;
29771     }
29772     size_t pNext_size;
29773     pNext_size = vkStream->getBe32();
29774     forUnmarshaling->pNext = nullptr;
29775     if (pNext_size) {
29776         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29777         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29778         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29779         vkStream->alloc((void**)&forUnmarshaling->pNext,
29780                         goldfish_vk_extension_struct_size_with_stream_features(
29781                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29782         *(VkStructureType*)forUnmarshaling->pNext = extType;
29783         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29784     }
29785     vkStream->read((uint32_t*)&forUnmarshaling->maxGraphicsShaderGroupCount, sizeof(uint32_t));
29786     vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectSequenceCount, sizeof(uint32_t));
29787     vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsTokenCount, sizeof(uint32_t));
29788     vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsStreamCount, sizeof(uint32_t));
29789     vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsTokenOffset, sizeof(uint32_t));
29790     vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsStreamStride, sizeof(uint32_t));
29791     vkStream->read((uint32_t*)&forUnmarshaling->minSequencesCountBufferOffsetAlignment,
29792                    sizeof(uint32_t));
29793     vkStream->read((uint32_t*)&forUnmarshaling->minSequencesIndexBufferOffsetAlignment,
29794                    sizeof(uint32_t));
29795     vkStream->read((uint32_t*)&forUnmarshaling->minIndirectCommandsBufferOffsetAlignment,
29796                    sizeof(uint32_t));
29797 }
29798 
marshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV * forMarshaling)29799 void marshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
29800     VulkanStream* vkStream, VkStructureType rootType,
29801     const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forMarshaling) {
29802     (void)rootType;
29803     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29804     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29805         rootType = forMarshaling->sType;
29806     }
29807     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29808     vkStream->write((VkBool32*)&forMarshaling->deviceGeneratedCommands, sizeof(VkBool32));
29809 }
29810 
unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV * forUnmarshaling)29811 void unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
29812     VulkanStream* vkStream, VkStructureType rootType,
29813     VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forUnmarshaling) {
29814     (void)rootType;
29815     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29816     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29817         rootType = forUnmarshaling->sType;
29818     }
29819     size_t pNext_size;
29820     pNext_size = vkStream->getBe32();
29821     forUnmarshaling->pNext = nullptr;
29822     if (pNext_size) {
29823         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29824         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29825         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29826         vkStream->alloc((void**)&forUnmarshaling->pNext,
29827                         goldfish_vk_extension_struct_size_with_stream_features(
29828                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29829         *(VkStructureType*)forUnmarshaling->pNext = extType;
29830         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29831     }
29832     vkStream->read((VkBool32*)&forUnmarshaling->deviceGeneratedCommands, sizeof(VkBool32));
29833 }
29834 
marshal_VkGraphicsShaderGroupCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkGraphicsShaderGroupCreateInfoNV * forMarshaling)29835 void marshal_VkGraphicsShaderGroupCreateInfoNV(
29836     VulkanStream* vkStream, VkStructureType rootType,
29837     const VkGraphicsShaderGroupCreateInfoNV* forMarshaling) {
29838     (void)rootType;
29839     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29840     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29841         rootType = forMarshaling->sType;
29842     }
29843     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29844     vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
29845     if (forMarshaling) {
29846         for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i) {
29847             marshal_VkPipelineShaderStageCreateInfo(
29848                 vkStream, rootType,
29849                 (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
29850         }
29851     }
29852     // WARNING PTR CHECK
29853     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
29854     vkStream->putBe64(cgen_var_0);
29855     if (forMarshaling->pVertexInputState) {
29856         marshal_VkPipelineVertexInputStateCreateInfo(
29857             vkStream, rootType,
29858             (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState));
29859     }
29860     // WARNING PTR CHECK
29861     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
29862     vkStream->putBe64(cgen_var_1);
29863     if (forMarshaling->pTessellationState) {
29864         marshal_VkPipelineTessellationStateCreateInfo(
29865             vkStream, rootType,
29866             (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState));
29867     }
29868 }
29869 
unmarshal_VkGraphicsShaderGroupCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkGraphicsShaderGroupCreateInfoNV * forUnmarshaling)29870 void unmarshal_VkGraphicsShaderGroupCreateInfoNV(
29871     VulkanStream* vkStream, VkStructureType rootType,
29872     VkGraphicsShaderGroupCreateInfoNV* forUnmarshaling) {
29873     (void)rootType;
29874     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29875     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29876         rootType = forUnmarshaling->sType;
29877     }
29878     size_t pNext_size;
29879     pNext_size = vkStream->getBe32();
29880     forUnmarshaling->pNext = nullptr;
29881     if (pNext_size) {
29882         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29883         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29884         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29885         vkStream->alloc((void**)&forUnmarshaling->pNext,
29886                         goldfish_vk_extension_struct_size_with_stream_features(
29887                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29888         *(VkStructureType*)forUnmarshaling->pNext = extType;
29889         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29890     }
29891     vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
29892     vkStream->alloc((void**)&forUnmarshaling->pStages,
29893                     forUnmarshaling->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
29894     if (forUnmarshaling) {
29895         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i) {
29896             unmarshal_VkPipelineShaderStageCreateInfo(
29897                 vkStream, rootType,
29898                 (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
29899         }
29900     }
29901     // WARNING PTR CHECK
29902     forUnmarshaling->pVertexInputState =
29903         (const VkPipelineVertexInputStateCreateInfo*)(uintptr_t)vkStream->getBe64();
29904     if (forUnmarshaling->pVertexInputState) {
29905         vkStream->alloc((void**)&forUnmarshaling->pVertexInputState,
29906                         sizeof(const VkPipelineVertexInputStateCreateInfo));
29907         unmarshal_VkPipelineVertexInputStateCreateInfo(
29908             vkStream, rootType,
29909             (VkPipelineVertexInputStateCreateInfo*)(forUnmarshaling->pVertexInputState));
29910     }
29911     // WARNING PTR CHECK
29912     forUnmarshaling->pTessellationState =
29913         (const VkPipelineTessellationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
29914     if (forUnmarshaling->pTessellationState) {
29915         vkStream->alloc((void**)&forUnmarshaling->pTessellationState,
29916                         sizeof(const VkPipelineTessellationStateCreateInfo));
29917         unmarshal_VkPipelineTessellationStateCreateInfo(
29918             vkStream, rootType,
29919             (VkPipelineTessellationStateCreateInfo*)(forUnmarshaling->pTessellationState));
29920     }
29921 }
29922 
marshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkGraphicsPipelineShaderGroupsCreateInfoNV * forMarshaling)29923 void marshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
29924     VulkanStream* vkStream, VkStructureType rootType,
29925     const VkGraphicsPipelineShaderGroupsCreateInfoNV* forMarshaling) {
29926     (void)rootType;
29927     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
29928     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29929         rootType = forMarshaling->sType;
29930     }
29931     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
29932     vkStream->write((uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
29933     if (forMarshaling) {
29934         for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i) {
29935             marshal_VkGraphicsShaderGroupCreateInfoNV(
29936                 vkStream, rootType,
29937                 (const VkGraphicsShaderGroupCreateInfoNV*)(forMarshaling->pGroups + i));
29938         }
29939     }
29940     vkStream->write((uint32_t*)&forMarshaling->pipelineCount, sizeof(uint32_t));
29941     if (forMarshaling->pipelineCount) {
29942         uint64_t* cgen_var_0;
29943         vkStream->alloc((void**)&cgen_var_0, forMarshaling->pipelineCount * 8);
29944         vkStream->handleMapping()->mapHandles_VkPipeline_u64(forMarshaling->pPipelines, cgen_var_0,
29945                                                              forMarshaling->pipelineCount);
29946         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->pipelineCount * 8);
29947     }
29948 }
29949 
unmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkGraphicsPipelineShaderGroupsCreateInfoNV * forUnmarshaling)29950 void unmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
29951     VulkanStream* vkStream, VkStructureType rootType,
29952     VkGraphicsPipelineShaderGroupsCreateInfoNV* forUnmarshaling) {
29953     (void)rootType;
29954     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
29955     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
29956         rootType = forUnmarshaling->sType;
29957     }
29958     size_t pNext_size;
29959     pNext_size = vkStream->getBe32();
29960     forUnmarshaling->pNext = nullptr;
29961     if (pNext_size) {
29962         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
29963         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
29964         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
29965         vkStream->alloc((void**)&forUnmarshaling->pNext,
29966                         goldfish_vk_extension_struct_size_with_stream_features(
29967                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
29968         *(VkStructureType*)forUnmarshaling->pNext = extType;
29969         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
29970     }
29971     vkStream->read((uint32_t*)&forUnmarshaling->groupCount, sizeof(uint32_t));
29972     vkStream->alloc((void**)&forUnmarshaling->pGroups,
29973                     forUnmarshaling->groupCount * sizeof(const VkGraphicsShaderGroupCreateInfoNV));
29974     if (forUnmarshaling) {
29975         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->groupCount; ++i) {
29976             unmarshal_VkGraphicsShaderGroupCreateInfoNV(
29977                 vkStream, rootType,
29978                 (VkGraphicsShaderGroupCreateInfoNV*)(forUnmarshaling->pGroups + i));
29979         }
29980     }
29981     vkStream->read((uint32_t*)&forUnmarshaling->pipelineCount, sizeof(uint32_t));
29982     vkStream->alloc((void**)&forUnmarshaling->pPipelines,
29983                     forUnmarshaling->pipelineCount * sizeof(const VkPipeline));
29984     if (forUnmarshaling->pipelineCount) {
29985         uint64_t* cgen_var_0;
29986         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->pipelineCount * 8);
29987         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->pipelineCount * 8);
29988         vkStream->handleMapping()->mapHandles_u64_VkPipeline(
29989             cgen_var_0, (VkPipeline*)forUnmarshaling->pPipelines, forUnmarshaling->pipelineCount);
29990     }
29991 }
29992 
marshal_VkBindShaderGroupIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,const VkBindShaderGroupIndirectCommandNV * forMarshaling)29993 void marshal_VkBindShaderGroupIndirectCommandNV(
29994     VulkanStream* vkStream, VkStructureType rootType,
29995     const VkBindShaderGroupIndirectCommandNV* forMarshaling) {
29996     (void)rootType;
29997     vkStream->write((uint32_t*)&forMarshaling->groupIndex, sizeof(uint32_t));
29998 }
29999 
unmarshal_VkBindShaderGroupIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,VkBindShaderGroupIndirectCommandNV * forUnmarshaling)30000 void unmarshal_VkBindShaderGroupIndirectCommandNV(
30001     VulkanStream* vkStream, VkStructureType rootType,
30002     VkBindShaderGroupIndirectCommandNV* forUnmarshaling) {
30003     (void)rootType;
30004     vkStream->read((uint32_t*)&forUnmarshaling->groupIndex, sizeof(uint32_t));
30005 }
30006 
marshal_VkBindIndexBufferIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,const VkBindIndexBufferIndirectCommandNV * forMarshaling)30007 void marshal_VkBindIndexBufferIndirectCommandNV(
30008     VulkanStream* vkStream, VkStructureType rootType,
30009     const VkBindIndexBufferIndirectCommandNV* forMarshaling) {
30010     (void)rootType;
30011     vkStream->write((VkDeviceAddress*)&forMarshaling->bufferAddress, sizeof(VkDeviceAddress));
30012     vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
30013     vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
30014 }
30015 
unmarshal_VkBindIndexBufferIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,VkBindIndexBufferIndirectCommandNV * forUnmarshaling)30016 void unmarshal_VkBindIndexBufferIndirectCommandNV(
30017     VulkanStream* vkStream, VkStructureType rootType,
30018     VkBindIndexBufferIndirectCommandNV* forUnmarshaling) {
30019     (void)rootType;
30020     vkStream->read((VkDeviceAddress*)&forUnmarshaling->bufferAddress, sizeof(VkDeviceAddress));
30021     vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
30022     vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
30023 }
30024 
marshal_VkBindVertexBufferIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,const VkBindVertexBufferIndirectCommandNV * forMarshaling)30025 void marshal_VkBindVertexBufferIndirectCommandNV(
30026     VulkanStream* vkStream, VkStructureType rootType,
30027     const VkBindVertexBufferIndirectCommandNV* forMarshaling) {
30028     (void)rootType;
30029     vkStream->write((VkDeviceAddress*)&forMarshaling->bufferAddress, sizeof(VkDeviceAddress));
30030     vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
30031     vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
30032 }
30033 
unmarshal_VkBindVertexBufferIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,VkBindVertexBufferIndirectCommandNV * forUnmarshaling)30034 void unmarshal_VkBindVertexBufferIndirectCommandNV(
30035     VulkanStream* vkStream, VkStructureType rootType,
30036     VkBindVertexBufferIndirectCommandNV* forUnmarshaling) {
30037     (void)rootType;
30038     vkStream->read((VkDeviceAddress*)&forUnmarshaling->bufferAddress, sizeof(VkDeviceAddress));
30039     vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
30040     vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
30041 }
30042 
marshal_VkSetStateFlagsIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,const VkSetStateFlagsIndirectCommandNV * forMarshaling)30043 void marshal_VkSetStateFlagsIndirectCommandNV(
30044     VulkanStream* vkStream, VkStructureType rootType,
30045     const VkSetStateFlagsIndirectCommandNV* forMarshaling) {
30046     (void)rootType;
30047     vkStream->write((uint32_t*)&forMarshaling->data, sizeof(uint32_t));
30048 }
30049 
unmarshal_VkSetStateFlagsIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,VkSetStateFlagsIndirectCommandNV * forUnmarshaling)30050 void unmarshal_VkSetStateFlagsIndirectCommandNV(VulkanStream* vkStream, VkStructureType rootType,
30051                                                 VkSetStateFlagsIndirectCommandNV* forUnmarshaling) {
30052     (void)rootType;
30053     vkStream->read((uint32_t*)&forUnmarshaling->data, sizeof(uint32_t));
30054 }
30055 
marshal_VkIndirectCommandsStreamNV(VulkanStream * vkStream,VkStructureType rootType,const VkIndirectCommandsStreamNV * forMarshaling)30056 void marshal_VkIndirectCommandsStreamNV(VulkanStream* vkStream, VkStructureType rootType,
30057                                         const VkIndirectCommandsStreamNV* forMarshaling) {
30058     (void)rootType;
30059     uint64_t cgen_var_0;
30060     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
30061     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
30062     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
30063 }
30064 
unmarshal_VkIndirectCommandsStreamNV(VulkanStream * vkStream,VkStructureType rootType,VkIndirectCommandsStreamNV * forUnmarshaling)30065 void unmarshal_VkIndirectCommandsStreamNV(VulkanStream* vkStream, VkStructureType rootType,
30066                                           VkIndirectCommandsStreamNV* forUnmarshaling) {
30067     (void)rootType;
30068     uint64_t cgen_var_0;
30069     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
30070     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
30071                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
30072     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
30073 }
30074 
marshal_VkIndirectCommandsLayoutTokenNV(VulkanStream * vkStream,VkStructureType rootType,const VkIndirectCommandsLayoutTokenNV * forMarshaling)30075 void marshal_VkIndirectCommandsLayoutTokenNV(VulkanStream* vkStream, VkStructureType rootType,
30076                                              const VkIndirectCommandsLayoutTokenNV* forMarshaling) {
30077     (void)rootType;
30078     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30079     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30080         rootType = forMarshaling->sType;
30081     }
30082     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30083     vkStream->write((VkIndirectCommandsTokenTypeNV*)&forMarshaling->tokenType,
30084                     sizeof(VkIndirectCommandsTokenTypeNV));
30085     vkStream->write((uint32_t*)&forMarshaling->stream, sizeof(uint32_t));
30086     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
30087     vkStream->write((uint32_t*)&forMarshaling->vertexBindingUnit, sizeof(uint32_t));
30088     vkStream->write((VkBool32*)&forMarshaling->vertexDynamicStride, sizeof(VkBool32));
30089     uint64_t cgen_var_0;
30090     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(
30091         &forMarshaling->pushconstantPipelineLayout, &cgen_var_0, 1);
30092     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
30093     vkStream->write((VkShaderStageFlags*)&forMarshaling->pushconstantShaderStageFlags,
30094                     sizeof(VkShaderStageFlags));
30095     vkStream->write((uint32_t*)&forMarshaling->pushconstantOffset, sizeof(uint32_t));
30096     vkStream->write((uint32_t*)&forMarshaling->pushconstantSize, sizeof(uint32_t));
30097     vkStream->write((VkIndirectStateFlagsNV*)&forMarshaling->indirectStateFlags,
30098                     sizeof(VkIndirectStateFlagsNV));
30099     vkStream->write((uint32_t*)&forMarshaling->indexTypeCount, sizeof(uint32_t));
30100     vkStream->write((const VkIndexType*)forMarshaling->pIndexTypes,
30101                     forMarshaling->indexTypeCount * sizeof(const VkIndexType));
30102     vkStream->write((const uint32_t*)forMarshaling->pIndexTypeValues,
30103                     forMarshaling->indexTypeCount * sizeof(const uint32_t));
30104 }
30105 
unmarshal_VkIndirectCommandsLayoutTokenNV(VulkanStream * vkStream,VkStructureType rootType,VkIndirectCommandsLayoutTokenNV * forUnmarshaling)30106 void unmarshal_VkIndirectCommandsLayoutTokenNV(VulkanStream* vkStream, VkStructureType rootType,
30107                                                VkIndirectCommandsLayoutTokenNV* forUnmarshaling) {
30108     (void)rootType;
30109     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30110     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30111         rootType = forUnmarshaling->sType;
30112     }
30113     size_t pNext_size;
30114     pNext_size = vkStream->getBe32();
30115     forUnmarshaling->pNext = nullptr;
30116     if (pNext_size) {
30117         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30118         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30119         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30120         vkStream->alloc((void**)&forUnmarshaling->pNext,
30121                         goldfish_vk_extension_struct_size_with_stream_features(
30122                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30123         *(VkStructureType*)forUnmarshaling->pNext = extType;
30124         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30125     }
30126     vkStream->read((VkIndirectCommandsTokenTypeNV*)&forUnmarshaling->tokenType,
30127                    sizeof(VkIndirectCommandsTokenTypeNV));
30128     vkStream->read((uint32_t*)&forUnmarshaling->stream, sizeof(uint32_t));
30129     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
30130     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingUnit, sizeof(uint32_t));
30131     vkStream->read((VkBool32*)&forUnmarshaling->vertexDynamicStride, sizeof(VkBool32));
30132     uint64_t cgen_var_0;
30133     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
30134     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
30135         &cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->pushconstantPipelineLayout, 1);
30136     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->pushconstantShaderStageFlags,
30137                    sizeof(VkShaderStageFlags));
30138     vkStream->read((uint32_t*)&forUnmarshaling->pushconstantOffset, sizeof(uint32_t));
30139     vkStream->read((uint32_t*)&forUnmarshaling->pushconstantSize, sizeof(uint32_t));
30140     vkStream->read((VkIndirectStateFlagsNV*)&forUnmarshaling->indirectStateFlags,
30141                    sizeof(VkIndirectStateFlagsNV));
30142     vkStream->read((uint32_t*)&forUnmarshaling->indexTypeCount, sizeof(uint32_t));
30143     vkStream->alloc((void**)&forUnmarshaling->pIndexTypes,
30144                     forUnmarshaling->indexTypeCount * sizeof(const VkIndexType));
30145     vkStream->read((VkIndexType*)forUnmarshaling->pIndexTypes,
30146                    forUnmarshaling->indexTypeCount * sizeof(const VkIndexType));
30147     vkStream->alloc((void**)&forUnmarshaling->pIndexTypeValues,
30148                     forUnmarshaling->indexTypeCount * sizeof(const uint32_t));
30149     vkStream->read((uint32_t*)forUnmarshaling->pIndexTypeValues,
30150                    forUnmarshaling->indexTypeCount * sizeof(const uint32_t));
30151 }
30152 
marshal_VkIndirectCommandsLayoutCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkIndirectCommandsLayoutCreateInfoNV * forMarshaling)30153 void marshal_VkIndirectCommandsLayoutCreateInfoNV(
30154     VulkanStream* vkStream, VkStructureType rootType,
30155     const VkIndirectCommandsLayoutCreateInfoNV* forMarshaling) {
30156     (void)rootType;
30157     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30158     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30159         rootType = forMarshaling->sType;
30160     }
30161     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30162     vkStream->write((VkIndirectCommandsLayoutUsageFlagsNV*)&forMarshaling->flags,
30163                     sizeof(VkIndirectCommandsLayoutUsageFlagsNV));
30164     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
30165                     sizeof(VkPipelineBindPoint));
30166     vkStream->write((uint32_t*)&forMarshaling->tokenCount, sizeof(uint32_t));
30167     if (forMarshaling) {
30168         for (uint32_t i = 0; i < (uint32_t)forMarshaling->tokenCount; ++i) {
30169             marshal_VkIndirectCommandsLayoutTokenNV(
30170                 vkStream, rootType,
30171                 (const VkIndirectCommandsLayoutTokenNV*)(forMarshaling->pTokens + i));
30172         }
30173     }
30174     vkStream->write((uint32_t*)&forMarshaling->streamCount, sizeof(uint32_t));
30175     vkStream->write((const uint32_t*)forMarshaling->pStreamStrides,
30176                     forMarshaling->streamCount * sizeof(const uint32_t));
30177 }
30178 
unmarshal_VkIndirectCommandsLayoutCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkIndirectCommandsLayoutCreateInfoNV * forUnmarshaling)30179 void unmarshal_VkIndirectCommandsLayoutCreateInfoNV(
30180     VulkanStream* vkStream, VkStructureType rootType,
30181     VkIndirectCommandsLayoutCreateInfoNV* forUnmarshaling) {
30182     (void)rootType;
30183     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30184     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30185         rootType = forUnmarshaling->sType;
30186     }
30187     size_t pNext_size;
30188     pNext_size = vkStream->getBe32();
30189     forUnmarshaling->pNext = nullptr;
30190     if (pNext_size) {
30191         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30192         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30193         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30194         vkStream->alloc((void**)&forUnmarshaling->pNext,
30195                         goldfish_vk_extension_struct_size_with_stream_features(
30196                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30197         *(VkStructureType*)forUnmarshaling->pNext = extType;
30198         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30199     }
30200     vkStream->read((VkIndirectCommandsLayoutUsageFlagsNV*)&forUnmarshaling->flags,
30201                    sizeof(VkIndirectCommandsLayoutUsageFlagsNV));
30202     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
30203                    sizeof(VkPipelineBindPoint));
30204     vkStream->read((uint32_t*)&forUnmarshaling->tokenCount, sizeof(uint32_t));
30205     vkStream->alloc((void**)&forUnmarshaling->pTokens,
30206                     forUnmarshaling->tokenCount * sizeof(const VkIndirectCommandsLayoutTokenNV));
30207     if (forUnmarshaling) {
30208         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->tokenCount; ++i) {
30209             unmarshal_VkIndirectCommandsLayoutTokenNV(
30210                 vkStream, rootType,
30211                 (VkIndirectCommandsLayoutTokenNV*)(forUnmarshaling->pTokens + i));
30212         }
30213     }
30214     vkStream->read((uint32_t*)&forUnmarshaling->streamCount, sizeof(uint32_t));
30215     vkStream->alloc((void**)&forUnmarshaling->pStreamStrides,
30216                     forUnmarshaling->streamCount * sizeof(const uint32_t));
30217     vkStream->read((uint32_t*)forUnmarshaling->pStreamStrides,
30218                    forUnmarshaling->streamCount * sizeof(const uint32_t));
30219 }
30220 
marshal_VkGeneratedCommandsInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkGeneratedCommandsInfoNV * forMarshaling)30221 void marshal_VkGeneratedCommandsInfoNV(VulkanStream* vkStream, VkStructureType rootType,
30222                                        const VkGeneratedCommandsInfoNV* forMarshaling) {
30223     (void)rootType;
30224     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30225     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30226         rootType = forMarshaling->sType;
30227     }
30228     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30229     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
30230                     sizeof(VkPipelineBindPoint));
30231     uint64_t cgen_var_0;
30232     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
30233     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
30234     uint64_t cgen_var_1;
30235     vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNV_u64(
30236         &forMarshaling->indirectCommandsLayout, &cgen_var_1, 1);
30237     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
30238     vkStream->write((uint32_t*)&forMarshaling->streamCount, sizeof(uint32_t));
30239     if (forMarshaling) {
30240         for (uint32_t i = 0; i < (uint32_t)forMarshaling->streamCount; ++i) {
30241             marshal_VkIndirectCommandsStreamNV(
30242                 vkStream, rootType,
30243                 (const VkIndirectCommandsStreamNV*)(forMarshaling->pStreams + i));
30244         }
30245     }
30246     vkStream->write((uint32_t*)&forMarshaling->sequencesCount, sizeof(uint32_t));
30247     uint64_t cgen_var_2;
30248     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->preprocessBuffer,
30249                                                        &cgen_var_2, 1);
30250     vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
30251     vkStream->write((VkDeviceSize*)&forMarshaling->preprocessOffset, sizeof(VkDeviceSize));
30252     vkStream->write((VkDeviceSize*)&forMarshaling->preprocessSize, sizeof(VkDeviceSize));
30253     uint64_t cgen_var_3;
30254     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesCountBuffer,
30255                                                        &cgen_var_3, 1);
30256     vkStream->write((uint64_t*)&cgen_var_3, 1 * 8);
30257     vkStream->write((VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
30258     uint64_t cgen_var_4;
30259     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesIndexBuffer,
30260                                                        &cgen_var_4, 1);
30261     vkStream->write((uint64_t*)&cgen_var_4, 1 * 8);
30262     vkStream->write((VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
30263 }
30264 
unmarshal_VkGeneratedCommandsInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkGeneratedCommandsInfoNV * forUnmarshaling)30265 void unmarshal_VkGeneratedCommandsInfoNV(VulkanStream* vkStream, VkStructureType rootType,
30266                                          VkGeneratedCommandsInfoNV* forUnmarshaling) {
30267     (void)rootType;
30268     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30269     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30270         rootType = forUnmarshaling->sType;
30271     }
30272     size_t pNext_size;
30273     pNext_size = vkStream->getBe32();
30274     forUnmarshaling->pNext = nullptr;
30275     if (pNext_size) {
30276         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30277         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30278         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30279         vkStream->alloc((void**)&forUnmarshaling->pNext,
30280                         goldfish_vk_extension_struct_size_with_stream_features(
30281                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30282         *(VkStructureType*)forUnmarshaling->pNext = extType;
30283         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30284     }
30285     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
30286                    sizeof(VkPipelineBindPoint));
30287     uint64_t cgen_var_0;
30288     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
30289     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
30290         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
30291     uint64_t cgen_var_1;
30292     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
30293     vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNV(
30294         &cgen_var_1, (VkIndirectCommandsLayoutNV*)&forUnmarshaling->indirectCommandsLayout, 1);
30295     vkStream->read((uint32_t*)&forUnmarshaling->streamCount, sizeof(uint32_t));
30296     vkStream->alloc((void**)&forUnmarshaling->pStreams,
30297                     forUnmarshaling->streamCount * sizeof(const VkIndirectCommandsStreamNV));
30298     if (forUnmarshaling) {
30299         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->streamCount; ++i) {
30300             unmarshal_VkIndirectCommandsStreamNV(
30301                 vkStream, rootType, (VkIndirectCommandsStreamNV*)(forUnmarshaling->pStreams + i));
30302         }
30303     }
30304     vkStream->read((uint32_t*)&forUnmarshaling->sequencesCount, sizeof(uint32_t));
30305     uint64_t cgen_var_2;
30306     vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
30307     vkStream->handleMapping()->mapHandles_u64_VkBuffer(
30308         &cgen_var_2, (VkBuffer*)&forUnmarshaling->preprocessBuffer, 1);
30309     vkStream->read((VkDeviceSize*)&forUnmarshaling->preprocessOffset, sizeof(VkDeviceSize));
30310     vkStream->read((VkDeviceSize*)&forUnmarshaling->preprocessSize, sizeof(VkDeviceSize));
30311     uint64_t cgen_var_3;
30312     vkStream->read((uint64_t*)&cgen_var_3, 1 * 8);
30313     vkStream->handleMapping()->mapHandles_u64_VkBuffer(
30314         &cgen_var_3, (VkBuffer*)&forUnmarshaling->sequencesCountBuffer, 1);
30315     vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
30316     uint64_t cgen_var_4;
30317     vkStream->read((uint64_t*)&cgen_var_4, 1 * 8);
30318     vkStream->handleMapping()->mapHandles_u64_VkBuffer(
30319         &cgen_var_4, (VkBuffer*)&forUnmarshaling->sequencesIndexBuffer, 1);
30320     vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
30321 }
30322 
marshal_VkGeneratedCommandsMemoryRequirementsInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkGeneratedCommandsMemoryRequirementsInfoNV * forMarshaling)30323 void marshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
30324     VulkanStream* vkStream, VkStructureType rootType,
30325     const VkGeneratedCommandsMemoryRequirementsInfoNV* forMarshaling) {
30326     (void)rootType;
30327     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30328     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30329         rootType = forMarshaling->sType;
30330     }
30331     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30332     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
30333                     sizeof(VkPipelineBindPoint));
30334     uint64_t cgen_var_0;
30335     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
30336     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
30337     uint64_t cgen_var_1;
30338     vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNV_u64(
30339         &forMarshaling->indirectCommandsLayout, &cgen_var_1, 1);
30340     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
30341     vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
30342 }
30343 
unmarshal_VkGeneratedCommandsMemoryRequirementsInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkGeneratedCommandsMemoryRequirementsInfoNV * forUnmarshaling)30344 void unmarshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
30345     VulkanStream* vkStream, VkStructureType rootType,
30346     VkGeneratedCommandsMemoryRequirementsInfoNV* forUnmarshaling) {
30347     (void)rootType;
30348     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30349     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30350         rootType = forUnmarshaling->sType;
30351     }
30352     size_t pNext_size;
30353     pNext_size = vkStream->getBe32();
30354     forUnmarshaling->pNext = nullptr;
30355     if (pNext_size) {
30356         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30357         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30358         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30359         vkStream->alloc((void**)&forUnmarshaling->pNext,
30360                         goldfish_vk_extension_struct_size_with_stream_features(
30361                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30362         *(VkStructureType*)forUnmarshaling->pNext = extType;
30363         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30364     }
30365     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
30366                    sizeof(VkPipelineBindPoint));
30367     uint64_t cgen_var_0;
30368     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
30369     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
30370         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
30371     uint64_t cgen_var_1;
30372     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
30373     vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNV(
30374         &cgen_var_1, (VkIndirectCommandsLayoutNV*)&forUnmarshaling->indirectCommandsLayout, 1);
30375     vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
30376 }
30377 
30378 #endif
30379 #ifdef VK_NV_inherited_viewport_scissor
marshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceInheritedViewportScissorFeaturesNV * forMarshaling)30380 void marshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
30381     VulkanStream* vkStream, VkStructureType rootType,
30382     const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forMarshaling) {
30383     (void)rootType;
30384     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30385     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30386         rootType = forMarshaling->sType;
30387     }
30388     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30389     vkStream->write((VkBool32*)&forMarshaling->inheritedViewportScissor2D, sizeof(VkBool32));
30390 }
30391 
unmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceInheritedViewportScissorFeaturesNV * forUnmarshaling)30392 void unmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
30393     VulkanStream* vkStream, VkStructureType rootType,
30394     VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forUnmarshaling) {
30395     (void)rootType;
30396     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30397     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30398         rootType = forUnmarshaling->sType;
30399     }
30400     size_t pNext_size;
30401     pNext_size = vkStream->getBe32();
30402     forUnmarshaling->pNext = nullptr;
30403     if (pNext_size) {
30404         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30405         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30406         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30407         vkStream->alloc((void**)&forUnmarshaling->pNext,
30408                         goldfish_vk_extension_struct_size_with_stream_features(
30409                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30410         *(VkStructureType*)forUnmarshaling->pNext = extType;
30411         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30412     }
30413     vkStream->read((VkBool32*)&forUnmarshaling->inheritedViewportScissor2D, sizeof(VkBool32));
30414 }
30415 
marshal_VkCommandBufferInheritanceViewportScissorInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceViewportScissorInfoNV * forMarshaling)30416 void marshal_VkCommandBufferInheritanceViewportScissorInfoNV(
30417     VulkanStream* vkStream, VkStructureType rootType,
30418     const VkCommandBufferInheritanceViewportScissorInfoNV* forMarshaling) {
30419     (void)rootType;
30420     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30421     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30422         rootType = forMarshaling->sType;
30423     }
30424     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30425     vkStream->write((VkBool32*)&forMarshaling->viewportScissor2D, sizeof(VkBool32));
30426     vkStream->write((uint32_t*)&forMarshaling->viewportDepthCount, sizeof(uint32_t));
30427     // WARNING PTR CHECK
30428     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportDepths;
30429     vkStream->putBe64(cgen_var_0);
30430     if (forMarshaling->pViewportDepths) {
30431         marshal_VkViewport(vkStream, rootType, (const VkViewport*)(forMarshaling->pViewportDepths));
30432     }
30433 }
30434 
unmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferInheritanceViewportScissorInfoNV * forUnmarshaling)30435 void unmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(
30436     VulkanStream* vkStream, VkStructureType rootType,
30437     VkCommandBufferInheritanceViewportScissorInfoNV* forUnmarshaling) {
30438     (void)rootType;
30439     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30440     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30441         rootType = forUnmarshaling->sType;
30442     }
30443     size_t pNext_size;
30444     pNext_size = vkStream->getBe32();
30445     forUnmarshaling->pNext = nullptr;
30446     if (pNext_size) {
30447         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30448         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30449         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30450         vkStream->alloc((void**)&forUnmarshaling->pNext,
30451                         goldfish_vk_extension_struct_size_with_stream_features(
30452                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30453         *(VkStructureType*)forUnmarshaling->pNext = extType;
30454         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30455     }
30456     vkStream->read((VkBool32*)&forUnmarshaling->viewportScissor2D, sizeof(VkBool32));
30457     vkStream->read((uint32_t*)&forUnmarshaling->viewportDepthCount, sizeof(uint32_t));
30458     // WARNING PTR CHECK
30459     forUnmarshaling->pViewportDepths = (const VkViewport*)(uintptr_t)vkStream->getBe64();
30460     if (forUnmarshaling->pViewportDepths) {
30461         vkStream->alloc((void**)&forUnmarshaling->pViewportDepths, sizeof(const VkViewport));
30462         unmarshal_VkViewport(vkStream, rootType, (VkViewport*)(forUnmarshaling->pViewportDepths));
30463     }
30464 }
30465 
30466 #endif
30467 #ifdef VK_EXT_texel_buffer_alignment
marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forMarshaling)30468 void marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
30469     VulkanStream* vkStream, VkStructureType rootType,
30470     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling) {
30471     (void)rootType;
30472     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30473     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30474         rootType = forMarshaling->sType;
30475     }
30476     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30477     vkStream->write((VkBool32*)&forMarshaling->texelBufferAlignment, sizeof(VkBool32));
30478 }
30479 
unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forUnmarshaling)30480 void unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
30481     VulkanStream* vkStream, VkStructureType rootType,
30482     VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forUnmarshaling) {
30483     (void)rootType;
30484     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30485     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30486         rootType = forUnmarshaling->sType;
30487     }
30488     size_t pNext_size;
30489     pNext_size = vkStream->getBe32();
30490     forUnmarshaling->pNext = nullptr;
30491     if (pNext_size) {
30492         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30493         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30494         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30495         vkStream->alloc((void**)&forUnmarshaling->pNext,
30496                         goldfish_vk_extension_struct_size_with_stream_features(
30497                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30498         *(VkStructureType*)forUnmarshaling->pNext = extType;
30499         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30500     }
30501     vkStream->read((VkBool32*)&forUnmarshaling->texelBufferAlignment, sizeof(VkBool32));
30502 }
30503 
30504 #endif
30505 #ifdef VK_QCOM_render_pass_transform
marshal_VkRenderPassTransformBeginInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassTransformBeginInfoQCOM * forMarshaling)30506 void marshal_VkRenderPassTransformBeginInfoQCOM(
30507     VulkanStream* vkStream, VkStructureType rootType,
30508     const VkRenderPassTransformBeginInfoQCOM* forMarshaling) {
30509     (void)rootType;
30510     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30511     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30512         rootType = forMarshaling->sType;
30513     }
30514     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30515     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform,
30516                     sizeof(VkSurfaceTransformFlagBitsKHR));
30517 }
30518 
unmarshal_VkRenderPassTransformBeginInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassTransformBeginInfoQCOM * forUnmarshaling)30519 void unmarshal_VkRenderPassTransformBeginInfoQCOM(
30520     VulkanStream* vkStream, VkStructureType rootType,
30521     VkRenderPassTransformBeginInfoQCOM* forUnmarshaling) {
30522     (void)rootType;
30523     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30524     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30525         rootType = forUnmarshaling->sType;
30526     }
30527     size_t pNext_size;
30528     pNext_size = vkStream->getBe32();
30529     forUnmarshaling->pNext = nullptr;
30530     if (pNext_size) {
30531         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30532         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30533         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30534         vkStream->alloc((void**)&forUnmarshaling->pNext,
30535                         goldfish_vk_extension_struct_size_with_stream_features(
30536                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30537         *(VkStructureType*)forUnmarshaling->pNext = extType;
30538         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30539     }
30540     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform,
30541                    sizeof(VkSurfaceTransformFlagBitsKHR));
30542 }
30543 
marshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceRenderPassTransformInfoQCOM * forMarshaling)30544 void marshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
30545     VulkanStream* vkStream, VkStructureType rootType,
30546     const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forMarshaling) {
30547     (void)rootType;
30548     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30549     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30550         rootType = forMarshaling->sType;
30551     }
30552     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30553     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform,
30554                     sizeof(VkSurfaceTransformFlagBitsKHR));
30555     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea));
30556 }
30557 
unmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferInheritanceRenderPassTransformInfoQCOM * forUnmarshaling)30558 void unmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
30559     VulkanStream* vkStream, VkStructureType rootType,
30560     VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forUnmarshaling) {
30561     (void)rootType;
30562     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30563     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30564         rootType = forUnmarshaling->sType;
30565     }
30566     size_t pNext_size;
30567     pNext_size = vkStream->getBe32();
30568     forUnmarshaling->pNext = nullptr;
30569     if (pNext_size) {
30570         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30571         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30572         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30573         vkStream->alloc((void**)&forUnmarshaling->pNext,
30574                         goldfish_vk_extension_struct_size_with_stream_features(
30575                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30576         *(VkStructureType*)forUnmarshaling->pNext = extType;
30577         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30578     }
30579     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform,
30580                    sizeof(VkSurfaceTransformFlagBitsKHR));
30581     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea));
30582 }
30583 
30584 #endif
30585 #ifdef VK_EXT_device_memory_report
marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forMarshaling)30586 void marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
30587     VulkanStream* vkStream, VkStructureType rootType,
30588     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling) {
30589     (void)rootType;
30590     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30591     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30592         rootType = forMarshaling->sType;
30593     }
30594     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30595     vkStream->write((VkBool32*)&forMarshaling->deviceMemoryReport, sizeof(VkBool32));
30596 }
30597 
unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forUnmarshaling)30598 void unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
30599     VulkanStream* vkStream, VkStructureType rootType,
30600     VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forUnmarshaling) {
30601     (void)rootType;
30602     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30603     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30604         rootType = forUnmarshaling->sType;
30605     }
30606     size_t pNext_size;
30607     pNext_size = vkStream->getBe32();
30608     forUnmarshaling->pNext = nullptr;
30609     if (pNext_size) {
30610         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30611         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30612         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30613         vkStream->alloc((void**)&forUnmarshaling->pNext,
30614                         goldfish_vk_extension_struct_size_with_stream_features(
30615                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30616         *(VkStructureType*)forUnmarshaling->pNext = extType;
30617         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30618     }
30619     vkStream->read((VkBool32*)&forUnmarshaling->deviceMemoryReport, sizeof(VkBool32));
30620 }
30621 
marshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceMemoryReportCallbackDataEXT * forMarshaling)30622 void marshal_VkDeviceMemoryReportCallbackDataEXT(
30623     VulkanStream* vkStream, VkStructureType rootType,
30624     const VkDeviceMemoryReportCallbackDataEXT* forMarshaling) {
30625     (void)rootType;
30626     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30627     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30628         rootType = forMarshaling->sType;
30629     }
30630     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30631     vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
30632                     sizeof(VkDeviceMemoryReportFlagsEXT));
30633     vkStream->write((VkDeviceMemoryReportEventTypeEXT*)&forMarshaling->type,
30634                     sizeof(VkDeviceMemoryReportEventTypeEXT));
30635     vkStream->write((uint64_t*)&forMarshaling->memoryObjectId, sizeof(uint64_t));
30636     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
30637     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
30638     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
30639     vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
30640 }
30641 
unmarshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceMemoryReportCallbackDataEXT * forUnmarshaling)30642 void unmarshal_VkDeviceMemoryReportCallbackDataEXT(
30643     VulkanStream* vkStream, VkStructureType rootType,
30644     VkDeviceMemoryReportCallbackDataEXT* forUnmarshaling) {
30645     (void)rootType;
30646     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30647     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30648         rootType = forUnmarshaling->sType;
30649     }
30650     size_t pNext_size;
30651     pNext_size = vkStream->getBe32();
30652     forUnmarshaling->pNext = nullptr;
30653     if (pNext_size) {
30654         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30655         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30656         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30657         vkStream->alloc((void**)&forUnmarshaling->pNext,
30658                         goldfish_vk_extension_struct_size_with_stream_features(
30659                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30660         *(VkStructureType*)forUnmarshaling->pNext = extType;
30661         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30662     }
30663     vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags,
30664                    sizeof(VkDeviceMemoryReportFlagsEXT));
30665     vkStream->read((VkDeviceMemoryReportEventTypeEXT*)&forUnmarshaling->type,
30666                    sizeof(VkDeviceMemoryReportEventTypeEXT));
30667     vkStream->read((uint64_t*)&forUnmarshaling->memoryObjectId, sizeof(uint64_t));
30668     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
30669     vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
30670     vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
30671     vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
30672 }
30673 
marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceDeviceMemoryReportCreateInfoEXT * forMarshaling)30674 void marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
30675     VulkanStream* vkStream, VkStructureType rootType,
30676     const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling) {
30677     (void)rootType;
30678     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30679     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30680         rootType = forMarshaling->sType;
30681     }
30682     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30683     vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
30684                     sizeof(VkDeviceMemoryReportFlagsEXT));
30685     uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
30686     vkStream->putBe64(cgen_var_0);
30687     vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
30688 }
30689 
unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceDeviceMemoryReportCreateInfoEXT * forUnmarshaling)30690 void unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
30691     VulkanStream* vkStream, VkStructureType rootType,
30692     VkDeviceDeviceMemoryReportCreateInfoEXT* forUnmarshaling) {
30693     (void)rootType;
30694     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30695     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30696         rootType = forUnmarshaling->sType;
30697     }
30698     size_t pNext_size;
30699     pNext_size = vkStream->getBe32();
30700     forUnmarshaling->pNext = nullptr;
30701     if (pNext_size) {
30702         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30703         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30704         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30705         vkStream->alloc((void**)&forUnmarshaling->pNext,
30706                         goldfish_vk_extension_struct_size_with_stream_features(
30707                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30708         *(VkStructureType*)forUnmarshaling->pNext = extType;
30709         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30710     }
30711     vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags,
30712                    sizeof(VkDeviceMemoryReportFlagsEXT));
30713     forUnmarshaling->pfnUserCallback = (PFN_vkDeviceMemoryReportCallbackEXT)vkStream->getBe64();
30714     vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
30715     vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
30716 }
30717 
30718 #endif
30719 #ifdef VK_EXT_acquire_drm_display
30720 #endif
30721 #ifdef VK_EXT_robustness2
marshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2FeaturesEXT * forMarshaling)30722 void marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
30723     VulkanStream* vkStream, VkStructureType rootType,
30724     const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling) {
30725     (void)rootType;
30726     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30727     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30728         rootType = forMarshaling->sType;
30729     }
30730     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30731     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess2, sizeof(VkBool32));
30732     vkStream->write((VkBool32*)&forMarshaling->robustImageAccess2, sizeof(VkBool32));
30733     vkStream->write((VkBool32*)&forMarshaling->nullDescriptor, sizeof(VkBool32));
30734 }
30735 
unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2FeaturesEXT * forUnmarshaling)30736 void unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
30737     VulkanStream* vkStream, VkStructureType rootType,
30738     VkPhysicalDeviceRobustness2FeaturesEXT* forUnmarshaling) {
30739     (void)rootType;
30740     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30741     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30742         rootType = forUnmarshaling->sType;
30743     }
30744     size_t pNext_size;
30745     pNext_size = vkStream->getBe32();
30746     forUnmarshaling->pNext = nullptr;
30747     if (pNext_size) {
30748         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30749         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30750         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30751         vkStream->alloc((void**)&forUnmarshaling->pNext,
30752                         goldfish_vk_extension_struct_size_with_stream_features(
30753                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30754         *(VkStructureType*)forUnmarshaling->pNext = extType;
30755         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30756     }
30757     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess2, sizeof(VkBool32));
30758     vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess2, sizeof(VkBool32));
30759     vkStream->read((VkBool32*)&forUnmarshaling->nullDescriptor, sizeof(VkBool32));
30760 }
30761 
marshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2PropertiesEXT * forMarshaling)30762 void marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
30763     VulkanStream* vkStream, VkStructureType rootType,
30764     const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling) {
30765     (void)rootType;
30766     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30767     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30768         rootType = forMarshaling->sType;
30769     }
30770     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30771     vkStream->write((VkDeviceSize*)&forMarshaling->robustStorageBufferAccessSizeAlignment,
30772                     sizeof(VkDeviceSize));
30773     vkStream->write((VkDeviceSize*)&forMarshaling->robustUniformBufferAccessSizeAlignment,
30774                     sizeof(VkDeviceSize));
30775 }
30776 
unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2PropertiesEXT * forUnmarshaling)30777 void unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
30778     VulkanStream* vkStream, VkStructureType rootType,
30779     VkPhysicalDeviceRobustness2PropertiesEXT* forUnmarshaling) {
30780     (void)rootType;
30781     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30782     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30783         rootType = forUnmarshaling->sType;
30784     }
30785     size_t pNext_size;
30786     pNext_size = vkStream->getBe32();
30787     forUnmarshaling->pNext = nullptr;
30788     if (pNext_size) {
30789         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30790         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30791         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30792         vkStream->alloc((void**)&forUnmarshaling->pNext,
30793                         goldfish_vk_extension_struct_size_with_stream_features(
30794                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30795         *(VkStructureType*)forUnmarshaling->pNext = extType;
30796         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30797     }
30798     vkStream->read((VkDeviceSize*)&forUnmarshaling->robustStorageBufferAccessSizeAlignment,
30799                    sizeof(VkDeviceSize));
30800     vkStream->read((VkDeviceSize*)&forUnmarshaling->robustUniformBufferAccessSizeAlignment,
30801                    sizeof(VkDeviceSize));
30802 }
30803 
30804 #endif
30805 #ifdef VK_EXT_custom_border_color
marshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerCustomBorderColorCreateInfoEXT * forMarshaling)30806 void marshal_VkSamplerCustomBorderColorCreateInfoEXT(
30807     VulkanStream* vkStream, VkStructureType rootType,
30808     const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling) {
30809     (void)rootType;
30810     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30811     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30812         rootType = forMarshaling->sType;
30813     }
30814     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30815     marshal_VkClearColorValue(vkStream, rootType,
30816                               (VkClearColorValue*)(&forMarshaling->customBorderColor));
30817     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
30818 }
30819 
unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSamplerCustomBorderColorCreateInfoEXT * forUnmarshaling)30820 void unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
30821     VulkanStream* vkStream, VkStructureType rootType,
30822     VkSamplerCustomBorderColorCreateInfoEXT* forUnmarshaling) {
30823     (void)rootType;
30824     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30825     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30826         rootType = forUnmarshaling->sType;
30827     }
30828     size_t pNext_size;
30829     pNext_size = vkStream->getBe32();
30830     forUnmarshaling->pNext = nullptr;
30831     if (pNext_size) {
30832         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30833         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30834         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30835         vkStream->alloc((void**)&forUnmarshaling->pNext,
30836                         goldfish_vk_extension_struct_size_with_stream_features(
30837                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30838         *(VkStructureType*)forUnmarshaling->pNext = extType;
30839         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30840     }
30841     unmarshal_VkClearColorValue(vkStream, rootType,
30842                                 (VkClearColorValue*)(&forUnmarshaling->customBorderColor));
30843     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
30844 }
30845 
marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * forMarshaling)30846 void marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
30847     VulkanStream* vkStream, VkStructureType rootType,
30848     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling) {
30849     (void)rootType;
30850     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30851     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30852         rootType = forMarshaling->sType;
30853     }
30854     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30855     vkStream->write((uint32_t*)&forMarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
30856 }
30857 
unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorPropertiesEXT * forUnmarshaling)30858 void unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
30859     VulkanStream* vkStream, VkStructureType rootType,
30860     VkPhysicalDeviceCustomBorderColorPropertiesEXT* forUnmarshaling) {
30861     (void)rootType;
30862     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30863     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30864         rootType = forUnmarshaling->sType;
30865     }
30866     size_t pNext_size;
30867     pNext_size = vkStream->getBe32();
30868     forUnmarshaling->pNext = nullptr;
30869     if (pNext_size) {
30870         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30871         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30872         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30873         vkStream->alloc((void**)&forUnmarshaling->pNext,
30874                         goldfish_vk_extension_struct_size_with_stream_features(
30875                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30876         *(VkStructureType*)forUnmarshaling->pNext = extType;
30877         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30878     }
30879     vkStream->read((uint32_t*)&forUnmarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
30880 }
30881 
marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * forMarshaling)30882 void marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
30883     VulkanStream* vkStream, VkStructureType rootType,
30884     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling) {
30885     (void)rootType;
30886     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30887     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30888         rootType = forMarshaling->sType;
30889     }
30890     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30891     vkStream->write((VkBool32*)&forMarshaling->customBorderColors, sizeof(VkBool32));
30892     vkStream->write((VkBool32*)&forMarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
30893 }
30894 
unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorFeaturesEXT * forUnmarshaling)30895 void unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
30896     VulkanStream* vkStream, VkStructureType rootType,
30897     VkPhysicalDeviceCustomBorderColorFeaturesEXT* forUnmarshaling) {
30898     (void)rootType;
30899     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30900     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30901         rootType = forUnmarshaling->sType;
30902     }
30903     size_t pNext_size;
30904     pNext_size = vkStream->getBe32();
30905     forUnmarshaling->pNext = nullptr;
30906     if (pNext_size) {
30907         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30908         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30909         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30910         vkStream->alloc((void**)&forUnmarshaling->pNext,
30911                         goldfish_vk_extension_struct_size_with_stream_features(
30912                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30913         *(VkStructureType*)forUnmarshaling->pNext = extType;
30914         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30915     }
30916     vkStream->read((VkBool32*)&forUnmarshaling->customBorderColors, sizeof(VkBool32));
30917     vkStream->read((VkBool32*)&forUnmarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
30918 }
30919 
30920 #endif
30921 #ifdef VK_GOOGLE_user_type
30922 #endif
30923 #ifdef VK_NV_present_barrier
marshal_VkPhysicalDevicePresentBarrierFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePresentBarrierFeaturesNV * forMarshaling)30924 void marshal_VkPhysicalDevicePresentBarrierFeaturesNV(
30925     VulkanStream* vkStream, VkStructureType rootType,
30926     const VkPhysicalDevicePresentBarrierFeaturesNV* forMarshaling) {
30927     (void)rootType;
30928     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30929     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30930         rootType = forMarshaling->sType;
30931     }
30932     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30933     vkStream->write((VkBool32*)&forMarshaling->presentBarrier, sizeof(VkBool32));
30934 }
30935 
unmarshal_VkPhysicalDevicePresentBarrierFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePresentBarrierFeaturesNV * forUnmarshaling)30936 void unmarshal_VkPhysicalDevicePresentBarrierFeaturesNV(
30937     VulkanStream* vkStream, VkStructureType rootType,
30938     VkPhysicalDevicePresentBarrierFeaturesNV* forUnmarshaling) {
30939     (void)rootType;
30940     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30941     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30942         rootType = forUnmarshaling->sType;
30943     }
30944     size_t pNext_size;
30945     pNext_size = vkStream->getBe32();
30946     forUnmarshaling->pNext = nullptr;
30947     if (pNext_size) {
30948         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30949         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30950         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30951         vkStream->alloc((void**)&forUnmarshaling->pNext,
30952                         goldfish_vk_extension_struct_size_with_stream_features(
30953                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30954         *(VkStructureType*)forUnmarshaling->pNext = extType;
30955         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30956     }
30957     vkStream->read((VkBool32*)&forUnmarshaling->presentBarrier, sizeof(VkBool32));
30958 }
30959 
marshal_VkSurfaceCapabilitiesPresentBarrierNV(VulkanStream * vkStream,VkStructureType rootType,const VkSurfaceCapabilitiesPresentBarrierNV * forMarshaling)30960 void marshal_VkSurfaceCapabilitiesPresentBarrierNV(
30961     VulkanStream* vkStream, VkStructureType rootType,
30962     const VkSurfaceCapabilitiesPresentBarrierNV* forMarshaling) {
30963     (void)rootType;
30964     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
30965     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30966         rootType = forMarshaling->sType;
30967     }
30968     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
30969     vkStream->write((VkBool32*)&forMarshaling->presentBarrierSupported, sizeof(VkBool32));
30970 }
30971 
unmarshal_VkSurfaceCapabilitiesPresentBarrierNV(VulkanStream * vkStream,VkStructureType rootType,VkSurfaceCapabilitiesPresentBarrierNV * forUnmarshaling)30972 void unmarshal_VkSurfaceCapabilitiesPresentBarrierNV(
30973     VulkanStream* vkStream, VkStructureType rootType,
30974     VkSurfaceCapabilitiesPresentBarrierNV* forUnmarshaling) {
30975     (void)rootType;
30976     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
30977     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
30978         rootType = forUnmarshaling->sType;
30979     }
30980     size_t pNext_size;
30981     pNext_size = vkStream->getBe32();
30982     forUnmarshaling->pNext = nullptr;
30983     if (pNext_size) {
30984         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
30985         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
30986         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
30987         vkStream->alloc((void**)&forUnmarshaling->pNext,
30988                         goldfish_vk_extension_struct_size_with_stream_features(
30989                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
30990         *(VkStructureType*)forUnmarshaling->pNext = extType;
30991         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
30992     }
30993     vkStream->read((VkBool32*)&forUnmarshaling->presentBarrierSupported, sizeof(VkBool32));
30994 }
30995 
marshal_VkSwapchainPresentBarrierCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkSwapchainPresentBarrierCreateInfoNV * forMarshaling)30996 void marshal_VkSwapchainPresentBarrierCreateInfoNV(
30997     VulkanStream* vkStream, VkStructureType rootType,
30998     const VkSwapchainPresentBarrierCreateInfoNV* forMarshaling) {
30999     (void)rootType;
31000     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31001     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31002         rootType = forMarshaling->sType;
31003     }
31004     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31005     vkStream->write((VkBool32*)&forMarshaling->presentBarrierEnable, sizeof(VkBool32));
31006 }
31007 
unmarshal_VkSwapchainPresentBarrierCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentBarrierCreateInfoNV * forUnmarshaling)31008 void unmarshal_VkSwapchainPresentBarrierCreateInfoNV(
31009     VulkanStream* vkStream, VkStructureType rootType,
31010     VkSwapchainPresentBarrierCreateInfoNV* forUnmarshaling) {
31011     (void)rootType;
31012     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31014         rootType = forUnmarshaling->sType;
31015     }
31016     size_t pNext_size;
31017     pNext_size = vkStream->getBe32();
31018     forUnmarshaling->pNext = nullptr;
31019     if (pNext_size) {
31020         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31021         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31022         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31023         vkStream->alloc((void**)&forUnmarshaling->pNext,
31024                         goldfish_vk_extension_struct_size_with_stream_features(
31025                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31026         *(VkStructureType*)forUnmarshaling->pNext = extType;
31027         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31028     }
31029     vkStream->read((VkBool32*)&forUnmarshaling->presentBarrierEnable, sizeof(VkBool32));
31030 }
31031 
31032 #endif
31033 #ifdef VK_EXT_private_data
31034 #endif
31035 #ifdef VK_EXT_pipeline_creation_cache_control
31036 #endif
31037 #ifdef VK_NV_device_diagnostics_config
marshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDiagnosticsConfigFeaturesNV * forMarshaling)31038 void marshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
31039     VulkanStream* vkStream, VkStructureType rootType,
31040     const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forMarshaling) {
31041     (void)rootType;
31042     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31043     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31044         rootType = forMarshaling->sType;
31045     }
31046     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31047     vkStream->write((VkBool32*)&forMarshaling->diagnosticsConfig, sizeof(VkBool32));
31048 }
31049 
unmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDiagnosticsConfigFeaturesNV * forUnmarshaling)31050 void unmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
31051     VulkanStream* vkStream, VkStructureType rootType,
31052     VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forUnmarshaling) {
31053     (void)rootType;
31054     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31055     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31056         rootType = forUnmarshaling->sType;
31057     }
31058     size_t pNext_size;
31059     pNext_size = vkStream->getBe32();
31060     forUnmarshaling->pNext = nullptr;
31061     if (pNext_size) {
31062         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31063         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31064         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31065         vkStream->alloc((void**)&forUnmarshaling->pNext,
31066                         goldfish_vk_extension_struct_size_with_stream_features(
31067                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31068         *(VkStructureType*)forUnmarshaling->pNext = extType;
31069         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31070     }
31071     vkStream->read((VkBool32*)&forUnmarshaling->diagnosticsConfig, sizeof(VkBool32));
31072 }
31073 
marshal_VkDeviceDiagnosticsConfigCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceDiagnosticsConfigCreateInfoNV * forMarshaling)31074 void marshal_VkDeviceDiagnosticsConfigCreateInfoNV(
31075     VulkanStream* vkStream, VkStructureType rootType,
31076     const VkDeviceDiagnosticsConfigCreateInfoNV* forMarshaling) {
31077     (void)rootType;
31078     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31079     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31080         rootType = forMarshaling->sType;
31081     }
31082     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31083     vkStream->write((VkDeviceDiagnosticsConfigFlagsNV*)&forMarshaling->flags,
31084                     sizeof(VkDeviceDiagnosticsConfigFlagsNV));
31085 }
31086 
unmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkDeviceDiagnosticsConfigCreateInfoNV * forUnmarshaling)31087 void unmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(
31088     VulkanStream* vkStream, VkStructureType rootType,
31089     VkDeviceDiagnosticsConfigCreateInfoNV* forUnmarshaling) {
31090     (void)rootType;
31091     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31092     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31093         rootType = forUnmarshaling->sType;
31094     }
31095     size_t pNext_size;
31096     pNext_size = vkStream->getBe32();
31097     forUnmarshaling->pNext = nullptr;
31098     if (pNext_size) {
31099         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31100         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31101         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31102         vkStream->alloc((void**)&forUnmarshaling->pNext,
31103                         goldfish_vk_extension_struct_size_with_stream_features(
31104                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31105         *(VkStructureType*)forUnmarshaling->pNext = extType;
31106         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31107     }
31108     vkStream->read((VkDeviceDiagnosticsConfigFlagsNV*)&forUnmarshaling->flags,
31109                    sizeof(VkDeviceDiagnosticsConfigFlagsNV));
31110 }
31111 
31112 #endif
31113 #ifdef VK_QCOM_render_pass_store_ops
31114 #endif
31115 #ifdef VK_NV_low_latency
marshal_VkQueryLowLatencySupportNV(VulkanStream * vkStream,VkStructureType rootType,const VkQueryLowLatencySupportNV * forMarshaling)31116 void marshal_VkQueryLowLatencySupportNV(VulkanStream* vkStream, VkStructureType rootType,
31117                                         const VkQueryLowLatencySupportNV* forMarshaling) {
31118     (void)rootType;
31119     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31120     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31121         rootType = forMarshaling->sType;
31122     }
31123     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31124     vkStream->write((void*)forMarshaling->pQueriedLowLatencyData, sizeof(uint8_t));
31125 }
31126 
unmarshal_VkQueryLowLatencySupportNV(VulkanStream * vkStream,VkStructureType rootType,VkQueryLowLatencySupportNV * forUnmarshaling)31127 void unmarshal_VkQueryLowLatencySupportNV(VulkanStream* vkStream, VkStructureType rootType,
31128                                           VkQueryLowLatencySupportNV* forUnmarshaling) {
31129     (void)rootType;
31130     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31131     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31132         rootType = forUnmarshaling->sType;
31133     }
31134     size_t pNext_size;
31135     pNext_size = vkStream->getBe32();
31136     forUnmarshaling->pNext = nullptr;
31137     if (pNext_size) {
31138         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31139         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31140         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31141         vkStream->alloc((void**)&forUnmarshaling->pNext,
31142                         goldfish_vk_extension_struct_size_with_stream_features(
31143                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31144         *(VkStructureType*)forUnmarshaling->pNext = extType;
31145         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31146     }
31147     vkStream->alloc((void**)&forUnmarshaling->pQueriedLowLatencyData, sizeof(uint8_t));
31148     vkStream->read((void*)forUnmarshaling->pQueriedLowLatencyData, sizeof(uint8_t));
31149 }
31150 
31151 #endif
31152 #ifdef VK_EXT_metal_objects
marshal_VkExportMetalObjectCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalObjectCreateInfoEXT * forMarshaling)31153 void marshal_VkExportMetalObjectCreateInfoEXT(
31154     VulkanStream* vkStream, VkStructureType rootType,
31155     const VkExportMetalObjectCreateInfoEXT* forMarshaling) {
31156     (void)rootType;
31157     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31158     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31159         rootType = forMarshaling->sType;
31160     }
31161     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31162     vkStream->write((VkExportMetalObjectTypeFlagBitsEXT*)&forMarshaling->exportObjectType,
31163                     sizeof(VkExportMetalObjectTypeFlagBitsEXT));
31164 }
31165 
unmarshal_VkExportMetalObjectCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalObjectCreateInfoEXT * forUnmarshaling)31166 void unmarshal_VkExportMetalObjectCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31167                                                 VkExportMetalObjectCreateInfoEXT* forUnmarshaling) {
31168     (void)rootType;
31169     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31170     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31171         rootType = forUnmarshaling->sType;
31172     }
31173     size_t pNext_size;
31174     pNext_size = vkStream->getBe32();
31175     forUnmarshaling->pNext = nullptr;
31176     if (pNext_size) {
31177         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31178         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31179         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31180         vkStream->alloc((void**)&forUnmarshaling->pNext,
31181                         goldfish_vk_extension_struct_size_with_stream_features(
31182                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31183         *(VkStructureType*)forUnmarshaling->pNext = extType;
31184         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31185     }
31186     vkStream->read((VkExportMetalObjectTypeFlagBitsEXT*)&forUnmarshaling->exportObjectType,
31187                    sizeof(VkExportMetalObjectTypeFlagBitsEXT));
31188 }
31189 
marshal_VkExportMetalObjectsInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalObjectsInfoEXT * forMarshaling)31190 void marshal_VkExportMetalObjectsInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31191                                          const VkExportMetalObjectsInfoEXT* forMarshaling) {
31192     (void)rootType;
31193     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31194     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31195         rootType = forMarshaling->sType;
31196     }
31197     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31198 }
31199 
unmarshal_VkExportMetalObjectsInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalObjectsInfoEXT * forUnmarshaling)31200 void unmarshal_VkExportMetalObjectsInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31201                                            VkExportMetalObjectsInfoEXT* forUnmarshaling) {
31202     (void)rootType;
31203     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31204     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31205         rootType = forUnmarshaling->sType;
31206     }
31207     size_t pNext_size;
31208     pNext_size = vkStream->getBe32();
31209     forUnmarshaling->pNext = nullptr;
31210     if (pNext_size) {
31211         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31212         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31213         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31214         vkStream->alloc((void**)&forUnmarshaling->pNext,
31215                         goldfish_vk_extension_struct_size_with_stream_features(
31216                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31217         *(VkStructureType*)forUnmarshaling->pNext = extType;
31218         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31219     }
31220 }
31221 
marshal_VkExportMetalDeviceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalDeviceInfoEXT * forMarshaling)31222 void marshal_VkExportMetalDeviceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31223                                         const VkExportMetalDeviceInfoEXT* forMarshaling) {
31224     (void)rootType;
31225     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31226     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31227         rootType = forMarshaling->sType;
31228     }
31229     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31230     vkStream->write((MTLDevice_id*)&forMarshaling->mtlDevice, sizeof(MTLDevice_id));
31231 }
31232 
unmarshal_VkExportMetalDeviceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalDeviceInfoEXT * forUnmarshaling)31233 void unmarshal_VkExportMetalDeviceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31234                                           VkExportMetalDeviceInfoEXT* forUnmarshaling) {
31235     (void)rootType;
31236     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31237     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31238         rootType = forUnmarshaling->sType;
31239     }
31240     size_t pNext_size;
31241     pNext_size = vkStream->getBe32();
31242     forUnmarshaling->pNext = nullptr;
31243     if (pNext_size) {
31244         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31245         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31246         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31247         vkStream->alloc((void**)&forUnmarshaling->pNext,
31248                         goldfish_vk_extension_struct_size_with_stream_features(
31249                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31250         *(VkStructureType*)forUnmarshaling->pNext = extType;
31251         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31252     }
31253     vkStream->read((MTLDevice_id*)&forUnmarshaling->mtlDevice, sizeof(MTLDevice_id));
31254 }
31255 
marshal_VkExportMetalCommandQueueInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalCommandQueueInfoEXT * forMarshaling)31256 void marshal_VkExportMetalCommandQueueInfoEXT(
31257     VulkanStream* vkStream, VkStructureType rootType,
31258     const VkExportMetalCommandQueueInfoEXT* forMarshaling) {
31259     (void)rootType;
31260     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31261     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31262         rootType = forMarshaling->sType;
31263     }
31264     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31265     uint64_t cgen_var_0;
31266     vkStream->handleMapping()->mapHandles_VkQueue_u64(&forMarshaling->queue, &cgen_var_0, 1);
31267     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
31268     vkStream->write((MTLCommandQueue_id*)&forMarshaling->mtlCommandQueue,
31269                     sizeof(MTLCommandQueue_id));
31270 }
31271 
unmarshal_VkExportMetalCommandQueueInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalCommandQueueInfoEXT * forUnmarshaling)31272 void unmarshal_VkExportMetalCommandQueueInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31273                                                 VkExportMetalCommandQueueInfoEXT* forUnmarshaling) {
31274     (void)rootType;
31275     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31276     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31277         rootType = forUnmarshaling->sType;
31278     }
31279     size_t pNext_size;
31280     pNext_size = vkStream->getBe32();
31281     forUnmarshaling->pNext = nullptr;
31282     if (pNext_size) {
31283         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31284         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31285         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31286         vkStream->alloc((void**)&forUnmarshaling->pNext,
31287                         goldfish_vk_extension_struct_size_with_stream_features(
31288                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31289         *(VkStructureType*)forUnmarshaling->pNext = extType;
31290         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31291     }
31292     uint64_t cgen_var_0;
31293     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
31294     vkStream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_0,
31295                                                       (VkQueue*)&forUnmarshaling->queue, 1);
31296     vkStream->read((MTLCommandQueue_id*)&forUnmarshaling->mtlCommandQueue,
31297                    sizeof(MTLCommandQueue_id));
31298 }
31299 
marshal_VkExportMetalBufferInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalBufferInfoEXT * forMarshaling)31300 void marshal_VkExportMetalBufferInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31301                                         const VkExportMetalBufferInfoEXT* forMarshaling) {
31302     (void)rootType;
31303     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31304     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31305         rootType = forMarshaling->sType;
31306     }
31307     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31308     uint64_t cgen_var_0;
31309     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
31310                                                              1);
31311     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
31312     vkStream->write((MTLBuffer_id*)&forMarshaling->mtlBuffer, sizeof(MTLBuffer_id));
31313 }
31314 
unmarshal_VkExportMetalBufferInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalBufferInfoEXT * forUnmarshaling)31315 void unmarshal_VkExportMetalBufferInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31316                                           VkExportMetalBufferInfoEXT* forUnmarshaling) {
31317     (void)rootType;
31318     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31319     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31320         rootType = forUnmarshaling->sType;
31321     }
31322     size_t pNext_size;
31323     pNext_size = vkStream->getBe32();
31324     forUnmarshaling->pNext = nullptr;
31325     if (pNext_size) {
31326         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31327         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31328         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31329         vkStream->alloc((void**)&forUnmarshaling->pNext,
31330                         goldfish_vk_extension_struct_size_with_stream_features(
31331                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31332         *(VkStructureType*)forUnmarshaling->pNext = extType;
31333         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31334     }
31335     uint64_t cgen_var_0;
31336     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
31337     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
31338         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
31339     vkStream->read((MTLBuffer_id*)&forUnmarshaling->mtlBuffer, sizeof(MTLBuffer_id));
31340 }
31341 
marshal_VkImportMetalBufferInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImportMetalBufferInfoEXT * forMarshaling)31342 void marshal_VkImportMetalBufferInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31343                                         const VkImportMetalBufferInfoEXT* forMarshaling) {
31344     (void)rootType;
31345     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31346     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31347         rootType = forMarshaling->sType;
31348     }
31349     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31350     vkStream->write((MTLBuffer_id*)&forMarshaling->mtlBuffer, sizeof(MTLBuffer_id));
31351 }
31352 
unmarshal_VkImportMetalBufferInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImportMetalBufferInfoEXT * forUnmarshaling)31353 void unmarshal_VkImportMetalBufferInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31354                                           VkImportMetalBufferInfoEXT* forUnmarshaling) {
31355     (void)rootType;
31356     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31357     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31358         rootType = forUnmarshaling->sType;
31359     }
31360     size_t pNext_size;
31361     pNext_size = vkStream->getBe32();
31362     forUnmarshaling->pNext = nullptr;
31363     if (pNext_size) {
31364         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31365         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31366         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31367         vkStream->alloc((void**)&forUnmarshaling->pNext,
31368                         goldfish_vk_extension_struct_size_with_stream_features(
31369                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31370         *(VkStructureType*)forUnmarshaling->pNext = extType;
31371         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31372     }
31373     vkStream->read((MTLBuffer_id*)&forUnmarshaling->mtlBuffer, sizeof(MTLBuffer_id));
31374 }
31375 
marshal_VkExportMetalTextureInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalTextureInfoEXT * forMarshaling)31376 void marshal_VkExportMetalTextureInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31377                                          const VkExportMetalTextureInfoEXT* forMarshaling) {
31378     (void)rootType;
31379     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31380     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31381         rootType = forMarshaling->sType;
31382     }
31383     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31384     uint64_t cgen_var_0;
31385     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
31386     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
31387     uint64_t cgen_var_1;
31388     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_1,
31389                                                           1);
31390     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
31391     uint64_t cgen_var_2;
31392     vkStream->handleMapping()->mapHandles_VkBufferView_u64(&forMarshaling->bufferView, &cgen_var_2,
31393                                                            1);
31394     vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
31395     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->plane, sizeof(VkImageAspectFlagBits));
31396     vkStream->write((MTLTexture_id*)&forMarshaling->mtlTexture, sizeof(MTLTexture_id));
31397 }
31398 
unmarshal_VkExportMetalTextureInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalTextureInfoEXT * forUnmarshaling)31399 void unmarshal_VkExportMetalTextureInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31400                                            VkExportMetalTextureInfoEXT* forUnmarshaling) {
31401     (void)rootType;
31402     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31403     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31404         rootType = forUnmarshaling->sType;
31405     }
31406     size_t pNext_size;
31407     pNext_size = vkStream->getBe32();
31408     forUnmarshaling->pNext = nullptr;
31409     if (pNext_size) {
31410         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31411         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31412         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31413         vkStream->alloc((void**)&forUnmarshaling->pNext,
31414                         goldfish_vk_extension_struct_size_with_stream_features(
31415                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31416         *(VkStructureType*)forUnmarshaling->pNext = extType;
31417         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31418     }
31419     uint64_t cgen_var_0;
31420     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
31421     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
31422                                                       (VkImage*)&forUnmarshaling->image, 1);
31423     uint64_t cgen_var_1;
31424     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
31425     vkStream->handleMapping()->mapHandles_u64_VkImageView(
31426         &cgen_var_1, (VkImageView*)&forUnmarshaling->imageView, 1);
31427     uint64_t cgen_var_2;
31428     vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
31429     vkStream->handleMapping()->mapHandles_u64_VkBufferView(
31430         &cgen_var_2, (VkBufferView*)&forUnmarshaling->bufferView, 1);
31431     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->plane, sizeof(VkImageAspectFlagBits));
31432     vkStream->read((MTLTexture_id*)&forUnmarshaling->mtlTexture, sizeof(MTLTexture_id));
31433 }
31434 
marshal_VkImportMetalTextureInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImportMetalTextureInfoEXT * forMarshaling)31435 void marshal_VkImportMetalTextureInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31436                                          const VkImportMetalTextureInfoEXT* forMarshaling) {
31437     (void)rootType;
31438     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31439     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31440         rootType = forMarshaling->sType;
31441     }
31442     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31443     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->plane, sizeof(VkImageAspectFlagBits));
31444     vkStream->write((MTLTexture_id*)&forMarshaling->mtlTexture, sizeof(MTLTexture_id));
31445 }
31446 
unmarshal_VkImportMetalTextureInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImportMetalTextureInfoEXT * forUnmarshaling)31447 void unmarshal_VkImportMetalTextureInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31448                                            VkImportMetalTextureInfoEXT* forUnmarshaling) {
31449     (void)rootType;
31450     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31451     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31452         rootType = forUnmarshaling->sType;
31453     }
31454     size_t pNext_size;
31455     pNext_size = vkStream->getBe32();
31456     forUnmarshaling->pNext = nullptr;
31457     if (pNext_size) {
31458         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31459         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31460         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31461         vkStream->alloc((void**)&forUnmarshaling->pNext,
31462                         goldfish_vk_extension_struct_size_with_stream_features(
31463                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31464         *(VkStructureType*)forUnmarshaling->pNext = extType;
31465         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31466     }
31467     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->plane, sizeof(VkImageAspectFlagBits));
31468     vkStream->read((MTLTexture_id*)&forUnmarshaling->mtlTexture, sizeof(MTLTexture_id));
31469 }
31470 
marshal_VkExportMetalIOSurfaceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalIOSurfaceInfoEXT * forMarshaling)31471 void marshal_VkExportMetalIOSurfaceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31472                                            const VkExportMetalIOSurfaceInfoEXT* forMarshaling) {
31473     (void)rootType;
31474     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31475     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31476         rootType = forMarshaling->sType;
31477     }
31478     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31479     uint64_t cgen_var_0;
31480     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
31481     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
31482     vkStream->write((IOSurfaceRef*)&forMarshaling->ioSurface, sizeof(IOSurfaceRef));
31483 }
31484 
unmarshal_VkExportMetalIOSurfaceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalIOSurfaceInfoEXT * forUnmarshaling)31485 void unmarshal_VkExportMetalIOSurfaceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31486                                              VkExportMetalIOSurfaceInfoEXT* forUnmarshaling) {
31487     (void)rootType;
31488     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31489     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31490         rootType = forUnmarshaling->sType;
31491     }
31492     size_t pNext_size;
31493     pNext_size = vkStream->getBe32();
31494     forUnmarshaling->pNext = nullptr;
31495     if (pNext_size) {
31496         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31497         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31498         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31499         vkStream->alloc((void**)&forUnmarshaling->pNext,
31500                         goldfish_vk_extension_struct_size_with_stream_features(
31501                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31502         *(VkStructureType*)forUnmarshaling->pNext = extType;
31503         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31504     }
31505     uint64_t cgen_var_0;
31506     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
31507     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
31508                                                       (VkImage*)&forUnmarshaling->image, 1);
31509     vkStream->read((IOSurfaceRef*)&forUnmarshaling->ioSurface, sizeof(IOSurfaceRef));
31510 }
31511 
marshal_VkImportMetalIOSurfaceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImportMetalIOSurfaceInfoEXT * forMarshaling)31512 void marshal_VkImportMetalIOSurfaceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31513                                            const VkImportMetalIOSurfaceInfoEXT* forMarshaling) {
31514     (void)rootType;
31515     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31516     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31517         rootType = forMarshaling->sType;
31518     }
31519     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31520     vkStream->write((IOSurfaceRef*)&forMarshaling->ioSurface, sizeof(IOSurfaceRef));
31521 }
31522 
unmarshal_VkImportMetalIOSurfaceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImportMetalIOSurfaceInfoEXT * forUnmarshaling)31523 void unmarshal_VkImportMetalIOSurfaceInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31524                                              VkImportMetalIOSurfaceInfoEXT* forUnmarshaling) {
31525     (void)rootType;
31526     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31527     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31528         rootType = forUnmarshaling->sType;
31529     }
31530     size_t pNext_size;
31531     pNext_size = vkStream->getBe32();
31532     forUnmarshaling->pNext = nullptr;
31533     if (pNext_size) {
31534         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31535         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31536         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31537         vkStream->alloc((void**)&forUnmarshaling->pNext,
31538                         goldfish_vk_extension_struct_size_with_stream_features(
31539                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31540         *(VkStructureType*)forUnmarshaling->pNext = extType;
31541         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31542     }
31543     vkStream->read((IOSurfaceRef*)&forUnmarshaling->ioSurface, sizeof(IOSurfaceRef));
31544 }
31545 
marshal_VkExportMetalSharedEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkExportMetalSharedEventInfoEXT * forMarshaling)31546 void marshal_VkExportMetalSharedEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31547                                              const VkExportMetalSharedEventInfoEXT* forMarshaling) {
31548     (void)rootType;
31549     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31550     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31551         rootType = forMarshaling->sType;
31552     }
31553     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31554     uint64_t cgen_var_0;
31555     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
31556                                                           1);
31557     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
31558     uint64_t cgen_var_1;
31559     vkStream->handleMapping()->mapHandles_VkEvent_u64(&forMarshaling->event, &cgen_var_1, 1);
31560     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
31561     vkStream->write((MTLSharedEvent_id*)&forMarshaling->mtlSharedEvent, sizeof(MTLSharedEvent_id));
31562 }
31563 
unmarshal_VkExportMetalSharedEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkExportMetalSharedEventInfoEXT * forUnmarshaling)31564 void unmarshal_VkExportMetalSharedEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31565                                                VkExportMetalSharedEventInfoEXT* forUnmarshaling) {
31566     (void)rootType;
31567     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31568     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31569         rootType = forUnmarshaling->sType;
31570     }
31571     size_t pNext_size;
31572     pNext_size = vkStream->getBe32();
31573     forUnmarshaling->pNext = nullptr;
31574     if (pNext_size) {
31575         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31576         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31577         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31578         vkStream->alloc((void**)&forUnmarshaling->pNext,
31579                         goldfish_vk_extension_struct_size_with_stream_features(
31580                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31581         *(VkStructureType*)forUnmarshaling->pNext = extType;
31582         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31583     }
31584     uint64_t cgen_var_0;
31585     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
31586     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
31587         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
31588     uint64_t cgen_var_1;
31589     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
31590     vkStream->handleMapping()->mapHandles_u64_VkEvent(&cgen_var_1,
31591                                                       (VkEvent*)&forUnmarshaling->event, 1);
31592     vkStream->read((MTLSharedEvent_id*)&forUnmarshaling->mtlSharedEvent, sizeof(MTLSharedEvent_id));
31593 }
31594 
marshal_VkImportMetalSharedEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImportMetalSharedEventInfoEXT * forMarshaling)31595 void marshal_VkImportMetalSharedEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31596                                              const VkImportMetalSharedEventInfoEXT* forMarshaling) {
31597     (void)rootType;
31598     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31599     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31600         rootType = forMarshaling->sType;
31601     }
31602     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31603     vkStream->write((MTLSharedEvent_id*)&forMarshaling->mtlSharedEvent, sizeof(MTLSharedEvent_id));
31604 }
31605 
unmarshal_VkImportMetalSharedEventInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImportMetalSharedEventInfoEXT * forUnmarshaling)31606 void unmarshal_VkImportMetalSharedEventInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31607                                                VkImportMetalSharedEventInfoEXT* forUnmarshaling) {
31608     (void)rootType;
31609     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31610     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31611         rootType = forUnmarshaling->sType;
31612     }
31613     size_t pNext_size;
31614     pNext_size = vkStream->getBe32();
31615     forUnmarshaling->pNext = nullptr;
31616     if (pNext_size) {
31617         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31618         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31619         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31620         vkStream->alloc((void**)&forUnmarshaling->pNext,
31621                         goldfish_vk_extension_struct_size_with_stream_features(
31622                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31623         *(VkStructureType*)forUnmarshaling->pNext = extType;
31624         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31625     }
31626     vkStream->read((MTLSharedEvent_id*)&forUnmarshaling->mtlSharedEvent, sizeof(MTLSharedEvent_id));
31627 }
31628 
31629 #endif
31630 #ifdef VK_EXT_descriptor_buffer
marshal_VkPhysicalDeviceDescriptorBufferPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorBufferPropertiesEXT * forMarshaling)31631 void marshal_VkPhysicalDeviceDescriptorBufferPropertiesEXT(
31632     VulkanStream* vkStream, VkStructureType rootType,
31633     const VkPhysicalDeviceDescriptorBufferPropertiesEXT* forMarshaling) {
31634     (void)rootType;
31635     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31636     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31637         rootType = forMarshaling->sType;
31638     }
31639     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31640     vkStream->write((VkBool32*)&forMarshaling->combinedImageSamplerDescriptorSingleArray,
31641                     sizeof(VkBool32));
31642     vkStream->write((VkBool32*)&forMarshaling->bufferlessPushDescriptors, sizeof(VkBool32));
31643     vkStream->write((VkBool32*)&forMarshaling->allowSamplerImageViewPostSubmitCreation,
31644                     sizeof(VkBool32));
31645     vkStream->write((VkDeviceSize*)&forMarshaling->descriptorBufferOffsetAlignment,
31646                     sizeof(VkDeviceSize));
31647     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorBufferBindings, sizeof(uint32_t));
31648     vkStream->write((uint32_t*)&forMarshaling->maxResourceDescriptorBufferBindings,
31649                     sizeof(uint32_t));
31650     vkStream->write((uint32_t*)&forMarshaling->maxSamplerDescriptorBufferBindings,
31651                     sizeof(uint32_t));
31652     vkStream->write((uint32_t*)&forMarshaling->maxEmbeddedImmutableSamplerBindings,
31653                     sizeof(uint32_t));
31654     vkStream->write((uint32_t*)&forMarshaling->maxEmbeddedImmutableSamplers, sizeof(uint32_t));
31655     uint64_t cgen_var_0 = (uint64_t)forMarshaling->bufferCaptureReplayDescriptorDataSize;
31656     vkStream->putBe64(cgen_var_0);
31657     uint64_t cgen_var_1 = (uint64_t)forMarshaling->imageCaptureReplayDescriptorDataSize;
31658     vkStream->putBe64(cgen_var_1);
31659     uint64_t cgen_var_2 = (uint64_t)forMarshaling->imageViewCaptureReplayDescriptorDataSize;
31660     vkStream->putBe64(cgen_var_2);
31661     uint64_t cgen_var_3 = (uint64_t)forMarshaling->samplerCaptureReplayDescriptorDataSize;
31662     vkStream->putBe64(cgen_var_3);
31663     uint64_t cgen_var_4 =
31664         (uint64_t)forMarshaling->accelerationStructureCaptureReplayDescriptorDataSize;
31665     vkStream->putBe64(cgen_var_4);
31666     uint64_t cgen_var_5 = (uint64_t)forMarshaling->samplerDescriptorSize;
31667     vkStream->putBe64(cgen_var_5);
31668     uint64_t cgen_var_6 = (uint64_t)forMarshaling->combinedImageSamplerDescriptorSize;
31669     vkStream->putBe64(cgen_var_6);
31670     uint64_t cgen_var_7 = (uint64_t)forMarshaling->sampledImageDescriptorSize;
31671     vkStream->putBe64(cgen_var_7);
31672     uint64_t cgen_var_8 = (uint64_t)forMarshaling->storageImageDescriptorSize;
31673     vkStream->putBe64(cgen_var_8);
31674     uint64_t cgen_var_9 = (uint64_t)forMarshaling->uniformTexelBufferDescriptorSize;
31675     vkStream->putBe64(cgen_var_9);
31676     uint64_t cgen_var_10 = (uint64_t)forMarshaling->robustUniformTexelBufferDescriptorSize;
31677     vkStream->putBe64(cgen_var_10);
31678     uint64_t cgen_var_11 = (uint64_t)forMarshaling->storageTexelBufferDescriptorSize;
31679     vkStream->putBe64(cgen_var_11);
31680     uint64_t cgen_var_12 = (uint64_t)forMarshaling->robustStorageTexelBufferDescriptorSize;
31681     vkStream->putBe64(cgen_var_12);
31682     uint64_t cgen_var_13 = (uint64_t)forMarshaling->uniformBufferDescriptorSize;
31683     vkStream->putBe64(cgen_var_13);
31684     uint64_t cgen_var_14 = (uint64_t)forMarshaling->robustUniformBufferDescriptorSize;
31685     vkStream->putBe64(cgen_var_14);
31686     uint64_t cgen_var_15 = (uint64_t)forMarshaling->storageBufferDescriptorSize;
31687     vkStream->putBe64(cgen_var_15);
31688     uint64_t cgen_var_16 = (uint64_t)forMarshaling->robustStorageBufferDescriptorSize;
31689     vkStream->putBe64(cgen_var_16);
31690     uint64_t cgen_var_17 = (uint64_t)forMarshaling->inputAttachmentDescriptorSize;
31691     vkStream->putBe64(cgen_var_17);
31692     uint64_t cgen_var_18 = (uint64_t)forMarshaling->accelerationStructureDescriptorSize;
31693     vkStream->putBe64(cgen_var_18);
31694     vkStream->write((VkDeviceSize*)&forMarshaling->maxSamplerDescriptorBufferRange,
31695                     sizeof(VkDeviceSize));
31696     vkStream->write((VkDeviceSize*)&forMarshaling->maxResourceDescriptorBufferRange,
31697                     sizeof(VkDeviceSize));
31698     vkStream->write((VkDeviceSize*)&forMarshaling->samplerDescriptorBufferAddressSpaceSize,
31699                     sizeof(VkDeviceSize));
31700     vkStream->write((VkDeviceSize*)&forMarshaling->resourceDescriptorBufferAddressSpaceSize,
31701                     sizeof(VkDeviceSize));
31702     vkStream->write((VkDeviceSize*)&forMarshaling->descriptorBufferAddressSpaceSize,
31703                     sizeof(VkDeviceSize));
31704 }
31705 
unmarshal_VkPhysicalDeviceDescriptorBufferPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorBufferPropertiesEXT * forUnmarshaling)31706 void unmarshal_VkPhysicalDeviceDescriptorBufferPropertiesEXT(
31707     VulkanStream* vkStream, VkStructureType rootType,
31708     VkPhysicalDeviceDescriptorBufferPropertiesEXT* forUnmarshaling) {
31709     (void)rootType;
31710     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31711     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31712         rootType = forUnmarshaling->sType;
31713     }
31714     size_t pNext_size;
31715     pNext_size = vkStream->getBe32();
31716     forUnmarshaling->pNext = nullptr;
31717     if (pNext_size) {
31718         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31719         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31720         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31721         vkStream->alloc((void**)&forUnmarshaling->pNext,
31722                         goldfish_vk_extension_struct_size_with_stream_features(
31723                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31724         *(VkStructureType*)forUnmarshaling->pNext = extType;
31725         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31726     }
31727     vkStream->read((VkBool32*)&forUnmarshaling->combinedImageSamplerDescriptorSingleArray,
31728                    sizeof(VkBool32));
31729     vkStream->read((VkBool32*)&forUnmarshaling->bufferlessPushDescriptors, sizeof(VkBool32));
31730     vkStream->read((VkBool32*)&forUnmarshaling->allowSamplerImageViewPostSubmitCreation,
31731                    sizeof(VkBool32));
31732     vkStream->read((VkDeviceSize*)&forUnmarshaling->descriptorBufferOffsetAlignment,
31733                    sizeof(VkDeviceSize));
31734     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorBufferBindings, sizeof(uint32_t));
31735     vkStream->read((uint32_t*)&forUnmarshaling->maxResourceDescriptorBufferBindings,
31736                    sizeof(uint32_t));
31737     vkStream->read((uint32_t*)&forUnmarshaling->maxSamplerDescriptorBufferBindings,
31738                    sizeof(uint32_t));
31739     vkStream->read((uint32_t*)&forUnmarshaling->maxEmbeddedImmutableSamplerBindings,
31740                    sizeof(uint32_t));
31741     vkStream->read((uint32_t*)&forUnmarshaling->maxEmbeddedImmutableSamplers, sizeof(uint32_t));
31742     forUnmarshaling->bufferCaptureReplayDescriptorDataSize = (size_t)vkStream->getBe64();
31743     forUnmarshaling->imageCaptureReplayDescriptorDataSize = (size_t)vkStream->getBe64();
31744     forUnmarshaling->imageViewCaptureReplayDescriptorDataSize = (size_t)vkStream->getBe64();
31745     forUnmarshaling->samplerCaptureReplayDescriptorDataSize = (size_t)vkStream->getBe64();
31746     forUnmarshaling->accelerationStructureCaptureReplayDescriptorDataSize =
31747         (size_t)vkStream->getBe64();
31748     forUnmarshaling->samplerDescriptorSize = (size_t)vkStream->getBe64();
31749     forUnmarshaling->combinedImageSamplerDescriptorSize = (size_t)vkStream->getBe64();
31750     forUnmarshaling->sampledImageDescriptorSize = (size_t)vkStream->getBe64();
31751     forUnmarshaling->storageImageDescriptorSize = (size_t)vkStream->getBe64();
31752     forUnmarshaling->uniformTexelBufferDescriptorSize = (size_t)vkStream->getBe64();
31753     forUnmarshaling->robustUniformTexelBufferDescriptorSize = (size_t)vkStream->getBe64();
31754     forUnmarshaling->storageTexelBufferDescriptorSize = (size_t)vkStream->getBe64();
31755     forUnmarshaling->robustStorageTexelBufferDescriptorSize = (size_t)vkStream->getBe64();
31756     forUnmarshaling->uniformBufferDescriptorSize = (size_t)vkStream->getBe64();
31757     forUnmarshaling->robustUniformBufferDescriptorSize = (size_t)vkStream->getBe64();
31758     forUnmarshaling->storageBufferDescriptorSize = (size_t)vkStream->getBe64();
31759     forUnmarshaling->robustStorageBufferDescriptorSize = (size_t)vkStream->getBe64();
31760     forUnmarshaling->inputAttachmentDescriptorSize = (size_t)vkStream->getBe64();
31761     forUnmarshaling->accelerationStructureDescriptorSize = (size_t)vkStream->getBe64();
31762     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxSamplerDescriptorBufferRange,
31763                    sizeof(VkDeviceSize));
31764     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxResourceDescriptorBufferRange,
31765                    sizeof(VkDeviceSize));
31766     vkStream->read((VkDeviceSize*)&forUnmarshaling->samplerDescriptorBufferAddressSpaceSize,
31767                    sizeof(VkDeviceSize));
31768     vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceDescriptorBufferAddressSpaceSize,
31769                    sizeof(VkDeviceSize));
31770     vkStream->read((VkDeviceSize*)&forUnmarshaling->descriptorBufferAddressSpaceSize,
31771                    sizeof(VkDeviceSize));
31772 }
31773 
marshal_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT * forMarshaling)31774 void marshal_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(
31775     VulkanStream* vkStream, VkStructureType rootType,
31776     const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT* forMarshaling) {
31777     (void)rootType;
31778     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31779     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31780         rootType = forMarshaling->sType;
31781     }
31782     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31783     uint64_t cgen_var_0 = (uint64_t)forMarshaling->combinedImageSamplerDensityMapDescriptorSize;
31784     vkStream->putBe64(cgen_var_0);
31785 }
31786 
unmarshal_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT * forUnmarshaling)31787 void unmarshal_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(
31788     VulkanStream* vkStream, VkStructureType rootType,
31789     VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT* forUnmarshaling) {
31790     (void)rootType;
31791     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31792     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31793         rootType = forUnmarshaling->sType;
31794     }
31795     size_t pNext_size;
31796     pNext_size = vkStream->getBe32();
31797     forUnmarshaling->pNext = nullptr;
31798     if (pNext_size) {
31799         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31800         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31801         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31802         vkStream->alloc((void**)&forUnmarshaling->pNext,
31803                         goldfish_vk_extension_struct_size_with_stream_features(
31804                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31805         *(VkStructureType*)forUnmarshaling->pNext = extType;
31806         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31807     }
31808     forUnmarshaling->combinedImageSamplerDensityMapDescriptorSize = (size_t)vkStream->getBe64();
31809 }
31810 
marshal_VkPhysicalDeviceDescriptorBufferFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorBufferFeaturesEXT * forMarshaling)31811 void marshal_VkPhysicalDeviceDescriptorBufferFeaturesEXT(
31812     VulkanStream* vkStream, VkStructureType rootType,
31813     const VkPhysicalDeviceDescriptorBufferFeaturesEXT* forMarshaling) {
31814     (void)rootType;
31815     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31816     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31817         rootType = forMarshaling->sType;
31818     }
31819     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31820     vkStream->write((VkBool32*)&forMarshaling->descriptorBuffer, sizeof(VkBool32));
31821     vkStream->write((VkBool32*)&forMarshaling->descriptorBufferCaptureReplay, sizeof(VkBool32));
31822     vkStream->write((VkBool32*)&forMarshaling->descriptorBufferImageLayoutIgnored,
31823                     sizeof(VkBool32));
31824     vkStream->write((VkBool32*)&forMarshaling->descriptorBufferPushDescriptors, sizeof(VkBool32));
31825 }
31826 
unmarshal_VkPhysicalDeviceDescriptorBufferFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorBufferFeaturesEXT * forUnmarshaling)31827 void unmarshal_VkPhysicalDeviceDescriptorBufferFeaturesEXT(
31828     VulkanStream* vkStream, VkStructureType rootType,
31829     VkPhysicalDeviceDescriptorBufferFeaturesEXT* forUnmarshaling) {
31830     (void)rootType;
31831     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31832     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31833         rootType = forUnmarshaling->sType;
31834     }
31835     size_t pNext_size;
31836     pNext_size = vkStream->getBe32();
31837     forUnmarshaling->pNext = nullptr;
31838     if (pNext_size) {
31839         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31840         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31841         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31842         vkStream->alloc((void**)&forUnmarshaling->pNext,
31843                         goldfish_vk_extension_struct_size_with_stream_features(
31844                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31845         *(VkStructureType*)forUnmarshaling->pNext = extType;
31846         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31847     }
31848     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBuffer, sizeof(VkBool32));
31849     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBufferCaptureReplay, sizeof(VkBool32));
31850     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBufferImageLayoutIgnored,
31851                    sizeof(VkBool32));
31852     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBufferPushDescriptors, sizeof(VkBool32));
31853 }
31854 
marshal_VkDescriptorAddressInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorAddressInfoEXT * forMarshaling)31855 void marshal_VkDescriptorAddressInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31856                                         const VkDescriptorAddressInfoEXT* forMarshaling) {
31857     (void)rootType;
31858     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31859     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31860         rootType = forMarshaling->sType;
31861     }
31862     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31863     vkStream->write((VkDeviceAddress*)&forMarshaling->address, sizeof(VkDeviceAddress));
31864     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
31865     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
31866 }
31867 
unmarshal_VkDescriptorAddressInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorAddressInfoEXT * forUnmarshaling)31868 void unmarshal_VkDescriptorAddressInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31869                                           VkDescriptorAddressInfoEXT* forUnmarshaling) {
31870     (void)rootType;
31871     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31872     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31873         rootType = forUnmarshaling->sType;
31874     }
31875     size_t pNext_size;
31876     pNext_size = vkStream->getBe32();
31877     forUnmarshaling->pNext = nullptr;
31878     if (pNext_size) {
31879         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31880         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31881         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31882         vkStream->alloc((void**)&forUnmarshaling->pNext,
31883                         goldfish_vk_extension_struct_size_with_stream_features(
31884                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31885         *(VkStructureType*)forUnmarshaling->pNext = extType;
31886         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31887     }
31888     vkStream->read((VkDeviceAddress*)&forUnmarshaling->address, sizeof(VkDeviceAddress));
31889     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
31890     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
31891 }
31892 
marshal_VkDescriptorBufferBindingInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorBufferBindingInfoEXT * forMarshaling)31893 void marshal_VkDescriptorBufferBindingInfoEXT(
31894     VulkanStream* vkStream, VkStructureType rootType,
31895     const VkDescriptorBufferBindingInfoEXT* forMarshaling) {
31896     (void)rootType;
31897     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31898     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31899         rootType = forMarshaling->sType;
31900     }
31901     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31902     vkStream->write((VkDeviceAddress*)&forMarshaling->address, sizeof(VkDeviceAddress));
31903     vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
31904 }
31905 
unmarshal_VkDescriptorBufferBindingInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorBufferBindingInfoEXT * forUnmarshaling)31906 void unmarshal_VkDescriptorBufferBindingInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31907                                                 VkDescriptorBufferBindingInfoEXT* forUnmarshaling) {
31908     (void)rootType;
31909     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31910     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31911         rootType = forUnmarshaling->sType;
31912     }
31913     size_t pNext_size;
31914     pNext_size = vkStream->getBe32();
31915     forUnmarshaling->pNext = nullptr;
31916     if (pNext_size) {
31917         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31918         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31919         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31920         vkStream->alloc((void**)&forUnmarshaling->pNext,
31921                         goldfish_vk_extension_struct_size_with_stream_features(
31922                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31923         *(VkStructureType*)forUnmarshaling->pNext = extType;
31924         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31925     }
31926     vkStream->read((VkDeviceAddress*)&forUnmarshaling->address, sizeof(VkDeviceAddress));
31927     vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
31928 }
31929 
marshal_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT * forMarshaling)31930 void marshal_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(
31931     VulkanStream* vkStream, VkStructureType rootType,
31932     const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT* forMarshaling) {
31933     (void)rootType;
31934     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31935     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31936         rootType = forMarshaling->sType;
31937     }
31938     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31939     uint64_t cgen_var_0;
31940     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
31941     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
31942 }
31943 
unmarshal_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorBufferBindingPushDescriptorBufferHandleEXT * forUnmarshaling)31944 void unmarshal_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(
31945     VulkanStream* vkStream, VkStructureType rootType,
31946     VkDescriptorBufferBindingPushDescriptorBufferHandleEXT* forUnmarshaling) {
31947     (void)rootType;
31948     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
31949     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31950         rootType = forUnmarshaling->sType;
31951     }
31952     size_t pNext_size;
31953     pNext_size = vkStream->getBe32();
31954     forUnmarshaling->pNext = nullptr;
31955     if (pNext_size) {
31956         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
31957         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
31958         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
31959         vkStream->alloc((void**)&forUnmarshaling->pNext,
31960                         goldfish_vk_extension_struct_size_with_stream_features(
31961                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
31962         *(VkStructureType*)forUnmarshaling->pNext = extType;
31963         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
31964     }
31965     uint64_t cgen_var_0;
31966     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
31967     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
31968                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
31969 }
31970 
marshal_VkDescriptorDataEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorDataEXT * forMarshaling)31971 void marshal_VkDescriptorDataEXT(VulkanStream* vkStream, VkStructureType rootType,
31972                                  const VkDescriptorDataEXT* forMarshaling) {
31973     (void)rootType;
31974     uint64_t cgen_var_0;
31975     vkStream->handleMapping()->mapHandles_VkSampler_u64(forMarshaling->pSampler, &cgen_var_0, 1);
31976     vkStream->write((uint64_t*)&cgen_var_0, 8);
31977 }
31978 
unmarshal_VkDescriptorDataEXT(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorDataEXT * forUnmarshaling)31979 void unmarshal_VkDescriptorDataEXT(VulkanStream* vkStream, VkStructureType rootType,
31980                                    VkDescriptorDataEXT* forUnmarshaling) {
31981     (void)rootType;
31982     vkStream->alloc((void**)&forUnmarshaling->pSampler, sizeof(const VkSampler));
31983     uint64_t cgen_var_0;
31984     vkStream->read((uint64_t*)&cgen_var_0, 8);
31985     vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_0,
31986                                                         (VkSampler*)forUnmarshaling->pSampler, 1);
31987 }
31988 
marshal_VkDescriptorGetInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorGetInfoEXT * forMarshaling)31989 void marshal_VkDescriptorGetInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
31990                                     const VkDescriptorGetInfoEXT* forMarshaling) {
31991     (void)rootType;
31992     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
31993     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
31994         rootType = forMarshaling->sType;
31995     }
31996     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
31997     vkStream->write((VkDescriptorType*)&forMarshaling->type, sizeof(VkDescriptorType));
31998     marshal_VkDescriptorDataEXT(vkStream, rootType, (VkDescriptorDataEXT*)(&forMarshaling->data));
31999 }
32000 
unmarshal_VkDescriptorGetInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorGetInfoEXT * forUnmarshaling)32001 void unmarshal_VkDescriptorGetInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
32002                                       VkDescriptorGetInfoEXT* forUnmarshaling) {
32003     (void)rootType;
32004     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32005     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32006         rootType = forUnmarshaling->sType;
32007     }
32008     size_t pNext_size;
32009     pNext_size = vkStream->getBe32();
32010     forUnmarshaling->pNext = nullptr;
32011     if (pNext_size) {
32012         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32013         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32014         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32015         vkStream->alloc((void**)&forUnmarshaling->pNext,
32016                         goldfish_vk_extension_struct_size_with_stream_features(
32017                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32018         *(VkStructureType*)forUnmarshaling->pNext = extType;
32019         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32020     }
32021     vkStream->read((VkDescriptorType*)&forUnmarshaling->type, sizeof(VkDescriptorType));
32022     unmarshal_VkDescriptorDataEXT(vkStream, rootType,
32023                                   (VkDescriptorDataEXT*)(&forUnmarshaling->data));
32024 }
32025 
marshal_VkBufferCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCaptureDescriptorDataInfoEXT * forMarshaling)32026 void marshal_VkBufferCaptureDescriptorDataInfoEXT(
32027     VulkanStream* vkStream, VkStructureType rootType,
32028     const VkBufferCaptureDescriptorDataInfoEXT* forMarshaling) {
32029     (void)rootType;
32030     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32031     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32032         rootType = forMarshaling->sType;
32033     }
32034     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32035     uint64_t cgen_var_0;
32036     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
32037     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
32038 }
32039 
unmarshal_VkBufferCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkBufferCaptureDescriptorDataInfoEXT * forUnmarshaling)32040 void unmarshal_VkBufferCaptureDescriptorDataInfoEXT(
32041     VulkanStream* vkStream, VkStructureType rootType,
32042     VkBufferCaptureDescriptorDataInfoEXT* forUnmarshaling) {
32043     (void)rootType;
32044     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32045     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32046         rootType = forUnmarshaling->sType;
32047     }
32048     size_t pNext_size;
32049     pNext_size = vkStream->getBe32();
32050     forUnmarshaling->pNext = nullptr;
32051     if (pNext_size) {
32052         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32053         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32054         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32055         vkStream->alloc((void**)&forUnmarshaling->pNext,
32056                         goldfish_vk_extension_struct_size_with_stream_features(
32057                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32058         *(VkStructureType*)forUnmarshaling->pNext = extType;
32059         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32060     }
32061     uint64_t cgen_var_0;
32062     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
32063     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
32064                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
32065 }
32066 
marshal_VkImageCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageCaptureDescriptorDataInfoEXT * forMarshaling)32067 void marshal_VkImageCaptureDescriptorDataInfoEXT(
32068     VulkanStream* vkStream, VkStructureType rootType,
32069     const VkImageCaptureDescriptorDataInfoEXT* forMarshaling) {
32070     (void)rootType;
32071     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32072     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32073         rootType = forMarshaling->sType;
32074     }
32075     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32076     uint64_t cgen_var_0;
32077     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
32078     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
32079 }
32080 
unmarshal_VkImageCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageCaptureDescriptorDataInfoEXT * forUnmarshaling)32081 void unmarshal_VkImageCaptureDescriptorDataInfoEXT(
32082     VulkanStream* vkStream, VkStructureType rootType,
32083     VkImageCaptureDescriptorDataInfoEXT* forUnmarshaling) {
32084     (void)rootType;
32085     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32086     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32087         rootType = forUnmarshaling->sType;
32088     }
32089     size_t pNext_size;
32090     pNext_size = vkStream->getBe32();
32091     forUnmarshaling->pNext = nullptr;
32092     if (pNext_size) {
32093         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32094         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32095         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32096         vkStream->alloc((void**)&forUnmarshaling->pNext,
32097                         goldfish_vk_extension_struct_size_with_stream_features(
32098                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32099         *(VkStructureType*)forUnmarshaling->pNext = extType;
32100         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32101     }
32102     uint64_t cgen_var_0;
32103     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
32104     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
32105                                                       (VkImage*)&forUnmarshaling->image, 1);
32106 }
32107 
marshal_VkImageViewCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewCaptureDescriptorDataInfoEXT * forMarshaling)32108 void marshal_VkImageViewCaptureDescriptorDataInfoEXT(
32109     VulkanStream* vkStream, VkStructureType rootType,
32110     const VkImageViewCaptureDescriptorDataInfoEXT* forMarshaling) {
32111     (void)rootType;
32112     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32113     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32114         rootType = forMarshaling->sType;
32115     }
32116     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32117     uint64_t cgen_var_0;
32118     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
32119                                                           1);
32120     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
32121 }
32122 
unmarshal_VkImageViewCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageViewCaptureDescriptorDataInfoEXT * forUnmarshaling)32123 void unmarshal_VkImageViewCaptureDescriptorDataInfoEXT(
32124     VulkanStream* vkStream, VkStructureType rootType,
32125     VkImageViewCaptureDescriptorDataInfoEXT* forUnmarshaling) {
32126     (void)rootType;
32127     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32128     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32129         rootType = forUnmarshaling->sType;
32130     }
32131     size_t pNext_size;
32132     pNext_size = vkStream->getBe32();
32133     forUnmarshaling->pNext = nullptr;
32134     if (pNext_size) {
32135         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32136         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32137         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32138         vkStream->alloc((void**)&forUnmarshaling->pNext,
32139                         goldfish_vk_extension_struct_size_with_stream_features(
32140                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32141         *(VkStructureType*)forUnmarshaling->pNext = extType;
32142         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32143     }
32144     uint64_t cgen_var_0;
32145     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
32146     vkStream->handleMapping()->mapHandles_u64_VkImageView(
32147         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
32148 }
32149 
marshal_VkSamplerCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerCaptureDescriptorDataInfoEXT * forMarshaling)32150 void marshal_VkSamplerCaptureDescriptorDataInfoEXT(
32151     VulkanStream* vkStream, VkStructureType rootType,
32152     const VkSamplerCaptureDescriptorDataInfoEXT* forMarshaling) {
32153     (void)rootType;
32154     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32155     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32156         rootType = forMarshaling->sType;
32157     }
32158     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32159     uint64_t cgen_var_0;
32160     vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_0, 1);
32161     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
32162 }
32163 
unmarshal_VkSamplerCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSamplerCaptureDescriptorDataInfoEXT * forUnmarshaling)32164 void unmarshal_VkSamplerCaptureDescriptorDataInfoEXT(
32165     VulkanStream* vkStream, VkStructureType rootType,
32166     VkSamplerCaptureDescriptorDataInfoEXT* forUnmarshaling) {
32167     (void)rootType;
32168     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32169     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32170         rootType = forUnmarshaling->sType;
32171     }
32172     size_t pNext_size;
32173     pNext_size = vkStream->getBe32();
32174     forUnmarshaling->pNext = nullptr;
32175     if (pNext_size) {
32176         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32177         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32178         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32179         vkStream->alloc((void**)&forUnmarshaling->pNext,
32180                         goldfish_vk_extension_struct_size_with_stream_features(
32181                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32182         *(VkStructureType*)forUnmarshaling->pNext = extType;
32183         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32184     }
32185     uint64_t cgen_var_0;
32186     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
32187     vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_0,
32188                                                         (VkSampler*)&forUnmarshaling->sampler, 1);
32189 }
32190 
marshal_VkOpaqueCaptureDescriptorDataCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkOpaqueCaptureDescriptorDataCreateInfoEXT * forMarshaling)32191 void marshal_VkOpaqueCaptureDescriptorDataCreateInfoEXT(
32192     VulkanStream* vkStream, VkStructureType rootType,
32193     const VkOpaqueCaptureDescriptorDataCreateInfoEXT* forMarshaling) {
32194     (void)rootType;
32195     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32196     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32197         rootType = forMarshaling->sType;
32198     }
32199     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32200     vkStream->write((const void*)forMarshaling->opaqueCaptureDescriptorData, sizeof(const uint8_t));
32201 }
32202 
unmarshal_VkOpaqueCaptureDescriptorDataCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkOpaqueCaptureDescriptorDataCreateInfoEXT * forUnmarshaling)32203 void unmarshal_VkOpaqueCaptureDescriptorDataCreateInfoEXT(
32204     VulkanStream* vkStream, VkStructureType rootType,
32205     VkOpaqueCaptureDescriptorDataCreateInfoEXT* forUnmarshaling) {
32206     (void)rootType;
32207     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32208     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32209         rootType = forUnmarshaling->sType;
32210     }
32211     size_t pNext_size;
32212     pNext_size = vkStream->getBe32();
32213     forUnmarshaling->pNext = nullptr;
32214     if (pNext_size) {
32215         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32216         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32217         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32218         vkStream->alloc((void**)&forUnmarshaling->pNext,
32219                         goldfish_vk_extension_struct_size_with_stream_features(
32220                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32221         *(VkStructureType*)forUnmarshaling->pNext = extType;
32222         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32223     }
32224     vkStream->alloc((void**)&forUnmarshaling->opaqueCaptureDescriptorData, sizeof(const uint8_t));
32225     vkStream->read((void*)forUnmarshaling->opaqueCaptureDescriptorData, sizeof(const uint8_t));
32226 }
32227 
marshal_VkAccelerationStructureCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureCaptureDescriptorDataInfoEXT * forMarshaling)32228 void marshal_VkAccelerationStructureCaptureDescriptorDataInfoEXT(
32229     VulkanStream* vkStream, VkStructureType rootType,
32230     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* forMarshaling) {
32231     (void)rootType;
32232     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32233     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32234         rootType = forMarshaling->sType;
32235     }
32236     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32237     uint64_t cgen_var_0;
32238     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(
32239         &forMarshaling->accelerationStructure, &cgen_var_0, 1);
32240     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
32241     uint64_t cgen_var_1;
32242     vkStream->handleMapping()->mapHandles_VkAccelerationStructureNV_u64(
32243         &forMarshaling->accelerationStructureNV, &cgen_var_1, 1);
32244     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
32245 }
32246 
unmarshal_VkAccelerationStructureCaptureDescriptorDataInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureCaptureDescriptorDataInfoEXT * forUnmarshaling)32247 void unmarshal_VkAccelerationStructureCaptureDescriptorDataInfoEXT(
32248     VulkanStream* vkStream, VkStructureType rootType,
32249     VkAccelerationStructureCaptureDescriptorDataInfoEXT* forUnmarshaling) {
32250     (void)rootType;
32251     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32252     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32253         rootType = forUnmarshaling->sType;
32254     }
32255     size_t pNext_size;
32256     pNext_size = vkStream->getBe32();
32257     forUnmarshaling->pNext = nullptr;
32258     if (pNext_size) {
32259         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32260         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32261         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32262         vkStream->alloc((void**)&forUnmarshaling->pNext,
32263                         goldfish_vk_extension_struct_size_with_stream_features(
32264                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32265         *(VkStructureType*)forUnmarshaling->pNext = extType;
32266         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32267     }
32268     uint64_t cgen_var_0;
32269     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
32270     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
32271         &cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->accelerationStructure, 1);
32272     uint64_t cgen_var_1;
32273     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
32274     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(
32275         &cgen_var_1, (VkAccelerationStructureNV*)&forUnmarshaling->accelerationStructureNV, 1);
32276 }
32277 
32278 #endif
32279 #ifdef VK_EXT_graphics_pipeline_library
marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forMarshaling)32280 void marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
32281     VulkanStream* vkStream, VkStructureType rootType,
32282     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forMarshaling) {
32283     (void)rootType;
32284     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32285     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32286         rootType = forMarshaling->sType;
32287     }
32288     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32289     vkStream->write((VkBool32*)&forMarshaling->graphicsPipelineLibrary, sizeof(VkBool32));
32290 }
32291 
unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forUnmarshaling)32292 void unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
32293     VulkanStream* vkStream, VkStructureType rootType,
32294     VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forUnmarshaling) {
32295     (void)rootType;
32296     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32297     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32298         rootType = forUnmarshaling->sType;
32299     }
32300     size_t pNext_size;
32301     pNext_size = vkStream->getBe32();
32302     forUnmarshaling->pNext = nullptr;
32303     if (pNext_size) {
32304         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32305         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32306         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32307         vkStream->alloc((void**)&forUnmarshaling->pNext,
32308                         goldfish_vk_extension_struct_size_with_stream_features(
32309                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32310         *(VkStructureType*)forUnmarshaling->pNext = extType;
32311         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32312     }
32313     vkStream->read((VkBool32*)&forUnmarshaling->graphicsPipelineLibrary, sizeof(VkBool32));
32314 }
32315 
marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forMarshaling)32316 void marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
32317     VulkanStream* vkStream, VkStructureType rootType,
32318     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forMarshaling) {
32319     (void)rootType;
32320     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32321     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32322         rootType = forMarshaling->sType;
32323     }
32324     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32325     vkStream->write((VkBool32*)&forMarshaling->graphicsPipelineLibraryFastLinking,
32326                     sizeof(VkBool32));
32327     vkStream->write(
32328         (VkBool32*)&forMarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
32329         sizeof(VkBool32));
32330 }
32331 
unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forUnmarshaling)32332 void unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
32333     VulkanStream* vkStream, VkStructureType rootType,
32334     VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forUnmarshaling) {
32335     (void)rootType;
32336     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32337     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32338         rootType = forUnmarshaling->sType;
32339     }
32340     size_t pNext_size;
32341     pNext_size = vkStream->getBe32();
32342     forUnmarshaling->pNext = nullptr;
32343     if (pNext_size) {
32344         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32345         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32346         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32347         vkStream->alloc((void**)&forUnmarshaling->pNext,
32348                         goldfish_vk_extension_struct_size_with_stream_features(
32349                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32350         *(VkStructureType*)forUnmarshaling->pNext = extType;
32351         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32352     }
32353     vkStream->read((VkBool32*)&forUnmarshaling->graphicsPipelineLibraryFastLinking,
32354                    sizeof(VkBool32));
32355     vkStream->read(
32356         (VkBool32*)&forUnmarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
32357         sizeof(VkBool32));
32358 }
32359 
marshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkGraphicsPipelineLibraryCreateInfoEXT * forMarshaling)32360 void marshal_VkGraphicsPipelineLibraryCreateInfoEXT(
32361     VulkanStream* vkStream, VkStructureType rootType,
32362     const VkGraphicsPipelineLibraryCreateInfoEXT* forMarshaling) {
32363     (void)rootType;
32364     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32365     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32366         rootType = forMarshaling->sType;
32367     }
32368     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32369     vkStream->write((VkGraphicsPipelineLibraryFlagsEXT*)&forMarshaling->flags,
32370                     sizeof(VkGraphicsPipelineLibraryFlagsEXT));
32371 }
32372 
unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkGraphicsPipelineLibraryCreateInfoEXT * forUnmarshaling)32373 void unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
32374     VulkanStream* vkStream, VkStructureType rootType,
32375     VkGraphicsPipelineLibraryCreateInfoEXT* forUnmarshaling) {
32376     (void)rootType;
32377     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32378     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32379         rootType = forUnmarshaling->sType;
32380     }
32381     size_t pNext_size;
32382     pNext_size = vkStream->getBe32();
32383     forUnmarshaling->pNext = nullptr;
32384     if (pNext_size) {
32385         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32386         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32387         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32388         vkStream->alloc((void**)&forUnmarshaling->pNext,
32389                         goldfish_vk_extension_struct_size_with_stream_features(
32390                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32391         *(VkStructureType*)forUnmarshaling->pNext = extType;
32392         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32393     }
32394     vkStream->read((VkGraphicsPipelineLibraryFlagsEXT*)&forUnmarshaling->flags,
32395                    sizeof(VkGraphicsPipelineLibraryFlagsEXT));
32396 }
32397 
32398 #endif
32399 #ifdef VK_AMD_shader_early_and_late_fragment_tests
marshal_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD * forMarshaling)32400 void marshal_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(
32401     VulkanStream* vkStream, VkStructureType rootType,
32402     const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* forMarshaling) {
32403     (void)rootType;
32404     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32405     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32406         rootType = forMarshaling->sType;
32407     }
32408     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32409     vkStream->write((VkBool32*)&forMarshaling->shaderEarlyAndLateFragmentTests, sizeof(VkBool32));
32410 }
32411 
unmarshal_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD * forUnmarshaling)32412 void unmarshal_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(
32413     VulkanStream* vkStream, VkStructureType rootType,
32414     VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* forUnmarshaling) {
32415     (void)rootType;
32416     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32417     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32418         rootType = forUnmarshaling->sType;
32419     }
32420     size_t pNext_size;
32421     pNext_size = vkStream->getBe32();
32422     forUnmarshaling->pNext = nullptr;
32423     if (pNext_size) {
32424         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32425         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32426         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32427         vkStream->alloc((void**)&forUnmarshaling->pNext,
32428                         goldfish_vk_extension_struct_size_with_stream_features(
32429                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32430         *(VkStructureType*)forUnmarshaling->pNext = extType;
32431         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32432     }
32433     vkStream->read((VkBool32*)&forUnmarshaling->shaderEarlyAndLateFragmentTests, sizeof(VkBool32));
32434 }
32435 
32436 #endif
32437 #ifdef VK_NV_fragment_shading_rate_enums
marshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV * forMarshaling)32438 void marshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
32439     VulkanStream* vkStream, VkStructureType rootType,
32440     const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forMarshaling) {
32441     (void)rootType;
32442     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32443     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32444         rootType = forMarshaling->sType;
32445     }
32446     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32447     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateEnums, sizeof(VkBool32));
32448     vkStream->write((VkBool32*)&forMarshaling->supersampleFragmentShadingRates, sizeof(VkBool32));
32449     vkStream->write((VkBool32*)&forMarshaling->noInvocationFragmentShadingRates, sizeof(VkBool32));
32450 }
32451 
unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV * forUnmarshaling)32452 void unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
32453     VulkanStream* vkStream, VkStructureType rootType,
32454     VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forUnmarshaling) {
32455     (void)rootType;
32456     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32457     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32458         rootType = forUnmarshaling->sType;
32459     }
32460     size_t pNext_size;
32461     pNext_size = vkStream->getBe32();
32462     forUnmarshaling->pNext = nullptr;
32463     if (pNext_size) {
32464         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32465         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32466         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32467         vkStream->alloc((void**)&forUnmarshaling->pNext,
32468                         goldfish_vk_extension_struct_size_with_stream_features(
32469                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32470         *(VkStructureType*)forUnmarshaling->pNext = extType;
32471         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32472     }
32473     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateEnums, sizeof(VkBool32));
32474     vkStream->read((VkBool32*)&forUnmarshaling->supersampleFragmentShadingRates, sizeof(VkBool32));
32475     vkStream->read((VkBool32*)&forUnmarshaling->noInvocationFragmentShadingRates, sizeof(VkBool32));
32476 }
32477 
marshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV * forMarshaling)32478 void marshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
32479     VulkanStream* vkStream, VkStructureType rootType,
32480     const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forMarshaling) {
32481     (void)rootType;
32482     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32483     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32484         rootType = forMarshaling->sType;
32485     }
32486     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32487     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->maxFragmentShadingRateInvocationCount,
32488                     sizeof(VkSampleCountFlagBits));
32489 }
32490 
unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV * forUnmarshaling)32491 void unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
32492     VulkanStream* vkStream, VkStructureType rootType,
32493     VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forUnmarshaling) {
32494     (void)rootType;
32495     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32496     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32497         rootType = forUnmarshaling->sType;
32498     }
32499     size_t pNext_size;
32500     pNext_size = vkStream->getBe32();
32501     forUnmarshaling->pNext = nullptr;
32502     if (pNext_size) {
32503         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32504         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32505         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32506         vkStream->alloc((void**)&forUnmarshaling->pNext,
32507                         goldfish_vk_extension_struct_size_with_stream_features(
32508                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32509         *(VkStructureType*)forUnmarshaling->pNext = extType;
32510         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32511     }
32512     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->maxFragmentShadingRateInvocationCount,
32513                    sizeof(VkSampleCountFlagBits));
32514 }
32515 
marshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineFragmentShadingRateEnumStateCreateInfoNV * forMarshaling)32516 void marshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
32517     VulkanStream* vkStream, VkStructureType rootType,
32518     const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forMarshaling) {
32519     (void)rootType;
32520     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32521     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32522         rootType = forMarshaling->sType;
32523     }
32524     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32525     vkStream->write((VkFragmentShadingRateTypeNV*)&forMarshaling->shadingRateType,
32526                     sizeof(VkFragmentShadingRateTypeNV));
32527     vkStream->write((VkFragmentShadingRateNV*)&forMarshaling->shadingRate,
32528                     sizeof(VkFragmentShadingRateNV));
32529     vkStream->write((VkFragmentShadingRateCombinerOpKHR*)forMarshaling->combinerOps,
32530                     2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
32531 }
32532 
unmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkPipelineFragmentShadingRateEnumStateCreateInfoNV * forUnmarshaling)32533 void unmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
32534     VulkanStream* vkStream, VkStructureType rootType,
32535     VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forUnmarshaling) {
32536     (void)rootType;
32537     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32538     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32539         rootType = forUnmarshaling->sType;
32540     }
32541     size_t pNext_size;
32542     pNext_size = vkStream->getBe32();
32543     forUnmarshaling->pNext = nullptr;
32544     if (pNext_size) {
32545         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32546         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32547         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32548         vkStream->alloc((void**)&forUnmarshaling->pNext,
32549                         goldfish_vk_extension_struct_size_with_stream_features(
32550                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32551         *(VkStructureType*)forUnmarshaling->pNext = extType;
32552         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32553     }
32554     vkStream->read((VkFragmentShadingRateTypeNV*)&forUnmarshaling->shadingRateType,
32555                    sizeof(VkFragmentShadingRateTypeNV));
32556     vkStream->read((VkFragmentShadingRateNV*)&forUnmarshaling->shadingRate,
32557                    sizeof(VkFragmentShadingRateNV));
32558     vkStream->read((VkFragmentShadingRateCombinerOpKHR*)forUnmarshaling->combinerOps,
32559                    2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
32560 }
32561 
32562 #endif
32563 #ifdef VK_NV_ray_tracing_motion_blur
marshal_VkDeviceOrHostAddressConstKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceOrHostAddressConstKHR * forMarshaling)32564 void marshal_VkDeviceOrHostAddressConstKHR(VulkanStream* vkStream, VkStructureType rootType,
32565                                            const VkDeviceOrHostAddressConstKHR* forMarshaling) {
32566     (void)rootType;
32567     vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
32568 }
32569 
unmarshal_VkDeviceOrHostAddressConstKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceOrHostAddressConstKHR * forUnmarshaling)32570 void unmarshal_VkDeviceOrHostAddressConstKHR(VulkanStream* vkStream, VkStructureType rootType,
32571                                              VkDeviceOrHostAddressConstKHR* forUnmarshaling) {
32572     (void)rootType;
32573     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
32574 }
32575 
marshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureGeometryMotionTrianglesDataNV * forMarshaling)32576 void marshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
32577     VulkanStream* vkStream, VkStructureType rootType,
32578     const VkAccelerationStructureGeometryMotionTrianglesDataNV* forMarshaling) {
32579     (void)rootType;
32580     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32581     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32582         rootType = forMarshaling->sType;
32583     }
32584     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32585     marshal_VkDeviceOrHostAddressConstKHR(
32586         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->vertexData));
32587 }
32588 
unmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureGeometryMotionTrianglesDataNV * forUnmarshaling)32589 void unmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
32590     VulkanStream* vkStream, VkStructureType rootType,
32591     VkAccelerationStructureGeometryMotionTrianglesDataNV* forUnmarshaling) {
32592     (void)rootType;
32593     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32594     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32595         rootType = forUnmarshaling->sType;
32596     }
32597     size_t pNext_size;
32598     pNext_size = vkStream->getBe32();
32599     forUnmarshaling->pNext = nullptr;
32600     if (pNext_size) {
32601         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32602         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32603         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32604         vkStream->alloc((void**)&forUnmarshaling->pNext,
32605                         goldfish_vk_extension_struct_size_with_stream_features(
32606                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32607         *(VkStructureType*)forUnmarshaling->pNext = extType;
32608         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32609     }
32610     unmarshal_VkDeviceOrHostAddressConstKHR(
32611         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->vertexData));
32612 }
32613 
marshal_VkAccelerationStructureMotionInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureMotionInfoNV * forMarshaling)32614 void marshal_VkAccelerationStructureMotionInfoNV(
32615     VulkanStream* vkStream, VkStructureType rootType,
32616     const VkAccelerationStructureMotionInfoNV* forMarshaling) {
32617     (void)rootType;
32618     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32619     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32620         rootType = forMarshaling->sType;
32621     }
32622     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32623     vkStream->write((uint32_t*)&forMarshaling->maxInstances, sizeof(uint32_t));
32624     vkStream->write((VkAccelerationStructureMotionInfoFlagsNV*)&forMarshaling->flags,
32625                     sizeof(VkAccelerationStructureMotionInfoFlagsNV));
32626 }
32627 
unmarshal_VkAccelerationStructureMotionInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureMotionInfoNV * forUnmarshaling)32628 void unmarshal_VkAccelerationStructureMotionInfoNV(
32629     VulkanStream* vkStream, VkStructureType rootType,
32630     VkAccelerationStructureMotionInfoNV* forUnmarshaling) {
32631     (void)rootType;
32632     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32633     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32634         rootType = forUnmarshaling->sType;
32635     }
32636     size_t pNext_size;
32637     pNext_size = vkStream->getBe32();
32638     forUnmarshaling->pNext = nullptr;
32639     if (pNext_size) {
32640         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32641         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32642         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32643         vkStream->alloc((void**)&forUnmarshaling->pNext,
32644                         goldfish_vk_extension_struct_size_with_stream_features(
32645                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32646         *(VkStructureType*)forUnmarshaling->pNext = extType;
32647         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32648     }
32649     vkStream->read((uint32_t*)&forUnmarshaling->maxInstances, sizeof(uint32_t));
32650     vkStream->read((VkAccelerationStructureMotionInfoFlagsNV*)&forUnmarshaling->flags,
32651                    sizeof(VkAccelerationStructureMotionInfoFlagsNV));
32652 }
32653 
marshal_VkAccelerationStructureMatrixMotionInstanceNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureMatrixMotionInstanceNV * forMarshaling)32654 void marshal_VkAccelerationStructureMatrixMotionInstanceNV(
32655     VulkanStream* vkStream, VkStructureType rootType,
32656     const VkAccelerationStructureMatrixMotionInstanceNV* forMarshaling) {
32657     (void)rootType;
32658 
32659     typedef struct VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields {
32660         VkTransformMatrixKHR transformT0;
32661         VkTransformMatrixKHR transformT1;
32662         uint32_t dwords[2];
32663         uint64_t accelerationStructureReference;
32664     } VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields;
32665 
32666     const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* forMarshaling_new =
32667         (const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)(forMarshaling);
32668     marshal_VkTransformMatrixKHR(vkStream, rootType,
32669                                  (VkTransformMatrixKHR*)(&forMarshaling_new->transformT0));
32670     marshal_VkTransformMatrixKHR(vkStream, rootType,
32671                                  (VkTransformMatrixKHR*)(&forMarshaling_new->transformT1));
32672     for (uint32_t i = 0; i < 2; i++) {
32673         vkStream->write((uint32_t*)&(forMarshaling_new->dwords[i]), sizeof(uint32_t));
32674     }
32675     vkStream->write((uint64_t*)&forMarshaling_new->accelerationStructureReference,
32676                     sizeof(uint64_t));
32677 }
32678 
unmarshal_VkAccelerationStructureMatrixMotionInstanceNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureMatrixMotionInstanceNV * forUnmarshaling)32679 void unmarshal_VkAccelerationStructureMatrixMotionInstanceNV(
32680     VulkanStream* vkStream, VkStructureType rootType,
32681     VkAccelerationStructureMatrixMotionInstanceNV* forUnmarshaling) {
32682     (void)rootType;
32683 
32684     typedef struct VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields {
32685         VkTransformMatrixKHR transformT0;
32686         VkTransformMatrixKHR transformT1;
32687         uint32_t dwords[2];
32688         uint64_t accelerationStructureReference;
32689     } VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields;
32690 
32691     VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* forUnmarshaling_new =
32692         (VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)(forUnmarshaling);
32693     unmarshal_VkTransformMatrixKHR(vkStream, rootType,
32694                                    (VkTransformMatrixKHR*)(&forUnmarshaling_new->transformT0));
32695     unmarshal_VkTransformMatrixKHR(vkStream, rootType,
32696                                    (VkTransformMatrixKHR*)(&forUnmarshaling_new->transformT1));
32697     for (uint32_t i = 0; i < 2; i++) {
32698         vkStream->read((uint32_t*)&(forUnmarshaling_new->dwords[i]), sizeof(uint32_t));
32699     }
32700     vkStream->read((uint64_t*)&forUnmarshaling_new->accelerationStructureReference,
32701                    sizeof(uint64_t));
32702 }
32703 
marshal_VkSRTDataNV(VulkanStream * vkStream,VkStructureType rootType,const VkSRTDataNV * forMarshaling)32704 void marshal_VkSRTDataNV(VulkanStream* vkStream, VkStructureType rootType,
32705                          const VkSRTDataNV* forMarshaling) {
32706     (void)rootType;
32707     vkStream->write((float*)&forMarshaling->sx, sizeof(float));
32708     vkStream->write((float*)&forMarshaling->a, sizeof(float));
32709     vkStream->write((float*)&forMarshaling->b, sizeof(float));
32710     vkStream->write((float*)&forMarshaling->pvx, sizeof(float));
32711     vkStream->write((float*)&forMarshaling->sy, sizeof(float));
32712     vkStream->write((float*)&forMarshaling->c, sizeof(float));
32713     vkStream->write((float*)&forMarshaling->pvy, sizeof(float));
32714     vkStream->write((float*)&forMarshaling->sz, sizeof(float));
32715     vkStream->write((float*)&forMarshaling->pvz, sizeof(float));
32716     vkStream->write((float*)&forMarshaling->qx, sizeof(float));
32717     vkStream->write((float*)&forMarshaling->qy, sizeof(float));
32718     vkStream->write((float*)&forMarshaling->qz, sizeof(float));
32719     vkStream->write((float*)&forMarshaling->qw, sizeof(float));
32720     vkStream->write((float*)&forMarshaling->tx, sizeof(float));
32721     vkStream->write((float*)&forMarshaling->ty, sizeof(float));
32722     vkStream->write((float*)&forMarshaling->tz, sizeof(float));
32723 }
32724 
unmarshal_VkSRTDataNV(VulkanStream * vkStream,VkStructureType rootType,VkSRTDataNV * forUnmarshaling)32725 void unmarshal_VkSRTDataNV(VulkanStream* vkStream, VkStructureType rootType,
32726                            VkSRTDataNV* forUnmarshaling) {
32727     (void)rootType;
32728     vkStream->read((float*)&forUnmarshaling->sx, sizeof(float));
32729     vkStream->read((float*)&forUnmarshaling->a, sizeof(float));
32730     vkStream->read((float*)&forUnmarshaling->b, sizeof(float));
32731     vkStream->read((float*)&forUnmarshaling->pvx, sizeof(float));
32732     vkStream->read((float*)&forUnmarshaling->sy, sizeof(float));
32733     vkStream->read((float*)&forUnmarshaling->c, sizeof(float));
32734     vkStream->read((float*)&forUnmarshaling->pvy, sizeof(float));
32735     vkStream->read((float*)&forUnmarshaling->sz, sizeof(float));
32736     vkStream->read((float*)&forUnmarshaling->pvz, sizeof(float));
32737     vkStream->read((float*)&forUnmarshaling->qx, sizeof(float));
32738     vkStream->read((float*)&forUnmarshaling->qy, sizeof(float));
32739     vkStream->read((float*)&forUnmarshaling->qz, sizeof(float));
32740     vkStream->read((float*)&forUnmarshaling->qw, sizeof(float));
32741     vkStream->read((float*)&forUnmarshaling->tx, sizeof(float));
32742     vkStream->read((float*)&forUnmarshaling->ty, sizeof(float));
32743     vkStream->read((float*)&forUnmarshaling->tz, sizeof(float));
32744 }
32745 
marshal_VkAccelerationStructureSRTMotionInstanceNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureSRTMotionInstanceNV * forMarshaling)32746 void marshal_VkAccelerationStructureSRTMotionInstanceNV(
32747     VulkanStream* vkStream, VkStructureType rootType,
32748     const VkAccelerationStructureSRTMotionInstanceNV* forMarshaling) {
32749     (void)rootType;
32750 
32751     typedef struct VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields {
32752         VkSRTDataNV transformT0;
32753         VkSRTDataNV transformT1;
32754         uint32_t dwords[2];
32755         uint64_t accelerationStructureReference;
32756     } VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields;
32757 
32758     const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* forMarshaling_new =
32759         (const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)(forMarshaling);
32760     marshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forMarshaling_new->transformT0));
32761     marshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forMarshaling_new->transformT1));
32762     for (uint32_t i = 0; i < 2; i++) {
32763         vkStream->write((uint32_t*)&(forMarshaling_new->dwords[i]), sizeof(uint32_t));
32764     }
32765     vkStream->write((uint64_t*)&forMarshaling_new->accelerationStructureReference,
32766                     sizeof(uint64_t));
32767 }
32768 
unmarshal_VkAccelerationStructureSRTMotionInstanceNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureSRTMotionInstanceNV * forUnmarshaling)32769 void unmarshal_VkAccelerationStructureSRTMotionInstanceNV(
32770     VulkanStream* vkStream, VkStructureType rootType,
32771     VkAccelerationStructureSRTMotionInstanceNV* forUnmarshaling) {
32772     (void)rootType;
32773 
32774     typedef struct VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields {
32775         VkSRTDataNV transformT0;
32776         VkSRTDataNV transformT1;
32777         uint32_t dwords[2];
32778         uint64_t accelerationStructureReference;
32779     } VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields;
32780 
32781     VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* forUnmarshaling_new =
32782         (VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)(forUnmarshaling);
32783     unmarshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forUnmarshaling_new->transformT0));
32784     unmarshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forUnmarshaling_new->transformT1));
32785     for (uint32_t i = 0; i < 2; i++) {
32786         vkStream->read((uint32_t*)&(forUnmarshaling_new->dwords[i]), sizeof(uint32_t));
32787     }
32788     vkStream->read((uint64_t*)&forUnmarshaling_new->accelerationStructureReference,
32789                    sizeof(uint64_t));
32790 }
32791 
marshal_VkAccelerationStructureMotionInstanceDataNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureMotionInstanceDataNV * forMarshaling)32792 void marshal_VkAccelerationStructureMotionInstanceDataNV(
32793     VulkanStream* vkStream, VkStructureType rootType,
32794     const VkAccelerationStructureMotionInstanceDataNV* forMarshaling) {
32795     (void)rootType;
32796     marshal_VkAccelerationStructureInstanceKHR(
32797         vkStream, rootType, (VkAccelerationStructureInstanceKHR*)(&forMarshaling->staticInstance));
32798 }
32799 
unmarshal_VkAccelerationStructureMotionInstanceDataNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureMotionInstanceDataNV * forUnmarshaling)32800 void unmarshal_VkAccelerationStructureMotionInstanceDataNV(
32801     VulkanStream* vkStream, VkStructureType rootType,
32802     VkAccelerationStructureMotionInstanceDataNV* forUnmarshaling) {
32803     (void)rootType;
32804     unmarshal_VkAccelerationStructureInstanceKHR(
32805         vkStream, rootType,
32806         (VkAccelerationStructureInstanceKHR*)(&forUnmarshaling->staticInstance));
32807 }
32808 
marshal_VkAccelerationStructureMotionInstanceNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureMotionInstanceNV * forMarshaling)32809 void marshal_VkAccelerationStructureMotionInstanceNV(
32810     VulkanStream* vkStream, VkStructureType rootType,
32811     const VkAccelerationStructureMotionInstanceNV* forMarshaling) {
32812     (void)rootType;
32813     vkStream->write((VkAccelerationStructureMotionInstanceTypeNV*)&forMarshaling->type,
32814                     sizeof(VkAccelerationStructureMotionInstanceTypeNV));
32815     vkStream->write((VkAccelerationStructureMotionInstanceFlagsNV*)&forMarshaling->flags,
32816                     sizeof(VkAccelerationStructureMotionInstanceFlagsNV));
32817     marshal_VkAccelerationStructureMotionInstanceDataNV(
32818         vkStream, rootType, (VkAccelerationStructureMotionInstanceDataNV*)(&forMarshaling->data));
32819 }
32820 
unmarshal_VkAccelerationStructureMotionInstanceNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureMotionInstanceNV * forUnmarshaling)32821 void unmarshal_VkAccelerationStructureMotionInstanceNV(
32822     VulkanStream* vkStream, VkStructureType rootType,
32823     VkAccelerationStructureMotionInstanceNV* forUnmarshaling) {
32824     (void)rootType;
32825     vkStream->read((VkAccelerationStructureMotionInstanceTypeNV*)&forUnmarshaling->type,
32826                    sizeof(VkAccelerationStructureMotionInstanceTypeNV));
32827     vkStream->read((VkAccelerationStructureMotionInstanceFlagsNV*)&forUnmarshaling->flags,
32828                    sizeof(VkAccelerationStructureMotionInstanceFlagsNV));
32829     unmarshal_VkAccelerationStructureMotionInstanceDataNV(
32830         vkStream, rootType, (VkAccelerationStructureMotionInstanceDataNV*)(&forUnmarshaling->data));
32831 }
32832 
marshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV * forMarshaling)32833 void marshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
32834     VulkanStream* vkStream, VkStructureType rootType,
32835     const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forMarshaling) {
32836     (void)rootType;
32837     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32838     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32839         rootType = forMarshaling->sType;
32840     }
32841     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32842     vkStream->write((VkBool32*)&forMarshaling->rayTracingMotionBlur, sizeof(VkBool32));
32843     vkStream->write((VkBool32*)&forMarshaling->rayTracingMotionBlurPipelineTraceRaysIndirect,
32844                     sizeof(VkBool32));
32845 }
32846 
unmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingMotionBlurFeaturesNV * forUnmarshaling)32847 void unmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
32848     VulkanStream* vkStream, VkStructureType rootType,
32849     VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forUnmarshaling) {
32850     (void)rootType;
32851     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32852     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32853         rootType = forUnmarshaling->sType;
32854     }
32855     size_t pNext_size;
32856     pNext_size = vkStream->getBe32();
32857     forUnmarshaling->pNext = nullptr;
32858     if (pNext_size) {
32859         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32860         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32861         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32862         vkStream->alloc((void**)&forUnmarshaling->pNext,
32863                         goldfish_vk_extension_struct_size_with_stream_features(
32864                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32865         *(VkStructureType*)forUnmarshaling->pNext = extType;
32866         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32867     }
32868     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingMotionBlur, sizeof(VkBool32));
32869     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingMotionBlurPipelineTraceRaysIndirect,
32870                    sizeof(VkBool32));
32871 }
32872 
32873 #endif
32874 #ifdef VK_EXT_ycbcr_2plane_444_formats
marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forMarshaling)32875 void marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
32876     VulkanStream* vkStream, VkStructureType rootType,
32877     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling) {
32878     (void)rootType;
32879     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32881         rootType = forMarshaling->sType;
32882     }
32883     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32884     vkStream->write((VkBool32*)&forMarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
32885 }
32886 
unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forUnmarshaling)32887 void unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
32888     VulkanStream* vkStream, VkStructureType rootType,
32889     VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forUnmarshaling) {
32890     (void)rootType;
32891     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32892     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32893         rootType = forUnmarshaling->sType;
32894     }
32895     size_t pNext_size;
32896     pNext_size = vkStream->getBe32();
32897     forUnmarshaling->pNext = nullptr;
32898     if (pNext_size) {
32899         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32900         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32901         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32902         vkStream->alloc((void**)&forUnmarshaling->pNext,
32903                         goldfish_vk_extension_struct_size_with_stream_features(
32904                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32905         *(VkStructureType*)forUnmarshaling->pNext = extType;
32906         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32907     }
32908     vkStream->read((VkBool32*)&forUnmarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
32909 }
32910 
32911 #endif
32912 #ifdef VK_EXT_fragment_density_map2
marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT * forMarshaling)32913 void marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
32914     VulkanStream* vkStream, VkStructureType rootType,
32915     const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forMarshaling) {
32916     (void)rootType;
32917     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32918     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32919         rootType = forMarshaling->sType;
32920     }
32921     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32922     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapDeferred, sizeof(VkBool32));
32923 }
32924 
unmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMap2FeaturesEXT * forUnmarshaling)32925 void unmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
32926     VulkanStream* vkStream, VkStructureType rootType,
32927     VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forUnmarshaling) {
32928     (void)rootType;
32929     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32930     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32931         rootType = forUnmarshaling->sType;
32932     }
32933     size_t pNext_size;
32934     pNext_size = vkStream->getBe32();
32935     forUnmarshaling->pNext = nullptr;
32936     if (pNext_size) {
32937         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32938         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32939         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32940         vkStream->alloc((void**)&forUnmarshaling->pNext,
32941                         goldfish_vk_extension_struct_size_with_stream_features(
32942                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32943         *(VkStructureType*)forUnmarshaling->pNext = extType;
32944         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32945     }
32946     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapDeferred, sizeof(VkBool32));
32947 }
32948 
marshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT * forMarshaling)32949 void marshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
32950     VulkanStream* vkStream, VkStructureType rootType,
32951     const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forMarshaling) {
32952     (void)rootType;
32953     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
32954     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32955         rootType = forMarshaling->sType;
32956     }
32957     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
32958     vkStream->write((VkBool32*)&forMarshaling->subsampledLoads, sizeof(VkBool32));
32959     vkStream->write((VkBool32*)&forMarshaling->subsampledCoarseReconstructionEarlyAccess,
32960                     sizeof(VkBool32));
32961     vkStream->write((uint32_t*)&forMarshaling->maxSubsampledArrayLayers, sizeof(uint32_t));
32962     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSubsampledSamplers,
32963                     sizeof(uint32_t));
32964 }
32965 
unmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMap2PropertiesEXT * forUnmarshaling)32966 void unmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
32967     VulkanStream* vkStream, VkStructureType rootType,
32968     VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forUnmarshaling) {
32969     (void)rootType;
32970     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
32971     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
32972         rootType = forUnmarshaling->sType;
32973     }
32974     size_t pNext_size;
32975     pNext_size = vkStream->getBe32();
32976     forUnmarshaling->pNext = nullptr;
32977     if (pNext_size) {
32978         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
32979         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
32980         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
32981         vkStream->alloc((void**)&forUnmarshaling->pNext,
32982                         goldfish_vk_extension_struct_size_with_stream_features(
32983                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
32984         *(VkStructureType*)forUnmarshaling->pNext = extType;
32985         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
32986     }
32987     vkStream->read((VkBool32*)&forUnmarshaling->subsampledLoads, sizeof(VkBool32));
32988     vkStream->read((VkBool32*)&forUnmarshaling->subsampledCoarseReconstructionEarlyAccess,
32989                    sizeof(VkBool32));
32990     vkStream->read((uint32_t*)&forUnmarshaling->maxSubsampledArrayLayers, sizeof(uint32_t));
32991     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSubsampledSamplers,
32992                    sizeof(uint32_t));
32993 }
32994 
32995 #endif
32996 #ifdef VK_QCOM_rotated_copy_commands
marshal_VkCopyCommandTransformInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkCopyCommandTransformInfoQCOM * forMarshaling)32997 void marshal_VkCopyCommandTransformInfoQCOM(VulkanStream* vkStream, VkStructureType rootType,
32998                                             const VkCopyCommandTransformInfoQCOM* forMarshaling) {
32999     (void)rootType;
33000     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33001     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33002         rootType = forMarshaling->sType;
33003     }
33004     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33005     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform,
33006                     sizeof(VkSurfaceTransformFlagBitsKHR));
33007 }
33008 
unmarshal_VkCopyCommandTransformInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,VkCopyCommandTransformInfoQCOM * forUnmarshaling)33009 void unmarshal_VkCopyCommandTransformInfoQCOM(VulkanStream* vkStream, VkStructureType rootType,
33010                                               VkCopyCommandTransformInfoQCOM* forUnmarshaling) {
33011     (void)rootType;
33012     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33014         rootType = forUnmarshaling->sType;
33015     }
33016     size_t pNext_size;
33017     pNext_size = vkStream->getBe32();
33018     forUnmarshaling->pNext = nullptr;
33019     if (pNext_size) {
33020         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33021         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33022         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33023         vkStream->alloc((void**)&forUnmarshaling->pNext,
33024                         goldfish_vk_extension_struct_size_with_stream_features(
33025                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33026         *(VkStructureType*)forUnmarshaling->pNext = extType;
33027         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33028     }
33029     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform,
33030                    sizeof(VkSurfaceTransformFlagBitsKHR));
33031 }
33032 
33033 #endif
33034 #ifdef VK_EXT_image_robustness
33035 #endif
33036 #ifdef VK_EXT_image_compression_control
marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlFeaturesEXT * forMarshaling)33037 void marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
33038     VulkanStream* vkStream, VkStructureType rootType,
33039     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* forMarshaling) {
33040     (void)rootType;
33041     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33042     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33043         rootType = forMarshaling->sType;
33044     }
33045     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33046     vkStream->write((VkBool32*)&forMarshaling->imageCompressionControl, sizeof(VkBool32));
33047 }
33048 
unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlFeaturesEXT * forUnmarshaling)33049 void unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
33050     VulkanStream* vkStream, VkStructureType rootType,
33051     VkPhysicalDeviceImageCompressionControlFeaturesEXT* forUnmarshaling) {
33052     (void)rootType;
33053     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33054     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33055         rootType = forUnmarshaling->sType;
33056     }
33057     size_t pNext_size;
33058     pNext_size = vkStream->getBe32();
33059     forUnmarshaling->pNext = nullptr;
33060     if (pNext_size) {
33061         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33062         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33063         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33064         vkStream->alloc((void**)&forUnmarshaling->pNext,
33065                         goldfish_vk_extension_struct_size_with_stream_features(
33066                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33067         *(VkStructureType*)forUnmarshaling->pNext = extType;
33068         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33069     }
33070     vkStream->read((VkBool32*)&forUnmarshaling->imageCompressionControl, sizeof(VkBool32));
33071 }
33072 
marshal_VkImageCompressionControlEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageCompressionControlEXT * forMarshaling)33073 void marshal_VkImageCompressionControlEXT(VulkanStream* vkStream, VkStructureType rootType,
33074                                           const VkImageCompressionControlEXT* forMarshaling) {
33075     (void)rootType;
33076     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33077     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33078         rootType = forMarshaling->sType;
33079     }
33080     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33081     vkStream->write((VkImageCompressionFlagsEXT*)&forMarshaling->flags,
33082                     sizeof(VkImageCompressionFlagsEXT));
33083     vkStream->write((uint32_t*)&forMarshaling->compressionControlPlaneCount, sizeof(uint32_t));
33084     // WARNING PTR CHECK
33085     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pFixedRateFlags;
33086     vkStream->putBe64(cgen_var_0);
33087     if (forMarshaling->pFixedRateFlags) {
33088         vkStream->write((VkImageCompressionFixedRateFlagsEXT*)forMarshaling->pFixedRateFlags,
33089                         forMarshaling->compressionControlPlaneCount *
33090                             sizeof(VkImageCompressionFixedRateFlagsEXT));
33091     }
33092 }
33093 
unmarshal_VkImageCompressionControlEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageCompressionControlEXT * forUnmarshaling)33094 void unmarshal_VkImageCompressionControlEXT(VulkanStream* vkStream, VkStructureType rootType,
33095                                             VkImageCompressionControlEXT* forUnmarshaling) {
33096     (void)rootType;
33097     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33098     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33099         rootType = forUnmarshaling->sType;
33100     }
33101     size_t pNext_size;
33102     pNext_size = vkStream->getBe32();
33103     forUnmarshaling->pNext = nullptr;
33104     if (pNext_size) {
33105         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33106         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33107         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33108         vkStream->alloc((void**)&forUnmarshaling->pNext,
33109                         goldfish_vk_extension_struct_size_with_stream_features(
33110                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33111         *(VkStructureType*)forUnmarshaling->pNext = extType;
33112         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33113     }
33114     vkStream->read((VkImageCompressionFlagsEXT*)&forUnmarshaling->flags,
33115                    sizeof(VkImageCompressionFlagsEXT));
33116     vkStream->read((uint32_t*)&forUnmarshaling->compressionControlPlaneCount, sizeof(uint32_t));
33117     // WARNING PTR CHECK
33118     forUnmarshaling->pFixedRateFlags =
33119         (VkImageCompressionFixedRateFlagsEXT*)(uintptr_t)vkStream->getBe64();
33120     if (forUnmarshaling->pFixedRateFlags) {
33121         vkStream->alloc((void**)&forUnmarshaling->pFixedRateFlags,
33122                         forUnmarshaling->compressionControlPlaneCount *
33123                             sizeof(VkImageCompressionFixedRateFlagsEXT));
33124         vkStream->read((VkImageCompressionFixedRateFlagsEXT*)forUnmarshaling->pFixedRateFlags,
33125                        forUnmarshaling->compressionControlPlaneCount *
33126                            sizeof(VkImageCompressionFixedRateFlagsEXT));
33127     }
33128 }
33129 
marshal_VkSubresourceLayout2EXT(VulkanStream * vkStream,VkStructureType rootType,const VkSubresourceLayout2EXT * forMarshaling)33130 void marshal_VkSubresourceLayout2EXT(VulkanStream* vkStream, VkStructureType rootType,
33131                                      const VkSubresourceLayout2EXT* forMarshaling) {
33132     (void)rootType;
33133     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33134     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33135         rootType = forMarshaling->sType;
33136     }
33137     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33138     marshal_VkSubresourceLayout(vkStream, rootType,
33139                                 (VkSubresourceLayout*)(&forMarshaling->subresourceLayout));
33140 }
33141 
unmarshal_VkSubresourceLayout2EXT(VulkanStream * vkStream,VkStructureType rootType,VkSubresourceLayout2EXT * forUnmarshaling)33142 void unmarshal_VkSubresourceLayout2EXT(VulkanStream* vkStream, VkStructureType rootType,
33143                                        VkSubresourceLayout2EXT* forUnmarshaling) {
33144     (void)rootType;
33145     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33146     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33147         rootType = forUnmarshaling->sType;
33148     }
33149     size_t pNext_size;
33150     pNext_size = vkStream->getBe32();
33151     forUnmarshaling->pNext = nullptr;
33152     if (pNext_size) {
33153         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33154         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33155         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33156         vkStream->alloc((void**)&forUnmarshaling->pNext,
33157                         goldfish_vk_extension_struct_size_with_stream_features(
33158                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33159         *(VkStructureType*)forUnmarshaling->pNext = extType;
33160         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33161     }
33162     unmarshal_VkSubresourceLayout(vkStream, rootType,
33163                                   (VkSubresourceLayout*)(&forUnmarshaling->subresourceLayout));
33164 }
33165 
marshal_VkImageSubresource2EXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageSubresource2EXT * forMarshaling)33166 void marshal_VkImageSubresource2EXT(VulkanStream* vkStream, VkStructureType rootType,
33167                                     const VkImageSubresource2EXT* forMarshaling) {
33168     (void)rootType;
33169     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33170     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33171         rootType = forMarshaling->sType;
33172     }
33173     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33174     marshal_VkImageSubresource(vkStream, rootType,
33175                                (VkImageSubresource*)(&forMarshaling->imageSubresource));
33176 }
33177 
unmarshal_VkImageSubresource2EXT(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresource2EXT * forUnmarshaling)33178 void unmarshal_VkImageSubresource2EXT(VulkanStream* vkStream, VkStructureType rootType,
33179                                       VkImageSubresource2EXT* forUnmarshaling) {
33180     (void)rootType;
33181     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33182     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33183         rootType = forUnmarshaling->sType;
33184     }
33185     size_t pNext_size;
33186     pNext_size = vkStream->getBe32();
33187     forUnmarshaling->pNext = nullptr;
33188     if (pNext_size) {
33189         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33190         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33191         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33192         vkStream->alloc((void**)&forUnmarshaling->pNext,
33193                         goldfish_vk_extension_struct_size_with_stream_features(
33194                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33195         *(VkStructureType*)forUnmarshaling->pNext = extType;
33196         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33197     }
33198     unmarshal_VkImageSubresource(vkStream, rootType,
33199                                  (VkImageSubresource*)(&forUnmarshaling->imageSubresource));
33200 }
33201 
marshal_VkImageCompressionPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageCompressionPropertiesEXT * forMarshaling)33202 void marshal_VkImageCompressionPropertiesEXT(VulkanStream* vkStream, VkStructureType rootType,
33203                                              const VkImageCompressionPropertiesEXT* forMarshaling) {
33204     (void)rootType;
33205     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33206     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33207         rootType = forMarshaling->sType;
33208     }
33209     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33210     vkStream->write((VkImageCompressionFlagsEXT*)&forMarshaling->imageCompressionFlags,
33211                     sizeof(VkImageCompressionFlagsEXT));
33212     vkStream->write(
33213         (VkImageCompressionFixedRateFlagsEXT*)&forMarshaling->imageCompressionFixedRateFlags,
33214         sizeof(VkImageCompressionFixedRateFlagsEXT));
33215 }
33216 
unmarshal_VkImageCompressionPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageCompressionPropertiesEXT * forUnmarshaling)33217 void unmarshal_VkImageCompressionPropertiesEXT(VulkanStream* vkStream, VkStructureType rootType,
33218                                                VkImageCompressionPropertiesEXT* forUnmarshaling) {
33219     (void)rootType;
33220     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33221     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33222         rootType = forUnmarshaling->sType;
33223     }
33224     size_t pNext_size;
33225     pNext_size = vkStream->getBe32();
33226     forUnmarshaling->pNext = nullptr;
33227     if (pNext_size) {
33228         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33229         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33230         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33231         vkStream->alloc((void**)&forUnmarshaling->pNext,
33232                         goldfish_vk_extension_struct_size_with_stream_features(
33233                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33234         *(VkStructureType*)forUnmarshaling->pNext = extType;
33235         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33236     }
33237     vkStream->read((VkImageCompressionFlagsEXT*)&forUnmarshaling->imageCompressionFlags,
33238                    sizeof(VkImageCompressionFlagsEXT));
33239     vkStream->read(
33240         (VkImageCompressionFixedRateFlagsEXT*)&forUnmarshaling->imageCompressionFixedRateFlags,
33241         sizeof(VkImageCompressionFixedRateFlagsEXT));
33242 }
33243 
33244 #endif
33245 #ifdef VK_EXT_attachment_feedback_loop_layout
marshal_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT * forMarshaling)33246 void marshal_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(
33247     VulkanStream* vkStream, VkStructureType rootType,
33248     const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* forMarshaling) {
33249     (void)rootType;
33250     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33251     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33252         rootType = forMarshaling->sType;
33253     }
33254     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33255     vkStream->write((VkBool32*)&forMarshaling->attachmentFeedbackLoopLayout, sizeof(VkBool32));
33256 }
33257 
unmarshal_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT * forUnmarshaling)33258 void unmarshal_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(
33259     VulkanStream* vkStream, VkStructureType rootType,
33260     VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* forUnmarshaling) {
33261     (void)rootType;
33262     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33263     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33264         rootType = forUnmarshaling->sType;
33265     }
33266     size_t pNext_size;
33267     pNext_size = vkStream->getBe32();
33268     forUnmarshaling->pNext = nullptr;
33269     if (pNext_size) {
33270         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33271         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33272         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33273         vkStream->alloc((void**)&forUnmarshaling->pNext,
33274                         goldfish_vk_extension_struct_size_with_stream_features(
33275                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33276         *(VkStructureType*)forUnmarshaling->pNext = extType;
33277         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33278     }
33279     vkStream->read((VkBool32*)&forUnmarshaling->attachmentFeedbackLoopLayout, sizeof(VkBool32));
33280 }
33281 
33282 #endif
33283 #ifdef VK_EXT_4444_formats
marshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevice4444FormatsFeaturesEXT * forMarshaling)33284 void marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
33285     VulkanStream* vkStream, VkStructureType rootType,
33286     const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling) {
33287     (void)rootType;
33288     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33289     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33290         rootType = forMarshaling->sType;
33291     }
33292     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33293     vkStream->write((VkBool32*)&forMarshaling->formatA4R4G4B4, sizeof(VkBool32));
33294     vkStream->write((VkBool32*)&forMarshaling->formatA4B4G4R4, sizeof(VkBool32));
33295 }
33296 
unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevice4444FormatsFeaturesEXT * forUnmarshaling)33297 void unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
33298     VulkanStream* vkStream, VkStructureType rootType,
33299     VkPhysicalDevice4444FormatsFeaturesEXT* forUnmarshaling) {
33300     (void)rootType;
33301     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33302     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33303         rootType = forUnmarshaling->sType;
33304     }
33305     size_t pNext_size;
33306     pNext_size = vkStream->getBe32();
33307     forUnmarshaling->pNext = nullptr;
33308     if (pNext_size) {
33309         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33310         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33311         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33312         vkStream->alloc((void**)&forUnmarshaling->pNext,
33313                         goldfish_vk_extension_struct_size_with_stream_features(
33314                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33315         *(VkStructureType*)forUnmarshaling->pNext = extType;
33316         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33317     }
33318     vkStream->read((VkBool32*)&forUnmarshaling->formatA4R4G4B4, sizeof(VkBool32));
33319     vkStream->read((VkBool32*)&forUnmarshaling->formatA4B4G4R4, sizeof(VkBool32));
33320 }
33321 
33322 #endif
33323 #ifdef VK_EXT_device_fault
marshal_VkPhysicalDeviceFaultFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFaultFeaturesEXT * forMarshaling)33324 void marshal_VkPhysicalDeviceFaultFeaturesEXT(
33325     VulkanStream* vkStream, VkStructureType rootType,
33326     const VkPhysicalDeviceFaultFeaturesEXT* forMarshaling) {
33327     (void)rootType;
33328     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33329     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33330         rootType = forMarshaling->sType;
33331     }
33332     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33333     vkStream->write((VkBool32*)&forMarshaling->deviceFault, sizeof(VkBool32));
33334     vkStream->write((VkBool32*)&forMarshaling->deviceFaultVendorBinary, sizeof(VkBool32));
33335 }
33336 
unmarshal_VkPhysicalDeviceFaultFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFaultFeaturesEXT * forUnmarshaling)33337 void unmarshal_VkPhysicalDeviceFaultFeaturesEXT(VulkanStream* vkStream, VkStructureType rootType,
33338                                                 VkPhysicalDeviceFaultFeaturesEXT* forUnmarshaling) {
33339     (void)rootType;
33340     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33341     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33342         rootType = forUnmarshaling->sType;
33343     }
33344     size_t pNext_size;
33345     pNext_size = vkStream->getBe32();
33346     forUnmarshaling->pNext = nullptr;
33347     if (pNext_size) {
33348         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33349         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33350         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33351         vkStream->alloc((void**)&forUnmarshaling->pNext,
33352                         goldfish_vk_extension_struct_size_with_stream_features(
33353                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33354         *(VkStructureType*)forUnmarshaling->pNext = extType;
33355         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33356     }
33357     vkStream->read((VkBool32*)&forUnmarshaling->deviceFault, sizeof(VkBool32));
33358     vkStream->read((VkBool32*)&forUnmarshaling->deviceFaultVendorBinary, sizeof(VkBool32));
33359 }
33360 
marshal_VkDeviceFaultCountsEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceFaultCountsEXT * forMarshaling)33361 void marshal_VkDeviceFaultCountsEXT(VulkanStream* vkStream, VkStructureType rootType,
33362                                     const VkDeviceFaultCountsEXT* forMarshaling) {
33363     (void)rootType;
33364     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33365     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33366         rootType = forMarshaling->sType;
33367     }
33368     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33369     vkStream->write((uint32_t*)&forMarshaling->addressInfoCount, sizeof(uint32_t));
33370     vkStream->write((uint32_t*)&forMarshaling->vendorInfoCount, sizeof(uint32_t));
33371     vkStream->write((VkDeviceSize*)&forMarshaling->vendorBinarySize, sizeof(VkDeviceSize));
33372 }
33373 
unmarshal_VkDeviceFaultCountsEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceFaultCountsEXT * forUnmarshaling)33374 void unmarshal_VkDeviceFaultCountsEXT(VulkanStream* vkStream, VkStructureType rootType,
33375                                       VkDeviceFaultCountsEXT* forUnmarshaling) {
33376     (void)rootType;
33377     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33378     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33379         rootType = forUnmarshaling->sType;
33380     }
33381     size_t pNext_size;
33382     pNext_size = vkStream->getBe32();
33383     forUnmarshaling->pNext = nullptr;
33384     if (pNext_size) {
33385         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33386         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33387         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33388         vkStream->alloc((void**)&forUnmarshaling->pNext,
33389                         goldfish_vk_extension_struct_size_with_stream_features(
33390                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33391         *(VkStructureType*)forUnmarshaling->pNext = extType;
33392         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33393     }
33394     vkStream->read((uint32_t*)&forUnmarshaling->addressInfoCount, sizeof(uint32_t));
33395     vkStream->read((uint32_t*)&forUnmarshaling->vendorInfoCount, sizeof(uint32_t));
33396     vkStream->read((VkDeviceSize*)&forUnmarshaling->vendorBinarySize, sizeof(VkDeviceSize));
33397 }
33398 
marshal_VkDeviceFaultAddressInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceFaultAddressInfoEXT * forMarshaling)33399 void marshal_VkDeviceFaultAddressInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33400                                          const VkDeviceFaultAddressInfoEXT* forMarshaling) {
33401     (void)rootType;
33402     vkStream->write((VkDeviceFaultAddressTypeEXT*)&forMarshaling->addressType,
33403                     sizeof(VkDeviceFaultAddressTypeEXT));
33404     vkStream->write((VkDeviceAddress*)&forMarshaling->reportedAddress, sizeof(VkDeviceAddress));
33405     vkStream->write((VkDeviceSize*)&forMarshaling->addressPrecision, sizeof(VkDeviceSize));
33406 }
33407 
unmarshal_VkDeviceFaultAddressInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceFaultAddressInfoEXT * forUnmarshaling)33408 void unmarshal_VkDeviceFaultAddressInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33409                                            VkDeviceFaultAddressInfoEXT* forUnmarshaling) {
33410     (void)rootType;
33411     vkStream->read((VkDeviceFaultAddressTypeEXT*)&forUnmarshaling->addressType,
33412                    sizeof(VkDeviceFaultAddressTypeEXT));
33413     vkStream->read((VkDeviceAddress*)&forUnmarshaling->reportedAddress, sizeof(VkDeviceAddress));
33414     vkStream->read((VkDeviceSize*)&forUnmarshaling->addressPrecision, sizeof(VkDeviceSize));
33415 }
33416 
marshal_VkDeviceFaultVendorInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceFaultVendorInfoEXT * forMarshaling)33417 void marshal_VkDeviceFaultVendorInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33418                                         const VkDeviceFaultVendorInfoEXT* forMarshaling) {
33419     (void)rootType;
33420     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
33421     vkStream->write((uint64_t*)&forMarshaling->vendorFaultCode, sizeof(uint64_t));
33422     vkStream->write((uint64_t*)&forMarshaling->vendorFaultData, sizeof(uint64_t));
33423 }
33424 
unmarshal_VkDeviceFaultVendorInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceFaultVendorInfoEXT * forUnmarshaling)33425 void unmarshal_VkDeviceFaultVendorInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33426                                           VkDeviceFaultVendorInfoEXT* forUnmarshaling) {
33427     (void)rootType;
33428     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
33429     vkStream->read((uint64_t*)&forUnmarshaling->vendorFaultCode, sizeof(uint64_t));
33430     vkStream->read((uint64_t*)&forUnmarshaling->vendorFaultData, sizeof(uint64_t));
33431 }
33432 
marshal_VkDeviceFaultInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceFaultInfoEXT * forMarshaling)33433 void marshal_VkDeviceFaultInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33434                                   const VkDeviceFaultInfoEXT* forMarshaling) {
33435     (void)rootType;
33436     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33437     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33438         rootType = forMarshaling->sType;
33439     }
33440     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33441     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
33442     // WARNING PTR CHECK
33443     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAddressInfos;
33444     vkStream->putBe64(cgen_var_0);
33445     if (forMarshaling->pAddressInfos) {
33446         marshal_VkDeviceFaultAddressInfoEXT(
33447             vkStream, rootType, (VkDeviceFaultAddressInfoEXT*)(forMarshaling->pAddressInfos));
33448     }
33449     // WARNING PTR CHECK
33450     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pVendorInfos;
33451     vkStream->putBe64(cgen_var_1);
33452     if (forMarshaling->pVendorInfos) {
33453         marshal_VkDeviceFaultVendorInfoEXT(
33454             vkStream, rootType, (VkDeviceFaultVendorInfoEXT*)(forMarshaling->pVendorInfos));
33455     }
33456     // WARNING PTR CHECK
33457     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pVendorBinaryData;
33458     vkStream->putBe64(cgen_var_2);
33459     if (forMarshaling->pVendorBinaryData) {
33460         vkStream->write((void*)forMarshaling->pVendorBinaryData, sizeof(uint8_t));
33461     }
33462 }
33463 
unmarshal_VkDeviceFaultInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceFaultInfoEXT * forUnmarshaling)33464 void unmarshal_VkDeviceFaultInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33465                                     VkDeviceFaultInfoEXT* forUnmarshaling) {
33466     (void)rootType;
33467     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33468     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33469         rootType = forUnmarshaling->sType;
33470     }
33471     size_t pNext_size;
33472     pNext_size = vkStream->getBe32();
33473     forUnmarshaling->pNext = nullptr;
33474     if (pNext_size) {
33475         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33476         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33477         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33478         vkStream->alloc((void**)&forUnmarshaling->pNext,
33479                         goldfish_vk_extension_struct_size_with_stream_features(
33480                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33481         *(VkStructureType*)forUnmarshaling->pNext = extType;
33482         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33483     }
33484     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
33485     // WARNING PTR CHECK
33486     forUnmarshaling->pAddressInfos = (VkDeviceFaultAddressInfoEXT*)(uintptr_t)vkStream->getBe64();
33487     if (forUnmarshaling->pAddressInfos) {
33488         vkStream->alloc((void**)&forUnmarshaling->pAddressInfos,
33489                         sizeof(VkDeviceFaultAddressInfoEXT));
33490         unmarshal_VkDeviceFaultAddressInfoEXT(
33491             vkStream, rootType, (VkDeviceFaultAddressInfoEXT*)(forUnmarshaling->pAddressInfos));
33492     }
33493     // WARNING PTR CHECK
33494     forUnmarshaling->pVendorInfos = (VkDeviceFaultVendorInfoEXT*)(uintptr_t)vkStream->getBe64();
33495     if (forUnmarshaling->pVendorInfos) {
33496         vkStream->alloc((void**)&forUnmarshaling->pVendorInfos, sizeof(VkDeviceFaultVendorInfoEXT));
33497         unmarshal_VkDeviceFaultVendorInfoEXT(
33498             vkStream, rootType, (VkDeviceFaultVendorInfoEXT*)(forUnmarshaling->pVendorInfos));
33499     }
33500     // WARNING PTR CHECK
33501     forUnmarshaling->pVendorBinaryData = (void*)(uintptr_t)vkStream->getBe64();
33502     if (forUnmarshaling->pVendorBinaryData) {
33503         vkStream->alloc((void**)&forUnmarshaling->pVendorBinaryData, sizeof(uint8_t));
33504         vkStream->read((void*)forUnmarshaling->pVendorBinaryData, sizeof(uint8_t));
33505     }
33506 }
33507 
marshal_VkDeviceFaultVendorBinaryHeaderVersionOneEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceFaultVendorBinaryHeaderVersionOneEXT * forMarshaling)33508 void marshal_VkDeviceFaultVendorBinaryHeaderVersionOneEXT(
33509     VulkanStream* vkStream, VkStructureType rootType,
33510     const VkDeviceFaultVendorBinaryHeaderVersionOneEXT* forMarshaling) {
33511     (void)rootType;
33512     vkStream->write((uint32_t*)&forMarshaling->headerSize, sizeof(uint32_t));
33513     vkStream->write((VkDeviceFaultVendorBinaryHeaderVersionEXT*)&forMarshaling->headerVersion,
33514                     sizeof(VkDeviceFaultVendorBinaryHeaderVersionEXT));
33515     vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
33516     vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
33517     vkStream->write((uint32_t*)&forMarshaling->driverVersion, sizeof(uint32_t));
33518     vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
33519     vkStream->write((uint32_t*)&forMarshaling->applicationNameOffset, sizeof(uint32_t));
33520     vkStream->write((uint32_t*)&forMarshaling->applicationVersion, sizeof(uint32_t));
33521     vkStream->write((uint32_t*)&forMarshaling->engineNameOffset, sizeof(uint32_t));
33522     vkStream->write((uint32_t*)&forMarshaling->engineVersion, sizeof(uint32_t));
33523     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
33524 }
33525 
unmarshal_VkDeviceFaultVendorBinaryHeaderVersionOneEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceFaultVendorBinaryHeaderVersionOneEXT * forUnmarshaling)33526 void unmarshal_VkDeviceFaultVendorBinaryHeaderVersionOneEXT(
33527     VulkanStream* vkStream, VkStructureType rootType,
33528     VkDeviceFaultVendorBinaryHeaderVersionOneEXT* forUnmarshaling) {
33529     (void)rootType;
33530     vkStream->read((uint32_t*)&forUnmarshaling->headerSize, sizeof(uint32_t));
33531     vkStream->read((VkDeviceFaultVendorBinaryHeaderVersionEXT*)&forUnmarshaling->headerVersion,
33532                    sizeof(VkDeviceFaultVendorBinaryHeaderVersionEXT));
33533     vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
33534     vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
33535     vkStream->read((uint32_t*)&forUnmarshaling->driverVersion, sizeof(uint32_t));
33536     vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
33537     vkStream->read((uint32_t*)&forUnmarshaling->applicationNameOffset, sizeof(uint32_t));
33538     vkStream->read((uint32_t*)&forUnmarshaling->applicationVersion, sizeof(uint32_t));
33539     vkStream->read((uint32_t*)&forUnmarshaling->engineNameOffset, sizeof(uint32_t));
33540     vkStream->read((uint32_t*)&forUnmarshaling->engineVersion, sizeof(uint32_t));
33541     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
33542 }
33543 
33544 #endif
33545 #ifdef VK_ARM_rasterization_order_attachment_access
marshal_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT * forMarshaling)33546 void marshal_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
33547     VulkanStream* vkStream, VkStructureType rootType,
33548     const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* forMarshaling) {
33549     (void)rootType;
33550     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33551     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33552         rootType = forMarshaling->sType;
33553     }
33554     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33555     vkStream->write((VkBool32*)&forMarshaling->rasterizationOrderColorAttachmentAccess,
33556                     sizeof(VkBool32));
33557     vkStream->write((VkBool32*)&forMarshaling->rasterizationOrderDepthAttachmentAccess,
33558                     sizeof(VkBool32));
33559     vkStream->write((VkBool32*)&forMarshaling->rasterizationOrderStencilAttachmentAccess,
33560                     sizeof(VkBool32));
33561 }
33562 
unmarshal_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT * forUnmarshaling)33563 void unmarshal_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
33564     VulkanStream* vkStream, VkStructureType rootType,
33565     VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* forUnmarshaling) {
33566     (void)rootType;
33567     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33568     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33569         rootType = forUnmarshaling->sType;
33570     }
33571     size_t pNext_size;
33572     pNext_size = vkStream->getBe32();
33573     forUnmarshaling->pNext = nullptr;
33574     if (pNext_size) {
33575         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33576         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33577         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33578         vkStream->alloc((void**)&forUnmarshaling->pNext,
33579                         goldfish_vk_extension_struct_size_with_stream_features(
33580                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33581         *(VkStructureType*)forUnmarshaling->pNext = extType;
33582         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33583     }
33584     vkStream->read((VkBool32*)&forUnmarshaling->rasterizationOrderColorAttachmentAccess,
33585                    sizeof(VkBool32));
33586     vkStream->read((VkBool32*)&forUnmarshaling->rasterizationOrderDepthAttachmentAccess,
33587                    sizeof(VkBool32));
33588     vkStream->read((VkBool32*)&forUnmarshaling->rasterizationOrderStencilAttachmentAccess,
33589                    sizeof(VkBool32));
33590 }
33591 
33592 #endif
33593 #ifdef VK_EXT_rgba10x6_formats
marshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT * forMarshaling)33594 void marshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
33595     VulkanStream* vkStream, VkStructureType rootType,
33596     const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forMarshaling) {
33597     (void)rootType;
33598     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33599     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33600         rootType = forMarshaling->sType;
33601     }
33602     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33603     vkStream->write((VkBool32*)&forMarshaling->formatRgba10x6WithoutYCbCrSampler, sizeof(VkBool32));
33604 }
33605 
unmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT * forUnmarshaling)33606 void unmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
33607     VulkanStream* vkStream, VkStructureType rootType,
33608     VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forUnmarshaling) {
33609     (void)rootType;
33610     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33611     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33612         rootType = forUnmarshaling->sType;
33613     }
33614     size_t pNext_size;
33615     pNext_size = vkStream->getBe32();
33616     forUnmarshaling->pNext = nullptr;
33617     if (pNext_size) {
33618         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33619         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33620         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33621         vkStream->alloc((void**)&forUnmarshaling->pNext,
33622                         goldfish_vk_extension_struct_size_with_stream_features(
33623                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33624         *(VkStructureType*)forUnmarshaling->pNext = extType;
33625         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33626     }
33627     vkStream->read((VkBool32*)&forUnmarshaling->formatRgba10x6WithoutYCbCrSampler,
33628                    sizeof(VkBool32));
33629 }
33630 
33631 #endif
33632 #ifdef VK_NV_acquire_winrt_display
33633 #endif
33634 #ifdef VK_EXT_directfb_surface
marshal_VkDirectFBSurfaceCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDirectFBSurfaceCreateInfoEXT * forMarshaling)33635 void marshal_VkDirectFBSurfaceCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33636                                             const VkDirectFBSurfaceCreateInfoEXT* forMarshaling) {
33637     (void)rootType;
33638     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33639     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33640         rootType = forMarshaling->sType;
33641     }
33642     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33643     vkStream->write((VkDirectFBSurfaceCreateFlagsEXT*)&forMarshaling->flags,
33644                     sizeof(VkDirectFBSurfaceCreateFlagsEXT));
33645     // WARNING PTR CHECK
33646     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->dfb;
33647     vkStream->putBe64(cgen_var_0);
33648     if (forMarshaling->dfb) {
33649         vkStream->write((IDirectFB*)forMarshaling->dfb, sizeof(IDirectFB));
33650     }
33651     // WARNING PTR CHECK
33652     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->surface;
33653     vkStream->putBe64(cgen_var_1);
33654     if (forMarshaling->surface) {
33655         vkStream->write((IDirectFBSurface*)forMarshaling->surface, sizeof(IDirectFBSurface));
33656     }
33657 }
33658 
unmarshal_VkDirectFBSurfaceCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDirectFBSurfaceCreateInfoEXT * forUnmarshaling)33659 void unmarshal_VkDirectFBSurfaceCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
33660                                               VkDirectFBSurfaceCreateInfoEXT* forUnmarshaling) {
33661     (void)rootType;
33662     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33663     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33664         rootType = forUnmarshaling->sType;
33665     }
33666     size_t pNext_size;
33667     pNext_size = vkStream->getBe32();
33668     forUnmarshaling->pNext = nullptr;
33669     if (pNext_size) {
33670         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33671         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33672         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33673         vkStream->alloc((void**)&forUnmarshaling->pNext,
33674                         goldfish_vk_extension_struct_size_with_stream_features(
33675                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33676         *(VkStructureType*)forUnmarshaling->pNext = extType;
33677         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33678     }
33679     vkStream->read((VkDirectFBSurfaceCreateFlagsEXT*)&forUnmarshaling->flags,
33680                    sizeof(VkDirectFBSurfaceCreateFlagsEXT));
33681     // WARNING PTR CHECK
33682     forUnmarshaling->dfb = (IDirectFB*)(uintptr_t)vkStream->getBe64();
33683     if (forUnmarshaling->dfb) {
33684         vkStream->alloc((void**)&forUnmarshaling->dfb, sizeof(IDirectFB));
33685         vkStream->read((IDirectFB*)forUnmarshaling->dfb, sizeof(IDirectFB));
33686     }
33687     // WARNING PTR CHECK
33688     forUnmarshaling->surface = (IDirectFBSurface*)(uintptr_t)vkStream->getBe64();
33689     if (forUnmarshaling->surface) {
33690         vkStream->alloc((void**)&forUnmarshaling->surface, sizeof(IDirectFBSurface));
33691         vkStream->read((IDirectFBSurface*)forUnmarshaling->surface, sizeof(IDirectFBSurface));
33692     }
33693 }
33694 
33695 #endif
33696 #ifdef VK_VALVE_mutable_descriptor_type
marshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * forMarshaling)33697 void marshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(
33698     VulkanStream* vkStream, VkStructureType rootType,
33699     const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* forMarshaling) {
33700     (void)rootType;
33701     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33702     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33703         rootType = forMarshaling->sType;
33704     }
33705     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33706     vkStream->write((VkBool32*)&forMarshaling->mutableDescriptorType, sizeof(VkBool32));
33707 }
33708 
unmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT * forUnmarshaling)33709 void unmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(
33710     VulkanStream* vkStream, VkStructureType rootType,
33711     VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* forUnmarshaling) {
33712     (void)rootType;
33713     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33714     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33715         rootType = forUnmarshaling->sType;
33716     }
33717     size_t pNext_size;
33718     pNext_size = vkStream->getBe32();
33719     forUnmarshaling->pNext = nullptr;
33720     if (pNext_size) {
33721         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33722         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33723         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33724         vkStream->alloc((void**)&forUnmarshaling->pNext,
33725                         goldfish_vk_extension_struct_size_with_stream_features(
33726                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33727         *(VkStructureType*)forUnmarshaling->pNext = extType;
33728         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33729     }
33730     vkStream->read((VkBool32*)&forUnmarshaling->mutableDescriptorType, sizeof(VkBool32));
33731 }
33732 
marshal_VkMutableDescriptorTypeListEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMutableDescriptorTypeListEXT * forMarshaling)33733 void marshal_VkMutableDescriptorTypeListEXT(VulkanStream* vkStream, VkStructureType rootType,
33734                                             const VkMutableDescriptorTypeListEXT* forMarshaling) {
33735     (void)rootType;
33736     vkStream->write((uint32_t*)&forMarshaling->descriptorTypeCount, sizeof(uint32_t));
33737     vkStream->write((const VkDescriptorType*)forMarshaling->pDescriptorTypes,
33738                     forMarshaling->descriptorTypeCount * sizeof(const VkDescriptorType));
33739 }
33740 
unmarshal_VkMutableDescriptorTypeListEXT(VulkanStream * vkStream,VkStructureType rootType,VkMutableDescriptorTypeListEXT * forUnmarshaling)33741 void unmarshal_VkMutableDescriptorTypeListEXT(VulkanStream* vkStream, VkStructureType rootType,
33742                                               VkMutableDescriptorTypeListEXT* forUnmarshaling) {
33743     (void)rootType;
33744     vkStream->read((uint32_t*)&forUnmarshaling->descriptorTypeCount, sizeof(uint32_t));
33745     vkStream->alloc((void**)&forUnmarshaling->pDescriptorTypes,
33746                     forUnmarshaling->descriptorTypeCount * sizeof(const VkDescriptorType));
33747     vkStream->read((VkDescriptorType*)forUnmarshaling->pDescriptorTypes,
33748                    forUnmarshaling->descriptorTypeCount * sizeof(const VkDescriptorType));
33749 }
33750 
marshal_VkMutableDescriptorTypeCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMutableDescriptorTypeCreateInfoEXT * forMarshaling)33751 void marshal_VkMutableDescriptorTypeCreateInfoEXT(
33752     VulkanStream* vkStream, VkStructureType rootType,
33753     const VkMutableDescriptorTypeCreateInfoEXT* forMarshaling) {
33754     (void)rootType;
33755     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33756     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33757         rootType = forMarshaling->sType;
33758     }
33759     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33760     vkStream->write((uint32_t*)&forMarshaling->mutableDescriptorTypeListCount, sizeof(uint32_t));
33761     if (forMarshaling) {
33762         for (uint32_t i = 0; i < (uint32_t)forMarshaling->mutableDescriptorTypeListCount; ++i) {
33763             marshal_VkMutableDescriptorTypeListEXT(
33764                 vkStream, rootType,
33765                 (const VkMutableDescriptorTypeListEXT*)(forMarshaling->pMutableDescriptorTypeLists +
33766                                                         i));
33767         }
33768     }
33769 }
33770 
unmarshal_VkMutableDescriptorTypeCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMutableDescriptorTypeCreateInfoEXT * forUnmarshaling)33771 void unmarshal_VkMutableDescriptorTypeCreateInfoEXT(
33772     VulkanStream* vkStream, VkStructureType rootType,
33773     VkMutableDescriptorTypeCreateInfoEXT* forUnmarshaling) {
33774     (void)rootType;
33775     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33776     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33777         rootType = forUnmarshaling->sType;
33778     }
33779     size_t pNext_size;
33780     pNext_size = vkStream->getBe32();
33781     forUnmarshaling->pNext = nullptr;
33782     if (pNext_size) {
33783         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33784         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33785         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33786         vkStream->alloc((void**)&forUnmarshaling->pNext,
33787                         goldfish_vk_extension_struct_size_with_stream_features(
33788                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33789         *(VkStructureType*)forUnmarshaling->pNext = extType;
33790         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33791     }
33792     vkStream->read((uint32_t*)&forUnmarshaling->mutableDescriptorTypeListCount, sizeof(uint32_t));
33793     vkStream->alloc((void**)&forUnmarshaling->pMutableDescriptorTypeLists,
33794                     forUnmarshaling->mutableDescriptorTypeListCount *
33795                         sizeof(const VkMutableDescriptorTypeListEXT));
33796     if (forUnmarshaling) {
33797         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mutableDescriptorTypeListCount; ++i) {
33798             unmarshal_VkMutableDescriptorTypeListEXT(
33799                 vkStream, rootType,
33800                 (VkMutableDescriptorTypeListEXT*)(forUnmarshaling->pMutableDescriptorTypeLists +
33801                                                   i));
33802         }
33803     }
33804 }
33805 
33806 #endif
33807 #ifdef VK_EXT_vertex_input_dynamic_state
marshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT * forMarshaling)33808 void marshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
33809     VulkanStream* vkStream, VkStructureType rootType,
33810     const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forMarshaling) {
33811     (void)rootType;
33812     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33813     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33814         rootType = forMarshaling->sType;
33815     }
33816     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33817     vkStream->write((VkBool32*)&forMarshaling->vertexInputDynamicState, sizeof(VkBool32));
33818 }
33819 
unmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT * forUnmarshaling)33820 void unmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
33821     VulkanStream* vkStream, VkStructureType rootType,
33822     VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forUnmarshaling) {
33823     (void)rootType;
33824     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33825     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33826         rootType = forUnmarshaling->sType;
33827     }
33828     size_t pNext_size;
33829     pNext_size = vkStream->getBe32();
33830     forUnmarshaling->pNext = nullptr;
33831     if (pNext_size) {
33832         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33833         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33834         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33835         vkStream->alloc((void**)&forUnmarshaling->pNext,
33836                         goldfish_vk_extension_struct_size_with_stream_features(
33837                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33838         *(VkStructureType*)forUnmarshaling->pNext = extType;
33839         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33840     }
33841     vkStream->read((VkBool32*)&forUnmarshaling->vertexInputDynamicState, sizeof(VkBool32));
33842 }
33843 
marshal_VkVertexInputBindingDescription2EXT(VulkanStream * vkStream,VkStructureType rootType,const VkVertexInputBindingDescription2EXT * forMarshaling)33844 void marshal_VkVertexInputBindingDescription2EXT(
33845     VulkanStream* vkStream, VkStructureType rootType,
33846     const VkVertexInputBindingDescription2EXT* forMarshaling) {
33847     (void)rootType;
33848     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33849     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33850         rootType = forMarshaling->sType;
33851     }
33852     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33853     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
33854     vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
33855     vkStream->write((VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
33856     vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
33857 }
33858 
unmarshal_VkVertexInputBindingDescription2EXT(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputBindingDescription2EXT * forUnmarshaling)33859 void unmarshal_VkVertexInputBindingDescription2EXT(
33860     VulkanStream* vkStream, VkStructureType rootType,
33861     VkVertexInputBindingDescription2EXT* forUnmarshaling) {
33862     (void)rootType;
33863     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33864     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33865         rootType = forUnmarshaling->sType;
33866     }
33867     size_t pNext_size;
33868     pNext_size = vkStream->getBe32();
33869     forUnmarshaling->pNext = nullptr;
33870     if (pNext_size) {
33871         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33872         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33873         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33874         vkStream->alloc((void**)&forUnmarshaling->pNext,
33875                         goldfish_vk_extension_struct_size_with_stream_features(
33876                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33877         *(VkStructureType*)forUnmarshaling->pNext = extType;
33878         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33879     }
33880     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
33881     vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
33882     vkStream->read((VkVertexInputRate*)&forUnmarshaling->inputRate, sizeof(VkVertexInputRate));
33883     vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
33884 }
33885 
marshal_VkVertexInputAttributeDescription2EXT(VulkanStream * vkStream,VkStructureType rootType,const VkVertexInputAttributeDescription2EXT * forMarshaling)33886 void marshal_VkVertexInputAttributeDescription2EXT(
33887     VulkanStream* vkStream, VkStructureType rootType,
33888     const VkVertexInputAttributeDescription2EXT* forMarshaling) {
33889     (void)rootType;
33890     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33891     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33892         rootType = forMarshaling->sType;
33893     }
33894     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33895     vkStream->write((uint32_t*)&forMarshaling->location, sizeof(uint32_t));
33896     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
33897     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
33898     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
33899 }
33900 
unmarshal_VkVertexInputAttributeDescription2EXT(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputAttributeDescription2EXT * forUnmarshaling)33901 void unmarshal_VkVertexInputAttributeDescription2EXT(
33902     VulkanStream* vkStream, VkStructureType rootType,
33903     VkVertexInputAttributeDescription2EXT* forUnmarshaling) {
33904     (void)rootType;
33905     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33906     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33907         rootType = forUnmarshaling->sType;
33908     }
33909     size_t pNext_size;
33910     pNext_size = vkStream->getBe32();
33911     forUnmarshaling->pNext = nullptr;
33912     if (pNext_size) {
33913         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33914         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33915         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33916         vkStream->alloc((void**)&forUnmarshaling->pNext,
33917                         goldfish_vk_extension_struct_size_with_stream_features(
33918                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33919         *(VkStructureType*)forUnmarshaling->pNext = extType;
33920         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33921     }
33922     vkStream->read((uint32_t*)&forUnmarshaling->location, sizeof(uint32_t));
33923     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
33924     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
33925     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
33926 }
33927 
33928 #endif
33929 #ifdef VK_EXT_physical_device_drm
marshal_VkPhysicalDeviceDrmPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDrmPropertiesEXT * forMarshaling)33930 void marshal_VkPhysicalDeviceDrmPropertiesEXT(
33931     VulkanStream* vkStream, VkStructureType rootType,
33932     const VkPhysicalDeviceDrmPropertiesEXT* forMarshaling) {
33933     (void)rootType;
33934     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33935     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33936         rootType = forMarshaling->sType;
33937     }
33938     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33939     vkStream->write((VkBool32*)&forMarshaling->hasPrimary, sizeof(VkBool32));
33940     vkStream->write((VkBool32*)&forMarshaling->hasRender, sizeof(VkBool32));
33941     vkStream->write((int64_t*)&forMarshaling->primaryMajor, sizeof(int64_t));
33942     vkStream->write((int64_t*)&forMarshaling->primaryMinor, sizeof(int64_t));
33943     vkStream->write((int64_t*)&forMarshaling->renderMajor, sizeof(int64_t));
33944     vkStream->write((int64_t*)&forMarshaling->renderMinor, sizeof(int64_t));
33945 }
33946 
unmarshal_VkPhysicalDeviceDrmPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDrmPropertiesEXT * forUnmarshaling)33947 void unmarshal_VkPhysicalDeviceDrmPropertiesEXT(VulkanStream* vkStream, VkStructureType rootType,
33948                                                 VkPhysicalDeviceDrmPropertiesEXT* forUnmarshaling) {
33949     (void)rootType;
33950     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33951     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33952         rootType = forUnmarshaling->sType;
33953     }
33954     size_t pNext_size;
33955     pNext_size = vkStream->getBe32();
33956     forUnmarshaling->pNext = nullptr;
33957     if (pNext_size) {
33958         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
33959         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
33960         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
33961         vkStream->alloc((void**)&forUnmarshaling->pNext,
33962                         goldfish_vk_extension_struct_size_with_stream_features(
33963                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
33964         *(VkStructureType*)forUnmarshaling->pNext = extType;
33965         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
33966     }
33967     vkStream->read((VkBool32*)&forUnmarshaling->hasPrimary, sizeof(VkBool32));
33968     vkStream->read((VkBool32*)&forUnmarshaling->hasRender, sizeof(VkBool32));
33969     vkStream->read((int64_t*)&forUnmarshaling->primaryMajor, sizeof(int64_t));
33970     vkStream->read((int64_t*)&forUnmarshaling->primaryMinor, sizeof(int64_t));
33971     vkStream->read((int64_t*)&forUnmarshaling->renderMajor, sizeof(int64_t));
33972     vkStream->read((int64_t*)&forUnmarshaling->renderMinor, sizeof(int64_t));
33973 }
33974 
33975 #endif
33976 #ifdef VK_EXT_device_address_binding_report
marshal_VkPhysicalDeviceAddressBindingReportFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceAddressBindingReportFeaturesEXT * forMarshaling)33977 void marshal_VkPhysicalDeviceAddressBindingReportFeaturesEXT(
33978     VulkanStream* vkStream, VkStructureType rootType,
33979     const VkPhysicalDeviceAddressBindingReportFeaturesEXT* forMarshaling) {
33980     (void)rootType;
33981     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
33982     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33983         rootType = forMarshaling->sType;
33984     }
33985     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
33986     vkStream->write((VkBool32*)&forMarshaling->reportAddressBinding, sizeof(VkBool32));
33987 }
33988 
unmarshal_VkPhysicalDeviceAddressBindingReportFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceAddressBindingReportFeaturesEXT * forUnmarshaling)33989 void unmarshal_VkPhysicalDeviceAddressBindingReportFeaturesEXT(
33990     VulkanStream* vkStream, VkStructureType rootType,
33991     VkPhysicalDeviceAddressBindingReportFeaturesEXT* forUnmarshaling) {
33992     (void)rootType;
33993     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
33994     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
33995         rootType = forUnmarshaling->sType;
33996     }
33997     size_t pNext_size;
33998     pNext_size = vkStream->getBe32();
33999     forUnmarshaling->pNext = nullptr;
34000     if (pNext_size) {
34001         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34002         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34003         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34004         vkStream->alloc((void**)&forUnmarshaling->pNext,
34005                         goldfish_vk_extension_struct_size_with_stream_features(
34006                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34007         *(VkStructureType*)forUnmarshaling->pNext = extType;
34008         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34009     }
34010     vkStream->read((VkBool32*)&forUnmarshaling->reportAddressBinding, sizeof(VkBool32));
34011 }
34012 
marshal_VkDeviceAddressBindingCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceAddressBindingCallbackDataEXT * forMarshaling)34013 void marshal_VkDeviceAddressBindingCallbackDataEXT(
34014     VulkanStream* vkStream, VkStructureType rootType,
34015     const VkDeviceAddressBindingCallbackDataEXT* forMarshaling) {
34016     (void)rootType;
34017     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34018     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34019         rootType = forMarshaling->sType;
34020     }
34021     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34022     vkStream->write((VkDeviceAddressBindingFlagsEXT*)&forMarshaling->flags,
34023                     sizeof(VkDeviceAddressBindingFlagsEXT));
34024     vkStream->write((VkDeviceAddress*)&forMarshaling->baseAddress, sizeof(VkDeviceAddress));
34025     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
34026     vkStream->write((VkDeviceAddressBindingTypeEXT*)&forMarshaling->bindingType,
34027                     sizeof(VkDeviceAddressBindingTypeEXT));
34028 }
34029 
unmarshal_VkDeviceAddressBindingCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceAddressBindingCallbackDataEXT * forUnmarshaling)34030 void unmarshal_VkDeviceAddressBindingCallbackDataEXT(
34031     VulkanStream* vkStream, VkStructureType rootType,
34032     VkDeviceAddressBindingCallbackDataEXT* forUnmarshaling) {
34033     (void)rootType;
34034     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34035     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34036         rootType = forUnmarshaling->sType;
34037     }
34038     size_t pNext_size;
34039     pNext_size = vkStream->getBe32();
34040     forUnmarshaling->pNext = nullptr;
34041     if (pNext_size) {
34042         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34043         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34044         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34045         vkStream->alloc((void**)&forUnmarshaling->pNext,
34046                         goldfish_vk_extension_struct_size_with_stream_features(
34047                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34048         *(VkStructureType*)forUnmarshaling->pNext = extType;
34049         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34050     }
34051     vkStream->read((VkDeviceAddressBindingFlagsEXT*)&forUnmarshaling->flags,
34052                    sizeof(VkDeviceAddressBindingFlagsEXT));
34053     vkStream->read((VkDeviceAddress*)&forUnmarshaling->baseAddress, sizeof(VkDeviceAddress));
34054     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
34055     vkStream->read((VkDeviceAddressBindingTypeEXT*)&forUnmarshaling->bindingType,
34056                    sizeof(VkDeviceAddressBindingTypeEXT));
34057 }
34058 
34059 #endif
34060 #ifdef VK_EXT_depth_clip_control
marshal_VkPhysicalDeviceDepthClipControlFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthClipControlFeaturesEXT * forMarshaling)34061 void marshal_VkPhysicalDeviceDepthClipControlFeaturesEXT(
34062     VulkanStream* vkStream, VkStructureType rootType,
34063     const VkPhysicalDeviceDepthClipControlFeaturesEXT* forMarshaling) {
34064     (void)rootType;
34065     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34066     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34067         rootType = forMarshaling->sType;
34068     }
34069     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34070     vkStream->write((VkBool32*)&forMarshaling->depthClipControl, sizeof(VkBool32));
34071 }
34072 
unmarshal_VkPhysicalDeviceDepthClipControlFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthClipControlFeaturesEXT * forUnmarshaling)34073 void unmarshal_VkPhysicalDeviceDepthClipControlFeaturesEXT(
34074     VulkanStream* vkStream, VkStructureType rootType,
34075     VkPhysicalDeviceDepthClipControlFeaturesEXT* forUnmarshaling) {
34076     (void)rootType;
34077     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34078     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34079         rootType = forUnmarshaling->sType;
34080     }
34081     size_t pNext_size;
34082     pNext_size = vkStream->getBe32();
34083     forUnmarshaling->pNext = nullptr;
34084     if (pNext_size) {
34085         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34086         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34087         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34088         vkStream->alloc((void**)&forUnmarshaling->pNext,
34089                         goldfish_vk_extension_struct_size_with_stream_features(
34090                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34091         *(VkStructureType*)forUnmarshaling->pNext = extType;
34092         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34093     }
34094     vkStream->read((VkBool32*)&forUnmarshaling->depthClipControl, sizeof(VkBool32));
34095 }
34096 
marshal_VkPipelineViewportDepthClipControlCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineViewportDepthClipControlCreateInfoEXT * forMarshaling)34097 void marshal_VkPipelineViewportDepthClipControlCreateInfoEXT(
34098     VulkanStream* vkStream, VkStructureType rootType,
34099     const VkPipelineViewportDepthClipControlCreateInfoEXT* forMarshaling) {
34100     (void)rootType;
34101     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34102     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34103         rootType = forMarshaling->sType;
34104     }
34105     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34106     vkStream->write((VkBool32*)&forMarshaling->negativeOneToOne, sizeof(VkBool32));
34107 }
34108 
unmarshal_VkPipelineViewportDepthClipControlCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportDepthClipControlCreateInfoEXT * forUnmarshaling)34109 void unmarshal_VkPipelineViewportDepthClipControlCreateInfoEXT(
34110     VulkanStream* vkStream, VkStructureType rootType,
34111     VkPipelineViewportDepthClipControlCreateInfoEXT* forUnmarshaling) {
34112     (void)rootType;
34113     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34114     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34115         rootType = forUnmarshaling->sType;
34116     }
34117     size_t pNext_size;
34118     pNext_size = vkStream->getBe32();
34119     forUnmarshaling->pNext = nullptr;
34120     if (pNext_size) {
34121         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34122         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34123         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34124         vkStream->alloc((void**)&forUnmarshaling->pNext,
34125                         goldfish_vk_extension_struct_size_with_stream_features(
34126                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34127         *(VkStructureType*)forUnmarshaling->pNext = extType;
34128         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34129     }
34130     vkStream->read((VkBool32*)&forUnmarshaling->negativeOneToOne, sizeof(VkBool32));
34131 }
34132 
34133 #endif
34134 #ifdef VK_EXT_primitive_topology_list_restart
marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forMarshaling)34135 void marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
34136     VulkanStream* vkStream, VkStructureType rootType,
34137     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling) {
34138     (void)rootType;
34139     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34140     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34141         rootType = forMarshaling->sType;
34142     }
34143     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34144     vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
34145     vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyPatchListRestart, sizeof(VkBool32));
34146 }
34147 
unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forUnmarshaling)34148 void unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
34149     VulkanStream* vkStream, VkStructureType rootType,
34150     VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forUnmarshaling) {
34151     (void)rootType;
34152     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34153     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34154         rootType = forUnmarshaling->sType;
34155     }
34156     size_t pNext_size;
34157     pNext_size = vkStream->getBe32();
34158     forUnmarshaling->pNext = nullptr;
34159     if (pNext_size) {
34160         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34161         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34162         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34163         vkStream->alloc((void**)&forUnmarshaling->pNext,
34164                         goldfish_vk_extension_struct_size_with_stream_features(
34165                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34166         *(VkStructureType*)forUnmarshaling->pNext = extType;
34167         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34168     }
34169     vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
34170     vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyPatchListRestart,
34171                    sizeof(VkBool32));
34172 }
34173 
34174 #endif
34175 #ifdef VK_FUCHSIA_external_memory
marshal_VkImportMemoryZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkImportMemoryZirconHandleInfoFUCHSIA * forMarshaling)34176 void marshal_VkImportMemoryZirconHandleInfoFUCHSIA(
34177     VulkanStream* vkStream, VkStructureType rootType,
34178     const VkImportMemoryZirconHandleInfoFUCHSIA* forMarshaling) {
34179     (void)rootType;
34180     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34181     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34182         rootType = forMarshaling->sType;
34183     }
34184     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34185     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
34186                     sizeof(VkExternalMemoryHandleTypeFlagBits));
34187     vkStream->write((zx_handle_t*)&forMarshaling->handle, sizeof(zx_handle_t));
34188 }
34189 
unmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkImportMemoryZirconHandleInfoFUCHSIA * forUnmarshaling)34190 void unmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(
34191     VulkanStream* vkStream, VkStructureType rootType,
34192     VkImportMemoryZirconHandleInfoFUCHSIA* forUnmarshaling) {
34193     (void)rootType;
34194     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34195     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34196         rootType = forUnmarshaling->sType;
34197     }
34198     size_t pNext_size;
34199     pNext_size = vkStream->getBe32();
34200     forUnmarshaling->pNext = nullptr;
34201     if (pNext_size) {
34202         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34203         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34204         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34205         vkStream->alloc((void**)&forUnmarshaling->pNext,
34206                         goldfish_vk_extension_struct_size_with_stream_features(
34207                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34208         *(VkStructureType*)forUnmarshaling->pNext = extType;
34209         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34210     }
34211     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
34212                    sizeof(VkExternalMemoryHandleTypeFlagBits));
34213     vkStream->read((zx_handle_t*)&forUnmarshaling->handle, sizeof(zx_handle_t));
34214 }
34215 
marshal_VkMemoryZirconHandlePropertiesFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryZirconHandlePropertiesFUCHSIA * forMarshaling)34216 void marshal_VkMemoryZirconHandlePropertiesFUCHSIA(
34217     VulkanStream* vkStream, VkStructureType rootType,
34218     const VkMemoryZirconHandlePropertiesFUCHSIA* forMarshaling) {
34219     (void)rootType;
34220     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34221     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34222         rootType = forMarshaling->sType;
34223     }
34224     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34225     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
34226 }
34227 
unmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkMemoryZirconHandlePropertiesFUCHSIA * forUnmarshaling)34228 void unmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(
34229     VulkanStream* vkStream, VkStructureType rootType,
34230     VkMemoryZirconHandlePropertiesFUCHSIA* forUnmarshaling) {
34231     (void)rootType;
34232     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34233     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34234         rootType = forUnmarshaling->sType;
34235     }
34236     size_t pNext_size;
34237     pNext_size = vkStream->getBe32();
34238     forUnmarshaling->pNext = nullptr;
34239     if (pNext_size) {
34240         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34241         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34242         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34243         vkStream->alloc((void**)&forUnmarshaling->pNext,
34244                         goldfish_vk_extension_struct_size_with_stream_features(
34245                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34246         *(VkStructureType*)forUnmarshaling->pNext = extType;
34247         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34248     }
34249     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
34250 }
34251 
marshal_VkMemoryGetZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryGetZirconHandleInfoFUCHSIA * forMarshaling)34252 void marshal_VkMemoryGetZirconHandleInfoFUCHSIA(
34253     VulkanStream* vkStream, VkStructureType rootType,
34254     const VkMemoryGetZirconHandleInfoFUCHSIA* forMarshaling) {
34255     (void)rootType;
34256     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34257     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34258         rootType = forMarshaling->sType;
34259     }
34260     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34261     uint64_t cgen_var_0;
34262     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
34263                                                              1);
34264     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
34265     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
34266                     sizeof(VkExternalMemoryHandleTypeFlagBits));
34267 }
34268 
unmarshal_VkMemoryGetZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkMemoryGetZirconHandleInfoFUCHSIA * forUnmarshaling)34269 void unmarshal_VkMemoryGetZirconHandleInfoFUCHSIA(
34270     VulkanStream* vkStream, VkStructureType rootType,
34271     VkMemoryGetZirconHandleInfoFUCHSIA* forUnmarshaling) {
34272     (void)rootType;
34273     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34274     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34275         rootType = forUnmarshaling->sType;
34276     }
34277     size_t pNext_size;
34278     pNext_size = vkStream->getBe32();
34279     forUnmarshaling->pNext = nullptr;
34280     if (pNext_size) {
34281         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34282         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34283         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34284         vkStream->alloc((void**)&forUnmarshaling->pNext,
34285                         goldfish_vk_extension_struct_size_with_stream_features(
34286                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34287         *(VkStructureType*)forUnmarshaling->pNext = extType;
34288         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34289     }
34290     uint64_t cgen_var_0;
34291     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
34292     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
34293         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
34294     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
34295                    sizeof(VkExternalMemoryHandleTypeFlagBits));
34296 }
34297 
34298 #endif
34299 #ifdef VK_FUCHSIA_external_semaphore
marshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkImportSemaphoreZirconHandleInfoFUCHSIA * forMarshaling)34300 void marshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
34301     VulkanStream* vkStream, VkStructureType rootType,
34302     const VkImportSemaphoreZirconHandleInfoFUCHSIA* forMarshaling) {
34303     (void)rootType;
34304     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34305     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34306         rootType = forMarshaling->sType;
34307     }
34308     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34309     uint64_t cgen_var_0;
34310     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
34311                                                           1);
34312     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
34313     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
34314     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
34315                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
34316     vkStream->write((zx_handle_t*)&forMarshaling->zirconHandle, sizeof(zx_handle_t));
34317 }
34318 
unmarshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkImportSemaphoreZirconHandleInfoFUCHSIA * forUnmarshaling)34319 void unmarshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
34320     VulkanStream* vkStream, VkStructureType rootType,
34321     VkImportSemaphoreZirconHandleInfoFUCHSIA* forUnmarshaling) {
34322     (void)rootType;
34323     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34324     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34325         rootType = forUnmarshaling->sType;
34326     }
34327     size_t pNext_size;
34328     pNext_size = vkStream->getBe32();
34329     forUnmarshaling->pNext = nullptr;
34330     if (pNext_size) {
34331         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34332         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34333         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34334         vkStream->alloc((void**)&forUnmarshaling->pNext,
34335                         goldfish_vk_extension_struct_size_with_stream_features(
34336                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34337         *(VkStructureType*)forUnmarshaling->pNext = extType;
34338         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34339     }
34340     uint64_t cgen_var_0;
34341     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
34342     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
34343         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
34344     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags,
34345                    sizeof(VkSemaphoreImportFlags));
34346     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
34347                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
34348     vkStream->read((zx_handle_t*)&forUnmarshaling->zirconHandle, sizeof(zx_handle_t));
34349 }
34350 
marshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkSemaphoreGetZirconHandleInfoFUCHSIA * forMarshaling)34351 void marshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
34352     VulkanStream* vkStream, VkStructureType rootType,
34353     const VkSemaphoreGetZirconHandleInfoFUCHSIA* forMarshaling) {
34354     (void)rootType;
34355     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34356     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34357         rootType = forMarshaling->sType;
34358     }
34359     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34360     uint64_t cgen_var_0;
34361     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
34362                                                           1);
34363     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
34364     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
34365                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
34366 }
34367 
unmarshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreGetZirconHandleInfoFUCHSIA * forUnmarshaling)34368 void unmarshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
34369     VulkanStream* vkStream, VkStructureType rootType,
34370     VkSemaphoreGetZirconHandleInfoFUCHSIA* forUnmarshaling) {
34371     (void)rootType;
34372     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34373     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34374         rootType = forUnmarshaling->sType;
34375     }
34376     size_t pNext_size;
34377     pNext_size = vkStream->getBe32();
34378     forUnmarshaling->pNext = nullptr;
34379     if (pNext_size) {
34380         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34381         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34382         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34383         vkStream->alloc((void**)&forUnmarshaling->pNext,
34384                         goldfish_vk_extension_struct_size_with_stream_features(
34385                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34386         *(VkStructureType*)forUnmarshaling->pNext = extType;
34387         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34388     }
34389     uint64_t cgen_var_0;
34390     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
34391     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
34392         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
34393     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
34394                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
34395 }
34396 
34397 #endif
34398 #ifdef VK_FUCHSIA_buffer_collection
marshal_VkBufferCollectionCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCollectionCreateInfoFUCHSIA * forMarshaling)34399 void marshal_VkBufferCollectionCreateInfoFUCHSIA(
34400     VulkanStream* vkStream, VkStructureType rootType,
34401     const VkBufferCollectionCreateInfoFUCHSIA* forMarshaling) {
34402     (void)rootType;
34403     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34404     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34405         rootType = forMarshaling->sType;
34406     }
34407     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34408     vkStream->write((zx_handle_t*)&forMarshaling->collectionToken, sizeof(zx_handle_t));
34409 }
34410 
unmarshal_VkBufferCollectionCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkBufferCollectionCreateInfoFUCHSIA * forUnmarshaling)34411 void unmarshal_VkBufferCollectionCreateInfoFUCHSIA(
34412     VulkanStream* vkStream, VkStructureType rootType,
34413     VkBufferCollectionCreateInfoFUCHSIA* forUnmarshaling) {
34414     (void)rootType;
34415     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34416     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34417         rootType = forUnmarshaling->sType;
34418     }
34419     size_t pNext_size;
34420     pNext_size = vkStream->getBe32();
34421     forUnmarshaling->pNext = nullptr;
34422     if (pNext_size) {
34423         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34424         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34425         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34426         vkStream->alloc((void**)&forUnmarshaling->pNext,
34427                         goldfish_vk_extension_struct_size_with_stream_features(
34428                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34429         *(VkStructureType*)forUnmarshaling->pNext = extType;
34430         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34431     }
34432     vkStream->read((zx_handle_t*)&forUnmarshaling->collectionToken, sizeof(zx_handle_t));
34433 }
34434 
marshal_VkImportMemoryBufferCollectionFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkImportMemoryBufferCollectionFUCHSIA * forMarshaling)34435 void marshal_VkImportMemoryBufferCollectionFUCHSIA(
34436     VulkanStream* vkStream, VkStructureType rootType,
34437     const VkImportMemoryBufferCollectionFUCHSIA* forMarshaling) {
34438     (void)rootType;
34439     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34440     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34441         rootType = forMarshaling->sType;
34442     }
34443     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34444     uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
34445     vkStream->putBe64(cgen_var_0);
34446     vkStream->write((uint32_t*)&forMarshaling->index, sizeof(uint32_t));
34447 }
34448 
unmarshal_VkImportMemoryBufferCollectionFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkImportMemoryBufferCollectionFUCHSIA * forUnmarshaling)34449 void unmarshal_VkImportMemoryBufferCollectionFUCHSIA(
34450     VulkanStream* vkStream, VkStructureType rootType,
34451     VkImportMemoryBufferCollectionFUCHSIA* forUnmarshaling) {
34452     (void)rootType;
34453     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34454     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34455         rootType = forUnmarshaling->sType;
34456     }
34457     size_t pNext_size;
34458     pNext_size = vkStream->getBe32();
34459     forUnmarshaling->pNext = nullptr;
34460     if (pNext_size) {
34461         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34462         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34463         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34464         vkStream->alloc((void**)&forUnmarshaling->pNext,
34465                         goldfish_vk_extension_struct_size_with_stream_features(
34466                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34467         *(VkStructureType*)forUnmarshaling->pNext = extType;
34468         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34469     }
34470     forUnmarshaling->collection = (VkBufferCollectionFUCHSIA)vkStream->getBe64();
34471     vkStream->read((uint32_t*)&forUnmarshaling->index, sizeof(uint32_t));
34472 }
34473 
marshal_VkBufferCollectionImageCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCollectionImageCreateInfoFUCHSIA * forMarshaling)34474 void marshal_VkBufferCollectionImageCreateInfoFUCHSIA(
34475     VulkanStream* vkStream, VkStructureType rootType,
34476     const VkBufferCollectionImageCreateInfoFUCHSIA* forMarshaling) {
34477     (void)rootType;
34478     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34479     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34480         rootType = forMarshaling->sType;
34481     }
34482     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34483     uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
34484     vkStream->putBe64(cgen_var_0);
34485     vkStream->write((uint32_t*)&forMarshaling->index, sizeof(uint32_t));
34486 }
34487 
unmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkBufferCollectionImageCreateInfoFUCHSIA * forUnmarshaling)34488 void unmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(
34489     VulkanStream* vkStream, VkStructureType rootType,
34490     VkBufferCollectionImageCreateInfoFUCHSIA* forUnmarshaling) {
34491     (void)rootType;
34492     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34493     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34494         rootType = forUnmarshaling->sType;
34495     }
34496     size_t pNext_size;
34497     pNext_size = vkStream->getBe32();
34498     forUnmarshaling->pNext = nullptr;
34499     if (pNext_size) {
34500         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34501         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34502         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34503         vkStream->alloc((void**)&forUnmarshaling->pNext,
34504                         goldfish_vk_extension_struct_size_with_stream_features(
34505                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34506         *(VkStructureType*)forUnmarshaling->pNext = extType;
34507         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34508     }
34509     forUnmarshaling->collection = (VkBufferCollectionFUCHSIA)vkStream->getBe64();
34510     vkStream->read((uint32_t*)&forUnmarshaling->index, sizeof(uint32_t));
34511 }
34512 
marshal_VkBufferCollectionConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCollectionConstraintsInfoFUCHSIA * forMarshaling)34513 void marshal_VkBufferCollectionConstraintsInfoFUCHSIA(
34514     VulkanStream* vkStream, VkStructureType rootType,
34515     const VkBufferCollectionConstraintsInfoFUCHSIA* forMarshaling) {
34516     (void)rootType;
34517     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34518     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34519         rootType = forMarshaling->sType;
34520     }
34521     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34522     vkStream->write((uint32_t*)&forMarshaling->minBufferCount, sizeof(uint32_t));
34523     vkStream->write((uint32_t*)&forMarshaling->maxBufferCount, sizeof(uint32_t));
34524     vkStream->write((uint32_t*)&forMarshaling->minBufferCountForCamping, sizeof(uint32_t));
34525     vkStream->write((uint32_t*)&forMarshaling->minBufferCountForDedicatedSlack, sizeof(uint32_t));
34526     vkStream->write((uint32_t*)&forMarshaling->minBufferCountForSharedSlack, sizeof(uint32_t));
34527 }
34528 
unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkBufferCollectionConstraintsInfoFUCHSIA * forUnmarshaling)34529 void unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(
34530     VulkanStream* vkStream, VkStructureType rootType,
34531     VkBufferCollectionConstraintsInfoFUCHSIA* forUnmarshaling) {
34532     (void)rootType;
34533     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34534     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34535         rootType = forUnmarshaling->sType;
34536     }
34537     size_t pNext_size;
34538     pNext_size = vkStream->getBe32();
34539     forUnmarshaling->pNext = nullptr;
34540     if (pNext_size) {
34541         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34542         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34543         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34544         vkStream->alloc((void**)&forUnmarshaling->pNext,
34545                         goldfish_vk_extension_struct_size_with_stream_features(
34546                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34547         *(VkStructureType*)forUnmarshaling->pNext = extType;
34548         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34549     }
34550     vkStream->read((uint32_t*)&forUnmarshaling->minBufferCount, sizeof(uint32_t));
34551     vkStream->read((uint32_t*)&forUnmarshaling->maxBufferCount, sizeof(uint32_t));
34552     vkStream->read((uint32_t*)&forUnmarshaling->minBufferCountForCamping, sizeof(uint32_t));
34553     vkStream->read((uint32_t*)&forUnmarshaling->minBufferCountForDedicatedSlack, sizeof(uint32_t));
34554     vkStream->read((uint32_t*)&forUnmarshaling->minBufferCountForSharedSlack, sizeof(uint32_t));
34555 }
34556 
marshal_VkBufferConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkBufferConstraintsInfoFUCHSIA * forMarshaling)34557 void marshal_VkBufferConstraintsInfoFUCHSIA(VulkanStream* vkStream, VkStructureType rootType,
34558                                             const VkBufferConstraintsInfoFUCHSIA* forMarshaling) {
34559     (void)rootType;
34560     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34561     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34562         rootType = forMarshaling->sType;
34563     }
34564     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34565     marshal_VkBufferCreateInfo(vkStream, rootType,
34566                                (VkBufferCreateInfo*)(&forMarshaling->createInfo));
34567     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->requiredFormatFeatures,
34568                     sizeof(VkFormatFeatureFlags));
34569     marshal_VkBufferCollectionConstraintsInfoFUCHSIA(
34570         vkStream, rootType,
34571         (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forMarshaling->bufferCollectionConstraints));
34572 }
34573 
unmarshal_VkBufferConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkBufferConstraintsInfoFUCHSIA * forUnmarshaling)34574 void unmarshal_VkBufferConstraintsInfoFUCHSIA(VulkanStream* vkStream, VkStructureType rootType,
34575                                               VkBufferConstraintsInfoFUCHSIA* forUnmarshaling) {
34576     (void)rootType;
34577     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34578     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34579         rootType = forUnmarshaling->sType;
34580     }
34581     size_t pNext_size;
34582     pNext_size = vkStream->getBe32();
34583     forUnmarshaling->pNext = nullptr;
34584     if (pNext_size) {
34585         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34586         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34587         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34588         vkStream->alloc((void**)&forUnmarshaling->pNext,
34589                         goldfish_vk_extension_struct_size_with_stream_features(
34590                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34591         *(VkStructureType*)forUnmarshaling->pNext = extType;
34592         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34593     }
34594     unmarshal_VkBufferCreateInfo(vkStream, rootType,
34595                                  (VkBufferCreateInfo*)(&forUnmarshaling->createInfo));
34596     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->requiredFormatFeatures,
34597                    sizeof(VkFormatFeatureFlags));
34598     unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(
34599         vkStream, rootType,
34600         (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forUnmarshaling->bufferCollectionConstraints));
34601 }
34602 
marshal_VkBufferCollectionBufferCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCollectionBufferCreateInfoFUCHSIA * forMarshaling)34603 void marshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
34604     VulkanStream* vkStream, VkStructureType rootType,
34605     const VkBufferCollectionBufferCreateInfoFUCHSIA* forMarshaling) {
34606     (void)rootType;
34607     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34608     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34609         rootType = forMarshaling->sType;
34610     }
34611     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34612     uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
34613     vkStream->putBe64(cgen_var_0);
34614     vkStream->write((uint32_t*)&forMarshaling->index, sizeof(uint32_t));
34615 }
34616 
unmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkBufferCollectionBufferCreateInfoFUCHSIA * forUnmarshaling)34617 void unmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
34618     VulkanStream* vkStream, VkStructureType rootType,
34619     VkBufferCollectionBufferCreateInfoFUCHSIA* forUnmarshaling) {
34620     (void)rootType;
34621     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34622     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34623         rootType = forUnmarshaling->sType;
34624     }
34625     size_t pNext_size;
34626     pNext_size = vkStream->getBe32();
34627     forUnmarshaling->pNext = nullptr;
34628     if (pNext_size) {
34629         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34630         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34631         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34632         vkStream->alloc((void**)&forUnmarshaling->pNext,
34633                         goldfish_vk_extension_struct_size_with_stream_features(
34634                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34635         *(VkStructureType*)forUnmarshaling->pNext = extType;
34636         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34637     }
34638     forUnmarshaling->collection = (VkBufferCollectionFUCHSIA)vkStream->getBe64();
34639     vkStream->read((uint32_t*)&forUnmarshaling->index, sizeof(uint32_t));
34640 }
34641 
marshal_VkSysmemColorSpaceFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkSysmemColorSpaceFUCHSIA * forMarshaling)34642 void marshal_VkSysmemColorSpaceFUCHSIA(VulkanStream* vkStream, VkStructureType rootType,
34643                                        const VkSysmemColorSpaceFUCHSIA* forMarshaling) {
34644     (void)rootType;
34645     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34646     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34647         rootType = forMarshaling->sType;
34648     }
34649     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34650     vkStream->write((uint32_t*)&forMarshaling->colorSpace, sizeof(uint32_t));
34651 }
34652 
unmarshal_VkSysmemColorSpaceFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkSysmemColorSpaceFUCHSIA * forUnmarshaling)34653 void unmarshal_VkSysmemColorSpaceFUCHSIA(VulkanStream* vkStream, VkStructureType rootType,
34654                                          VkSysmemColorSpaceFUCHSIA* forUnmarshaling) {
34655     (void)rootType;
34656     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34657     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34658         rootType = forUnmarshaling->sType;
34659     }
34660     size_t pNext_size;
34661     pNext_size = vkStream->getBe32();
34662     forUnmarshaling->pNext = nullptr;
34663     if (pNext_size) {
34664         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34665         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34666         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34667         vkStream->alloc((void**)&forUnmarshaling->pNext,
34668                         goldfish_vk_extension_struct_size_with_stream_features(
34669                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34670         *(VkStructureType*)forUnmarshaling->pNext = extType;
34671         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34672     }
34673     vkStream->read((uint32_t*)&forUnmarshaling->colorSpace, sizeof(uint32_t));
34674 }
34675 
marshal_VkBufferCollectionPropertiesFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkBufferCollectionPropertiesFUCHSIA * forMarshaling)34676 void marshal_VkBufferCollectionPropertiesFUCHSIA(
34677     VulkanStream* vkStream, VkStructureType rootType,
34678     const VkBufferCollectionPropertiesFUCHSIA* forMarshaling) {
34679     (void)rootType;
34680     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34681     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34682         rootType = forMarshaling->sType;
34683     }
34684     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34685     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
34686     vkStream->write((uint32_t*)&forMarshaling->bufferCount, sizeof(uint32_t));
34687     vkStream->write((uint32_t*)&forMarshaling->createInfoIndex, sizeof(uint32_t));
34688     vkStream->write((uint64_t*)&forMarshaling->sysmemPixelFormat, sizeof(uint64_t));
34689     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->formatFeatures,
34690                     sizeof(VkFormatFeatureFlags));
34691     marshal_VkSysmemColorSpaceFUCHSIA(
34692         vkStream, rootType, (VkSysmemColorSpaceFUCHSIA*)(&forMarshaling->sysmemColorSpaceIndex));
34693     marshal_VkComponentMapping(
34694         vkStream, rootType,
34695         (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents));
34696     vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel,
34697                     sizeof(VkSamplerYcbcrModelConversion));
34698     vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange,
34699                     sizeof(VkSamplerYcbcrRange));
34700     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedXChromaOffset,
34701                     sizeof(VkChromaLocation));
34702     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedYChromaOffset,
34703                     sizeof(VkChromaLocation));
34704 }
34705 
unmarshal_VkBufferCollectionPropertiesFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkBufferCollectionPropertiesFUCHSIA * forUnmarshaling)34706 void unmarshal_VkBufferCollectionPropertiesFUCHSIA(
34707     VulkanStream* vkStream, VkStructureType rootType,
34708     VkBufferCollectionPropertiesFUCHSIA* forUnmarshaling) {
34709     (void)rootType;
34710     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34711     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34712         rootType = forUnmarshaling->sType;
34713     }
34714     size_t pNext_size;
34715     pNext_size = vkStream->getBe32();
34716     forUnmarshaling->pNext = nullptr;
34717     if (pNext_size) {
34718         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34719         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34720         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34721         vkStream->alloc((void**)&forUnmarshaling->pNext,
34722                         goldfish_vk_extension_struct_size_with_stream_features(
34723                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34724         *(VkStructureType*)forUnmarshaling->pNext = extType;
34725         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34726     }
34727     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
34728     vkStream->read((uint32_t*)&forUnmarshaling->bufferCount, sizeof(uint32_t));
34729     vkStream->read((uint32_t*)&forUnmarshaling->createInfoIndex, sizeof(uint32_t));
34730     vkStream->read((uint64_t*)&forUnmarshaling->sysmemPixelFormat, sizeof(uint64_t));
34731     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->formatFeatures,
34732                    sizeof(VkFormatFeatureFlags));
34733     unmarshal_VkSysmemColorSpaceFUCHSIA(
34734         vkStream, rootType, (VkSysmemColorSpaceFUCHSIA*)(&forUnmarshaling->sysmemColorSpaceIndex));
34735     unmarshal_VkComponentMapping(
34736         vkStream, rootType,
34737         (VkComponentMapping*)(&forUnmarshaling->samplerYcbcrConversionComponents));
34738     vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->suggestedYcbcrModel,
34739                    sizeof(VkSamplerYcbcrModelConversion));
34740     vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->suggestedYcbcrRange,
34741                    sizeof(VkSamplerYcbcrRange));
34742     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedXChromaOffset,
34743                    sizeof(VkChromaLocation));
34744     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedYChromaOffset,
34745                    sizeof(VkChromaLocation));
34746 }
34747 
marshal_VkImageFormatConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkImageFormatConstraintsInfoFUCHSIA * forMarshaling)34748 void marshal_VkImageFormatConstraintsInfoFUCHSIA(
34749     VulkanStream* vkStream, VkStructureType rootType,
34750     const VkImageFormatConstraintsInfoFUCHSIA* forMarshaling) {
34751     (void)rootType;
34752     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34753     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34754         rootType = forMarshaling->sType;
34755     }
34756     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34757     marshal_VkImageCreateInfo(vkStream, rootType,
34758                               (VkImageCreateInfo*)(&forMarshaling->imageCreateInfo));
34759     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->requiredFormatFeatures,
34760                     sizeof(VkFormatFeatureFlags));
34761     vkStream->write((VkImageFormatConstraintsFlagsFUCHSIA*)&forMarshaling->flags,
34762                     sizeof(VkImageFormatConstraintsFlagsFUCHSIA));
34763     vkStream->write((uint64_t*)&forMarshaling->sysmemPixelFormat, sizeof(uint64_t));
34764     vkStream->write((uint32_t*)&forMarshaling->colorSpaceCount, sizeof(uint32_t));
34765     if (forMarshaling) {
34766         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorSpaceCount; ++i) {
34767             marshal_VkSysmemColorSpaceFUCHSIA(
34768                 vkStream, rootType,
34769                 (const VkSysmemColorSpaceFUCHSIA*)(forMarshaling->pColorSpaces + i));
34770         }
34771     }
34772 }
34773 
unmarshal_VkImageFormatConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkImageFormatConstraintsInfoFUCHSIA * forUnmarshaling)34774 void unmarshal_VkImageFormatConstraintsInfoFUCHSIA(
34775     VulkanStream* vkStream, VkStructureType rootType,
34776     VkImageFormatConstraintsInfoFUCHSIA* forUnmarshaling) {
34777     (void)rootType;
34778     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34779     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34780         rootType = forUnmarshaling->sType;
34781     }
34782     size_t pNext_size;
34783     pNext_size = vkStream->getBe32();
34784     forUnmarshaling->pNext = nullptr;
34785     if (pNext_size) {
34786         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34787         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34788         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34789         vkStream->alloc((void**)&forUnmarshaling->pNext,
34790                         goldfish_vk_extension_struct_size_with_stream_features(
34791                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34792         *(VkStructureType*)forUnmarshaling->pNext = extType;
34793         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34794     }
34795     unmarshal_VkImageCreateInfo(vkStream, rootType,
34796                                 (VkImageCreateInfo*)(&forUnmarshaling->imageCreateInfo));
34797     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->requiredFormatFeatures,
34798                    sizeof(VkFormatFeatureFlags));
34799     vkStream->read((VkImageFormatConstraintsFlagsFUCHSIA*)&forUnmarshaling->flags,
34800                    sizeof(VkImageFormatConstraintsFlagsFUCHSIA));
34801     vkStream->read((uint64_t*)&forUnmarshaling->sysmemPixelFormat, sizeof(uint64_t));
34802     vkStream->read((uint32_t*)&forUnmarshaling->colorSpaceCount, sizeof(uint32_t));
34803     vkStream->alloc((void**)&forUnmarshaling->pColorSpaces,
34804                     forUnmarshaling->colorSpaceCount * sizeof(const VkSysmemColorSpaceFUCHSIA));
34805     if (forUnmarshaling) {
34806         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorSpaceCount; ++i) {
34807             unmarshal_VkSysmemColorSpaceFUCHSIA(
34808                 vkStream, rootType,
34809                 (VkSysmemColorSpaceFUCHSIA*)(forUnmarshaling->pColorSpaces + i));
34810         }
34811     }
34812 }
34813 
marshal_VkImageConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,const VkImageConstraintsInfoFUCHSIA * forMarshaling)34814 void marshal_VkImageConstraintsInfoFUCHSIA(VulkanStream* vkStream, VkStructureType rootType,
34815                                            const VkImageConstraintsInfoFUCHSIA* forMarshaling) {
34816     (void)rootType;
34817     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34818     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34819         rootType = forMarshaling->sType;
34820     }
34821     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34822     vkStream->write((uint32_t*)&forMarshaling->formatConstraintsCount, sizeof(uint32_t));
34823     if (forMarshaling) {
34824         for (uint32_t i = 0; i < (uint32_t)forMarshaling->formatConstraintsCount; ++i) {
34825             marshal_VkImageFormatConstraintsInfoFUCHSIA(
34826                 vkStream, rootType,
34827                 (const VkImageFormatConstraintsInfoFUCHSIA*)(forMarshaling->pFormatConstraints +
34828                                                              i));
34829         }
34830     }
34831     marshal_VkBufferCollectionConstraintsInfoFUCHSIA(
34832         vkStream, rootType,
34833         (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forMarshaling->bufferCollectionConstraints));
34834     vkStream->write((VkImageConstraintsInfoFlagsFUCHSIA*)&forMarshaling->flags,
34835                     sizeof(VkImageConstraintsInfoFlagsFUCHSIA));
34836 }
34837 
unmarshal_VkImageConstraintsInfoFUCHSIA(VulkanStream * vkStream,VkStructureType rootType,VkImageConstraintsInfoFUCHSIA * forUnmarshaling)34838 void unmarshal_VkImageConstraintsInfoFUCHSIA(VulkanStream* vkStream, VkStructureType rootType,
34839                                              VkImageConstraintsInfoFUCHSIA* forUnmarshaling) {
34840     (void)rootType;
34841     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34842     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34843         rootType = forUnmarshaling->sType;
34844     }
34845     size_t pNext_size;
34846     pNext_size = vkStream->getBe32();
34847     forUnmarshaling->pNext = nullptr;
34848     if (pNext_size) {
34849         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34850         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34851         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34852         vkStream->alloc((void**)&forUnmarshaling->pNext,
34853                         goldfish_vk_extension_struct_size_with_stream_features(
34854                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34855         *(VkStructureType*)forUnmarshaling->pNext = extType;
34856         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34857     }
34858     vkStream->read((uint32_t*)&forUnmarshaling->formatConstraintsCount, sizeof(uint32_t));
34859     vkStream->alloc((void**)&forUnmarshaling->pFormatConstraints,
34860                     forUnmarshaling->formatConstraintsCount *
34861                         sizeof(const VkImageFormatConstraintsInfoFUCHSIA));
34862     if (forUnmarshaling) {
34863         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->formatConstraintsCount; ++i) {
34864             unmarshal_VkImageFormatConstraintsInfoFUCHSIA(
34865                 vkStream, rootType,
34866                 (VkImageFormatConstraintsInfoFUCHSIA*)(forUnmarshaling->pFormatConstraints + i));
34867         }
34868     }
34869     unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(
34870         vkStream, rootType,
34871         (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forUnmarshaling->bufferCollectionConstraints));
34872     vkStream->read((VkImageConstraintsInfoFlagsFUCHSIA*)&forUnmarshaling->flags,
34873                    sizeof(VkImageConstraintsInfoFlagsFUCHSIA));
34874 }
34875 
34876 #endif
34877 #ifdef VK_HUAWEI_subpass_shading
marshal_VkSubpassShadingPipelineCreateInfoHUAWEI(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassShadingPipelineCreateInfoHUAWEI * forMarshaling)34878 void marshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
34879     VulkanStream* vkStream, VkStructureType rootType,
34880     const VkSubpassShadingPipelineCreateInfoHUAWEI* forMarshaling) {
34881     (void)rootType;
34882     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34883     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34884         rootType = forMarshaling->sType;
34885     }
34886     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34887     uint64_t cgen_var_0;
34888     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0,
34889                                                            1);
34890     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
34891     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
34892 }
34893 
unmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(VulkanStream * vkStream,VkStructureType rootType,VkSubpassShadingPipelineCreateInfoHUAWEI * forUnmarshaling)34894 void unmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
34895     VulkanStream* vkStream, VkStructureType rootType,
34896     VkSubpassShadingPipelineCreateInfoHUAWEI* forUnmarshaling) {
34897     (void)rootType;
34898     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34899     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34900         rootType = forUnmarshaling->sType;
34901     }
34902     size_t pNext_size;
34903     pNext_size = vkStream->getBe32();
34904     forUnmarshaling->pNext = nullptr;
34905     if (pNext_size) {
34906         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34907         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34908         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34909         vkStream->alloc((void**)&forUnmarshaling->pNext,
34910                         goldfish_vk_extension_struct_size_with_stream_features(
34911                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34912         *(VkStructureType*)forUnmarshaling->pNext = extType;
34913         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34914     }
34915     uint64_t cgen_var_0;
34916     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
34917     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
34918         &cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
34919     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
34920 }
34921 
marshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI * forMarshaling)34922 void marshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
34923     VulkanStream* vkStream, VkStructureType rootType,
34924     const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forMarshaling) {
34925     (void)rootType;
34926     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34928         rootType = forMarshaling->sType;
34929     }
34930     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34931     vkStream->write((VkBool32*)&forMarshaling->subpassShading, sizeof(VkBool32));
34932 }
34933 
unmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubpassShadingFeaturesHUAWEI * forUnmarshaling)34934 void unmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
34935     VulkanStream* vkStream, VkStructureType rootType,
34936     VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forUnmarshaling) {
34937     (void)rootType;
34938     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34939     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34940         rootType = forUnmarshaling->sType;
34941     }
34942     size_t pNext_size;
34943     pNext_size = vkStream->getBe32();
34944     forUnmarshaling->pNext = nullptr;
34945     if (pNext_size) {
34946         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34947         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34948         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34949         vkStream->alloc((void**)&forUnmarshaling->pNext,
34950                         goldfish_vk_extension_struct_size_with_stream_features(
34951                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34952         *(VkStructureType*)forUnmarshaling->pNext = extType;
34953         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34954     }
34955     vkStream->read((VkBool32*)&forUnmarshaling->subpassShading, sizeof(VkBool32));
34956 }
34957 
marshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI * forMarshaling)34958 void marshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
34959     VulkanStream* vkStream, VkStructureType rootType,
34960     const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forMarshaling) {
34961     (void)rootType;
34962     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
34963     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34964         rootType = forMarshaling->sType;
34965     }
34966     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
34967     vkStream->write((uint32_t*)&forMarshaling->maxSubpassShadingWorkgroupSizeAspectRatio,
34968                     sizeof(uint32_t));
34969 }
34970 
unmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubpassShadingPropertiesHUAWEI * forUnmarshaling)34971 void unmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
34972     VulkanStream* vkStream, VkStructureType rootType,
34973     VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forUnmarshaling) {
34974     (void)rootType;
34975     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
34976     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
34977         rootType = forUnmarshaling->sType;
34978     }
34979     size_t pNext_size;
34980     pNext_size = vkStream->getBe32();
34981     forUnmarshaling->pNext = nullptr;
34982     if (pNext_size) {
34983         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
34984         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
34985         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
34986         vkStream->alloc((void**)&forUnmarshaling->pNext,
34987                         goldfish_vk_extension_struct_size_with_stream_features(
34988                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
34989         *(VkStructureType*)forUnmarshaling->pNext = extType;
34990         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
34991     }
34992     vkStream->read((uint32_t*)&forUnmarshaling->maxSubpassShadingWorkgroupSizeAspectRatio,
34993                    sizeof(uint32_t));
34994 }
34995 
34996 #endif
34997 #ifdef VK_HUAWEI_invocation_mask
marshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI * forMarshaling)34998 void marshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
34999     VulkanStream* vkStream, VkStructureType rootType,
35000     const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forMarshaling) {
35001     (void)rootType;
35002     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35003     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35004         rootType = forMarshaling->sType;
35005     }
35006     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35007     vkStream->write((VkBool32*)&forMarshaling->invocationMask, sizeof(VkBool32));
35008 }
35009 
unmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceInvocationMaskFeaturesHUAWEI * forUnmarshaling)35010 void unmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
35011     VulkanStream* vkStream, VkStructureType rootType,
35012     VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forUnmarshaling) {
35013     (void)rootType;
35014     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35015     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35016         rootType = forUnmarshaling->sType;
35017     }
35018     size_t pNext_size;
35019     pNext_size = vkStream->getBe32();
35020     forUnmarshaling->pNext = nullptr;
35021     if (pNext_size) {
35022         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35023         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35024         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35025         vkStream->alloc((void**)&forUnmarshaling->pNext,
35026                         goldfish_vk_extension_struct_size_with_stream_features(
35027                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35028         *(VkStructureType*)forUnmarshaling->pNext = extType;
35029         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35030     }
35031     vkStream->read((VkBool32*)&forUnmarshaling->invocationMask, sizeof(VkBool32));
35032 }
35033 
35034 #endif
35035 #ifdef VK_NV_external_memory_rdma
marshal_VkMemoryGetRemoteAddressInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkMemoryGetRemoteAddressInfoNV * forMarshaling)35036 void marshal_VkMemoryGetRemoteAddressInfoNV(VulkanStream* vkStream, VkStructureType rootType,
35037                                             const VkMemoryGetRemoteAddressInfoNV* forMarshaling) {
35038     (void)rootType;
35039     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35040     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35041         rootType = forMarshaling->sType;
35042     }
35043     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35044     uint64_t cgen_var_0;
35045     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
35046                                                              1);
35047     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
35048     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
35049                     sizeof(VkExternalMemoryHandleTypeFlagBits));
35050 }
35051 
unmarshal_VkMemoryGetRemoteAddressInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkMemoryGetRemoteAddressInfoNV * forUnmarshaling)35052 void unmarshal_VkMemoryGetRemoteAddressInfoNV(VulkanStream* vkStream, VkStructureType rootType,
35053                                               VkMemoryGetRemoteAddressInfoNV* forUnmarshaling) {
35054     (void)rootType;
35055     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35056     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35057         rootType = forUnmarshaling->sType;
35058     }
35059     size_t pNext_size;
35060     pNext_size = vkStream->getBe32();
35061     forUnmarshaling->pNext = nullptr;
35062     if (pNext_size) {
35063         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35064         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35065         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35066         vkStream->alloc((void**)&forUnmarshaling->pNext,
35067                         goldfish_vk_extension_struct_size_with_stream_features(
35068                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35069         *(VkStructureType*)forUnmarshaling->pNext = extType;
35070         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35071     }
35072     uint64_t cgen_var_0;
35073     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
35074     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
35075         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
35076     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
35077                    sizeof(VkExternalMemoryHandleTypeFlagBits));
35078 }
35079 
marshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV * forMarshaling)35080 void marshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
35081     VulkanStream* vkStream, VkStructureType rootType,
35082     const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forMarshaling) {
35083     (void)rootType;
35084     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35085     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35086         rootType = forMarshaling->sType;
35087     }
35088     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35089     vkStream->write((VkBool32*)&forMarshaling->externalMemoryRDMA, sizeof(VkBool32));
35090 }
35091 
unmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalMemoryRDMAFeaturesNV * forUnmarshaling)35092 void unmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
35093     VulkanStream* vkStream, VkStructureType rootType,
35094     VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forUnmarshaling) {
35095     (void)rootType;
35096     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35097     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35098         rootType = forUnmarshaling->sType;
35099     }
35100     size_t pNext_size;
35101     pNext_size = vkStream->getBe32();
35102     forUnmarshaling->pNext = nullptr;
35103     if (pNext_size) {
35104         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35105         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35106         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35107         vkStream->alloc((void**)&forUnmarshaling->pNext,
35108                         goldfish_vk_extension_struct_size_with_stream_features(
35109                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35110         *(VkStructureType*)forUnmarshaling->pNext = extType;
35111         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35112     }
35113     vkStream->read((VkBool32*)&forUnmarshaling->externalMemoryRDMA, sizeof(VkBool32));
35114 }
35115 
35116 #endif
35117 #ifdef VK_EXT_pipeline_properties
marshal_VkPipelinePropertiesIdentifierEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelinePropertiesIdentifierEXT * forMarshaling)35118 void marshal_VkPipelinePropertiesIdentifierEXT(
35119     VulkanStream* vkStream, VkStructureType rootType,
35120     const VkPipelinePropertiesIdentifierEXT* forMarshaling) {
35121     (void)rootType;
35122     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35123     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35124         rootType = forMarshaling->sType;
35125     }
35126     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35127     vkStream->write((uint8_t*)forMarshaling->pipelineIdentifier, VK_UUID_SIZE * sizeof(uint8_t));
35128 }
35129 
unmarshal_VkPipelinePropertiesIdentifierEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelinePropertiesIdentifierEXT * forUnmarshaling)35130 void unmarshal_VkPipelinePropertiesIdentifierEXT(
35131     VulkanStream* vkStream, VkStructureType rootType,
35132     VkPipelinePropertiesIdentifierEXT* forUnmarshaling) {
35133     (void)rootType;
35134     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35135     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35136         rootType = forUnmarshaling->sType;
35137     }
35138     size_t pNext_size;
35139     pNext_size = vkStream->getBe32();
35140     forUnmarshaling->pNext = nullptr;
35141     if (pNext_size) {
35142         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35143         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35144         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35145         vkStream->alloc((void**)&forUnmarshaling->pNext,
35146                         goldfish_vk_extension_struct_size_with_stream_features(
35147                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35148         *(VkStructureType*)forUnmarshaling->pNext = extType;
35149         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35150     }
35151     vkStream->read((uint8_t*)forUnmarshaling->pipelineIdentifier, VK_UUID_SIZE * sizeof(uint8_t));
35152 }
35153 
marshal_VkPhysicalDevicePipelinePropertiesFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelinePropertiesFeaturesEXT * forMarshaling)35154 void marshal_VkPhysicalDevicePipelinePropertiesFeaturesEXT(
35155     VulkanStream* vkStream, VkStructureType rootType,
35156     const VkPhysicalDevicePipelinePropertiesFeaturesEXT* forMarshaling) {
35157     (void)rootType;
35158     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35159     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35160         rootType = forMarshaling->sType;
35161     }
35162     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35163     vkStream->write((VkBool32*)&forMarshaling->pipelinePropertiesIdentifier, sizeof(VkBool32));
35164 }
35165 
unmarshal_VkPhysicalDevicePipelinePropertiesFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelinePropertiesFeaturesEXT * forUnmarshaling)35166 void unmarshal_VkPhysicalDevicePipelinePropertiesFeaturesEXT(
35167     VulkanStream* vkStream, VkStructureType rootType,
35168     VkPhysicalDevicePipelinePropertiesFeaturesEXT* forUnmarshaling) {
35169     (void)rootType;
35170     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35171     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35172         rootType = forUnmarshaling->sType;
35173     }
35174     size_t pNext_size;
35175     pNext_size = vkStream->getBe32();
35176     forUnmarshaling->pNext = nullptr;
35177     if (pNext_size) {
35178         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35179         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35180         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35181         vkStream->alloc((void**)&forUnmarshaling->pNext,
35182                         goldfish_vk_extension_struct_size_with_stream_features(
35183                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35184         *(VkStructureType*)forUnmarshaling->pNext = extType;
35185         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35186     }
35187     vkStream->read((VkBool32*)&forUnmarshaling->pipelinePropertiesIdentifier, sizeof(VkBool32));
35188 }
35189 
35190 #endif
35191 #ifdef VK_EXT_multisampled_render_to_single_sampled
marshal_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT * forMarshaling)35192 void marshal_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
35193     VulkanStream* vkStream, VkStructureType rootType,
35194     const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* forMarshaling) {
35195     (void)rootType;
35196     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35197     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35198         rootType = forMarshaling->sType;
35199     }
35200     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35201     vkStream->write((VkBool32*)&forMarshaling->multisampledRenderToSingleSampled, sizeof(VkBool32));
35202 }
35203 
unmarshal_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT * forUnmarshaling)35204 void unmarshal_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
35205     VulkanStream* vkStream, VkStructureType rootType,
35206     VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* forUnmarshaling) {
35207     (void)rootType;
35208     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35209     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35210         rootType = forUnmarshaling->sType;
35211     }
35212     size_t pNext_size;
35213     pNext_size = vkStream->getBe32();
35214     forUnmarshaling->pNext = nullptr;
35215     if (pNext_size) {
35216         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35217         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35218         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35219         vkStream->alloc((void**)&forUnmarshaling->pNext,
35220                         goldfish_vk_extension_struct_size_with_stream_features(
35221                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35222         *(VkStructureType*)forUnmarshaling->pNext = extType;
35223         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35224     }
35225     vkStream->read((VkBool32*)&forUnmarshaling->multisampledRenderToSingleSampled,
35226                    sizeof(VkBool32));
35227 }
35228 
marshal_VkSubpassResolvePerformanceQueryEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassResolvePerformanceQueryEXT * forMarshaling)35229 void marshal_VkSubpassResolvePerformanceQueryEXT(
35230     VulkanStream* vkStream, VkStructureType rootType,
35231     const VkSubpassResolvePerformanceQueryEXT* forMarshaling) {
35232     (void)rootType;
35233     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35234     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35235         rootType = forMarshaling->sType;
35236     }
35237     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35238     vkStream->write((VkBool32*)&forMarshaling->optimal, sizeof(VkBool32));
35239 }
35240 
unmarshal_VkSubpassResolvePerformanceQueryEXT(VulkanStream * vkStream,VkStructureType rootType,VkSubpassResolvePerformanceQueryEXT * forUnmarshaling)35241 void unmarshal_VkSubpassResolvePerformanceQueryEXT(
35242     VulkanStream* vkStream, VkStructureType rootType,
35243     VkSubpassResolvePerformanceQueryEXT* forUnmarshaling) {
35244     (void)rootType;
35245     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35246     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35247         rootType = forUnmarshaling->sType;
35248     }
35249     size_t pNext_size;
35250     pNext_size = vkStream->getBe32();
35251     forUnmarshaling->pNext = nullptr;
35252     if (pNext_size) {
35253         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35254         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35255         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35256         vkStream->alloc((void**)&forUnmarshaling->pNext,
35257                         goldfish_vk_extension_struct_size_with_stream_features(
35258                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35259         *(VkStructureType*)forUnmarshaling->pNext = extType;
35260         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35261     }
35262     vkStream->read((VkBool32*)&forUnmarshaling->optimal, sizeof(VkBool32));
35263 }
35264 
marshal_VkMultisampledRenderToSingleSampledInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMultisampledRenderToSingleSampledInfoEXT * forMarshaling)35265 void marshal_VkMultisampledRenderToSingleSampledInfoEXT(
35266     VulkanStream* vkStream, VkStructureType rootType,
35267     const VkMultisampledRenderToSingleSampledInfoEXT* forMarshaling) {
35268     (void)rootType;
35269     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35270     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35271         rootType = forMarshaling->sType;
35272     }
35273     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35274     vkStream->write((VkBool32*)&forMarshaling->multisampledRenderToSingleSampledEnable,
35275                     sizeof(VkBool32));
35276     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
35277                     sizeof(VkSampleCountFlagBits));
35278 }
35279 
unmarshal_VkMultisampledRenderToSingleSampledInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMultisampledRenderToSingleSampledInfoEXT * forUnmarshaling)35280 void unmarshal_VkMultisampledRenderToSingleSampledInfoEXT(
35281     VulkanStream* vkStream, VkStructureType rootType,
35282     VkMultisampledRenderToSingleSampledInfoEXT* forUnmarshaling) {
35283     (void)rootType;
35284     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35285     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35286         rootType = forUnmarshaling->sType;
35287     }
35288     size_t pNext_size;
35289     pNext_size = vkStream->getBe32();
35290     forUnmarshaling->pNext = nullptr;
35291     if (pNext_size) {
35292         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35293         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35294         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35295         vkStream->alloc((void**)&forUnmarshaling->pNext,
35296                         goldfish_vk_extension_struct_size_with_stream_features(
35297                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35298         *(VkStructureType*)forUnmarshaling->pNext = extType;
35299         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35300     }
35301     vkStream->read((VkBool32*)&forUnmarshaling->multisampledRenderToSingleSampledEnable,
35302                    sizeof(VkBool32));
35303     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples,
35304                    sizeof(VkSampleCountFlagBits));
35305 }
35306 
35307 #endif
35308 #ifdef VK_EXT_extended_dynamic_state2
marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forMarshaling)35309 void marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
35310     VulkanStream* vkStream, VkStructureType rootType,
35311     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling) {
35312     (void)rootType;
35313     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35314     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35315         rootType = forMarshaling->sType;
35316     }
35317     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35318     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2, sizeof(VkBool32));
35319     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
35320     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2PatchControlPoints,
35321                     sizeof(VkBool32));
35322 }
35323 
unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forUnmarshaling)35324 void unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
35325     VulkanStream* vkStream, VkStructureType rootType,
35326     VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forUnmarshaling) {
35327     (void)rootType;
35328     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35329     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35330         rootType = forUnmarshaling->sType;
35331     }
35332     size_t pNext_size;
35333     pNext_size = vkStream->getBe32();
35334     forUnmarshaling->pNext = nullptr;
35335     if (pNext_size) {
35336         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35337         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35338         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35339         vkStream->alloc((void**)&forUnmarshaling->pNext,
35340                         goldfish_vk_extension_struct_size_with_stream_features(
35341                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35342         *(VkStructureType*)forUnmarshaling->pNext = extType;
35343         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35344     }
35345     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2, sizeof(VkBool32));
35346     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
35347     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2PatchControlPoints,
35348                    sizeof(VkBool32));
35349 }
35350 
35351 #endif
35352 #ifdef VK_QNX_screen_surface
marshal_VkScreenSurfaceCreateInfoQNX(VulkanStream * vkStream,VkStructureType rootType,const VkScreenSurfaceCreateInfoQNX * forMarshaling)35353 void marshal_VkScreenSurfaceCreateInfoQNX(VulkanStream* vkStream, VkStructureType rootType,
35354                                           const VkScreenSurfaceCreateInfoQNX* forMarshaling) {
35355     (void)rootType;
35356     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35357     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35358         rootType = forMarshaling->sType;
35359     }
35360     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35361     vkStream->write((VkScreenSurfaceCreateFlagsQNX*)&forMarshaling->flags,
35362                     sizeof(VkScreenSurfaceCreateFlagsQNX));
35363     // WARNING PTR CHECK
35364     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->context;
35365     vkStream->putBe64(cgen_var_0);
35366     if (forMarshaling->context) {
35367         vkStream->write((_screen_context*)forMarshaling->context, sizeof(_screen_context));
35368     }
35369     // WARNING PTR CHECK
35370     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->window;
35371     vkStream->putBe64(cgen_var_1);
35372     if (forMarshaling->window) {
35373         vkStream->write((_screen_window*)forMarshaling->window, sizeof(_screen_window));
35374     }
35375 }
35376 
unmarshal_VkScreenSurfaceCreateInfoQNX(VulkanStream * vkStream,VkStructureType rootType,VkScreenSurfaceCreateInfoQNX * forUnmarshaling)35377 void unmarshal_VkScreenSurfaceCreateInfoQNX(VulkanStream* vkStream, VkStructureType rootType,
35378                                             VkScreenSurfaceCreateInfoQNX* forUnmarshaling) {
35379     (void)rootType;
35380     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35381     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35382         rootType = forUnmarshaling->sType;
35383     }
35384     size_t pNext_size;
35385     pNext_size = vkStream->getBe32();
35386     forUnmarshaling->pNext = nullptr;
35387     if (pNext_size) {
35388         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35389         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35390         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35391         vkStream->alloc((void**)&forUnmarshaling->pNext,
35392                         goldfish_vk_extension_struct_size_with_stream_features(
35393                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35394         *(VkStructureType*)forUnmarshaling->pNext = extType;
35395         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35396     }
35397     vkStream->read((VkScreenSurfaceCreateFlagsQNX*)&forUnmarshaling->flags,
35398                    sizeof(VkScreenSurfaceCreateFlagsQNX));
35399     // WARNING PTR CHECK
35400     forUnmarshaling->context = (_screen_context*)(uintptr_t)vkStream->getBe64();
35401     if (forUnmarshaling->context) {
35402         vkStream->alloc((void**)&forUnmarshaling->context, sizeof(_screen_context));
35403         vkStream->read((_screen_context*)forUnmarshaling->context, sizeof(_screen_context));
35404     }
35405     // WARNING PTR CHECK
35406     forUnmarshaling->window = (_screen_window*)(uintptr_t)vkStream->getBe64();
35407     if (forUnmarshaling->window) {
35408         vkStream->alloc((void**)&forUnmarshaling->window, sizeof(_screen_window));
35409         vkStream->read((_screen_window*)forUnmarshaling->window, sizeof(_screen_window));
35410     }
35411 }
35412 
35413 #endif
35414 #ifdef VK_EXT_color_write_enable
marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceColorWriteEnableFeaturesEXT * forMarshaling)35415 void marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
35416     VulkanStream* vkStream, VkStructureType rootType,
35417     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling) {
35418     (void)rootType;
35419     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35420     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35421         rootType = forMarshaling->sType;
35422     }
35423     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35424     vkStream->write((VkBool32*)&forMarshaling->colorWriteEnable, sizeof(VkBool32));
35425 }
35426 
unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceColorWriteEnableFeaturesEXT * forUnmarshaling)35427 void unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
35428     VulkanStream* vkStream, VkStructureType rootType,
35429     VkPhysicalDeviceColorWriteEnableFeaturesEXT* forUnmarshaling) {
35430     (void)rootType;
35431     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35432     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35433         rootType = forUnmarshaling->sType;
35434     }
35435     size_t pNext_size;
35436     pNext_size = vkStream->getBe32();
35437     forUnmarshaling->pNext = nullptr;
35438     if (pNext_size) {
35439         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35440         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35441         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35442         vkStream->alloc((void**)&forUnmarshaling->pNext,
35443                         goldfish_vk_extension_struct_size_with_stream_features(
35444                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35445         *(VkStructureType*)forUnmarshaling->pNext = extType;
35446         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35447     }
35448     vkStream->read((VkBool32*)&forUnmarshaling->colorWriteEnable, sizeof(VkBool32));
35449 }
35450 
marshal_VkPipelineColorWriteCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineColorWriteCreateInfoEXT * forMarshaling)35451 void marshal_VkPipelineColorWriteCreateInfoEXT(
35452     VulkanStream* vkStream, VkStructureType rootType,
35453     const VkPipelineColorWriteCreateInfoEXT* forMarshaling) {
35454     (void)rootType;
35455     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35456     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35457         rootType = forMarshaling->sType;
35458     }
35459     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35460     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
35461     vkStream->write((const VkBool32*)forMarshaling->pColorWriteEnables,
35462                     forMarshaling->attachmentCount * sizeof(const VkBool32));
35463 }
35464 
unmarshal_VkPipelineColorWriteCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineColorWriteCreateInfoEXT * forUnmarshaling)35465 void unmarshal_VkPipelineColorWriteCreateInfoEXT(
35466     VulkanStream* vkStream, VkStructureType rootType,
35467     VkPipelineColorWriteCreateInfoEXT* forUnmarshaling) {
35468     (void)rootType;
35469     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35470     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35471         rootType = forUnmarshaling->sType;
35472     }
35473     size_t pNext_size;
35474     pNext_size = vkStream->getBe32();
35475     forUnmarshaling->pNext = nullptr;
35476     if (pNext_size) {
35477         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35478         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35479         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35480         vkStream->alloc((void**)&forUnmarshaling->pNext,
35481                         goldfish_vk_extension_struct_size_with_stream_features(
35482                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35483         *(VkStructureType*)forUnmarshaling->pNext = extType;
35484         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35485     }
35486     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
35487     vkStream->alloc((void**)&forUnmarshaling->pColorWriteEnables,
35488                     forUnmarshaling->attachmentCount * sizeof(const VkBool32));
35489     vkStream->read((VkBool32*)forUnmarshaling->pColorWriteEnables,
35490                    forUnmarshaling->attachmentCount * sizeof(const VkBool32));
35491 }
35492 
35493 #endif
35494 #ifdef VK_EXT_primitives_generated_query
marshal_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * forMarshaling)35495 void marshal_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(
35496     VulkanStream* vkStream, VkStructureType rootType,
35497     const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* forMarshaling) {
35498     (void)rootType;
35499     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35500     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35501         rootType = forMarshaling->sType;
35502     }
35503     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35504     vkStream->write((VkBool32*)&forMarshaling->primitivesGeneratedQuery, sizeof(VkBool32));
35505     vkStream->write((VkBool32*)&forMarshaling->primitivesGeneratedQueryWithRasterizerDiscard,
35506                     sizeof(VkBool32));
35507     vkStream->write((VkBool32*)&forMarshaling->primitivesGeneratedQueryWithNonZeroStreams,
35508                     sizeof(VkBool32));
35509 }
35510 
unmarshal_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT * forUnmarshaling)35511 void unmarshal_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(
35512     VulkanStream* vkStream, VkStructureType rootType,
35513     VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* forUnmarshaling) {
35514     (void)rootType;
35515     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35516     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35517         rootType = forUnmarshaling->sType;
35518     }
35519     size_t pNext_size;
35520     pNext_size = vkStream->getBe32();
35521     forUnmarshaling->pNext = nullptr;
35522     if (pNext_size) {
35523         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35524         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35525         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35526         vkStream->alloc((void**)&forUnmarshaling->pNext,
35527                         goldfish_vk_extension_struct_size_with_stream_features(
35528                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35529         *(VkStructureType*)forUnmarshaling->pNext = extType;
35530         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35531     }
35532     vkStream->read((VkBool32*)&forUnmarshaling->primitivesGeneratedQuery, sizeof(VkBool32));
35533     vkStream->read((VkBool32*)&forUnmarshaling->primitivesGeneratedQueryWithRasterizerDiscard,
35534                    sizeof(VkBool32));
35535     vkStream->read((VkBool32*)&forUnmarshaling->primitivesGeneratedQueryWithNonZeroStreams,
35536                    sizeof(VkBool32));
35537 }
35538 
35539 #endif
35540 #ifdef VK_GOOGLE_gfxstream
marshal_VkImportColorBufferGOOGLE(VulkanStream * vkStream,VkStructureType rootType,const VkImportColorBufferGOOGLE * forMarshaling)35541 void marshal_VkImportColorBufferGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
35542                                        const VkImportColorBufferGOOGLE* forMarshaling) {
35543     (void)rootType;
35544     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35545     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35546         rootType = forMarshaling->sType;
35547     }
35548     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35549     vkStream->write((uint32_t*)&forMarshaling->colorBuffer, sizeof(uint32_t));
35550 }
35551 
unmarshal_VkImportColorBufferGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkImportColorBufferGOOGLE * forUnmarshaling)35552 void unmarshal_VkImportColorBufferGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
35553                                          VkImportColorBufferGOOGLE* forUnmarshaling) {
35554     (void)rootType;
35555     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35556     forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE;
35557     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35558         rootType = forUnmarshaling->sType;
35559     }
35560     size_t pNext_size;
35561     pNext_size = vkStream->getBe32();
35562     forUnmarshaling->pNext = nullptr;
35563     if (pNext_size) {
35564         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35565         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35566         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35567         vkStream->alloc((void**)&forUnmarshaling->pNext,
35568                         goldfish_vk_extension_struct_size_with_stream_features(
35569                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35570         *(VkStructureType*)forUnmarshaling->pNext = extType;
35571         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35572     }
35573     vkStream->read((uint32_t*)&forUnmarshaling->colorBuffer, sizeof(uint32_t));
35574 }
35575 
marshal_VkImportBufferGOOGLE(VulkanStream * vkStream,VkStructureType rootType,const VkImportBufferGOOGLE * forMarshaling)35576 void marshal_VkImportBufferGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
35577                                   const VkImportBufferGOOGLE* forMarshaling) {
35578     (void)rootType;
35579     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35580     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35581         rootType = forMarshaling->sType;
35582     }
35583     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35584     vkStream->write((uint32_t*)&forMarshaling->buffer, sizeof(uint32_t));
35585 }
35586 
unmarshal_VkImportBufferGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkImportBufferGOOGLE * forUnmarshaling)35587 void unmarshal_VkImportBufferGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
35588                                     VkImportBufferGOOGLE* forUnmarshaling) {
35589     (void)rootType;
35590     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35591     forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE;
35592     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35593         rootType = forUnmarshaling->sType;
35594     }
35595     size_t pNext_size;
35596     pNext_size = vkStream->getBe32();
35597     forUnmarshaling->pNext = nullptr;
35598     if (pNext_size) {
35599         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35600         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35601         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35602         vkStream->alloc((void**)&forUnmarshaling->pNext,
35603                         goldfish_vk_extension_struct_size_with_stream_features(
35604                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35605         *(VkStructureType*)forUnmarshaling->pNext = extType;
35606         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35607     }
35608     vkStream->read((uint32_t*)&forUnmarshaling->buffer, sizeof(uint32_t));
35609 }
35610 
marshal_VkCreateBlobGOOGLE(VulkanStream * vkStream,VkStructureType rootType,const VkCreateBlobGOOGLE * forMarshaling)35611 void marshal_VkCreateBlobGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
35612                                 const VkCreateBlobGOOGLE* forMarshaling) {
35613     (void)rootType;
35614     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35615     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35616         rootType = forMarshaling->sType;
35617     }
35618     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35619     vkStream->write((uint32_t*)&forMarshaling->blobMem, sizeof(uint32_t));
35620     vkStream->write((uint32_t*)&forMarshaling->blobFlags, sizeof(uint32_t));
35621     vkStream->write((uint64_t*)&forMarshaling->blobId, sizeof(uint64_t));
35622 }
35623 
unmarshal_VkCreateBlobGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkCreateBlobGOOGLE * forUnmarshaling)35624 void unmarshal_VkCreateBlobGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
35625                                   VkCreateBlobGOOGLE* forUnmarshaling) {
35626     (void)rootType;
35627     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35628     forUnmarshaling->sType = VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE;
35629     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35630         rootType = forUnmarshaling->sType;
35631     }
35632     size_t pNext_size;
35633     pNext_size = vkStream->getBe32();
35634     forUnmarshaling->pNext = nullptr;
35635     if (pNext_size) {
35636         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35637         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35638         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35639         vkStream->alloc((void**)&forUnmarshaling->pNext,
35640                         goldfish_vk_extension_struct_size_with_stream_features(
35641                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35642         *(VkStructureType*)forUnmarshaling->pNext = extType;
35643         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35644     }
35645     vkStream->read((uint32_t*)&forUnmarshaling->blobMem, sizeof(uint32_t));
35646     vkStream->read((uint32_t*)&forUnmarshaling->blobFlags, sizeof(uint32_t));
35647     vkStream->read((uint64_t*)&forUnmarshaling->blobId, sizeof(uint64_t));
35648 }
35649 
35650 #endif
35651 #ifdef VK_EXT_global_priority_query
35652 #endif
35653 #ifdef VK_EXT_image_view_min_lod
marshal_VkPhysicalDeviceImageViewMinLodFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageViewMinLodFeaturesEXT * forMarshaling)35654 void marshal_VkPhysicalDeviceImageViewMinLodFeaturesEXT(
35655     VulkanStream* vkStream, VkStructureType rootType,
35656     const VkPhysicalDeviceImageViewMinLodFeaturesEXT* forMarshaling) {
35657     (void)rootType;
35658     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35659     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35660         rootType = forMarshaling->sType;
35661     }
35662     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35663     vkStream->write((VkBool32*)&forMarshaling->minLod, sizeof(VkBool32));
35664 }
35665 
unmarshal_VkPhysicalDeviceImageViewMinLodFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageViewMinLodFeaturesEXT * forUnmarshaling)35666 void unmarshal_VkPhysicalDeviceImageViewMinLodFeaturesEXT(
35667     VulkanStream* vkStream, VkStructureType rootType,
35668     VkPhysicalDeviceImageViewMinLodFeaturesEXT* forUnmarshaling) {
35669     (void)rootType;
35670     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35671     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35672         rootType = forUnmarshaling->sType;
35673     }
35674     size_t pNext_size;
35675     pNext_size = vkStream->getBe32();
35676     forUnmarshaling->pNext = nullptr;
35677     if (pNext_size) {
35678         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35679         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35680         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35681         vkStream->alloc((void**)&forUnmarshaling->pNext,
35682                         goldfish_vk_extension_struct_size_with_stream_features(
35683                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35684         *(VkStructureType*)forUnmarshaling->pNext = extType;
35685         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35686     }
35687     vkStream->read((VkBool32*)&forUnmarshaling->minLod, sizeof(VkBool32));
35688 }
35689 
marshal_VkImageViewMinLodCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewMinLodCreateInfoEXT * forMarshaling)35690 void marshal_VkImageViewMinLodCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
35691                                             const VkImageViewMinLodCreateInfoEXT* forMarshaling) {
35692     (void)rootType;
35693     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35694     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35695         rootType = forMarshaling->sType;
35696     }
35697     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35698     vkStream->write((float*)&forMarshaling->minLod, sizeof(float));
35699 }
35700 
unmarshal_VkImageViewMinLodCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageViewMinLodCreateInfoEXT * forUnmarshaling)35701 void unmarshal_VkImageViewMinLodCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
35702                                               VkImageViewMinLodCreateInfoEXT* forUnmarshaling) {
35703     (void)rootType;
35704     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35705     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35706         rootType = forUnmarshaling->sType;
35707     }
35708     size_t pNext_size;
35709     pNext_size = vkStream->getBe32();
35710     forUnmarshaling->pNext = nullptr;
35711     if (pNext_size) {
35712         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35713         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35714         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35715         vkStream->alloc((void**)&forUnmarshaling->pNext,
35716                         goldfish_vk_extension_struct_size_with_stream_features(
35717                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35718         *(VkStructureType*)forUnmarshaling->pNext = extType;
35719         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35720     }
35721     vkStream->read((float*)&forUnmarshaling->minLod, sizeof(float));
35722 }
35723 
35724 #endif
35725 #ifdef VK_EXT_multi_draw
marshal_VkPhysicalDeviceMultiDrawFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiDrawFeaturesEXT * forMarshaling)35726 void marshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
35727     VulkanStream* vkStream, VkStructureType rootType,
35728     const VkPhysicalDeviceMultiDrawFeaturesEXT* forMarshaling) {
35729     (void)rootType;
35730     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35731     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35732         rootType = forMarshaling->sType;
35733     }
35734     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35735     vkStream->write((VkBool32*)&forMarshaling->multiDraw, sizeof(VkBool32));
35736 }
35737 
unmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiDrawFeaturesEXT * forUnmarshaling)35738 void unmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
35739     VulkanStream* vkStream, VkStructureType rootType,
35740     VkPhysicalDeviceMultiDrawFeaturesEXT* forUnmarshaling) {
35741     (void)rootType;
35742     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35743     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35744         rootType = forUnmarshaling->sType;
35745     }
35746     size_t pNext_size;
35747     pNext_size = vkStream->getBe32();
35748     forUnmarshaling->pNext = nullptr;
35749     if (pNext_size) {
35750         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35751         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35752         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35753         vkStream->alloc((void**)&forUnmarshaling->pNext,
35754                         goldfish_vk_extension_struct_size_with_stream_features(
35755                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35756         *(VkStructureType*)forUnmarshaling->pNext = extType;
35757         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35758     }
35759     vkStream->read((VkBool32*)&forUnmarshaling->multiDraw, sizeof(VkBool32));
35760 }
35761 
marshal_VkPhysicalDeviceMultiDrawPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiDrawPropertiesEXT * forMarshaling)35762 void marshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
35763     VulkanStream* vkStream, VkStructureType rootType,
35764     const VkPhysicalDeviceMultiDrawPropertiesEXT* forMarshaling) {
35765     (void)rootType;
35766     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35767     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35768         rootType = forMarshaling->sType;
35769     }
35770     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35771     vkStream->write((uint32_t*)&forMarshaling->maxMultiDrawCount, sizeof(uint32_t));
35772 }
35773 
unmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiDrawPropertiesEXT * forUnmarshaling)35774 void unmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
35775     VulkanStream* vkStream, VkStructureType rootType,
35776     VkPhysicalDeviceMultiDrawPropertiesEXT* forUnmarshaling) {
35777     (void)rootType;
35778     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35779     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35780         rootType = forUnmarshaling->sType;
35781     }
35782     size_t pNext_size;
35783     pNext_size = vkStream->getBe32();
35784     forUnmarshaling->pNext = nullptr;
35785     if (pNext_size) {
35786         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35787         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35788         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35789         vkStream->alloc((void**)&forUnmarshaling->pNext,
35790                         goldfish_vk_extension_struct_size_with_stream_features(
35791                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35792         *(VkStructureType*)forUnmarshaling->pNext = extType;
35793         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35794     }
35795     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiDrawCount, sizeof(uint32_t));
35796 }
35797 
marshal_VkMultiDrawInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMultiDrawInfoEXT * forMarshaling)35798 void marshal_VkMultiDrawInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
35799                                 const VkMultiDrawInfoEXT* forMarshaling) {
35800     (void)rootType;
35801     vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
35802     vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
35803 }
35804 
unmarshal_VkMultiDrawInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMultiDrawInfoEXT * forUnmarshaling)35805 void unmarshal_VkMultiDrawInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
35806                                   VkMultiDrawInfoEXT* forUnmarshaling) {
35807     (void)rootType;
35808     vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
35809     vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
35810 }
35811 
marshal_VkMultiDrawIndexedInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMultiDrawIndexedInfoEXT * forMarshaling)35812 void marshal_VkMultiDrawIndexedInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
35813                                        const VkMultiDrawIndexedInfoEXT* forMarshaling) {
35814     (void)rootType;
35815     vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
35816     vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
35817     vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
35818 }
35819 
unmarshal_VkMultiDrawIndexedInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMultiDrawIndexedInfoEXT * forUnmarshaling)35820 void unmarshal_VkMultiDrawIndexedInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
35821                                          VkMultiDrawIndexedInfoEXT* forUnmarshaling) {
35822     (void)rootType;
35823     vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
35824     vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
35825     vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
35826 }
35827 
35828 #endif
35829 #ifdef VK_EXT_image_2d_view_of_3d
marshal_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT * forMarshaling)35830 void marshal_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(
35831     VulkanStream* vkStream, VkStructureType rootType,
35832     const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* forMarshaling) {
35833     (void)rootType;
35834     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35835     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35836         rootType = forMarshaling->sType;
35837     }
35838     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35839     vkStream->write((VkBool32*)&forMarshaling->image2DViewOf3D, sizeof(VkBool32));
35840     vkStream->write((VkBool32*)&forMarshaling->sampler2DViewOf3D, sizeof(VkBool32));
35841 }
35842 
unmarshal_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImage2DViewOf3DFeaturesEXT * forUnmarshaling)35843 void unmarshal_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(
35844     VulkanStream* vkStream, VkStructureType rootType,
35845     VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* forUnmarshaling) {
35846     (void)rootType;
35847     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35848     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35849         rootType = forUnmarshaling->sType;
35850     }
35851     size_t pNext_size;
35852     pNext_size = vkStream->getBe32();
35853     forUnmarshaling->pNext = nullptr;
35854     if (pNext_size) {
35855         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35856         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35857         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35858         vkStream->alloc((void**)&forUnmarshaling->pNext,
35859                         goldfish_vk_extension_struct_size_with_stream_features(
35860                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35861         *(VkStructureType*)forUnmarshaling->pNext = extType;
35862         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35863     }
35864     vkStream->read((VkBool32*)&forUnmarshaling->image2DViewOf3D, sizeof(VkBool32));
35865     vkStream->read((VkBool32*)&forUnmarshaling->sampler2DViewOf3D, sizeof(VkBool32));
35866 }
35867 
35868 #endif
35869 #ifdef VK_EXT_shader_tile_image
marshal_VkPhysicalDeviceShaderTileImageFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderTileImageFeaturesEXT * forMarshaling)35870 void marshal_VkPhysicalDeviceShaderTileImageFeaturesEXT(
35871     VulkanStream* vkStream, VkStructureType rootType,
35872     const VkPhysicalDeviceShaderTileImageFeaturesEXT* forMarshaling) {
35873     (void)rootType;
35874     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35875     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35876         rootType = forMarshaling->sType;
35877     }
35878     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35879     vkStream->write((VkBool32*)&forMarshaling->shaderTileImageColorReadAccess, sizeof(VkBool32));
35880     vkStream->write((VkBool32*)&forMarshaling->shaderTileImageDepthReadAccess, sizeof(VkBool32));
35881     vkStream->write((VkBool32*)&forMarshaling->shaderTileImageStencilReadAccess, sizeof(VkBool32));
35882 }
35883 
unmarshal_VkPhysicalDeviceShaderTileImageFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderTileImageFeaturesEXT * forUnmarshaling)35884 void unmarshal_VkPhysicalDeviceShaderTileImageFeaturesEXT(
35885     VulkanStream* vkStream, VkStructureType rootType,
35886     VkPhysicalDeviceShaderTileImageFeaturesEXT* forUnmarshaling) {
35887     (void)rootType;
35888     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35889     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35890         rootType = forUnmarshaling->sType;
35891     }
35892     size_t pNext_size;
35893     pNext_size = vkStream->getBe32();
35894     forUnmarshaling->pNext = nullptr;
35895     if (pNext_size) {
35896         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35897         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35898         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35899         vkStream->alloc((void**)&forUnmarshaling->pNext,
35900                         goldfish_vk_extension_struct_size_with_stream_features(
35901                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35902         *(VkStructureType*)forUnmarshaling->pNext = extType;
35903         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35904     }
35905     vkStream->read((VkBool32*)&forUnmarshaling->shaderTileImageColorReadAccess, sizeof(VkBool32));
35906     vkStream->read((VkBool32*)&forUnmarshaling->shaderTileImageDepthReadAccess, sizeof(VkBool32));
35907     vkStream->read((VkBool32*)&forUnmarshaling->shaderTileImageStencilReadAccess, sizeof(VkBool32));
35908 }
35909 
marshal_VkPhysicalDeviceShaderTileImagePropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderTileImagePropertiesEXT * forMarshaling)35910 void marshal_VkPhysicalDeviceShaderTileImagePropertiesEXT(
35911     VulkanStream* vkStream, VkStructureType rootType,
35912     const VkPhysicalDeviceShaderTileImagePropertiesEXT* forMarshaling) {
35913     (void)rootType;
35914     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35915     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35916         rootType = forMarshaling->sType;
35917     }
35918     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35919     vkStream->write((VkBool32*)&forMarshaling->shaderTileImageCoherentReadAccelerated,
35920                     sizeof(VkBool32));
35921     vkStream->write((VkBool32*)&forMarshaling->shaderTileImageReadSampleFromPixelRateInvocation,
35922                     sizeof(VkBool32));
35923     vkStream->write((VkBool32*)&forMarshaling->shaderTileImageReadFromHelperInvocation,
35924                     sizeof(VkBool32));
35925 }
35926 
unmarshal_VkPhysicalDeviceShaderTileImagePropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderTileImagePropertiesEXT * forUnmarshaling)35927 void unmarshal_VkPhysicalDeviceShaderTileImagePropertiesEXT(
35928     VulkanStream* vkStream, VkStructureType rootType,
35929     VkPhysicalDeviceShaderTileImagePropertiesEXT* forUnmarshaling) {
35930     (void)rootType;
35931     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
35932     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35933         rootType = forUnmarshaling->sType;
35934     }
35935     size_t pNext_size;
35936     pNext_size = vkStream->getBe32();
35937     forUnmarshaling->pNext = nullptr;
35938     if (pNext_size) {
35939         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
35940         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
35941         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
35942         vkStream->alloc((void**)&forUnmarshaling->pNext,
35943                         goldfish_vk_extension_struct_size_with_stream_features(
35944                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
35945         *(VkStructureType*)forUnmarshaling->pNext = extType;
35946         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
35947     }
35948     vkStream->read((VkBool32*)&forUnmarshaling->shaderTileImageCoherentReadAccelerated,
35949                    sizeof(VkBool32));
35950     vkStream->read((VkBool32*)&forUnmarshaling->shaderTileImageReadSampleFromPixelRateInvocation,
35951                    sizeof(VkBool32));
35952     vkStream->read((VkBool32*)&forUnmarshaling->shaderTileImageReadFromHelperInvocation,
35953                    sizeof(VkBool32));
35954 }
35955 
35956 #endif
35957 #ifdef VK_EXT_opacity_micromap
marshal_VkMicromapUsageEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMicromapUsageEXT * forMarshaling)35958 void marshal_VkMicromapUsageEXT(VulkanStream* vkStream, VkStructureType rootType,
35959                                 const VkMicromapUsageEXT* forMarshaling) {
35960     (void)rootType;
35961     vkStream->write((uint32_t*)&forMarshaling->count, sizeof(uint32_t));
35962     vkStream->write((uint32_t*)&forMarshaling->subdivisionLevel, sizeof(uint32_t));
35963     vkStream->write((uint32_t*)&forMarshaling->format, sizeof(uint32_t));
35964 }
35965 
unmarshal_VkMicromapUsageEXT(VulkanStream * vkStream,VkStructureType rootType,VkMicromapUsageEXT * forUnmarshaling)35966 void unmarshal_VkMicromapUsageEXT(VulkanStream* vkStream, VkStructureType rootType,
35967                                   VkMicromapUsageEXT* forUnmarshaling) {
35968     (void)rootType;
35969     vkStream->read((uint32_t*)&forUnmarshaling->count, sizeof(uint32_t));
35970     vkStream->read((uint32_t*)&forUnmarshaling->subdivisionLevel, sizeof(uint32_t));
35971     vkStream->read((uint32_t*)&forUnmarshaling->format, sizeof(uint32_t));
35972 }
35973 
marshal_VkDeviceOrHostAddressKHR(VulkanStream * vkStream,VkStructureType rootType,const VkDeviceOrHostAddressKHR * forMarshaling)35974 void marshal_VkDeviceOrHostAddressKHR(VulkanStream* vkStream, VkStructureType rootType,
35975                                       const VkDeviceOrHostAddressKHR* forMarshaling) {
35976     (void)rootType;
35977     vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
35978 }
35979 
unmarshal_VkDeviceOrHostAddressKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceOrHostAddressKHR * forUnmarshaling)35980 void unmarshal_VkDeviceOrHostAddressKHR(VulkanStream* vkStream, VkStructureType rootType,
35981                                         VkDeviceOrHostAddressKHR* forUnmarshaling) {
35982     (void)rootType;
35983     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
35984 }
35985 
marshal_VkMicromapBuildInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMicromapBuildInfoEXT * forMarshaling)35986 void marshal_VkMicromapBuildInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
35987                                     const VkMicromapBuildInfoEXT* forMarshaling) {
35988     (void)rootType;
35989     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
35990     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
35991         rootType = forMarshaling->sType;
35992     }
35993     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
35994     vkStream->write((VkMicromapTypeEXT*)&forMarshaling->type, sizeof(VkMicromapTypeEXT));
35995     vkStream->write((VkBuildMicromapFlagsEXT*)&forMarshaling->flags,
35996                     sizeof(VkBuildMicromapFlagsEXT));
35997     vkStream->write((VkBuildMicromapModeEXT*)&forMarshaling->mode, sizeof(VkBuildMicromapModeEXT));
35998     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dstMicromap;
35999     vkStream->putBe64(cgen_var_0);
36000     vkStream->write((uint32_t*)&forMarshaling->usageCountsCount, sizeof(uint32_t));
36001     // WARNING PTR CHECK
36002     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pUsageCounts;
36003     vkStream->putBe64(cgen_var_1);
36004     if (forMarshaling->pUsageCounts) {
36005         if (forMarshaling) {
36006             for (uint32_t i = 0; i < (uint32_t)forMarshaling->usageCountsCount; ++i) {
36007                 marshal_VkMicromapUsageEXT(
36008                     vkStream, rootType,
36009                     (const VkMicromapUsageEXT*)(forMarshaling->pUsageCounts + i));
36010             }
36011         }
36012     }
36013     marshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType,
36014                                           (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->data));
36015     marshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
36016                                      (VkDeviceOrHostAddressKHR*)(&forMarshaling->scratchData));
36017     marshal_VkDeviceOrHostAddressConstKHR(
36018         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->triangleArray));
36019     vkStream->write((VkDeviceSize*)&forMarshaling->triangleArrayStride, sizeof(VkDeviceSize));
36020 }
36021 
unmarshal_VkMicromapBuildInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMicromapBuildInfoEXT * forUnmarshaling)36022 void unmarshal_VkMicromapBuildInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36023                                       VkMicromapBuildInfoEXT* forUnmarshaling) {
36024     (void)rootType;
36025     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36026     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36027         rootType = forUnmarshaling->sType;
36028     }
36029     size_t pNext_size;
36030     pNext_size = vkStream->getBe32();
36031     forUnmarshaling->pNext = nullptr;
36032     if (pNext_size) {
36033         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36034         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36035         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36036         vkStream->alloc((void**)&forUnmarshaling->pNext,
36037                         goldfish_vk_extension_struct_size_with_stream_features(
36038                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36039         *(VkStructureType*)forUnmarshaling->pNext = extType;
36040         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36041     }
36042     vkStream->read((VkMicromapTypeEXT*)&forUnmarshaling->type, sizeof(VkMicromapTypeEXT));
36043     vkStream->read((VkBuildMicromapFlagsEXT*)&forUnmarshaling->flags,
36044                    sizeof(VkBuildMicromapFlagsEXT));
36045     vkStream->read((VkBuildMicromapModeEXT*)&forUnmarshaling->mode, sizeof(VkBuildMicromapModeEXT));
36046     forUnmarshaling->dstMicromap = (VkMicromapEXT)vkStream->getBe64();
36047     vkStream->read((uint32_t*)&forUnmarshaling->usageCountsCount, sizeof(uint32_t));
36048     // WARNING PTR CHECK
36049     forUnmarshaling->pUsageCounts = (const VkMicromapUsageEXT*)(uintptr_t)vkStream->getBe64();
36050     if (forUnmarshaling->pUsageCounts) {
36051         vkStream->alloc((void**)&forUnmarshaling->pUsageCounts,
36052                         forUnmarshaling->usageCountsCount * sizeof(const VkMicromapUsageEXT));
36053         if (forUnmarshaling) {
36054             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->usageCountsCount; ++i) {
36055                 unmarshal_VkMicromapUsageEXT(
36056                     vkStream, rootType, (VkMicromapUsageEXT*)(forUnmarshaling->pUsageCounts + i));
36057             }
36058         }
36059     }
36060     unmarshal_VkDeviceOrHostAddressConstKHR(
36061         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->data));
36062     unmarshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
36063                                        (VkDeviceOrHostAddressKHR*)(&forUnmarshaling->scratchData));
36064     unmarshal_VkDeviceOrHostAddressConstKHR(
36065         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->triangleArray));
36066     vkStream->read((VkDeviceSize*)&forUnmarshaling->triangleArrayStride, sizeof(VkDeviceSize));
36067 }
36068 
marshal_VkMicromapCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMicromapCreateInfoEXT * forMarshaling)36069 void marshal_VkMicromapCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36070                                      const VkMicromapCreateInfoEXT* forMarshaling) {
36071     (void)rootType;
36072     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36073     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36074         rootType = forMarshaling->sType;
36075     }
36076     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36077     vkStream->write((VkMicromapCreateFlagsEXT*)&forMarshaling->createFlags,
36078                     sizeof(VkMicromapCreateFlagsEXT));
36079     uint64_t cgen_var_0;
36080     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
36081     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
36082     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
36083     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
36084     vkStream->write((VkMicromapTypeEXT*)&forMarshaling->type, sizeof(VkMicromapTypeEXT));
36085     vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
36086 }
36087 
unmarshal_VkMicromapCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMicromapCreateInfoEXT * forUnmarshaling)36088 void unmarshal_VkMicromapCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36089                                        VkMicromapCreateInfoEXT* forUnmarshaling) {
36090     (void)rootType;
36091     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36092     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36093         rootType = forUnmarshaling->sType;
36094     }
36095     size_t pNext_size;
36096     pNext_size = vkStream->getBe32();
36097     forUnmarshaling->pNext = nullptr;
36098     if (pNext_size) {
36099         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36100         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36101         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36102         vkStream->alloc((void**)&forUnmarshaling->pNext,
36103                         goldfish_vk_extension_struct_size_with_stream_features(
36104                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36105         *(VkStructureType*)forUnmarshaling->pNext = extType;
36106         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36107     }
36108     vkStream->read((VkMicromapCreateFlagsEXT*)&forUnmarshaling->createFlags,
36109                    sizeof(VkMicromapCreateFlagsEXT));
36110     uint64_t cgen_var_0;
36111     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
36112     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
36113                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
36114     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
36115     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
36116     vkStream->read((VkMicromapTypeEXT*)&forUnmarshaling->type, sizeof(VkMicromapTypeEXT));
36117     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
36118 }
36119 
marshal_VkPhysicalDeviceOpacityMicromapFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceOpacityMicromapFeaturesEXT * forMarshaling)36120 void marshal_VkPhysicalDeviceOpacityMicromapFeaturesEXT(
36121     VulkanStream* vkStream, VkStructureType rootType,
36122     const VkPhysicalDeviceOpacityMicromapFeaturesEXT* forMarshaling) {
36123     (void)rootType;
36124     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36125     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36126         rootType = forMarshaling->sType;
36127     }
36128     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36129     vkStream->write((VkBool32*)&forMarshaling->micromap, sizeof(VkBool32));
36130     vkStream->write((VkBool32*)&forMarshaling->micromapCaptureReplay, sizeof(VkBool32));
36131     vkStream->write((VkBool32*)&forMarshaling->micromapHostCommands, sizeof(VkBool32));
36132 }
36133 
unmarshal_VkPhysicalDeviceOpacityMicromapFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceOpacityMicromapFeaturesEXT * forUnmarshaling)36134 void unmarshal_VkPhysicalDeviceOpacityMicromapFeaturesEXT(
36135     VulkanStream* vkStream, VkStructureType rootType,
36136     VkPhysicalDeviceOpacityMicromapFeaturesEXT* forUnmarshaling) {
36137     (void)rootType;
36138     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36139     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36140         rootType = forUnmarshaling->sType;
36141     }
36142     size_t pNext_size;
36143     pNext_size = vkStream->getBe32();
36144     forUnmarshaling->pNext = nullptr;
36145     if (pNext_size) {
36146         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36147         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36148         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36149         vkStream->alloc((void**)&forUnmarshaling->pNext,
36150                         goldfish_vk_extension_struct_size_with_stream_features(
36151                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36152         *(VkStructureType*)forUnmarshaling->pNext = extType;
36153         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36154     }
36155     vkStream->read((VkBool32*)&forUnmarshaling->micromap, sizeof(VkBool32));
36156     vkStream->read((VkBool32*)&forUnmarshaling->micromapCaptureReplay, sizeof(VkBool32));
36157     vkStream->read((VkBool32*)&forUnmarshaling->micromapHostCommands, sizeof(VkBool32));
36158 }
36159 
marshal_VkPhysicalDeviceOpacityMicromapPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceOpacityMicromapPropertiesEXT * forMarshaling)36160 void marshal_VkPhysicalDeviceOpacityMicromapPropertiesEXT(
36161     VulkanStream* vkStream, VkStructureType rootType,
36162     const VkPhysicalDeviceOpacityMicromapPropertiesEXT* forMarshaling) {
36163     (void)rootType;
36164     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36165     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36166         rootType = forMarshaling->sType;
36167     }
36168     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36169     vkStream->write((uint32_t*)&forMarshaling->maxOpacity2StateSubdivisionLevel, sizeof(uint32_t));
36170     vkStream->write((uint32_t*)&forMarshaling->maxOpacity4StateSubdivisionLevel, sizeof(uint32_t));
36171 }
36172 
unmarshal_VkPhysicalDeviceOpacityMicromapPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceOpacityMicromapPropertiesEXT * forUnmarshaling)36173 void unmarshal_VkPhysicalDeviceOpacityMicromapPropertiesEXT(
36174     VulkanStream* vkStream, VkStructureType rootType,
36175     VkPhysicalDeviceOpacityMicromapPropertiesEXT* forUnmarshaling) {
36176     (void)rootType;
36177     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36178     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36179         rootType = forUnmarshaling->sType;
36180     }
36181     size_t pNext_size;
36182     pNext_size = vkStream->getBe32();
36183     forUnmarshaling->pNext = nullptr;
36184     if (pNext_size) {
36185         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36186         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36187         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36188         vkStream->alloc((void**)&forUnmarshaling->pNext,
36189                         goldfish_vk_extension_struct_size_with_stream_features(
36190                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36191         *(VkStructureType*)forUnmarshaling->pNext = extType;
36192         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36193     }
36194     vkStream->read((uint32_t*)&forUnmarshaling->maxOpacity2StateSubdivisionLevel, sizeof(uint32_t));
36195     vkStream->read((uint32_t*)&forUnmarshaling->maxOpacity4StateSubdivisionLevel, sizeof(uint32_t));
36196 }
36197 
marshal_VkMicromapVersionInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMicromapVersionInfoEXT * forMarshaling)36198 void marshal_VkMicromapVersionInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36199                                       const VkMicromapVersionInfoEXT* forMarshaling) {
36200     (void)rootType;
36201     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36202     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36203         rootType = forMarshaling->sType;
36204     }
36205     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36206     vkStream->write((const uint8_t*)forMarshaling->pVersionData,
36207                     2 * VK_UUID_SIZE * sizeof(const uint8_t));
36208 }
36209 
unmarshal_VkMicromapVersionInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMicromapVersionInfoEXT * forUnmarshaling)36210 void unmarshal_VkMicromapVersionInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36211                                         VkMicromapVersionInfoEXT* forUnmarshaling) {
36212     (void)rootType;
36213     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36214     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36215         rootType = forUnmarshaling->sType;
36216     }
36217     size_t pNext_size;
36218     pNext_size = vkStream->getBe32();
36219     forUnmarshaling->pNext = nullptr;
36220     if (pNext_size) {
36221         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36222         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36223         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36224         vkStream->alloc((void**)&forUnmarshaling->pNext,
36225                         goldfish_vk_extension_struct_size_with_stream_features(
36226                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36227         *(VkStructureType*)forUnmarshaling->pNext = extType;
36228         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36229     }
36230     vkStream->alloc((void**)&forUnmarshaling->pVersionData,
36231                     2 * VK_UUID_SIZE * sizeof(const uint8_t));
36232     vkStream->read((uint8_t*)forUnmarshaling->pVersionData,
36233                    2 * VK_UUID_SIZE * sizeof(const uint8_t));
36234 }
36235 
marshal_VkCopyMicromapToMemoryInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkCopyMicromapToMemoryInfoEXT * forMarshaling)36236 void marshal_VkCopyMicromapToMemoryInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36237                                            const VkCopyMicromapToMemoryInfoEXT* forMarshaling) {
36238     (void)rootType;
36239     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36240     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36241         rootType = forMarshaling->sType;
36242     }
36243     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36244     uint64_t cgen_var_0 = (uint64_t)forMarshaling->src;
36245     vkStream->putBe64(cgen_var_0);
36246     marshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
36247                                      (VkDeviceOrHostAddressKHR*)(&forMarshaling->dst));
36248     vkStream->write((VkCopyMicromapModeEXT*)&forMarshaling->mode, sizeof(VkCopyMicromapModeEXT));
36249 }
36250 
unmarshal_VkCopyMicromapToMemoryInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCopyMicromapToMemoryInfoEXT * forUnmarshaling)36251 void unmarshal_VkCopyMicromapToMemoryInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36252                                              VkCopyMicromapToMemoryInfoEXT* forUnmarshaling) {
36253     (void)rootType;
36254     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36256         rootType = forUnmarshaling->sType;
36257     }
36258     size_t pNext_size;
36259     pNext_size = vkStream->getBe32();
36260     forUnmarshaling->pNext = nullptr;
36261     if (pNext_size) {
36262         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36263         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36264         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36265         vkStream->alloc((void**)&forUnmarshaling->pNext,
36266                         goldfish_vk_extension_struct_size_with_stream_features(
36267                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36268         *(VkStructureType*)forUnmarshaling->pNext = extType;
36269         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36270     }
36271     forUnmarshaling->src = (VkMicromapEXT)vkStream->getBe64();
36272     unmarshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
36273                                        (VkDeviceOrHostAddressKHR*)(&forUnmarshaling->dst));
36274     vkStream->read((VkCopyMicromapModeEXT*)&forUnmarshaling->mode, sizeof(VkCopyMicromapModeEXT));
36275 }
36276 
marshal_VkCopyMemoryToMicromapInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkCopyMemoryToMicromapInfoEXT * forMarshaling)36277 void marshal_VkCopyMemoryToMicromapInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36278                                            const VkCopyMemoryToMicromapInfoEXT* forMarshaling) {
36279     (void)rootType;
36280     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36281     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36282         rootType = forMarshaling->sType;
36283     }
36284     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36285     marshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType,
36286                                           (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->src));
36287     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dst;
36288     vkStream->putBe64(cgen_var_0);
36289     vkStream->write((VkCopyMicromapModeEXT*)&forMarshaling->mode, sizeof(VkCopyMicromapModeEXT));
36290 }
36291 
unmarshal_VkCopyMemoryToMicromapInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCopyMemoryToMicromapInfoEXT * forUnmarshaling)36292 void unmarshal_VkCopyMemoryToMicromapInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36293                                              VkCopyMemoryToMicromapInfoEXT* forUnmarshaling) {
36294     (void)rootType;
36295     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36296     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36297         rootType = forUnmarshaling->sType;
36298     }
36299     size_t pNext_size;
36300     pNext_size = vkStream->getBe32();
36301     forUnmarshaling->pNext = nullptr;
36302     if (pNext_size) {
36303         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36304         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36305         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36306         vkStream->alloc((void**)&forUnmarshaling->pNext,
36307                         goldfish_vk_extension_struct_size_with_stream_features(
36308                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36309         *(VkStructureType*)forUnmarshaling->pNext = extType;
36310         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36311     }
36312     unmarshal_VkDeviceOrHostAddressConstKHR(
36313         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->src));
36314     forUnmarshaling->dst = (VkMicromapEXT)vkStream->getBe64();
36315     vkStream->read((VkCopyMicromapModeEXT*)&forUnmarshaling->mode, sizeof(VkCopyMicromapModeEXT));
36316 }
36317 
marshal_VkCopyMicromapInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkCopyMicromapInfoEXT * forMarshaling)36318 void marshal_VkCopyMicromapInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36319                                    const VkCopyMicromapInfoEXT* forMarshaling) {
36320     (void)rootType;
36321     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36322     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36323         rootType = forMarshaling->sType;
36324     }
36325     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36326     uint64_t cgen_var_0 = (uint64_t)forMarshaling->src;
36327     vkStream->putBe64(cgen_var_0);
36328     uint64_t cgen_var_1 = (uint64_t)forMarshaling->dst;
36329     vkStream->putBe64(cgen_var_1);
36330     vkStream->write((VkCopyMicromapModeEXT*)&forMarshaling->mode, sizeof(VkCopyMicromapModeEXT));
36331 }
36332 
unmarshal_VkCopyMicromapInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCopyMicromapInfoEXT * forUnmarshaling)36333 void unmarshal_VkCopyMicromapInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36334                                      VkCopyMicromapInfoEXT* forUnmarshaling) {
36335     (void)rootType;
36336     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36337     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36338         rootType = forUnmarshaling->sType;
36339     }
36340     size_t pNext_size;
36341     pNext_size = vkStream->getBe32();
36342     forUnmarshaling->pNext = nullptr;
36343     if (pNext_size) {
36344         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36345         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36346         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36347         vkStream->alloc((void**)&forUnmarshaling->pNext,
36348                         goldfish_vk_extension_struct_size_with_stream_features(
36349                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36350         *(VkStructureType*)forUnmarshaling->pNext = extType;
36351         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36352     }
36353     forUnmarshaling->src = (VkMicromapEXT)vkStream->getBe64();
36354     forUnmarshaling->dst = (VkMicromapEXT)vkStream->getBe64();
36355     vkStream->read((VkCopyMicromapModeEXT*)&forUnmarshaling->mode, sizeof(VkCopyMicromapModeEXT));
36356 }
36357 
marshal_VkMicromapBuildSizesInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMicromapBuildSizesInfoEXT * forMarshaling)36358 void marshal_VkMicromapBuildSizesInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36359                                          const VkMicromapBuildSizesInfoEXT* forMarshaling) {
36360     (void)rootType;
36361     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36362     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36363         rootType = forMarshaling->sType;
36364     }
36365     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36366     vkStream->write((VkDeviceSize*)&forMarshaling->micromapSize, sizeof(VkDeviceSize));
36367     vkStream->write((VkDeviceSize*)&forMarshaling->buildScratchSize, sizeof(VkDeviceSize));
36368     vkStream->write((VkBool32*)&forMarshaling->discardable, sizeof(VkBool32));
36369 }
36370 
unmarshal_VkMicromapBuildSizesInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkMicromapBuildSizesInfoEXT * forUnmarshaling)36371 void unmarshal_VkMicromapBuildSizesInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36372                                            VkMicromapBuildSizesInfoEXT* forUnmarshaling) {
36373     (void)rootType;
36374     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36375     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36376         rootType = forUnmarshaling->sType;
36377     }
36378     size_t pNext_size;
36379     pNext_size = vkStream->getBe32();
36380     forUnmarshaling->pNext = nullptr;
36381     if (pNext_size) {
36382         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36383         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36384         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36385         vkStream->alloc((void**)&forUnmarshaling->pNext,
36386                         goldfish_vk_extension_struct_size_with_stream_features(
36387                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36388         *(VkStructureType*)forUnmarshaling->pNext = extType;
36389         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36390     }
36391     vkStream->read((VkDeviceSize*)&forUnmarshaling->micromapSize, sizeof(VkDeviceSize));
36392     vkStream->read((VkDeviceSize*)&forUnmarshaling->buildScratchSize, sizeof(VkDeviceSize));
36393     vkStream->read((VkBool32*)&forUnmarshaling->discardable, sizeof(VkBool32));
36394 }
36395 
marshal_VkAccelerationStructureTrianglesOpacityMicromapEXT(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureTrianglesOpacityMicromapEXT * forMarshaling)36396 void marshal_VkAccelerationStructureTrianglesOpacityMicromapEXT(
36397     VulkanStream* vkStream, VkStructureType rootType,
36398     const VkAccelerationStructureTrianglesOpacityMicromapEXT* forMarshaling) {
36399     (void)rootType;
36400     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36401     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36402         rootType = forMarshaling->sType;
36403     }
36404     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36405     vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
36406     marshal_VkDeviceOrHostAddressConstKHR(
36407         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->indexBuffer));
36408     vkStream->write((VkDeviceSize*)&forMarshaling->indexStride, sizeof(VkDeviceSize));
36409     vkStream->write((uint32_t*)&forMarshaling->baseTriangle, sizeof(uint32_t));
36410     vkStream->write((uint32_t*)&forMarshaling->usageCountsCount, sizeof(uint32_t));
36411     // WARNING PTR CHECK
36412     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUsageCounts;
36413     vkStream->putBe64(cgen_var_0);
36414     if (forMarshaling->pUsageCounts) {
36415         if (forMarshaling) {
36416             for (uint32_t i = 0; i < (uint32_t)forMarshaling->usageCountsCount; ++i) {
36417                 marshal_VkMicromapUsageEXT(
36418                     vkStream, rootType,
36419                     (const VkMicromapUsageEXT*)(forMarshaling->pUsageCounts + i));
36420             }
36421         }
36422     }
36423     uint64_t cgen_var_1 = (uint64_t)forMarshaling->micromap;
36424     vkStream->putBe64(cgen_var_1);
36425 }
36426 
unmarshal_VkAccelerationStructureTrianglesOpacityMicromapEXT(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureTrianglesOpacityMicromapEXT * forUnmarshaling)36427 void unmarshal_VkAccelerationStructureTrianglesOpacityMicromapEXT(
36428     VulkanStream* vkStream, VkStructureType rootType,
36429     VkAccelerationStructureTrianglesOpacityMicromapEXT* forUnmarshaling) {
36430     (void)rootType;
36431     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36432     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36433         rootType = forUnmarshaling->sType;
36434     }
36435     size_t pNext_size;
36436     pNext_size = vkStream->getBe32();
36437     forUnmarshaling->pNext = nullptr;
36438     if (pNext_size) {
36439         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36440         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36441         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36442         vkStream->alloc((void**)&forUnmarshaling->pNext,
36443                         goldfish_vk_extension_struct_size_with_stream_features(
36444                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36445         *(VkStructureType*)forUnmarshaling->pNext = extType;
36446         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36447     }
36448     vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
36449     unmarshal_VkDeviceOrHostAddressConstKHR(
36450         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->indexBuffer));
36451     vkStream->read((VkDeviceSize*)&forUnmarshaling->indexStride, sizeof(VkDeviceSize));
36452     vkStream->read((uint32_t*)&forUnmarshaling->baseTriangle, sizeof(uint32_t));
36453     vkStream->read((uint32_t*)&forUnmarshaling->usageCountsCount, sizeof(uint32_t));
36454     // WARNING PTR CHECK
36455     forUnmarshaling->pUsageCounts = (const VkMicromapUsageEXT*)(uintptr_t)vkStream->getBe64();
36456     if (forUnmarshaling->pUsageCounts) {
36457         vkStream->alloc((void**)&forUnmarshaling->pUsageCounts,
36458                         forUnmarshaling->usageCountsCount * sizeof(const VkMicromapUsageEXT));
36459         if (forUnmarshaling) {
36460             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->usageCountsCount; ++i) {
36461                 unmarshal_VkMicromapUsageEXT(
36462                     vkStream, rootType, (VkMicromapUsageEXT*)(forUnmarshaling->pUsageCounts + i));
36463             }
36464         }
36465     }
36466     forUnmarshaling->micromap = (VkMicromapEXT)vkStream->getBe64();
36467 }
36468 
marshal_VkMicromapTriangleEXT(VulkanStream * vkStream,VkStructureType rootType,const VkMicromapTriangleEXT * forMarshaling)36469 void marshal_VkMicromapTriangleEXT(VulkanStream* vkStream, VkStructureType rootType,
36470                                    const VkMicromapTriangleEXT* forMarshaling) {
36471     (void)rootType;
36472     vkStream->write((uint32_t*)&forMarshaling->dataOffset, sizeof(uint32_t));
36473     vkStream->write((uint16_t*)&forMarshaling->subdivisionLevel, sizeof(uint16_t));
36474     vkStream->write((uint16_t*)&forMarshaling->format, sizeof(uint16_t));
36475 }
36476 
unmarshal_VkMicromapTriangleEXT(VulkanStream * vkStream,VkStructureType rootType,VkMicromapTriangleEXT * forUnmarshaling)36477 void unmarshal_VkMicromapTriangleEXT(VulkanStream* vkStream, VkStructureType rootType,
36478                                      VkMicromapTriangleEXT* forUnmarshaling) {
36479     (void)rootType;
36480     vkStream->read((uint32_t*)&forUnmarshaling->dataOffset, sizeof(uint32_t));
36481     vkStream->read((uint16_t*)&forUnmarshaling->subdivisionLevel, sizeof(uint16_t));
36482     vkStream->read((uint16_t*)&forUnmarshaling->format, sizeof(uint16_t));
36483 }
36484 
36485 #endif
36486 #ifdef VK_NV_displacement_micromap
marshal_VkPhysicalDeviceDisplacementMicromapFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDisplacementMicromapFeaturesNV * forMarshaling)36487 void marshal_VkPhysicalDeviceDisplacementMicromapFeaturesNV(
36488     VulkanStream* vkStream, VkStructureType rootType,
36489     const VkPhysicalDeviceDisplacementMicromapFeaturesNV* forMarshaling) {
36490     (void)rootType;
36491     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36492     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36493         rootType = forMarshaling->sType;
36494     }
36495     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36496     vkStream->write((VkBool32*)&forMarshaling->displacementMicromap, sizeof(VkBool32));
36497 }
36498 
unmarshal_VkPhysicalDeviceDisplacementMicromapFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDisplacementMicromapFeaturesNV * forUnmarshaling)36499 void unmarshal_VkPhysicalDeviceDisplacementMicromapFeaturesNV(
36500     VulkanStream* vkStream, VkStructureType rootType,
36501     VkPhysicalDeviceDisplacementMicromapFeaturesNV* forUnmarshaling) {
36502     (void)rootType;
36503     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36504     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36505         rootType = forUnmarshaling->sType;
36506     }
36507     size_t pNext_size;
36508     pNext_size = vkStream->getBe32();
36509     forUnmarshaling->pNext = nullptr;
36510     if (pNext_size) {
36511         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36512         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36513         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36514         vkStream->alloc((void**)&forUnmarshaling->pNext,
36515                         goldfish_vk_extension_struct_size_with_stream_features(
36516                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36517         *(VkStructureType*)forUnmarshaling->pNext = extType;
36518         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36519     }
36520     vkStream->read((VkBool32*)&forUnmarshaling->displacementMicromap, sizeof(VkBool32));
36521 }
36522 
marshal_VkPhysicalDeviceDisplacementMicromapPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDisplacementMicromapPropertiesNV * forMarshaling)36523 void marshal_VkPhysicalDeviceDisplacementMicromapPropertiesNV(
36524     VulkanStream* vkStream, VkStructureType rootType,
36525     const VkPhysicalDeviceDisplacementMicromapPropertiesNV* forMarshaling) {
36526     (void)rootType;
36527     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36528     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36529         rootType = forMarshaling->sType;
36530     }
36531     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36532     vkStream->write((uint32_t*)&forMarshaling->maxDisplacementMicromapSubdivisionLevel,
36533                     sizeof(uint32_t));
36534 }
36535 
unmarshal_VkPhysicalDeviceDisplacementMicromapPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDisplacementMicromapPropertiesNV * forUnmarshaling)36536 void unmarshal_VkPhysicalDeviceDisplacementMicromapPropertiesNV(
36537     VulkanStream* vkStream, VkStructureType rootType,
36538     VkPhysicalDeviceDisplacementMicromapPropertiesNV* forUnmarshaling) {
36539     (void)rootType;
36540     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36541     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36542         rootType = forUnmarshaling->sType;
36543     }
36544     size_t pNext_size;
36545     pNext_size = vkStream->getBe32();
36546     forUnmarshaling->pNext = nullptr;
36547     if (pNext_size) {
36548         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36549         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36550         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36551         vkStream->alloc((void**)&forUnmarshaling->pNext,
36552                         goldfish_vk_extension_struct_size_with_stream_features(
36553                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36554         *(VkStructureType*)forUnmarshaling->pNext = extType;
36555         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36556     }
36557     vkStream->read((uint32_t*)&forUnmarshaling->maxDisplacementMicromapSubdivisionLevel,
36558                    sizeof(uint32_t));
36559 }
36560 
marshal_VkAccelerationStructureTrianglesDisplacementMicromapNV(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureTrianglesDisplacementMicromapNV * forMarshaling)36561 void marshal_VkAccelerationStructureTrianglesDisplacementMicromapNV(
36562     VulkanStream* vkStream, VkStructureType rootType,
36563     const VkAccelerationStructureTrianglesDisplacementMicromapNV* forMarshaling) {
36564     (void)rootType;
36565     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36566     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36567         rootType = forMarshaling->sType;
36568     }
36569     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36570     vkStream->write((VkFormat*)&forMarshaling->displacementBiasAndScaleFormat, sizeof(VkFormat));
36571     vkStream->write((VkFormat*)&forMarshaling->displacementVectorFormat, sizeof(VkFormat));
36572     marshal_VkDeviceOrHostAddressConstKHR(
36573         vkStream, rootType,
36574         (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->displacementBiasAndScaleBuffer));
36575     vkStream->write((VkDeviceSize*)&forMarshaling->displacementBiasAndScaleStride,
36576                     sizeof(VkDeviceSize));
36577     marshal_VkDeviceOrHostAddressConstKHR(
36578         vkStream, rootType,
36579         (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->displacementVectorBuffer));
36580     vkStream->write((VkDeviceSize*)&forMarshaling->displacementVectorStride, sizeof(VkDeviceSize));
36581     marshal_VkDeviceOrHostAddressConstKHR(
36582         vkStream, rootType,
36583         (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->displacedMicromapPrimitiveFlags));
36584     vkStream->write((VkDeviceSize*)&forMarshaling->displacedMicromapPrimitiveFlagsStride,
36585                     sizeof(VkDeviceSize));
36586     vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
36587     marshal_VkDeviceOrHostAddressConstKHR(
36588         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->indexBuffer));
36589     vkStream->write((VkDeviceSize*)&forMarshaling->indexStride, sizeof(VkDeviceSize));
36590     vkStream->write((uint32_t*)&forMarshaling->baseTriangle, sizeof(uint32_t));
36591     vkStream->write((uint32_t*)&forMarshaling->usageCountsCount, sizeof(uint32_t));
36592     // WARNING PTR CHECK
36593     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUsageCounts;
36594     vkStream->putBe64(cgen_var_0);
36595     if (forMarshaling->pUsageCounts) {
36596         if (forMarshaling) {
36597             for (uint32_t i = 0; i < (uint32_t)forMarshaling->usageCountsCount; ++i) {
36598                 marshal_VkMicromapUsageEXT(
36599                     vkStream, rootType,
36600                     (const VkMicromapUsageEXT*)(forMarshaling->pUsageCounts + i));
36601             }
36602         }
36603     }
36604     uint64_t cgen_var_1 = (uint64_t)forMarshaling->micromap;
36605     vkStream->putBe64(cgen_var_1);
36606 }
36607 
unmarshal_VkAccelerationStructureTrianglesDisplacementMicromapNV(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureTrianglesDisplacementMicromapNV * forUnmarshaling)36608 void unmarshal_VkAccelerationStructureTrianglesDisplacementMicromapNV(
36609     VulkanStream* vkStream, VkStructureType rootType,
36610     VkAccelerationStructureTrianglesDisplacementMicromapNV* forUnmarshaling) {
36611     (void)rootType;
36612     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36613     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36614         rootType = forUnmarshaling->sType;
36615     }
36616     size_t pNext_size;
36617     pNext_size = vkStream->getBe32();
36618     forUnmarshaling->pNext = nullptr;
36619     if (pNext_size) {
36620         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36621         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36622         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36623         vkStream->alloc((void**)&forUnmarshaling->pNext,
36624                         goldfish_vk_extension_struct_size_with_stream_features(
36625                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36626         *(VkStructureType*)forUnmarshaling->pNext = extType;
36627         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36628     }
36629     vkStream->read((VkFormat*)&forUnmarshaling->displacementBiasAndScaleFormat, sizeof(VkFormat));
36630     vkStream->read((VkFormat*)&forUnmarshaling->displacementVectorFormat, sizeof(VkFormat));
36631     unmarshal_VkDeviceOrHostAddressConstKHR(
36632         vkStream, rootType,
36633         (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->displacementBiasAndScaleBuffer));
36634     vkStream->read((VkDeviceSize*)&forUnmarshaling->displacementBiasAndScaleStride,
36635                    sizeof(VkDeviceSize));
36636     unmarshal_VkDeviceOrHostAddressConstKHR(
36637         vkStream, rootType,
36638         (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->displacementVectorBuffer));
36639     vkStream->read((VkDeviceSize*)&forUnmarshaling->displacementVectorStride, sizeof(VkDeviceSize));
36640     unmarshal_VkDeviceOrHostAddressConstKHR(
36641         vkStream, rootType,
36642         (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->displacedMicromapPrimitiveFlags));
36643     vkStream->read((VkDeviceSize*)&forUnmarshaling->displacedMicromapPrimitiveFlagsStride,
36644                    sizeof(VkDeviceSize));
36645     vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
36646     unmarshal_VkDeviceOrHostAddressConstKHR(
36647         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->indexBuffer));
36648     vkStream->read((VkDeviceSize*)&forUnmarshaling->indexStride, sizeof(VkDeviceSize));
36649     vkStream->read((uint32_t*)&forUnmarshaling->baseTriangle, sizeof(uint32_t));
36650     vkStream->read((uint32_t*)&forUnmarshaling->usageCountsCount, sizeof(uint32_t));
36651     // WARNING PTR CHECK
36652     forUnmarshaling->pUsageCounts = (const VkMicromapUsageEXT*)(uintptr_t)vkStream->getBe64();
36653     if (forUnmarshaling->pUsageCounts) {
36654         vkStream->alloc((void**)&forUnmarshaling->pUsageCounts,
36655                         forUnmarshaling->usageCountsCount * sizeof(const VkMicromapUsageEXT));
36656         if (forUnmarshaling) {
36657             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->usageCountsCount; ++i) {
36658                 unmarshal_VkMicromapUsageEXT(
36659                     vkStream, rootType, (VkMicromapUsageEXT*)(forUnmarshaling->pUsageCounts + i));
36660             }
36661         }
36662     }
36663     forUnmarshaling->micromap = (VkMicromapEXT)vkStream->getBe64();
36664 }
36665 
36666 #endif
36667 #ifdef VK_EXT_load_store_op_none
36668 #endif
36669 #ifdef VK_HUAWEI_cluster_culling_shader
marshal_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI * forMarshaling)36670 void marshal_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(
36671     VulkanStream* vkStream, VkStructureType rootType,
36672     const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* forMarshaling) {
36673     (void)rootType;
36674     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36675     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36676         rootType = forMarshaling->sType;
36677     }
36678     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36679     vkStream->write((VkBool32*)&forMarshaling->clustercullingShader, sizeof(VkBool32));
36680     vkStream->write((VkBool32*)&forMarshaling->multiviewClusterCullingShader, sizeof(VkBool32));
36681 }
36682 
unmarshal_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI * forUnmarshaling)36683 void unmarshal_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(
36684     VulkanStream* vkStream, VkStructureType rootType,
36685     VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* forUnmarshaling) {
36686     (void)rootType;
36687     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36688     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36689         rootType = forUnmarshaling->sType;
36690     }
36691     size_t pNext_size;
36692     pNext_size = vkStream->getBe32();
36693     forUnmarshaling->pNext = nullptr;
36694     if (pNext_size) {
36695         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36696         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36697         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36698         vkStream->alloc((void**)&forUnmarshaling->pNext,
36699                         goldfish_vk_extension_struct_size_with_stream_features(
36700                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36701         *(VkStructureType*)forUnmarshaling->pNext = extType;
36702         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36703     }
36704     vkStream->read((VkBool32*)&forUnmarshaling->clustercullingShader, sizeof(VkBool32));
36705     vkStream->read((VkBool32*)&forUnmarshaling->multiviewClusterCullingShader, sizeof(VkBool32));
36706 }
36707 
marshal_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI * forMarshaling)36708 void marshal_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(
36709     VulkanStream* vkStream, VkStructureType rootType,
36710     const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* forMarshaling) {
36711     (void)rootType;
36712     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36713     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36714         rootType = forMarshaling->sType;
36715     }
36716     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36717     vkStream->write((uint32_t*)forMarshaling->maxWorkGroupCount, 3 * sizeof(uint32_t));
36718     vkStream->write((uint32_t*)forMarshaling->maxWorkGroupSize, 3 * sizeof(uint32_t));
36719     vkStream->write((uint32_t*)&forMarshaling->maxOutputClusterCount, sizeof(uint32_t));
36720     vkStream->write((VkDeviceSize*)&forMarshaling->indirectBufferOffsetAlignment,
36721                     sizeof(VkDeviceSize));
36722 }
36723 
unmarshal_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI * forUnmarshaling)36724 void unmarshal_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(
36725     VulkanStream* vkStream, VkStructureType rootType,
36726     VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* forUnmarshaling) {
36727     (void)rootType;
36728     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36729     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36730         rootType = forUnmarshaling->sType;
36731     }
36732     size_t pNext_size;
36733     pNext_size = vkStream->getBe32();
36734     forUnmarshaling->pNext = nullptr;
36735     if (pNext_size) {
36736         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36737         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36738         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36739         vkStream->alloc((void**)&forUnmarshaling->pNext,
36740                         goldfish_vk_extension_struct_size_with_stream_features(
36741                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36742         *(VkStructureType*)forUnmarshaling->pNext = extType;
36743         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36744     }
36745     vkStream->read((uint32_t*)forUnmarshaling->maxWorkGroupCount, 3 * sizeof(uint32_t));
36746     vkStream->read((uint32_t*)forUnmarshaling->maxWorkGroupSize, 3 * sizeof(uint32_t));
36747     vkStream->read((uint32_t*)&forUnmarshaling->maxOutputClusterCount, sizeof(uint32_t));
36748     vkStream->read((VkDeviceSize*)&forUnmarshaling->indirectBufferOffsetAlignment,
36749                    sizeof(VkDeviceSize));
36750 }
36751 
36752 #endif
36753 #ifdef VK_EXT_border_color_swizzle
marshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT * forMarshaling)36754 void marshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
36755     VulkanStream* vkStream, VkStructureType rootType,
36756     const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forMarshaling) {
36757     (void)rootType;
36758     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36759     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36760         rootType = forMarshaling->sType;
36761     }
36762     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36763     vkStream->write((VkBool32*)&forMarshaling->borderColorSwizzle, sizeof(VkBool32));
36764     vkStream->write((VkBool32*)&forMarshaling->borderColorSwizzleFromImage, sizeof(VkBool32));
36765 }
36766 
unmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceBorderColorSwizzleFeaturesEXT * forUnmarshaling)36767 void unmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
36768     VulkanStream* vkStream, VkStructureType rootType,
36769     VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forUnmarshaling) {
36770     (void)rootType;
36771     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36772     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36773         rootType = forUnmarshaling->sType;
36774     }
36775     size_t pNext_size;
36776     pNext_size = vkStream->getBe32();
36777     forUnmarshaling->pNext = nullptr;
36778     if (pNext_size) {
36779         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36780         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36781         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36782         vkStream->alloc((void**)&forUnmarshaling->pNext,
36783                         goldfish_vk_extension_struct_size_with_stream_features(
36784                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36785         *(VkStructureType*)forUnmarshaling->pNext = extType;
36786         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36787     }
36788     vkStream->read((VkBool32*)&forUnmarshaling->borderColorSwizzle, sizeof(VkBool32));
36789     vkStream->read((VkBool32*)&forUnmarshaling->borderColorSwizzleFromImage, sizeof(VkBool32));
36790 }
36791 
marshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkSamplerBorderColorComponentMappingCreateInfoEXT * forMarshaling)36792 void marshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
36793     VulkanStream* vkStream, VkStructureType rootType,
36794     const VkSamplerBorderColorComponentMappingCreateInfoEXT* forMarshaling) {
36795     (void)rootType;
36796     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36797     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36798         rootType = forMarshaling->sType;
36799     }
36800     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36801     marshal_VkComponentMapping(vkStream, rootType,
36802                                (VkComponentMapping*)(&forMarshaling->components));
36803     vkStream->write((VkBool32*)&forMarshaling->srgb, sizeof(VkBool32));
36804 }
36805 
unmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSamplerBorderColorComponentMappingCreateInfoEXT * forUnmarshaling)36806 void unmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
36807     VulkanStream* vkStream, VkStructureType rootType,
36808     VkSamplerBorderColorComponentMappingCreateInfoEXT* forUnmarshaling) {
36809     (void)rootType;
36810     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36811     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36812         rootType = forUnmarshaling->sType;
36813     }
36814     size_t pNext_size;
36815     pNext_size = vkStream->getBe32();
36816     forUnmarshaling->pNext = nullptr;
36817     if (pNext_size) {
36818         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36819         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36820         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36821         vkStream->alloc((void**)&forUnmarshaling->pNext,
36822                         goldfish_vk_extension_struct_size_with_stream_features(
36823                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36824         *(VkStructureType*)forUnmarshaling->pNext = extType;
36825         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36826     }
36827     unmarshal_VkComponentMapping(vkStream, rootType,
36828                                  (VkComponentMapping*)(&forUnmarshaling->components));
36829     vkStream->read((VkBool32*)&forUnmarshaling->srgb, sizeof(VkBool32));
36830 }
36831 
36832 #endif
36833 #ifdef VK_EXT_pageable_device_local_memory
marshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT * forMarshaling)36834 void marshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
36835     VulkanStream* vkStream, VkStructureType rootType,
36836     const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forMarshaling) {
36837     (void)rootType;
36838     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36839     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36840         rootType = forMarshaling->sType;
36841     }
36842     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36843     vkStream->write((VkBool32*)&forMarshaling->pageableDeviceLocalMemory, sizeof(VkBool32));
36844 }
36845 
unmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT * forUnmarshaling)36846 void unmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
36847     VulkanStream* vkStream, VkStructureType rootType,
36848     VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forUnmarshaling) {
36849     (void)rootType;
36850     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36851     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36852         rootType = forUnmarshaling->sType;
36853     }
36854     size_t pNext_size;
36855     pNext_size = vkStream->getBe32();
36856     forUnmarshaling->pNext = nullptr;
36857     if (pNext_size) {
36858         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36859         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36860         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36861         vkStream->alloc((void**)&forUnmarshaling->pNext,
36862                         goldfish_vk_extension_struct_size_with_stream_features(
36863                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36864         *(VkStructureType*)forUnmarshaling->pNext = extType;
36865         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36866     }
36867     vkStream->read((VkBool32*)&forUnmarshaling->pageableDeviceLocalMemory, sizeof(VkBool32));
36868 }
36869 
36870 #endif
36871 #ifdef VK_ARM_shader_core_properties
marshal_VkPhysicalDeviceShaderCorePropertiesARM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderCorePropertiesARM * forMarshaling)36872 void marshal_VkPhysicalDeviceShaderCorePropertiesARM(
36873     VulkanStream* vkStream, VkStructureType rootType,
36874     const VkPhysicalDeviceShaderCorePropertiesARM* forMarshaling) {
36875     (void)rootType;
36876     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36877     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36878         rootType = forMarshaling->sType;
36879     }
36880     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36881     vkStream->write((uint32_t*)&forMarshaling->pixelRate, sizeof(uint32_t));
36882     vkStream->write((uint32_t*)&forMarshaling->texelRate, sizeof(uint32_t));
36883     vkStream->write((uint32_t*)&forMarshaling->fmaRate, sizeof(uint32_t));
36884 }
36885 
unmarshal_VkPhysicalDeviceShaderCorePropertiesARM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderCorePropertiesARM * forUnmarshaling)36886 void unmarshal_VkPhysicalDeviceShaderCorePropertiesARM(
36887     VulkanStream* vkStream, VkStructureType rootType,
36888     VkPhysicalDeviceShaderCorePropertiesARM* forUnmarshaling) {
36889     (void)rootType;
36890     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36891     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36892         rootType = forUnmarshaling->sType;
36893     }
36894     size_t pNext_size;
36895     pNext_size = vkStream->getBe32();
36896     forUnmarshaling->pNext = nullptr;
36897     if (pNext_size) {
36898         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36899         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36900         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36901         vkStream->alloc((void**)&forUnmarshaling->pNext,
36902                         goldfish_vk_extension_struct_size_with_stream_features(
36903                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36904         *(VkStructureType*)forUnmarshaling->pNext = extType;
36905         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36906     }
36907     vkStream->read((uint32_t*)&forUnmarshaling->pixelRate, sizeof(uint32_t));
36908     vkStream->read((uint32_t*)&forUnmarshaling->texelRate, sizeof(uint32_t));
36909     vkStream->read((uint32_t*)&forUnmarshaling->fmaRate, sizeof(uint32_t));
36910 }
36911 
36912 #endif
36913 #ifdef VK_EXT_image_sliced_view_of_3d
marshal_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT * forMarshaling)36914 void marshal_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(
36915     VulkanStream* vkStream, VkStructureType rootType,
36916     const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* forMarshaling) {
36917     (void)rootType;
36918     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36919     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36920         rootType = forMarshaling->sType;
36921     }
36922     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36923     vkStream->write((VkBool32*)&forMarshaling->imageSlicedViewOf3D, sizeof(VkBool32));
36924 }
36925 
unmarshal_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT * forUnmarshaling)36926 void unmarshal_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(
36927     VulkanStream* vkStream, VkStructureType rootType,
36928     VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* forUnmarshaling) {
36929     (void)rootType;
36930     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36931     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36932         rootType = forUnmarshaling->sType;
36933     }
36934     size_t pNext_size;
36935     pNext_size = vkStream->getBe32();
36936     forUnmarshaling->pNext = nullptr;
36937     if (pNext_size) {
36938         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36939         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36940         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36941         vkStream->alloc((void**)&forUnmarshaling->pNext,
36942                         goldfish_vk_extension_struct_size_with_stream_features(
36943                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36944         *(VkStructureType*)forUnmarshaling->pNext = extType;
36945         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36946     }
36947     vkStream->read((VkBool32*)&forUnmarshaling->imageSlicedViewOf3D, sizeof(VkBool32));
36948 }
36949 
marshal_VkImageViewSlicedCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewSlicedCreateInfoEXT * forMarshaling)36950 void marshal_VkImageViewSlicedCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36951                                             const VkImageViewSlicedCreateInfoEXT* forMarshaling) {
36952     (void)rootType;
36953     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36954     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36955         rootType = forMarshaling->sType;
36956     }
36957     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36958     vkStream->write((uint32_t*)&forMarshaling->sliceOffset, sizeof(uint32_t));
36959     vkStream->write((uint32_t*)&forMarshaling->sliceCount, sizeof(uint32_t));
36960 }
36961 
unmarshal_VkImageViewSlicedCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageViewSlicedCreateInfoEXT * forUnmarshaling)36962 void unmarshal_VkImageViewSlicedCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
36963                                               VkImageViewSlicedCreateInfoEXT* forUnmarshaling) {
36964     (void)rootType;
36965     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
36966     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36967         rootType = forUnmarshaling->sType;
36968     }
36969     size_t pNext_size;
36970     pNext_size = vkStream->getBe32();
36971     forUnmarshaling->pNext = nullptr;
36972     if (pNext_size) {
36973         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
36974         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
36975         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
36976         vkStream->alloc((void**)&forUnmarshaling->pNext,
36977                         goldfish_vk_extension_struct_size_with_stream_features(
36978                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
36979         *(VkStructureType*)forUnmarshaling->pNext = extType;
36980         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
36981     }
36982     vkStream->read((uint32_t*)&forUnmarshaling->sliceOffset, sizeof(uint32_t));
36983     vkStream->read((uint32_t*)&forUnmarshaling->sliceCount, sizeof(uint32_t));
36984 }
36985 
36986 #endif
36987 #ifdef VK_VALVE_descriptor_set_host_mapping
marshal_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE * forMarshaling)36988 void marshal_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(
36989     VulkanStream* vkStream, VkStructureType rootType,
36990     const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* forMarshaling) {
36991     (void)rootType;
36992     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
36993     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
36994         rootType = forMarshaling->sType;
36995     }
36996     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
36997     vkStream->write((VkBool32*)&forMarshaling->descriptorSetHostMapping, sizeof(VkBool32));
36998 }
36999 
unmarshal_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE * forUnmarshaling)37000 void unmarshal_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(
37001     VulkanStream* vkStream, VkStructureType rootType,
37002     VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* forUnmarshaling) {
37003     (void)rootType;
37004     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37005     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37006         rootType = forUnmarshaling->sType;
37007     }
37008     size_t pNext_size;
37009     pNext_size = vkStream->getBe32();
37010     forUnmarshaling->pNext = nullptr;
37011     if (pNext_size) {
37012         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37013         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37014         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37015         vkStream->alloc((void**)&forUnmarshaling->pNext,
37016                         goldfish_vk_extension_struct_size_with_stream_features(
37017                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37018         *(VkStructureType*)forUnmarshaling->pNext = extType;
37019         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37020     }
37021     vkStream->read((VkBool32*)&forUnmarshaling->descriptorSetHostMapping, sizeof(VkBool32));
37022 }
37023 
marshal_VkDescriptorSetBindingReferenceVALVE(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetBindingReferenceVALVE * forMarshaling)37024 void marshal_VkDescriptorSetBindingReferenceVALVE(
37025     VulkanStream* vkStream, VkStructureType rootType,
37026     const VkDescriptorSetBindingReferenceVALVE* forMarshaling) {
37027     (void)rootType;
37028     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37029     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37030         rootType = forMarshaling->sType;
37031     }
37032     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37033     uint64_t cgen_var_0;
37034     vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
37035         &forMarshaling->descriptorSetLayout, &cgen_var_0, 1);
37036     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
37037     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
37038 }
37039 
unmarshal_VkDescriptorSetBindingReferenceVALVE(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetBindingReferenceVALVE * forUnmarshaling)37040 void unmarshal_VkDescriptorSetBindingReferenceVALVE(
37041     VulkanStream* vkStream, VkStructureType rootType,
37042     VkDescriptorSetBindingReferenceVALVE* forUnmarshaling) {
37043     (void)rootType;
37044     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37045     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37046         rootType = forUnmarshaling->sType;
37047     }
37048     size_t pNext_size;
37049     pNext_size = vkStream->getBe32();
37050     forUnmarshaling->pNext = nullptr;
37051     if (pNext_size) {
37052         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37053         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37054         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37055         vkStream->alloc((void**)&forUnmarshaling->pNext,
37056                         goldfish_vk_extension_struct_size_with_stream_features(
37057                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37058         *(VkStructureType*)forUnmarshaling->pNext = extType;
37059         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37060     }
37061     uint64_t cgen_var_0;
37062     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
37063     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
37064         &cgen_var_0, (VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout, 1);
37065     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
37066 }
37067 
marshal_VkDescriptorSetLayoutHostMappingInfoVALVE(VulkanStream * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutHostMappingInfoVALVE * forMarshaling)37068 void marshal_VkDescriptorSetLayoutHostMappingInfoVALVE(
37069     VulkanStream* vkStream, VkStructureType rootType,
37070     const VkDescriptorSetLayoutHostMappingInfoVALVE* forMarshaling) {
37071     (void)rootType;
37072     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37073     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37074         rootType = forMarshaling->sType;
37075     }
37076     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37077     uint64_t cgen_var_0 = (uint64_t)forMarshaling->descriptorOffset;
37078     vkStream->putBe64(cgen_var_0);
37079     vkStream->write((uint32_t*)&forMarshaling->descriptorSize, sizeof(uint32_t));
37080 }
37081 
unmarshal_VkDescriptorSetLayoutHostMappingInfoVALVE(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutHostMappingInfoVALVE * forUnmarshaling)37082 void unmarshal_VkDescriptorSetLayoutHostMappingInfoVALVE(
37083     VulkanStream* vkStream, VkStructureType rootType,
37084     VkDescriptorSetLayoutHostMappingInfoVALVE* forUnmarshaling) {
37085     (void)rootType;
37086     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37087     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37088         rootType = forUnmarshaling->sType;
37089     }
37090     size_t pNext_size;
37091     pNext_size = vkStream->getBe32();
37092     forUnmarshaling->pNext = nullptr;
37093     if (pNext_size) {
37094         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37095         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37096         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37097         vkStream->alloc((void**)&forUnmarshaling->pNext,
37098                         goldfish_vk_extension_struct_size_with_stream_features(
37099                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37100         *(VkStructureType*)forUnmarshaling->pNext = extType;
37101         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37102     }
37103     forUnmarshaling->descriptorOffset = (size_t)vkStream->getBe64();
37104     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSize, sizeof(uint32_t));
37105 }
37106 
37107 #endif
37108 #ifdef VK_EXT_depth_clamp_zero_one
marshal_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT * forMarshaling)37109 void marshal_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(
37110     VulkanStream* vkStream, VkStructureType rootType,
37111     const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* forMarshaling) {
37112     (void)rootType;
37113     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37114     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37115         rootType = forMarshaling->sType;
37116     }
37117     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37118     vkStream->write((VkBool32*)&forMarshaling->depthClampZeroOne, sizeof(VkBool32));
37119 }
37120 
unmarshal_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthClampZeroOneFeaturesEXT * forUnmarshaling)37121 void unmarshal_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(
37122     VulkanStream* vkStream, VkStructureType rootType,
37123     VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* forUnmarshaling) {
37124     (void)rootType;
37125     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37126     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37127         rootType = forUnmarshaling->sType;
37128     }
37129     size_t pNext_size;
37130     pNext_size = vkStream->getBe32();
37131     forUnmarshaling->pNext = nullptr;
37132     if (pNext_size) {
37133         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37134         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37135         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37136         vkStream->alloc((void**)&forUnmarshaling->pNext,
37137                         goldfish_vk_extension_struct_size_with_stream_features(
37138                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37139         *(VkStructureType*)forUnmarshaling->pNext = extType;
37140         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37141     }
37142     vkStream->read((VkBool32*)&forUnmarshaling->depthClampZeroOne, sizeof(VkBool32));
37143 }
37144 
37145 #endif
37146 #ifdef VK_EXT_non_seamless_cube_map
marshal_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT * forMarshaling)37147 void marshal_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(
37148     VulkanStream* vkStream, VkStructureType rootType,
37149     const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* forMarshaling) {
37150     (void)rootType;
37151     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37152     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37153         rootType = forMarshaling->sType;
37154     }
37155     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37156     vkStream->write((VkBool32*)&forMarshaling->nonSeamlessCubeMap, sizeof(VkBool32));
37157 }
37158 
unmarshal_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT * forUnmarshaling)37159 void unmarshal_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(
37160     VulkanStream* vkStream, VkStructureType rootType,
37161     VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* forUnmarshaling) {
37162     (void)rootType;
37163     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37164     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37165         rootType = forUnmarshaling->sType;
37166     }
37167     size_t pNext_size;
37168     pNext_size = vkStream->getBe32();
37169     forUnmarshaling->pNext = nullptr;
37170     if (pNext_size) {
37171         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37172         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37173         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37174         vkStream->alloc((void**)&forUnmarshaling->pNext,
37175                         goldfish_vk_extension_struct_size_with_stream_features(
37176                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37177         *(VkStructureType*)forUnmarshaling->pNext = extType;
37178         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37179     }
37180     vkStream->read((VkBool32*)&forUnmarshaling->nonSeamlessCubeMap, sizeof(VkBool32));
37181 }
37182 
37183 #endif
37184 #ifdef VK_QCOM_fragment_density_map_offset
marshal_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM * forMarshaling)37185 void marshal_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(
37186     VulkanStream* vkStream, VkStructureType rootType,
37187     const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* forMarshaling) {
37188     (void)rootType;
37189     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37190     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37191         rootType = forMarshaling->sType;
37192     }
37193     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37194     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapOffset, sizeof(VkBool32));
37195 }
37196 
unmarshal_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM * forUnmarshaling)37197 void unmarshal_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(
37198     VulkanStream* vkStream, VkStructureType rootType,
37199     VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* forUnmarshaling) {
37200     (void)rootType;
37201     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37202     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37203         rootType = forUnmarshaling->sType;
37204     }
37205     size_t pNext_size;
37206     pNext_size = vkStream->getBe32();
37207     forUnmarshaling->pNext = nullptr;
37208     if (pNext_size) {
37209         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37210         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37211         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37212         vkStream->alloc((void**)&forUnmarshaling->pNext,
37213                         goldfish_vk_extension_struct_size_with_stream_features(
37214                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37215         *(VkStructureType*)forUnmarshaling->pNext = extType;
37216         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37217     }
37218     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapOffset, sizeof(VkBool32));
37219 }
37220 
marshal_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM * forMarshaling)37221 void marshal_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(
37222     VulkanStream* vkStream, VkStructureType rootType,
37223     const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* forMarshaling) {
37224     (void)rootType;
37225     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37226     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37227         rootType = forMarshaling->sType;
37228     }
37229     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37230     marshal_VkExtent2D(vkStream, rootType,
37231                        (VkExtent2D*)(&forMarshaling->fragmentDensityOffsetGranularity));
37232 }
37233 
unmarshal_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM * forUnmarshaling)37234 void unmarshal_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(
37235     VulkanStream* vkStream, VkStructureType rootType,
37236     VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* forUnmarshaling) {
37237     (void)rootType;
37238     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37239     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37240         rootType = forUnmarshaling->sType;
37241     }
37242     size_t pNext_size;
37243     pNext_size = vkStream->getBe32();
37244     forUnmarshaling->pNext = nullptr;
37245     if (pNext_size) {
37246         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37247         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37248         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37249         vkStream->alloc((void**)&forUnmarshaling->pNext,
37250                         goldfish_vk_extension_struct_size_with_stream_features(
37251                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37252         *(VkStructureType*)forUnmarshaling->pNext = extType;
37253         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37254     }
37255     unmarshal_VkExtent2D(vkStream, rootType,
37256                          (VkExtent2D*)(&forUnmarshaling->fragmentDensityOffsetGranularity));
37257 }
37258 
marshal_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkSubpassFragmentDensityMapOffsetEndInfoQCOM * forMarshaling)37259 void marshal_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(
37260     VulkanStream* vkStream, VkStructureType rootType,
37261     const VkSubpassFragmentDensityMapOffsetEndInfoQCOM* forMarshaling) {
37262     (void)rootType;
37263     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37264     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37265         rootType = forMarshaling->sType;
37266     }
37267     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37268     vkStream->write((uint32_t*)&forMarshaling->fragmentDensityOffsetCount, sizeof(uint32_t));
37269     if (forMarshaling) {
37270         for (uint32_t i = 0; i < (uint32_t)forMarshaling->fragmentDensityOffsetCount; ++i) {
37271             marshal_VkOffset2D(vkStream, rootType,
37272                                (const VkOffset2D*)(forMarshaling->pFragmentDensityOffsets + i));
37273         }
37274     }
37275 }
37276 
unmarshal_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,VkSubpassFragmentDensityMapOffsetEndInfoQCOM * forUnmarshaling)37277 void unmarshal_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(
37278     VulkanStream* vkStream, VkStructureType rootType,
37279     VkSubpassFragmentDensityMapOffsetEndInfoQCOM* forUnmarshaling) {
37280     (void)rootType;
37281     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37282     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37283         rootType = forUnmarshaling->sType;
37284     }
37285     size_t pNext_size;
37286     pNext_size = vkStream->getBe32();
37287     forUnmarshaling->pNext = nullptr;
37288     if (pNext_size) {
37289         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37290         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37291         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37292         vkStream->alloc((void**)&forUnmarshaling->pNext,
37293                         goldfish_vk_extension_struct_size_with_stream_features(
37294                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37295         *(VkStructureType*)forUnmarshaling->pNext = extType;
37296         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37297     }
37298     vkStream->read((uint32_t*)&forUnmarshaling->fragmentDensityOffsetCount, sizeof(uint32_t));
37299     vkStream->alloc((void**)&forUnmarshaling->pFragmentDensityOffsets,
37300                     forUnmarshaling->fragmentDensityOffsetCount * sizeof(const VkOffset2D));
37301     if (forUnmarshaling) {
37302         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->fragmentDensityOffsetCount; ++i) {
37303             unmarshal_VkOffset2D(vkStream, rootType,
37304                                  (VkOffset2D*)(forUnmarshaling->pFragmentDensityOffsets + i));
37305         }
37306     }
37307 }
37308 
37309 #endif
37310 #ifdef VK_NV_copy_memory_indirect
marshal_VkCopyMemoryIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,const VkCopyMemoryIndirectCommandNV * forMarshaling)37311 void marshal_VkCopyMemoryIndirectCommandNV(VulkanStream* vkStream, VkStructureType rootType,
37312                                            const VkCopyMemoryIndirectCommandNV* forMarshaling) {
37313     (void)rootType;
37314     vkStream->write((VkDeviceAddress*)&forMarshaling->srcAddress, sizeof(VkDeviceAddress));
37315     vkStream->write((VkDeviceAddress*)&forMarshaling->dstAddress, sizeof(VkDeviceAddress));
37316     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
37317 }
37318 
unmarshal_VkCopyMemoryIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,VkCopyMemoryIndirectCommandNV * forUnmarshaling)37319 void unmarshal_VkCopyMemoryIndirectCommandNV(VulkanStream* vkStream, VkStructureType rootType,
37320                                              VkCopyMemoryIndirectCommandNV* forUnmarshaling) {
37321     (void)rootType;
37322     vkStream->read((VkDeviceAddress*)&forUnmarshaling->srcAddress, sizeof(VkDeviceAddress));
37323     vkStream->read((VkDeviceAddress*)&forUnmarshaling->dstAddress, sizeof(VkDeviceAddress));
37324     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
37325 }
37326 
marshal_VkCopyMemoryToImageIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,const VkCopyMemoryToImageIndirectCommandNV * forMarshaling)37327 void marshal_VkCopyMemoryToImageIndirectCommandNV(
37328     VulkanStream* vkStream, VkStructureType rootType,
37329     const VkCopyMemoryToImageIndirectCommandNV* forMarshaling) {
37330     (void)rootType;
37331     vkStream->write((VkDeviceAddress*)&forMarshaling->srcAddress, sizeof(VkDeviceAddress));
37332     vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
37333     vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
37334     marshal_VkImageSubresourceLayers(vkStream, rootType,
37335                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
37336     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
37337     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
37338 }
37339 
unmarshal_VkCopyMemoryToImageIndirectCommandNV(VulkanStream * vkStream,VkStructureType rootType,VkCopyMemoryToImageIndirectCommandNV * forUnmarshaling)37340 void unmarshal_VkCopyMemoryToImageIndirectCommandNV(
37341     VulkanStream* vkStream, VkStructureType rootType,
37342     VkCopyMemoryToImageIndirectCommandNV* forUnmarshaling) {
37343     (void)rootType;
37344     vkStream->read((VkDeviceAddress*)&forUnmarshaling->srcAddress, sizeof(VkDeviceAddress));
37345     vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
37346     vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
37347     unmarshal_VkImageSubresourceLayers(
37348         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
37349     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
37350     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
37351 }
37352 
marshal_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV * forMarshaling)37353 void marshal_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(
37354     VulkanStream* vkStream, VkStructureType rootType,
37355     const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV* forMarshaling) {
37356     (void)rootType;
37357     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37358     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37359         rootType = forMarshaling->sType;
37360     }
37361     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37362     vkStream->write((VkBool32*)&forMarshaling->indirectCopy, sizeof(VkBool32));
37363 }
37364 
unmarshal_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCopyMemoryIndirectFeaturesNV * forUnmarshaling)37365 void unmarshal_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(
37366     VulkanStream* vkStream, VkStructureType rootType,
37367     VkPhysicalDeviceCopyMemoryIndirectFeaturesNV* forUnmarshaling) {
37368     (void)rootType;
37369     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37370     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37371         rootType = forUnmarshaling->sType;
37372     }
37373     size_t pNext_size;
37374     pNext_size = vkStream->getBe32();
37375     forUnmarshaling->pNext = nullptr;
37376     if (pNext_size) {
37377         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37378         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37379         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37380         vkStream->alloc((void**)&forUnmarshaling->pNext,
37381                         goldfish_vk_extension_struct_size_with_stream_features(
37382                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37383         *(VkStructureType*)forUnmarshaling->pNext = extType;
37384         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37385     }
37386     vkStream->read((VkBool32*)&forUnmarshaling->indirectCopy, sizeof(VkBool32));
37387 }
37388 
marshal_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV * forMarshaling)37389 void marshal_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(
37390     VulkanStream* vkStream, VkStructureType rootType,
37391     const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV* forMarshaling) {
37392     (void)rootType;
37393     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37394     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37395         rootType = forMarshaling->sType;
37396     }
37397     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37398     vkStream->write((VkQueueFlags*)&forMarshaling->supportedQueues, sizeof(VkQueueFlags));
37399 }
37400 
unmarshal_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCopyMemoryIndirectPropertiesNV * forUnmarshaling)37401 void unmarshal_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(
37402     VulkanStream* vkStream, VkStructureType rootType,
37403     VkPhysicalDeviceCopyMemoryIndirectPropertiesNV* forUnmarshaling) {
37404     (void)rootType;
37405     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37406     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37407         rootType = forUnmarshaling->sType;
37408     }
37409     size_t pNext_size;
37410     pNext_size = vkStream->getBe32();
37411     forUnmarshaling->pNext = nullptr;
37412     if (pNext_size) {
37413         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37414         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37415         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37416         vkStream->alloc((void**)&forUnmarshaling->pNext,
37417                         goldfish_vk_extension_struct_size_with_stream_features(
37418                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37419         *(VkStructureType*)forUnmarshaling->pNext = extType;
37420         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37421     }
37422     vkStream->read((VkQueueFlags*)&forUnmarshaling->supportedQueues, sizeof(VkQueueFlags));
37423 }
37424 
37425 #endif
37426 #ifdef VK_NV_memory_decompression
marshal_VkDecompressMemoryRegionNV(VulkanStream * vkStream,VkStructureType rootType,const VkDecompressMemoryRegionNV * forMarshaling)37427 void marshal_VkDecompressMemoryRegionNV(VulkanStream* vkStream, VkStructureType rootType,
37428                                         const VkDecompressMemoryRegionNV* forMarshaling) {
37429     (void)rootType;
37430     vkStream->write((VkDeviceAddress*)&forMarshaling->srcAddress, sizeof(VkDeviceAddress));
37431     vkStream->write((VkDeviceAddress*)&forMarshaling->dstAddress, sizeof(VkDeviceAddress));
37432     vkStream->write((VkDeviceSize*)&forMarshaling->compressedSize, sizeof(VkDeviceSize));
37433     vkStream->write((VkDeviceSize*)&forMarshaling->decompressedSize, sizeof(VkDeviceSize));
37434     vkStream->write((VkMemoryDecompressionMethodFlagsNV*)&forMarshaling->decompressionMethod,
37435                     sizeof(VkMemoryDecompressionMethodFlagsNV));
37436 }
37437 
unmarshal_VkDecompressMemoryRegionNV(VulkanStream * vkStream,VkStructureType rootType,VkDecompressMemoryRegionNV * forUnmarshaling)37438 void unmarshal_VkDecompressMemoryRegionNV(VulkanStream* vkStream, VkStructureType rootType,
37439                                           VkDecompressMemoryRegionNV* forUnmarshaling) {
37440     (void)rootType;
37441     vkStream->read((VkDeviceAddress*)&forUnmarshaling->srcAddress, sizeof(VkDeviceAddress));
37442     vkStream->read((VkDeviceAddress*)&forUnmarshaling->dstAddress, sizeof(VkDeviceAddress));
37443     vkStream->read((VkDeviceSize*)&forUnmarshaling->compressedSize, sizeof(VkDeviceSize));
37444     vkStream->read((VkDeviceSize*)&forUnmarshaling->decompressedSize, sizeof(VkDeviceSize));
37445     vkStream->read((VkMemoryDecompressionMethodFlagsNV*)&forUnmarshaling->decompressionMethod,
37446                    sizeof(VkMemoryDecompressionMethodFlagsNV));
37447 }
37448 
marshal_VkPhysicalDeviceMemoryDecompressionFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryDecompressionFeaturesNV * forMarshaling)37449 void marshal_VkPhysicalDeviceMemoryDecompressionFeaturesNV(
37450     VulkanStream* vkStream, VkStructureType rootType,
37451     const VkPhysicalDeviceMemoryDecompressionFeaturesNV* forMarshaling) {
37452     (void)rootType;
37453     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37454     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37455         rootType = forMarshaling->sType;
37456     }
37457     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37458     vkStream->write((VkBool32*)&forMarshaling->memoryDecompression, sizeof(VkBool32));
37459 }
37460 
unmarshal_VkPhysicalDeviceMemoryDecompressionFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryDecompressionFeaturesNV * forUnmarshaling)37461 void unmarshal_VkPhysicalDeviceMemoryDecompressionFeaturesNV(
37462     VulkanStream* vkStream, VkStructureType rootType,
37463     VkPhysicalDeviceMemoryDecompressionFeaturesNV* forUnmarshaling) {
37464     (void)rootType;
37465     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37466     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37467         rootType = forUnmarshaling->sType;
37468     }
37469     size_t pNext_size;
37470     pNext_size = vkStream->getBe32();
37471     forUnmarshaling->pNext = nullptr;
37472     if (pNext_size) {
37473         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37474         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37475         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37476         vkStream->alloc((void**)&forUnmarshaling->pNext,
37477                         goldfish_vk_extension_struct_size_with_stream_features(
37478                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37479         *(VkStructureType*)forUnmarshaling->pNext = extType;
37480         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37481     }
37482     vkStream->read((VkBool32*)&forUnmarshaling->memoryDecompression, sizeof(VkBool32));
37483 }
37484 
marshal_VkPhysicalDeviceMemoryDecompressionPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryDecompressionPropertiesNV * forMarshaling)37485 void marshal_VkPhysicalDeviceMemoryDecompressionPropertiesNV(
37486     VulkanStream* vkStream, VkStructureType rootType,
37487     const VkPhysicalDeviceMemoryDecompressionPropertiesNV* forMarshaling) {
37488     (void)rootType;
37489     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37490     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37491         rootType = forMarshaling->sType;
37492     }
37493     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37494     vkStream->write((VkMemoryDecompressionMethodFlagsNV*)&forMarshaling->decompressionMethods,
37495                     sizeof(VkMemoryDecompressionMethodFlagsNV));
37496     vkStream->write((uint64_t*)&forMarshaling->maxDecompressionIndirectCount, sizeof(uint64_t));
37497 }
37498 
unmarshal_VkPhysicalDeviceMemoryDecompressionPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryDecompressionPropertiesNV * forUnmarshaling)37499 void unmarshal_VkPhysicalDeviceMemoryDecompressionPropertiesNV(
37500     VulkanStream* vkStream, VkStructureType rootType,
37501     VkPhysicalDeviceMemoryDecompressionPropertiesNV* forUnmarshaling) {
37502     (void)rootType;
37503     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37504     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37505         rootType = forUnmarshaling->sType;
37506     }
37507     size_t pNext_size;
37508     pNext_size = vkStream->getBe32();
37509     forUnmarshaling->pNext = nullptr;
37510     if (pNext_size) {
37511         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37512         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37513         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37514         vkStream->alloc((void**)&forUnmarshaling->pNext,
37515                         goldfish_vk_extension_struct_size_with_stream_features(
37516                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37517         *(VkStructureType*)forUnmarshaling->pNext = extType;
37518         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37519     }
37520     vkStream->read((VkMemoryDecompressionMethodFlagsNV*)&forUnmarshaling->decompressionMethods,
37521                    sizeof(VkMemoryDecompressionMethodFlagsNV));
37522     vkStream->read((uint64_t*)&forUnmarshaling->maxDecompressionIndirectCount, sizeof(uint64_t));
37523 }
37524 
37525 #endif
37526 #ifdef VK_NV_linear_color_attachment
marshal_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceLinearColorAttachmentFeaturesNV * forMarshaling)37527 void marshal_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(
37528     VulkanStream* vkStream, VkStructureType rootType,
37529     const VkPhysicalDeviceLinearColorAttachmentFeaturesNV* forMarshaling) {
37530     (void)rootType;
37531     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37532     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37533         rootType = forMarshaling->sType;
37534     }
37535     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37536     vkStream->write((VkBool32*)&forMarshaling->linearColorAttachment, sizeof(VkBool32));
37537 }
37538 
unmarshal_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLinearColorAttachmentFeaturesNV * forUnmarshaling)37539 void unmarshal_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(
37540     VulkanStream* vkStream, VkStructureType rootType,
37541     VkPhysicalDeviceLinearColorAttachmentFeaturesNV* forUnmarshaling) {
37542     (void)rootType;
37543     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37544     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37545         rootType = forUnmarshaling->sType;
37546     }
37547     size_t pNext_size;
37548     pNext_size = vkStream->getBe32();
37549     forUnmarshaling->pNext = nullptr;
37550     if (pNext_size) {
37551         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37552         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37553         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37554         vkStream->alloc((void**)&forUnmarshaling->pNext,
37555                         goldfish_vk_extension_struct_size_with_stream_features(
37556                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37557         *(VkStructureType*)forUnmarshaling->pNext = extType;
37558         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37559     }
37560     vkStream->read((VkBool32*)&forUnmarshaling->linearColorAttachment, sizeof(VkBool32));
37561 }
37562 
37563 #endif
37564 #ifdef VK_GOOGLE_surfaceless_query
37565 #endif
37566 #ifdef VK_EXT_image_compression_control_swapchain
marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forMarshaling)37567 void marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
37568     VulkanStream* vkStream, VkStructureType rootType,
37569     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forMarshaling) {
37570     (void)rootType;
37571     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37572     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37573         rootType = forMarshaling->sType;
37574     }
37575     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37576     vkStream->write((VkBool32*)&forMarshaling->imageCompressionControlSwapchain, sizeof(VkBool32));
37577 }
37578 
unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forUnmarshaling)37579 void unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
37580     VulkanStream* vkStream, VkStructureType rootType,
37581     VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forUnmarshaling) {
37582     (void)rootType;
37583     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37584     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37585         rootType = forUnmarshaling->sType;
37586     }
37587     size_t pNext_size;
37588     pNext_size = vkStream->getBe32();
37589     forUnmarshaling->pNext = nullptr;
37590     if (pNext_size) {
37591         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37592         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37593         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37594         vkStream->alloc((void**)&forUnmarshaling->pNext,
37595                         goldfish_vk_extension_struct_size_with_stream_features(
37596                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37597         *(VkStructureType*)forUnmarshaling->pNext = extType;
37598         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37599     }
37600     vkStream->read((VkBool32*)&forUnmarshaling->imageCompressionControlSwapchain, sizeof(VkBool32));
37601 }
37602 
37603 #endif
37604 #ifdef VK_QCOM_image_processing
marshal_VkImageViewSampleWeightCreateInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkImageViewSampleWeightCreateInfoQCOM * forMarshaling)37605 void marshal_VkImageViewSampleWeightCreateInfoQCOM(
37606     VulkanStream* vkStream, VkStructureType rootType,
37607     const VkImageViewSampleWeightCreateInfoQCOM* forMarshaling) {
37608     (void)rootType;
37609     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37610     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37611         rootType = forMarshaling->sType;
37612     }
37613     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37614     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->filterCenter));
37615     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->filterSize));
37616     vkStream->write((uint32_t*)&forMarshaling->numPhases, sizeof(uint32_t));
37617 }
37618 
unmarshal_VkImageViewSampleWeightCreateInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,VkImageViewSampleWeightCreateInfoQCOM * forUnmarshaling)37619 void unmarshal_VkImageViewSampleWeightCreateInfoQCOM(
37620     VulkanStream* vkStream, VkStructureType rootType,
37621     VkImageViewSampleWeightCreateInfoQCOM* forUnmarshaling) {
37622     (void)rootType;
37623     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37624     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37625         rootType = forUnmarshaling->sType;
37626     }
37627     size_t pNext_size;
37628     pNext_size = vkStream->getBe32();
37629     forUnmarshaling->pNext = nullptr;
37630     if (pNext_size) {
37631         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37632         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37633         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37634         vkStream->alloc((void**)&forUnmarshaling->pNext,
37635                         goldfish_vk_extension_struct_size_with_stream_features(
37636                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37637         *(VkStructureType*)forUnmarshaling->pNext = extType;
37638         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37639     }
37640     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->filterCenter));
37641     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->filterSize));
37642     vkStream->read((uint32_t*)&forUnmarshaling->numPhases, sizeof(uint32_t));
37643 }
37644 
marshal_VkPhysicalDeviceImageProcessingFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageProcessingFeaturesQCOM * forMarshaling)37645 void marshal_VkPhysicalDeviceImageProcessingFeaturesQCOM(
37646     VulkanStream* vkStream, VkStructureType rootType,
37647     const VkPhysicalDeviceImageProcessingFeaturesQCOM* forMarshaling) {
37648     (void)rootType;
37649     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37650     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37651         rootType = forMarshaling->sType;
37652     }
37653     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37654     vkStream->write((VkBool32*)&forMarshaling->textureSampleWeighted, sizeof(VkBool32));
37655     vkStream->write((VkBool32*)&forMarshaling->textureBoxFilter, sizeof(VkBool32));
37656     vkStream->write((VkBool32*)&forMarshaling->textureBlockMatch, sizeof(VkBool32));
37657 }
37658 
unmarshal_VkPhysicalDeviceImageProcessingFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageProcessingFeaturesQCOM * forUnmarshaling)37659 void unmarshal_VkPhysicalDeviceImageProcessingFeaturesQCOM(
37660     VulkanStream* vkStream, VkStructureType rootType,
37661     VkPhysicalDeviceImageProcessingFeaturesQCOM* forUnmarshaling) {
37662     (void)rootType;
37663     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37664     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37665         rootType = forUnmarshaling->sType;
37666     }
37667     size_t pNext_size;
37668     pNext_size = vkStream->getBe32();
37669     forUnmarshaling->pNext = nullptr;
37670     if (pNext_size) {
37671         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37672         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37673         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37674         vkStream->alloc((void**)&forUnmarshaling->pNext,
37675                         goldfish_vk_extension_struct_size_with_stream_features(
37676                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37677         *(VkStructureType*)forUnmarshaling->pNext = extType;
37678         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37679     }
37680     vkStream->read((VkBool32*)&forUnmarshaling->textureSampleWeighted, sizeof(VkBool32));
37681     vkStream->read((VkBool32*)&forUnmarshaling->textureBoxFilter, sizeof(VkBool32));
37682     vkStream->read((VkBool32*)&forUnmarshaling->textureBlockMatch, sizeof(VkBool32));
37683 }
37684 
marshal_VkPhysicalDeviceImageProcessingPropertiesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageProcessingPropertiesQCOM * forMarshaling)37685 void marshal_VkPhysicalDeviceImageProcessingPropertiesQCOM(
37686     VulkanStream* vkStream, VkStructureType rootType,
37687     const VkPhysicalDeviceImageProcessingPropertiesQCOM* forMarshaling) {
37688     (void)rootType;
37689     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37690     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37691         rootType = forMarshaling->sType;
37692     }
37693     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37694     vkStream->write((uint32_t*)&forMarshaling->maxWeightFilterPhases, sizeof(uint32_t));
37695     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxWeightFilterDimension));
37696     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxBlockMatchRegion));
37697     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxBoxFilterBlockSize));
37698 }
37699 
unmarshal_VkPhysicalDeviceImageProcessingPropertiesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageProcessingPropertiesQCOM * forUnmarshaling)37700 void unmarshal_VkPhysicalDeviceImageProcessingPropertiesQCOM(
37701     VulkanStream* vkStream, VkStructureType rootType,
37702     VkPhysicalDeviceImageProcessingPropertiesQCOM* forUnmarshaling) {
37703     (void)rootType;
37704     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37705     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37706         rootType = forUnmarshaling->sType;
37707     }
37708     size_t pNext_size;
37709     pNext_size = vkStream->getBe32();
37710     forUnmarshaling->pNext = nullptr;
37711     if (pNext_size) {
37712         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37713         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37714         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37715         vkStream->alloc((void**)&forUnmarshaling->pNext,
37716                         goldfish_vk_extension_struct_size_with_stream_features(
37717                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37718         *(VkStructureType*)forUnmarshaling->pNext = extType;
37719         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37720     }
37721     vkStream->read((uint32_t*)&forUnmarshaling->maxWeightFilterPhases, sizeof(uint32_t));
37722     unmarshal_VkExtent2D(vkStream, rootType,
37723                          (VkExtent2D*)(&forUnmarshaling->maxWeightFilterDimension));
37724     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxBlockMatchRegion));
37725     unmarshal_VkExtent2D(vkStream, rootType,
37726                          (VkExtent2D*)(&forUnmarshaling->maxBoxFilterBlockSize));
37727 }
37728 
37729 #endif
37730 #ifdef VK_EXT_extended_dynamic_state3
marshal_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT * forMarshaling)37731 void marshal_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(
37732     VulkanStream* vkStream, VkStructureType rootType,
37733     const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* forMarshaling) {
37734     (void)rootType;
37735     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37736     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37737         rootType = forMarshaling->sType;
37738     }
37739     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37740     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3TessellationDomainOrigin,
37741                     sizeof(VkBool32));
37742     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3DepthClampEnable,
37743                     sizeof(VkBool32));
37744     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3PolygonMode, sizeof(VkBool32));
37745     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3RasterizationSamples,
37746                     sizeof(VkBool32));
37747     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3SampleMask, sizeof(VkBool32));
37748     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3AlphaToCoverageEnable,
37749                     sizeof(VkBool32));
37750     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3AlphaToOneEnable,
37751                     sizeof(VkBool32));
37752     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3LogicOpEnable,
37753                     sizeof(VkBool32));
37754     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ColorBlendEnable,
37755                     sizeof(VkBool32));
37756     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ColorBlendEquation,
37757                     sizeof(VkBool32));
37758     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ColorWriteMask,
37759                     sizeof(VkBool32));
37760     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3RasterizationStream,
37761                     sizeof(VkBool32));
37762     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ConservativeRasterizationMode,
37763                     sizeof(VkBool32));
37764     vkStream->write(
37765         (VkBool32*)&forMarshaling->extendedDynamicState3ExtraPrimitiveOverestimationSize,
37766         sizeof(VkBool32));
37767     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3DepthClipEnable,
37768                     sizeof(VkBool32));
37769     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3SampleLocationsEnable,
37770                     sizeof(VkBool32));
37771     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ColorBlendAdvanced,
37772                     sizeof(VkBool32));
37773     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ProvokingVertexMode,
37774                     sizeof(VkBool32));
37775     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3LineRasterizationMode,
37776                     sizeof(VkBool32));
37777     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3LineStippleEnable,
37778                     sizeof(VkBool32));
37779     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3DepthClipNegativeOneToOne,
37780                     sizeof(VkBool32));
37781     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ViewportWScalingEnable,
37782                     sizeof(VkBool32));
37783     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ViewportSwizzle,
37784                     sizeof(VkBool32));
37785     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3CoverageToColorEnable,
37786                     sizeof(VkBool32));
37787     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3CoverageToColorLocation,
37788                     sizeof(VkBool32));
37789     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3CoverageModulationMode,
37790                     sizeof(VkBool32));
37791     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3CoverageModulationTableEnable,
37792                     sizeof(VkBool32));
37793     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3CoverageModulationTable,
37794                     sizeof(VkBool32));
37795     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3CoverageReductionMode,
37796                     sizeof(VkBool32));
37797     vkStream->write(
37798         (VkBool32*)&forMarshaling->extendedDynamicState3RepresentativeFragmentTestEnable,
37799         sizeof(VkBool32));
37800     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState3ShadingRateImageEnable,
37801                     sizeof(VkBool32));
37802 }
37803 
unmarshal_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicState3FeaturesEXT * forUnmarshaling)37804 void unmarshal_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(
37805     VulkanStream* vkStream, VkStructureType rootType,
37806     VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* forUnmarshaling) {
37807     (void)rootType;
37808     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37809     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37810         rootType = forUnmarshaling->sType;
37811     }
37812     size_t pNext_size;
37813     pNext_size = vkStream->getBe32();
37814     forUnmarshaling->pNext = nullptr;
37815     if (pNext_size) {
37816         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37817         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37818         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37819         vkStream->alloc((void**)&forUnmarshaling->pNext,
37820                         goldfish_vk_extension_struct_size_with_stream_features(
37821                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37822         *(VkStructureType*)forUnmarshaling->pNext = extType;
37823         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37824     }
37825     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3TessellationDomainOrigin,
37826                    sizeof(VkBool32));
37827     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3DepthClampEnable,
37828                    sizeof(VkBool32));
37829     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3PolygonMode, sizeof(VkBool32));
37830     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3RasterizationSamples,
37831                    sizeof(VkBool32));
37832     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3SampleMask, sizeof(VkBool32));
37833     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3AlphaToCoverageEnable,
37834                    sizeof(VkBool32));
37835     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3AlphaToOneEnable,
37836                    sizeof(VkBool32));
37837     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3LogicOpEnable,
37838                    sizeof(VkBool32));
37839     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ColorBlendEnable,
37840                    sizeof(VkBool32));
37841     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ColorBlendEquation,
37842                    sizeof(VkBool32));
37843     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ColorWriteMask,
37844                    sizeof(VkBool32));
37845     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3RasterizationStream,
37846                    sizeof(VkBool32));
37847     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ConservativeRasterizationMode,
37848                    sizeof(VkBool32));
37849     vkStream->read(
37850         (VkBool32*)&forUnmarshaling->extendedDynamicState3ExtraPrimitiveOverestimationSize,
37851         sizeof(VkBool32));
37852     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3DepthClipEnable,
37853                    sizeof(VkBool32));
37854     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3SampleLocationsEnable,
37855                    sizeof(VkBool32));
37856     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ColorBlendAdvanced,
37857                    sizeof(VkBool32));
37858     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ProvokingVertexMode,
37859                    sizeof(VkBool32));
37860     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3LineRasterizationMode,
37861                    sizeof(VkBool32));
37862     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3LineStippleEnable,
37863                    sizeof(VkBool32));
37864     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3DepthClipNegativeOneToOne,
37865                    sizeof(VkBool32));
37866     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ViewportWScalingEnable,
37867                    sizeof(VkBool32));
37868     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ViewportSwizzle,
37869                    sizeof(VkBool32));
37870     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3CoverageToColorEnable,
37871                    sizeof(VkBool32));
37872     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3CoverageToColorLocation,
37873                    sizeof(VkBool32));
37874     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3CoverageModulationMode,
37875                    sizeof(VkBool32));
37876     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3CoverageModulationTableEnable,
37877                    sizeof(VkBool32));
37878     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3CoverageModulationTable,
37879                    sizeof(VkBool32));
37880     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3CoverageReductionMode,
37881                    sizeof(VkBool32));
37882     vkStream->read(
37883         (VkBool32*)&forUnmarshaling->extendedDynamicState3RepresentativeFragmentTestEnable,
37884         sizeof(VkBool32));
37885     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState3ShadingRateImageEnable,
37886                    sizeof(VkBool32));
37887 }
37888 
marshal_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT * forMarshaling)37889 void marshal_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(
37890     VulkanStream* vkStream, VkStructureType rootType,
37891     const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* forMarshaling) {
37892     (void)rootType;
37893     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37894     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37895         rootType = forMarshaling->sType;
37896     }
37897     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37898     vkStream->write((VkBool32*)&forMarshaling->dynamicPrimitiveTopologyUnrestricted,
37899                     sizeof(VkBool32));
37900 }
37901 
unmarshal_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicState3PropertiesEXT * forUnmarshaling)37902 void unmarshal_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(
37903     VulkanStream* vkStream, VkStructureType rootType,
37904     VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* forUnmarshaling) {
37905     (void)rootType;
37906     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37907     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37908         rootType = forUnmarshaling->sType;
37909     }
37910     size_t pNext_size;
37911     pNext_size = vkStream->getBe32();
37912     forUnmarshaling->pNext = nullptr;
37913     if (pNext_size) {
37914         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37915         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37916         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37917         vkStream->alloc((void**)&forUnmarshaling->pNext,
37918                         goldfish_vk_extension_struct_size_with_stream_features(
37919                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
37920         *(VkStructureType*)forUnmarshaling->pNext = extType;
37921         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
37922     }
37923     vkStream->read((VkBool32*)&forUnmarshaling->dynamicPrimitiveTopologyUnrestricted,
37924                    sizeof(VkBool32));
37925 }
37926 
marshal_VkColorBlendEquationEXT(VulkanStream * vkStream,VkStructureType rootType,const VkColorBlendEquationEXT * forMarshaling)37927 void marshal_VkColorBlendEquationEXT(VulkanStream* vkStream, VkStructureType rootType,
37928                                      const VkColorBlendEquationEXT* forMarshaling) {
37929     (void)rootType;
37930     vkStream->write((VkBlendFactor*)&forMarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
37931     vkStream->write((VkBlendFactor*)&forMarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
37932     vkStream->write((VkBlendOp*)&forMarshaling->colorBlendOp, sizeof(VkBlendOp));
37933     vkStream->write((VkBlendFactor*)&forMarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
37934     vkStream->write((VkBlendFactor*)&forMarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
37935     vkStream->write((VkBlendOp*)&forMarshaling->alphaBlendOp, sizeof(VkBlendOp));
37936 }
37937 
unmarshal_VkColorBlendEquationEXT(VulkanStream * vkStream,VkStructureType rootType,VkColorBlendEquationEXT * forUnmarshaling)37938 void unmarshal_VkColorBlendEquationEXT(VulkanStream* vkStream, VkStructureType rootType,
37939                                        VkColorBlendEquationEXT* forUnmarshaling) {
37940     (void)rootType;
37941     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
37942     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
37943     vkStream->read((VkBlendOp*)&forUnmarshaling->colorBlendOp, sizeof(VkBlendOp));
37944     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
37945     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
37946     vkStream->read((VkBlendOp*)&forUnmarshaling->alphaBlendOp, sizeof(VkBlendOp));
37947 }
37948 
marshal_VkColorBlendAdvancedEXT(VulkanStream * vkStream,VkStructureType rootType,const VkColorBlendAdvancedEXT * forMarshaling)37949 void marshal_VkColorBlendAdvancedEXT(VulkanStream* vkStream, VkStructureType rootType,
37950                                      const VkColorBlendAdvancedEXT* forMarshaling) {
37951     (void)rootType;
37952     vkStream->write((VkBlendOp*)&forMarshaling->advancedBlendOp, sizeof(VkBlendOp));
37953     vkStream->write((VkBool32*)&forMarshaling->srcPremultiplied, sizeof(VkBool32));
37954     vkStream->write((VkBool32*)&forMarshaling->dstPremultiplied, sizeof(VkBool32));
37955     vkStream->write((VkBlendOverlapEXT*)&forMarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
37956     vkStream->write((VkBool32*)&forMarshaling->clampResults, sizeof(VkBool32));
37957 }
37958 
unmarshal_VkColorBlendAdvancedEXT(VulkanStream * vkStream,VkStructureType rootType,VkColorBlendAdvancedEXT * forUnmarshaling)37959 void unmarshal_VkColorBlendAdvancedEXT(VulkanStream* vkStream, VkStructureType rootType,
37960                                        VkColorBlendAdvancedEXT* forUnmarshaling) {
37961     (void)rootType;
37962     vkStream->read((VkBlendOp*)&forUnmarshaling->advancedBlendOp, sizeof(VkBlendOp));
37963     vkStream->read((VkBool32*)&forUnmarshaling->srcPremultiplied, sizeof(VkBool32));
37964     vkStream->read((VkBool32*)&forUnmarshaling->dstPremultiplied, sizeof(VkBool32));
37965     vkStream->read((VkBlendOverlapEXT*)&forUnmarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
37966     vkStream->read((VkBool32*)&forUnmarshaling->clampResults, sizeof(VkBool32));
37967 }
37968 
37969 #endif
37970 #ifdef VK_EXT_subpass_merge_feedback
marshal_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT * forMarshaling)37971 void marshal_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(
37972     VulkanStream* vkStream, VkStructureType rootType,
37973     const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* forMarshaling) {
37974     (void)rootType;
37975     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
37976     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37977         rootType = forMarshaling->sType;
37978     }
37979     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
37980     vkStream->write((VkBool32*)&forMarshaling->subpassMergeFeedback, sizeof(VkBool32));
37981 }
37982 
unmarshal_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT * forUnmarshaling)37983 void unmarshal_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(
37984     VulkanStream* vkStream, VkStructureType rootType,
37985     VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* forUnmarshaling) {
37986     (void)rootType;
37987     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
37988     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
37989         rootType = forUnmarshaling->sType;
37990     }
37991     size_t pNext_size;
37992     pNext_size = vkStream->getBe32();
37993     forUnmarshaling->pNext = nullptr;
37994     if (pNext_size) {
37995         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
37996         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
37997         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
37998         vkStream->alloc((void**)&forUnmarshaling->pNext,
37999                         goldfish_vk_extension_struct_size_with_stream_features(
38000                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38001         *(VkStructureType*)forUnmarshaling->pNext = extType;
38002         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38003     }
38004     vkStream->read((VkBool32*)&forUnmarshaling->subpassMergeFeedback, sizeof(VkBool32));
38005 }
38006 
marshal_VkRenderPassCreationControlEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassCreationControlEXT * forMarshaling)38007 void marshal_VkRenderPassCreationControlEXT(VulkanStream* vkStream, VkStructureType rootType,
38008                                             const VkRenderPassCreationControlEXT* forMarshaling) {
38009     (void)rootType;
38010     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38011     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38012         rootType = forMarshaling->sType;
38013     }
38014     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38015     vkStream->write((VkBool32*)&forMarshaling->disallowMerging, sizeof(VkBool32));
38016 }
38017 
unmarshal_VkRenderPassCreationControlEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassCreationControlEXT * forUnmarshaling)38018 void unmarshal_VkRenderPassCreationControlEXT(VulkanStream* vkStream, VkStructureType rootType,
38019                                               VkRenderPassCreationControlEXT* forUnmarshaling) {
38020     (void)rootType;
38021     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38022     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38023         rootType = forUnmarshaling->sType;
38024     }
38025     size_t pNext_size;
38026     pNext_size = vkStream->getBe32();
38027     forUnmarshaling->pNext = nullptr;
38028     if (pNext_size) {
38029         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38030         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38031         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38032         vkStream->alloc((void**)&forUnmarshaling->pNext,
38033                         goldfish_vk_extension_struct_size_with_stream_features(
38034                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38035         *(VkStructureType*)forUnmarshaling->pNext = extType;
38036         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38037     }
38038     vkStream->read((VkBool32*)&forUnmarshaling->disallowMerging, sizeof(VkBool32));
38039 }
38040 
marshal_VkRenderPassCreationFeedbackInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassCreationFeedbackInfoEXT * forMarshaling)38041 void marshal_VkRenderPassCreationFeedbackInfoEXT(
38042     VulkanStream* vkStream, VkStructureType rootType,
38043     const VkRenderPassCreationFeedbackInfoEXT* forMarshaling) {
38044     (void)rootType;
38045     vkStream->write((uint32_t*)&forMarshaling->postMergeSubpassCount, sizeof(uint32_t));
38046 }
38047 
unmarshal_VkRenderPassCreationFeedbackInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassCreationFeedbackInfoEXT * forUnmarshaling)38048 void unmarshal_VkRenderPassCreationFeedbackInfoEXT(
38049     VulkanStream* vkStream, VkStructureType rootType,
38050     VkRenderPassCreationFeedbackInfoEXT* forUnmarshaling) {
38051     (void)rootType;
38052     vkStream->read((uint32_t*)&forUnmarshaling->postMergeSubpassCount, sizeof(uint32_t));
38053 }
38054 
marshal_VkRenderPassCreationFeedbackCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassCreationFeedbackCreateInfoEXT * forMarshaling)38055 void marshal_VkRenderPassCreationFeedbackCreateInfoEXT(
38056     VulkanStream* vkStream, VkStructureType rootType,
38057     const VkRenderPassCreationFeedbackCreateInfoEXT* forMarshaling) {
38058     (void)rootType;
38059     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38060     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38061         rootType = forMarshaling->sType;
38062     }
38063     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38064     marshal_VkRenderPassCreationFeedbackInfoEXT(
38065         vkStream, rootType,
38066         (VkRenderPassCreationFeedbackInfoEXT*)(forMarshaling->pRenderPassFeedback));
38067 }
38068 
unmarshal_VkRenderPassCreationFeedbackCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassCreationFeedbackCreateInfoEXT * forUnmarshaling)38069 void unmarshal_VkRenderPassCreationFeedbackCreateInfoEXT(
38070     VulkanStream* vkStream, VkStructureType rootType,
38071     VkRenderPassCreationFeedbackCreateInfoEXT* forUnmarshaling) {
38072     (void)rootType;
38073     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38074     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38075         rootType = forUnmarshaling->sType;
38076     }
38077     size_t pNext_size;
38078     pNext_size = vkStream->getBe32();
38079     forUnmarshaling->pNext = nullptr;
38080     if (pNext_size) {
38081         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38082         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38083         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38084         vkStream->alloc((void**)&forUnmarshaling->pNext,
38085                         goldfish_vk_extension_struct_size_with_stream_features(
38086                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38087         *(VkStructureType*)forUnmarshaling->pNext = extType;
38088         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38089     }
38090     vkStream->alloc((void**)&forUnmarshaling->pRenderPassFeedback,
38091                     sizeof(VkRenderPassCreationFeedbackInfoEXT));
38092     unmarshal_VkRenderPassCreationFeedbackInfoEXT(
38093         vkStream, rootType,
38094         (VkRenderPassCreationFeedbackInfoEXT*)(forUnmarshaling->pRenderPassFeedback));
38095 }
38096 
marshal_VkRenderPassSubpassFeedbackInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassSubpassFeedbackInfoEXT * forMarshaling)38097 void marshal_VkRenderPassSubpassFeedbackInfoEXT(
38098     VulkanStream* vkStream, VkStructureType rootType,
38099     const VkRenderPassSubpassFeedbackInfoEXT* forMarshaling) {
38100     (void)rootType;
38101     vkStream->write((VkSubpassMergeStatusEXT*)&forMarshaling->subpassMergeStatus,
38102                     sizeof(VkSubpassMergeStatusEXT));
38103     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
38104     vkStream->write((uint32_t*)&forMarshaling->postMergeIndex, sizeof(uint32_t));
38105 }
38106 
unmarshal_VkRenderPassSubpassFeedbackInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassSubpassFeedbackInfoEXT * forUnmarshaling)38107 void unmarshal_VkRenderPassSubpassFeedbackInfoEXT(
38108     VulkanStream* vkStream, VkStructureType rootType,
38109     VkRenderPassSubpassFeedbackInfoEXT* forUnmarshaling) {
38110     (void)rootType;
38111     vkStream->read((VkSubpassMergeStatusEXT*)&forUnmarshaling->subpassMergeStatus,
38112                    sizeof(VkSubpassMergeStatusEXT));
38113     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
38114     vkStream->read((uint32_t*)&forUnmarshaling->postMergeIndex, sizeof(uint32_t));
38115 }
38116 
marshal_VkRenderPassSubpassFeedbackCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkRenderPassSubpassFeedbackCreateInfoEXT * forMarshaling)38117 void marshal_VkRenderPassSubpassFeedbackCreateInfoEXT(
38118     VulkanStream* vkStream, VkStructureType rootType,
38119     const VkRenderPassSubpassFeedbackCreateInfoEXT* forMarshaling) {
38120     (void)rootType;
38121     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38122     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38123         rootType = forMarshaling->sType;
38124     }
38125     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38126     marshal_VkRenderPassSubpassFeedbackInfoEXT(
38127         vkStream, rootType, (VkRenderPassSubpassFeedbackInfoEXT*)(forMarshaling->pSubpassFeedback));
38128 }
38129 
unmarshal_VkRenderPassSubpassFeedbackCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassSubpassFeedbackCreateInfoEXT * forUnmarshaling)38130 void unmarshal_VkRenderPassSubpassFeedbackCreateInfoEXT(
38131     VulkanStream* vkStream, VkStructureType rootType,
38132     VkRenderPassSubpassFeedbackCreateInfoEXT* forUnmarshaling) {
38133     (void)rootType;
38134     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38135     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38136         rootType = forUnmarshaling->sType;
38137     }
38138     size_t pNext_size;
38139     pNext_size = vkStream->getBe32();
38140     forUnmarshaling->pNext = nullptr;
38141     if (pNext_size) {
38142         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38143         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38144         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38145         vkStream->alloc((void**)&forUnmarshaling->pNext,
38146                         goldfish_vk_extension_struct_size_with_stream_features(
38147                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38148         *(VkStructureType*)forUnmarshaling->pNext = extType;
38149         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38150     }
38151     vkStream->alloc((void**)&forUnmarshaling->pSubpassFeedback,
38152                     sizeof(VkRenderPassSubpassFeedbackInfoEXT));
38153     unmarshal_VkRenderPassSubpassFeedbackInfoEXT(
38154         vkStream, rootType,
38155         (VkRenderPassSubpassFeedbackInfoEXT*)(forUnmarshaling->pSubpassFeedback));
38156 }
38157 
38158 #endif
38159 #ifdef VK_LUNARG_direct_driver_loading
marshal_VkDirectDriverLoadingInfoLUNARG(VulkanStream * vkStream,VkStructureType rootType,const VkDirectDriverLoadingInfoLUNARG * forMarshaling)38160 void marshal_VkDirectDriverLoadingInfoLUNARG(VulkanStream* vkStream, VkStructureType rootType,
38161                                              const VkDirectDriverLoadingInfoLUNARG* forMarshaling) {
38162     (void)rootType;
38163     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38164     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38165         rootType = forMarshaling->sType;
38166     }
38167     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38168     vkStream->write((VkDirectDriverLoadingFlagsLUNARG*)&forMarshaling->flags,
38169                     sizeof(VkDirectDriverLoadingFlagsLUNARG));
38170     uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnGetInstanceProcAddr;
38171     vkStream->putBe64(cgen_var_0);
38172 }
38173 
unmarshal_VkDirectDriverLoadingInfoLUNARG(VulkanStream * vkStream,VkStructureType rootType,VkDirectDriverLoadingInfoLUNARG * forUnmarshaling)38174 void unmarshal_VkDirectDriverLoadingInfoLUNARG(VulkanStream* vkStream, VkStructureType rootType,
38175                                                VkDirectDriverLoadingInfoLUNARG* forUnmarshaling) {
38176     (void)rootType;
38177     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38178     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38179         rootType = forUnmarshaling->sType;
38180     }
38181     size_t pNext_size;
38182     pNext_size = vkStream->getBe32();
38183     forUnmarshaling->pNext = nullptr;
38184     if (pNext_size) {
38185         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38186         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38187         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38188         vkStream->alloc((void**)&forUnmarshaling->pNext,
38189                         goldfish_vk_extension_struct_size_with_stream_features(
38190                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38191         *(VkStructureType*)forUnmarshaling->pNext = extType;
38192         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38193     }
38194     vkStream->read((VkDirectDriverLoadingFlagsLUNARG*)&forUnmarshaling->flags,
38195                    sizeof(VkDirectDriverLoadingFlagsLUNARG));
38196     forUnmarshaling->pfnGetInstanceProcAddr = (PFN_vkGetInstanceProcAddrLUNARG)vkStream->getBe64();
38197 }
38198 
marshal_VkDirectDriverLoadingListLUNARG(VulkanStream * vkStream,VkStructureType rootType,const VkDirectDriverLoadingListLUNARG * forMarshaling)38199 void marshal_VkDirectDriverLoadingListLUNARG(VulkanStream* vkStream, VkStructureType rootType,
38200                                              const VkDirectDriverLoadingListLUNARG* forMarshaling) {
38201     (void)rootType;
38202     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38203     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38204         rootType = forMarshaling->sType;
38205     }
38206     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38207     vkStream->write((VkDirectDriverLoadingModeLUNARG*)&forMarshaling->mode,
38208                     sizeof(VkDirectDriverLoadingModeLUNARG));
38209     vkStream->write((uint32_t*)&forMarshaling->driverCount, sizeof(uint32_t));
38210     if (forMarshaling) {
38211         for (uint32_t i = 0; i < (uint32_t)forMarshaling->driverCount; ++i) {
38212             marshal_VkDirectDriverLoadingInfoLUNARG(
38213                 vkStream, rootType,
38214                 (const VkDirectDriverLoadingInfoLUNARG*)(forMarshaling->pDrivers + i));
38215         }
38216     }
38217 }
38218 
unmarshal_VkDirectDriverLoadingListLUNARG(VulkanStream * vkStream,VkStructureType rootType,VkDirectDriverLoadingListLUNARG * forUnmarshaling)38219 void unmarshal_VkDirectDriverLoadingListLUNARG(VulkanStream* vkStream, VkStructureType rootType,
38220                                                VkDirectDriverLoadingListLUNARG* forUnmarshaling) {
38221     (void)rootType;
38222     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38223     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38224         rootType = forUnmarshaling->sType;
38225     }
38226     size_t pNext_size;
38227     pNext_size = vkStream->getBe32();
38228     forUnmarshaling->pNext = nullptr;
38229     if (pNext_size) {
38230         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38231         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38232         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38233         vkStream->alloc((void**)&forUnmarshaling->pNext,
38234                         goldfish_vk_extension_struct_size_with_stream_features(
38235                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38236         *(VkStructureType*)forUnmarshaling->pNext = extType;
38237         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38238     }
38239     vkStream->read((VkDirectDriverLoadingModeLUNARG*)&forUnmarshaling->mode,
38240                    sizeof(VkDirectDriverLoadingModeLUNARG));
38241     vkStream->read((uint32_t*)&forUnmarshaling->driverCount, sizeof(uint32_t));
38242     vkStream->alloc((void**)&forUnmarshaling->pDrivers,
38243                     forUnmarshaling->driverCount * sizeof(const VkDirectDriverLoadingInfoLUNARG));
38244     if (forUnmarshaling) {
38245         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->driverCount; ++i) {
38246             unmarshal_VkDirectDriverLoadingInfoLUNARG(
38247                 vkStream, rootType,
38248                 (VkDirectDriverLoadingInfoLUNARG*)(forUnmarshaling->pDrivers + i));
38249         }
38250     }
38251 }
38252 
38253 #endif
38254 #ifdef VK_EXT_shader_module_identifier
marshal_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT * forMarshaling)38255 void marshal_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(
38256     VulkanStream* vkStream, VkStructureType rootType,
38257     const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* forMarshaling) {
38258     (void)rootType;
38259     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38260     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38261         rootType = forMarshaling->sType;
38262     }
38263     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38264     vkStream->write((VkBool32*)&forMarshaling->shaderModuleIdentifier, sizeof(VkBool32));
38265 }
38266 
unmarshal_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT * forUnmarshaling)38267 void unmarshal_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(
38268     VulkanStream* vkStream, VkStructureType rootType,
38269     VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* forUnmarshaling) {
38270     (void)rootType;
38271     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38272     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38273         rootType = forUnmarshaling->sType;
38274     }
38275     size_t pNext_size;
38276     pNext_size = vkStream->getBe32();
38277     forUnmarshaling->pNext = nullptr;
38278     if (pNext_size) {
38279         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38280         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38281         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38282         vkStream->alloc((void**)&forUnmarshaling->pNext,
38283                         goldfish_vk_extension_struct_size_with_stream_features(
38284                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38285         *(VkStructureType*)forUnmarshaling->pNext = extType;
38286         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38287     }
38288     vkStream->read((VkBool32*)&forUnmarshaling->shaderModuleIdentifier, sizeof(VkBool32));
38289 }
38290 
marshal_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT * forMarshaling)38291 void marshal_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(
38292     VulkanStream* vkStream, VkStructureType rootType,
38293     const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* forMarshaling) {
38294     (void)rootType;
38295     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38296     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38297         rootType = forMarshaling->sType;
38298     }
38299     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38300     vkStream->write((uint8_t*)forMarshaling->shaderModuleIdentifierAlgorithmUUID,
38301                     VK_UUID_SIZE * sizeof(uint8_t));
38302 }
38303 
unmarshal_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT * forUnmarshaling)38304 void unmarshal_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(
38305     VulkanStream* vkStream, VkStructureType rootType,
38306     VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* forUnmarshaling) {
38307     (void)rootType;
38308     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38309     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38310         rootType = forUnmarshaling->sType;
38311     }
38312     size_t pNext_size;
38313     pNext_size = vkStream->getBe32();
38314     forUnmarshaling->pNext = nullptr;
38315     if (pNext_size) {
38316         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38317         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38318         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38319         vkStream->alloc((void**)&forUnmarshaling->pNext,
38320                         goldfish_vk_extension_struct_size_with_stream_features(
38321                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38322         *(VkStructureType*)forUnmarshaling->pNext = extType;
38323         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38324     }
38325     vkStream->read((uint8_t*)forUnmarshaling->shaderModuleIdentifierAlgorithmUUID,
38326                    VK_UUID_SIZE * sizeof(uint8_t));
38327 }
38328 
marshal_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPipelineShaderStageModuleIdentifierCreateInfoEXT * forMarshaling)38329 void marshal_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(
38330     VulkanStream* vkStream, VkStructureType rootType,
38331     const VkPipelineShaderStageModuleIdentifierCreateInfoEXT* forMarshaling) {
38332     (void)rootType;
38333     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38334     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38335         rootType = forMarshaling->sType;
38336     }
38337     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38338     vkStream->write((uint32_t*)&forMarshaling->identifierSize, sizeof(uint32_t));
38339     vkStream->write((const uint8_t*)forMarshaling->pIdentifier,
38340                     forMarshaling->identifierSize * sizeof(const uint8_t));
38341 }
38342 
unmarshal_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineShaderStageModuleIdentifierCreateInfoEXT * forUnmarshaling)38343 void unmarshal_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(
38344     VulkanStream* vkStream, VkStructureType rootType,
38345     VkPipelineShaderStageModuleIdentifierCreateInfoEXT* forUnmarshaling) {
38346     (void)rootType;
38347     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38348     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38349         rootType = forUnmarshaling->sType;
38350     }
38351     size_t pNext_size;
38352     pNext_size = vkStream->getBe32();
38353     forUnmarshaling->pNext = nullptr;
38354     if (pNext_size) {
38355         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38356         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38357         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38358         vkStream->alloc((void**)&forUnmarshaling->pNext,
38359                         goldfish_vk_extension_struct_size_with_stream_features(
38360                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38361         *(VkStructureType*)forUnmarshaling->pNext = extType;
38362         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38363     }
38364     vkStream->read((uint32_t*)&forUnmarshaling->identifierSize, sizeof(uint32_t));
38365     vkStream->alloc((void**)&forUnmarshaling->pIdentifier,
38366                     forUnmarshaling->identifierSize * sizeof(const uint8_t));
38367     vkStream->read((uint8_t*)forUnmarshaling->pIdentifier,
38368                    forUnmarshaling->identifierSize * sizeof(const uint8_t));
38369 }
38370 
marshal_VkShaderModuleIdentifierEXT(VulkanStream * vkStream,VkStructureType rootType,const VkShaderModuleIdentifierEXT * forMarshaling)38371 void marshal_VkShaderModuleIdentifierEXT(VulkanStream* vkStream, VkStructureType rootType,
38372                                          const VkShaderModuleIdentifierEXT* forMarshaling) {
38373     (void)rootType;
38374     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38375     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38376         rootType = forMarshaling->sType;
38377     }
38378     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38379     vkStream->write((uint32_t*)&forMarshaling->identifierSize, sizeof(uint32_t));
38380     vkStream->write((uint8_t*)forMarshaling->identifier,
38381                     VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT * sizeof(uint8_t));
38382 }
38383 
unmarshal_VkShaderModuleIdentifierEXT(VulkanStream * vkStream,VkStructureType rootType,VkShaderModuleIdentifierEXT * forUnmarshaling)38384 void unmarshal_VkShaderModuleIdentifierEXT(VulkanStream* vkStream, VkStructureType rootType,
38385                                            VkShaderModuleIdentifierEXT* forUnmarshaling) {
38386     (void)rootType;
38387     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38388     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38389         rootType = forUnmarshaling->sType;
38390     }
38391     size_t pNext_size;
38392     pNext_size = vkStream->getBe32();
38393     forUnmarshaling->pNext = nullptr;
38394     if (pNext_size) {
38395         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38396         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38397         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38398         vkStream->alloc((void**)&forUnmarshaling->pNext,
38399                         goldfish_vk_extension_struct_size_with_stream_features(
38400                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38401         *(VkStructureType*)forUnmarshaling->pNext = extType;
38402         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38403     }
38404     vkStream->read((uint32_t*)&forUnmarshaling->identifierSize, sizeof(uint32_t));
38405     vkStream->read((uint8_t*)forUnmarshaling->identifier,
38406                    VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT * sizeof(uint8_t));
38407 }
38408 
38409 #endif
38410 #ifdef VK_EXT_rasterization_order_attachment_access
38411 #endif
38412 #ifdef VK_NV_optical_flow
marshal_VkPhysicalDeviceOpticalFlowFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceOpticalFlowFeaturesNV * forMarshaling)38413 void marshal_VkPhysicalDeviceOpticalFlowFeaturesNV(
38414     VulkanStream* vkStream, VkStructureType rootType,
38415     const VkPhysicalDeviceOpticalFlowFeaturesNV* forMarshaling) {
38416     (void)rootType;
38417     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38418     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38419         rootType = forMarshaling->sType;
38420     }
38421     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38422     vkStream->write((VkBool32*)&forMarshaling->opticalFlow, sizeof(VkBool32));
38423 }
38424 
unmarshal_VkPhysicalDeviceOpticalFlowFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceOpticalFlowFeaturesNV * forUnmarshaling)38425 void unmarshal_VkPhysicalDeviceOpticalFlowFeaturesNV(
38426     VulkanStream* vkStream, VkStructureType rootType,
38427     VkPhysicalDeviceOpticalFlowFeaturesNV* forUnmarshaling) {
38428     (void)rootType;
38429     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38430     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38431         rootType = forUnmarshaling->sType;
38432     }
38433     size_t pNext_size;
38434     pNext_size = vkStream->getBe32();
38435     forUnmarshaling->pNext = nullptr;
38436     if (pNext_size) {
38437         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38438         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38439         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38440         vkStream->alloc((void**)&forUnmarshaling->pNext,
38441                         goldfish_vk_extension_struct_size_with_stream_features(
38442                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38443         *(VkStructureType*)forUnmarshaling->pNext = extType;
38444         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38445     }
38446     vkStream->read((VkBool32*)&forUnmarshaling->opticalFlow, sizeof(VkBool32));
38447 }
38448 
marshal_VkPhysicalDeviceOpticalFlowPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceOpticalFlowPropertiesNV * forMarshaling)38449 void marshal_VkPhysicalDeviceOpticalFlowPropertiesNV(
38450     VulkanStream* vkStream, VkStructureType rootType,
38451     const VkPhysicalDeviceOpticalFlowPropertiesNV* forMarshaling) {
38452     (void)rootType;
38453     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38454     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38455         rootType = forMarshaling->sType;
38456     }
38457     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38458     vkStream->write((VkOpticalFlowGridSizeFlagsNV*)&forMarshaling->supportedOutputGridSizes,
38459                     sizeof(VkOpticalFlowGridSizeFlagsNV));
38460     vkStream->write((VkOpticalFlowGridSizeFlagsNV*)&forMarshaling->supportedHintGridSizes,
38461                     sizeof(VkOpticalFlowGridSizeFlagsNV));
38462     vkStream->write((VkBool32*)&forMarshaling->hintSupported, sizeof(VkBool32));
38463     vkStream->write((VkBool32*)&forMarshaling->costSupported, sizeof(VkBool32));
38464     vkStream->write((VkBool32*)&forMarshaling->bidirectionalFlowSupported, sizeof(VkBool32));
38465     vkStream->write((VkBool32*)&forMarshaling->globalFlowSupported, sizeof(VkBool32));
38466     vkStream->write((uint32_t*)&forMarshaling->minWidth, sizeof(uint32_t));
38467     vkStream->write((uint32_t*)&forMarshaling->minHeight, sizeof(uint32_t));
38468     vkStream->write((uint32_t*)&forMarshaling->maxWidth, sizeof(uint32_t));
38469     vkStream->write((uint32_t*)&forMarshaling->maxHeight, sizeof(uint32_t));
38470     vkStream->write((uint32_t*)&forMarshaling->maxNumRegionsOfInterest, sizeof(uint32_t));
38471 }
38472 
unmarshal_VkPhysicalDeviceOpticalFlowPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceOpticalFlowPropertiesNV * forUnmarshaling)38473 void unmarshal_VkPhysicalDeviceOpticalFlowPropertiesNV(
38474     VulkanStream* vkStream, VkStructureType rootType,
38475     VkPhysicalDeviceOpticalFlowPropertiesNV* forUnmarshaling) {
38476     (void)rootType;
38477     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38478     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38479         rootType = forUnmarshaling->sType;
38480     }
38481     size_t pNext_size;
38482     pNext_size = vkStream->getBe32();
38483     forUnmarshaling->pNext = nullptr;
38484     if (pNext_size) {
38485         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38486         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38487         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38488         vkStream->alloc((void**)&forUnmarshaling->pNext,
38489                         goldfish_vk_extension_struct_size_with_stream_features(
38490                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38491         *(VkStructureType*)forUnmarshaling->pNext = extType;
38492         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38493     }
38494     vkStream->read((VkOpticalFlowGridSizeFlagsNV*)&forUnmarshaling->supportedOutputGridSizes,
38495                    sizeof(VkOpticalFlowGridSizeFlagsNV));
38496     vkStream->read((VkOpticalFlowGridSizeFlagsNV*)&forUnmarshaling->supportedHintGridSizes,
38497                    sizeof(VkOpticalFlowGridSizeFlagsNV));
38498     vkStream->read((VkBool32*)&forUnmarshaling->hintSupported, sizeof(VkBool32));
38499     vkStream->read((VkBool32*)&forUnmarshaling->costSupported, sizeof(VkBool32));
38500     vkStream->read((VkBool32*)&forUnmarshaling->bidirectionalFlowSupported, sizeof(VkBool32));
38501     vkStream->read((VkBool32*)&forUnmarshaling->globalFlowSupported, sizeof(VkBool32));
38502     vkStream->read((uint32_t*)&forUnmarshaling->minWidth, sizeof(uint32_t));
38503     vkStream->read((uint32_t*)&forUnmarshaling->minHeight, sizeof(uint32_t));
38504     vkStream->read((uint32_t*)&forUnmarshaling->maxWidth, sizeof(uint32_t));
38505     vkStream->read((uint32_t*)&forUnmarshaling->maxHeight, sizeof(uint32_t));
38506     vkStream->read((uint32_t*)&forUnmarshaling->maxNumRegionsOfInterest, sizeof(uint32_t));
38507 }
38508 
marshal_VkOpticalFlowImageFormatInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkOpticalFlowImageFormatInfoNV * forMarshaling)38509 void marshal_VkOpticalFlowImageFormatInfoNV(VulkanStream* vkStream, VkStructureType rootType,
38510                                             const VkOpticalFlowImageFormatInfoNV* forMarshaling) {
38511     (void)rootType;
38512     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38513     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38514         rootType = forMarshaling->sType;
38515     }
38516     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38517     vkStream->write((VkOpticalFlowUsageFlagsNV*)&forMarshaling->usage,
38518                     sizeof(VkOpticalFlowUsageFlagsNV));
38519 }
38520 
unmarshal_VkOpticalFlowImageFormatInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkOpticalFlowImageFormatInfoNV * forUnmarshaling)38521 void unmarshal_VkOpticalFlowImageFormatInfoNV(VulkanStream* vkStream, VkStructureType rootType,
38522                                               VkOpticalFlowImageFormatInfoNV* forUnmarshaling) {
38523     (void)rootType;
38524     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38525     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38526         rootType = forUnmarshaling->sType;
38527     }
38528     size_t pNext_size;
38529     pNext_size = vkStream->getBe32();
38530     forUnmarshaling->pNext = nullptr;
38531     if (pNext_size) {
38532         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38533         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38534         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38535         vkStream->alloc((void**)&forUnmarshaling->pNext,
38536                         goldfish_vk_extension_struct_size_with_stream_features(
38537                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38538         *(VkStructureType*)forUnmarshaling->pNext = extType;
38539         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38540     }
38541     vkStream->read((VkOpticalFlowUsageFlagsNV*)&forUnmarshaling->usage,
38542                    sizeof(VkOpticalFlowUsageFlagsNV));
38543 }
38544 
marshal_VkOpticalFlowImageFormatPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkOpticalFlowImageFormatPropertiesNV * forMarshaling)38545 void marshal_VkOpticalFlowImageFormatPropertiesNV(
38546     VulkanStream* vkStream, VkStructureType rootType,
38547     const VkOpticalFlowImageFormatPropertiesNV* forMarshaling) {
38548     (void)rootType;
38549     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38550     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38551         rootType = forMarshaling->sType;
38552     }
38553     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38554     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
38555 }
38556 
unmarshal_VkOpticalFlowImageFormatPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkOpticalFlowImageFormatPropertiesNV * forUnmarshaling)38557 void unmarshal_VkOpticalFlowImageFormatPropertiesNV(
38558     VulkanStream* vkStream, VkStructureType rootType,
38559     VkOpticalFlowImageFormatPropertiesNV* forUnmarshaling) {
38560     (void)rootType;
38561     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38562     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38563         rootType = forUnmarshaling->sType;
38564     }
38565     size_t pNext_size;
38566     pNext_size = vkStream->getBe32();
38567     forUnmarshaling->pNext = nullptr;
38568     if (pNext_size) {
38569         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38570         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38571         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38572         vkStream->alloc((void**)&forUnmarshaling->pNext,
38573                         goldfish_vk_extension_struct_size_with_stream_features(
38574                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38575         *(VkStructureType*)forUnmarshaling->pNext = extType;
38576         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38577     }
38578     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
38579 }
38580 
marshal_VkOpticalFlowSessionCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkOpticalFlowSessionCreateInfoNV * forMarshaling)38581 void marshal_VkOpticalFlowSessionCreateInfoNV(
38582     VulkanStream* vkStream, VkStructureType rootType,
38583     const VkOpticalFlowSessionCreateInfoNV* forMarshaling) {
38584     (void)rootType;
38585     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38586     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38587         rootType = forMarshaling->sType;
38588     }
38589     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38590     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
38591     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
38592     vkStream->write((VkFormat*)&forMarshaling->imageFormat, sizeof(VkFormat));
38593     vkStream->write((VkFormat*)&forMarshaling->flowVectorFormat, sizeof(VkFormat));
38594     vkStream->write((VkFormat*)&forMarshaling->costFormat, sizeof(VkFormat));
38595     vkStream->write((VkOpticalFlowGridSizeFlagsNV*)&forMarshaling->outputGridSize,
38596                     sizeof(VkOpticalFlowGridSizeFlagsNV));
38597     vkStream->write((VkOpticalFlowGridSizeFlagsNV*)&forMarshaling->hintGridSize,
38598                     sizeof(VkOpticalFlowGridSizeFlagsNV));
38599     vkStream->write((VkOpticalFlowPerformanceLevelNV*)&forMarshaling->performanceLevel,
38600                     sizeof(VkOpticalFlowPerformanceLevelNV));
38601     vkStream->write((VkOpticalFlowSessionCreateFlagsNV*)&forMarshaling->flags,
38602                     sizeof(VkOpticalFlowSessionCreateFlagsNV));
38603 }
38604 
unmarshal_VkOpticalFlowSessionCreateInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkOpticalFlowSessionCreateInfoNV * forUnmarshaling)38605 void unmarshal_VkOpticalFlowSessionCreateInfoNV(VulkanStream* vkStream, VkStructureType rootType,
38606                                                 VkOpticalFlowSessionCreateInfoNV* forUnmarshaling) {
38607     (void)rootType;
38608     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38609     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38610         rootType = forUnmarshaling->sType;
38611     }
38612     size_t pNext_size;
38613     pNext_size = vkStream->getBe32();
38614     forUnmarshaling->pNext = nullptr;
38615     if (pNext_size) {
38616         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38617         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38618         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38619         vkStream->alloc((void**)&forUnmarshaling->pNext,
38620                         goldfish_vk_extension_struct_size_with_stream_features(
38621                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38622         *(VkStructureType*)forUnmarshaling->pNext = extType;
38623         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38624     }
38625     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
38626     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
38627     vkStream->read((VkFormat*)&forUnmarshaling->imageFormat, sizeof(VkFormat));
38628     vkStream->read((VkFormat*)&forUnmarshaling->flowVectorFormat, sizeof(VkFormat));
38629     vkStream->read((VkFormat*)&forUnmarshaling->costFormat, sizeof(VkFormat));
38630     vkStream->read((VkOpticalFlowGridSizeFlagsNV*)&forUnmarshaling->outputGridSize,
38631                    sizeof(VkOpticalFlowGridSizeFlagsNV));
38632     vkStream->read((VkOpticalFlowGridSizeFlagsNV*)&forUnmarshaling->hintGridSize,
38633                    sizeof(VkOpticalFlowGridSizeFlagsNV));
38634     vkStream->read((VkOpticalFlowPerformanceLevelNV*)&forUnmarshaling->performanceLevel,
38635                    sizeof(VkOpticalFlowPerformanceLevelNV));
38636     vkStream->read((VkOpticalFlowSessionCreateFlagsNV*)&forUnmarshaling->flags,
38637                    sizeof(VkOpticalFlowSessionCreateFlagsNV));
38638 }
38639 
marshal_VkOpticalFlowSessionCreatePrivateDataInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkOpticalFlowSessionCreatePrivateDataInfoNV * forMarshaling)38640 void marshal_VkOpticalFlowSessionCreatePrivateDataInfoNV(
38641     VulkanStream* vkStream, VkStructureType rootType,
38642     const VkOpticalFlowSessionCreatePrivateDataInfoNV* forMarshaling) {
38643     (void)rootType;
38644     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38645     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38646         rootType = forMarshaling->sType;
38647     }
38648     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38649     vkStream->write((uint32_t*)&forMarshaling->id, sizeof(uint32_t));
38650     vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
38651     vkStream->write((const void*)forMarshaling->pPrivateData, sizeof(const uint8_t));
38652 }
38653 
unmarshal_VkOpticalFlowSessionCreatePrivateDataInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkOpticalFlowSessionCreatePrivateDataInfoNV * forUnmarshaling)38654 void unmarshal_VkOpticalFlowSessionCreatePrivateDataInfoNV(
38655     VulkanStream* vkStream, VkStructureType rootType,
38656     VkOpticalFlowSessionCreatePrivateDataInfoNV* forUnmarshaling) {
38657     (void)rootType;
38658     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38659     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38660         rootType = forUnmarshaling->sType;
38661     }
38662     size_t pNext_size;
38663     pNext_size = vkStream->getBe32();
38664     forUnmarshaling->pNext = nullptr;
38665     if (pNext_size) {
38666         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38667         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38668         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38669         vkStream->alloc((void**)&forUnmarshaling->pNext,
38670                         goldfish_vk_extension_struct_size_with_stream_features(
38671                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38672         *(VkStructureType*)forUnmarshaling->pNext = extType;
38673         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38674     }
38675     vkStream->read((uint32_t*)&forUnmarshaling->id, sizeof(uint32_t));
38676     vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
38677     vkStream->alloc((void**)&forUnmarshaling->pPrivateData, sizeof(const uint8_t));
38678     vkStream->read((void*)forUnmarshaling->pPrivateData, sizeof(const uint8_t));
38679 }
38680 
marshal_VkOpticalFlowExecuteInfoNV(VulkanStream * vkStream,VkStructureType rootType,const VkOpticalFlowExecuteInfoNV * forMarshaling)38681 void marshal_VkOpticalFlowExecuteInfoNV(VulkanStream* vkStream, VkStructureType rootType,
38682                                         const VkOpticalFlowExecuteInfoNV* forMarshaling) {
38683     (void)rootType;
38684     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38685     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38686         rootType = forMarshaling->sType;
38687     }
38688     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38689     vkStream->write((VkOpticalFlowExecuteFlagsNV*)&forMarshaling->flags,
38690                     sizeof(VkOpticalFlowExecuteFlagsNV));
38691     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
38692     if (forMarshaling) {
38693         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
38694             marshal_VkRect2D(vkStream, rootType, (const VkRect2D*)(forMarshaling->pRegions + i));
38695         }
38696     }
38697 }
38698 
unmarshal_VkOpticalFlowExecuteInfoNV(VulkanStream * vkStream,VkStructureType rootType,VkOpticalFlowExecuteInfoNV * forUnmarshaling)38699 void unmarshal_VkOpticalFlowExecuteInfoNV(VulkanStream* vkStream, VkStructureType rootType,
38700                                           VkOpticalFlowExecuteInfoNV* forUnmarshaling) {
38701     (void)rootType;
38702     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38703     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38704         rootType = forUnmarshaling->sType;
38705     }
38706     size_t pNext_size;
38707     pNext_size = vkStream->getBe32();
38708     forUnmarshaling->pNext = nullptr;
38709     if (pNext_size) {
38710         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38711         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38712         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38713         vkStream->alloc((void**)&forUnmarshaling->pNext,
38714                         goldfish_vk_extension_struct_size_with_stream_features(
38715                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38716         *(VkStructureType*)forUnmarshaling->pNext = extType;
38717         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38718     }
38719     vkStream->read((VkOpticalFlowExecuteFlagsNV*)&forUnmarshaling->flags,
38720                    sizeof(VkOpticalFlowExecuteFlagsNV));
38721     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
38722     vkStream->alloc((void**)&forUnmarshaling->pRegions,
38723                     forUnmarshaling->regionCount * sizeof(const VkRect2D));
38724     if (forUnmarshaling) {
38725         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
38726             unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(forUnmarshaling->pRegions + i));
38727         }
38728     }
38729 }
38730 
38731 #endif
38732 #ifdef VK_EXT_legacy_dithering
marshal_VkPhysicalDeviceLegacyDitheringFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceLegacyDitheringFeaturesEXT * forMarshaling)38733 void marshal_VkPhysicalDeviceLegacyDitheringFeaturesEXT(
38734     VulkanStream* vkStream, VkStructureType rootType,
38735     const VkPhysicalDeviceLegacyDitheringFeaturesEXT* forMarshaling) {
38736     (void)rootType;
38737     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38739         rootType = forMarshaling->sType;
38740     }
38741     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38742     vkStream->write((VkBool32*)&forMarshaling->legacyDithering, sizeof(VkBool32));
38743 }
38744 
unmarshal_VkPhysicalDeviceLegacyDitheringFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLegacyDitheringFeaturesEXT * forUnmarshaling)38745 void unmarshal_VkPhysicalDeviceLegacyDitheringFeaturesEXT(
38746     VulkanStream* vkStream, VkStructureType rootType,
38747     VkPhysicalDeviceLegacyDitheringFeaturesEXT* forUnmarshaling) {
38748     (void)rootType;
38749     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38750     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38751         rootType = forUnmarshaling->sType;
38752     }
38753     size_t pNext_size;
38754     pNext_size = vkStream->getBe32();
38755     forUnmarshaling->pNext = nullptr;
38756     if (pNext_size) {
38757         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38758         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38759         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38760         vkStream->alloc((void**)&forUnmarshaling->pNext,
38761                         goldfish_vk_extension_struct_size_with_stream_features(
38762                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38763         *(VkStructureType*)forUnmarshaling->pNext = extType;
38764         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38765     }
38766     vkStream->read((VkBool32*)&forUnmarshaling->legacyDithering, sizeof(VkBool32));
38767 }
38768 
38769 #endif
38770 #ifdef VK_EXT_pipeline_protected_access
marshal_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT * forMarshaling)38771 void marshal_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(
38772     VulkanStream* vkStream, VkStructureType rootType,
38773     const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* forMarshaling) {
38774     (void)rootType;
38775     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38776     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38777         rootType = forMarshaling->sType;
38778     }
38779     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38780     vkStream->write((VkBool32*)&forMarshaling->pipelineProtectedAccess, sizeof(VkBool32));
38781 }
38782 
unmarshal_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineProtectedAccessFeaturesEXT * forUnmarshaling)38783 void unmarshal_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(
38784     VulkanStream* vkStream, VkStructureType rootType,
38785     VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* forUnmarshaling) {
38786     (void)rootType;
38787     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38788     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38789         rootType = forUnmarshaling->sType;
38790     }
38791     size_t pNext_size;
38792     pNext_size = vkStream->getBe32();
38793     forUnmarshaling->pNext = nullptr;
38794     if (pNext_size) {
38795         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38796         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38797         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38798         vkStream->alloc((void**)&forUnmarshaling->pNext,
38799                         goldfish_vk_extension_struct_size_with_stream_features(
38800                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38801         *(VkStructureType*)forUnmarshaling->pNext = extType;
38802         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38803     }
38804     vkStream->read((VkBool32*)&forUnmarshaling->pipelineProtectedAccess, sizeof(VkBool32));
38805 }
38806 
38807 #endif
38808 #ifdef VK_EXT_shader_object
marshal_VkPhysicalDeviceShaderObjectFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderObjectFeaturesEXT * forMarshaling)38809 void marshal_VkPhysicalDeviceShaderObjectFeaturesEXT(
38810     VulkanStream* vkStream, VkStructureType rootType,
38811     const VkPhysicalDeviceShaderObjectFeaturesEXT* forMarshaling) {
38812     (void)rootType;
38813     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38814     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38815         rootType = forMarshaling->sType;
38816     }
38817     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38818     vkStream->write((VkBool32*)&forMarshaling->shaderObject, sizeof(VkBool32));
38819 }
38820 
unmarshal_VkPhysicalDeviceShaderObjectFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderObjectFeaturesEXT * forUnmarshaling)38821 void unmarshal_VkPhysicalDeviceShaderObjectFeaturesEXT(
38822     VulkanStream* vkStream, VkStructureType rootType,
38823     VkPhysicalDeviceShaderObjectFeaturesEXT* forUnmarshaling) {
38824     (void)rootType;
38825     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38826     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38827         rootType = forUnmarshaling->sType;
38828     }
38829     size_t pNext_size;
38830     pNext_size = vkStream->getBe32();
38831     forUnmarshaling->pNext = nullptr;
38832     if (pNext_size) {
38833         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38834         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38835         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38836         vkStream->alloc((void**)&forUnmarshaling->pNext,
38837                         goldfish_vk_extension_struct_size_with_stream_features(
38838                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38839         *(VkStructureType*)forUnmarshaling->pNext = extType;
38840         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38841     }
38842     vkStream->read((VkBool32*)&forUnmarshaling->shaderObject, sizeof(VkBool32));
38843 }
38844 
marshal_VkPhysicalDeviceShaderObjectPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderObjectPropertiesEXT * forMarshaling)38845 void marshal_VkPhysicalDeviceShaderObjectPropertiesEXT(
38846     VulkanStream* vkStream, VkStructureType rootType,
38847     const VkPhysicalDeviceShaderObjectPropertiesEXT* forMarshaling) {
38848     (void)rootType;
38849     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38850     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38851         rootType = forMarshaling->sType;
38852     }
38853     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38854     vkStream->write((uint8_t*)forMarshaling->shaderBinaryUUID, VK_UUID_SIZE * sizeof(uint8_t));
38855     vkStream->write((uint32_t*)&forMarshaling->shaderBinaryVersion, sizeof(uint32_t));
38856 }
38857 
unmarshal_VkPhysicalDeviceShaderObjectPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderObjectPropertiesEXT * forUnmarshaling)38858 void unmarshal_VkPhysicalDeviceShaderObjectPropertiesEXT(
38859     VulkanStream* vkStream, VkStructureType rootType,
38860     VkPhysicalDeviceShaderObjectPropertiesEXT* forUnmarshaling) {
38861     (void)rootType;
38862     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38863     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38864         rootType = forUnmarshaling->sType;
38865     }
38866     size_t pNext_size;
38867     pNext_size = vkStream->getBe32();
38868     forUnmarshaling->pNext = nullptr;
38869     if (pNext_size) {
38870         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38871         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38872         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38873         vkStream->alloc((void**)&forUnmarshaling->pNext,
38874                         goldfish_vk_extension_struct_size_with_stream_features(
38875                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38876         *(VkStructureType*)forUnmarshaling->pNext = extType;
38877         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38878     }
38879     vkStream->read((uint8_t*)forUnmarshaling->shaderBinaryUUID, VK_UUID_SIZE * sizeof(uint8_t));
38880     vkStream->read((uint32_t*)&forUnmarshaling->shaderBinaryVersion, sizeof(uint32_t));
38881 }
38882 
marshal_VkShaderCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,const VkShaderCreateInfoEXT * forMarshaling)38883 void marshal_VkShaderCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
38884                                    const VkShaderCreateInfoEXT* forMarshaling) {
38885     (void)rootType;
38886     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
38887     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38888         rootType = forMarshaling->sType;
38889     }
38890     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
38891     vkStream->write((VkShaderCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkShaderCreateFlagsEXT));
38892     vkStream->write((VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
38893     vkStream->write((VkShaderStageFlags*)&forMarshaling->nextStage, sizeof(VkShaderStageFlags));
38894     vkStream->write((VkShaderCodeTypeEXT*)&forMarshaling->codeType, sizeof(VkShaderCodeTypeEXT));
38895     uint64_t cgen_var_0 = (uint64_t)forMarshaling->codeSize;
38896     vkStream->putBe64(cgen_var_0);
38897     vkStream->write((const void*)forMarshaling->pCode,
38898                     forMarshaling->codeSize * sizeof(const uint8_t));
38899     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
38900         // WARNING PTR CHECK
38901         uint64_t cgen_var_0_0 = (uint64_t)(uintptr_t)forMarshaling->pName;
38902         vkStream->putBe64(cgen_var_0_0);
38903         if (forMarshaling->pName) {
38904             vkStream->putString(forMarshaling->pName);
38905         }
38906     } else {
38907         vkStream->putString(forMarshaling->pName);
38908     }
38909     vkStream->write((uint32_t*)&forMarshaling->setLayoutCount, sizeof(uint32_t));
38910     // WARNING PTR CHECK
38911     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSetLayouts;
38912     vkStream->putBe64(cgen_var_1);
38913     if (forMarshaling->pSetLayouts) {
38914         if (forMarshaling->setLayoutCount) {
38915             uint64_t* cgen_var_1_0;
38916             vkStream->alloc((void**)&cgen_var_1_0, forMarshaling->setLayoutCount * 8);
38917             vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
38918                 forMarshaling->pSetLayouts, cgen_var_1_0, forMarshaling->setLayoutCount);
38919             vkStream->write((uint64_t*)cgen_var_1_0, forMarshaling->setLayoutCount * 8);
38920         }
38921     }
38922     vkStream->write((uint32_t*)&forMarshaling->pushConstantRangeCount, sizeof(uint32_t));
38923     // WARNING PTR CHECK
38924     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pPushConstantRanges;
38925     vkStream->putBe64(cgen_var_2);
38926     if (forMarshaling->pPushConstantRanges) {
38927         if (forMarshaling) {
38928             for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i) {
38929                 marshal_VkPushConstantRange(
38930                     vkStream, rootType,
38931                     (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i));
38932             }
38933         }
38934     }
38935     // WARNING PTR CHECK
38936     uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
38937     vkStream->putBe64(cgen_var_3);
38938     if (forMarshaling->pSpecializationInfo) {
38939         marshal_VkSpecializationInfo(
38940             vkStream, rootType, (const VkSpecializationInfo*)(forMarshaling->pSpecializationInfo));
38941     }
38942 }
38943 
unmarshal_VkShaderCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkShaderCreateInfoEXT * forUnmarshaling)38944 void unmarshal_VkShaderCreateInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
38945                                      VkShaderCreateInfoEXT* forUnmarshaling) {
38946     (void)rootType;
38947     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
38948     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
38949         rootType = forUnmarshaling->sType;
38950     }
38951     size_t pNext_size;
38952     pNext_size = vkStream->getBe32();
38953     forUnmarshaling->pNext = nullptr;
38954     if (pNext_size) {
38955         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
38956         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
38957         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
38958         vkStream->alloc((void**)&forUnmarshaling->pNext,
38959                         goldfish_vk_extension_struct_size_with_stream_features(
38960                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
38961         *(VkStructureType*)forUnmarshaling->pNext = extType;
38962         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
38963     }
38964     vkStream->read((VkShaderCreateFlagsEXT*)&forUnmarshaling->flags,
38965                    sizeof(VkShaderCreateFlagsEXT));
38966     vkStream->read((VkShaderStageFlagBits*)&forUnmarshaling->stage, sizeof(VkShaderStageFlagBits));
38967     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->nextStage, sizeof(VkShaderStageFlags));
38968     vkStream->read((VkShaderCodeTypeEXT*)&forUnmarshaling->codeType, sizeof(VkShaderCodeTypeEXT));
38969     forUnmarshaling->codeSize = (size_t)vkStream->getBe64();
38970     vkStream->alloc((void**)&forUnmarshaling->pCode,
38971                     forUnmarshaling->codeSize * sizeof(const uint8_t));
38972     vkStream->read((void*)forUnmarshaling->pCode,
38973                    forUnmarshaling->codeSize * sizeof(const uint8_t));
38974     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
38975         // WARNING PTR CHECK
38976         forUnmarshaling->pName = (const char*)(uintptr_t)vkStream->getBe64();
38977         if (forUnmarshaling->pName) {
38978             vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
38979         }
38980     } else {
38981         vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
38982     }
38983     vkStream->read((uint32_t*)&forUnmarshaling->setLayoutCount, sizeof(uint32_t));
38984     // WARNING PTR CHECK
38985     forUnmarshaling->pSetLayouts = (const VkDescriptorSetLayout*)(uintptr_t)vkStream->getBe64();
38986     if (forUnmarshaling->pSetLayouts) {
38987         vkStream->alloc((void**)&forUnmarshaling->pSetLayouts,
38988                         forUnmarshaling->setLayoutCount * sizeof(const VkDescriptorSetLayout));
38989         if (forUnmarshaling->setLayoutCount) {
38990             uint64_t* cgen_var_1_0;
38991             vkStream->alloc((void**)&cgen_var_1_0, forUnmarshaling->setLayoutCount * 8);
38992             vkStream->read((uint64_t*)cgen_var_1_0, forUnmarshaling->setLayoutCount * 8);
38993             vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
38994                 cgen_var_1_0, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts,
38995                 forUnmarshaling->setLayoutCount);
38996         }
38997     }
38998     vkStream->read((uint32_t*)&forUnmarshaling->pushConstantRangeCount, sizeof(uint32_t));
38999     // WARNING PTR CHECK
39000     forUnmarshaling->pPushConstantRanges =
39001         (const VkPushConstantRange*)(uintptr_t)vkStream->getBe64();
39002     if (forUnmarshaling->pPushConstantRanges) {
39003         vkStream->alloc(
39004             (void**)&forUnmarshaling->pPushConstantRanges,
39005             forUnmarshaling->pushConstantRangeCount * sizeof(const VkPushConstantRange));
39006         if (forUnmarshaling) {
39007             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i) {
39008                 unmarshal_VkPushConstantRange(
39009                     vkStream, rootType,
39010                     (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i));
39011             }
39012         }
39013     }
39014     // WARNING PTR CHECK
39015     forUnmarshaling->pSpecializationInfo =
39016         (const VkSpecializationInfo*)(uintptr_t)vkStream->getBe64();
39017     if (forUnmarshaling->pSpecializationInfo) {
39018         vkStream->alloc((void**)&forUnmarshaling->pSpecializationInfo,
39019                         sizeof(const VkSpecializationInfo));
39020         unmarshal_VkSpecializationInfo(
39021             vkStream, rootType, (VkSpecializationInfo*)(forUnmarshaling->pSpecializationInfo));
39022     }
39023 }
39024 
39025 #endif
39026 #ifdef VK_QCOM_tile_properties
marshal_VkPhysicalDeviceTilePropertiesFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceTilePropertiesFeaturesQCOM * forMarshaling)39027 void marshal_VkPhysicalDeviceTilePropertiesFeaturesQCOM(
39028     VulkanStream* vkStream, VkStructureType rootType,
39029     const VkPhysicalDeviceTilePropertiesFeaturesQCOM* forMarshaling) {
39030     (void)rootType;
39031     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39032     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39033         rootType = forMarshaling->sType;
39034     }
39035     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39036     vkStream->write((VkBool32*)&forMarshaling->tileProperties, sizeof(VkBool32));
39037 }
39038 
unmarshal_VkPhysicalDeviceTilePropertiesFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTilePropertiesFeaturesQCOM * forUnmarshaling)39039 void unmarshal_VkPhysicalDeviceTilePropertiesFeaturesQCOM(
39040     VulkanStream* vkStream, VkStructureType rootType,
39041     VkPhysicalDeviceTilePropertiesFeaturesQCOM* forUnmarshaling) {
39042     (void)rootType;
39043     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39044     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39045         rootType = forUnmarshaling->sType;
39046     }
39047     size_t pNext_size;
39048     pNext_size = vkStream->getBe32();
39049     forUnmarshaling->pNext = nullptr;
39050     if (pNext_size) {
39051         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39052         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39053         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39054         vkStream->alloc((void**)&forUnmarshaling->pNext,
39055                         goldfish_vk_extension_struct_size_with_stream_features(
39056                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39057         *(VkStructureType*)forUnmarshaling->pNext = extType;
39058         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39059     }
39060     vkStream->read((VkBool32*)&forUnmarshaling->tileProperties, sizeof(VkBool32));
39061 }
39062 
marshal_VkTilePropertiesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkTilePropertiesQCOM * forMarshaling)39063 void marshal_VkTilePropertiesQCOM(VulkanStream* vkStream, VkStructureType rootType,
39064                                   const VkTilePropertiesQCOM* forMarshaling) {
39065     (void)rootType;
39066     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39067     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39068         rootType = forMarshaling->sType;
39069     }
39070     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39071     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->tileSize));
39072     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->apronSize));
39073     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->origin));
39074 }
39075 
unmarshal_VkTilePropertiesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkTilePropertiesQCOM * forUnmarshaling)39076 void unmarshal_VkTilePropertiesQCOM(VulkanStream* vkStream, VkStructureType rootType,
39077                                     VkTilePropertiesQCOM* forUnmarshaling) {
39078     (void)rootType;
39079     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39080     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39081         rootType = forUnmarshaling->sType;
39082     }
39083     size_t pNext_size;
39084     pNext_size = vkStream->getBe32();
39085     forUnmarshaling->pNext = nullptr;
39086     if (pNext_size) {
39087         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39088         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39089         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39090         vkStream->alloc((void**)&forUnmarshaling->pNext,
39091                         goldfish_vk_extension_struct_size_with_stream_features(
39092                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39093         *(VkStructureType*)forUnmarshaling->pNext = extType;
39094         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39095     }
39096     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->tileSize));
39097     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->apronSize));
39098     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->origin));
39099 }
39100 
39101 #endif
39102 #ifdef VK_SEC_amigo_profiling
marshal_VkPhysicalDeviceAmigoProfilingFeaturesSEC(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceAmigoProfilingFeaturesSEC * forMarshaling)39103 void marshal_VkPhysicalDeviceAmigoProfilingFeaturesSEC(
39104     VulkanStream* vkStream, VkStructureType rootType,
39105     const VkPhysicalDeviceAmigoProfilingFeaturesSEC* forMarshaling) {
39106     (void)rootType;
39107     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39108     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39109         rootType = forMarshaling->sType;
39110     }
39111     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39112     vkStream->write((VkBool32*)&forMarshaling->amigoProfiling, sizeof(VkBool32));
39113 }
39114 
unmarshal_VkPhysicalDeviceAmigoProfilingFeaturesSEC(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceAmigoProfilingFeaturesSEC * forUnmarshaling)39115 void unmarshal_VkPhysicalDeviceAmigoProfilingFeaturesSEC(
39116     VulkanStream* vkStream, VkStructureType rootType,
39117     VkPhysicalDeviceAmigoProfilingFeaturesSEC* forUnmarshaling) {
39118     (void)rootType;
39119     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39120     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39121         rootType = forUnmarshaling->sType;
39122     }
39123     size_t pNext_size;
39124     pNext_size = vkStream->getBe32();
39125     forUnmarshaling->pNext = nullptr;
39126     if (pNext_size) {
39127         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39128         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39129         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39130         vkStream->alloc((void**)&forUnmarshaling->pNext,
39131                         goldfish_vk_extension_struct_size_with_stream_features(
39132                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39133         *(VkStructureType*)forUnmarshaling->pNext = extType;
39134         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39135     }
39136     vkStream->read((VkBool32*)&forUnmarshaling->amigoProfiling, sizeof(VkBool32));
39137 }
39138 
marshal_VkAmigoProfilingSubmitInfoSEC(VulkanStream * vkStream,VkStructureType rootType,const VkAmigoProfilingSubmitInfoSEC * forMarshaling)39139 void marshal_VkAmigoProfilingSubmitInfoSEC(VulkanStream* vkStream, VkStructureType rootType,
39140                                            const VkAmigoProfilingSubmitInfoSEC* forMarshaling) {
39141     (void)rootType;
39142     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39143     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39144         rootType = forMarshaling->sType;
39145     }
39146     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39147     vkStream->write((uint64_t*)&forMarshaling->firstDrawTimestamp, sizeof(uint64_t));
39148     vkStream->write((uint64_t*)&forMarshaling->swapBufferTimestamp, sizeof(uint64_t));
39149 }
39150 
unmarshal_VkAmigoProfilingSubmitInfoSEC(VulkanStream * vkStream,VkStructureType rootType,VkAmigoProfilingSubmitInfoSEC * forUnmarshaling)39151 void unmarshal_VkAmigoProfilingSubmitInfoSEC(VulkanStream* vkStream, VkStructureType rootType,
39152                                              VkAmigoProfilingSubmitInfoSEC* forUnmarshaling) {
39153     (void)rootType;
39154     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39155     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39156         rootType = forUnmarshaling->sType;
39157     }
39158     size_t pNext_size;
39159     pNext_size = vkStream->getBe32();
39160     forUnmarshaling->pNext = nullptr;
39161     if (pNext_size) {
39162         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39163         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39164         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39165         vkStream->alloc((void**)&forUnmarshaling->pNext,
39166                         goldfish_vk_extension_struct_size_with_stream_features(
39167                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39168         *(VkStructureType*)forUnmarshaling->pNext = extType;
39169         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39170     }
39171     vkStream->read((uint64_t*)&forUnmarshaling->firstDrawTimestamp, sizeof(uint64_t));
39172     vkStream->read((uint64_t*)&forUnmarshaling->swapBufferTimestamp, sizeof(uint64_t));
39173 }
39174 
39175 #endif
39176 #ifdef VK_QCOM_multiview_per_view_viewports
marshal_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM * forMarshaling)39177 void marshal_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(
39178     VulkanStream* vkStream, VkStructureType rootType,
39179     const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* forMarshaling) {
39180     (void)rootType;
39181     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39182     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39183         rootType = forMarshaling->sType;
39184     }
39185     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39186     vkStream->write((VkBool32*)&forMarshaling->multiviewPerViewViewports, sizeof(VkBool32));
39187 }
39188 
unmarshal_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM * forUnmarshaling)39189 void unmarshal_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(
39190     VulkanStream* vkStream, VkStructureType rootType,
39191     VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* forUnmarshaling) {
39192     (void)rootType;
39193     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39194     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39195         rootType = forUnmarshaling->sType;
39196     }
39197     size_t pNext_size;
39198     pNext_size = vkStream->getBe32();
39199     forUnmarshaling->pNext = nullptr;
39200     if (pNext_size) {
39201         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39202         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39203         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39204         vkStream->alloc((void**)&forUnmarshaling->pNext,
39205                         goldfish_vk_extension_struct_size_with_stream_features(
39206                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39207         *(VkStructureType*)forUnmarshaling->pNext = extType;
39208         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39209     }
39210     vkStream->read((VkBool32*)&forUnmarshaling->multiviewPerViewViewports, sizeof(VkBool32));
39211 }
39212 
39213 #endif
39214 #ifdef VK_NV_ray_tracing_invocation_reorder
marshal_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV * forMarshaling)39215 void marshal_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(
39216     VulkanStream* vkStream, VkStructureType rootType,
39217     const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* forMarshaling) {
39218     (void)rootType;
39219     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39220     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39221         rootType = forMarshaling->sType;
39222     }
39223     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39224     vkStream->write((VkRayTracingInvocationReorderModeNV*)&forMarshaling
39225                         ->rayTracingInvocationReorderReorderingHint,
39226                     sizeof(VkRayTracingInvocationReorderModeNV));
39227 }
39228 
unmarshal_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV * forUnmarshaling)39229 void unmarshal_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(
39230     VulkanStream* vkStream, VkStructureType rootType,
39231     VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* forUnmarshaling) {
39232     (void)rootType;
39233     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39234     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39235         rootType = forUnmarshaling->sType;
39236     }
39237     size_t pNext_size;
39238     pNext_size = vkStream->getBe32();
39239     forUnmarshaling->pNext = nullptr;
39240     if (pNext_size) {
39241         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39242         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39243         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39244         vkStream->alloc((void**)&forUnmarshaling->pNext,
39245                         goldfish_vk_extension_struct_size_with_stream_features(
39246                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39247         *(VkStructureType*)forUnmarshaling->pNext = extType;
39248         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39249     }
39250     vkStream->read((VkRayTracingInvocationReorderModeNV*)&forUnmarshaling
39251                        ->rayTracingInvocationReorderReorderingHint,
39252                    sizeof(VkRayTracingInvocationReorderModeNV));
39253 }
39254 
marshal_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV * forMarshaling)39255 void marshal_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(
39256     VulkanStream* vkStream, VkStructureType rootType,
39257     const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* forMarshaling) {
39258     (void)rootType;
39259     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39260     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39261         rootType = forMarshaling->sType;
39262     }
39263     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39264     vkStream->write((VkBool32*)&forMarshaling->rayTracingInvocationReorder, sizeof(VkBool32));
39265 }
39266 
unmarshal_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV * forUnmarshaling)39267 void unmarshal_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(
39268     VulkanStream* vkStream, VkStructureType rootType,
39269     VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* forUnmarshaling) {
39270     (void)rootType;
39271     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39272     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39273         rootType = forUnmarshaling->sType;
39274     }
39275     size_t pNext_size;
39276     pNext_size = vkStream->getBe32();
39277     forUnmarshaling->pNext = nullptr;
39278     if (pNext_size) {
39279         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39280         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39281         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39282         vkStream->alloc((void**)&forUnmarshaling->pNext,
39283                         goldfish_vk_extension_struct_size_with_stream_features(
39284                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39285         *(VkStructureType*)forUnmarshaling->pNext = extType;
39286         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39287     }
39288     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingInvocationReorder, sizeof(VkBool32));
39289 }
39290 
39291 #endif
39292 #ifdef VK_EXT_mutable_descriptor_type
39293 #endif
39294 #ifdef VK_ARM_shader_core_builtins
marshal_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM * forMarshaling)39295 void marshal_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(
39296     VulkanStream* vkStream, VkStructureType rootType,
39297     const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* forMarshaling) {
39298     (void)rootType;
39299     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39300     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39301         rootType = forMarshaling->sType;
39302     }
39303     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39304     vkStream->write((VkBool32*)&forMarshaling->shaderCoreBuiltins, sizeof(VkBool32));
39305 }
39306 
unmarshal_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM * forUnmarshaling)39307 void unmarshal_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(
39308     VulkanStream* vkStream, VkStructureType rootType,
39309     VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* forUnmarshaling) {
39310     (void)rootType;
39311     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39312     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39313         rootType = forUnmarshaling->sType;
39314     }
39315     size_t pNext_size;
39316     pNext_size = vkStream->getBe32();
39317     forUnmarshaling->pNext = nullptr;
39318     if (pNext_size) {
39319         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39320         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39321         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39322         vkStream->alloc((void**)&forUnmarshaling->pNext,
39323                         goldfish_vk_extension_struct_size_with_stream_features(
39324                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39325         *(VkStructureType*)forUnmarshaling->pNext = extType;
39326         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39327     }
39328     vkStream->read((VkBool32*)&forUnmarshaling->shaderCoreBuiltins, sizeof(VkBool32));
39329 }
39330 
marshal_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM * forMarshaling)39331 void marshal_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(
39332     VulkanStream* vkStream, VkStructureType rootType,
39333     const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* forMarshaling) {
39334     (void)rootType;
39335     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39336     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39337         rootType = forMarshaling->sType;
39338     }
39339     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39340     vkStream->write((uint64_t*)&forMarshaling->shaderCoreMask, sizeof(uint64_t));
39341     vkStream->write((uint32_t*)&forMarshaling->shaderCoreCount, sizeof(uint32_t));
39342     vkStream->write((uint32_t*)&forMarshaling->shaderWarpsPerCore, sizeof(uint32_t));
39343 }
39344 
unmarshal_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM * forUnmarshaling)39345 void unmarshal_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(
39346     VulkanStream* vkStream, VkStructureType rootType,
39347     VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* forUnmarshaling) {
39348     (void)rootType;
39349     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39350     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39351         rootType = forUnmarshaling->sType;
39352     }
39353     size_t pNext_size;
39354     pNext_size = vkStream->getBe32();
39355     forUnmarshaling->pNext = nullptr;
39356     if (pNext_size) {
39357         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39358         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39359         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39360         vkStream->alloc((void**)&forUnmarshaling->pNext,
39361                         goldfish_vk_extension_struct_size_with_stream_features(
39362                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39363         *(VkStructureType*)forUnmarshaling->pNext = extType;
39364         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39365     }
39366     vkStream->read((uint64_t*)&forUnmarshaling->shaderCoreMask, sizeof(uint64_t));
39367     vkStream->read((uint32_t*)&forUnmarshaling->shaderCoreCount, sizeof(uint32_t));
39368     vkStream->read((uint32_t*)&forUnmarshaling->shaderWarpsPerCore, sizeof(uint32_t));
39369 }
39370 
39371 #endif
39372 #ifdef VK_EXT_pipeline_library_group_handles
marshal_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT * forMarshaling)39373 void marshal_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(
39374     VulkanStream* vkStream, VkStructureType rootType,
39375     const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* forMarshaling) {
39376     (void)rootType;
39377     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39378     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39379         rootType = forMarshaling->sType;
39380     }
39381     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39382     vkStream->write((VkBool32*)&forMarshaling->pipelineLibraryGroupHandles, sizeof(VkBool32));
39383 }
39384 
unmarshal_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT * forUnmarshaling)39385 void unmarshal_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(
39386     VulkanStream* vkStream, VkStructureType rootType,
39387     VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* forUnmarshaling) {
39388     (void)rootType;
39389     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39390     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39391         rootType = forUnmarshaling->sType;
39392     }
39393     size_t pNext_size;
39394     pNext_size = vkStream->getBe32();
39395     forUnmarshaling->pNext = nullptr;
39396     if (pNext_size) {
39397         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39398         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39399         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39400         vkStream->alloc((void**)&forUnmarshaling->pNext,
39401                         goldfish_vk_extension_struct_size_with_stream_features(
39402                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39403         *(VkStructureType*)forUnmarshaling->pNext = extType;
39404         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39405     }
39406     vkStream->read((VkBool32*)&forUnmarshaling->pipelineLibraryGroupHandles, sizeof(VkBool32));
39407 }
39408 
39409 #endif
39410 #ifdef VK_QCOM_multiview_per_view_render_areas
marshal_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM * forMarshaling)39411 void marshal_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(
39412     VulkanStream* vkStream, VkStructureType rootType,
39413     const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* forMarshaling) {
39414     (void)rootType;
39415     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39416     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39417         rootType = forMarshaling->sType;
39418     }
39419     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39420     vkStream->write((VkBool32*)&forMarshaling->multiviewPerViewRenderAreas, sizeof(VkBool32));
39421 }
39422 
unmarshal_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM * forUnmarshaling)39423 void unmarshal_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(
39424     VulkanStream* vkStream, VkStructureType rootType,
39425     VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* forUnmarshaling) {
39426     (void)rootType;
39427     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39428     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39429         rootType = forUnmarshaling->sType;
39430     }
39431     size_t pNext_size;
39432     pNext_size = vkStream->getBe32();
39433     forUnmarshaling->pNext = nullptr;
39434     if (pNext_size) {
39435         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39436         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39437         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39438         vkStream->alloc((void**)&forUnmarshaling->pNext,
39439                         goldfish_vk_extension_struct_size_with_stream_features(
39440                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39441         *(VkStructureType*)forUnmarshaling->pNext = extType;
39442         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39443     }
39444     vkStream->read((VkBool32*)&forUnmarshaling->multiviewPerViewRenderAreas, sizeof(VkBool32));
39445 }
39446 
marshal_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM * forMarshaling)39447 void marshal_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
39448     VulkanStream* vkStream, VkStructureType rootType,
39449     const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* forMarshaling) {
39450     (void)rootType;
39451     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39452     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39453         rootType = forMarshaling->sType;
39454     }
39455     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39456     vkStream->write((uint32_t*)&forMarshaling->perViewRenderAreaCount, sizeof(uint32_t));
39457     if (forMarshaling) {
39458         for (uint32_t i = 0; i < (uint32_t)forMarshaling->perViewRenderAreaCount; ++i) {
39459             marshal_VkRect2D(vkStream, rootType,
39460                              (const VkRect2D*)(forMarshaling->pPerViewRenderAreas + i));
39461         }
39462     }
39463 }
39464 
unmarshal_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(VulkanStream * vkStream,VkStructureType rootType,VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM * forUnmarshaling)39465 void unmarshal_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
39466     VulkanStream* vkStream, VkStructureType rootType,
39467     VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* forUnmarshaling) {
39468     (void)rootType;
39469     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39470     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39471         rootType = forUnmarshaling->sType;
39472     }
39473     size_t pNext_size;
39474     pNext_size = vkStream->getBe32();
39475     forUnmarshaling->pNext = nullptr;
39476     if (pNext_size) {
39477         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39478         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39479         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39480         vkStream->alloc((void**)&forUnmarshaling->pNext,
39481                         goldfish_vk_extension_struct_size_with_stream_features(
39482                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39483         *(VkStructureType*)forUnmarshaling->pNext = extType;
39484         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39485     }
39486     vkStream->read((uint32_t*)&forUnmarshaling->perViewRenderAreaCount, sizeof(uint32_t));
39487     vkStream->alloc((void**)&forUnmarshaling->pPerViewRenderAreas,
39488                     forUnmarshaling->perViewRenderAreaCount * sizeof(const VkRect2D));
39489     if (forUnmarshaling) {
39490         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->perViewRenderAreaCount; ++i) {
39491             unmarshal_VkRect2D(vkStream, rootType,
39492                                (VkRect2D*)(forUnmarshaling->pPerViewRenderAreas + i));
39493         }
39494     }
39495 }
39496 
39497 #endif
39498 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
marshal_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT * forMarshaling)39499 void marshal_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
39500     VulkanStream* vkStream, VkStructureType rootType,
39501     const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* forMarshaling) {
39502     (void)rootType;
39503     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39504     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39505         rootType = forMarshaling->sType;
39506     }
39507     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39508     vkStream->write((VkBool32*)&forMarshaling->attachmentFeedbackLoopDynamicState,
39509                     sizeof(VkBool32));
39510 }
39511 
unmarshal_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT * forUnmarshaling)39512 void unmarshal_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
39513     VulkanStream* vkStream, VkStructureType rootType,
39514     VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT* forUnmarshaling) {
39515     (void)rootType;
39516     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39517     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39518         rootType = forUnmarshaling->sType;
39519     }
39520     size_t pNext_size;
39521     pNext_size = vkStream->getBe32();
39522     forUnmarshaling->pNext = nullptr;
39523     if (pNext_size) {
39524         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39525         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39526         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39527         vkStream->alloc((void**)&forUnmarshaling->pNext,
39528                         goldfish_vk_extension_struct_size_with_stream_features(
39529                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39530         *(VkStructureType*)forUnmarshaling->pNext = extType;
39531         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39532     }
39533     vkStream->read((VkBool32*)&forUnmarshaling->attachmentFeedbackLoopDynamicState,
39534                    sizeof(VkBool32));
39535 }
39536 
39537 #endif
39538 #ifdef VK_KHR_acceleration_structure
marshal_VkAccelerationStructureBuildRangeInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureBuildRangeInfoKHR * forMarshaling)39539 void marshal_VkAccelerationStructureBuildRangeInfoKHR(
39540     VulkanStream* vkStream, VkStructureType rootType,
39541     const VkAccelerationStructureBuildRangeInfoKHR* forMarshaling) {
39542     (void)rootType;
39543     vkStream->write((uint32_t*)&forMarshaling->primitiveCount, sizeof(uint32_t));
39544     vkStream->write((uint32_t*)&forMarshaling->primitiveOffset, sizeof(uint32_t));
39545     vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
39546     vkStream->write((uint32_t*)&forMarshaling->transformOffset, sizeof(uint32_t));
39547 }
39548 
unmarshal_VkAccelerationStructureBuildRangeInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureBuildRangeInfoKHR * forUnmarshaling)39549 void unmarshal_VkAccelerationStructureBuildRangeInfoKHR(
39550     VulkanStream* vkStream, VkStructureType rootType,
39551     VkAccelerationStructureBuildRangeInfoKHR* forUnmarshaling) {
39552     (void)rootType;
39553     vkStream->read((uint32_t*)&forUnmarshaling->primitiveCount, sizeof(uint32_t));
39554     vkStream->read((uint32_t*)&forUnmarshaling->primitiveOffset, sizeof(uint32_t));
39555     vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
39556     vkStream->read((uint32_t*)&forUnmarshaling->transformOffset, sizeof(uint32_t));
39557 }
39558 
marshal_VkAccelerationStructureGeometryTrianglesDataKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureGeometryTrianglesDataKHR * forMarshaling)39559 void marshal_VkAccelerationStructureGeometryTrianglesDataKHR(
39560     VulkanStream* vkStream, VkStructureType rootType,
39561     const VkAccelerationStructureGeometryTrianglesDataKHR* forMarshaling) {
39562     (void)rootType;
39563     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39564     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39565         rootType = forMarshaling->sType;
39566     }
39567     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39568     vkStream->write((VkFormat*)&forMarshaling->vertexFormat, sizeof(VkFormat));
39569     marshal_VkDeviceOrHostAddressConstKHR(
39570         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->vertexData));
39571     vkStream->write((VkDeviceSize*)&forMarshaling->vertexStride, sizeof(VkDeviceSize));
39572     vkStream->write((uint32_t*)&forMarshaling->maxVertex, sizeof(uint32_t));
39573     vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
39574     marshal_VkDeviceOrHostAddressConstKHR(
39575         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->indexData));
39576     marshal_VkDeviceOrHostAddressConstKHR(
39577         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->transformData));
39578 }
39579 
unmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureGeometryTrianglesDataKHR * forUnmarshaling)39580 void unmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(
39581     VulkanStream* vkStream, VkStructureType rootType,
39582     VkAccelerationStructureGeometryTrianglesDataKHR* forUnmarshaling) {
39583     (void)rootType;
39584     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39585     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39586         rootType = forUnmarshaling->sType;
39587     }
39588     size_t pNext_size;
39589     pNext_size = vkStream->getBe32();
39590     forUnmarshaling->pNext = nullptr;
39591     if (pNext_size) {
39592         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39593         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39594         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39595         vkStream->alloc((void**)&forUnmarshaling->pNext,
39596                         goldfish_vk_extension_struct_size_with_stream_features(
39597                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39598         *(VkStructureType*)forUnmarshaling->pNext = extType;
39599         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39600     }
39601     vkStream->read((VkFormat*)&forUnmarshaling->vertexFormat, sizeof(VkFormat));
39602     unmarshal_VkDeviceOrHostAddressConstKHR(
39603         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->vertexData));
39604     vkStream->read((VkDeviceSize*)&forUnmarshaling->vertexStride, sizeof(VkDeviceSize));
39605     vkStream->read((uint32_t*)&forUnmarshaling->maxVertex, sizeof(uint32_t));
39606     vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
39607     unmarshal_VkDeviceOrHostAddressConstKHR(
39608         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->indexData));
39609     unmarshal_VkDeviceOrHostAddressConstKHR(
39610         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->transformData));
39611 }
39612 
marshal_VkAccelerationStructureGeometryAabbsDataKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureGeometryAabbsDataKHR * forMarshaling)39613 void marshal_VkAccelerationStructureGeometryAabbsDataKHR(
39614     VulkanStream* vkStream, VkStructureType rootType,
39615     const VkAccelerationStructureGeometryAabbsDataKHR* forMarshaling) {
39616     (void)rootType;
39617     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39618     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39619         rootType = forMarshaling->sType;
39620     }
39621     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39622     marshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType,
39623                                           (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->data));
39624     vkStream->write((VkDeviceSize*)&forMarshaling->stride, sizeof(VkDeviceSize));
39625 }
39626 
unmarshal_VkAccelerationStructureGeometryAabbsDataKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureGeometryAabbsDataKHR * forUnmarshaling)39627 void unmarshal_VkAccelerationStructureGeometryAabbsDataKHR(
39628     VulkanStream* vkStream, VkStructureType rootType,
39629     VkAccelerationStructureGeometryAabbsDataKHR* forUnmarshaling) {
39630     (void)rootType;
39631     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39632     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39633         rootType = forUnmarshaling->sType;
39634     }
39635     size_t pNext_size;
39636     pNext_size = vkStream->getBe32();
39637     forUnmarshaling->pNext = nullptr;
39638     if (pNext_size) {
39639         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39640         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39641         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39642         vkStream->alloc((void**)&forUnmarshaling->pNext,
39643                         goldfish_vk_extension_struct_size_with_stream_features(
39644                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39645         *(VkStructureType*)forUnmarshaling->pNext = extType;
39646         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39647     }
39648     unmarshal_VkDeviceOrHostAddressConstKHR(
39649         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->data));
39650     vkStream->read((VkDeviceSize*)&forUnmarshaling->stride, sizeof(VkDeviceSize));
39651 }
39652 
marshal_VkAccelerationStructureGeometryInstancesDataKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureGeometryInstancesDataKHR * forMarshaling)39653 void marshal_VkAccelerationStructureGeometryInstancesDataKHR(
39654     VulkanStream* vkStream, VkStructureType rootType,
39655     const VkAccelerationStructureGeometryInstancesDataKHR* forMarshaling) {
39656     (void)rootType;
39657     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39658     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39659         rootType = forMarshaling->sType;
39660     }
39661     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39662     vkStream->write((VkBool32*)&forMarshaling->arrayOfPointers, sizeof(VkBool32));
39663     marshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType,
39664                                           (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->data));
39665 }
39666 
unmarshal_VkAccelerationStructureGeometryInstancesDataKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureGeometryInstancesDataKHR * forUnmarshaling)39667 void unmarshal_VkAccelerationStructureGeometryInstancesDataKHR(
39668     VulkanStream* vkStream, VkStructureType rootType,
39669     VkAccelerationStructureGeometryInstancesDataKHR* forUnmarshaling) {
39670     (void)rootType;
39671     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39672     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39673         rootType = forUnmarshaling->sType;
39674     }
39675     size_t pNext_size;
39676     pNext_size = vkStream->getBe32();
39677     forUnmarshaling->pNext = nullptr;
39678     if (pNext_size) {
39679         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39680         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39681         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39682         vkStream->alloc((void**)&forUnmarshaling->pNext,
39683                         goldfish_vk_extension_struct_size_with_stream_features(
39684                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39685         *(VkStructureType*)forUnmarshaling->pNext = extType;
39686         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39687     }
39688     vkStream->read((VkBool32*)&forUnmarshaling->arrayOfPointers, sizeof(VkBool32));
39689     unmarshal_VkDeviceOrHostAddressConstKHR(
39690         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->data));
39691 }
39692 
marshal_VkAccelerationStructureGeometryDataKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureGeometryDataKHR * forMarshaling)39693 void marshal_VkAccelerationStructureGeometryDataKHR(
39694     VulkanStream* vkStream, VkStructureType rootType,
39695     const VkAccelerationStructureGeometryDataKHR* forMarshaling) {
39696     (void)rootType;
39697     marshal_VkAccelerationStructureGeometryTrianglesDataKHR(
39698         vkStream, rootType,
39699         (VkAccelerationStructureGeometryTrianglesDataKHR*)(&forMarshaling->triangles));
39700 }
39701 
unmarshal_VkAccelerationStructureGeometryDataKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureGeometryDataKHR * forUnmarshaling)39702 void unmarshal_VkAccelerationStructureGeometryDataKHR(
39703     VulkanStream* vkStream, VkStructureType rootType,
39704     VkAccelerationStructureGeometryDataKHR* forUnmarshaling) {
39705     (void)rootType;
39706     unmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(
39707         vkStream, rootType,
39708         (VkAccelerationStructureGeometryTrianglesDataKHR*)(&forUnmarshaling->triangles));
39709 }
39710 
marshal_VkAccelerationStructureGeometryKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureGeometryKHR * forMarshaling)39711 void marshal_VkAccelerationStructureGeometryKHR(
39712     VulkanStream* vkStream, VkStructureType rootType,
39713     const VkAccelerationStructureGeometryKHR* forMarshaling) {
39714     (void)rootType;
39715     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39716     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39717         rootType = forMarshaling->sType;
39718     }
39719     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39720     vkStream->write((VkGeometryTypeKHR*)&forMarshaling->geometryType, sizeof(VkGeometryTypeKHR));
39721     marshal_VkAccelerationStructureGeometryDataKHR(
39722         vkStream, rootType, (VkAccelerationStructureGeometryDataKHR*)(&forMarshaling->geometry));
39723     vkStream->write((VkGeometryFlagsKHR*)&forMarshaling->flags, sizeof(VkGeometryFlagsKHR));
39724 }
39725 
unmarshal_VkAccelerationStructureGeometryKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureGeometryKHR * forUnmarshaling)39726 void unmarshal_VkAccelerationStructureGeometryKHR(
39727     VulkanStream* vkStream, VkStructureType rootType,
39728     VkAccelerationStructureGeometryKHR* forUnmarshaling) {
39729     (void)rootType;
39730     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39731     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39732         rootType = forUnmarshaling->sType;
39733     }
39734     size_t pNext_size;
39735     pNext_size = vkStream->getBe32();
39736     forUnmarshaling->pNext = nullptr;
39737     if (pNext_size) {
39738         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39739         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39740         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39741         vkStream->alloc((void**)&forUnmarshaling->pNext,
39742                         goldfish_vk_extension_struct_size_with_stream_features(
39743                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39744         *(VkStructureType*)forUnmarshaling->pNext = extType;
39745         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39746     }
39747     vkStream->read((VkGeometryTypeKHR*)&forUnmarshaling->geometryType, sizeof(VkGeometryTypeKHR));
39748     unmarshal_VkAccelerationStructureGeometryDataKHR(
39749         vkStream, rootType, (VkAccelerationStructureGeometryDataKHR*)(&forUnmarshaling->geometry));
39750     vkStream->read((VkGeometryFlagsKHR*)&forUnmarshaling->flags, sizeof(VkGeometryFlagsKHR));
39751 }
39752 
marshal_VkAccelerationStructureBuildGeometryInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureBuildGeometryInfoKHR * forMarshaling)39753 void marshal_VkAccelerationStructureBuildGeometryInfoKHR(
39754     VulkanStream* vkStream, VkStructureType rootType,
39755     const VkAccelerationStructureBuildGeometryInfoKHR* forMarshaling) {
39756     (void)rootType;
39757     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39758     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39759         rootType = forMarshaling->sType;
39760     }
39761     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39762     vkStream->write((VkAccelerationStructureTypeKHR*)&forMarshaling->type,
39763                     sizeof(VkAccelerationStructureTypeKHR));
39764     vkStream->write((VkBuildAccelerationStructureFlagsKHR*)&forMarshaling->flags,
39765                     sizeof(VkBuildAccelerationStructureFlagsKHR));
39766     vkStream->write((VkBuildAccelerationStructureModeKHR*)&forMarshaling->mode,
39767                     sizeof(VkBuildAccelerationStructureModeKHR));
39768     uint64_t cgen_var_0;
39769     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(
39770         &forMarshaling->srcAccelerationStructure, &cgen_var_0, 1);
39771     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
39772     uint64_t cgen_var_1;
39773     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(
39774         &forMarshaling->dstAccelerationStructure, &cgen_var_1, 1);
39775     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
39776     vkStream->write((uint32_t*)&forMarshaling->geometryCount, sizeof(uint32_t));
39777     // WARNING PTR CHECK
39778     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pGeometries;
39779     vkStream->putBe64(cgen_var_2);
39780     if (forMarshaling->pGeometries) {
39781         if (forMarshaling) {
39782             for (uint32_t i = 0; i < (uint32_t)forMarshaling->geometryCount; ++i) {
39783                 marshal_VkAccelerationStructureGeometryKHR(
39784                     vkStream, rootType,
39785                     (const VkAccelerationStructureGeometryKHR*)(forMarshaling->pGeometries + i));
39786             }
39787         }
39788     }
39789     marshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
39790                                      (VkDeviceOrHostAddressKHR*)(&forMarshaling->scratchData));
39791 }
39792 
unmarshal_VkAccelerationStructureBuildGeometryInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureBuildGeometryInfoKHR * forUnmarshaling)39793 void unmarshal_VkAccelerationStructureBuildGeometryInfoKHR(
39794     VulkanStream* vkStream, VkStructureType rootType,
39795     VkAccelerationStructureBuildGeometryInfoKHR* forUnmarshaling) {
39796     (void)rootType;
39797     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39798     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39799         rootType = forUnmarshaling->sType;
39800     }
39801     size_t pNext_size;
39802     pNext_size = vkStream->getBe32();
39803     forUnmarshaling->pNext = nullptr;
39804     if (pNext_size) {
39805         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39806         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39807         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39808         vkStream->alloc((void**)&forUnmarshaling->pNext,
39809                         goldfish_vk_extension_struct_size_with_stream_features(
39810                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39811         *(VkStructureType*)forUnmarshaling->pNext = extType;
39812         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39813     }
39814     vkStream->read((VkAccelerationStructureTypeKHR*)&forUnmarshaling->type,
39815                    sizeof(VkAccelerationStructureTypeKHR));
39816     vkStream->read((VkBuildAccelerationStructureFlagsKHR*)&forUnmarshaling->flags,
39817                    sizeof(VkBuildAccelerationStructureFlagsKHR));
39818     vkStream->read((VkBuildAccelerationStructureModeKHR*)&forUnmarshaling->mode,
39819                    sizeof(VkBuildAccelerationStructureModeKHR));
39820     uint64_t cgen_var_0;
39821     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
39822     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
39823         &cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->srcAccelerationStructure, 1);
39824     uint64_t cgen_var_1;
39825     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
39826     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
39827         &cgen_var_1, (VkAccelerationStructureKHR*)&forUnmarshaling->dstAccelerationStructure, 1);
39828     vkStream->read((uint32_t*)&forUnmarshaling->geometryCount, sizeof(uint32_t));
39829     // WARNING PTR CHECK
39830     forUnmarshaling->pGeometries =
39831         (const VkAccelerationStructureGeometryKHR*)(uintptr_t)vkStream->getBe64();
39832     if (forUnmarshaling->pGeometries) {
39833         vkStream->alloc(
39834             (void**)&forUnmarshaling->pGeometries,
39835             forUnmarshaling->geometryCount * sizeof(const VkAccelerationStructureGeometryKHR));
39836         if (forUnmarshaling) {
39837             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->geometryCount; ++i) {
39838                 unmarshal_VkAccelerationStructureGeometryKHR(
39839                     vkStream, rootType,
39840                     (VkAccelerationStructureGeometryKHR*)(forUnmarshaling->pGeometries + i));
39841             }
39842         }
39843     }
39844     unmarshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
39845                                        (VkDeviceOrHostAddressKHR*)(&forUnmarshaling->scratchData));
39846 }
39847 
marshal_VkAccelerationStructureCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureCreateInfoKHR * forMarshaling)39848 void marshal_VkAccelerationStructureCreateInfoKHR(
39849     VulkanStream* vkStream, VkStructureType rootType,
39850     const VkAccelerationStructureCreateInfoKHR* forMarshaling) {
39851     (void)rootType;
39852     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39853     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39854         rootType = forMarshaling->sType;
39855     }
39856     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39857     vkStream->write((VkAccelerationStructureCreateFlagsKHR*)&forMarshaling->createFlags,
39858                     sizeof(VkAccelerationStructureCreateFlagsKHR));
39859     uint64_t cgen_var_0;
39860     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
39861     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
39862     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
39863     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
39864     vkStream->write((VkAccelerationStructureTypeKHR*)&forMarshaling->type,
39865                     sizeof(VkAccelerationStructureTypeKHR));
39866     vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
39867 }
39868 
unmarshal_VkAccelerationStructureCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureCreateInfoKHR * forUnmarshaling)39869 void unmarshal_VkAccelerationStructureCreateInfoKHR(
39870     VulkanStream* vkStream, VkStructureType rootType,
39871     VkAccelerationStructureCreateInfoKHR* forUnmarshaling) {
39872     (void)rootType;
39873     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39874     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39875         rootType = forUnmarshaling->sType;
39876     }
39877     size_t pNext_size;
39878     pNext_size = vkStream->getBe32();
39879     forUnmarshaling->pNext = nullptr;
39880     if (pNext_size) {
39881         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39882         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39883         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39884         vkStream->alloc((void**)&forUnmarshaling->pNext,
39885                         goldfish_vk_extension_struct_size_with_stream_features(
39886                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39887         *(VkStructureType*)forUnmarshaling->pNext = extType;
39888         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39889     }
39890     vkStream->read((VkAccelerationStructureCreateFlagsKHR*)&forUnmarshaling->createFlags,
39891                    sizeof(VkAccelerationStructureCreateFlagsKHR));
39892     uint64_t cgen_var_0;
39893     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
39894     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
39895                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
39896     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
39897     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
39898     vkStream->read((VkAccelerationStructureTypeKHR*)&forUnmarshaling->type,
39899                    sizeof(VkAccelerationStructureTypeKHR));
39900     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
39901 }
39902 
marshal_VkWriteDescriptorSetAccelerationStructureKHR(VulkanStream * vkStream,VkStructureType rootType,const VkWriteDescriptorSetAccelerationStructureKHR * forMarshaling)39903 void marshal_VkWriteDescriptorSetAccelerationStructureKHR(
39904     VulkanStream* vkStream, VkStructureType rootType,
39905     const VkWriteDescriptorSetAccelerationStructureKHR* forMarshaling) {
39906     (void)rootType;
39907     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39908     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39909         rootType = forMarshaling->sType;
39910     }
39911     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39912     vkStream->write((uint32_t*)&forMarshaling->accelerationStructureCount, sizeof(uint32_t));
39913     // WARNING PTR CHECK
39914     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAccelerationStructures;
39915     vkStream->putBe64(cgen_var_0);
39916     if (forMarshaling->pAccelerationStructures) {
39917         if (forMarshaling->accelerationStructureCount) {
39918             uint64_t* cgen_var_0_0;
39919             vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
39920             vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(
39921                 forMarshaling->pAccelerationStructures, cgen_var_0_0,
39922                 forMarshaling->accelerationStructureCount);
39923             vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
39924         }
39925     }
39926 }
39927 
unmarshal_VkWriteDescriptorSetAccelerationStructureKHR(VulkanStream * vkStream,VkStructureType rootType,VkWriteDescriptorSetAccelerationStructureKHR * forUnmarshaling)39928 void unmarshal_VkWriteDescriptorSetAccelerationStructureKHR(
39929     VulkanStream* vkStream, VkStructureType rootType,
39930     VkWriteDescriptorSetAccelerationStructureKHR* forUnmarshaling) {
39931     (void)rootType;
39932     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39933     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39934         rootType = forUnmarshaling->sType;
39935     }
39936     size_t pNext_size;
39937     pNext_size = vkStream->getBe32();
39938     forUnmarshaling->pNext = nullptr;
39939     if (pNext_size) {
39940         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
39941         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
39942         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
39943         vkStream->alloc((void**)&forUnmarshaling->pNext,
39944                         goldfish_vk_extension_struct_size_with_stream_features(
39945                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
39946         *(VkStructureType*)forUnmarshaling->pNext = extType;
39947         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
39948     }
39949     vkStream->read((uint32_t*)&forUnmarshaling->accelerationStructureCount, sizeof(uint32_t));
39950     // WARNING PTR CHECK
39951     forUnmarshaling->pAccelerationStructures =
39952         (const VkAccelerationStructureKHR*)(uintptr_t)vkStream->getBe64();
39953     if (forUnmarshaling->pAccelerationStructures) {
39954         vkStream->alloc(
39955             (void**)&forUnmarshaling->pAccelerationStructures,
39956             forUnmarshaling->accelerationStructureCount * sizeof(const VkAccelerationStructureKHR));
39957         if (forUnmarshaling->accelerationStructureCount) {
39958             uint64_t* cgen_var_0_0;
39959             vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->accelerationStructureCount * 8);
39960             vkStream->read((uint64_t*)cgen_var_0_0,
39961                            forUnmarshaling->accelerationStructureCount * 8);
39962             vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
39963                 cgen_var_0_0, (VkAccelerationStructureKHR*)forUnmarshaling->pAccelerationStructures,
39964                 forUnmarshaling->accelerationStructureCount);
39965         }
39966     }
39967 }
39968 
marshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceAccelerationStructureFeaturesKHR * forMarshaling)39969 void marshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
39970     VulkanStream* vkStream, VkStructureType rootType,
39971     const VkPhysicalDeviceAccelerationStructureFeaturesKHR* forMarshaling) {
39972     (void)rootType;
39973     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
39974     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39975         rootType = forMarshaling->sType;
39976     }
39977     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
39978     vkStream->write((VkBool32*)&forMarshaling->accelerationStructure, sizeof(VkBool32));
39979     vkStream->write((VkBool32*)&forMarshaling->accelerationStructureCaptureReplay,
39980                     sizeof(VkBool32));
39981     vkStream->write((VkBool32*)&forMarshaling->accelerationStructureIndirectBuild,
39982                     sizeof(VkBool32));
39983     vkStream->write((VkBool32*)&forMarshaling->accelerationStructureHostCommands, sizeof(VkBool32));
39984     vkStream->write(
39985         (VkBool32*)&forMarshaling->descriptorBindingAccelerationStructureUpdateAfterBind,
39986         sizeof(VkBool32));
39987 }
39988 
unmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceAccelerationStructureFeaturesKHR * forUnmarshaling)39989 void unmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
39990     VulkanStream* vkStream, VkStructureType rootType,
39991     VkPhysicalDeviceAccelerationStructureFeaturesKHR* forUnmarshaling) {
39992     (void)rootType;
39993     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
39994     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
39995         rootType = forUnmarshaling->sType;
39996     }
39997     size_t pNext_size;
39998     pNext_size = vkStream->getBe32();
39999     forUnmarshaling->pNext = nullptr;
40000     if (pNext_size) {
40001         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40002         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40003         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40004         vkStream->alloc((void**)&forUnmarshaling->pNext,
40005                         goldfish_vk_extension_struct_size_with_stream_features(
40006                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40007         *(VkStructureType*)forUnmarshaling->pNext = extType;
40008         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40009     }
40010     vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructure, sizeof(VkBool32));
40011     vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructureCaptureReplay,
40012                    sizeof(VkBool32));
40013     vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructureIndirectBuild,
40014                    sizeof(VkBool32));
40015     vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructureHostCommands,
40016                    sizeof(VkBool32));
40017     vkStream->read(
40018         (VkBool32*)&forUnmarshaling->descriptorBindingAccelerationStructureUpdateAfterBind,
40019         sizeof(VkBool32));
40020 }
40021 
marshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceAccelerationStructurePropertiesKHR * forMarshaling)40022 void marshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
40023     VulkanStream* vkStream, VkStructureType rootType,
40024     const VkPhysicalDeviceAccelerationStructurePropertiesKHR* forMarshaling) {
40025     (void)rootType;
40026     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40027     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40028         rootType = forMarshaling->sType;
40029     }
40030     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40031     vkStream->write((uint64_t*)&forMarshaling->maxGeometryCount, sizeof(uint64_t));
40032     vkStream->write((uint64_t*)&forMarshaling->maxInstanceCount, sizeof(uint64_t));
40033     vkStream->write((uint64_t*)&forMarshaling->maxPrimitiveCount, sizeof(uint64_t));
40034     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorAccelerationStructures,
40035                     sizeof(uint32_t));
40036     vkStream->write(
40037         (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindAccelerationStructures,
40038         sizeof(uint32_t));
40039     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetAccelerationStructures,
40040                     sizeof(uint32_t));
40041     vkStream->write(
40042         (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindAccelerationStructures,
40043         sizeof(uint32_t));
40044     vkStream->write((uint32_t*)&forMarshaling->minAccelerationStructureScratchOffsetAlignment,
40045                     sizeof(uint32_t));
40046 }
40047 
unmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceAccelerationStructurePropertiesKHR * forUnmarshaling)40048 void unmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
40049     VulkanStream* vkStream, VkStructureType rootType,
40050     VkPhysicalDeviceAccelerationStructurePropertiesKHR* forUnmarshaling) {
40051     (void)rootType;
40052     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40053     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40054         rootType = forUnmarshaling->sType;
40055     }
40056     size_t pNext_size;
40057     pNext_size = vkStream->getBe32();
40058     forUnmarshaling->pNext = nullptr;
40059     if (pNext_size) {
40060         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40061         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40062         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40063         vkStream->alloc((void**)&forUnmarshaling->pNext,
40064                         goldfish_vk_extension_struct_size_with_stream_features(
40065                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40066         *(VkStructureType*)forUnmarshaling->pNext = extType;
40067         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40068     }
40069     vkStream->read((uint64_t*)&forUnmarshaling->maxGeometryCount, sizeof(uint64_t));
40070     vkStream->read((uint64_t*)&forUnmarshaling->maxInstanceCount, sizeof(uint64_t));
40071     vkStream->read((uint64_t*)&forUnmarshaling->maxPrimitiveCount, sizeof(uint64_t));
40072     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorAccelerationStructures,
40073                    sizeof(uint32_t));
40074     vkStream->read(
40075         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindAccelerationStructures,
40076         sizeof(uint32_t));
40077     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetAccelerationStructures,
40078                    sizeof(uint32_t));
40079     vkStream->read(
40080         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindAccelerationStructures,
40081         sizeof(uint32_t));
40082     vkStream->read((uint32_t*)&forUnmarshaling->minAccelerationStructureScratchOffsetAlignment,
40083                    sizeof(uint32_t));
40084 }
40085 
marshal_VkAccelerationStructureDeviceAddressInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureDeviceAddressInfoKHR * forMarshaling)40086 void marshal_VkAccelerationStructureDeviceAddressInfoKHR(
40087     VulkanStream* vkStream, VkStructureType rootType,
40088     const VkAccelerationStructureDeviceAddressInfoKHR* forMarshaling) {
40089     (void)rootType;
40090     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40091     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40092         rootType = forMarshaling->sType;
40093     }
40094     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40095     uint64_t cgen_var_0;
40096     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(
40097         &forMarshaling->accelerationStructure, &cgen_var_0, 1);
40098     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
40099 }
40100 
unmarshal_VkAccelerationStructureDeviceAddressInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureDeviceAddressInfoKHR * forUnmarshaling)40101 void unmarshal_VkAccelerationStructureDeviceAddressInfoKHR(
40102     VulkanStream* vkStream, VkStructureType rootType,
40103     VkAccelerationStructureDeviceAddressInfoKHR* forUnmarshaling) {
40104     (void)rootType;
40105     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40106     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40107         rootType = forUnmarshaling->sType;
40108     }
40109     size_t pNext_size;
40110     pNext_size = vkStream->getBe32();
40111     forUnmarshaling->pNext = nullptr;
40112     if (pNext_size) {
40113         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40114         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40115         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40116         vkStream->alloc((void**)&forUnmarshaling->pNext,
40117                         goldfish_vk_extension_struct_size_with_stream_features(
40118                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40119         *(VkStructureType*)forUnmarshaling->pNext = extType;
40120         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40121     }
40122     uint64_t cgen_var_0;
40123     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
40124     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
40125         &cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->accelerationStructure, 1);
40126 }
40127 
marshal_VkAccelerationStructureVersionInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureVersionInfoKHR * forMarshaling)40128 void marshal_VkAccelerationStructureVersionInfoKHR(
40129     VulkanStream* vkStream, VkStructureType rootType,
40130     const VkAccelerationStructureVersionInfoKHR* forMarshaling) {
40131     (void)rootType;
40132     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40133     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40134         rootType = forMarshaling->sType;
40135     }
40136     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40137     vkStream->write((const uint8_t*)forMarshaling->pVersionData,
40138                     2 * VK_UUID_SIZE * sizeof(const uint8_t));
40139 }
40140 
unmarshal_VkAccelerationStructureVersionInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureVersionInfoKHR * forUnmarshaling)40141 void unmarshal_VkAccelerationStructureVersionInfoKHR(
40142     VulkanStream* vkStream, VkStructureType rootType,
40143     VkAccelerationStructureVersionInfoKHR* forUnmarshaling) {
40144     (void)rootType;
40145     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40146     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40147         rootType = forUnmarshaling->sType;
40148     }
40149     size_t pNext_size;
40150     pNext_size = vkStream->getBe32();
40151     forUnmarshaling->pNext = nullptr;
40152     if (pNext_size) {
40153         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40154         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40155         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40156         vkStream->alloc((void**)&forUnmarshaling->pNext,
40157                         goldfish_vk_extension_struct_size_with_stream_features(
40158                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40159         *(VkStructureType*)forUnmarshaling->pNext = extType;
40160         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40161     }
40162     vkStream->alloc((void**)&forUnmarshaling->pVersionData,
40163                     2 * VK_UUID_SIZE * sizeof(const uint8_t));
40164     vkStream->read((uint8_t*)forUnmarshaling->pVersionData,
40165                    2 * VK_UUID_SIZE * sizeof(const uint8_t));
40166 }
40167 
marshal_VkCopyAccelerationStructureToMemoryInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkCopyAccelerationStructureToMemoryInfoKHR * forMarshaling)40168 void marshal_VkCopyAccelerationStructureToMemoryInfoKHR(
40169     VulkanStream* vkStream, VkStructureType rootType,
40170     const VkCopyAccelerationStructureToMemoryInfoKHR* forMarshaling) {
40171     (void)rootType;
40172     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40173     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40174         rootType = forMarshaling->sType;
40175     }
40176     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40177     uint64_t cgen_var_0;
40178     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->src,
40179                                                                          &cgen_var_0, 1);
40180     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
40181     marshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
40182                                      (VkDeviceOrHostAddressKHR*)(&forMarshaling->dst));
40183     vkStream->write((VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode,
40184                     sizeof(VkCopyAccelerationStructureModeKHR));
40185 }
40186 
unmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkCopyAccelerationStructureToMemoryInfoKHR * forUnmarshaling)40187 void unmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(
40188     VulkanStream* vkStream, VkStructureType rootType,
40189     VkCopyAccelerationStructureToMemoryInfoKHR* forUnmarshaling) {
40190     (void)rootType;
40191     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40193         rootType = forUnmarshaling->sType;
40194     }
40195     size_t pNext_size;
40196     pNext_size = vkStream->getBe32();
40197     forUnmarshaling->pNext = nullptr;
40198     if (pNext_size) {
40199         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40200         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40201         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40202         vkStream->alloc((void**)&forUnmarshaling->pNext,
40203                         goldfish_vk_extension_struct_size_with_stream_features(
40204                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40205         *(VkStructureType*)forUnmarshaling->pNext = extType;
40206         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40207     }
40208     uint64_t cgen_var_0;
40209     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
40210     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
40211         &cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->src, 1);
40212     unmarshal_VkDeviceOrHostAddressKHR(vkStream, rootType,
40213                                        (VkDeviceOrHostAddressKHR*)(&forUnmarshaling->dst));
40214     vkStream->read((VkCopyAccelerationStructureModeKHR*)&forUnmarshaling->mode,
40215                    sizeof(VkCopyAccelerationStructureModeKHR));
40216 }
40217 
marshal_VkCopyMemoryToAccelerationStructureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkCopyMemoryToAccelerationStructureInfoKHR * forMarshaling)40218 void marshal_VkCopyMemoryToAccelerationStructureInfoKHR(
40219     VulkanStream* vkStream, VkStructureType rootType,
40220     const VkCopyMemoryToAccelerationStructureInfoKHR* forMarshaling) {
40221     (void)rootType;
40222     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40223     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40224         rootType = forMarshaling->sType;
40225     }
40226     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40227     marshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType,
40228                                           (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->src));
40229     uint64_t cgen_var_0;
40230     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->dst,
40231                                                                          &cgen_var_0, 1);
40232     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
40233     vkStream->write((VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode,
40234                     sizeof(VkCopyAccelerationStructureModeKHR));
40235 }
40236 
unmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkCopyMemoryToAccelerationStructureInfoKHR * forUnmarshaling)40237 void unmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(
40238     VulkanStream* vkStream, VkStructureType rootType,
40239     VkCopyMemoryToAccelerationStructureInfoKHR* forUnmarshaling) {
40240     (void)rootType;
40241     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40243         rootType = forUnmarshaling->sType;
40244     }
40245     size_t pNext_size;
40246     pNext_size = vkStream->getBe32();
40247     forUnmarshaling->pNext = nullptr;
40248     if (pNext_size) {
40249         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40250         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40251         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40252         vkStream->alloc((void**)&forUnmarshaling->pNext,
40253                         goldfish_vk_extension_struct_size_with_stream_features(
40254                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40255         *(VkStructureType*)forUnmarshaling->pNext = extType;
40256         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40257     }
40258     unmarshal_VkDeviceOrHostAddressConstKHR(
40259         vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->src));
40260     uint64_t cgen_var_0;
40261     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
40262     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
40263         &cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->dst, 1);
40264     vkStream->read((VkCopyAccelerationStructureModeKHR*)&forUnmarshaling->mode,
40265                    sizeof(VkCopyAccelerationStructureModeKHR));
40266 }
40267 
marshal_VkCopyAccelerationStructureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkCopyAccelerationStructureInfoKHR * forMarshaling)40268 void marshal_VkCopyAccelerationStructureInfoKHR(
40269     VulkanStream* vkStream, VkStructureType rootType,
40270     const VkCopyAccelerationStructureInfoKHR* forMarshaling) {
40271     (void)rootType;
40272     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40273     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40274         rootType = forMarshaling->sType;
40275     }
40276     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40277     uint64_t cgen_var_0;
40278     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->src,
40279                                                                          &cgen_var_0, 1);
40280     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
40281     uint64_t cgen_var_1;
40282     vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->dst,
40283                                                                          &cgen_var_1, 1);
40284     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
40285     vkStream->write((VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode,
40286                     sizeof(VkCopyAccelerationStructureModeKHR));
40287 }
40288 
unmarshal_VkCopyAccelerationStructureInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkCopyAccelerationStructureInfoKHR * forUnmarshaling)40289 void unmarshal_VkCopyAccelerationStructureInfoKHR(
40290     VulkanStream* vkStream, VkStructureType rootType,
40291     VkCopyAccelerationStructureInfoKHR* forUnmarshaling) {
40292     (void)rootType;
40293     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40294     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40295         rootType = forUnmarshaling->sType;
40296     }
40297     size_t pNext_size;
40298     pNext_size = vkStream->getBe32();
40299     forUnmarshaling->pNext = nullptr;
40300     if (pNext_size) {
40301         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40302         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40303         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40304         vkStream->alloc((void**)&forUnmarshaling->pNext,
40305                         goldfish_vk_extension_struct_size_with_stream_features(
40306                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40307         *(VkStructureType*)forUnmarshaling->pNext = extType;
40308         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40309     }
40310     uint64_t cgen_var_0;
40311     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
40312     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
40313         &cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->src, 1);
40314     uint64_t cgen_var_1;
40315     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
40316     vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(
40317         &cgen_var_1, (VkAccelerationStructureKHR*)&forUnmarshaling->dst, 1);
40318     vkStream->read((VkCopyAccelerationStructureModeKHR*)&forUnmarshaling->mode,
40319                    sizeof(VkCopyAccelerationStructureModeKHR));
40320 }
40321 
marshal_VkAccelerationStructureBuildSizesInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkAccelerationStructureBuildSizesInfoKHR * forMarshaling)40322 void marshal_VkAccelerationStructureBuildSizesInfoKHR(
40323     VulkanStream* vkStream, VkStructureType rootType,
40324     const VkAccelerationStructureBuildSizesInfoKHR* forMarshaling) {
40325     (void)rootType;
40326     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40327     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40328         rootType = forMarshaling->sType;
40329     }
40330     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40331     vkStream->write((VkDeviceSize*)&forMarshaling->accelerationStructureSize, sizeof(VkDeviceSize));
40332     vkStream->write((VkDeviceSize*)&forMarshaling->updateScratchSize, sizeof(VkDeviceSize));
40333     vkStream->write((VkDeviceSize*)&forMarshaling->buildScratchSize, sizeof(VkDeviceSize));
40334 }
40335 
unmarshal_VkAccelerationStructureBuildSizesInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAccelerationStructureBuildSizesInfoKHR * forUnmarshaling)40336 void unmarshal_VkAccelerationStructureBuildSizesInfoKHR(
40337     VulkanStream* vkStream, VkStructureType rootType,
40338     VkAccelerationStructureBuildSizesInfoKHR* forUnmarshaling) {
40339     (void)rootType;
40340     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40341     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40342         rootType = forUnmarshaling->sType;
40343     }
40344     size_t pNext_size;
40345     pNext_size = vkStream->getBe32();
40346     forUnmarshaling->pNext = nullptr;
40347     if (pNext_size) {
40348         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40349         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40350         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40351         vkStream->alloc((void**)&forUnmarshaling->pNext,
40352                         goldfish_vk_extension_struct_size_with_stream_features(
40353                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40354         *(VkStructureType*)forUnmarshaling->pNext = extType;
40355         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40356     }
40357     vkStream->read((VkDeviceSize*)&forUnmarshaling->accelerationStructureSize,
40358                    sizeof(VkDeviceSize));
40359     vkStream->read((VkDeviceSize*)&forUnmarshaling->updateScratchSize, sizeof(VkDeviceSize));
40360     vkStream->read((VkDeviceSize*)&forUnmarshaling->buildScratchSize, sizeof(VkDeviceSize));
40361 }
40362 
40363 #endif
40364 #ifdef VK_KHR_ray_tracing_pipeline
marshal_VkRayTracingShaderGroupCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkRayTracingShaderGroupCreateInfoKHR * forMarshaling)40365 void marshal_VkRayTracingShaderGroupCreateInfoKHR(
40366     VulkanStream* vkStream, VkStructureType rootType,
40367     const VkRayTracingShaderGroupCreateInfoKHR* forMarshaling) {
40368     (void)rootType;
40369     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40370     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40371         rootType = forMarshaling->sType;
40372     }
40373     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40374     vkStream->write((VkRayTracingShaderGroupTypeKHR*)&forMarshaling->type,
40375                     sizeof(VkRayTracingShaderGroupTypeKHR));
40376     vkStream->write((uint32_t*)&forMarshaling->generalShader, sizeof(uint32_t));
40377     vkStream->write((uint32_t*)&forMarshaling->closestHitShader, sizeof(uint32_t));
40378     vkStream->write((uint32_t*)&forMarshaling->anyHitShader, sizeof(uint32_t));
40379     vkStream->write((uint32_t*)&forMarshaling->intersectionShader, sizeof(uint32_t));
40380     // WARNING PTR CHECK
40381     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pShaderGroupCaptureReplayHandle;
40382     vkStream->putBe64(cgen_var_0);
40383     if (forMarshaling->pShaderGroupCaptureReplayHandle) {
40384         vkStream->write((const void*)forMarshaling->pShaderGroupCaptureReplayHandle,
40385                         sizeof(const uint8_t));
40386     }
40387 }
40388 
unmarshal_VkRayTracingShaderGroupCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingShaderGroupCreateInfoKHR * forUnmarshaling)40389 void unmarshal_VkRayTracingShaderGroupCreateInfoKHR(
40390     VulkanStream* vkStream, VkStructureType rootType,
40391     VkRayTracingShaderGroupCreateInfoKHR* forUnmarshaling) {
40392     (void)rootType;
40393     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40394     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40395         rootType = forUnmarshaling->sType;
40396     }
40397     size_t pNext_size;
40398     pNext_size = vkStream->getBe32();
40399     forUnmarshaling->pNext = nullptr;
40400     if (pNext_size) {
40401         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40402         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40403         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40404         vkStream->alloc((void**)&forUnmarshaling->pNext,
40405                         goldfish_vk_extension_struct_size_with_stream_features(
40406                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40407         *(VkStructureType*)forUnmarshaling->pNext = extType;
40408         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40409     }
40410     vkStream->read((VkRayTracingShaderGroupTypeKHR*)&forUnmarshaling->type,
40411                    sizeof(VkRayTracingShaderGroupTypeKHR));
40412     vkStream->read((uint32_t*)&forUnmarshaling->generalShader, sizeof(uint32_t));
40413     vkStream->read((uint32_t*)&forUnmarshaling->closestHitShader, sizeof(uint32_t));
40414     vkStream->read((uint32_t*)&forUnmarshaling->anyHitShader, sizeof(uint32_t));
40415     vkStream->read((uint32_t*)&forUnmarshaling->intersectionShader, sizeof(uint32_t));
40416     // WARNING PTR CHECK
40417     forUnmarshaling->pShaderGroupCaptureReplayHandle = (const void*)(uintptr_t)vkStream->getBe64();
40418     if (forUnmarshaling->pShaderGroupCaptureReplayHandle) {
40419         vkStream->alloc((void**)&forUnmarshaling->pShaderGroupCaptureReplayHandle,
40420                         sizeof(const uint8_t));
40421         vkStream->read((void*)forUnmarshaling->pShaderGroupCaptureReplayHandle,
40422                        sizeof(const uint8_t));
40423     }
40424 }
40425 
marshal_VkRayTracingPipelineInterfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkRayTracingPipelineInterfaceCreateInfoKHR * forMarshaling)40426 void marshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
40427     VulkanStream* vkStream, VkStructureType rootType,
40428     const VkRayTracingPipelineInterfaceCreateInfoKHR* forMarshaling) {
40429     (void)rootType;
40430     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40431     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40432         rootType = forMarshaling->sType;
40433     }
40434     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40435     vkStream->write((uint32_t*)&forMarshaling->maxPipelineRayPayloadSize, sizeof(uint32_t));
40436     vkStream->write((uint32_t*)&forMarshaling->maxPipelineRayHitAttributeSize, sizeof(uint32_t));
40437 }
40438 
unmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingPipelineInterfaceCreateInfoKHR * forUnmarshaling)40439 void unmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
40440     VulkanStream* vkStream, VkStructureType rootType,
40441     VkRayTracingPipelineInterfaceCreateInfoKHR* forUnmarshaling) {
40442     (void)rootType;
40443     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40444     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40445         rootType = forUnmarshaling->sType;
40446     }
40447     size_t pNext_size;
40448     pNext_size = vkStream->getBe32();
40449     forUnmarshaling->pNext = nullptr;
40450     if (pNext_size) {
40451         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40452         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40453         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40454         vkStream->alloc((void**)&forUnmarshaling->pNext,
40455                         goldfish_vk_extension_struct_size_with_stream_features(
40456                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40457         *(VkStructureType*)forUnmarshaling->pNext = extType;
40458         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40459     }
40460     vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineRayPayloadSize, sizeof(uint32_t));
40461     vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineRayHitAttributeSize, sizeof(uint32_t));
40462 }
40463 
marshal_VkRayTracingPipelineCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,const VkRayTracingPipelineCreateInfoKHR * forMarshaling)40464 void marshal_VkRayTracingPipelineCreateInfoKHR(
40465     VulkanStream* vkStream, VkStructureType rootType,
40466     const VkRayTracingPipelineCreateInfoKHR* forMarshaling) {
40467     (void)rootType;
40468     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40469     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40470         rootType = forMarshaling->sType;
40471     }
40472     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40473     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
40474     vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
40475     if (forMarshaling) {
40476         for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i) {
40477             marshal_VkPipelineShaderStageCreateInfo(
40478                 vkStream, rootType,
40479                 (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
40480         }
40481     }
40482     vkStream->write((uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
40483     if (forMarshaling) {
40484         for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i) {
40485             marshal_VkRayTracingShaderGroupCreateInfoKHR(
40486                 vkStream, rootType,
40487                 (const VkRayTracingShaderGroupCreateInfoKHR*)(forMarshaling->pGroups + i));
40488         }
40489     }
40490     vkStream->write((uint32_t*)&forMarshaling->maxPipelineRayRecursionDepth, sizeof(uint32_t));
40491     // WARNING PTR CHECK
40492     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pLibraryInfo;
40493     vkStream->putBe64(cgen_var_0);
40494     if (forMarshaling->pLibraryInfo) {
40495         marshal_VkPipelineLibraryCreateInfoKHR(
40496             vkStream, rootType,
40497             (const VkPipelineLibraryCreateInfoKHR*)(forMarshaling->pLibraryInfo));
40498     }
40499     // WARNING PTR CHECK
40500     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pLibraryInterface;
40501     vkStream->putBe64(cgen_var_1);
40502     if (forMarshaling->pLibraryInterface) {
40503         marshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
40504             vkStream, rootType,
40505             (const VkRayTracingPipelineInterfaceCreateInfoKHR*)(forMarshaling->pLibraryInterface));
40506     }
40507     // WARNING PTR CHECK
40508     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
40509     vkStream->putBe64(cgen_var_2);
40510     if (forMarshaling->pDynamicState) {
40511         marshal_VkPipelineDynamicStateCreateInfo(
40512             vkStream, rootType,
40513             (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState));
40514     }
40515     uint64_t cgen_var_3;
40516     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_3,
40517                                                                1);
40518     vkStream->write((uint64_t*)&cgen_var_3, 1 * 8);
40519     uint64_t cgen_var_4;
40520     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle,
40521                                                          &cgen_var_4, 1);
40522     vkStream->write((uint64_t*)&cgen_var_4, 1 * 8);
40523     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
40524 }
40525 
unmarshal_VkRayTracingPipelineCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingPipelineCreateInfoKHR * forUnmarshaling)40526 void unmarshal_VkRayTracingPipelineCreateInfoKHR(
40527     VulkanStream* vkStream, VkStructureType rootType,
40528     VkRayTracingPipelineCreateInfoKHR* forUnmarshaling) {
40529     (void)rootType;
40530     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40531     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40532         rootType = forUnmarshaling->sType;
40533     }
40534     size_t pNext_size;
40535     pNext_size = vkStream->getBe32();
40536     forUnmarshaling->pNext = nullptr;
40537     if (pNext_size) {
40538         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40539         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40540         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40541         vkStream->alloc((void**)&forUnmarshaling->pNext,
40542                         goldfish_vk_extension_struct_size_with_stream_features(
40543                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40544         *(VkStructureType*)forUnmarshaling->pNext = extType;
40545         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40546     }
40547     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
40548     vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
40549     vkStream->alloc((void**)&forUnmarshaling->pStages,
40550                     forUnmarshaling->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
40551     if (forUnmarshaling) {
40552         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i) {
40553             unmarshal_VkPipelineShaderStageCreateInfo(
40554                 vkStream, rootType,
40555                 (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
40556         }
40557     }
40558     vkStream->read((uint32_t*)&forUnmarshaling->groupCount, sizeof(uint32_t));
40559     vkStream->alloc(
40560         (void**)&forUnmarshaling->pGroups,
40561         forUnmarshaling->groupCount * sizeof(const VkRayTracingShaderGroupCreateInfoKHR));
40562     if (forUnmarshaling) {
40563         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->groupCount; ++i) {
40564             unmarshal_VkRayTracingShaderGroupCreateInfoKHR(
40565                 vkStream, rootType,
40566                 (VkRayTracingShaderGroupCreateInfoKHR*)(forUnmarshaling->pGroups + i));
40567         }
40568     }
40569     vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineRayRecursionDepth, sizeof(uint32_t));
40570     // WARNING PTR CHECK
40571     forUnmarshaling->pLibraryInfo =
40572         (const VkPipelineLibraryCreateInfoKHR*)(uintptr_t)vkStream->getBe64();
40573     if (forUnmarshaling->pLibraryInfo) {
40574         vkStream->alloc((void**)&forUnmarshaling->pLibraryInfo,
40575                         sizeof(const VkPipelineLibraryCreateInfoKHR));
40576         unmarshal_VkPipelineLibraryCreateInfoKHR(
40577             vkStream, rootType, (VkPipelineLibraryCreateInfoKHR*)(forUnmarshaling->pLibraryInfo));
40578     }
40579     // WARNING PTR CHECK
40580     forUnmarshaling->pLibraryInterface =
40581         (const VkRayTracingPipelineInterfaceCreateInfoKHR*)(uintptr_t)vkStream->getBe64();
40582     if (forUnmarshaling->pLibraryInterface) {
40583         vkStream->alloc((void**)&forUnmarshaling->pLibraryInterface,
40584                         sizeof(const VkRayTracingPipelineInterfaceCreateInfoKHR));
40585         unmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
40586             vkStream, rootType,
40587             (VkRayTracingPipelineInterfaceCreateInfoKHR*)(forUnmarshaling->pLibraryInterface));
40588     }
40589     // WARNING PTR CHECK
40590     forUnmarshaling->pDynamicState =
40591         (const VkPipelineDynamicStateCreateInfo*)(uintptr_t)vkStream->getBe64();
40592     if (forUnmarshaling->pDynamicState) {
40593         vkStream->alloc((void**)&forUnmarshaling->pDynamicState,
40594                         sizeof(const VkPipelineDynamicStateCreateInfo));
40595         unmarshal_VkPipelineDynamicStateCreateInfo(
40596             vkStream, rootType,
40597             (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState));
40598     }
40599     uint64_t cgen_var_3;
40600     vkStream->read((uint64_t*)&cgen_var_3, 1 * 8);
40601     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
40602         &cgen_var_3, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
40603     uint64_t cgen_var_4;
40604     vkStream->read((uint64_t*)&cgen_var_4, 1 * 8);
40605     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
40606         &cgen_var_4, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
40607     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
40608 }
40609 
marshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingPipelineFeaturesKHR * forMarshaling)40610 void marshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
40611     VulkanStream* vkStream, VkStructureType rootType,
40612     const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forMarshaling) {
40613     (void)rootType;
40614     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40615     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40616         rootType = forMarshaling->sType;
40617     }
40618     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40619     vkStream->write((VkBool32*)&forMarshaling->rayTracingPipeline, sizeof(VkBool32));
40620     vkStream->write((VkBool32*)&forMarshaling->rayTracingPipelineShaderGroupHandleCaptureReplay,
40621                     sizeof(VkBool32));
40622     vkStream->write(
40623         (VkBool32*)&forMarshaling->rayTracingPipelineShaderGroupHandleCaptureReplayMixed,
40624         sizeof(VkBool32));
40625     vkStream->write((VkBool32*)&forMarshaling->rayTracingPipelineTraceRaysIndirect,
40626                     sizeof(VkBool32));
40627     vkStream->write((VkBool32*)&forMarshaling->rayTraversalPrimitiveCulling, sizeof(VkBool32));
40628 }
40629 
unmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingPipelineFeaturesKHR * forUnmarshaling)40630 void unmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
40631     VulkanStream* vkStream, VkStructureType rootType,
40632     VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forUnmarshaling) {
40633     (void)rootType;
40634     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40635     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40636         rootType = forUnmarshaling->sType;
40637     }
40638     size_t pNext_size;
40639     pNext_size = vkStream->getBe32();
40640     forUnmarshaling->pNext = nullptr;
40641     if (pNext_size) {
40642         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40643         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40644         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40645         vkStream->alloc((void**)&forUnmarshaling->pNext,
40646                         goldfish_vk_extension_struct_size_with_stream_features(
40647                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40648         *(VkStructureType*)forUnmarshaling->pNext = extType;
40649         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40650     }
40651     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipeline, sizeof(VkBool32));
40652     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipelineShaderGroupHandleCaptureReplay,
40653                    sizeof(VkBool32));
40654     vkStream->read(
40655         (VkBool32*)&forUnmarshaling->rayTracingPipelineShaderGroupHandleCaptureReplayMixed,
40656         sizeof(VkBool32));
40657     vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipelineTraceRaysIndirect,
40658                    sizeof(VkBool32));
40659     vkStream->read((VkBool32*)&forUnmarshaling->rayTraversalPrimitiveCulling, sizeof(VkBool32));
40660 }
40661 
marshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayTracingPipelinePropertiesKHR * forMarshaling)40662 void marshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
40663     VulkanStream* vkStream, VkStructureType rootType,
40664     const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forMarshaling) {
40665     (void)rootType;
40666     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40667     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40668         rootType = forMarshaling->sType;
40669     }
40670     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40671     vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleSize, sizeof(uint32_t));
40672     vkStream->write((uint32_t*)&forMarshaling->maxRayRecursionDepth, sizeof(uint32_t));
40673     vkStream->write((uint32_t*)&forMarshaling->maxShaderGroupStride, sizeof(uint32_t));
40674     vkStream->write((uint32_t*)&forMarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
40675     vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleCaptureReplaySize,
40676                     sizeof(uint32_t));
40677     vkStream->write((uint32_t*)&forMarshaling->maxRayDispatchInvocationCount, sizeof(uint32_t));
40678     vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleAlignment, sizeof(uint32_t));
40679     vkStream->write((uint32_t*)&forMarshaling->maxRayHitAttributeSize, sizeof(uint32_t));
40680 }
40681 
unmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingPipelinePropertiesKHR * forUnmarshaling)40682 void unmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
40683     VulkanStream* vkStream, VkStructureType rootType,
40684     VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forUnmarshaling) {
40685     (void)rootType;
40686     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40687     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40688         rootType = forUnmarshaling->sType;
40689     }
40690     size_t pNext_size;
40691     pNext_size = vkStream->getBe32();
40692     forUnmarshaling->pNext = nullptr;
40693     if (pNext_size) {
40694         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40695         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40696         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40697         vkStream->alloc((void**)&forUnmarshaling->pNext,
40698                         goldfish_vk_extension_struct_size_with_stream_features(
40699                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40700         *(VkStructureType*)forUnmarshaling->pNext = extType;
40701         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40702     }
40703     vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleSize, sizeof(uint32_t));
40704     vkStream->read((uint32_t*)&forUnmarshaling->maxRayRecursionDepth, sizeof(uint32_t));
40705     vkStream->read((uint32_t*)&forUnmarshaling->maxShaderGroupStride, sizeof(uint32_t));
40706     vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
40707     vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleCaptureReplaySize,
40708                    sizeof(uint32_t));
40709     vkStream->read((uint32_t*)&forUnmarshaling->maxRayDispatchInvocationCount, sizeof(uint32_t));
40710     vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleAlignment, sizeof(uint32_t));
40711     vkStream->read((uint32_t*)&forUnmarshaling->maxRayHitAttributeSize, sizeof(uint32_t));
40712 }
40713 
marshal_VkStridedDeviceAddressRegionKHR(VulkanStream * vkStream,VkStructureType rootType,const VkStridedDeviceAddressRegionKHR * forMarshaling)40714 void marshal_VkStridedDeviceAddressRegionKHR(VulkanStream* vkStream, VkStructureType rootType,
40715                                              const VkStridedDeviceAddressRegionKHR* forMarshaling) {
40716     (void)rootType;
40717     vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
40718     vkStream->write((VkDeviceSize*)&forMarshaling->stride, sizeof(VkDeviceSize));
40719     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
40720 }
40721 
unmarshal_VkStridedDeviceAddressRegionKHR(VulkanStream * vkStream,VkStructureType rootType,VkStridedDeviceAddressRegionKHR * forUnmarshaling)40722 void unmarshal_VkStridedDeviceAddressRegionKHR(VulkanStream* vkStream, VkStructureType rootType,
40723                                                VkStridedDeviceAddressRegionKHR* forUnmarshaling) {
40724     (void)rootType;
40725     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
40726     vkStream->read((VkDeviceSize*)&forUnmarshaling->stride, sizeof(VkDeviceSize));
40727     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
40728 }
40729 
marshal_VkTraceRaysIndirectCommandKHR(VulkanStream * vkStream,VkStructureType rootType,const VkTraceRaysIndirectCommandKHR * forMarshaling)40730 void marshal_VkTraceRaysIndirectCommandKHR(VulkanStream* vkStream, VkStructureType rootType,
40731                                            const VkTraceRaysIndirectCommandKHR* forMarshaling) {
40732     (void)rootType;
40733     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
40734     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
40735     vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
40736 }
40737 
unmarshal_VkTraceRaysIndirectCommandKHR(VulkanStream * vkStream,VkStructureType rootType,VkTraceRaysIndirectCommandKHR * forUnmarshaling)40738 void unmarshal_VkTraceRaysIndirectCommandKHR(VulkanStream* vkStream, VkStructureType rootType,
40739                                              VkTraceRaysIndirectCommandKHR* forUnmarshaling) {
40740     (void)rootType;
40741     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
40742     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
40743     vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
40744 }
40745 
40746 #endif
40747 #ifdef VK_KHR_ray_query
marshal_VkPhysicalDeviceRayQueryFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceRayQueryFeaturesKHR * forMarshaling)40748 void marshal_VkPhysicalDeviceRayQueryFeaturesKHR(
40749     VulkanStream* vkStream, VkStructureType rootType,
40750     const VkPhysicalDeviceRayQueryFeaturesKHR* forMarshaling) {
40751     (void)rootType;
40752     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40753     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40754         rootType = forMarshaling->sType;
40755     }
40756     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40757     vkStream->write((VkBool32*)&forMarshaling->rayQuery, sizeof(VkBool32));
40758 }
40759 
unmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayQueryFeaturesKHR * forUnmarshaling)40760 void unmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(
40761     VulkanStream* vkStream, VkStructureType rootType,
40762     VkPhysicalDeviceRayQueryFeaturesKHR* forUnmarshaling) {
40763     (void)rootType;
40764     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40765     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40766         rootType = forUnmarshaling->sType;
40767     }
40768     size_t pNext_size;
40769     pNext_size = vkStream->getBe32();
40770     forUnmarshaling->pNext = nullptr;
40771     if (pNext_size) {
40772         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40773         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40774         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40775         vkStream->alloc((void**)&forUnmarshaling->pNext,
40776                         goldfish_vk_extension_struct_size_with_stream_features(
40777                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40778         *(VkStructureType*)forUnmarshaling->pNext = extType;
40779         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40780     }
40781     vkStream->read((VkBool32*)&forUnmarshaling->rayQuery, sizeof(VkBool32));
40782 }
40783 
40784 #endif
40785 #ifdef VK_EXT_mesh_shader
marshal_VkPhysicalDeviceMeshShaderFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMeshShaderFeaturesEXT * forMarshaling)40786 void marshal_VkPhysicalDeviceMeshShaderFeaturesEXT(
40787     VulkanStream* vkStream, VkStructureType rootType,
40788     const VkPhysicalDeviceMeshShaderFeaturesEXT* forMarshaling) {
40789     (void)rootType;
40790     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40791     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40792         rootType = forMarshaling->sType;
40793     }
40794     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40795     vkStream->write((VkBool32*)&forMarshaling->taskShader, sizeof(VkBool32));
40796     vkStream->write((VkBool32*)&forMarshaling->meshShader, sizeof(VkBool32));
40797     vkStream->write((VkBool32*)&forMarshaling->multiviewMeshShader, sizeof(VkBool32));
40798     vkStream->write((VkBool32*)&forMarshaling->primitiveFragmentShadingRateMeshShader,
40799                     sizeof(VkBool32));
40800     vkStream->write((VkBool32*)&forMarshaling->meshShaderQueries, sizeof(VkBool32));
40801 }
40802 
unmarshal_VkPhysicalDeviceMeshShaderFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMeshShaderFeaturesEXT * forUnmarshaling)40803 void unmarshal_VkPhysicalDeviceMeshShaderFeaturesEXT(
40804     VulkanStream* vkStream, VkStructureType rootType,
40805     VkPhysicalDeviceMeshShaderFeaturesEXT* forUnmarshaling) {
40806     (void)rootType;
40807     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40808     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40809         rootType = forUnmarshaling->sType;
40810     }
40811     size_t pNext_size;
40812     pNext_size = vkStream->getBe32();
40813     forUnmarshaling->pNext = nullptr;
40814     if (pNext_size) {
40815         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40816         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40817         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40818         vkStream->alloc((void**)&forUnmarshaling->pNext,
40819                         goldfish_vk_extension_struct_size_with_stream_features(
40820                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40821         *(VkStructureType*)forUnmarshaling->pNext = extType;
40822         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40823     }
40824     vkStream->read((VkBool32*)&forUnmarshaling->taskShader, sizeof(VkBool32));
40825     vkStream->read((VkBool32*)&forUnmarshaling->meshShader, sizeof(VkBool32));
40826     vkStream->read((VkBool32*)&forUnmarshaling->multiviewMeshShader, sizeof(VkBool32));
40827     vkStream->read((VkBool32*)&forUnmarshaling->primitiveFragmentShadingRateMeshShader,
40828                    sizeof(VkBool32));
40829     vkStream->read((VkBool32*)&forUnmarshaling->meshShaderQueries, sizeof(VkBool32));
40830 }
40831 
marshal_VkPhysicalDeviceMeshShaderPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,const VkPhysicalDeviceMeshShaderPropertiesEXT * forMarshaling)40832 void marshal_VkPhysicalDeviceMeshShaderPropertiesEXT(
40833     VulkanStream* vkStream, VkStructureType rootType,
40834     const VkPhysicalDeviceMeshShaderPropertiesEXT* forMarshaling) {
40835     (void)rootType;
40836     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
40837     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40838         rootType = forMarshaling->sType;
40839     }
40840     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
40841     vkStream->write((uint32_t*)&forMarshaling->maxTaskWorkGroupTotalCount, sizeof(uint32_t));
40842     vkStream->write((uint32_t*)forMarshaling->maxTaskWorkGroupCount, 3 * sizeof(uint32_t));
40843     vkStream->write((uint32_t*)&forMarshaling->maxTaskWorkGroupInvocations, sizeof(uint32_t));
40844     vkStream->write((uint32_t*)forMarshaling->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
40845     vkStream->write((uint32_t*)&forMarshaling->maxTaskPayloadSize, sizeof(uint32_t));
40846     vkStream->write((uint32_t*)&forMarshaling->maxTaskSharedMemorySize, sizeof(uint32_t));
40847     vkStream->write((uint32_t*)&forMarshaling->maxTaskPayloadAndSharedMemorySize, sizeof(uint32_t));
40848     vkStream->write((uint32_t*)&forMarshaling->maxMeshWorkGroupTotalCount, sizeof(uint32_t));
40849     vkStream->write((uint32_t*)forMarshaling->maxMeshWorkGroupCount, 3 * sizeof(uint32_t));
40850     vkStream->write((uint32_t*)&forMarshaling->maxMeshWorkGroupInvocations, sizeof(uint32_t));
40851     vkStream->write((uint32_t*)forMarshaling->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
40852     vkStream->write((uint32_t*)&forMarshaling->maxMeshSharedMemorySize, sizeof(uint32_t));
40853     vkStream->write((uint32_t*)&forMarshaling->maxMeshPayloadAndSharedMemorySize, sizeof(uint32_t));
40854     vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputMemorySize, sizeof(uint32_t));
40855     vkStream->write((uint32_t*)&forMarshaling->maxMeshPayloadAndOutputMemorySize, sizeof(uint32_t));
40856     vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputComponents, sizeof(uint32_t));
40857     vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputVertices, sizeof(uint32_t));
40858     vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputPrimitives, sizeof(uint32_t));
40859     vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputLayers, sizeof(uint32_t));
40860     vkStream->write((uint32_t*)&forMarshaling->maxMeshMultiviewViewCount, sizeof(uint32_t));
40861     vkStream->write((uint32_t*)&forMarshaling->meshOutputPerVertexGranularity, sizeof(uint32_t));
40862     vkStream->write((uint32_t*)&forMarshaling->meshOutputPerPrimitiveGranularity, sizeof(uint32_t));
40863     vkStream->write((uint32_t*)&forMarshaling->maxPreferredTaskWorkGroupInvocations,
40864                     sizeof(uint32_t));
40865     vkStream->write((uint32_t*)&forMarshaling->maxPreferredMeshWorkGroupInvocations,
40866                     sizeof(uint32_t));
40867     vkStream->write((VkBool32*)&forMarshaling->prefersLocalInvocationVertexOutput,
40868                     sizeof(VkBool32));
40869     vkStream->write((VkBool32*)&forMarshaling->prefersLocalInvocationPrimitiveOutput,
40870                     sizeof(VkBool32));
40871     vkStream->write((VkBool32*)&forMarshaling->prefersCompactVertexOutput, sizeof(VkBool32));
40872     vkStream->write((VkBool32*)&forMarshaling->prefersCompactPrimitiveOutput, sizeof(VkBool32));
40873 }
40874 
unmarshal_VkPhysicalDeviceMeshShaderPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMeshShaderPropertiesEXT * forUnmarshaling)40875 void unmarshal_VkPhysicalDeviceMeshShaderPropertiesEXT(
40876     VulkanStream* vkStream, VkStructureType rootType,
40877     VkPhysicalDeviceMeshShaderPropertiesEXT* forUnmarshaling) {
40878     (void)rootType;
40879     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
40880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
40881         rootType = forUnmarshaling->sType;
40882     }
40883     size_t pNext_size;
40884     pNext_size = vkStream->getBe32();
40885     forUnmarshaling->pNext = nullptr;
40886     if (pNext_size) {
40887         vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
40888         vkStream->read((void*)forUnmarshaling->pNext, sizeof(VkStructureType));
40889         VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
40890         vkStream->alloc((void**)&forUnmarshaling->pNext,
40891                         goldfish_vk_extension_struct_size_with_stream_features(
40892                             vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
40893         *(VkStructureType*)forUnmarshaling->pNext = extType;
40894         unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
40895     }
40896     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskWorkGroupTotalCount, sizeof(uint32_t));
40897     vkStream->read((uint32_t*)forUnmarshaling->maxTaskWorkGroupCount, 3 * sizeof(uint32_t));
40898     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskWorkGroupInvocations, sizeof(uint32_t));
40899     vkStream->read((uint32_t*)forUnmarshaling->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
40900     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskPayloadSize, sizeof(uint32_t));
40901     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskSharedMemorySize, sizeof(uint32_t));
40902     vkStream->read((uint32_t*)&forUnmarshaling->maxTaskPayloadAndSharedMemorySize,
40903                    sizeof(uint32_t));
40904     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshWorkGroupTotalCount, sizeof(uint32_t));
40905     vkStream->read((uint32_t*)forUnmarshaling->maxMeshWorkGroupCount, 3 * sizeof(uint32_t));
40906     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshWorkGroupInvocations, sizeof(uint32_t));
40907     vkStream->read((uint32_t*)forUnmarshaling->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
40908     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshSharedMemorySize, sizeof(uint32_t));
40909     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshPayloadAndSharedMemorySize,
40910                    sizeof(uint32_t));
40911     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputMemorySize, sizeof(uint32_t));
40912     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshPayloadAndOutputMemorySize,
40913                    sizeof(uint32_t));
40914     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputComponents, sizeof(uint32_t));
40915     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputVertices, sizeof(uint32_t));
40916     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputPrimitives, sizeof(uint32_t));
40917     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputLayers, sizeof(uint32_t));
40918     vkStream->read((uint32_t*)&forUnmarshaling->maxMeshMultiviewViewCount, sizeof(uint32_t));
40919     vkStream->read((uint32_t*)&forUnmarshaling->meshOutputPerVertexGranularity, sizeof(uint32_t));
40920     vkStream->read((uint32_t*)&forUnmarshaling->meshOutputPerPrimitiveGranularity,
40921                    sizeof(uint32_t));
40922     vkStream->read((uint32_t*)&forUnmarshaling->maxPreferredTaskWorkGroupInvocations,
40923                    sizeof(uint32_t));
40924     vkStream->read((uint32_t*)&forUnmarshaling->maxPreferredMeshWorkGroupInvocations,
40925                    sizeof(uint32_t));
40926     vkStream->read((VkBool32*)&forUnmarshaling->prefersLocalInvocationVertexOutput,
40927                    sizeof(VkBool32));
40928     vkStream->read((VkBool32*)&forUnmarshaling->prefersLocalInvocationPrimitiveOutput,
40929                    sizeof(VkBool32));
40930     vkStream->read((VkBool32*)&forUnmarshaling->prefersCompactVertexOutput, sizeof(VkBool32));
40931     vkStream->read((VkBool32*)&forUnmarshaling->prefersCompactPrimitiveOutput, sizeof(VkBool32));
40932 }
40933 
marshal_VkDrawMeshTasksIndirectCommandEXT(VulkanStream * vkStream,VkStructureType rootType,const VkDrawMeshTasksIndirectCommandEXT * forMarshaling)40934 void marshal_VkDrawMeshTasksIndirectCommandEXT(
40935     VulkanStream* vkStream, VkStructureType rootType,
40936     const VkDrawMeshTasksIndirectCommandEXT* forMarshaling) {
40937     (void)rootType;
40938     vkStream->write((uint32_t*)&forMarshaling->groupCountX, sizeof(uint32_t));
40939     vkStream->write((uint32_t*)&forMarshaling->groupCountY, sizeof(uint32_t));
40940     vkStream->write((uint32_t*)&forMarshaling->groupCountZ, sizeof(uint32_t));
40941 }
40942 
unmarshal_VkDrawMeshTasksIndirectCommandEXT(VulkanStream * vkStream,VkStructureType rootType,VkDrawMeshTasksIndirectCommandEXT * forUnmarshaling)40943 void unmarshal_VkDrawMeshTasksIndirectCommandEXT(
40944     VulkanStream* vkStream, VkStructureType rootType,
40945     VkDrawMeshTasksIndirectCommandEXT* forUnmarshaling) {
40946     (void)rootType;
40947     vkStream->read((uint32_t*)&forUnmarshaling->groupCountX, sizeof(uint32_t));
40948     vkStream->read((uint32_t*)&forUnmarshaling->groupCountY, sizeof(uint32_t));
40949     vkStream->read((uint32_t*)&forUnmarshaling->groupCountZ, sizeof(uint32_t));
40950 }
40951 
40952 #endif
marshal_extension_struct(VulkanStream * vkStream,VkStructureType rootType,const void * structExtension)40953 void marshal_extension_struct(VulkanStream* vkStream, VkStructureType rootType,
40954                               const void* structExtension) {
40955     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension);
40956     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
40957         vkStream->getFeatureBits(), rootType, structExtension);
40958     if (!currExtSize && structExtension) {
40959         // unknown struct extension; skip and call on its pNext field
40960         marshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext);
40961         return;
40962     } else {
40963         // known or null extension struct
40964         vkStream->putBe32(currExtSize);
40965         if (!currExtSize) {
40966             // exit if this was a null extension struct (size == 0 in this branch)
40967             return;
40968         }
40969     }
40970     vkStream->write(structExtension, sizeof(VkStructureType));
40971     if (!structExtension) {
40972         return;
40973     }
40974     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
40975     switch (structType) {
40976 #ifdef VK_VERSION_1_0
40977         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
40978             marshal_VkShaderModuleCreateInfo(
40979                 vkStream, rootType,
40980                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension));
40981             break;
40982         }
40983 #endif
40984 #ifdef VK_VERSION_1_1
40985         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
40986             marshal_VkPhysicalDeviceSubgroupProperties(
40987                 vkStream, rootType,
40988                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension));
40989             break;
40990         }
40991         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
40992             marshal_VkPhysicalDevice16BitStorageFeatures(
40993                 vkStream, rootType,
40994                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension));
40995             break;
40996         }
40997         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
40998             marshal_VkMemoryDedicatedRequirements(
40999                 vkStream, rootType,
41000                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension));
41001             break;
41002         }
41003         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
41004             marshal_VkMemoryDedicatedAllocateInfo(
41005                 vkStream, rootType,
41006                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension));
41007             break;
41008         }
41009         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
41010             marshal_VkMemoryAllocateFlagsInfo(
41011                 vkStream, rootType,
41012                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension));
41013             break;
41014         }
41015         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
41016             marshal_VkDeviceGroupRenderPassBeginInfo(
41017                 vkStream, rootType,
41018                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension));
41019             break;
41020         }
41021         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
41022             marshal_VkDeviceGroupCommandBufferBeginInfo(
41023                 vkStream, rootType,
41024                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension));
41025             break;
41026         }
41027         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
41028             marshal_VkDeviceGroupSubmitInfo(
41029                 vkStream, rootType,
41030                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension));
41031             break;
41032         }
41033         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
41034             marshal_VkDeviceGroupBindSparseInfo(
41035                 vkStream, rootType,
41036                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension));
41037             break;
41038         }
41039         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
41040             marshal_VkBindBufferMemoryDeviceGroupInfo(
41041                 vkStream, rootType,
41042                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension));
41043             break;
41044         }
41045         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
41046             marshal_VkBindImageMemoryDeviceGroupInfo(
41047                 vkStream, rootType,
41048                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension));
41049             break;
41050         }
41051         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
41052             marshal_VkDeviceGroupDeviceCreateInfo(
41053                 vkStream, rootType,
41054                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension));
41055             break;
41056         }
41057         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
41058             marshal_VkPhysicalDeviceFeatures2(
41059                 vkStream, rootType,
41060                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension));
41061             break;
41062         }
41063         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
41064             marshal_VkPhysicalDevicePointClippingProperties(
41065                 vkStream, rootType,
41066                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension));
41067             break;
41068         }
41069         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
41070             marshal_VkRenderPassInputAttachmentAspectCreateInfo(
41071                 vkStream, rootType,
41072                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
41073                     structExtension));
41074             break;
41075         }
41076         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
41077             marshal_VkImageViewUsageCreateInfo(
41078                 vkStream, rootType,
41079                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension));
41080             break;
41081         }
41082         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
41083             marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
41084                 vkStream, rootType,
41085                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
41086                     structExtension));
41087             break;
41088         }
41089         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
41090             marshal_VkRenderPassMultiviewCreateInfo(
41091                 vkStream, rootType,
41092                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension));
41093             break;
41094         }
41095         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
41096             marshal_VkPhysicalDeviceMultiviewFeatures(
41097                 vkStream, rootType,
41098                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension));
41099             break;
41100         }
41101         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
41102             marshal_VkPhysicalDeviceMultiviewProperties(
41103                 vkStream, rootType,
41104                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension));
41105             break;
41106         }
41107         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
41108             marshal_VkPhysicalDeviceVariablePointersFeatures(
41109                 vkStream, rootType,
41110                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension));
41111             break;
41112         }
41113         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
41114             marshal_VkPhysicalDeviceProtectedMemoryFeatures(
41115                 vkStream, rootType,
41116                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension));
41117             break;
41118         }
41119         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
41120             marshal_VkPhysicalDeviceProtectedMemoryProperties(
41121                 vkStream, rootType,
41122                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(
41123                     structExtension));
41124             break;
41125         }
41126         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
41127             marshal_VkProtectedSubmitInfo(
41128                 vkStream, rootType,
41129                 reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension));
41130             break;
41131         }
41132         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
41133             marshal_VkSamplerYcbcrConversionInfo(
41134                 vkStream, rootType,
41135                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension));
41136             break;
41137         }
41138         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
41139             marshal_VkBindImagePlaneMemoryInfo(
41140                 vkStream, rootType,
41141                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension));
41142             break;
41143         }
41144         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
41145             marshal_VkImagePlaneMemoryRequirementsInfo(
41146                 vkStream, rootType,
41147                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension));
41148             break;
41149         }
41150         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
41151             marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
41152                 vkStream, rootType,
41153                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
41154                     structExtension));
41155             break;
41156         }
41157         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
41158             marshal_VkSamplerYcbcrConversionImageFormatProperties(
41159                 vkStream, rootType,
41160                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
41161                     structExtension));
41162             break;
41163         }
41164         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
41165             marshal_VkPhysicalDeviceExternalImageFormatInfo(
41166                 vkStream, rootType,
41167                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension));
41168             break;
41169         }
41170         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
41171             marshal_VkExternalImageFormatProperties(
41172                 vkStream, rootType,
41173                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension));
41174             break;
41175         }
41176         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
41177             marshal_VkPhysicalDeviceIDProperties(
41178                 vkStream, rootType,
41179                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension));
41180             break;
41181         }
41182         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
41183             marshal_VkExternalMemoryImageCreateInfo(
41184                 vkStream, rootType,
41185                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension));
41186             break;
41187         }
41188         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
41189             marshal_VkExternalMemoryBufferCreateInfo(
41190                 vkStream, rootType,
41191                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension));
41192             break;
41193         }
41194         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
41195             marshal_VkExportMemoryAllocateInfo(
41196                 vkStream, rootType,
41197                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension));
41198             break;
41199         }
41200         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
41201             marshal_VkExportFenceCreateInfo(
41202                 vkStream, rootType,
41203                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension));
41204             break;
41205         }
41206         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
41207             marshal_VkExportSemaphoreCreateInfo(
41208                 vkStream, rootType,
41209                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension));
41210             break;
41211         }
41212         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
41213             marshal_VkPhysicalDeviceMaintenance3Properties(
41214                 vkStream, rootType,
41215                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension));
41216             break;
41217         }
41218         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
41219             marshal_VkPhysicalDeviceShaderDrawParametersFeatures(
41220                 vkStream, rootType,
41221                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
41222                     structExtension));
41223             break;
41224         }
41225 #endif
41226 #ifdef VK_VERSION_1_2
41227         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
41228             marshal_VkPhysicalDeviceVulkan11Features(
41229                 vkStream, rootType,
41230                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension));
41231             break;
41232         }
41233         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
41234             marshal_VkPhysicalDeviceVulkan11Properties(
41235                 vkStream, rootType,
41236                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension));
41237             break;
41238         }
41239         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
41240             marshal_VkPhysicalDeviceVulkan12Features(
41241                 vkStream, rootType,
41242                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension));
41243             break;
41244         }
41245         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
41246             marshal_VkPhysicalDeviceVulkan12Properties(
41247                 vkStream, rootType,
41248                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension));
41249             break;
41250         }
41251         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
41252             marshal_VkImageFormatListCreateInfo(
41253                 vkStream, rootType,
41254                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension));
41255             break;
41256         }
41257         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
41258             marshal_VkPhysicalDevice8BitStorageFeatures(
41259                 vkStream, rootType,
41260                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension));
41261             break;
41262         }
41263         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
41264             marshal_VkPhysicalDeviceDriverProperties(
41265                 vkStream, rootType,
41266                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension));
41267             break;
41268         }
41269         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
41270             marshal_VkPhysicalDeviceShaderAtomicInt64Features(
41271                 vkStream, rootType,
41272                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(
41273                     structExtension));
41274             break;
41275         }
41276         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
41277             marshal_VkPhysicalDeviceShaderFloat16Int8Features(
41278                 vkStream, rootType,
41279                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(
41280                     structExtension));
41281             break;
41282         }
41283         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
41284             marshal_VkPhysicalDeviceFloatControlsProperties(
41285                 vkStream, rootType,
41286                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension));
41287             break;
41288         }
41289         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
41290             marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
41291                 vkStream, rootType,
41292                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
41293                     structExtension));
41294             break;
41295         }
41296         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
41297             marshal_VkPhysicalDeviceDescriptorIndexingFeatures(
41298                 vkStream, rootType,
41299                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
41300                     structExtension));
41301             break;
41302         }
41303         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
41304             marshal_VkPhysicalDeviceDescriptorIndexingProperties(
41305                 vkStream, rootType,
41306                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
41307                     structExtension));
41308             break;
41309         }
41310         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
41311             marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
41312                 vkStream, rootType,
41313                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
41314                     structExtension));
41315             break;
41316         }
41317         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
41318             marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
41319                 vkStream, rootType,
41320                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
41321                     structExtension));
41322             break;
41323         }
41324         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
41325             marshal_VkSubpassDescriptionDepthStencilResolve(
41326                 vkStream, rootType,
41327                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension));
41328             break;
41329         }
41330         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
41331             marshal_VkPhysicalDeviceDepthStencilResolveProperties(
41332                 vkStream, rootType,
41333                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
41334                     structExtension));
41335             break;
41336         }
41337         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
41338             marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
41339                 vkStream, rootType,
41340                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(
41341                     structExtension));
41342             break;
41343         }
41344         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
41345             marshal_VkImageStencilUsageCreateInfo(
41346                 vkStream, rootType,
41347                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension));
41348             break;
41349         }
41350         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
41351             marshal_VkSamplerReductionModeCreateInfo(
41352                 vkStream, rootType,
41353                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension));
41354             break;
41355         }
41356         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
41357             marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
41358                 vkStream, rootType,
41359                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
41360                     structExtension));
41361             break;
41362         }
41363         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
41364             marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
41365                 vkStream, rootType,
41366                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(
41367                     structExtension));
41368             break;
41369         }
41370         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
41371             marshal_VkPhysicalDeviceImagelessFramebufferFeatures(
41372                 vkStream, rootType,
41373                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
41374                     structExtension));
41375             break;
41376         }
41377         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
41378             marshal_VkFramebufferAttachmentsCreateInfo(
41379                 vkStream, rootType,
41380                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension));
41381             break;
41382         }
41383         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
41384             marshal_VkRenderPassAttachmentBeginInfo(
41385                 vkStream, rootType,
41386                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension));
41387             break;
41388         }
41389         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
41390             marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
41391                 vkStream, rootType,
41392                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
41393                     structExtension));
41394             break;
41395         }
41396         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
41397             marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
41398                 vkStream, rootType,
41399                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
41400                     structExtension));
41401             break;
41402         }
41403         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
41404             marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
41405                 vkStream, rootType,
41406                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
41407                     structExtension));
41408             break;
41409         }
41410         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
41411             marshal_VkAttachmentReferenceStencilLayout(
41412                 vkStream, rootType,
41413                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension));
41414             break;
41415         }
41416         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
41417             marshal_VkAttachmentDescriptionStencilLayout(
41418                 vkStream, rootType,
41419                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension));
41420             break;
41421         }
41422         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
41423             marshal_VkPhysicalDeviceHostQueryResetFeatures(
41424                 vkStream, rootType,
41425                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension));
41426             break;
41427         }
41428         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
41429             marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
41430                 vkStream, rootType,
41431                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(
41432                     structExtension));
41433             break;
41434         }
41435         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
41436             marshal_VkPhysicalDeviceTimelineSemaphoreProperties(
41437                 vkStream, rootType,
41438                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
41439                     structExtension));
41440             break;
41441         }
41442         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
41443             marshal_VkSemaphoreTypeCreateInfo(
41444                 vkStream, rootType,
41445                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension));
41446             break;
41447         }
41448         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
41449             marshal_VkTimelineSemaphoreSubmitInfo(
41450                 vkStream, rootType,
41451                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension));
41452             break;
41453         }
41454         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
41455             marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
41456                 vkStream, rootType,
41457                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
41458                     structExtension));
41459             break;
41460         }
41461         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
41462             marshal_VkBufferOpaqueCaptureAddressCreateInfo(
41463                 vkStream, rootType,
41464                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension));
41465             break;
41466         }
41467         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
41468             marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
41469                 vkStream, rootType,
41470                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension));
41471             break;
41472         }
41473 #endif
41474 #ifdef VK_VERSION_1_3
41475         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
41476             marshal_VkPhysicalDeviceVulkan13Features(
41477                 vkStream, rootType,
41478                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension));
41479             break;
41480         }
41481         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
41482             marshal_VkPhysicalDeviceVulkan13Properties(
41483                 vkStream, rootType,
41484                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension));
41485             break;
41486         }
41487         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
41488             marshal_VkPipelineCreationFeedbackCreateInfo(
41489                 vkStream, rootType,
41490                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension));
41491             break;
41492         }
41493         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
41494             marshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
41495                 vkStream, rootType,
41496                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
41497                     structExtension));
41498             break;
41499         }
41500         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
41501             marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
41502                 vkStream, rootType,
41503                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
41504                     structExtension));
41505             break;
41506         }
41507         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
41508             marshal_VkPhysicalDevicePrivateDataFeatures(
41509                 vkStream, rootType,
41510                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension));
41511             break;
41512         }
41513         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
41514             marshal_VkDevicePrivateDataCreateInfo(
41515                 vkStream, rootType,
41516                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension));
41517             break;
41518         }
41519         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
41520             marshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
41521                 vkStream, rootType,
41522                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
41523                     structExtension));
41524             break;
41525         }
41526         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
41527             marshal_VkMemoryBarrier2(vkStream, rootType,
41528                                      reinterpret_cast<const VkMemoryBarrier2*>(structExtension));
41529             break;
41530         }
41531         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
41532             marshal_VkPhysicalDeviceSynchronization2Features(
41533                 vkStream, rootType,
41534                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension));
41535             break;
41536         }
41537         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
41538             marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
41539                 vkStream, rootType,
41540                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
41541                     structExtension));
41542             break;
41543         }
41544         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
41545             marshal_VkPhysicalDeviceImageRobustnessFeatures(
41546                 vkStream, rootType,
41547                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension));
41548             break;
41549         }
41550         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
41551             marshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
41552                 vkStream, rootType,
41553                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
41554                     structExtension));
41555             break;
41556         }
41557         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
41558             marshal_VkPhysicalDeviceSubgroupSizeControlProperties(
41559                 vkStream, rootType,
41560                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
41561                     structExtension));
41562             break;
41563         }
41564         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
41565             marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
41566                 vkStream, rootType,
41567                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
41568                     structExtension));
41569             break;
41570         }
41571         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
41572             marshal_VkPhysicalDeviceInlineUniformBlockFeatures(
41573                 vkStream, rootType,
41574                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
41575                     structExtension));
41576             break;
41577         }
41578         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
41579             marshal_VkPhysicalDeviceInlineUniformBlockProperties(
41580                 vkStream, rootType,
41581                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
41582                     structExtension));
41583             break;
41584         }
41585         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
41586             marshal_VkWriteDescriptorSetInlineUniformBlock(
41587                 vkStream, rootType,
41588                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension));
41589             break;
41590         }
41591         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
41592             marshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
41593                 vkStream, rootType,
41594                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
41595                     structExtension));
41596             break;
41597         }
41598         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
41599             marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
41600                 vkStream, rootType,
41601                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
41602                     structExtension));
41603             break;
41604         }
41605         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
41606             marshal_VkPipelineRenderingCreateInfo(
41607                 vkStream, rootType,
41608                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension));
41609             break;
41610         }
41611         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
41612             marshal_VkPhysicalDeviceDynamicRenderingFeatures(
41613                 vkStream, rootType,
41614                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension));
41615             break;
41616         }
41617         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
41618             marshal_VkCommandBufferInheritanceRenderingInfo(
41619                 vkStream, rootType,
41620                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension));
41621             break;
41622         }
41623         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
41624             marshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
41625                 vkStream, rootType,
41626                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
41627                     structExtension));
41628             break;
41629         }
41630         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
41631             marshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
41632                 vkStream, rootType,
41633                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
41634                     structExtension));
41635             break;
41636         }
41637         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
41638             marshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
41639                 vkStream, rootType,
41640                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
41641                     structExtension));
41642             break;
41643         }
41644         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
41645             marshal_VkFormatProperties3(
41646                 vkStream, rootType, reinterpret_cast<const VkFormatProperties3*>(structExtension));
41647             break;
41648         }
41649         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
41650             marshal_VkPhysicalDeviceMaintenance4Features(
41651                 vkStream, rootType,
41652                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension));
41653             break;
41654         }
41655         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
41656             marshal_VkPhysicalDeviceMaintenance4Properties(
41657                 vkStream, rootType,
41658                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension));
41659             break;
41660         }
41661 #endif
41662 #ifdef VK_KHR_swapchain
41663         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
41664             marshal_VkImageSwapchainCreateInfoKHR(
41665                 vkStream, rootType,
41666                 reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension));
41667             break;
41668         }
41669         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
41670             marshal_VkBindImageMemorySwapchainInfoKHR(
41671                 vkStream, rootType,
41672                 reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension));
41673             break;
41674         }
41675         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
41676             marshal_VkDeviceGroupPresentInfoKHR(
41677                 vkStream, rootType,
41678                 reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension));
41679             break;
41680         }
41681         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
41682             marshal_VkDeviceGroupSwapchainCreateInfoKHR(
41683                 vkStream, rootType,
41684                 reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension));
41685             break;
41686         }
41687 #endif
41688 #ifdef VK_KHR_display_swapchain
41689         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
41690             marshal_VkDisplayPresentInfoKHR(
41691                 vkStream, rootType,
41692                 reinterpret_cast<const VkDisplayPresentInfoKHR*>(structExtension));
41693             break;
41694         }
41695 #endif
41696 #ifdef VK_KHR_video_queue
41697         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
41698             marshal_VkQueueFamilyQueryResultStatusPropertiesKHR(
41699                 vkStream, rootType,
41700                 reinterpret_cast<const VkQueueFamilyQueryResultStatusPropertiesKHR*>(
41701                     structExtension));
41702             break;
41703         }
41704         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
41705             marshal_VkQueueFamilyVideoPropertiesKHR(
41706                 vkStream, rootType,
41707                 reinterpret_cast<const VkQueueFamilyVideoPropertiesKHR*>(structExtension));
41708             break;
41709         }
41710         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
41711             marshal_VkVideoProfileInfoKHR(
41712                 vkStream, rootType,
41713                 reinterpret_cast<const VkVideoProfileInfoKHR*>(structExtension));
41714             break;
41715         }
41716         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
41717             marshal_VkVideoProfileListInfoKHR(
41718                 vkStream, rootType,
41719                 reinterpret_cast<const VkVideoProfileListInfoKHR*>(structExtension));
41720             break;
41721         }
41722 #endif
41723 #ifdef VK_KHR_video_decode_queue
41724         case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
41725             marshal_VkVideoDecodeCapabilitiesKHR(
41726                 vkStream, rootType,
41727                 reinterpret_cast<const VkVideoDecodeCapabilitiesKHR*>(structExtension));
41728             break;
41729         }
41730         case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
41731             marshal_VkVideoDecodeUsageInfoKHR(
41732                 vkStream, rootType,
41733                 reinterpret_cast<const VkVideoDecodeUsageInfoKHR*>(structExtension));
41734             break;
41735         }
41736 #endif
41737 #ifdef VK_KHR_video_decode_h264
41738         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
41739             marshal_VkVideoDecodeH264ProfileInfoKHR(
41740                 vkStream, rootType,
41741                 reinterpret_cast<const VkVideoDecodeH264ProfileInfoKHR*>(structExtension));
41742             break;
41743         }
41744         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
41745             marshal_VkVideoDecodeH264CapabilitiesKHR(
41746                 vkStream, rootType,
41747                 reinterpret_cast<const VkVideoDecodeH264CapabilitiesKHR*>(structExtension));
41748             break;
41749         }
41750         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
41751             marshal_VkVideoDecodeH264SessionParametersAddInfoKHR(
41752                 vkStream, rootType,
41753                 reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoKHR*>(
41754                     structExtension));
41755             break;
41756         }
41757         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
41758             marshal_VkVideoDecodeH264SessionParametersCreateInfoKHR(
41759                 vkStream, rootType,
41760                 reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoKHR*>(
41761                     structExtension));
41762             break;
41763         }
41764         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
41765             marshal_VkVideoDecodeH264PictureInfoKHR(
41766                 vkStream, rootType,
41767                 reinterpret_cast<const VkVideoDecodeH264PictureInfoKHR*>(structExtension));
41768             break;
41769         }
41770         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
41771             marshal_VkVideoDecodeH264DpbSlotInfoKHR(
41772                 vkStream, rootType,
41773                 reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoKHR*>(structExtension));
41774             break;
41775         }
41776 #endif
41777 #ifdef VK_KHR_dynamic_rendering
41778         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
41779             marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
41780                 vkStream, rootType,
41781                 reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
41782                     structExtension));
41783             break;
41784         }
41785         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
41786             marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
41787                 vkStream, rootType,
41788                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
41789                     structExtension));
41790             break;
41791         }
41792         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
41793             marshal_VkAttachmentSampleCountInfoAMD(
41794                 vkStream, rootType,
41795                 reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension));
41796             break;
41797         }
41798         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
41799             marshal_VkMultiviewPerViewAttributesInfoNVX(
41800                 vkStream, rootType,
41801                 reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension));
41802             break;
41803         }
41804 #endif
41805 #ifdef VK_KHR_external_memory_win32
41806         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
41807             marshal_VkImportMemoryWin32HandleInfoKHR(
41808                 vkStream, rootType,
41809                 reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(structExtension));
41810             break;
41811         }
41812         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
41813             marshal_VkExportMemoryWin32HandleInfoKHR(
41814                 vkStream, rootType,
41815                 reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(structExtension));
41816             break;
41817         }
41818 #endif
41819 #ifdef VK_KHR_external_memory_fd
41820         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: {
41821             marshal_VkImportMemoryFdInfoKHR(
41822                 vkStream, rootType,
41823                 reinterpret_cast<const VkImportMemoryFdInfoKHR*>(structExtension));
41824             break;
41825         }
41826 #endif
41827 #ifdef VK_KHR_win32_keyed_mutex
41828         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
41829             marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
41830                 vkStream, rootType,
41831                 reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension));
41832             break;
41833         }
41834 #endif
41835 #ifdef VK_KHR_external_semaphore_win32
41836         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: {
41837             marshal_VkExportSemaphoreWin32HandleInfoKHR(
41838                 vkStream, rootType,
41839                 reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(structExtension));
41840             break;
41841         }
41842         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: {
41843             marshal_VkD3D12FenceSubmitInfoKHR(
41844                 vkStream, rootType,
41845                 reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(structExtension));
41846             break;
41847         }
41848 #endif
41849 #ifdef VK_KHR_push_descriptor
41850         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
41851             marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
41852                 vkStream, rootType,
41853                 reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(
41854                     structExtension));
41855             break;
41856         }
41857 #endif
41858 #ifdef VK_KHR_incremental_present
41859         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
41860             marshal_VkPresentRegionsKHR(
41861                 vkStream, rootType, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension));
41862             break;
41863         }
41864 #endif
41865 #ifdef VK_KHR_shared_presentable_image
41866         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
41867             marshal_VkSharedPresentSurfaceCapabilitiesKHR(
41868                 vkStream, rootType,
41869                 reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension));
41870             break;
41871         }
41872 #endif
41873 #ifdef VK_KHR_external_fence_win32
41874         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
41875             marshal_VkExportFenceWin32HandleInfoKHR(
41876                 vkStream, rootType,
41877                 reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(structExtension));
41878             break;
41879         }
41880 #endif
41881 #ifdef VK_KHR_performance_query
41882         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
41883             marshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
41884                 vkStream, rootType,
41885                 reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(
41886                     structExtension));
41887             break;
41888         }
41889         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
41890             marshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
41891                 vkStream, rootType,
41892                 reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>(
41893                     structExtension));
41894             break;
41895         }
41896         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
41897             marshal_VkQueryPoolPerformanceCreateInfoKHR(
41898                 vkStream, rootType,
41899                 reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>(structExtension));
41900             break;
41901         }
41902         case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
41903             marshal_VkPerformanceQuerySubmitInfoKHR(
41904                 vkStream, rootType,
41905                 reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>(structExtension));
41906             break;
41907         }
41908 #endif
41909 #ifdef VK_KHR_portability_subset
41910 #ifdef VK_ENABLE_BETA_EXTENSIONS
41911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
41912             marshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
41913                 vkStream, rootType,
41914                 reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(
41915                     structExtension));
41916             break;
41917         }
41918 #endif  // VK_ENABLE_BETA_EXTENSIONS
41919 #ifdef VK_ENABLE_BETA_EXTENSIONS
41920         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
41921             marshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
41922                 vkStream, rootType,
41923                 reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(
41924                     structExtension));
41925             break;
41926         }
41927 #endif  // VK_ENABLE_BETA_EXTENSIONS
41928 #endif
41929 #ifdef VK_KHR_shader_clock
41930         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
41931             marshal_VkPhysicalDeviceShaderClockFeaturesKHR(
41932                 vkStream, rootType,
41933                 reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension));
41934             break;
41935         }
41936 #endif
41937 #ifdef VK_KHR_video_decode_h265
41938         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
41939             marshal_VkVideoDecodeH265ProfileInfoKHR(
41940                 vkStream, rootType,
41941                 reinterpret_cast<const VkVideoDecodeH265ProfileInfoKHR*>(structExtension));
41942             break;
41943         }
41944         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
41945             marshal_VkVideoDecodeH265CapabilitiesKHR(
41946                 vkStream, rootType,
41947                 reinterpret_cast<const VkVideoDecodeH265CapabilitiesKHR*>(structExtension));
41948             break;
41949         }
41950         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
41951             marshal_VkVideoDecodeH265SessionParametersAddInfoKHR(
41952                 vkStream, rootType,
41953                 reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoKHR*>(
41954                     structExtension));
41955             break;
41956         }
41957         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
41958             marshal_VkVideoDecodeH265SessionParametersCreateInfoKHR(
41959                 vkStream, rootType,
41960                 reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoKHR*>(
41961                     structExtension));
41962             break;
41963         }
41964         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
41965             marshal_VkVideoDecodeH265PictureInfoKHR(
41966                 vkStream, rootType,
41967                 reinterpret_cast<const VkVideoDecodeH265PictureInfoKHR*>(structExtension));
41968             break;
41969         }
41970         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
41971             marshal_VkVideoDecodeH265DpbSlotInfoKHR(
41972                 vkStream, rootType,
41973                 reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoKHR*>(structExtension));
41974             break;
41975         }
41976 #endif
41977 #ifdef VK_KHR_global_priority
41978         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
41979             marshal_VkDeviceQueueGlobalPriorityCreateInfoKHR(
41980                 vkStream, rootType,
41981                 reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoKHR*>(structExtension));
41982             break;
41983         }
41984         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
41985             marshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(
41986                 vkStream, rootType,
41987                 reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>(
41988                     structExtension));
41989             break;
41990         }
41991         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
41992             marshal_VkQueueFamilyGlobalPriorityPropertiesKHR(
41993                 vkStream, rootType,
41994                 reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesKHR*>(structExtension));
41995             break;
41996         }
41997 #endif
41998 #ifdef VK_KHR_fragment_shading_rate
41999         case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
42000             marshal_VkFragmentShadingRateAttachmentInfoKHR(
42001                 vkStream, rootType,
42002                 reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>(structExtension));
42003             break;
42004         }
42005         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
42006             marshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
42007                 vkStream, rootType,
42008                 reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>(
42009                     structExtension));
42010             break;
42011         }
42012         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
42013             marshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
42014                 vkStream, rootType,
42015                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(
42016                     structExtension));
42017             break;
42018         }
42019         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
42020             marshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
42021                 vkStream, rootType,
42022                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(
42023                     structExtension));
42024             break;
42025         }
42026 #endif
42027 #ifdef VK_KHR_surface_protected_capabilities
42028         case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
42029             marshal_VkSurfaceProtectedCapabilitiesKHR(
42030                 vkStream, rootType,
42031                 reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>(structExtension));
42032             break;
42033         }
42034 #endif
42035 #ifdef VK_KHR_present_wait
42036         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
42037             marshal_VkPhysicalDevicePresentWaitFeaturesKHR(
42038                 vkStream, rootType,
42039                 reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension));
42040             break;
42041         }
42042 #endif
42043 #ifdef VK_KHR_pipeline_executable_properties
42044         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
42045             marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
42046                 vkStream, rootType,
42047                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
42048                     structExtension));
42049             break;
42050         }
42051 #endif
42052 #ifdef VK_KHR_pipeline_library
42053         case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
42054             marshal_VkPipelineLibraryCreateInfoKHR(
42055                 vkStream, rootType,
42056                 reinterpret_cast<const VkPipelineLibraryCreateInfoKHR*>(structExtension));
42057             break;
42058         }
42059 #endif
42060 #ifdef VK_KHR_present_id
42061         case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
42062             marshal_VkPresentIdKHR(vkStream, rootType,
42063                                    reinterpret_cast<const VkPresentIdKHR*>(structExtension));
42064             break;
42065         }
42066         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
42067             marshal_VkPhysicalDevicePresentIdFeaturesKHR(
42068                 vkStream, rootType,
42069                 reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension));
42070             break;
42071         }
42072 #endif
42073 #ifdef VK_KHR_video_encode_queue
42074 #ifdef VK_ENABLE_BETA_EXTENSIONS
42075         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
42076             marshal_VkVideoEncodeCapabilitiesKHR(
42077                 vkStream, rootType,
42078                 reinterpret_cast<const VkVideoEncodeCapabilitiesKHR*>(structExtension));
42079             break;
42080         }
42081 #endif  // VK_ENABLE_BETA_EXTENSIONS
42082 #ifdef VK_ENABLE_BETA_EXTENSIONS
42083         case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
42084             marshal_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(
42085                 vkStream, rootType,
42086                 reinterpret_cast<const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR*>(
42087                     structExtension));
42088             break;
42089         }
42090 #endif  // VK_ENABLE_BETA_EXTENSIONS
42091 #ifdef VK_ENABLE_BETA_EXTENSIONS
42092         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
42093             marshal_VkVideoEncodeUsageInfoKHR(
42094                 vkStream, rootType,
42095                 reinterpret_cast<const VkVideoEncodeUsageInfoKHR*>(structExtension));
42096             break;
42097         }
42098 #endif  // VK_ENABLE_BETA_EXTENSIONS
42099 #ifdef VK_ENABLE_BETA_EXTENSIONS
42100         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: {
42101             marshal_VkVideoEncodeRateControlLayerInfoKHR(
42102                 vkStream, rootType,
42103                 reinterpret_cast<const VkVideoEncodeRateControlLayerInfoKHR*>(structExtension));
42104             break;
42105         }
42106 #endif  // VK_ENABLE_BETA_EXTENSIONS
42107 #ifdef VK_ENABLE_BETA_EXTENSIONS
42108         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
42109             marshal_VkVideoEncodeRateControlInfoKHR(
42110                 vkStream, rootType,
42111                 reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>(structExtension));
42112             break;
42113         }
42114 #endif  // VK_ENABLE_BETA_EXTENSIONS
42115 #endif
42116 #ifdef VK_KHR_synchronization2
42117         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
42118             marshal_VkQueueFamilyCheckpointProperties2NV(
42119                 vkStream, rootType,
42120                 reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension));
42121             break;
42122         }
42123 #endif
42124 #ifdef VK_KHR_fragment_shader_barycentric
42125         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
42126             marshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(
42127                 vkStream, rootType,
42128                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>(
42129                     structExtension));
42130             break;
42131         }
42132         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
42133             marshal_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(
42134                 vkStream, rootType,
42135                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR*>(
42136                     structExtension));
42137             break;
42138         }
42139 #endif
42140 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
42141         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
42142             marshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
42143                 vkStream, rootType,
42144                 reinterpret_cast<
42145                     const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(
42146                     structExtension));
42147             break;
42148         }
42149 #endif
42150 #ifdef VK_KHR_workgroup_memory_explicit_layout
42151         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
42152             marshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
42153                 vkStream, rootType,
42154                 reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(
42155                     structExtension));
42156             break;
42157         }
42158 #endif
42159 #ifdef VK_KHR_ray_tracing_maintenance1
42160         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
42161             marshal_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(
42162                 vkStream, rootType,
42163                 reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>(
42164                     structExtension));
42165             break;
42166         }
42167 #endif
42168 #ifdef VK_KHR_ray_tracing_position_fetch
42169         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
42170             marshal_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(
42171                 vkStream, rootType,
42172                 reinterpret_cast<const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR*>(
42173                     structExtension));
42174             break;
42175         }
42176 #endif
42177 #ifdef VK_ANDROID_native_buffer
42178         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
42179             marshal_VkNativeBufferANDROID(
42180                 vkStream, rootType,
42181                 reinterpret_cast<const VkNativeBufferANDROID*>(structExtension));
42182             break;
42183         }
42184 #endif
42185 #ifdef VK_EXT_debug_report
42186         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
42187             marshal_VkDebugReportCallbackCreateInfoEXT(
42188                 vkStream, rootType,
42189                 reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(structExtension));
42190             break;
42191         }
42192 #endif
42193 #ifdef VK_AMD_rasterization_order
42194         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
42195             marshal_VkPipelineRasterizationStateRasterizationOrderAMD(
42196                 vkStream, rootType,
42197                 reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(
42198                     structExtension));
42199             break;
42200         }
42201 #endif
42202 #ifdef VK_NV_dedicated_allocation
42203         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
42204             marshal_VkDedicatedAllocationImageCreateInfoNV(
42205                 vkStream, rootType,
42206                 reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(structExtension));
42207             break;
42208         }
42209         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
42210             marshal_VkDedicatedAllocationBufferCreateInfoNV(
42211                 vkStream, rootType,
42212                 reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(structExtension));
42213             break;
42214         }
42215         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
42216             marshal_VkDedicatedAllocationMemoryAllocateInfoNV(
42217                 vkStream, rootType,
42218                 reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(
42219                     structExtension));
42220             break;
42221         }
42222 #endif
42223 #ifdef VK_EXT_transform_feedback
42224         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
42225             marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
42226                 vkStream, rootType,
42227                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
42228                     structExtension));
42229             break;
42230         }
42231         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
42232             marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
42233                 vkStream, rootType,
42234                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
42235                     structExtension));
42236             break;
42237         }
42238         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
42239             marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
42240                 vkStream, rootType,
42241                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
42242                     structExtension));
42243             break;
42244         }
42245 #endif
42246 #ifdef VK_EXT_video_encode_h264
42247 #ifdef VK_ENABLE_BETA_EXTENSIONS
42248         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
42249             marshal_VkVideoEncodeH264CapabilitiesEXT(
42250                 vkStream, rootType,
42251                 reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>(structExtension));
42252             break;
42253         }
42254 #endif  // VK_ENABLE_BETA_EXTENSIONS
42255 #ifdef VK_ENABLE_BETA_EXTENSIONS
42256         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
42257             marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
42258                 vkStream, rootType,
42259                 reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>(
42260                     structExtension));
42261             break;
42262         }
42263 #endif  // VK_ENABLE_BETA_EXTENSIONS
42264 #ifdef VK_ENABLE_BETA_EXTENSIONS
42265         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
42266             marshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
42267                 vkStream, rootType,
42268                 reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>(
42269                     structExtension));
42270             break;
42271         }
42272 #endif  // VK_ENABLE_BETA_EXTENSIONS
42273 #ifdef VK_ENABLE_BETA_EXTENSIONS
42274         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: {
42275             marshal_VkVideoEncodeH264VclFrameInfoEXT(
42276                 vkStream, rootType,
42277                 reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT*>(structExtension));
42278             break;
42279         }
42280 #endif  // VK_ENABLE_BETA_EXTENSIONS
42281 #ifdef VK_ENABLE_BETA_EXTENSIONS
42282         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
42283             marshal_VkVideoEncodeH264DpbSlotInfoEXT(
42284                 vkStream, rootType,
42285                 reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoEXT*>(structExtension));
42286             break;
42287         }
42288 #endif  // VK_ENABLE_BETA_EXTENSIONS
42289 #ifdef VK_ENABLE_BETA_EXTENSIONS
42290         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
42291             marshal_VkVideoEncodeH264ProfileInfoEXT(
42292                 vkStream, rootType,
42293                 reinterpret_cast<const VkVideoEncodeH264ProfileInfoEXT*>(structExtension));
42294             break;
42295         }
42296 #endif  // VK_ENABLE_BETA_EXTENSIONS
42297 #ifdef VK_ENABLE_BETA_EXTENSIONS
42298         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
42299             marshal_VkVideoEncodeH264RateControlInfoEXT(
42300                 vkStream, rootType,
42301                 reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT*>(structExtension));
42302             break;
42303         }
42304 #endif  // VK_ENABLE_BETA_EXTENSIONS
42305 #ifdef VK_ENABLE_BETA_EXTENSIONS
42306         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
42307             marshal_VkVideoEncodeH264RateControlLayerInfoEXT(
42308                 vkStream, rootType,
42309                 reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT*>(structExtension));
42310             break;
42311         }
42312 #endif  // VK_ENABLE_BETA_EXTENSIONS
42313 #endif
42314 #ifdef VK_EXT_video_encode_h265
42315 #ifdef VK_ENABLE_BETA_EXTENSIONS
42316         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
42317             marshal_VkVideoEncodeH265CapabilitiesEXT(
42318                 vkStream, rootType,
42319                 reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>(structExtension));
42320             break;
42321         }
42322 #endif  // VK_ENABLE_BETA_EXTENSIONS
42323 #ifdef VK_ENABLE_BETA_EXTENSIONS
42324         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
42325             marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
42326                 vkStream, rootType,
42327                 reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>(
42328                     structExtension));
42329             break;
42330         }
42331 #endif  // VK_ENABLE_BETA_EXTENSIONS
42332 #ifdef VK_ENABLE_BETA_EXTENSIONS
42333         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
42334             marshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
42335                 vkStream, rootType,
42336                 reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>(
42337                     structExtension));
42338             break;
42339         }
42340 #endif  // VK_ENABLE_BETA_EXTENSIONS
42341 #ifdef VK_ENABLE_BETA_EXTENSIONS
42342         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: {
42343             marshal_VkVideoEncodeH265VclFrameInfoEXT(
42344                 vkStream, rootType,
42345                 reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT*>(structExtension));
42346             break;
42347         }
42348 #endif  // VK_ENABLE_BETA_EXTENSIONS
42349 #ifdef VK_ENABLE_BETA_EXTENSIONS
42350         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
42351             marshal_VkVideoEncodeH265DpbSlotInfoEXT(
42352                 vkStream, rootType,
42353                 reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoEXT*>(structExtension));
42354             break;
42355         }
42356 #endif  // VK_ENABLE_BETA_EXTENSIONS
42357 #ifdef VK_ENABLE_BETA_EXTENSIONS
42358         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
42359             marshal_VkVideoEncodeH265ProfileInfoEXT(
42360                 vkStream, rootType,
42361                 reinterpret_cast<const VkVideoEncodeH265ProfileInfoEXT*>(structExtension));
42362             break;
42363         }
42364 #endif  // VK_ENABLE_BETA_EXTENSIONS
42365 #ifdef VK_ENABLE_BETA_EXTENSIONS
42366         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
42367             marshal_VkVideoEncodeH265RateControlInfoEXT(
42368                 vkStream, rootType,
42369                 reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT*>(structExtension));
42370             break;
42371         }
42372 #endif  // VK_ENABLE_BETA_EXTENSIONS
42373 #ifdef VK_ENABLE_BETA_EXTENSIONS
42374         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
42375             marshal_VkVideoEncodeH265RateControlLayerInfoEXT(
42376                 vkStream, rootType,
42377                 reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT*>(structExtension));
42378             break;
42379         }
42380 #endif  // VK_ENABLE_BETA_EXTENSIONS
42381 #endif
42382 #ifdef VK_AMD_texture_gather_bias_lod
42383         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
42384             marshal_VkTextureLODGatherFormatPropertiesAMD(
42385                 vkStream, rootType,
42386                 reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(structExtension));
42387             break;
42388         }
42389 #endif
42390 #ifdef VK_NV_corner_sampled_image
42391         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
42392             marshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
42393                 vkStream, rootType,
42394                 reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(
42395                     structExtension));
42396             break;
42397         }
42398 #endif
42399 #ifdef VK_NV_external_memory
42400         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
42401             marshal_VkExternalMemoryImageCreateInfoNV(
42402                 vkStream, rootType,
42403                 reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(structExtension));
42404             break;
42405         }
42406         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
42407             marshal_VkExportMemoryAllocateInfoNV(
42408                 vkStream, rootType,
42409                 reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(structExtension));
42410             break;
42411         }
42412 #endif
42413 #ifdef VK_NV_external_memory_win32
42414         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
42415             marshal_VkImportMemoryWin32HandleInfoNV(
42416                 vkStream, rootType,
42417                 reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(structExtension));
42418             break;
42419         }
42420         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
42421             marshal_VkExportMemoryWin32HandleInfoNV(
42422                 vkStream, rootType,
42423                 reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(structExtension));
42424             break;
42425         }
42426 #endif
42427 #ifdef VK_NV_win32_keyed_mutex
42428         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
42429             marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
42430                 vkStream, rootType,
42431                 reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension));
42432             break;
42433         }
42434 #endif
42435 #ifdef VK_EXT_validation_flags
42436         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
42437             marshal_VkValidationFlagsEXT(
42438                 vkStream, rootType, reinterpret_cast<const VkValidationFlagsEXT*>(structExtension));
42439             break;
42440         }
42441 #endif
42442 #ifdef VK_EXT_astc_decode_mode
42443         case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
42444             marshal_VkImageViewASTCDecodeModeEXT(
42445                 vkStream, rootType,
42446                 reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(structExtension));
42447             break;
42448         }
42449         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
42450             marshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
42451                 vkStream, rootType,
42452                 reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension));
42453             break;
42454         }
42455 #endif
42456 #ifdef VK_EXT_pipeline_robustness
42457         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
42458             marshal_VkPhysicalDevicePipelineRobustnessFeaturesEXT(
42459                 vkStream, rootType,
42460                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT*>(
42461                     structExtension));
42462             break;
42463         }
42464         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
42465             marshal_VkPhysicalDevicePipelineRobustnessPropertiesEXT(
42466                 vkStream, rootType,
42467                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessPropertiesEXT*>(
42468                     structExtension));
42469             break;
42470         }
42471         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
42472             marshal_VkPipelineRobustnessCreateInfoEXT(
42473                 vkStream, rootType,
42474                 reinterpret_cast<const VkPipelineRobustnessCreateInfoEXT*>(structExtension));
42475             break;
42476         }
42477 #endif
42478 #ifdef VK_EXT_conditional_rendering
42479         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
42480             marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
42481                 vkStream, rootType,
42482                 reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(
42483                     structExtension));
42484             break;
42485         }
42486         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
42487             marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
42488                 vkStream, rootType,
42489                 reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(
42490                     structExtension));
42491             break;
42492         }
42493 #endif
42494 #ifdef VK_NV_clip_space_w_scaling
42495         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
42496             marshal_VkPipelineViewportWScalingStateCreateInfoNV(
42497                 vkStream, rootType,
42498                 reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(
42499                     structExtension));
42500             break;
42501         }
42502 #endif
42503 #ifdef VK_EXT_display_control
42504         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
42505             marshal_VkSwapchainCounterCreateInfoEXT(
42506                 vkStream, rootType,
42507                 reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(structExtension));
42508             break;
42509         }
42510 #endif
42511 #ifdef VK_GOOGLE_display_timing
42512         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
42513             marshal_VkPresentTimesInfoGOOGLE(
42514                 vkStream, rootType,
42515                 reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(structExtension));
42516             break;
42517         }
42518 #endif
42519 #ifdef VK_NVX_multiview_per_view_attributes
42520         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
42521             marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
42522                 vkStream, rootType,
42523                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(
42524                     structExtension));
42525             break;
42526         }
42527 #endif
42528 #ifdef VK_NV_viewport_swizzle
42529         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
42530             marshal_VkPipelineViewportSwizzleStateCreateInfoNV(
42531                 vkStream, rootType,
42532                 reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(
42533                     structExtension));
42534             break;
42535         }
42536 #endif
42537 #ifdef VK_EXT_discard_rectangles
42538         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
42539             marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
42540                 vkStream, rootType,
42541                 reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(
42542                     structExtension));
42543             break;
42544         }
42545         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
42546             marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
42547                 vkStream, rootType,
42548                 reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(
42549                     structExtension));
42550             break;
42551         }
42552 #endif
42553 #ifdef VK_EXT_conservative_rasterization
42554         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
42555             marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
42556                 vkStream, rootType,
42557                 reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(
42558                     structExtension));
42559             break;
42560         }
42561         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
42562             marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
42563                 vkStream, rootType,
42564                 reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(
42565                     structExtension));
42566             break;
42567         }
42568 #endif
42569 #ifdef VK_EXT_depth_clip_enable
42570         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
42571             marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
42572                 vkStream, rootType,
42573                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
42574                     structExtension));
42575             break;
42576         }
42577         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
42578             marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
42579                 vkStream, rootType,
42580                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
42581                     structExtension));
42582             break;
42583         }
42584 #endif
42585 #ifdef VK_EXT_debug_utils
42586         case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
42587             marshal_VkDebugUtilsObjectNameInfoEXT(
42588                 vkStream, rootType,
42589                 reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>(structExtension));
42590             break;
42591         }
42592         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
42593             marshal_VkDebugUtilsMessengerCreateInfoEXT(
42594                 vkStream, rootType,
42595                 reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(structExtension));
42596             break;
42597         }
42598 #endif
42599 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
42600         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: {
42601             marshal_VkAndroidHardwareBufferUsageANDROID(
42602                 vkStream, rootType,
42603                 reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(structExtension));
42604             break;
42605         }
42606         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: {
42607             marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
42608                 vkStream, rootType,
42609                 reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(
42610                     structExtension));
42611             break;
42612         }
42613         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: {
42614             marshal_VkImportAndroidHardwareBufferInfoANDROID(
42615                 vkStream, rootType,
42616                 reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(structExtension));
42617             break;
42618         }
42619         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: {
42620             marshal_VkExternalFormatANDROID(
42621                 vkStream, rootType,
42622                 reinterpret_cast<const VkExternalFormatANDROID*>(structExtension));
42623             break;
42624         }
42625         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: {
42626             marshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
42627                 vkStream, rootType,
42628                 reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>(
42629                     structExtension));
42630             break;
42631         }
42632 #endif
42633 #ifdef VK_EXT_sample_locations
42634         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
42635             marshal_VkSampleLocationsInfoEXT(
42636                 vkStream, rootType,
42637                 reinterpret_cast<const VkSampleLocationsInfoEXT*>(structExtension));
42638             break;
42639         }
42640         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
42641             marshal_VkRenderPassSampleLocationsBeginInfoEXT(
42642                 vkStream, rootType,
42643                 reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension));
42644             break;
42645         }
42646         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
42647             marshal_VkPipelineSampleLocationsStateCreateInfoEXT(
42648                 vkStream, rootType,
42649                 reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(
42650                     structExtension));
42651             break;
42652         }
42653         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
42654             marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
42655                 vkStream, rootType,
42656                 reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(
42657                     structExtension));
42658             break;
42659         }
42660 #endif
42661 #ifdef VK_EXT_blend_operation_advanced
42662         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
42663             marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
42664                 vkStream, rootType,
42665                 reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(
42666                     structExtension));
42667             break;
42668         }
42669         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
42670             marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
42671                 vkStream, rootType,
42672                 reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(
42673                     structExtension));
42674             break;
42675         }
42676         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
42677             marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
42678                 vkStream, rootType,
42679                 reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(
42680                     structExtension));
42681             break;
42682         }
42683 #endif
42684 #ifdef VK_NV_fragment_coverage_to_color
42685         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
42686             marshal_VkPipelineCoverageToColorStateCreateInfoNV(
42687                 vkStream, rootType,
42688                 reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(
42689                     structExtension));
42690             break;
42691         }
42692 #endif
42693 #ifdef VK_NV_framebuffer_mixed_samples
42694         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
42695             marshal_VkPipelineCoverageModulationStateCreateInfoNV(
42696                 vkStream, rootType,
42697                 reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(
42698                     structExtension));
42699             break;
42700         }
42701 #endif
42702 #ifdef VK_NV_shader_sm_builtins
42703         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
42704             marshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
42705                 vkStream, rootType,
42706                 reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(
42707                     structExtension));
42708             break;
42709         }
42710         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
42711             marshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
42712                 vkStream, rootType,
42713                 reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(
42714                     structExtension));
42715             break;
42716         }
42717 #endif
42718 #ifdef VK_EXT_image_drm_format_modifier
42719         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
42720             marshal_VkDrmFormatModifierPropertiesListEXT(
42721                 vkStream, rootType,
42722                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension));
42723             break;
42724         }
42725         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
42726             marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
42727                 vkStream, rootType,
42728                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
42729                     structExtension));
42730             break;
42731         }
42732         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
42733             marshal_VkImageDrmFormatModifierListCreateInfoEXT(
42734                 vkStream, rootType,
42735                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(
42736                     structExtension));
42737             break;
42738         }
42739         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
42740             marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
42741                 vkStream, rootType,
42742                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
42743                     structExtension));
42744             break;
42745         }
42746         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
42747             marshal_VkDrmFormatModifierPropertiesList2EXT(
42748                 vkStream, rootType,
42749                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension));
42750             break;
42751         }
42752 #endif
42753 #ifdef VK_EXT_validation_cache
42754         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
42755             marshal_VkShaderModuleValidationCacheCreateInfoEXT(
42756                 vkStream, rootType,
42757                 reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(
42758                     structExtension));
42759             break;
42760         }
42761 #endif
42762 #ifdef VK_NV_shading_rate_image
42763         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
42764             marshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
42765                 vkStream, rootType,
42766                 reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(
42767                     structExtension));
42768             break;
42769         }
42770         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
42771             marshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
42772                 vkStream, rootType,
42773                 reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(
42774                     structExtension));
42775             break;
42776         }
42777         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
42778             marshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
42779                 vkStream, rootType,
42780                 reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(
42781                     structExtension));
42782             break;
42783         }
42784         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
42785             marshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
42786                 vkStream, rootType,
42787                 reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(
42788                     structExtension));
42789             break;
42790         }
42791 #endif
42792 #ifdef VK_NV_ray_tracing
42793         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
42794             marshal_VkWriteDescriptorSetAccelerationStructureNV(
42795                 vkStream, rootType,
42796                 reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>(
42797                     structExtension));
42798             break;
42799         }
42800         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
42801             marshal_VkPhysicalDeviceRayTracingPropertiesNV(
42802                 vkStream, rootType,
42803                 reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension));
42804             break;
42805         }
42806 #endif
42807 #ifdef VK_NV_representative_fragment_test
42808         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
42809             marshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
42810                 vkStream, rootType,
42811                 reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(
42812                     structExtension));
42813             break;
42814         }
42815         case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
42816             marshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
42817                 vkStream, rootType,
42818                 reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(
42819                     structExtension));
42820             break;
42821         }
42822 #endif
42823 #ifdef VK_EXT_filter_cubic
42824         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
42825             marshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
42826                 vkStream, rootType,
42827                 reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>(
42828                     structExtension));
42829             break;
42830         }
42831         case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
42832             marshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
42833                 vkStream, rootType,
42834                 reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>(
42835                     structExtension));
42836             break;
42837         }
42838 #endif
42839 #ifdef VK_EXT_external_memory_host
42840         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
42841             marshal_VkImportMemoryHostPointerInfoEXT(
42842                 vkStream, rootType,
42843                 reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(structExtension));
42844             break;
42845         }
42846         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
42847             marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
42848                 vkStream, rootType,
42849                 reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(
42850                     structExtension));
42851             break;
42852         }
42853 #endif
42854 #ifdef VK_AMD_pipeline_compiler_control
42855         case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
42856             marshal_VkPipelineCompilerControlCreateInfoAMD(
42857                 vkStream, rootType,
42858                 reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>(structExtension));
42859             break;
42860         }
42861 #endif
42862 #ifdef VK_AMD_shader_core_properties
42863         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
42864             marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
42865                 vkStream, rootType,
42866                 reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension));
42867             break;
42868         }
42869 #endif
42870 #ifdef VK_AMD_memory_overallocation_behavior
42871         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
42872             marshal_VkDeviceMemoryOverallocationCreateInfoAMD(
42873                 vkStream, rootType,
42874                 reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>(
42875                     structExtension));
42876             break;
42877         }
42878 #endif
42879 #ifdef VK_EXT_vertex_attribute_divisor
42880         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
42881             marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
42882                 vkStream, rootType,
42883                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
42884                     structExtension));
42885             break;
42886         }
42887         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
42888             marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
42889                 vkStream, rootType,
42890                 reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(
42891                     structExtension));
42892             break;
42893         }
42894         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
42895             marshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
42896                 vkStream, rootType,
42897                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(
42898                     structExtension));
42899             break;
42900         }
42901 #endif
42902 #ifdef VK_GGP_frame_token
42903         case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
42904             marshal_VkPresentFrameTokenGGP(
42905                 vkStream, rootType,
42906                 reinterpret_cast<const VkPresentFrameTokenGGP*>(structExtension));
42907             break;
42908         }
42909 #endif
42910 #ifdef VK_NV_compute_shader_derivatives
42911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
42912             marshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
42913                 vkStream, rootType,
42914                 reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(
42915                     structExtension));
42916             break;
42917         }
42918 #endif
42919 #ifdef VK_NV_mesh_shader
42920         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
42921             marshal_VkPhysicalDeviceMeshShaderFeaturesNV(
42922                 vkStream, rootType,
42923                 reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension));
42924             break;
42925         }
42926         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
42927             marshal_VkPhysicalDeviceMeshShaderPropertiesNV(
42928                 vkStream, rootType,
42929                 reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension));
42930             break;
42931         }
42932 #endif
42933 #ifdef VK_NV_shader_image_footprint
42934         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
42935             marshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
42936                 vkStream, rootType,
42937                 reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(
42938                     structExtension));
42939             break;
42940         }
42941 #endif
42942 #ifdef VK_NV_scissor_exclusive
42943         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
42944             marshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
42945                 vkStream, rootType,
42946                 reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(
42947                     structExtension));
42948             break;
42949         }
42950         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
42951             marshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
42952                 vkStream, rootType,
42953                 reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(
42954                     structExtension));
42955             break;
42956         }
42957 #endif
42958 #ifdef VK_NV_device_diagnostic_checkpoints
42959         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: {
42960             marshal_VkQueueFamilyCheckpointPropertiesNV(
42961                 vkStream, rootType,
42962                 reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(structExtension));
42963             break;
42964         }
42965 #endif
42966 #ifdef VK_INTEL_shader_integer_functions2
42967         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
42968             marshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
42969                 vkStream, rootType,
42970                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(
42971                     structExtension));
42972             break;
42973         }
42974 #endif
42975 #ifdef VK_INTEL_performance_query
42976         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
42977             marshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
42978                 vkStream, rootType,
42979                 reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>(
42980                     structExtension));
42981             break;
42982         }
42983 #endif
42984 #ifdef VK_EXT_pci_bus_info
42985         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
42986             marshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
42987                 vkStream, rootType,
42988                 reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension));
42989             break;
42990         }
42991 #endif
42992 #ifdef VK_AMD_display_native_hdr
42993         case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
42994             marshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
42995                 vkStream, rootType,
42996                 reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension));
42997             break;
42998         }
42999         case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
43000             marshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
43001                 vkStream, rootType,
43002                 reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension));
43003             break;
43004         }
43005 #endif
43006 #ifdef VK_EXT_fragment_density_map
43007         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
43008             switch (rootType) {
43009                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
43010                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
43011                         vkStream, rootType,
43012                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
43013                             structExtension));
43014                     break;
43015                 }
43016                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
43017                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
43018                         vkStream, rootType,
43019                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
43020                             structExtension));
43021                     break;
43022                 }
43023                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
43024                     marshal_VkImportColorBufferGOOGLE(
43025                         vkStream, rootType,
43026                         reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
43027                     break;
43028                 }
43029                 default: {
43030                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
43031                         vkStream, rootType,
43032                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
43033                             structExtension));
43034                     break;
43035                 }
43036             }
43037             break;
43038         }
43039         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
43040             switch (rootType) {
43041                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
43042                     marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
43043                         vkStream, rootType,
43044                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
43045                             structExtension));
43046                     break;
43047                 }
43048                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
43049                     marshal_VkCreateBlobGOOGLE(
43050                         vkStream, rootType,
43051                         reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension));
43052                     break;
43053                 }
43054                 default: {
43055                     marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
43056                         vkStream, rootType,
43057                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
43058                             structExtension));
43059                     break;
43060                 }
43061             }
43062             break;
43063         }
43064         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
43065             switch (rootType) {
43066                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
43067                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
43068                         vkStream, rootType,
43069                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
43070                             structExtension));
43071                     break;
43072                 }
43073                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
43074                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
43075                         vkStream, rootType,
43076                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
43077                             structExtension));
43078                     break;
43079                 }
43080                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
43081                     marshal_VkImportBufferGOOGLE(
43082                         vkStream, rootType,
43083                         reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension));
43084                     break;
43085                 }
43086                 default: {
43087                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
43088                         vkStream, rootType,
43089                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
43090                             structExtension));
43091                     break;
43092                 }
43093             }
43094             break;
43095         }
43096 #endif
43097 #ifdef VK_AMD_shader_core_properties2
43098         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
43099             marshal_VkPhysicalDeviceShaderCoreProperties2AMD(
43100                 vkStream, rootType,
43101                 reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension));
43102             break;
43103         }
43104 #endif
43105 #ifdef VK_AMD_device_coherent_memory
43106         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
43107             marshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
43108                 vkStream, rootType,
43109                 reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(
43110                     structExtension));
43111             break;
43112         }
43113 #endif
43114 #ifdef VK_EXT_shader_image_atomic_int64
43115         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
43116             marshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
43117                 vkStream, rootType,
43118                 reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(
43119                     structExtension));
43120             break;
43121         }
43122 #endif
43123 #ifdef VK_EXT_memory_budget
43124         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
43125             marshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
43126                 vkStream, rootType,
43127                 reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(
43128                     structExtension));
43129             break;
43130         }
43131 #endif
43132 #ifdef VK_EXT_memory_priority
43133         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
43134             marshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
43135                 vkStream, rootType,
43136                 reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(
43137                     structExtension));
43138             break;
43139         }
43140         case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
43141             marshal_VkMemoryPriorityAllocateInfoEXT(
43142                 vkStream, rootType,
43143                 reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>(structExtension));
43144             break;
43145         }
43146 #endif
43147 #ifdef VK_NV_dedicated_allocation_image_aliasing
43148         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
43149             marshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
43150                 vkStream, rootType,
43151                 reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(
43152                     structExtension));
43153             break;
43154         }
43155 #endif
43156 #ifdef VK_EXT_buffer_device_address
43157         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
43158             marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
43159                 vkStream, rootType,
43160                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(
43161                     structExtension));
43162             break;
43163         }
43164         case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
43165             marshal_VkBufferDeviceAddressCreateInfoEXT(
43166                 vkStream, rootType,
43167                 reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>(structExtension));
43168             break;
43169         }
43170 #endif
43171 #ifdef VK_EXT_validation_features
43172         case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
43173             marshal_VkValidationFeaturesEXT(
43174                 vkStream, rootType,
43175                 reinterpret_cast<const VkValidationFeaturesEXT*>(structExtension));
43176             break;
43177         }
43178 #endif
43179 #ifdef VK_NV_cooperative_matrix
43180         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
43181             marshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
43182                 vkStream, rootType,
43183                 reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(
43184                     structExtension));
43185             break;
43186         }
43187         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
43188             marshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
43189                 vkStream, rootType,
43190                 reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(
43191                     structExtension));
43192             break;
43193         }
43194 #endif
43195 #ifdef VK_NV_coverage_reduction_mode
43196         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
43197             marshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
43198                 vkStream, rootType,
43199                 reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(
43200                     structExtension));
43201             break;
43202         }
43203         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
43204             marshal_VkPipelineCoverageReductionStateCreateInfoNV(
43205                 vkStream, rootType,
43206                 reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>(
43207                     structExtension));
43208             break;
43209         }
43210 #endif
43211 #ifdef VK_EXT_fragment_shader_interlock
43212         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
43213             marshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
43214                 vkStream, rootType,
43215                 reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(
43216                     structExtension));
43217             break;
43218         }
43219 #endif
43220 #ifdef VK_EXT_ycbcr_image_arrays
43221         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
43222             marshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
43223                 vkStream, rootType,
43224                 reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(
43225                     structExtension));
43226             break;
43227         }
43228 #endif
43229 #ifdef VK_EXT_provoking_vertex
43230         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
43231             marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
43232                 vkStream, rootType,
43233                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
43234                     structExtension));
43235             break;
43236         }
43237         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
43238             marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
43239                 vkStream, rootType,
43240                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
43241                     structExtension));
43242             break;
43243         }
43244         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
43245             marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
43246                 vkStream, rootType,
43247                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
43248                     structExtension));
43249             break;
43250         }
43251 #endif
43252 #ifdef VK_EXT_full_screen_exclusive
43253         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
43254             marshal_VkSurfaceFullScreenExclusiveInfoEXT(
43255                 vkStream, rootType,
43256                 reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension));
43257             break;
43258         }
43259         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
43260             marshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
43261                 vkStream, rootType,
43262                 reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(
43263                     structExtension));
43264             break;
43265         }
43266         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
43267             marshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
43268                 vkStream, rootType,
43269                 reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension));
43270             break;
43271         }
43272 #endif
43273 #ifdef VK_EXT_line_rasterization
43274         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: {
43275             marshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
43276                 vkStream, rootType,
43277                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(
43278                     structExtension));
43279             break;
43280         }
43281         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: {
43282             marshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
43283                 vkStream, rootType,
43284                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(
43285                     structExtension));
43286             break;
43287         }
43288         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: {
43289             marshal_VkPipelineRasterizationLineStateCreateInfoEXT(
43290                 vkStream, rootType,
43291                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(
43292                     structExtension));
43293             break;
43294         }
43295 #endif
43296 #ifdef VK_EXT_shader_atomic_float
43297         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
43298             marshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
43299                 vkStream, rootType,
43300                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(
43301                     structExtension));
43302             break;
43303         }
43304 #endif
43305 #ifdef VK_EXT_index_type_uint8
43306         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
43307             marshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
43308                 vkStream, rootType,
43309                 reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(
43310                     structExtension));
43311             break;
43312         }
43313 #endif
43314 #ifdef VK_EXT_extended_dynamic_state
43315         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
43316             marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
43317                 vkStream, rootType,
43318                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
43319                     structExtension));
43320             break;
43321         }
43322 #endif
43323 #ifdef VK_EXT_shader_atomic_float2
43324         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
43325             marshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
43326                 vkStream, rootType,
43327                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(
43328                     structExtension));
43329             break;
43330         }
43331 #endif
43332 #ifdef VK_EXT_surface_maintenance1
43333         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
43334             marshal_VkSurfacePresentModeEXT(
43335                 vkStream, rootType,
43336                 reinterpret_cast<const VkSurfacePresentModeEXT*>(structExtension));
43337             break;
43338         }
43339         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
43340             marshal_VkSurfacePresentScalingCapabilitiesEXT(
43341                 vkStream, rootType,
43342                 reinterpret_cast<const VkSurfacePresentScalingCapabilitiesEXT*>(structExtension));
43343             break;
43344         }
43345         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
43346             marshal_VkSurfacePresentModeCompatibilityEXT(
43347                 vkStream, rootType,
43348                 reinterpret_cast<const VkSurfacePresentModeCompatibilityEXT*>(structExtension));
43349             break;
43350         }
43351 #endif
43352 #ifdef VK_EXT_swapchain_maintenance1
43353         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
43354             marshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
43355                 vkStream, rootType,
43356                 reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
43357                     structExtension));
43358             break;
43359         }
43360         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
43361             marshal_VkSwapchainPresentFenceInfoEXT(
43362                 vkStream, rootType,
43363                 reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension));
43364             break;
43365         }
43366         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
43367             marshal_VkSwapchainPresentModesCreateInfoEXT(
43368                 vkStream, rootType,
43369                 reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension));
43370             break;
43371         }
43372         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
43373             marshal_VkSwapchainPresentModeInfoEXT(
43374                 vkStream, rootType,
43375                 reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension));
43376             break;
43377         }
43378         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
43379             marshal_VkSwapchainPresentScalingCreateInfoEXT(
43380                 vkStream, rootType,
43381                 reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension));
43382             break;
43383         }
43384 #endif
43385 #ifdef VK_NV_device_generated_commands
43386         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
43387             marshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
43388                 vkStream, rootType,
43389                 reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(
43390                     structExtension));
43391             break;
43392         }
43393         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
43394             marshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
43395                 vkStream, rootType,
43396                 reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(
43397                     structExtension));
43398             break;
43399         }
43400         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
43401             marshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
43402                 vkStream, rootType,
43403                 reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>(
43404                     structExtension));
43405             break;
43406         }
43407 #endif
43408 #ifdef VK_NV_inherited_viewport_scissor
43409         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
43410             marshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
43411                 vkStream, rootType,
43412                 reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(
43413                     structExtension));
43414             break;
43415         }
43416         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
43417             marshal_VkCommandBufferInheritanceViewportScissorInfoNV(
43418                 vkStream, rootType,
43419                 reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>(
43420                     structExtension));
43421             break;
43422         }
43423 #endif
43424 #ifdef VK_EXT_texel_buffer_alignment
43425         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
43426             marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
43427                 vkStream, rootType,
43428                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
43429                     structExtension));
43430             break;
43431         }
43432 #endif
43433 #ifdef VK_QCOM_render_pass_transform
43434         case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
43435             marshal_VkRenderPassTransformBeginInfoQCOM(
43436                 vkStream, rootType,
43437                 reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>(structExtension));
43438             break;
43439         }
43440         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
43441             marshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
43442                 vkStream, rootType,
43443                 reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(
43444                     structExtension));
43445             break;
43446         }
43447 #endif
43448 #ifdef VK_EXT_device_memory_report
43449         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
43450             marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
43451                 vkStream, rootType,
43452                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
43453                     structExtension));
43454             break;
43455         }
43456         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
43457             marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
43458                 vkStream, rootType,
43459                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension));
43460             break;
43461         }
43462 #endif
43463 #ifdef VK_EXT_robustness2
43464         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
43465             marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
43466                 vkStream, rootType,
43467                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension));
43468             break;
43469         }
43470         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
43471             marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
43472                 vkStream, rootType,
43473                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension));
43474             break;
43475         }
43476 #endif
43477 #ifdef VK_EXT_custom_border_color
43478         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
43479             marshal_VkSamplerCustomBorderColorCreateInfoEXT(
43480                 vkStream, rootType,
43481                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension));
43482             break;
43483         }
43484         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
43485             marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
43486                 vkStream, rootType,
43487                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
43488                     structExtension));
43489             break;
43490         }
43491         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
43492             marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
43493                 vkStream, rootType,
43494                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
43495                     structExtension));
43496             break;
43497         }
43498 #endif
43499 #ifdef VK_NV_present_barrier
43500         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
43501             marshal_VkPhysicalDevicePresentBarrierFeaturesNV(
43502                 vkStream, rootType,
43503                 reinterpret_cast<const VkPhysicalDevicePresentBarrierFeaturesNV*>(structExtension));
43504             break;
43505         }
43506         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
43507             marshal_VkSurfaceCapabilitiesPresentBarrierNV(
43508                 vkStream, rootType,
43509                 reinterpret_cast<const VkSurfaceCapabilitiesPresentBarrierNV*>(structExtension));
43510             break;
43511         }
43512         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
43513             marshal_VkSwapchainPresentBarrierCreateInfoNV(
43514                 vkStream, rootType,
43515                 reinterpret_cast<const VkSwapchainPresentBarrierCreateInfoNV*>(structExtension));
43516             break;
43517         }
43518 #endif
43519 #ifdef VK_NV_device_diagnostics_config
43520         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
43521             marshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
43522                 vkStream, rootType,
43523                 reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(
43524                     structExtension));
43525             break;
43526         }
43527         case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
43528             marshal_VkDeviceDiagnosticsConfigCreateInfoNV(
43529                 vkStream, rootType,
43530                 reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension));
43531             break;
43532         }
43533 #endif
43534 #ifdef VK_NV_low_latency
43535         case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
43536             marshal_VkQueryLowLatencySupportNV(
43537                 vkStream, rootType,
43538                 reinterpret_cast<const VkQueryLowLatencySupportNV*>(structExtension));
43539             break;
43540         }
43541 #endif
43542 #ifdef VK_EXT_metal_objects
43543         case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: {
43544             marshal_VkExportMetalObjectCreateInfoEXT(
43545                 vkStream, rootType,
43546                 reinterpret_cast<const VkExportMetalObjectCreateInfoEXT*>(structExtension));
43547             break;
43548         }
43549         case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT: {
43550             marshal_VkExportMetalDeviceInfoEXT(
43551                 vkStream, rootType,
43552                 reinterpret_cast<const VkExportMetalDeviceInfoEXT*>(structExtension));
43553             break;
43554         }
43555         case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: {
43556             marshal_VkExportMetalCommandQueueInfoEXT(
43557                 vkStream, rootType,
43558                 reinterpret_cast<const VkExportMetalCommandQueueInfoEXT*>(structExtension));
43559             break;
43560         }
43561         case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: {
43562             marshal_VkExportMetalBufferInfoEXT(
43563                 vkStream, rootType,
43564                 reinterpret_cast<const VkExportMetalBufferInfoEXT*>(structExtension));
43565             break;
43566         }
43567         case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT: {
43568             marshal_VkImportMetalBufferInfoEXT(
43569                 vkStream, rootType,
43570                 reinterpret_cast<const VkImportMetalBufferInfoEXT*>(structExtension));
43571             break;
43572         }
43573         case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: {
43574             marshal_VkExportMetalTextureInfoEXT(
43575                 vkStream, rootType,
43576                 reinterpret_cast<const VkExportMetalTextureInfoEXT*>(structExtension));
43577             break;
43578         }
43579         case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: {
43580             marshal_VkImportMetalTextureInfoEXT(
43581                 vkStream, rootType,
43582                 reinterpret_cast<const VkImportMetalTextureInfoEXT*>(structExtension));
43583             break;
43584         }
43585         case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: {
43586             marshal_VkExportMetalIOSurfaceInfoEXT(
43587                 vkStream, rootType,
43588                 reinterpret_cast<const VkExportMetalIOSurfaceInfoEXT*>(structExtension));
43589             break;
43590         }
43591         case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT: {
43592             marshal_VkImportMetalIOSurfaceInfoEXT(
43593                 vkStream, rootType,
43594                 reinterpret_cast<const VkImportMetalIOSurfaceInfoEXT*>(structExtension));
43595             break;
43596         }
43597         case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: {
43598             marshal_VkExportMetalSharedEventInfoEXT(
43599                 vkStream, rootType,
43600                 reinterpret_cast<const VkExportMetalSharedEventInfoEXT*>(structExtension));
43601             break;
43602         }
43603         case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT: {
43604             marshal_VkImportMetalSharedEventInfoEXT(
43605                 vkStream, rootType,
43606                 reinterpret_cast<const VkImportMetalSharedEventInfoEXT*>(structExtension));
43607             break;
43608         }
43609 #endif
43610 #ifdef VK_EXT_descriptor_buffer
43611         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
43612             marshal_VkPhysicalDeviceDescriptorBufferPropertiesEXT(
43613                 vkStream, rootType,
43614                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferPropertiesEXT*>(
43615                     structExtension));
43616             break;
43617         }
43618         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
43619             marshal_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(
43620                 vkStream, rootType,
43621                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT*>(
43622                     structExtension));
43623             break;
43624         }
43625         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
43626             marshal_VkPhysicalDeviceDescriptorBufferFeaturesEXT(
43627                 vkStream, rootType,
43628                 reinterpret_cast<const VkPhysicalDeviceDescriptorBufferFeaturesEXT*>(
43629                     structExtension));
43630             break;
43631         }
43632         case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
43633             marshal_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(
43634                 vkStream, rootType,
43635                 reinterpret_cast<const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT*>(
43636                     structExtension));
43637             break;
43638         }
43639         case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
43640             marshal_VkOpaqueCaptureDescriptorDataCreateInfoEXT(
43641                 vkStream, rootType,
43642                 reinterpret_cast<const VkOpaqueCaptureDescriptorDataCreateInfoEXT*>(
43643                     structExtension));
43644             break;
43645         }
43646 #endif
43647 #ifdef VK_EXT_graphics_pipeline_library
43648         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
43649             marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
43650                 vkStream, rootType,
43651                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
43652                     structExtension));
43653             break;
43654         }
43655         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
43656             marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
43657                 vkStream, rootType,
43658                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
43659                     structExtension));
43660             break;
43661         }
43662         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
43663             marshal_VkGraphicsPipelineLibraryCreateInfoEXT(
43664                 vkStream, rootType,
43665                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension));
43666             break;
43667         }
43668 #endif
43669 #ifdef VK_AMD_shader_early_and_late_fragment_tests
43670         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
43671             marshal_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(
43672                 vkStream, rootType,
43673                 reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>(
43674                     structExtension));
43675             break;
43676         }
43677 #endif
43678 #ifdef VK_NV_fragment_shading_rate_enums
43679         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
43680             marshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
43681                 vkStream, rootType,
43682                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(
43683                     structExtension));
43684             break;
43685         }
43686         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
43687             marshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
43688                 vkStream, rootType,
43689                 reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(
43690                     structExtension));
43691             break;
43692         }
43693         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
43694             marshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
43695                 vkStream, rootType,
43696                 reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(
43697                     structExtension));
43698             break;
43699         }
43700 #endif
43701 #ifdef VK_NV_ray_tracing_motion_blur
43702         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
43703             marshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
43704                 vkStream, rootType,
43705                 reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>(
43706                     structExtension));
43707             break;
43708         }
43709         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
43710             marshal_VkAccelerationStructureMotionInfoNV(
43711                 vkStream, rootType,
43712                 reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>(structExtension));
43713             break;
43714         }
43715         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
43716             marshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
43717                 vkStream, rootType,
43718                 reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(
43719                     structExtension));
43720             break;
43721         }
43722 #endif
43723 #ifdef VK_EXT_ycbcr_2plane_444_formats
43724         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
43725             marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
43726                 vkStream, rootType,
43727                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
43728                     structExtension));
43729             break;
43730         }
43731 #endif
43732 #ifdef VK_EXT_fragment_density_map2
43733         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
43734             marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
43735                 vkStream, rootType,
43736                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(
43737                     structExtension));
43738             break;
43739         }
43740         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
43741             marshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
43742                 vkStream, rootType,
43743                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(
43744                     structExtension));
43745             break;
43746         }
43747 #endif
43748 #ifdef VK_QCOM_rotated_copy_commands
43749         case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
43750             marshal_VkCopyCommandTransformInfoQCOM(
43751                 vkStream, rootType,
43752                 reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>(structExtension));
43753             break;
43754         }
43755 #endif
43756 #ifdef VK_EXT_image_compression_control
43757         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
43758             marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
43759                 vkStream, rootType,
43760                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
43761                     structExtension));
43762             break;
43763         }
43764         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
43765             marshal_VkImageCompressionControlEXT(
43766                 vkStream, rootType,
43767                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension));
43768             break;
43769         }
43770         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
43771             marshal_VkImageCompressionPropertiesEXT(
43772                 vkStream, rootType,
43773                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension));
43774             break;
43775         }
43776 #endif
43777 #ifdef VK_EXT_attachment_feedback_loop_layout
43778         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
43779             marshal_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(
43780                 vkStream, rootType,
43781                 reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT*>(
43782                     structExtension));
43783             break;
43784         }
43785 #endif
43786 #ifdef VK_EXT_4444_formats
43787         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
43788             marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
43789                 vkStream, rootType,
43790                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension));
43791             break;
43792         }
43793 #endif
43794 #ifdef VK_EXT_device_fault
43795         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
43796             marshal_VkPhysicalDeviceFaultFeaturesEXT(
43797                 vkStream, rootType,
43798                 reinterpret_cast<const VkPhysicalDeviceFaultFeaturesEXT*>(structExtension));
43799             break;
43800         }
43801 #endif
43802 #ifdef VK_ARM_rasterization_order_attachment_access
43803         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
43804             marshal_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
43805                 vkStream, rootType,
43806                 reinterpret_cast<
43807                     const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT*>(
43808                     structExtension));
43809             break;
43810         }
43811 #endif
43812 #ifdef VK_EXT_rgba10x6_formats
43813         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
43814             marshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
43815                 vkStream, rootType,
43816                 reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(
43817                     structExtension));
43818             break;
43819         }
43820 #endif
43821 #ifdef VK_VALVE_mutable_descriptor_type
43822         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
43823             marshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(
43824                 vkStream, rootType,
43825                 reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT*>(
43826                     structExtension));
43827             break;
43828         }
43829         case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
43830             marshal_VkMutableDescriptorTypeCreateInfoEXT(
43831                 vkStream, rootType,
43832                 reinterpret_cast<const VkMutableDescriptorTypeCreateInfoEXT*>(structExtension));
43833             break;
43834         }
43835 #endif
43836 #ifdef VK_EXT_vertex_input_dynamic_state
43837         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
43838             marshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
43839                 vkStream, rootType,
43840                 reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(
43841                     structExtension));
43842             break;
43843         }
43844 #endif
43845 #ifdef VK_EXT_physical_device_drm
43846         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
43847             marshal_VkPhysicalDeviceDrmPropertiesEXT(
43848                 vkStream, rootType,
43849                 reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>(structExtension));
43850             break;
43851         }
43852 #endif
43853 #ifdef VK_EXT_device_address_binding_report
43854         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
43855             marshal_VkPhysicalDeviceAddressBindingReportFeaturesEXT(
43856                 vkStream, rootType,
43857                 reinterpret_cast<const VkPhysicalDeviceAddressBindingReportFeaturesEXT*>(
43858                     structExtension));
43859             break;
43860         }
43861         case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
43862             marshal_VkDeviceAddressBindingCallbackDataEXT(
43863                 vkStream, rootType,
43864                 reinterpret_cast<const VkDeviceAddressBindingCallbackDataEXT*>(structExtension));
43865             break;
43866         }
43867 #endif
43868 #ifdef VK_EXT_depth_clip_control
43869         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
43870             marshal_VkPhysicalDeviceDepthClipControlFeaturesEXT(
43871                 vkStream, rootType,
43872                 reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT*>(
43873                     structExtension));
43874             break;
43875         }
43876         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
43877             marshal_VkPipelineViewportDepthClipControlCreateInfoEXT(
43878                 vkStream, rootType,
43879                 reinterpret_cast<const VkPipelineViewportDepthClipControlCreateInfoEXT*>(
43880                     structExtension));
43881             break;
43882         }
43883 #endif
43884 #ifdef VK_EXT_primitive_topology_list_restart
43885         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
43886             marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
43887                 vkStream, rootType,
43888                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
43889                     structExtension));
43890             break;
43891         }
43892 #endif
43893 #ifdef VK_FUCHSIA_external_memory
43894         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
43895             marshal_VkImportMemoryZirconHandleInfoFUCHSIA(
43896                 vkStream, rootType,
43897                 reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension));
43898             break;
43899         }
43900 #endif
43901 #ifdef VK_FUCHSIA_buffer_collection
43902         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
43903             marshal_VkImportMemoryBufferCollectionFUCHSIA(
43904                 vkStream, rootType,
43905                 reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>(structExtension));
43906             break;
43907         }
43908         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
43909             marshal_VkBufferCollectionImageCreateInfoFUCHSIA(
43910                 vkStream, rootType,
43911                 reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension));
43912             break;
43913         }
43914         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
43915             marshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
43916                 vkStream, rootType,
43917                 reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>(
43918                     structExtension));
43919             break;
43920         }
43921 #endif
43922 #ifdef VK_HUAWEI_subpass_shading
43923         case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
43924             marshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
43925                 vkStream, rootType,
43926                 reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension));
43927             break;
43928         }
43929         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
43930             marshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
43931                 vkStream, rootType,
43932                 reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(
43933                     structExtension));
43934             break;
43935         }
43936         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
43937             marshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
43938                 vkStream, rootType,
43939                 reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(
43940                     structExtension));
43941             break;
43942         }
43943 #endif
43944 #ifdef VK_HUAWEI_invocation_mask
43945         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
43946             marshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
43947                 vkStream, rootType,
43948                 reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(
43949                     structExtension));
43950             break;
43951         }
43952 #endif
43953 #ifdef VK_NV_external_memory_rdma
43954         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
43955             marshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
43956                 vkStream, rootType,
43957                 reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(
43958                     structExtension));
43959             break;
43960         }
43961 #endif
43962 #ifdef VK_EXT_pipeline_properties
43963         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
43964             marshal_VkPhysicalDevicePipelinePropertiesFeaturesEXT(
43965                 vkStream, rootType,
43966                 reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT*>(
43967                     structExtension));
43968             break;
43969         }
43970 #endif
43971 #ifdef VK_EXT_multisampled_render_to_single_sampled
43972         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
43973             marshal_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
43974                 vkStream, rootType,
43975                 reinterpret_cast<
43976                     const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>(
43977                     structExtension));
43978             break;
43979         }
43980         case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
43981             marshal_VkSubpassResolvePerformanceQueryEXT(
43982                 vkStream, rootType,
43983                 reinterpret_cast<const VkSubpassResolvePerformanceQueryEXT*>(structExtension));
43984             break;
43985         }
43986         case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
43987             marshal_VkMultisampledRenderToSingleSampledInfoEXT(
43988                 vkStream, rootType,
43989                 reinterpret_cast<const VkMultisampledRenderToSingleSampledInfoEXT*>(
43990                     structExtension));
43991             break;
43992         }
43993 #endif
43994 #ifdef VK_EXT_extended_dynamic_state2
43995         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
43996             marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
43997                 vkStream, rootType,
43998                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
43999                     structExtension));
44000             break;
44001         }
44002 #endif
44003 #ifdef VK_EXT_color_write_enable
44004         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
44005             marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
44006                 vkStream, rootType,
44007                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
44008                     structExtension));
44009             break;
44010         }
44011         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
44012             marshal_VkPipelineColorWriteCreateInfoEXT(
44013                 vkStream, rootType,
44014                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension));
44015             break;
44016         }
44017 #endif
44018 #ifdef VK_EXT_primitives_generated_query
44019         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
44020             marshal_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(
44021                 vkStream, rootType,
44022                 reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>(
44023                     structExtension));
44024             break;
44025         }
44026 #endif
44027 #ifdef VK_GOOGLE_gfxstream
44028         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
44029             marshal_VkImportColorBufferGOOGLE(
44030                 vkStream, rootType,
44031                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
44032             break;
44033         }
44034         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
44035             marshal_VkImportBufferGOOGLE(
44036                 vkStream, rootType, reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension));
44037             break;
44038         }
44039         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
44040             marshal_VkCreateBlobGOOGLE(
44041                 vkStream, rootType, reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension));
44042             break;
44043         }
44044 #endif
44045 #ifdef VK_EXT_image_view_min_lod
44046         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
44047             marshal_VkPhysicalDeviceImageViewMinLodFeaturesEXT(
44048                 vkStream, rootType,
44049                 reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT*>(
44050                     structExtension));
44051             break;
44052         }
44053         case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
44054             marshal_VkImageViewMinLodCreateInfoEXT(
44055                 vkStream, rootType,
44056                 reinterpret_cast<const VkImageViewMinLodCreateInfoEXT*>(structExtension));
44057             break;
44058         }
44059 #endif
44060 #ifdef VK_EXT_multi_draw
44061         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
44062             marshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
44063                 vkStream, rootType,
44064                 reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension));
44065             break;
44066         }
44067         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
44068             marshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
44069                 vkStream, rootType,
44070                 reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension));
44071             break;
44072         }
44073 #endif
44074 #ifdef VK_EXT_image_2d_view_of_3d
44075         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
44076             marshal_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(
44077                 vkStream, rootType,
44078                 reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>(
44079                     structExtension));
44080             break;
44081         }
44082 #endif
44083 #ifdef VK_EXT_shader_tile_image
44084         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
44085             marshal_VkPhysicalDeviceShaderTileImageFeaturesEXT(
44086                 vkStream, rootType,
44087                 reinterpret_cast<const VkPhysicalDeviceShaderTileImageFeaturesEXT*>(
44088                     structExtension));
44089             break;
44090         }
44091         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
44092             marshal_VkPhysicalDeviceShaderTileImagePropertiesEXT(
44093                 vkStream, rootType,
44094                 reinterpret_cast<const VkPhysicalDeviceShaderTileImagePropertiesEXT*>(
44095                     structExtension));
44096             break;
44097         }
44098 #endif
44099 #ifdef VK_EXT_opacity_micromap
44100         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
44101             marshal_VkPhysicalDeviceOpacityMicromapFeaturesEXT(
44102                 vkStream, rootType,
44103                 reinterpret_cast<const VkPhysicalDeviceOpacityMicromapFeaturesEXT*>(
44104                     structExtension));
44105             break;
44106         }
44107         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
44108             marshal_VkPhysicalDeviceOpacityMicromapPropertiesEXT(
44109                 vkStream, rootType,
44110                 reinterpret_cast<const VkPhysicalDeviceOpacityMicromapPropertiesEXT*>(
44111                     structExtension));
44112             break;
44113         }
44114         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
44115             marshal_VkAccelerationStructureTrianglesOpacityMicromapEXT(
44116                 vkStream, rootType,
44117                 reinterpret_cast<const VkAccelerationStructureTrianglesOpacityMicromapEXT*>(
44118                     structExtension));
44119             break;
44120         }
44121 #endif
44122 #ifdef VK_NV_displacement_micromap
44123 #ifdef VK_ENABLE_BETA_EXTENSIONS
44124         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
44125             marshal_VkPhysicalDeviceDisplacementMicromapFeaturesNV(
44126                 vkStream, rootType,
44127                 reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapFeaturesNV*>(
44128                     structExtension));
44129             break;
44130         }
44131 #endif  // VK_ENABLE_BETA_EXTENSIONS
44132 #ifdef VK_ENABLE_BETA_EXTENSIONS
44133         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
44134             marshal_VkPhysicalDeviceDisplacementMicromapPropertiesNV(
44135                 vkStream, rootType,
44136                 reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapPropertiesNV*>(
44137                     structExtension));
44138             break;
44139         }
44140 #endif  // VK_ENABLE_BETA_EXTENSIONS
44141 #ifdef VK_ENABLE_BETA_EXTENSIONS
44142         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
44143             marshal_VkAccelerationStructureTrianglesDisplacementMicromapNV(
44144                 vkStream, rootType,
44145                 reinterpret_cast<const VkAccelerationStructureTrianglesDisplacementMicromapNV*>(
44146                     structExtension));
44147             break;
44148         }
44149 #endif  // VK_ENABLE_BETA_EXTENSIONS
44150 #endif
44151 #ifdef VK_HUAWEI_cluster_culling_shader
44152         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
44153             marshal_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(
44154                 vkStream, rootType,
44155                 reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI*>(
44156                     structExtension));
44157             break;
44158         }
44159         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
44160             marshal_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(
44161                 vkStream, rootType,
44162                 reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI*>(
44163                     structExtension));
44164             break;
44165         }
44166 #endif
44167 #ifdef VK_EXT_border_color_swizzle
44168         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
44169             marshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
44170                 vkStream, rootType,
44171                 reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(
44172                     structExtension));
44173             break;
44174         }
44175         case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
44176             marshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
44177                 vkStream, rootType,
44178                 reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>(
44179                     structExtension));
44180             break;
44181         }
44182 #endif
44183 #ifdef VK_EXT_pageable_device_local_memory
44184         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
44185             marshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
44186                 vkStream, rootType,
44187                 reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(
44188                     structExtension));
44189             break;
44190         }
44191 #endif
44192 #ifdef VK_ARM_shader_core_properties
44193         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
44194             marshal_VkPhysicalDeviceShaderCorePropertiesARM(
44195                 vkStream, rootType,
44196                 reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesARM*>(structExtension));
44197             break;
44198         }
44199 #endif
44200 #ifdef VK_EXT_image_sliced_view_of_3d
44201         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
44202             marshal_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(
44203                 vkStream, rootType,
44204                 reinterpret_cast<const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT*>(
44205                     structExtension));
44206             break;
44207         }
44208         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
44209             marshal_VkImageViewSlicedCreateInfoEXT(
44210                 vkStream, rootType,
44211                 reinterpret_cast<const VkImageViewSlicedCreateInfoEXT*>(structExtension));
44212             break;
44213         }
44214 #endif
44215 #ifdef VK_VALVE_descriptor_set_host_mapping
44216         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
44217             marshal_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(
44218                 vkStream, rootType,
44219                 reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>(
44220                     structExtension));
44221             break;
44222         }
44223 #endif
44224 #ifdef VK_EXT_depth_clamp_zero_one
44225         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
44226             marshal_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(
44227                 vkStream, rootType,
44228                 reinterpret_cast<const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT*>(
44229                     structExtension));
44230             break;
44231         }
44232 #endif
44233 #ifdef VK_EXT_non_seamless_cube_map
44234         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
44235             marshal_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(
44236                 vkStream, rootType,
44237                 reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>(
44238                     structExtension));
44239             break;
44240         }
44241 #endif
44242 #ifdef VK_QCOM_fragment_density_map_offset
44243         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
44244             marshal_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(
44245                 vkStream, rootType,
44246                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>(
44247                     structExtension));
44248             break;
44249         }
44250         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
44251             marshal_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(
44252                 vkStream, rootType,
44253                 reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM*>(
44254                     structExtension));
44255             break;
44256         }
44257         case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
44258             marshal_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(
44259                 vkStream, rootType,
44260                 reinterpret_cast<const VkSubpassFragmentDensityMapOffsetEndInfoQCOM*>(
44261                     structExtension));
44262             break;
44263         }
44264 #endif
44265 #ifdef VK_NV_copy_memory_indirect
44266         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
44267             marshal_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(
44268                 vkStream, rootType,
44269                 reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV*>(
44270                     structExtension));
44271             break;
44272         }
44273         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
44274             marshal_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(
44275                 vkStream, rootType,
44276                 reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV*>(
44277                     structExtension));
44278             break;
44279         }
44280 #endif
44281 #ifdef VK_NV_memory_decompression
44282         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
44283             marshal_VkPhysicalDeviceMemoryDecompressionFeaturesNV(
44284                 vkStream, rootType,
44285                 reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionFeaturesNV*>(
44286                     structExtension));
44287             break;
44288         }
44289         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
44290             marshal_VkPhysicalDeviceMemoryDecompressionPropertiesNV(
44291                 vkStream, rootType,
44292                 reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionPropertiesNV*>(
44293                     structExtension));
44294             break;
44295         }
44296 #endif
44297 #ifdef VK_NV_linear_color_attachment
44298         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
44299             marshal_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(
44300                 vkStream, rootType,
44301                 reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>(
44302                     structExtension));
44303             break;
44304         }
44305 #endif
44306 #ifdef VK_EXT_image_compression_control_swapchain
44307         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
44308             marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
44309                 vkStream, rootType,
44310                 reinterpret_cast<
44311                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
44312                     structExtension));
44313             break;
44314         }
44315 #endif
44316 #ifdef VK_QCOM_image_processing
44317         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
44318             marshal_VkImageViewSampleWeightCreateInfoQCOM(
44319                 vkStream, rootType,
44320                 reinterpret_cast<const VkImageViewSampleWeightCreateInfoQCOM*>(structExtension));
44321             break;
44322         }
44323         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
44324             marshal_VkPhysicalDeviceImageProcessingFeaturesQCOM(
44325                 vkStream, rootType,
44326                 reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM*>(
44327                     structExtension));
44328             break;
44329         }
44330         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
44331             marshal_VkPhysicalDeviceImageProcessingPropertiesQCOM(
44332                 vkStream, rootType,
44333                 reinterpret_cast<const VkPhysicalDeviceImageProcessingPropertiesQCOM*>(
44334                     structExtension));
44335             break;
44336         }
44337 #endif
44338 #ifdef VK_EXT_extended_dynamic_state3
44339         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
44340             marshal_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(
44341                 vkStream, rootType,
44342                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>(
44343                     structExtension));
44344             break;
44345         }
44346         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
44347             marshal_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(
44348                 vkStream, rootType,
44349                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT*>(
44350                     structExtension));
44351             break;
44352         }
44353 #endif
44354 #ifdef VK_EXT_subpass_merge_feedback
44355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
44356             marshal_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(
44357                 vkStream, rootType,
44358                 reinterpret_cast<const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT*>(
44359                     structExtension));
44360             break;
44361         }
44362         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
44363             marshal_VkRenderPassCreationControlEXT(
44364                 vkStream, rootType,
44365                 reinterpret_cast<const VkRenderPassCreationControlEXT*>(structExtension));
44366             break;
44367         }
44368         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
44369             marshal_VkRenderPassCreationFeedbackCreateInfoEXT(
44370                 vkStream, rootType,
44371                 reinterpret_cast<const VkRenderPassCreationFeedbackCreateInfoEXT*>(
44372                     structExtension));
44373             break;
44374         }
44375         case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
44376             marshal_VkRenderPassSubpassFeedbackCreateInfoEXT(
44377                 vkStream, rootType,
44378                 reinterpret_cast<const VkRenderPassSubpassFeedbackCreateInfoEXT*>(structExtension));
44379             break;
44380         }
44381 #endif
44382 #ifdef VK_LUNARG_direct_driver_loading
44383         case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
44384             marshal_VkDirectDriverLoadingListLUNARG(
44385                 vkStream, rootType,
44386                 reinterpret_cast<const VkDirectDriverLoadingListLUNARG*>(structExtension));
44387             break;
44388         }
44389 #endif
44390 #ifdef VK_EXT_shader_module_identifier
44391         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
44392             marshal_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(
44393                 vkStream, rootType,
44394                 reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>(
44395                     structExtension));
44396             break;
44397         }
44398         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
44399             marshal_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(
44400                 vkStream, rootType,
44401                 reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT*>(
44402                     structExtension));
44403             break;
44404         }
44405         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
44406             marshal_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(
44407                 vkStream, rootType,
44408                 reinterpret_cast<const VkPipelineShaderStageModuleIdentifierCreateInfoEXT*>(
44409                     structExtension));
44410             break;
44411         }
44412 #endif
44413 #ifdef VK_NV_optical_flow
44414         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
44415             marshal_VkPhysicalDeviceOpticalFlowFeaturesNV(
44416                 vkStream, rootType,
44417                 reinterpret_cast<const VkPhysicalDeviceOpticalFlowFeaturesNV*>(structExtension));
44418             break;
44419         }
44420         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
44421             marshal_VkPhysicalDeviceOpticalFlowPropertiesNV(
44422                 vkStream, rootType,
44423                 reinterpret_cast<const VkPhysicalDeviceOpticalFlowPropertiesNV*>(structExtension));
44424             break;
44425         }
44426         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
44427             marshal_VkOpticalFlowImageFormatInfoNV(
44428                 vkStream, rootType,
44429                 reinterpret_cast<const VkOpticalFlowImageFormatInfoNV*>(structExtension));
44430             break;
44431         }
44432         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
44433             marshal_VkOpticalFlowSessionCreatePrivateDataInfoNV(
44434                 vkStream, rootType,
44435                 reinterpret_cast<const VkOpticalFlowSessionCreatePrivateDataInfoNV*>(
44436                     structExtension));
44437             break;
44438         }
44439 #endif
44440 #ifdef VK_EXT_legacy_dithering
44441         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
44442             marshal_VkPhysicalDeviceLegacyDitheringFeaturesEXT(
44443                 vkStream, rootType,
44444                 reinterpret_cast<const VkPhysicalDeviceLegacyDitheringFeaturesEXT*>(
44445                     structExtension));
44446             break;
44447         }
44448 #endif
44449 #ifdef VK_EXT_pipeline_protected_access
44450         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
44451             marshal_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(
44452                 vkStream, rootType,
44453                 reinterpret_cast<const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT*>(
44454                     structExtension));
44455             break;
44456         }
44457 #endif
44458 #ifdef VK_EXT_shader_object
44459         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
44460             marshal_VkPhysicalDeviceShaderObjectFeaturesEXT(
44461                 vkStream, rootType,
44462                 reinterpret_cast<const VkPhysicalDeviceShaderObjectFeaturesEXT*>(structExtension));
44463             break;
44464         }
44465         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
44466             marshal_VkPhysicalDeviceShaderObjectPropertiesEXT(
44467                 vkStream, rootType,
44468                 reinterpret_cast<const VkPhysicalDeviceShaderObjectPropertiesEXT*>(
44469                     structExtension));
44470             break;
44471         }
44472 #endif
44473 #ifdef VK_QCOM_tile_properties
44474         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
44475             marshal_VkPhysicalDeviceTilePropertiesFeaturesQCOM(
44476                 vkStream, rootType,
44477                 reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM*>(
44478                     structExtension));
44479             break;
44480         }
44481 #endif
44482 #ifdef VK_SEC_amigo_profiling
44483         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
44484             marshal_VkPhysicalDeviceAmigoProfilingFeaturesSEC(
44485                 vkStream, rootType,
44486                 reinterpret_cast<const VkPhysicalDeviceAmigoProfilingFeaturesSEC*>(
44487                     structExtension));
44488             break;
44489         }
44490         case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
44491             marshal_VkAmigoProfilingSubmitInfoSEC(
44492                 vkStream, rootType,
44493                 reinterpret_cast<const VkAmigoProfilingSubmitInfoSEC*>(structExtension));
44494             break;
44495         }
44496 #endif
44497 #ifdef VK_QCOM_multiview_per_view_viewports
44498         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
44499             marshal_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(
44500                 vkStream, rootType,
44501                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM*>(
44502                     structExtension));
44503             break;
44504         }
44505 #endif
44506 #ifdef VK_NV_ray_tracing_invocation_reorder
44507         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
44508             marshal_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(
44509                 vkStream, rootType,
44510                 reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV*>(
44511                     structExtension));
44512             break;
44513         }
44514         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
44515             marshal_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(
44516                 vkStream, rootType,
44517                 reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV*>(
44518                     structExtension));
44519             break;
44520         }
44521 #endif
44522 #ifdef VK_ARM_shader_core_builtins
44523         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
44524             marshal_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(
44525                 vkStream, rootType,
44526                 reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM*>(
44527                     structExtension));
44528             break;
44529         }
44530         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
44531             marshal_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(
44532                 vkStream, rootType,
44533                 reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM*>(
44534                     structExtension));
44535             break;
44536         }
44537 #endif
44538 #ifdef VK_EXT_pipeline_library_group_handles
44539         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
44540             marshal_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(
44541                 vkStream, rootType,
44542                 reinterpret_cast<const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT*>(
44543                     structExtension));
44544             break;
44545         }
44546 #endif
44547 #ifdef VK_QCOM_multiview_per_view_render_areas
44548         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
44549             marshal_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(
44550                 vkStream, rootType,
44551                 reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM*>(
44552                     structExtension));
44553             break;
44554         }
44555         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
44556             marshal_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
44557                 vkStream, rootType,
44558                 reinterpret_cast<const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM*>(
44559                     structExtension));
44560             break;
44561         }
44562 #endif
44563 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
44564         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
44565             marshal_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
44566                 vkStream, rootType,
44567                 reinterpret_cast<
44568                     const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT*>(
44569                     structExtension));
44570             break;
44571         }
44572 #endif
44573 #ifdef VK_KHR_acceleration_structure
44574         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
44575             marshal_VkWriteDescriptorSetAccelerationStructureKHR(
44576                 vkStream, rootType,
44577                 reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>(
44578                     structExtension));
44579             break;
44580         }
44581         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
44582             marshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
44583                 vkStream, rootType,
44584                 reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(
44585                     structExtension));
44586             break;
44587         }
44588         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
44589             marshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
44590                 vkStream, rootType,
44591                 reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(
44592                     structExtension));
44593             break;
44594         }
44595 #endif
44596 #ifdef VK_KHR_ray_tracing_pipeline
44597         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
44598             marshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
44599                 vkStream, rootType,
44600                 reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(
44601                     structExtension));
44602             break;
44603         }
44604         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
44605             marshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
44606                 vkStream, rootType,
44607                 reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(
44608                     structExtension));
44609             break;
44610         }
44611 #endif
44612 #ifdef VK_KHR_ray_query
44613         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
44614             marshal_VkPhysicalDeviceRayQueryFeaturesKHR(
44615                 vkStream, rootType,
44616                 reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension));
44617             break;
44618         }
44619 #endif
44620 #ifdef VK_EXT_mesh_shader
44621         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
44622             marshal_VkPhysicalDeviceMeshShaderFeaturesEXT(
44623                 vkStream, rootType,
44624                 reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesEXT*>(structExtension));
44625             break;
44626         }
44627         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
44628             marshal_VkPhysicalDeviceMeshShaderPropertiesEXT(
44629                 vkStream, rootType,
44630                 reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesEXT*>(structExtension));
44631             break;
44632         }
44633 #endif
44634         default: {
44635             // fatal; the switch is only taken if the extension struct is known
44636             abort();
44637         }
44638     }
44639 }
44640 
unmarshal_extension_struct(VulkanStream * vkStream,VkStructureType rootType,void * structExtension_out)44641 void unmarshal_extension_struct(VulkanStream* vkStream, VkStructureType rootType,
44642                                 void* structExtension_out) {
44643     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension_out);
44644     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
44645         vkStream->getFeatureBits(), rootType, structExtension_out);
44646     if (!currExtSize && structExtension_out) {
44647         // unknown struct extension; skip and call on its pNext field
44648         unmarshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext);
44649         return;
44650     } else {
44651         // known or null extension struct
44652         if (!currExtSize) {
44653             // exit if this was a null extension struct (size == 0 in this branch)
44654             return;
44655         }
44656     }
44657     if (!structExtension_out) {
44658         return;
44659     }
44660     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
44661     switch (structType) {
44662 #ifdef VK_VERSION_1_0
44663         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
44664             unmarshal_VkShaderModuleCreateInfo(
44665                 vkStream, rootType,
44666                 reinterpret_cast<VkShaderModuleCreateInfo*>(structExtension_out));
44667             break;
44668         }
44669 #endif
44670 #ifdef VK_VERSION_1_1
44671         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
44672             unmarshal_VkPhysicalDeviceSubgroupProperties(
44673                 vkStream, rootType,
44674                 reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
44675             break;
44676         }
44677         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
44678             unmarshal_VkPhysicalDevice16BitStorageFeatures(
44679                 vkStream, rootType,
44680                 reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
44681             break;
44682         }
44683         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
44684             unmarshal_VkMemoryDedicatedRequirements(
44685                 vkStream, rootType,
44686                 reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
44687             break;
44688         }
44689         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
44690             unmarshal_VkMemoryDedicatedAllocateInfo(
44691                 vkStream, rootType,
44692                 reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
44693             break;
44694         }
44695         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
44696             unmarshal_VkMemoryAllocateFlagsInfo(
44697                 vkStream, rootType,
44698                 reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
44699             break;
44700         }
44701         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
44702             unmarshal_VkDeviceGroupRenderPassBeginInfo(
44703                 vkStream, rootType,
44704                 reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
44705             break;
44706         }
44707         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
44708             unmarshal_VkDeviceGroupCommandBufferBeginInfo(
44709                 vkStream, rootType,
44710                 reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
44711             break;
44712         }
44713         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
44714             unmarshal_VkDeviceGroupSubmitInfo(
44715                 vkStream, rootType,
44716                 reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
44717             break;
44718         }
44719         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
44720             unmarshal_VkDeviceGroupBindSparseInfo(
44721                 vkStream, rootType,
44722                 reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
44723             break;
44724         }
44725         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
44726             unmarshal_VkBindBufferMemoryDeviceGroupInfo(
44727                 vkStream, rootType,
44728                 reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
44729             break;
44730         }
44731         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
44732             unmarshal_VkBindImageMemoryDeviceGroupInfo(
44733                 vkStream, rootType,
44734                 reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
44735             break;
44736         }
44737         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
44738             unmarshal_VkDeviceGroupDeviceCreateInfo(
44739                 vkStream, rootType,
44740                 reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
44741             break;
44742         }
44743         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
44744             unmarshal_VkPhysicalDeviceFeatures2(
44745                 vkStream, rootType,
44746                 reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
44747             break;
44748         }
44749         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
44750             unmarshal_VkPhysicalDevicePointClippingProperties(
44751                 vkStream, rootType,
44752                 reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
44753             break;
44754         }
44755         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
44756             unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
44757                 vkStream, rootType,
44758                 reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(
44759                     structExtension_out));
44760             break;
44761         }
44762         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
44763             unmarshal_VkImageViewUsageCreateInfo(
44764                 vkStream, rootType,
44765                 reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
44766             break;
44767         }
44768         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
44769             unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
44770                 vkStream, rootType,
44771                 reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(
44772                     structExtension_out));
44773             break;
44774         }
44775         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
44776             unmarshal_VkRenderPassMultiviewCreateInfo(
44777                 vkStream, rootType,
44778                 reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
44779             break;
44780         }
44781         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
44782             unmarshal_VkPhysicalDeviceMultiviewFeatures(
44783                 vkStream, rootType,
44784                 reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
44785             break;
44786         }
44787         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
44788             unmarshal_VkPhysicalDeviceMultiviewProperties(
44789                 vkStream, rootType,
44790                 reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
44791             break;
44792         }
44793         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
44794             unmarshal_VkPhysicalDeviceVariablePointersFeatures(
44795                 vkStream, rootType,
44796                 reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
44797             break;
44798         }
44799         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
44800             unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
44801                 vkStream, rootType,
44802                 reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
44803             break;
44804         }
44805         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
44806             unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
44807                 vkStream, rootType,
44808                 reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
44809             break;
44810         }
44811         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
44812             unmarshal_VkProtectedSubmitInfo(
44813                 vkStream, rootType, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
44814             break;
44815         }
44816         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
44817             unmarshal_VkSamplerYcbcrConversionInfo(
44818                 vkStream, rootType,
44819                 reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
44820             break;
44821         }
44822         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
44823             unmarshal_VkBindImagePlaneMemoryInfo(
44824                 vkStream, rootType,
44825                 reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
44826             break;
44827         }
44828         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
44829             unmarshal_VkImagePlaneMemoryRequirementsInfo(
44830                 vkStream, rootType,
44831                 reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
44832             break;
44833         }
44834         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
44835             unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
44836                 vkStream, rootType,
44837                 reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
44838                     structExtension_out));
44839             break;
44840         }
44841         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
44842             unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
44843                 vkStream, rootType,
44844                 reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(
44845                     structExtension_out));
44846             break;
44847         }
44848         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
44849             unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
44850                 vkStream, rootType,
44851                 reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
44852             break;
44853         }
44854         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
44855             unmarshal_VkExternalImageFormatProperties(
44856                 vkStream, rootType,
44857                 reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
44858             break;
44859         }
44860         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
44861             unmarshal_VkPhysicalDeviceIDProperties(
44862                 vkStream, rootType,
44863                 reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
44864             break;
44865         }
44866         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
44867             unmarshal_VkExternalMemoryImageCreateInfo(
44868                 vkStream, rootType,
44869                 reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
44870             break;
44871         }
44872         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
44873             unmarshal_VkExternalMemoryBufferCreateInfo(
44874                 vkStream, rootType,
44875                 reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
44876             break;
44877         }
44878         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
44879             unmarshal_VkExportMemoryAllocateInfo(
44880                 vkStream, rootType,
44881                 reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
44882             break;
44883         }
44884         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
44885             unmarshal_VkExportFenceCreateInfo(
44886                 vkStream, rootType,
44887                 reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
44888             break;
44889         }
44890         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
44891             unmarshal_VkExportSemaphoreCreateInfo(
44892                 vkStream, rootType,
44893                 reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
44894             break;
44895         }
44896         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
44897             unmarshal_VkPhysicalDeviceMaintenance3Properties(
44898                 vkStream, rootType,
44899                 reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
44900             break;
44901         }
44902         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
44903             unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
44904                 vkStream, rootType,
44905                 reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(
44906                     structExtension_out));
44907             break;
44908         }
44909 #endif
44910 #ifdef VK_VERSION_1_2
44911         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
44912             unmarshal_VkPhysicalDeviceVulkan11Features(
44913                 vkStream, rootType,
44914                 reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
44915             break;
44916         }
44917         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
44918             unmarshal_VkPhysicalDeviceVulkan11Properties(
44919                 vkStream, rootType,
44920                 reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
44921             break;
44922         }
44923         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
44924             unmarshal_VkPhysicalDeviceVulkan12Features(
44925                 vkStream, rootType,
44926                 reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
44927             break;
44928         }
44929         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
44930             unmarshal_VkPhysicalDeviceVulkan12Properties(
44931                 vkStream, rootType,
44932                 reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
44933             break;
44934         }
44935         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
44936             unmarshal_VkImageFormatListCreateInfo(
44937                 vkStream, rootType,
44938                 reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
44939             break;
44940         }
44941         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
44942             unmarshal_VkPhysicalDevice8BitStorageFeatures(
44943                 vkStream, rootType,
44944                 reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
44945             break;
44946         }
44947         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
44948             unmarshal_VkPhysicalDeviceDriverProperties(
44949                 vkStream, rootType,
44950                 reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
44951             break;
44952         }
44953         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
44954             unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
44955                 vkStream, rootType,
44956                 reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
44957             break;
44958         }
44959         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
44960             unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
44961                 vkStream, rootType,
44962                 reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
44963             break;
44964         }
44965         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
44966             unmarshal_VkPhysicalDeviceFloatControlsProperties(
44967                 vkStream, rootType,
44968                 reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
44969             break;
44970         }
44971         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
44972             unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
44973                 vkStream, rootType,
44974                 reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
44975                     structExtension_out));
44976             break;
44977         }
44978         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
44979             unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
44980                 vkStream, rootType,
44981                 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
44982             break;
44983         }
44984         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
44985             unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
44986                 vkStream, rootType,
44987                 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(
44988                     structExtension_out));
44989             break;
44990         }
44991         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
44992             unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
44993                 vkStream, rootType,
44994                 reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
44995                     structExtension_out));
44996             break;
44997         }
44998         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
44999             unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
45000                 vkStream, rootType,
45001                 reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
45002                     structExtension_out));
45003             break;
45004         }
45005         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
45006             unmarshal_VkSubpassDescriptionDepthStencilResolve(
45007                 vkStream, rootType,
45008                 reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
45009             break;
45010         }
45011         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
45012             unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
45013                 vkStream, rootType,
45014                 reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(
45015                     structExtension_out));
45016             break;
45017         }
45018         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
45019             unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
45020                 vkStream, rootType,
45021                 reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
45022             break;
45023         }
45024         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
45025             unmarshal_VkImageStencilUsageCreateInfo(
45026                 vkStream, rootType,
45027                 reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
45028             break;
45029         }
45030         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
45031             unmarshal_VkSamplerReductionModeCreateInfo(
45032                 vkStream, rootType,
45033                 reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
45034             break;
45035         }
45036         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
45037             unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
45038                 vkStream, rootType,
45039                 reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
45040                     structExtension_out));
45041             break;
45042         }
45043         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
45044             unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
45045                 vkStream, rootType,
45046                 reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
45047             break;
45048         }
45049         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
45050             unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
45051                 vkStream, rootType,
45052                 reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(
45053                     structExtension_out));
45054             break;
45055         }
45056         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
45057             unmarshal_VkFramebufferAttachmentsCreateInfo(
45058                 vkStream, rootType,
45059                 reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
45060             break;
45061         }
45062         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
45063             unmarshal_VkRenderPassAttachmentBeginInfo(
45064                 vkStream, rootType,
45065                 reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
45066             break;
45067         }
45068         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
45069             unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
45070                 vkStream, rootType,
45071                 reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
45072                     structExtension_out));
45073             break;
45074         }
45075         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
45076             unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
45077                 vkStream, rootType,
45078                 reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
45079                     structExtension_out));
45080             break;
45081         }
45082         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
45083             unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
45084                 vkStream, rootType,
45085                 reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
45086                     structExtension_out));
45087             break;
45088         }
45089         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
45090             unmarshal_VkAttachmentReferenceStencilLayout(
45091                 vkStream, rootType,
45092                 reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
45093             break;
45094         }
45095         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
45096             unmarshal_VkAttachmentDescriptionStencilLayout(
45097                 vkStream, rootType,
45098                 reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
45099             break;
45100         }
45101         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
45102             unmarshal_VkPhysicalDeviceHostQueryResetFeatures(
45103                 vkStream, rootType,
45104                 reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
45105             break;
45106         }
45107         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
45108             unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
45109                 vkStream, rootType,
45110                 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
45111             break;
45112         }
45113         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
45114             unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
45115                 vkStream, rootType,
45116                 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(
45117                     structExtension_out));
45118             break;
45119         }
45120         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
45121             unmarshal_VkSemaphoreTypeCreateInfo(
45122                 vkStream, rootType,
45123                 reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
45124             break;
45125         }
45126         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
45127             unmarshal_VkTimelineSemaphoreSubmitInfo(
45128                 vkStream, rootType,
45129                 reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
45130             break;
45131         }
45132         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
45133             unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
45134                 vkStream, rootType,
45135                 reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(
45136                     structExtension_out));
45137             break;
45138         }
45139         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
45140             unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
45141                 vkStream, rootType,
45142                 reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
45143             break;
45144         }
45145         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
45146             unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
45147                 vkStream, rootType,
45148                 reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
45149             break;
45150         }
45151 #endif
45152 #ifdef VK_VERSION_1_3
45153         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
45154             unmarshal_VkPhysicalDeviceVulkan13Features(
45155                 vkStream, rootType,
45156                 reinterpret_cast<VkPhysicalDeviceVulkan13Features*>(structExtension_out));
45157             break;
45158         }
45159         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
45160             unmarshal_VkPhysicalDeviceVulkan13Properties(
45161                 vkStream, rootType,
45162                 reinterpret_cast<VkPhysicalDeviceVulkan13Properties*>(structExtension_out));
45163             break;
45164         }
45165         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
45166             unmarshal_VkPipelineCreationFeedbackCreateInfo(
45167                 vkStream, rootType,
45168                 reinterpret_cast<VkPipelineCreationFeedbackCreateInfo*>(structExtension_out));
45169             break;
45170         }
45171         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
45172             unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
45173                 vkStream, rootType,
45174                 reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
45175                     structExtension_out));
45176             break;
45177         }
45178         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
45179             unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
45180                 vkStream, rootType,
45181                 reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
45182                     structExtension_out));
45183             break;
45184         }
45185         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
45186             unmarshal_VkPhysicalDevicePrivateDataFeatures(
45187                 vkStream, rootType,
45188                 reinterpret_cast<VkPhysicalDevicePrivateDataFeatures*>(structExtension_out));
45189             break;
45190         }
45191         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
45192             unmarshal_VkDevicePrivateDataCreateInfo(
45193                 vkStream, rootType,
45194                 reinterpret_cast<VkDevicePrivateDataCreateInfo*>(structExtension_out));
45195             break;
45196         }
45197         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
45198             unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
45199                 vkStream, rootType,
45200                 reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
45201                     structExtension_out));
45202             break;
45203         }
45204         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
45205             unmarshal_VkMemoryBarrier2(vkStream, rootType,
45206                                        reinterpret_cast<VkMemoryBarrier2*>(structExtension_out));
45207             break;
45208         }
45209         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
45210             unmarshal_VkPhysicalDeviceSynchronization2Features(
45211                 vkStream, rootType,
45212                 reinterpret_cast<VkPhysicalDeviceSynchronization2Features*>(structExtension_out));
45213             break;
45214         }
45215         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
45216             unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
45217                 vkStream, rootType,
45218                 reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
45219                     structExtension_out));
45220             break;
45221         }
45222         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
45223             unmarshal_VkPhysicalDeviceImageRobustnessFeatures(
45224                 vkStream, rootType,
45225                 reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures*>(structExtension_out));
45226             break;
45227         }
45228         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
45229             unmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
45230                 vkStream, rootType,
45231                 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures*>(
45232                     structExtension_out));
45233             break;
45234         }
45235         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
45236             unmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
45237                 vkStream, rootType,
45238                 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties*>(
45239                     structExtension_out));
45240             break;
45241         }
45242         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
45243             unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
45244                 vkStream, rootType,
45245                 reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
45246                     structExtension_out));
45247             break;
45248         }
45249         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
45250             unmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
45251                 vkStream, rootType,
45252                 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures*>(structExtension_out));
45253             break;
45254         }
45255         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
45256             unmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
45257                 vkStream, rootType,
45258                 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties*>(
45259                     structExtension_out));
45260             break;
45261         }
45262         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
45263             unmarshal_VkWriteDescriptorSetInlineUniformBlock(
45264                 vkStream, rootType,
45265                 reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock*>(structExtension_out));
45266             break;
45267         }
45268         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
45269             unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
45270                 vkStream, rootType,
45271                 reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo*>(
45272                     structExtension_out));
45273             break;
45274         }
45275         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
45276             unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
45277                 vkStream, rootType,
45278                 reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
45279                     structExtension_out));
45280             break;
45281         }
45282         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
45283             unmarshal_VkPipelineRenderingCreateInfo(
45284                 vkStream, rootType,
45285                 reinterpret_cast<VkPipelineRenderingCreateInfo*>(structExtension_out));
45286             break;
45287         }
45288         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
45289             unmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
45290                 vkStream, rootType,
45291                 reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension_out));
45292             break;
45293         }
45294         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
45295             unmarshal_VkCommandBufferInheritanceRenderingInfo(
45296                 vkStream, rootType,
45297                 reinterpret_cast<VkCommandBufferInheritanceRenderingInfo*>(structExtension_out));
45298             break;
45299         }
45300         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
45301             unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
45302                 vkStream, rootType,
45303                 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
45304                     structExtension_out));
45305             break;
45306         }
45307         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
45308             unmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
45309                 vkStream, rootType,
45310                 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties*>(
45311                     structExtension_out));
45312             break;
45313         }
45314         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
45315             unmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
45316                 vkStream, rootType,
45317                 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties*>(
45318                     structExtension_out));
45319             break;
45320         }
45321         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
45322             unmarshal_VkFormatProperties3(
45323                 vkStream, rootType, reinterpret_cast<VkFormatProperties3*>(structExtension_out));
45324             break;
45325         }
45326         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
45327             unmarshal_VkPhysicalDeviceMaintenance4Features(
45328                 vkStream, rootType,
45329                 reinterpret_cast<VkPhysicalDeviceMaintenance4Features*>(structExtension_out));
45330             break;
45331         }
45332         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
45333             unmarshal_VkPhysicalDeviceMaintenance4Properties(
45334                 vkStream, rootType,
45335                 reinterpret_cast<VkPhysicalDeviceMaintenance4Properties*>(structExtension_out));
45336             break;
45337         }
45338 #endif
45339 #ifdef VK_KHR_swapchain
45340         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
45341             unmarshal_VkImageSwapchainCreateInfoKHR(
45342                 vkStream, rootType,
45343                 reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
45344             break;
45345         }
45346         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
45347             unmarshal_VkBindImageMemorySwapchainInfoKHR(
45348                 vkStream, rootType,
45349                 reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
45350             break;
45351         }
45352         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
45353             unmarshal_VkDeviceGroupPresentInfoKHR(
45354                 vkStream, rootType,
45355                 reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
45356             break;
45357         }
45358         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
45359             unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
45360                 vkStream, rootType,
45361                 reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
45362             break;
45363         }
45364 #endif
45365 #ifdef VK_KHR_display_swapchain
45366         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
45367             unmarshal_VkDisplayPresentInfoKHR(
45368                 vkStream, rootType,
45369                 reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out));
45370             break;
45371         }
45372 #endif
45373 #ifdef VK_KHR_video_queue
45374         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
45375             unmarshal_VkQueueFamilyQueryResultStatusPropertiesKHR(
45376                 vkStream, rootType,
45377                 reinterpret_cast<VkQueueFamilyQueryResultStatusPropertiesKHR*>(
45378                     structExtension_out));
45379             break;
45380         }
45381         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
45382             unmarshal_VkQueueFamilyVideoPropertiesKHR(
45383                 vkStream, rootType,
45384                 reinterpret_cast<VkQueueFamilyVideoPropertiesKHR*>(structExtension_out));
45385             break;
45386         }
45387         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
45388             unmarshal_VkVideoProfileInfoKHR(
45389                 vkStream, rootType, reinterpret_cast<VkVideoProfileInfoKHR*>(structExtension_out));
45390             break;
45391         }
45392         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
45393             unmarshal_VkVideoProfileListInfoKHR(
45394                 vkStream, rootType,
45395                 reinterpret_cast<VkVideoProfileListInfoKHR*>(structExtension_out));
45396             break;
45397         }
45398 #endif
45399 #ifdef VK_KHR_video_decode_queue
45400         case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
45401             unmarshal_VkVideoDecodeCapabilitiesKHR(
45402                 vkStream, rootType,
45403                 reinterpret_cast<VkVideoDecodeCapabilitiesKHR*>(structExtension_out));
45404             break;
45405         }
45406         case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
45407             unmarshal_VkVideoDecodeUsageInfoKHR(
45408                 vkStream, rootType,
45409                 reinterpret_cast<VkVideoDecodeUsageInfoKHR*>(structExtension_out));
45410             break;
45411         }
45412 #endif
45413 #ifdef VK_KHR_video_decode_h264
45414         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
45415             unmarshal_VkVideoDecodeH264ProfileInfoKHR(
45416                 vkStream, rootType,
45417                 reinterpret_cast<VkVideoDecodeH264ProfileInfoKHR*>(structExtension_out));
45418             break;
45419         }
45420         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
45421             unmarshal_VkVideoDecodeH264CapabilitiesKHR(
45422                 vkStream, rootType,
45423                 reinterpret_cast<VkVideoDecodeH264CapabilitiesKHR*>(structExtension_out));
45424             break;
45425         }
45426         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
45427             unmarshal_VkVideoDecodeH264SessionParametersAddInfoKHR(
45428                 vkStream, rootType,
45429                 reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoKHR*>(
45430                     structExtension_out));
45431             break;
45432         }
45433         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
45434             unmarshal_VkVideoDecodeH264SessionParametersCreateInfoKHR(
45435                 vkStream, rootType,
45436                 reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoKHR*>(
45437                     structExtension_out));
45438             break;
45439         }
45440         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
45441             unmarshal_VkVideoDecodeH264PictureInfoKHR(
45442                 vkStream, rootType,
45443                 reinterpret_cast<VkVideoDecodeH264PictureInfoKHR*>(structExtension_out));
45444             break;
45445         }
45446         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
45447             unmarshal_VkVideoDecodeH264DpbSlotInfoKHR(
45448                 vkStream, rootType,
45449                 reinterpret_cast<VkVideoDecodeH264DpbSlotInfoKHR*>(structExtension_out));
45450             break;
45451         }
45452 #endif
45453 #ifdef VK_KHR_dynamic_rendering
45454         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
45455             unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
45456                 vkStream, rootType,
45457                 reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
45458                     structExtension_out));
45459             break;
45460         }
45461         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
45462             unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
45463                 vkStream, rootType,
45464                 reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
45465                     structExtension_out));
45466             break;
45467         }
45468         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
45469             unmarshal_VkAttachmentSampleCountInfoAMD(
45470                 vkStream, rootType,
45471                 reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
45472             break;
45473         }
45474         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
45475             unmarshal_VkMultiviewPerViewAttributesInfoNVX(
45476                 vkStream, rootType,
45477                 reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
45478             break;
45479         }
45480 #endif
45481 #ifdef VK_KHR_external_memory_win32
45482         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
45483             unmarshal_VkImportMemoryWin32HandleInfoKHR(
45484                 vkStream, rootType,
45485                 reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out));
45486             break;
45487         }
45488         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: {
45489             unmarshal_VkExportMemoryWin32HandleInfoKHR(
45490                 vkStream, rootType,
45491                 reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out));
45492             break;
45493         }
45494 #endif
45495 #ifdef VK_KHR_external_memory_fd
45496         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: {
45497             unmarshal_VkImportMemoryFdInfoKHR(
45498                 vkStream, rootType,
45499                 reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out));
45500             break;
45501         }
45502 #endif
45503 #ifdef VK_KHR_win32_keyed_mutex
45504         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
45505             unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
45506                 vkStream, rootType,
45507                 reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out));
45508             break;
45509         }
45510 #endif
45511 #ifdef VK_KHR_external_semaphore_win32
45512         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: {
45513             unmarshal_VkExportSemaphoreWin32HandleInfoKHR(
45514                 vkStream, rootType,
45515                 reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out));
45516             break;
45517         }
45518         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: {
45519             unmarshal_VkD3D12FenceSubmitInfoKHR(
45520                 vkStream, rootType,
45521                 reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out));
45522             break;
45523         }
45524 #endif
45525 #ifdef VK_KHR_push_descriptor
45526         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
45527             unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
45528                 vkStream, rootType,
45529                 reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(
45530                     structExtension_out));
45531             break;
45532         }
45533 #endif
45534 #ifdef VK_KHR_incremental_present
45535         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
45536             unmarshal_VkPresentRegionsKHR(
45537                 vkStream, rootType, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
45538             break;
45539         }
45540 #endif
45541 #ifdef VK_KHR_shared_presentable_image
45542         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
45543             unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
45544                 vkStream, rootType,
45545                 reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out));
45546             break;
45547         }
45548 #endif
45549 #ifdef VK_KHR_external_fence_win32
45550         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
45551             unmarshal_VkExportFenceWin32HandleInfoKHR(
45552                 vkStream, rootType,
45553                 reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out));
45554             break;
45555         }
45556 #endif
45557 #ifdef VK_KHR_performance_query
45558         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
45559             unmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
45560                 vkStream, rootType,
45561                 reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>(
45562                     structExtension_out));
45563             break;
45564         }
45565         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
45566             unmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
45567                 vkStream, rootType,
45568                 reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>(
45569                     structExtension_out));
45570             break;
45571         }
45572         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
45573             unmarshal_VkQueryPoolPerformanceCreateInfoKHR(
45574                 vkStream, rootType,
45575                 reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>(structExtension_out));
45576             break;
45577         }
45578         case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
45579             unmarshal_VkPerformanceQuerySubmitInfoKHR(
45580                 vkStream, rootType,
45581                 reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>(structExtension_out));
45582             break;
45583         }
45584 #endif
45585 #ifdef VK_KHR_portability_subset
45586 #ifdef VK_ENABLE_BETA_EXTENSIONS
45587         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
45588             unmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
45589                 vkStream, rootType,
45590                 reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(
45591                     structExtension_out));
45592             break;
45593         }
45594 #endif  // VK_ENABLE_BETA_EXTENSIONS
45595 #ifdef VK_ENABLE_BETA_EXTENSIONS
45596         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
45597             unmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
45598                 vkStream, rootType,
45599                 reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(
45600                     structExtension_out));
45601             break;
45602         }
45603 #endif  // VK_ENABLE_BETA_EXTENSIONS
45604 #endif
45605 #ifdef VK_KHR_shader_clock
45606         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
45607             unmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(
45608                 vkStream, rootType,
45609                 reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension_out));
45610             break;
45611         }
45612 #endif
45613 #ifdef VK_KHR_video_decode_h265
45614         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
45615             unmarshal_VkVideoDecodeH265ProfileInfoKHR(
45616                 vkStream, rootType,
45617                 reinterpret_cast<VkVideoDecodeH265ProfileInfoKHR*>(structExtension_out));
45618             break;
45619         }
45620         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
45621             unmarshal_VkVideoDecodeH265CapabilitiesKHR(
45622                 vkStream, rootType,
45623                 reinterpret_cast<VkVideoDecodeH265CapabilitiesKHR*>(structExtension_out));
45624             break;
45625         }
45626         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
45627             unmarshal_VkVideoDecodeH265SessionParametersAddInfoKHR(
45628                 vkStream, rootType,
45629                 reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoKHR*>(
45630                     structExtension_out));
45631             break;
45632         }
45633         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
45634             unmarshal_VkVideoDecodeH265SessionParametersCreateInfoKHR(
45635                 vkStream, rootType,
45636                 reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoKHR*>(
45637                     structExtension_out));
45638             break;
45639         }
45640         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
45641             unmarshal_VkVideoDecodeH265PictureInfoKHR(
45642                 vkStream, rootType,
45643                 reinterpret_cast<VkVideoDecodeH265PictureInfoKHR*>(structExtension_out));
45644             break;
45645         }
45646         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
45647             unmarshal_VkVideoDecodeH265DpbSlotInfoKHR(
45648                 vkStream, rootType,
45649                 reinterpret_cast<VkVideoDecodeH265DpbSlotInfoKHR*>(structExtension_out));
45650             break;
45651         }
45652 #endif
45653 #ifdef VK_KHR_global_priority
45654         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
45655             unmarshal_VkDeviceQueueGlobalPriorityCreateInfoKHR(
45656                 vkStream, rootType,
45657                 reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoKHR*>(structExtension_out));
45658             break;
45659         }
45660         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
45661             unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(
45662                 vkStream, rootType,
45663                 reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>(
45664                     structExtension_out));
45665             break;
45666         }
45667         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
45668             unmarshal_VkQueueFamilyGlobalPriorityPropertiesKHR(
45669                 vkStream, rootType,
45670                 reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesKHR*>(structExtension_out));
45671             break;
45672         }
45673 #endif
45674 #ifdef VK_KHR_fragment_shading_rate
45675         case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
45676             unmarshal_VkFragmentShadingRateAttachmentInfoKHR(
45677                 vkStream, rootType,
45678                 reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
45679             break;
45680         }
45681         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
45682             unmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
45683                 vkStream, rootType,
45684                 reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>(
45685                     structExtension_out));
45686             break;
45687         }
45688         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
45689             unmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
45690                 vkStream, rootType,
45691                 reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(
45692                     structExtension_out));
45693             break;
45694         }
45695         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
45696             unmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
45697                 vkStream, rootType,
45698                 reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(
45699                     structExtension_out));
45700             break;
45701         }
45702 #endif
45703 #ifdef VK_KHR_surface_protected_capabilities
45704         case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
45705             unmarshal_VkSurfaceProtectedCapabilitiesKHR(
45706                 vkStream, rootType,
45707                 reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(structExtension_out));
45708             break;
45709         }
45710 #endif
45711 #ifdef VK_KHR_present_wait
45712         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
45713             unmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(
45714                 vkStream, rootType,
45715                 reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension_out));
45716             break;
45717         }
45718 #endif
45719 #ifdef VK_KHR_pipeline_executable_properties
45720         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
45721             unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
45722                 vkStream, rootType,
45723                 reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
45724                     structExtension_out));
45725             break;
45726         }
45727 #endif
45728 #ifdef VK_KHR_pipeline_library
45729         case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
45730             unmarshal_VkPipelineLibraryCreateInfoKHR(
45731                 vkStream, rootType,
45732                 reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>(structExtension_out));
45733             break;
45734         }
45735 #endif
45736 #ifdef VK_KHR_present_id
45737         case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
45738             unmarshal_VkPresentIdKHR(vkStream, rootType,
45739                                      reinterpret_cast<VkPresentIdKHR*>(structExtension_out));
45740             break;
45741         }
45742         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
45743             unmarshal_VkPhysicalDevicePresentIdFeaturesKHR(
45744                 vkStream, rootType,
45745                 reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension_out));
45746             break;
45747         }
45748 #endif
45749 #ifdef VK_KHR_video_encode_queue
45750 #ifdef VK_ENABLE_BETA_EXTENSIONS
45751         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
45752             unmarshal_VkVideoEncodeCapabilitiesKHR(
45753                 vkStream, rootType,
45754                 reinterpret_cast<VkVideoEncodeCapabilitiesKHR*>(structExtension_out));
45755             break;
45756         }
45757 #endif  // VK_ENABLE_BETA_EXTENSIONS
45758 #ifdef VK_ENABLE_BETA_EXTENSIONS
45759         case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
45760             unmarshal_VkQueryPoolVideoEncodeFeedbackCreateInfoKHR(
45761                 vkStream, rootType,
45762                 reinterpret_cast<VkQueryPoolVideoEncodeFeedbackCreateInfoKHR*>(
45763                     structExtension_out));
45764             break;
45765         }
45766 #endif  // VK_ENABLE_BETA_EXTENSIONS
45767 #ifdef VK_ENABLE_BETA_EXTENSIONS
45768         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
45769             unmarshal_VkVideoEncodeUsageInfoKHR(
45770                 vkStream, rootType,
45771                 reinterpret_cast<VkVideoEncodeUsageInfoKHR*>(structExtension_out));
45772             break;
45773         }
45774 #endif  // VK_ENABLE_BETA_EXTENSIONS
45775 #ifdef VK_ENABLE_BETA_EXTENSIONS
45776         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: {
45777             unmarshal_VkVideoEncodeRateControlLayerInfoKHR(
45778                 vkStream, rootType,
45779                 reinterpret_cast<VkVideoEncodeRateControlLayerInfoKHR*>(structExtension_out));
45780             break;
45781         }
45782 #endif  // VK_ENABLE_BETA_EXTENSIONS
45783 #ifdef VK_ENABLE_BETA_EXTENSIONS
45784         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
45785             unmarshal_VkVideoEncodeRateControlInfoKHR(
45786                 vkStream, rootType,
45787                 reinterpret_cast<VkVideoEncodeRateControlInfoKHR*>(structExtension_out));
45788             break;
45789         }
45790 #endif  // VK_ENABLE_BETA_EXTENSIONS
45791 #endif
45792 #ifdef VK_KHR_synchronization2
45793         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
45794             unmarshal_VkQueueFamilyCheckpointProperties2NV(
45795                 vkStream, rootType,
45796                 reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
45797             break;
45798         }
45799 #endif
45800 #ifdef VK_KHR_fragment_shader_barycentric
45801         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
45802             unmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(
45803                 vkStream, rootType,
45804                 reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>(
45805                     structExtension_out));
45806             break;
45807         }
45808         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
45809             unmarshal_VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(
45810                 vkStream, rootType,
45811                 reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR*>(
45812                     structExtension_out));
45813             break;
45814         }
45815 #endif
45816 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
45817         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
45818             unmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
45819                 vkStream, rootType,
45820                 reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(
45821                     structExtension_out));
45822             break;
45823         }
45824 #endif
45825 #ifdef VK_KHR_workgroup_memory_explicit_layout
45826         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
45827             unmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
45828                 vkStream, rootType,
45829                 reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(
45830                     structExtension_out));
45831             break;
45832         }
45833 #endif
45834 #ifdef VK_KHR_ray_tracing_maintenance1
45835         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
45836             unmarshal_VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(
45837                 vkStream, rootType,
45838                 reinterpret_cast<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>(
45839                     structExtension_out));
45840             break;
45841         }
45842 #endif
45843 #ifdef VK_KHR_ray_tracing_position_fetch
45844         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
45845             unmarshal_VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(
45846                 vkStream, rootType,
45847                 reinterpret_cast<VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR*>(
45848                     structExtension_out));
45849             break;
45850         }
45851 #endif
45852 #ifdef VK_ANDROID_native_buffer
45853         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
45854             unmarshal_VkNativeBufferANDROID(
45855                 vkStream, rootType, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
45856             break;
45857         }
45858 #endif
45859 #ifdef VK_EXT_debug_report
45860         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
45861             unmarshal_VkDebugReportCallbackCreateInfoEXT(
45862                 vkStream, rootType,
45863                 reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out));
45864             break;
45865         }
45866 #endif
45867 #ifdef VK_AMD_rasterization_order
45868         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
45869             unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(
45870                 vkStream, rootType,
45871                 reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(
45872                     structExtension_out));
45873             break;
45874         }
45875 #endif
45876 #ifdef VK_NV_dedicated_allocation
45877         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
45878             unmarshal_VkDedicatedAllocationImageCreateInfoNV(
45879                 vkStream, rootType,
45880                 reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out));
45881             break;
45882         }
45883         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
45884             unmarshal_VkDedicatedAllocationBufferCreateInfoNV(
45885                 vkStream, rootType,
45886                 reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out));
45887             break;
45888         }
45889         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
45890             unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
45891                 vkStream, rootType,
45892                 reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out));
45893             break;
45894         }
45895 #endif
45896 #ifdef VK_EXT_transform_feedback
45897         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
45898             unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
45899                 vkStream, rootType,
45900                 reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
45901                     structExtension_out));
45902             break;
45903         }
45904         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
45905             unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
45906                 vkStream, rootType,
45907                 reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
45908                     structExtension_out));
45909             break;
45910         }
45911         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
45912             unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
45913                 vkStream, rootType,
45914                 reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(
45915                     structExtension_out));
45916             break;
45917         }
45918 #endif
45919 #ifdef VK_EXT_video_encode_h264
45920 #ifdef VK_ENABLE_BETA_EXTENSIONS
45921         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
45922             unmarshal_VkVideoEncodeH264CapabilitiesEXT(
45923                 vkStream, rootType,
45924                 reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT*>(structExtension_out));
45925             break;
45926         }
45927 #endif  // VK_ENABLE_BETA_EXTENSIONS
45928 #ifdef VK_ENABLE_BETA_EXTENSIONS
45929         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
45930             unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
45931                 vkStream, rootType,
45932                 reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>(
45933                     structExtension_out));
45934             break;
45935         }
45936 #endif  // VK_ENABLE_BETA_EXTENSIONS
45937 #ifdef VK_ENABLE_BETA_EXTENSIONS
45938         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
45939             unmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
45940                 vkStream, rootType,
45941                 reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>(
45942                     structExtension_out));
45943             break;
45944         }
45945 #endif  // VK_ENABLE_BETA_EXTENSIONS
45946 #ifdef VK_ENABLE_BETA_EXTENSIONS
45947         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: {
45948             unmarshal_VkVideoEncodeH264VclFrameInfoEXT(
45949                 vkStream, rootType,
45950                 reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT*>(structExtension_out));
45951             break;
45952         }
45953 #endif  // VK_ENABLE_BETA_EXTENSIONS
45954 #ifdef VK_ENABLE_BETA_EXTENSIONS
45955         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
45956             unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(
45957                 vkStream, rootType,
45958                 reinterpret_cast<VkVideoEncodeH264DpbSlotInfoEXT*>(structExtension_out));
45959             break;
45960         }
45961 #endif  // VK_ENABLE_BETA_EXTENSIONS
45962 #ifdef VK_ENABLE_BETA_EXTENSIONS
45963         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
45964             unmarshal_VkVideoEncodeH264ProfileInfoEXT(
45965                 vkStream, rootType,
45966                 reinterpret_cast<VkVideoEncodeH264ProfileInfoEXT*>(structExtension_out));
45967             break;
45968         }
45969 #endif  // VK_ENABLE_BETA_EXTENSIONS
45970 #ifdef VK_ENABLE_BETA_EXTENSIONS
45971         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
45972             unmarshal_VkVideoEncodeH264RateControlInfoEXT(
45973                 vkStream, rootType,
45974                 reinterpret_cast<VkVideoEncodeH264RateControlInfoEXT*>(structExtension_out));
45975             break;
45976         }
45977 #endif  // VK_ENABLE_BETA_EXTENSIONS
45978 #ifdef VK_ENABLE_BETA_EXTENSIONS
45979         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
45980             unmarshal_VkVideoEncodeH264RateControlLayerInfoEXT(
45981                 vkStream, rootType,
45982                 reinterpret_cast<VkVideoEncodeH264RateControlLayerInfoEXT*>(structExtension_out));
45983             break;
45984         }
45985 #endif  // VK_ENABLE_BETA_EXTENSIONS
45986 #endif
45987 #ifdef VK_EXT_video_encode_h265
45988 #ifdef VK_ENABLE_BETA_EXTENSIONS
45989         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
45990             unmarshal_VkVideoEncodeH265CapabilitiesEXT(
45991                 vkStream, rootType,
45992                 reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT*>(structExtension_out));
45993             break;
45994         }
45995 #endif  // VK_ENABLE_BETA_EXTENSIONS
45996 #ifdef VK_ENABLE_BETA_EXTENSIONS
45997         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
45998             unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
45999                 vkStream, rootType,
46000                 reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>(
46001                     structExtension_out));
46002             break;
46003         }
46004 #endif  // VK_ENABLE_BETA_EXTENSIONS
46005 #ifdef VK_ENABLE_BETA_EXTENSIONS
46006         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
46007             unmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
46008                 vkStream, rootType,
46009                 reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>(
46010                     structExtension_out));
46011             break;
46012         }
46013 #endif  // VK_ENABLE_BETA_EXTENSIONS
46014 #ifdef VK_ENABLE_BETA_EXTENSIONS
46015         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: {
46016             unmarshal_VkVideoEncodeH265VclFrameInfoEXT(
46017                 vkStream, rootType,
46018                 reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT*>(structExtension_out));
46019             break;
46020         }
46021 #endif  // VK_ENABLE_BETA_EXTENSIONS
46022 #ifdef VK_ENABLE_BETA_EXTENSIONS
46023         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
46024             unmarshal_VkVideoEncodeH265DpbSlotInfoEXT(
46025                 vkStream, rootType,
46026                 reinterpret_cast<VkVideoEncodeH265DpbSlotInfoEXT*>(structExtension_out));
46027             break;
46028         }
46029 #endif  // VK_ENABLE_BETA_EXTENSIONS
46030 #ifdef VK_ENABLE_BETA_EXTENSIONS
46031         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
46032             unmarshal_VkVideoEncodeH265ProfileInfoEXT(
46033                 vkStream, rootType,
46034                 reinterpret_cast<VkVideoEncodeH265ProfileInfoEXT*>(structExtension_out));
46035             break;
46036         }
46037 #endif  // VK_ENABLE_BETA_EXTENSIONS
46038 #ifdef VK_ENABLE_BETA_EXTENSIONS
46039         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
46040             unmarshal_VkVideoEncodeH265RateControlInfoEXT(
46041                 vkStream, rootType,
46042                 reinterpret_cast<VkVideoEncodeH265RateControlInfoEXT*>(structExtension_out));
46043             break;
46044         }
46045 #endif  // VK_ENABLE_BETA_EXTENSIONS
46046 #ifdef VK_ENABLE_BETA_EXTENSIONS
46047         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
46048             unmarshal_VkVideoEncodeH265RateControlLayerInfoEXT(
46049                 vkStream, rootType,
46050                 reinterpret_cast<VkVideoEncodeH265RateControlLayerInfoEXT*>(structExtension_out));
46051             break;
46052         }
46053 #endif  // VK_ENABLE_BETA_EXTENSIONS
46054 #endif
46055 #ifdef VK_AMD_texture_gather_bias_lod
46056         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
46057             unmarshal_VkTextureLODGatherFormatPropertiesAMD(
46058                 vkStream, rootType,
46059                 reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out));
46060             break;
46061         }
46062 #endif
46063 #ifdef VK_NV_corner_sampled_image
46064         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
46065             unmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
46066                 vkStream, rootType,
46067                 reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(
46068                     structExtension_out));
46069             break;
46070         }
46071 #endif
46072 #ifdef VK_NV_external_memory
46073         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
46074             unmarshal_VkExternalMemoryImageCreateInfoNV(
46075                 vkStream, rootType,
46076                 reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out));
46077             break;
46078         }
46079         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
46080             unmarshal_VkExportMemoryAllocateInfoNV(
46081                 vkStream, rootType,
46082                 reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out));
46083             break;
46084         }
46085 #endif
46086 #ifdef VK_NV_external_memory_win32
46087         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
46088             unmarshal_VkImportMemoryWin32HandleInfoNV(
46089                 vkStream, rootType,
46090                 reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out));
46091             break;
46092         }
46093         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
46094             unmarshal_VkExportMemoryWin32HandleInfoNV(
46095                 vkStream, rootType,
46096                 reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out));
46097             break;
46098         }
46099 #endif
46100 #ifdef VK_NV_win32_keyed_mutex
46101         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
46102             unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
46103                 vkStream, rootType,
46104                 reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out));
46105             break;
46106         }
46107 #endif
46108 #ifdef VK_EXT_validation_flags
46109         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
46110             unmarshal_VkValidationFlagsEXT(
46111                 vkStream, rootType, reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out));
46112             break;
46113         }
46114 #endif
46115 #ifdef VK_EXT_astc_decode_mode
46116         case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
46117             unmarshal_VkImageViewASTCDecodeModeEXT(
46118                 vkStream, rootType,
46119                 reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(structExtension_out));
46120             break;
46121         }
46122         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
46123             unmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
46124                 vkStream, rootType,
46125                 reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension_out));
46126             break;
46127         }
46128 #endif
46129 #ifdef VK_EXT_pipeline_robustness
46130         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
46131             unmarshal_VkPhysicalDevicePipelineRobustnessFeaturesEXT(
46132                 vkStream, rootType,
46133                 reinterpret_cast<VkPhysicalDevicePipelineRobustnessFeaturesEXT*>(
46134                     structExtension_out));
46135             break;
46136         }
46137         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
46138             unmarshal_VkPhysicalDevicePipelineRobustnessPropertiesEXT(
46139                 vkStream, rootType,
46140                 reinterpret_cast<VkPhysicalDevicePipelineRobustnessPropertiesEXT*>(
46141                     structExtension_out));
46142             break;
46143         }
46144         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
46145             unmarshal_VkPipelineRobustnessCreateInfoEXT(
46146                 vkStream, rootType,
46147                 reinterpret_cast<VkPipelineRobustnessCreateInfoEXT*>(structExtension_out));
46148             break;
46149         }
46150 #endif
46151 #ifdef VK_EXT_conditional_rendering
46152         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
46153             unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
46154                 vkStream, rootType,
46155                 reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(
46156                     structExtension_out));
46157             break;
46158         }
46159         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
46160             unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
46161                 vkStream, rootType,
46162                 reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(
46163                     structExtension_out));
46164             break;
46165         }
46166 #endif
46167 #ifdef VK_NV_clip_space_w_scaling
46168         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
46169             unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(
46170                 vkStream, rootType,
46171                 reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(
46172                     structExtension_out));
46173             break;
46174         }
46175 #endif
46176 #ifdef VK_EXT_display_control
46177         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
46178             unmarshal_VkSwapchainCounterCreateInfoEXT(
46179                 vkStream, rootType,
46180                 reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out));
46181             break;
46182         }
46183 #endif
46184 #ifdef VK_GOOGLE_display_timing
46185         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
46186             unmarshal_VkPresentTimesInfoGOOGLE(
46187                 vkStream, rootType,
46188                 reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out));
46189             break;
46190         }
46191 #endif
46192 #ifdef VK_NVX_multiview_per_view_attributes
46193         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
46194             unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
46195                 vkStream, rootType,
46196                 reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(
46197                     structExtension_out));
46198             break;
46199         }
46200 #endif
46201 #ifdef VK_NV_viewport_swizzle
46202         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
46203             unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(
46204                 vkStream, rootType,
46205                 reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out));
46206             break;
46207         }
46208 #endif
46209 #ifdef VK_EXT_discard_rectangles
46210         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
46211             unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
46212                 vkStream, rootType,
46213                 reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(
46214                     structExtension_out));
46215             break;
46216         }
46217         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
46218             unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
46219                 vkStream, rootType,
46220                 reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(
46221                     structExtension_out));
46222             break;
46223         }
46224 #endif
46225 #ifdef VK_EXT_conservative_rasterization
46226         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
46227             unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
46228                 vkStream, rootType,
46229                 reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(
46230                     structExtension_out));
46231             break;
46232         }
46233         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
46234             unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
46235                 vkStream, rootType,
46236                 reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(
46237                     structExtension_out));
46238             break;
46239         }
46240 #endif
46241 #ifdef VK_EXT_depth_clip_enable
46242         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
46243             unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
46244                 vkStream, rootType,
46245                 reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
46246             break;
46247         }
46248         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
46249             unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
46250                 vkStream, rootType,
46251                 reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
46252                     structExtension_out));
46253             break;
46254         }
46255 #endif
46256 #ifdef VK_EXT_debug_utils
46257         case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
46258             unmarshal_VkDebugUtilsObjectNameInfoEXT(
46259                 vkStream, rootType,
46260                 reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(structExtension_out));
46261             break;
46262         }
46263         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
46264             unmarshal_VkDebugUtilsMessengerCreateInfoEXT(
46265                 vkStream, rootType,
46266                 reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out));
46267             break;
46268         }
46269 #endif
46270 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
46271         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: {
46272             unmarshal_VkAndroidHardwareBufferUsageANDROID(
46273                 vkStream, rootType,
46274                 reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out));
46275             break;
46276         }
46277         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: {
46278             unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
46279                 vkStream, rootType,
46280                 reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(
46281                     structExtension_out));
46282             break;
46283         }
46284         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: {
46285             unmarshal_VkImportAndroidHardwareBufferInfoANDROID(
46286                 vkStream, rootType,
46287                 reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out));
46288             break;
46289         }
46290         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: {
46291             unmarshal_VkExternalFormatANDROID(
46292                 vkStream, rootType,
46293                 reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
46294             break;
46295         }
46296         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: {
46297             unmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
46298                 vkStream, rootType,
46299                 reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID*>(
46300                     structExtension_out));
46301             break;
46302         }
46303 #endif
46304 #ifdef VK_EXT_sample_locations
46305         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
46306             unmarshal_VkSampleLocationsInfoEXT(
46307                 vkStream, rootType,
46308                 reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out));
46309             break;
46310         }
46311         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
46312             unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(
46313                 vkStream, rootType,
46314                 reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out));
46315             break;
46316         }
46317         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
46318             unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(
46319                 vkStream, rootType,
46320                 reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(
46321                     structExtension_out));
46322             break;
46323         }
46324         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
46325             unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
46326                 vkStream, rootType,
46327                 reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(
46328                     structExtension_out));
46329             break;
46330         }
46331 #endif
46332 #ifdef VK_EXT_blend_operation_advanced
46333         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
46334             unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
46335                 vkStream, rootType,
46336                 reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(
46337                     structExtension_out));
46338             break;
46339         }
46340         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
46341             unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
46342                 vkStream, rootType,
46343                 reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(
46344                     structExtension_out));
46345             break;
46346         }
46347         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
46348             unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
46349                 vkStream, rootType,
46350                 reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(
46351                     structExtension_out));
46352             break;
46353         }
46354 #endif
46355 #ifdef VK_NV_fragment_coverage_to_color
46356         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
46357             unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(
46358                 vkStream, rootType,
46359                 reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out));
46360             break;
46361         }
46362 #endif
46363 #ifdef VK_NV_framebuffer_mixed_samples
46364         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
46365             unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(
46366                 vkStream, rootType,
46367                 reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(
46368                     structExtension_out));
46369             break;
46370         }
46371 #endif
46372 #ifdef VK_NV_shader_sm_builtins
46373         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
46374             unmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
46375                 vkStream, rootType,
46376                 reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(
46377                     structExtension_out));
46378             break;
46379         }
46380         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
46381             unmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
46382                 vkStream, rootType,
46383                 reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension_out));
46384             break;
46385         }
46386 #endif
46387 #ifdef VK_EXT_image_drm_format_modifier
46388         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
46389             unmarshal_VkDrmFormatModifierPropertiesListEXT(
46390                 vkStream, rootType,
46391                 reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
46392             break;
46393         }
46394         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
46395             unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
46396                 vkStream, rootType,
46397                 reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
46398                     structExtension_out));
46399             break;
46400         }
46401         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
46402             unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
46403                 vkStream, rootType,
46404                 reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
46405             break;
46406         }
46407         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
46408             unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
46409                 vkStream, rootType,
46410                 reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
46411                     structExtension_out));
46412             break;
46413         }
46414         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
46415             unmarshal_VkDrmFormatModifierPropertiesList2EXT(
46416                 vkStream, rootType,
46417                 reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
46418             break;
46419         }
46420 #endif
46421 #ifdef VK_EXT_validation_cache
46422         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
46423             unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
46424                 vkStream, rootType,
46425                 reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out));
46426             break;
46427         }
46428 #endif
46429 #ifdef VK_NV_shading_rate_image
46430         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
46431             unmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
46432                 vkStream, rootType,
46433                 reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(
46434                     structExtension_out));
46435             break;
46436         }
46437         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
46438             unmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
46439                 vkStream, rootType,
46440                 reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension_out));
46441             break;
46442         }
46443         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
46444             unmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
46445                 vkStream, rootType,
46446                 reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(
46447                     structExtension_out));
46448             break;
46449         }
46450         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
46451             unmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
46452                 vkStream, rootType,
46453                 reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(
46454                     structExtension_out));
46455             break;
46456         }
46457 #endif
46458 #ifdef VK_NV_ray_tracing
46459         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
46460             unmarshal_VkWriteDescriptorSetAccelerationStructureNV(
46461                 vkStream, rootType,
46462                 reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(
46463                     structExtension_out));
46464             break;
46465         }
46466         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
46467             unmarshal_VkPhysicalDeviceRayTracingPropertiesNV(
46468                 vkStream, rootType,
46469                 reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension_out));
46470             break;
46471         }
46472 #endif
46473 #ifdef VK_NV_representative_fragment_test
46474         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
46475             unmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
46476                 vkStream, rootType,
46477                 reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(
46478                     structExtension_out));
46479             break;
46480         }
46481         case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
46482             unmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
46483                 vkStream, rootType,
46484                 reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(
46485                     structExtension_out));
46486             break;
46487         }
46488 #endif
46489 #ifdef VK_EXT_filter_cubic
46490         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
46491             unmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
46492                 vkStream, rootType,
46493                 reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(
46494                     structExtension_out));
46495             break;
46496         }
46497         case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
46498             unmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
46499                 vkStream, rootType,
46500                 reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(
46501                     structExtension_out));
46502             break;
46503         }
46504 #endif
46505 #ifdef VK_EXT_external_memory_host
46506         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
46507             unmarshal_VkImportMemoryHostPointerInfoEXT(
46508                 vkStream, rootType,
46509                 reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out));
46510             break;
46511         }
46512         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
46513             unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
46514                 vkStream, rootType,
46515                 reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(
46516                     structExtension_out));
46517             break;
46518         }
46519 #endif
46520 #ifdef VK_AMD_pipeline_compiler_control
46521         case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
46522             unmarshal_VkPipelineCompilerControlCreateInfoAMD(
46523                 vkStream, rootType,
46524                 reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(structExtension_out));
46525             break;
46526         }
46527 #endif
46528 #ifdef VK_AMD_shader_core_properties
46529         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
46530             unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
46531                 vkStream, rootType,
46532                 reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out));
46533             break;
46534         }
46535 #endif
46536 #ifdef VK_AMD_memory_overallocation_behavior
46537         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
46538             unmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
46539                 vkStream, rootType,
46540                 reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension_out));
46541             break;
46542         }
46543 #endif
46544 #ifdef VK_EXT_vertex_attribute_divisor
46545         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
46546             unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
46547                 vkStream, rootType,
46548                 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
46549                     structExtension_out));
46550             break;
46551         }
46552         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
46553             unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
46554                 vkStream, rootType,
46555                 reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(
46556                     structExtension_out));
46557             break;
46558         }
46559         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
46560             unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
46561                 vkStream, rootType,
46562                 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(
46563                     structExtension_out));
46564             break;
46565         }
46566 #endif
46567 #ifdef VK_GGP_frame_token
46568         case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
46569             unmarshal_VkPresentFrameTokenGGP(
46570                 vkStream, rootType, reinterpret_cast<VkPresentFrameTokenGGP*>(structExtension_out));
46571             break;
46572         }
46573 #endif
46574 #ifdef VK_NV_compute_shader_derivatives
46575         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
46576             unmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
46577                 vkStream, rootType,
46578                 reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(
46579                     structExtension_out));
46580             break;
46581         }
46582 #endif
46583 #ifdef VK_NV_mesh_shader
46584         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
46585             unmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(
46586                 vkStream, rootType,
46587                 reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension_out));
46588             break;
46589         }
46590         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
46591             unmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(
46592                 vkStream, rootType,
46593                 reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension_out));
46594             break;
46595         }
46596 #endif
46597 #ifdef VK_NV_shader_image_footprint
46598         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
46599             unmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
46600                 vkStream, rootType,
46601                 reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(
46602                     structExtension_out));
46603             break;
46604         }
46605 #endif
46606 #ifdef VK_NV_scissor_exclusive
46607         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
46608             unmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
46609                 vkStream, rootType,
46610                 reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(
46611                     structExtension_out));
46612             break;
46613         }
46614         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
46615             unmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
46616                 vkStream, rootType,
46617                 reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension_out));
46618             break;
46619         }
46620 #endif
46621 #ifdef VK_NV_device_diagnostic_checkpoints
46622         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: {
46623             unmarshal_VkQueueFamilyCheckpointPropertiesNV(
46624                 vkStream, rootType,
46625                 reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out));
46626             break;
46627         }
46628 #endif
46629 #ifdef VK_INTEL_shader_integer_functions2
46630         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
46631             unmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
46632                 vkStream, rootType,
46633                 reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(
46634                     structExtension_out));
46635             break;
46636         }
46637 #endif
46638 #ifdef VK_INTEL_performance_query
46639         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
46640             unmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
46641                 vkStream, rootType,
46642                 reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension_out));
46643             break;
46644         }
46645 #endif
46646 #ifdef VK_EXT_pci_bus_info
46647         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
46648             unmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
46649                 vkStream, rootType,
46650                 reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension_out));
46651             break;
46652         }
46653 #endif
46654 #ifdef VK_AMD_display_native_hdr
46655         case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
46656             unmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
46657                 vkStream, rootType,
46658                 reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension_out));
46659             break;
46660         }
46661         case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
46662             unmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
46663                 vkStream, rootType,
46664                 reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension_out));
46665             break;
46666         }
46667 #endif
46668 #ifdef VK_EXT_fragment_density_map
46669         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
46670             switch (rootType) {
46671                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
46672                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
46673                         vkStream, rootType,
46674                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
46675                             structExtension_out));
46676                     break;
46677                 }
46678                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
46679                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
46680                         vkStream, rootType,
46681                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
46682                             structExtension_out));
46683                     break;
46684                 }
46685                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
46686                     unmarshal_VkImportColorBufferGOOGLE(
46687                         vkStream, rootType,
46688                         reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
46689                     break;
46690                 }
46691                 default: {
46692                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
46693                         vkStream, rootType,
46694                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
46695                             structExtension_out));
46696                     break;
46697                 }
46698             }
46699             break;
46700         }
46701         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
46702             switch (rootType) {
46703                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
46704                     unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
46705                         vkStream, rootType,
46706                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
46707                             structExtension_out));
46708                     break;
46709                 }
46710                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
46711                     unmarshal_VkCreateBlobGOOGLE(
46712                         vkStream, rootType,
46713                         reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out));
46714                     break;
46715                 }
46716                 default: {
46717                     unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
46718                         vkStream, rootType,
46719                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
46720                             structExtension_out));
46721                     break;
46722                 }
46723             }
46724             break;
46725         }
46726         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
46727             switch (rootType) {
46728                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
46729                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
46730                         vkStream, rootType,
46731                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
46732                             structExtension_out));
46733                     break;
46734                 }
46735                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
46736                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
46737                         vkStream, rootType,
46738                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
46739                             structExtension_out));
46740                     break;
46741                 }
46742                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
46743                     unmarshal_VkImportBufferGOOGLE(
46744                         vkStream, rootType,
46745                         reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
46746                     break;
46747                 }
46748                 default: {
46749                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
46750                         vkStream, rootType,
46751                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
46752                             structExtension_out));
46753                     break;
46754                 }
46755             }
46756             break;
46757         }
46758 #endif
46759 #ifdef VK_AMD_shader_core_properties2
46760         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
46761             unmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(
46762                 vkStream, rootType,
46763                 reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension_out));
46764             break;
46765         }
46766 #endif
46767 #ifdef VK_AMD_device_coherent_memory
46768         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
46769             unmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
46770                 vkStream, rootType,
46771                 reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension_out));
46772             break;
46773         }
46774 #endif
46775 #ifdef VK_EXT_shader_image_atomic_int64
46776         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
46777             unmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
46778                 vkStream, rootType,
46779                 reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(
46780                     structExtension_out));
46781             break;
46782         }
46783 #endif
46784 #ifdef VK_EXT_memory_budget
46785         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
46786             unmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
46787                 vkStream, rootType,
46788                 reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension_out));
46789             break;
46790         }
46791 #endif
46792 #ifdef VK_EXT_memory_priority
46793         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
46794             unmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
46795                 vkStream, rootType,
46796                 reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension_out));
46797             break;
46798         }
46799         case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
46800             unmarshal_VkMemoryPriorityAllocateInfoEXT(
46801                 vkStream, rootType,
46802                 reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(structExtension_out));
46803             break;
46804         }
46805 #endif
46806 #ifdef VK_NV_dedicated_allocation_image_aliasing
46807         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
46808             unmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
46809                 vkStream, rootType,
46810                 reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(
46811                     structExtension_out));
46812             break;
46813         }
46814 #endif
46815 #ifdef VK_EXT_buffer_device_address
46816         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
46817             unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
46818                 vkStream, rootType,
46819                 reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(
46820                     structExtension_out));
46821             break;
46822         }
46823         case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
46824             unmarshal_VkBufferDeviceAddressCreateInfoEXT(
46825                 vkStream, rootType,
46826                 reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(structExtension_out));
46827             break;
46828         }
46829 #endif
46830 #ifdef VK_EXT_validation_features
46831         case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
46832             unmarshal_VkValidationFeaturesEXT(
46833                 vkStream, rootType,
46834                 reinterpret_cast<VkValidationFeaturesEXT*>(structExtension_out));
46835             break;
46836         }
46837 #endif
46838 #ifdef VK_NV_cooperative_matrix
46839         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
46840             unmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
46841                 vkStream, rootType,
46842                 reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(
46843                     structExtension_out));
46844             break;
46845         }
46846         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
46847             unmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
46848                 vkStream, rootType,
46849                 reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(
46850                     structExtension_out));
46851             break;
46852         }
46853 #endif
46854 #ifdef VK_NV_coverage_reduction_mode
46855         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
46856             unmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
46857                 vkStream, rootType,
46858                 reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(
46859                     structExtension_out));
46860             break;
46861         }
46862         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
46863             unmarshal_VkPipelineCoverageReductionStateCreateInfoNV(
46864                 vkStream, rootType,
46865                 reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(
46866                     structExtension_out));
46867             break;
46868         }
46869 #endif
46870 #ifdef VK_EXT_fragment_shader_interlock
46871         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
46872             unmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
46873                 vkStream, rootType,
46874                 reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(
46875                     structExtension_out));
46876             break;
46877         }
46878 #endif
46879 #ifdef VK_EXT_ycbcr_image_arrays
46880         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
46881             unmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
46882                 vkStream, rootType,
46883                 reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(
46884                     structExtension_out));
46885             break;
46886         }
46887 #endif
46888 #ifdef VK_EXT_provoking_vertex
46889         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
46890             unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
46891                 vkStream, rootType,
46892                 reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
46893             break;
46894         }
46895         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
46896             unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
46897                 vkStream, rootType,
46898                 reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
46899                     structExtension_out));
46900             break;
46901         }
46902         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
46903             unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
46904                 vkStream, rootType,
46905                 reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
46906                     structExtension_out));
46907             break;
46908         }
46909 #endif
46910 #ifdef VK_EXT_full_screen_exclusive
46911         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
46912             unmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
46913                 vkStream, rootType,
46914                 reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension_out));
46915             break;
46916         }
46917         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
46918             unmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
46919                 vkStream, rootType,
46920                 reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(
46921                     structExtension_out));
46922             break;
46923         }
46924         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
46925             unmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
46926                 vkStream, rootType,
46927                 reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension_out));
46928             break;
46929         }
46930 #endif
46931 #ifdef VK_EXT_line_rasterization
46932         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: {
46933             unmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
46934                 vkStream, rootType,
46935                 reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(
46936                     structExtension_out));
46937             break;
46938         }
46939         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: {
46940             unmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
46941                 vkStream, rootType,
46942                 reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(
46943                     structExtension_out));
46944             break;
46945         }
46946         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: {
46947             unmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(
46948                 vkStream, rootType,
46949                 reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(
46950                     structExtension_out));
46951             break;
46952         }
46953 #endif
46954 #ifdef VK_EXT_shader_atomic_float
46955         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
46956             unmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
46957                 vkStream, rootType,
46958                 reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(
46959                     structExtension_out));
46960             break;
46961         }
46962 #endif
46963 #ifdef VK_EXT_index_type_uint8
46964         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
46965             unmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
46966                 vkStream, rootType,
46967                 reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out));
46968             break;
46969         }
46970 #endif
46971 #ifdef VK_EXT_extended_dynamic_state
46972         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
46973             unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
46974                 vkStream, rootType,
46975                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
46976                     structExtension_out));
46977             break;
46978         }
46979 #endif
46980 #ifdef VK_EXT_shader_atomic_float2
46981         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
46982             unmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
46983                 vkStream, rootType,
46984                 reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(
46985                     structExtension_out));
46986             break;
46987         }
46988 #endif
46989 #ifdef VK_EXT_surface_maintenance1
46990         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
46991             unmarshal_VkSurfacePresentModeEXT(
46992                 vkStream, rootType,
46993                 reinterpret_cast<VkSurfacePresentModeEXT*>(structExtension_out));
46994             break;
46995         }
46996         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
46997             unmarshal_VkSurfacePresentScalingCapabilitiesEXT(
46998                 vkStream, rootType,
46999                 reinterpret_cast<VkSurfacePresentScalingCapabilitiesEXT*>(structExtension_out));
47000             break;
47001         }
47002         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
47003             unmarshal_VkSurfacePresentModeCompatibilityEXT(
47004                 vkStream, rootType,
47005                 reinterpret_cast<VkSurfacePresentModeCompatibilityEXT*>(structExtension_out));
47006             break;
47007         }
47008 #endif
47009 #ifdef VK_EXT_swapchain_maintenance1
47010         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
47011             unmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
47012                 vkStream, rootType,
47013                 reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
47014                     structExtension_out));
47015             break;
47016         }
47017         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
47018             unmarshal_VkSwapchainPresentFenceInfoEXT(
47019                 vkStream, rootType,
47020                 reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>(structExtension_out));
47021             break;
47022         }
47023         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
47024             unmarshal_VkSwapchainPresentModesCreateInfoEXT(
47025                 vkStream, rootType,
47026                 reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>(structExtension_out));
47027             break;
47028         }
47029         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
47030             unmarshal_VkSwapchainPresentModeInfoEXT(
47031                 vkStream, rootType,
47032                 reinterpret_cast<VkSwapchainPresentModeInfoEXT*>(structExtension_out));
47033             break;
47034         }
47035         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
47036             unmarshal_VkSwapchainPresentScalingCreateInfoEXT(
47037                 vkStream, rootType,
47038                 reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>(structExtension_out));
47039             break;
47040         }
47041 #endif
47042 #ifdef VK_NV_device_generated_commands
47043         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
47044             unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
47045                 vkStream, rootType,
47046                 reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(
47047                     structExtension_out));
47048             break;
47049         }
47050         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
47051             unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
47052                 vkStream, rootType,
47053                 reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(
47054                     structExtension_out));
47055             break;
47056         }
47057         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
47058             unmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
47059                 vkStream, rootType,
47060                 reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension_out));
47061             break;
47062         }
47063 #endif
47064 #ifdef VK_NV_inherited_viewport_scissor
47065         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
47066             unmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
47067                 vkStream, rootType,
47068                 reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(
47069                     structExtension_out));
47070             break;
47071         }
47072         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
47073             unmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(
47074                 vkStream, rootType,
47075                 reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>(
47076                     structExtension_out));
47077             break;
47078         }
47079 #endif
47080 #ifdef VK_EXT_texel_buffer_alignment
47081         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
47082             unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
47083                 vkStream, rootType,
47084                 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
47085                     structExtension_out));
47086             break;
47087         }
47088 #endif
47089 #ifdef VK_QCOM_render_pass_transform
47090         case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
47091             unmarshal_VkRenderPassTransformBeginInfoQCOM(
47092                 vkStream, rootType,
47093                 reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>(structExtension_out));
47094             break;
47095         }
47096         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
47097             unmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
47098                 vkStream, rootType,
47099                 reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(
47100                     structExtension_out));
47101             break;
47102         }
47103 #endif
47104 #ifdef VK_EXT_device_memory_report
47105         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
47106             unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
47107                 vkStream, rootType,
47108                 reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
47109                     structExtension_out));
47110             break;
47111         }
47112         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
47113             unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
47114                 vkStream, rootType,
47115                 reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
47116             break;
47117         }
47118 #endif
47119 #ifdef VK_EXT_robustness2
47120         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
47121             unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
47122                 vkStream, rootType,
47123                 reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
47124             break;
47125         }
47126         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
47127             unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
47128                 vkStream, rootType,
47129                 reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
47130             break;
47131         }
47132 #endif
47133 #ifdef VK_EXT_custom_border_color
47134         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
47135             unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
47136                 vkStream, rootType,
47137                 reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
47138             break;
47139         }
47140         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
47141             unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
47142                 vkStream, rootType,
47143                 reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
47144                     structExtension_out));
47145             break;
47146         }
47147         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
47148             unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
47149                 vkStream, rootType,
47150                 reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
47151                     structExtension_out));
47152             break;
47153         }
47154 #endif
47155 #ifdef VK_NV_present_barrier
47156         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
47157             unmarshal_VkPhysicalDevicePresentBarrierFeaturesNV(
47158                 vkStream, rootType,
47159                 reinterpret_cast<VkPhysicalDevicePresentBarrierFeaturesNV*>(structExtension_out));
47160             break;
47161         }
47162         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
47163             unmarshal_VkSurfaceCapabilitiesPresentBarrierNV(
47164                 vkStream, rootType,
47165                 reinterpret_cast<VkSurfaceCapabilitiesPresentBarrierNV*>(structExtension_out));
47166             break;
47167         }
47168         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
47169             unmarshal_VkSwapchainPresentBarrierCreateInfoNV(
47170                 vkStream, rootType,
47171                 reinterpret_cast<VkSwapchainPresentBarrierCreateInfoNV*>(structExtension_out));
47172             break;
47173         }
47174 #endif
47175 #ifdef VK_NV_device_diagnostics_config
47176         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
47177             unmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
47178                 vkStream, rootType,
47179                 reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(
47180                     structExtension_out));
47181             break;
47182         }
47183         case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
47184             unmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(
47185                 vkStream, rootType,
47186                 reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension_out));
47187             break;
47188         }
47189 #endif
47190 #ifdef VK_NV_low_latency
47191         case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
47192             unmarshal_VkQueryLowLatencySupportNV(
47193                 vkStream, rootType,
47194                 reinterpret_cast<VkQueryLowLatencySupportNV*>(structExtension_out));
47195             break;
47196         }
47197 #endif
47198 #ifdef VK_EXT_metal_objects
47199         case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: {
47200             unmarshal_VkExportMetalObjectCreateInfoEXT(
47201                 vkStream, rootType,
47202                 reinterpret_cast<VkExportMetalObjectCreateInfoEXT*>(structExtension_out));
47203             break;
47204         }
47205         case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT: {
47206             unmarshal_VkExportMetalDeviceInfoEXT(
47207                 vkStream, rootType,
47208                 reinterpret_cast<VkExportMetalDeviceInfoEXT*>(structExtension_out));
47209             break;
47210         }
47211         case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: {
47212             unmarshal_VkExportMetalCommandQueueInfoEXT(
47213                 vkStream, rootType,
47214                 reinterpret_cast<VkExportMetalCommandQueueInfoEXT*>(structExtension_out));
47215             break;
47216         }
47217         case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: {
47218             unmarshal_VkExportMetalBufferInfoEXT(
47219                 vkStream, rootType,
47220                 reinterpret_cast<VkExportMetalBufferInfoEXT*>(structExtension_out));
47221             break;
47222         }
47223         case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT: {
47224             unmarshal_VkImportMetalBufferInfoEXT(
47225                 vkStream, rootType,
47226                 reinterpret_cast<VkImportMetalBufferInfoEXT*>(structExtension_out));
47227             break;
47228         }
47229         case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: {
47230             unmarshal_VkExportMetalTextureInfoEXT(
47231                 vkStream, rootType,
47232                 reinterpret_cast<VkExportMetalTextureInfoEXT*>(structExtension_out));
47233             break;
47234         }
47235         case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: {
47236             unmarshal_VkImportMetalTextureInfoEXT(
47237                 vkStream, rootType,
47238                 reinterpret_cast<VkImportMetalTextureInfoEXT*>(structExtension_out));
47239             break;
47240         }
47241         case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: {
47242             unmarshal_VkExportMetalIOSurfaceInfoEXT(
47243                 vkStream, rootType,
47244                 reinterpret_cast<VkExportMetalIOSurfaceInfoEXT*>(structExtension_out));
47245             break;
47246         }
47247         case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT: {
47248             unmarshal_VkImportMetalIOSurfaceInfoEXT(
47249                 vkStream, rootType,
47250                 reinterpret_cast<VkImportMetalIOSurfaceInfoEXT*>(structExtension_out));
47251             break;
47252         }
47253         case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: {
47254             unmarshal_VkExportMetalSharedEventInfoEXT(
47255                 vkStream, rootType,
47256                 reinterpret_cast<VkExportMetalSharedEventInfoEXT*>(structExtension_out));
47257             break;
47258         }
47259         case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT: {
47260             unmarshal_VkImportMetalSharedEventInfoEXT(
47261                 vkStream, rootType,
47262                 reinterpret_cast<VkImportMetalSharedEventInfoEXT*>(structExtension_out));
47263             break;
47264         }
47265 #endif
47266 #ifdef VK_EXT_descriptor_buffer
47267         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
47268             unmarshal_VkPhysicalDeviceDescriptorBufferPropertiesEXT(
47269                 vkStream, rootType,
47270                 reinterpret_cast<VkPhysicalDeviceDescriptorBufferPropertiesEXT*>(
47271                     structExtension_out));
47272             break;
47273         }
47274         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
47275             unmarshal_VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(
47276                 vkStream, rootType,
47277                 reinterpret_cast<VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT*>(
47278                     structExtension_out));
47279             break;
47280         }
47281         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
47282             unmarshal_VkPhysicalDeviceDescriptorBufferFeaturesEXT(
47283                 vkStream, rootType,
47284                 reinterpret_cast<VkPhysicalDeviceDescriptorBufferFeaturesEXT*>(
47285                     structExtension_out));
47286             break;
47287         }
47288         case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
47289             unmarshal_VkDescriptorBufferBindingPushDescriptorBufferHandleEXT(
47290                 vkStream, rootType,
47291                 reinterpret_cast<VkDescriptorBufferBindingPushDescriptorBufferHandleEXT*>(
47292                     structExtension_out));
47293             break;
47294         }
47295         case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
47296             unmarshal_VkOpaqueCaptureDescriptorDataCreateInfoEXT(
47297                 vkStream, rootType,
47298                 reinterpret_cast<VkOpaqueCaptureDescriptorDataCreateInfoEXT*>(structExtension_out));
47299             break;
47300         }
47301 #endif
47302 #ifdef VK_EXT_graphics_pipeline_library
47303         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
47304             unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
47305                 vkStream, rootType,
47306                 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
47307                     structExtension_out));
47308             break;
47309         }
47310         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
47311             unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
47312                 vkStream, rootType,
47313                 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
47314                     structExtension_out));
47315             break;
47316         }
47317         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
47318             unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
47319                 vkStream, rootType,
47320                 reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension_out));
47321             break;
47322         }
47323 #endif
47324 #ifdef VK_AMD_shader_early_and_late_fragment_tests
47325         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
47326             unmarshal_VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(
47327                 vkStream, rootType,
47328                 reinterpret_cast<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>(
47329                     structExtension_out));
47330             break;
47331         }
47332 #endif
47333 #ifdef VK_NV_fragment_shading_rate_enums
47334         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
47335             unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
47336                 vkStream, rootType,
47337                 reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(
47338                     structExtension_out));
47339             break;
47340         }
47341         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
47342             unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
47343                 vkStream, rootType,
47344                 reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(
47345                     structExtension_out));
47346             break;
47347         }
47348         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
47349             unmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
47350                 vkStream, rootType,
47351                 reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(
47352                     structExtension_out));
47353             break;
47354         }
47355 #endif
47356 #ifdef VK_NV_ray_tracing_motion_blur
47357         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
47358             unmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
47359                 vkStream, rootType,
47360                 reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>(
47361                     structExtension_out));
47362             break;
47363         }
47364         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
47365             unmarshal_VkAccelerationStructureMotionInfoNV(
47366                 vkStream, rootType,
47367                 reinterpret_cast<VkAccelerationStructureMotionInfoNV*>(structExtension_out));
47368             break;
47369         }
47370         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
47371             unmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
47372                 vkStream, rootType,
47373                 reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(
47374                     structExtension_out));
47375             break;
47376         }
47377 #endif
47378 #ifdef VK_EXT_ycbcr_2plane_444_formats
47379         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
47380             unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
47381                 vkStream, rootType,
47382                 reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
47383                     structExtension_out));
47384             break;
47385         }
47386 #endif
47387 #ifdef VK_EXT_fragment_density_map2
47388         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
47389             unmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
47390                 vkStream, rootType,
47391                 reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(
47392                     structExtension_out));
47393             break;
47394         }
47395         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
47396             unmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
47397                 vkStream, rootType,
47398                 reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(
47399                     structExtension_out));
47400             break;
47401         }
47402 #endif
47403 #ifdef VK_QCOM_rotated_copy_commands
47404         case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
47405             unmarshal_VkCopyCommandTransformInfoQCOM(
47406                 vkStream, rootType,
47407                 reinterpret_cast<VkCopyCommandTransformInfoQCOM*>(structExtension_out));
47408             break;
47409         }
47410 #endif
47411 #ifdef VK_EXT_image_compression_control
47412         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
47413             unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
47414                 vkStream, rootType,
47415                 reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
47416                     structExtension_out));
47417             break;
47418         }
47419         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
47420             unmarshal_VkImageCompressionControlEXT(
47421                 vkStream, rootType,
47422                 reinterpret_cast<VkImageCompressionControlEXT*>(structExtension_out));
47423             break;
47424         }
47425         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
47426             unmarshal_VkImageCompressionPropertiesEXT(
47427                 vkStream, rootType,
47428                 reinterpret_cast<VkImageCompressionPropertiesEXT*>(structExtension_out));
47429             break;
47430         }
47431 #endif
47432 #ifdef VK_EXT_attachment_feedback_loop_layout
47433         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
47434             unmarshal_VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(
47435                 vkStream, rootType,
47436                 reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT*>(
47437                     structExtension_out));
47438             break;
47439         }
47440 #endif
47441 #ifdef VK_EXT_4444_formats
47442         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
47443             unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
47444                 vkStream, rootType,
47445                 reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
47446             break;
47447         }
47448 #endif
47449 #ifdef VK_EXT_device_fault
47450         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
47451             unmarshal_VkPhysicalDeviceFaultFeaturesEXT(
47452                 vkStream, rootType,
47453                 reinterpret_cast<VkPhysicalDeviceFaultFeaturesEXT*>(structExtension_out));
47454             break;
47455         }
47456 #endif
47457 #ifdef VK_ARM_rasterization_order_attachment_access
47458         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
47459             unmarshal_VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
47460                 vkStream, rootType,
47461                 reinterpret_cast<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT*>(
47462                     structExtension_out));
47463             break;
47464         }
47465 #endif
47466 #ifdef VK_EXT_rgba10x6_formats
47467         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
47468             unmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
47469                 vkStream, rootType,
47470                 reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension_out));
47471             break;
47472         }
47473 #endif
47474 #ifdef VK_VALVE_mutable_descriptor_type
47475         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
47476             unmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(
47477                 vkStream, rootType,
47478                 reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT*>(
47479                     structExtension_out));
47480             break;
47481         }
47482         case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
47483             unmarshal_VkMutableDescriptorTypeCreateInfoEXT(
47484                 vkStream, rootType,
47485                 reinterpret_cast<VkMutableDescriptorTypeCreateInfoEXT*>(structExtension_out));
47486             break;
47487         }
47488 #endif
47489 #ifdef VK_EXT_vertex_input_dynamic_state
47490         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
47491             unmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
47492                 vkStream, rootType,
47493                 reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(
47494                     structExtension_out));
47495             break;
47496         }
47497 #endif
47498 #ifdef VK_EXT_physical_device_drm
47499         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
47500             unmarshal_VkPhysicalDeviceDrmPropertiesEXT(
47501                 vkStream, rootType,
47502                 reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT*>(structExtension_out));
47503             break;
47504         }
47505 #endif
47506 #ifdef VK_EXT_device_address_binding_report
47507         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
47508             unmarshal_VkPhysicalDeviceAddressBindingReportFeaturesEXT(
47509                 vkStream, rootType,
47510                 reinterpret_cast<VkPhysicalDeviceAddressBindingReportFeaturesEXT*>(
47511                     structExtension_out));
47512             break;
47513         }
47514         case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
47515             unmarshal_VkDeviceAddressBindingCallbackDataEXT(
47516                 vkStream, rootType,
47517                 reinterpret_cast<VkDeviceAddressBindingCallbackDataEXT*>(structExtension_out));
47518             break;
47519         }
47520 #endif
47521 #ifdef VK_EXT_depth_clip_control
47522         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
47523             unmarshal_VkPhysicalDeviceDepthClipControlFeaturesEXT(
47524                 vkStream, rootType,
47525                 reinterpret_cast<VkPhysicalDeviceDepthClipControlFeaturesEXT*>(
47526                     structExtension_out));
47527             break;
47528         }
47529         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
47530             unmarshal_VkPipelineViewportDepthClipControlCreateInfoEXT(
47531                 vkStream, rootType,
47532                 reinterpret_cast<VkPipelineViewportDepthClipControlCreateInfoEXT*>(
47533                     structExtension_out));
47534             break;
47535         }
47536 #endif
47537 #ifdef VK_EXT_primitive_topology_list_restart
47538         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
47539             unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
47540                 vkStream, rootType,
47541                 reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
47542                     structExtension_out));
47543             break;
47544         }
47545 #endif
47546 #ifdef VK_FUCHSIA_external_memory
47547         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
47548             unmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(
47549                 vkStream, rootType,
47550                 reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension_out));
47551             break;
47552         }
47553 #endif
47554 #ifdef VK_FUCHSIA_buffer_collection
47555         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
47556             unmarshal_VkImportMemoryBufferCollectionFUCHSIA(
47557                 vkStream, rootType,
47558                 reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA*>(structExtension_out));
47559             break;
47560         }
47561         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
47562             unmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(
47563                 vkStream, rootType,
47564                 reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension_out));
47565             break;
47566         }
47567         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
47568             unmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
47569                 vkStream, rootType,
47570                 reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension_out));
47571             break;
47572         }
47573 #endif
47574 #ifdef VK_HUAWEI_subpass_shading
47575         case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
47576             unmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
47577                 vkStream, rootType,
47578                 reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension_out));
47579             break;
47580         }
47581         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
47582             unmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
47583                 vkStream, rootType,
47584                 reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(
47585                     structExtension_out));
47586             break;
47587         }
47588         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
47589             unmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
47590                 vkStream, rootType,
47591                 reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(
47592                     structExtension_out));
47593             break;
47594         }
47595 #endif
47596 #ifdef VK_HUAWEI_invocation_mask
47597         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
47598             unmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
47599                 vkStream, rootType,
47600                 reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(
47601                     structExtension_out));
47602             break;
47603         }
47604 #endif
47605 #ifdef VK_NV_external_memory_rdma
47606         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
47607             unmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
47608                 vkStream, rootType,
47609                 reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(
47610                     structExtension_out));
47611             break;
47612         }
47613 #endif
47614 #ifdef VK_EXT_pipeline_properties
47615         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
47616             unmarshal_VkPhysicalDevicePipelinePropertiesFeaturesEXT(
47617                 vkStream, rootType,
47618                 reinterpret_cast<VkPhysicalDevicePipelinePropertiesFeaturesEXT*>(
47619                     structExtension_out));
47620             break;
47621         }
47622 #endif
47623 #ifdef VK_EXT_multisampled_render_to_single_sampled
47624         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
47625             unmarshal_VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
47626                 vkStream, rootType,
47627                 reinterpret_cast<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>(
47628                     structExtension_out));
47629             break;
47630         }
47631         case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
47632             unmarshal_VkSubpassResolvePerformanceQueryEXT(
47633                 vkStream, rootType,
47634                 reinterpret_cast<VkSubpassResolvePerformanceQueryEXT*>(structExtension_out));
47635             break;
47636         }
47637         case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
47638             unmarshal_VkMultisampledRenderToSingleSampledInfoEXT(
47639                 vkStream, rootType,
47640                 reinterpret_cast<VkMultisampledRenderToSingleSampledInfoEXT*>(structExtension_out));
47641             break;
47642         }
47643 #endif
47644 #ifdef VK_EXT_extended_dynamic_state2
47645         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
47646             unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
47647                 vkStream, rootType,
47648                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
47649                     structExtension_out));
47650             break;
47651         }
47652 #endif
47653 #ifdef VK_EXT_color_write_enable
47654         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
47655             unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
47656                 vkStream, rootType,
47657                 reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
47658                     structExtension_out));
47659             break;
47660         }
47661         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
47662             unmarshal_VkPipelineColorWriteCreateInfoEXT(
47663                 vkStream, rootType,
47664                 reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
47665             break;
47666         }
47667 #endif
47668 #ifdef VK_EXT_primitives_generated_query
47669         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
47670             unmarshal_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(
47671                 vkStream, rootType,
47672                 reinterpret_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>(
47673                     structExtension_out));
47674             break;
47675         }
47676 #endif
47677 #ifdef VK_GOOGLE_gfxstream
47678         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
47679             unmarshal_VkImportColorBufferGOOGLE(
47680                 vkStream, rootType,
47681                 reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
47682             break;
47683         }
47684         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
47685             unmarshal_VkImportBufferGOOGLE(
47686                 vkStream, rootType, reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
47687             break;
47688         }
47689         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
47690             unmarshal_VkCreateBlobGOOGLE(
47691                 vkStream, rootType, reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out));
47692             break;
47693         }
47694 #endif
47695 #ifdef VK_EXT_image_view_min_lod
47696         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
47697             unmarshal_VkPhysicalDeviceImageViewMinLodFeaturesEXT(
47698                 vkStream, rootType,
47699                 reinterpret_cast<VkPhysicalDeviceImageViewMinLodFeaturesEXT*>(structExtension_out));
47700             break;
47701         }
47702         case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
47703             unmarshal_VkImageViewMinLodCreateInfoEXT(
47704                 vkStream, rootType,
47705                 reinterpret_cast<VkImageViewMinLodCreateInfoEXT*>(structExtension_out));
47706             break;
47707         }
47708 #endif
47709 #ifdef VK_EXT_multi_draw
47710         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
47711             unmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
47712                 vkStream, rootType,
47713                 reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension_out));
47714             break;
47715         }
47716         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
47717             unmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
47718                 vkStream, rootType,
47719                 reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension_out));
47720             break;
47721         }
47722 #endif
47723 #ifdef VK_EXT_image_2d_view_of_3d
47724         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
47725             unmarshal_VkPhysicalDeviceImage2DViewOf3DFeaturesEXT(
47726                 vkStream, rootType,
47727                 reinterpret_cast<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>(structExtension_out));
47728             break;
47729         }
47730 #endif
47731 #ifdef VK_EXT_shader_tile_image
47732         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
47733             unmarshal_VkPhysicalDeviceShaderTileImageFeaturesEXT(
47734                 vkStream, rootType,
47735                 reinterpret_cast<VkPhysicalDeviceShaderTileImageFeaturesEXT*>(structExtension_out));
47736             break;
47737         }
47738         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
47739             unmarshal_VkPhysicalDeviceShaderTileImagePropertiesEXT(
47740                 vkStream, rootType,
47741                 reinterpret_cast<VkPhysicalDeviceShaderTileImagePropertiesEXT*>(
47742                     structExtension_out));
47743             break;
47744         }
47745 #endif
47746 #ifdef VK_EXT_opacity_micromap
47747         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
47748             unmarshal_VkPhysicalDeviceOpacityMicromapFeaturesEXT(
47749                 vkStream, rootType,
47750                 reinterpret_cast<VkPhysicalDeviceOpacityMicromapFeaturesEXT*>(structExtension_out));
47751             break;
47752         }
47753         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
47754             unmarshal_VkPhysicalDeviceOpacityMicromapPropertiesEXT(
47755                 vkStream, rootType,
47756                 reinterpret_cast<VkPhysicalDeviceOpacityMicromapPropertiesEXT*>(
47757                     structExtension_out));
47758             break;
47759         }
47760         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
47761             unmarshal_VkAccelerationStructureTrianglesOpacityMicromapEXT(
47762                 vkStream, rootType,
47763                 reinterpret_cast<VkAccelerationStructureTrianglesOpacityMicromapEXT*>(
47764                     structExtension_out));
47765             break;
47766         }
47767 #endif
47768 #ifdef VK_NV_displacement_micromap
47769 #ifdef VK_ENABLE_BETA_EXTENSIONS
47770         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
47771             unmarshal_VkPhysicalDeviceDisplacementMicromapFeaturesNV(
47772                 vkStream, rootType,
47773                 reinterpret_cast<VkPhysicalDeviceDisplacementMicromapFeaturesNV*>(
47774                     structExtension_out));
47775             break;
47776         }
47777 #endif  // VK_ENABLE_BETA_EXTENSIONS
47778 #ifdef VK_ENABLE_BETA_EXTENSIONS
47779         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
47780             unmarshal_VkPhysicalDeviceDisplacementMicromapPropertiesNV(
47781                 vkStream, rootType,
47782                 reinterpret_cast<VkPhysicalDeviceDisplacementMicromapPropertiesNV*>(
47783                     structExtension_out));
47784             break;
47785         }
47786 #endif  // VK_ENABLE_BETA_EXTENSIONS
47787 #ifdef VK_ENABLE_BETA_EXTENSIONS
47788         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
47789             unmarshal_VkAccelerationStructureTrianglesDisplacementMicromapNV(
47790                 vkStream, rootType,
47791                 reinterpret_cast<VkAccelerationStructureTrianglesDisplacementMicromapNV*>(
47792                     structExtension_out));
47793             break;
47794         }
47795 #endif  // VK_ENABLE_BETA_EXTENSIONS
47796 #endif
47797 #ifdef VK_HUAWEI_cluster_culling_shader
47798         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
47799             unmarshal_VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI(
47800                 vkStream, rootType,
47801                 reinterpret_cast<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI*>(
47802                     structExtension_out));
47803             break;
47804         }
47805         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
47806             unmarshal_VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI(
47807                 vkStream, rootType,
47808                 reinterpret_cast<VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI*>(
47809                     structExtension_out));
47810             break;
47811         }
47812 #endif
47813 #ifdef VK_EXT_border_color_swizzle
47814         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
47815             unmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
47816                 vkStream, rootType,
47817                 reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(
47818                     structExtension_out));
47819             break;
47820         }
47821         case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
47822             unmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
47823                 vkStream, rootType,
47824                 reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>(
47825                     structExtension_out));
47826             break;
47827         }
47828 #endif
47829 #ifdef VK_EXT_pageable_device_local_memory
47830         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
47831             unmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
47832                 vkStream, rootType,
47833                 reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(
47834                     structExtension_out));
47835             break;
47836         }
47837 #endif
47838 #ifdef VK_ARM_shader_core_properties
47839         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
47840             unmarshal_VkPhysicalDeviceShaderCorePropertiesARM(
47841                 vkStream, rootType,
47842                 reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesARM*>(structExtension_out));
47843             break;
47844         }
47845 #endif
47846 #ifdef VK_EXT_image_sliced_view_of_3d
47847         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
47848             unmarshal_VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(
47849                 vkStream, rootType,
47850                 reinterpret_cast<VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT*>(
47851                     structExtension_out));
47852             break;
47853         }
47854         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
47855             unmarshal_VkImageViewSlicedCreateInfoEXT(
47856                 vkStream, rootType,
47857                 reinterpret_cast<VkImageViewSlicedCreateInfoEXT*>(structExtension_out));
47858             break;
47859         }
47860 #endif
47861 #ifdef VK_VALVE_descriptor_set_host_mapping
47862         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
47863             unmarshal_VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(
47864                 vkStream, rootType,
47865                 reinterpret_cast<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>(
47866                     structExtension_out));
47867             break;
47868         }
47869 #endif
47870 #ifdef VK_EXT_depth_clamp_zero_one
47871         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
47872             unmarshal_VkPhysicalDeviceDepthClampZeroOneFeaturesEXT(
47873                 vkStream, rootType,
47874                 reinterpret_cast<VkPhysicalDeviceDepthClampZeroOneFeaturesEXT*>(
47875                     structExtension_out));
47876             break;
47877         }
47878 #endif
47879 #ifdef VK_EXT_non_seamless_cube_map
47880         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
47881             unmarshal_VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(
47882                 vkStream, rootType,
47883                 reinterpret_cast<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>(
47884                     structExtension_out));
47885             break;
47886         }
47887 #endif
47888 #ifdef VK_QCOM_fragment_density_map_offset
47889         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
47890             unmarshal_VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(
47891                 vkStream, rootType,
47892                 reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>(
47893                     structExtension_out));
47894             break;
47895         }
47896         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
47897             unmarshal_VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(
47898                 vkStream, rootType,
47899                 reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM*>(
47900                     structExtension_out));
47901             break;
47902         }
47903         case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
47904             unmarshal_VkSubpassFragmentDensityMapOffsetEndInfoQCOM(
47905                 vkStream, rootType,
47906                 reinterpret_cast<VkSubpassFragmentDensityMapOffsetEndInfoQCOM*>(
47907                     structExtension_out));
47908             break;
47909         }
47910 #endif
47911 #ifdef VK_NV_copy_memory_indirect
47912         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
47913             unmarshal_VkPhysicalDeviceCopyMemoryIndirectFeaturesNV(
47914                 vkStream, rootType,
47915                 reinterpret_cast<VkPhysicalDeviceCopyMemoryIndirectFeaturesNV*>(
47916                     structExtension_out));
47917             break;
47918         }
47919         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
47920             unmarshal_VkPhysicalDeviceCopyMemoryIndirectPropertiesNV(
47921                 vkStream, rootType,
47922                 reinterpret_cast<VkPhysicalDeviceCopyMemoryIndirectPropertiesNV*>(
47923                     structExtension_out));
47924             break;
47925         }
47926 #endif
47927 #ifdef VK_NV_memory_decompression
47928         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
47929             unmarshal_VkPhysicalDeviceMemoryDecompressionFeaturesNV(
47930                 vkStream, rootType,
47931                 reinterpret_cast<VkPhysicalDeviceMemoryDecompressionFeaturesNV*>(
47932                     structExtension_out));
47933             break;
47934         }
47935         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
47936             unmarshal_VkPhysicalDeviceMemoryDecompressionPropertiesNV(
47937                 vkStream, rootType,
47938                 reinterpret_cast<VkPhysicalDeviceMemoryDecompressionPropertiesNV*>(
47939                     structExtension_out));
47940             break;
47941         }
47942 #endif
47943 #ifdef VK_NV_linear_color_attachment
47944         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
47945             unmarshal_VkPhysicalDeviceLinearColorAttachmentFeaturesNV(
47946                 vkStream, rootType,
47947                 reinterpret_cast<VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>(
47948                     structExtension_out));
47949             break;
47950         }
47951 #endif
47952 #ifdef VK_EXT_image_compression_control_swapchain
47953         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
47954             unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
47955                 vkStream, rootType,
47956                 reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
47957                     structExtension_out));
47958             break;
47959         }
47960 #endif
47961 #ifdef VK_QCOM_image_processing
47962         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
47963             unmarshal_VkImageViewSampleWeightCreateInfoQCOM(
47964                 vkStream, rootType,
47965                 reinterpret_cast<VkImageViewSampleWeightCreateInfoQCOM*>(structExtension_out));
47966             break;
47967         }
47968         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
47969             unmarshal_VkPhysicalDeviceImageProcessingFeaturesQCOM(
47970                 vkStream, rootType,
47971                 reinterpret_cast<VkPhysicalDeviceImageProcessingFeaturesQCOM*>(
47972                     structExtension_out));
47973             break;
47974         }
47975         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
47976             unmarshal_VkPhysicalDeviceImageProcessingPropertiesQCOM(
47977                 vkStream, rootType,
47978                 reinterpret_cast<VkPhysicalDeviceImageProcessingPropertiesQCOM*>(
47979                     structExtension_out));
47980             break;
47981         }
47982 #endif
47983 #ifdef VK_EXT_extended_dynamic_state3
47984         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
47985             unmarshal_VkPhysicalDeviceExtendedDynamicState3FeaturesEXT(
47986                 vkStream, rootType,
47987                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>(
47988                     structExtension_out));
47989             break;
47990         }
47991         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
47992             unmarshal_VkPhysicalDeviceExtendedDynamicState3PropertiesEXT(
47993                 vkStream, rootType,
47994                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicState3PropertiesEXT*>(
47995                     structExtension_out));
47996             break;
47997         }
47998 #endif
47999 #ifdef VK_EXT_subpass_merge_feedback
48000         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
48001             unmarshal_VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(
48002                 vkStream, rootType,
48003                 reinterpret_cast<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT*>(
48004                     structExtension_out));
48005             break;
48006         }
48007         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
48008             unmarshal_VkRenderPassCreationControlEXT(
48009                 vkStream, rootType,
48010                 reinterpret_cast<VkRenderPassCreationControlEXT*>(structExtension_out));
48011             break;
48012         }
48013         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
48014             unmarshal_VkRenderPassCreationFeedbackCreateInfoEXT(
48015                 vkStream, rootType,
48016                 reinterpret_cast<VkRenderPassCreationFeedbackCreateInfoEXT*>(structExtension_out));
48017             break;
48018         }
48019         case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
48020             unmarshal_VkRenderPassSubpassFeedbackCreateInfoEXT(
48021                 vkStream, rootType,
48022                 reinterpret_cast<VkRenderPassSubpassFeedbackCreateInfoEXT*>(structExtension_out));
48023             break;
48024         }
48025 #endif
48026 #ifdef VK_LUNARG_direct_driver_loading
48027         case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
48028             unmarshal_VkDirectDriverLoadingListLUNARG(
48029                 vkStream, rootType,
48030                 reinterpret_cast<VkDirectDriverLoadingListLUNARG*>(structExtension_out));
48031             break;
48032         }
48033 #endif
48034 #ifdef VK_EXT_shader_module_identifier
48035         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
48036             unmarshal_VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(
48037                 vkStream, rootType,
48038                 reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>(
48039                     structExtension_out));
48040             break;
48041         }
48042         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
48043             unmarshal_VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(
48044                 vkStream, rootType,
48045                 reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT*>(
48046                     structExtension_out));
48047             break;
48048         }
48049         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
48050             unmarshal_VkPipelineShaderStageModuleIdentifierCreateInfoEXT(
48051                 vkStream, rootType,
48052                 reinterpret_cast<VkPipelineShaderStageModuleIdentifierCreateInfoEXT*>(
48053                     structExtension_out));
48054             break;
48055         }
48056 #endif
48057 #ifdef VK_NV_optical_flow
48058         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
48059             unmarshal_VkPhysicalDeviceOpticalFlowFeaturesNV(
48060                 vkStream, rootType,
48061                 reinterpret_cast<VkPhysicalDeviceOpticalFlowFeaturesNV*>(structExtension_out));
48062             break;
48063         }
48064         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
48065             unmarshal_VkPhysicalDeviceOpticalFlowPropertiesNV(
48066                 vkStream, rootType,
48067                 reinterpret_cast<VkPhysicalDeviceOpticalFlowPropertiesNV*>(structExtension_out));
48068             break;
48069         }
48070         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
48071             unmarshal_VkOpticalFlowImageFormatInfoNV(
48072                 vkStream, rootType,
48073                 reinterpret_cast<VkOpticalFlowImageFormatInfoNV*>(structExtension_out));
48074             break;
48075         }
48076         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
48077             unmarshal_VkOpticalFlowSessionCreatePrivateDataInfoNV(
48078                 vkStream, rootType,
48079                 reinterpret_cast<VkOpticalFlowSessionCreatePrivateDataInfoNV*>(
48080                     structExtension_out));
48081             break;
48082         }
48083 #endif
48084 #ifdef VK_EXT_legacy_dithering
48085         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
48086             unmarshal_VkPhysicalDeviceLegacyDitheringFeaturesEXT(
48087                 vkStream, rootType,
48088                 reinterpret_cast<VkPhysicalDeviceLegacyDitheringFeaturesEXT*>(structExtension_out));
48089             break;
48090         }
48091 #endif
48092 #ifdef VK_EXT_pipeline_protected_access
48093         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
48094             unmarshal_VkPhysicalDevicePipelineProtectedAccessFeaturesEXT(
48095                 vkStream, rootType,
48096                 reinterpret_cast<VkPhysicalDevicePipelineProtectedAccessFeaturesEXT*>(
48097                     structExtension_out));
48098             break;
48099         }
48100 #endif
48101 #ifdef VK_EXT_shader_object
48102         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
48103             unmarshal_VkPhysicalDeviceShaderObjectFeaturesEXT(
48104                 vkStream, rootType,
48105                 reinterpret_cast<VkPhysicalDeviceShaderObjectFeaturesEXT*>(structExtension_out));
48106             break;
48107         }
48108         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
48109             unmarshal_VkPhysicalDeviceShaderObjectPropertiesEXT(
48110                 vkStream, rootType,
48111                 reinterpret_cast<VkPhysicalDeviceShaderObjectPropertiesEXT*>(structExtension_out));
48112             break;
48113         }
48114 #endif
48115 #ifdef VK_QCOM_tile_properties
48116         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
48117             unmarshal_VkPhysicalDeviceTilePropertiesFeaturesQCOM(
48118                 vkStream, rootType,
48119                 reinterpret_cast<VkPhysicalDeviceTilePropertiesFeaturesQCOM*>(structExtension_out));
48120             break;
48121         }
48122 #endif
48123 #ifdef VK_SEC_amigo_profiling
48124         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
48125             unmarshal_VkPhysicalDeviceAmigoProfilingFeaturesSEC(
48126                 vkStream, rootType,
48127                 reinterpret_cast<VkPhysicalDeviceAmigoProfilingFeaturesSEC*>(structExtension_out));
48128             break;
48129         }
48130         case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
48131             unmarshal_VkAmigoProfilingSubmitInfoSEC(
48132                 vkStream, rootType,
48133                 reinterpret_cast<VkAmigoProfilingSubmitInfoSEC*>(structExtension_out));
48134             break;
48135         }
48136 #endif
48137 #ifdef VK_QCOM_multiview_per_view_viewports
48138         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
48139             unmarshal_VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(
48140                 vkStream, rootType,
48141                 reinterpret_cast<VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM*>(
48142                     structExtension_out));
48143             break;
48144         }
48145 #endif
48146 #ifdef VK_NV_ray_tracing_invocation_reorder
48147         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
48148             unmarshal_VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(
48149                 vkStream, rootType,
48150                 reinterpret_cast<VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV*>(
48151                     structExtension_out));
48152             break;
48153         }
48154         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
48155             unmarshal_VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(
48156                 vkStream, rootType,
48157                 reinterpret_cast<VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV*>(
48158                     structExtension_out));
48159             break;
48160         }
48161 #endif
48162 #ifdef VK_ARM_shader_core_builtins
48163         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
48164             unmarshal_VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(
48165                 vkStream, rootType,
48166                 reinterpret_cast<VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM*>(
48167                     structExtension_out));
48168             break;
48169         }
48170         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
48171             unmarshal_VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(
48172                 vkStream, rootType,
48173                 reinterpret_cast<VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM*>(
48174                     structExtension_out));
48175             break;
48176         }
48177 #endif
48178 #ifdef VK_EXT_pipeline_library_group_handles
48179         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
48180             unmarshal_VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(
48181                 vkStream, rootType,
48182                 reinterpret_cast<VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT*>(
48183                     structExtension_out));
48184             break;
48185         }
48186 #endif
48187 #ifdef VK_QCOM_multiview_per_view_render_areas
48188         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
48189             unmarshal_VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM(
48190                 vkStream, rootType,
48191                 reinterpret_cast<VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM*>(
48192                     structExtension_out));
48193             break;
48194         }
48195         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
48196             unmarshal_VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
48197                 vkStream, rootType,
48198                 reinterpret_cast<VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM*>(
48199                     structExtension_out));
48200             break;
48201         }
48202 #endif
48203 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
48204         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
48205             unmarshal_VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
48206                 vkStream, rootType,
48207                 reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT*>(
48208                     structExtension_out));
48209             break;
48210         }
48211 #endif
48212 #ifdef VK_KHR_acceleration_structure
48213         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
48214             unmarshal_VkWriteDescriptorSetAccelerationStructureKHR(
48215                 vkStream, rootType,
48216                 reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>(
48217                     structExtension_out));
48218             break;
48219         }
48220         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
48221             unmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
48222                 vkStream, rootType,
48223                 reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(
48224                     structExtension_out));
48225             break;
48226         }
48227         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
48228             unmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
48229                 vkStream, rootType,
48230                 reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(
48231                     structExtension_out));
48232             break;
48233         }
48234 #endif
48235 #ifdef VK_KHR_ray_tracing_pipeline
48236         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
48237             unmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
48238                 vkStream, rootType,
48239                 reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(
48240                     structExtension_out));
48241             break;
48242         }
48243         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
48244             unmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
48245                 vkStream, rootType,
48246                 reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(
48247                     structExtension_out));
48248             break;
48249         }
48250 #endif
48251 #ifdef VK_KHR_ray_query
48252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
48253             unmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(
48254                 vkStream, rootType,
48255                 reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension_out));
48256             break;
48257         }
48258 #endif
48259 #ifdef VK_EXT_mesh_shader
48260         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
48261             unmarshal_VkPhysicalDeviceMeshShaderFeaturesEXT(
48262                 vkStream, rootType,
48263                 reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesEXT*>(structExtension_out));
48264             break;
48265         }
48266         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
48267             unmarshal_VkPhysicalDeviceMeshShaderPropertiesEXT(
48268                 vkStream, rootType,
48269                 reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesEXT*>(structExtension_out));
48270             break;
48271         }
48272 #endif
48273         default: {
48274             // fatal; the switch is only taken if the extension struct is known
48275             abort();
48276         }
48277     }
48278 }
48279 
api_opcode_to_string(const uint32_t opcode)48280 const char* api_opcode_to_string(const uint32_t opcode) {
48281     switch (opcode) {
48282 #ifdef VK_VERSION_1_0
48283         case OP_vkCreateInstance: {
48284             return "OP_vkCreateInstance";
48285         }
48286         case OP_vkDestroyInstance: {
48287             return "OP_vkDestroyInstance";
48288         }
48289         case OP_vkEnumeratePhysicalDevices: {
48290             return "OP_vkEnumeratePhysicalDevices";
48291         }
48292         case OP_vkGetPhysicalDeviceFeatures: {
48293             return "OP_vkGetPhysicalDeviceFeatures";
48294         }
48295         case OP_vkGetPhysicalDeviceFormatProperties: {
48296             return "OP_vkGetPhysicalDeviceFormatProperties";
48297         }
48298         case OP_vkGetPhysicalDeviceImageFormatProperties: {
48299             return "OP_vkGetPhysicalDeviceImageFormatProperties";
48300         }
48301         case OP_vkGetPhysicalDeviceProperties: {
48302             return "OP_vkGetPhysicalDeviceProperties";
48303         }
48304         case OP_vkGetPhysicalDeviceQueueFamilyProperties: {
48305             return "OP_vkGetPhysicalDeviceQueueFamilyProperties";
48306         }
48307         case OP_vkGetPhysicalDeviceMemoryProperties: {
48308             return "OP_vkGetPhysicalDeviceMemoryProperties";
48309         }
48310         case OP_vkGetInstanceProcAddr: {
48311             return "OP_vkGetInstanceProcAddr";
48312         }
48313         case OP_vkGetDeviceProcAddr: {
48314             return "OP_vkGetDeviceProcAddr";
48315         }
48316         case OP_vkCreateDevice: {
48317             return "OP_vkCreateDevice";
48318         }
48319         case OP_vkDestroyDevice: {
48320             return "OP_vkDestroyDevice";
48321         }
48322         case OP_vkEnumerateInstanceExtensionProperties: {
48323             return "OP_vkEnumerateInstanceExtensionProperties";
48324         }
48325         case OP_vkEnumerateDeviceExtensionProperties: {
48326             return "OP_vkEnumerateDeviceExtensionProperties";
48327         }
48328         case OP_vkEnumerateInstanceLayerProperties: {
48329             return "OP_vkEnumerateInstanceLayerProperties";
48330         }
48331         case OP_vkEnumerateDeviceLayerProperties: {
48332             return "OP_vkEnumerateDeviceLayerProperties";
48333         }
48334         case OP_vkGetDeviceQueue: {
48335             return "OP_vkGetDeviceQueue";
48336         }
48337         case OP_vkQueueSubmit: {
48338             return "OP_vkQueueSubmit";
48339         }
48340         case OP_vkQueueWaitIdle: {
48341             return "OP_vkQueueWaitIdle";
48342         }
48343         case OP_vkDeviceWaitIdle: {
48344             return "OP_vkDeviceWaitIdle";
48345         }
48346         case OP_vkAllocateMemory: {
48347             return "OP_vkAllocateMemory";
48348         }
48349         case OP_vkFreeMemory: {
48350             return "OP_vkFreeMemory";
48351         }
48352         case OP_vkMapMemory: {
48353             return "OP_vkMapMemory";
48354         }
48355         case OP_vkUnmapMemory: {
48356             return "OP_vkUnmapMemory";
48357         }
48358         case OP_vkFlushMappedMemoryRanges: {
48359             return "OP_vkFlushMappedMemoryRanges";
48360         }
48361         case OP_vkInvalidateMappedMemoryRanges: {
48362             return "OP_vkInvalidateMappedMemoryRanges";
48363         }
48364         case OP_vkGetDeviceMemoryCommitment: {
48365             return "OP_vkGetDeviceMemoryCommitment";
48366         }
48367         case OP_vkBindBufferMemory: {
48368             return "OP_vkBindBufferMemory";
48369         }
48370         case OP_vkBindImageMemory: {
48371             return "OP_vkBindImageMemory";
48372         }
48373         case OP_vkGetBufferMemoryRequirements: {
48374             return "OP_vkGetBufferMemoryRequirements";
48375         }
48376         case OP_vkGetImageMemoryRequirements: {
48377             return "OP_vkGetImageMemoryRequirements";
48378         }
48379         case OP_vkGetImageSparseMemoryRequirements: {
48380             return "OP_vkGetImageSparseMemoryRequirements";
48381         }
48382         case OP_vkGetPhysicalDeviceSparseImageFormatProperties: {
48383             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties";
48384         }
48385         case OP_vkQueueBindSparse: {
48386             return "OP_vkQueueBindSparse";
48387         }
48388         case OP_vkCreateFence: {
48389             return "OP_vkCreateFence";
48390         }
48391         case OP_vkDestroyFence: {
48392             return "OP_vkDestroyFence";
48393         }
48394         case OP_vkResetFences: {
48395             return "OP_vkResetFences";
48396         }
48397         case OP_vkGetFenceStatus: {
48398             return "OP_vkGetFenceStatus";
48399         }
48400         case OP_vkWaitForFences: {
48401             return "OP_vkWaitForFences";
48402         }
48403         case OP_vkCreateSemaphore: {
48404             return "OP_vkCreateSemaphore";
48405         }
48406         case OP_vkDestroySemaphore: {
48407             return "OP_vkDestroySemaphore";
48408         }
48409         case OP_vkCreateEvent: {
48410             return "OP_vkCreateEvent";
48411         }
48412         case OP_vkDestroyEvent: {
48413             return "OP_vkDestroyEvent";
48414         }
48415         case OP_vkGetEventStatus: {
48416             return "OP_vkGetEventStatus";
48417         }
48418         case OP_vkSetEvent: {
48419             return "OP_vkSetEvent";
48420         }
48421         case OP_vkResetEvent: {
48422             return "OP_vkResetEvent";
48423         }
48424         case OP_vkCreateQueryPool: {
48425             return "OP_vkCreateQueryPool";
48426         }
48427         case OP_vkDestroyQueryPool: {
48428             return "OP_vkDestroyQueryPool";
48429         }
48430         case OP_vkGetQueryPoolResults: {
48431             return "OP_vkGetQueryPoolResults";
48432         }
48433         case OP_vkCreateBuffer: {
48434             return "OP_vkCreateBuffer";
48435         }
48436         case OP_vkDestroyBuffer: {
48437             return "OP_vkDestroyBuffer";
48438         }
48439         case OP_vkCreateBufferView: {
48440             return "OP_vkCreateBufferView";
48441         }
48442         case OP_vkDestroyBufferView: {
48443             return "OP_vkDestroyBufferView";
48444         }
48445         case OP_vkCreateImage: {
48446             return "OP_vkCreateImage";
48447         }
48448         case OP_vkDestroyImage: {
48449             return "OP_vkDestroyImage";
48450         }
48451         case OP_vkGetImageSubresourceLayout: {
48452             return "OP_vkGetImageSubresourceLayout";
48453         }
48454         case OP_vkCreateImageView: {
48455             return "OP_vkCreateImageView";
48456         }
48457         case OP_vkDestroyImageView: {
48458             return "OP_vkDestroyImageView";
48459         }
48460         case OP_vkCreateShaderModule: {
48461             return "OP_vkCreateShaderModule";
48462         }
48463         case OP_vkDestroyShaderModule: {
48464             return "OP_vkDestroyShaderModule";
48465         }
48466         case OP_vkCreatePipelineCache: {
48467             return "OP_vkCreatePipelineCache";
48468         }
48469         case OP_vkDestroyPipelineCache: {
48470             return "OP_vkDestroyPipelineCache";
48471         }
48472         case OP_vkGetPipelineCacheData: {
48473             return "OP_vkGetPipelineCacheData";
48474         }
48475         case OP_vkMergePipelineCaches: {
48476             return "OP_vkMergePipelineCaches";
48477         }
48478         case OP_vkCreateGraphicsPipelines: {
48479             return "OP_vkCreateGraphicsPipelines";
48480         }
48481         case OP_vkCreateComputePipelines: {
48482             return "OP_vkCreateComputePipelines";
48483         }
48484         case OP_vkDestroyPipeline: {
48485             return "OP_vkDestroyPipeline";
48486         }
48487         case OP_vkCreatePipelineLayout: {
48488             return "OP_vkCreatePipelineLayout";
48489         }
48490         case OP_vkDestroyPipelineLayout: {
48491             return "OP_vkDestroyPipelineLayout";
48492         }
48493         case OP_vkCreateSampler: {
48494             return "OP_vkCreateSampler";
48495         }
48496         case OP_vkDestroySampler: {
48497             return "OP_vkDestroySampler";
48498         }
48499         case OP_vkCreateDescriptorSetLayout: {
48500             return "OP_vkCreateDescriptorSetLayout";
48501         }
48502         case OP_vkDestroyDescriptorSetLayout: {
48503             return "OP_vkDestroyDescriptorSetLayout";
48504         }
48505         case OP_vkCreateDescriptorPool: {
48506             return "OP_vkCreateDescriptorPool";
48507         }
48508         case OP_vkDestroyDescriptorPool: {
48509             return "OP_vkDestroyDescriptorPool";
48510         }
48511         case OP_vkResetDescriptorPool: {
48512             return "OP_vkResetDescriptorPool";
48513         }
48514         case OP_vkAllocateDescriptorSets: {
48515             return "OP_vkAllocateDescriptorSets";
48516         }
48517         case OP_vkFreeDescriptorSets: {
48518             return "OP_vkFreeDescriptorSets";
48519         }
48520         case OP_vkUpdateDescriptorSets: {
48521             return "OP_vkUpdateDescriptorSets";
48522         }
48523         case OP_vkCreateFramebuffer: {
48524             return "OP_vkCreateFramebuffer";
48525         }
48526         case OP_vkDestroyFramebuffer: {
48527             return "OP_vkDestroyFramebuffer";
48528         }
48529         case OP_vkCreateRenderPass: {
48530             return "OP_vkCreateRenderPass";
48531         }
48532         case OP_vkDestroyRenderPass: {
48533             return "OP_vkDestroyRenderPass";
48534         }
48535         case OP_vkGetRenderAreaGranularity: {
48536             return "OP_vkGetRenderAreaGranularity";
48537         }
48538         case OP_vkCreateCommandPool: {
48539             return "OP_vkCreateCommandPool";
48540         }
48541         case OP_vkDestroyCommandPool: {
48542             return "OP_vkDestroyCommandPool";
48543         }
48544         case OP_vkResetCommandPool: {
48545             return "OP_vkResetCommandPool";
48546         }
48547         case OP_vkAllocateCommandBuffers: {
48548             return "OP_vkAllocateCommandBuffers";
48549         }
48550         case OP_vkFreeCommandBuffers: {
48551             return "OP_vkFreeCommandBuffers";
48552         }
48553         case OP_vkBeginCommandBuffer: {
48554             return "OP_vkBeginCommandBuffer";
48555         }
48556         case OP_vkEndCommandBuffer: {
48557             return "OP_vkEndCommandBuffer";
48558         }
48559         case OP_vkResetCommandBuffer: {
48560             return "OP_vkResetCommandBuffer";
48561         }
48562         case OP_vkCmdBindPipeline: {
48563             return "OP_vkCmdBindPipeline";
48564         }
48565         case OP_vkCmdSetViewport: {
48566             return "OP_vkCmdSetViewport";
48567         }
48568         case OP_vkCmdSetScissor: {
48569             return "OP_vkCmdSetScissor";
48570         }
48571         case OP_vkCmdSetLineWidth: {
48572             return "OP_vkCmdSetLineWidth";
48573         }
48574         case OP_vkCmdSetDepthBias: {
48575             return "OP_vkCmdSetDepthBias";
48576         }
48577         case OP_vkCmdSetBlendConstants: {
48578             return "OP_vkCmdSetBlendConstants";
48579         }
48580         case OP_vkCmdSetDepthBounds: {
48581             return "OP_vkCmdSetDepthBounds";
48582         }
48583         case OP_vkCmdSetStencilCompareMask: {
48584             return "OP_vkCmdSetStencilCompareMask";
48585         }
48586         case OP_vkCmdSetStencilWriteMask: {
48587             return "OP_vkCmdSetStencilWriteMask";
48588         }
48589         case OP_vkCmdSetStencilReference: {
48590             return "OP_vkCmdSetStencilReference";
48591         }
48592         case OP_vkCmdBindDescriptorSets: {
48593             return "OP_vkCmdBindDescriptorSets";
48594         }
48595         case OP_vkCmdBindIndexBuffer: {
48596             return "OP_vkCmdBindIndexBuffer";
48597         }
48598         case OP_vkCmdBindVertexBuffers: {
48599             return "OP_vkCmdBindVertexBuffers";
48600         }
48601         case OP_vkCmdDraw: {
48602             return "OP_vkCmdDraw";
48603         }
48604         case OP_vkCmdDrawIndexed: {
48605             return "OP_vkCmdDrawIndexed";
48606         }
48607         case OP_vkCmdDrawIndirect: {
48608             return "OP_vkCmdDrawIndirect";
48609         }
48610         case OP_vkCmdDrawIndexedIndirect: {
48611             return "OP_vkCmdDrawIndexedIndirect";
48612         }
48613         case OP_vkCmdDispatch: {
48614             return "OP_vkCmdDispatch";
48615         }
48616         case OP_vkCmdDispatchIndirect: {
48617             return "OP_vkCmdDispatchIndirect";
48618         }
48619         case OP_vkCmdCopyBuffer: {
48620             return "OP_vkCmdCopyBuffer";
48621         }
48622         case OP_vkCmdCopyImage: {
48623             return "OP_vkCmdCopyImage";
48624         }
48625         case OP_vkCmdBlitImage: {
48626             return "OP_vkCmdBlitImage";
48627         }
48628         case OP_vkCmdCopyBufferToImage: {
48629             return "OP_vkCmdCopyBufferToImage";
48630         }
48631         case OP_vkCmdCopyImageToBuffer: {
48632             return "OP_vkCmdCopyImageToBuffer";
48633         }
48634         case OP_vkCmdUpdateBuffer: {
48635             return "OP_vkCmdUpdateBuffer";
48636         }
48637         case OP_vkCmdFillBuffer: {
48638             return "OP_vkCmdFillBuffer";
48639         }
48640         case OP_vkCmdClearColorImage: {
48641             return "OP_vkCmdClearColorImage";
48642         }
48643         case OP_vkCmdClearDepthStencilImage: {
48644             return "OP_vkCmdClearDepthStencilImage";
48645         }
48646         case OP_vkCmdClearAttachments: {
48647             return "OP_vkCmdClearAttachments";
48648         }
48649         case OP_vkCmdResolveImage: {
48650             return "OP_vkCmdResolveImage";
48651         }
48652         case OP_vkCmdSetEvent: {
48653             return "OP_vkCmdSetEvent";
48654         }
48655         case OP_vkCmdResetEvent: {
48656             return "OP_vkCmdResetEvent";
48657         }
48658         case OP_vkCmdWaitEvents: {
48659             return "OP_vkCmdWaitEvents";
48660         }
48661         case OP_vkCmdPipelineBarrier: {
48662             return "OP_vkCmdPipelineBarrier";
48663         }
48664         case OP_vkCmdBeginQuery: {
48665             return "OP_vkCmdBeginQuery";
48666         }
48667         case OP_vkCmdEndQuery: {
48668             return "OP_vkCmdEndQuery";
48669         }
48670         case OP_vkCmdResetQueryPool: {
48671             return "OP_vkCmdResetQueryPool";
48672         }
48673         case OP_vkCmdWriteTimestamp: {
48674             return "OP_vkCmdWriteTimestamp";
48675         }
48676         case OP_vkCmdCopyQueryPoolResults: {
48677             return "OP_vkCmdCopyQueryPoolResults";
48678         }
48679         case OP_vkCmdPushConstants: {
48680             return "OP_vkCmdPushConstants";
48681         }
48682         case OP_vkCmdBeginRenderPass: {
48683             return "OP_vkCmdBeginRenderPass";
48684         }
48685         case OP_vkCmdNextSubpass: {
48686             return "OP_vkCmdNextSubpass";
48687         }
48688         case OP_vkCmdEndRenderPass: {
48689             return "OP_vkCmdEndRenderPass";
48690         }
48691         case OP_vkCmdExecuteCommands: {
48692             return "OP_vkCmdExecuteCommands";
48693         }
48694 #endif
48695 #ifdef VK_VERSION_1_1
48696         case OP_vkEnumerateInstanceVersion: {
48697             return "OP_vkEnumerateInstanceVersion";
48698         }
48699         case OP_vkBindBufferMemory2: {
48700             return "OP_vkBindBufferMemory2";
48701         }
48702         case OP_vkBindImageMemory2: {
48703             return "OP_vkBindImageMemory2";
48704         }
48705         case OP_vkGetDeviceGroupPeerMemoryFeatures: {
48706             return "OP_vkGetDeviceGroupPeerMemoryFeatures";
48707         }
48708         case OP_vkCmdSetDeviceMask: {
48709             return "OP_vkCmdSetDeviceMask";
48710         }
48711         case OP_vkCmdDispatchBase: {
48712             return "OP_vkCmdDispatchBase";
48713         }
48714         case OP_vkEnumeratePhysicalDeviceGroups: {
48715             return "OP_vkEnumeratePhysicalDeviceGroups";
48716         }
48717         case OP_vkGetImageMemoryRequirements2: {
48718             return "OP_vkGetImageMemoryRequirements2";
48719         }
48720         case OP_vkGetBufferMemoryRequirements2: {
48721             return "OP_vkGetBufferMemoryRequirements2";
48722         }
48723         case OP_vkGetImageSparseMemoryRequirements2: {
48724             return "OP_vkGetImageSparseMemoryRequirements2";
48725         }
48726         case OP_vkGetPhysicalDeviceFeatures2: {
48727             return "OP_vkGetPhysicalDeviceFeatures2";
48728         }
48729         case OP_vkGetPhysicalDeviceProperties2: {
48730             return "OP_vkGetPhysicalDeviceProperties2";
48731         }
48732         case OP_vkGetPhysicalDeviceFormatProperties2: {
48733             return "OP_vkGetPhysicalDeviceFormatProperties2";
48734         }
48735         case OP_vkGetPhysicalDeviceImageFormatProperties2: {
48736             return "OP_vkGetPhysicalDeviceImageFormatProperties2";
48737         }
48738         case OP_vkGetPhysicalDeviceQueueFamilyProperties2: {
48739             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2";
48740         }
48741         case OP_vkGetPhysicalDeviceMemoryProperties2: {
48742             return "OP_vkGetPhysicalDeviceMemoryProperties2";
48743         }
48744         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2: {
48745             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2";
48746         }
48747         case OP_vkTrimCommandPool: {
48748             return "OP_vkTrimCommandPool";
48749         }
48750         case OP_vkGetDeviceQueue2: {
48751             return "OP_vkGetDeviceQueue2";
48752         }
48753         case OP_vkCreateSamplerYcbcrConversion: {
48754             return "OP_vkCreateSamplerYcbcrConversion";
48755         }
48756         case OP_vkDestroySamplerYcbcrConversion: {
48757             return "OP_vkDestroySamplerYcbcrConversion";
48758         }
48759         case OP_vkCreateDescriptorUpdateTemplate: {
48760             return "OP_vkCreateDescriptorUpdateTemplate";
48761         }
48762         case OP_vkDestroyDescriptorUpdateTemplate: {
48763             return "OP_vkDestroyDescriptorUpdateTemplate";
48764         }
48765         case OP_vkUpdateDescriptorSetWithTemplate: {
48766             return "OP_vkUpdateDescriptorSetWithTemplate";
48767         }
48768         case OP_vkGetPhysicalDeviceExternalBufferProperties: {
48769             return "OP_vkGetPhysicalDeviceExternalBufferProperties";
48770         }
48771         case OP_vkGetPhysicalDeviceExternalFenceProperties: {
48772             return "OP_vkGetPhysicalDeviceExternalFenceProperties";
48773         }
48774         case OP_vkGetPhysicalDeviceExternalSemaphoreProperties: {
48775             return "OP_vkGetPhysicalDeviceExternalSemaphoreProperties";
48776         }
48777         case OP_vkGetDescriptorSetLayoutSupport: {
48778             return "OP_vkGetDescriptorSetLayoutSupport";
48779         }
48780 #endif
48781 #ifdef VK_KHR_surface
48782         case OP_vkDestroySurfaceKHR: {
48783             return "OP_vkDestroySurfaceKHR";
48784         }
48785         case OP_vkGetPhysicalDeviceSurfaceSupportKHR: {
48786             return "OP_vkGetPhysicalDeviceSurfaceSupportKHR";
48787         }
48788         case OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR: {
48789             return "OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR";
48790         }
48791         case OP_vkGetPhysicalDeviceSurfaceFormatsKHR: {
48792             return "OP_vkGetPhysicalDeviceSurfaceFormatsKHR";
48793         }
48794         case OP_vkGetPhysicalDeviceSurfacePresentModesKHR: {
48795             return "OP_vkGetPhysicalDeviceSurfacePresentModesKHR";
48796         }
48797 #endif
48798 #ifdef VK_KHR_swapchain
48799         case OP_vkCreateSwapchainKHR: {
48800             return "OP_vkCreateSwapchainKHR";
48801         }
48802         case OP_vkDestroySwapchainKHR: {
48803             return "OP_vkDestroySwapchainKHR";
48804         }
48805         case OP_vkGetSwapchainImagesKHR: {
48806             return "OP_vkGetSwapchainImagesKHR";
48807         }
48808         case OP_vkAcquireNextImageKHR: {
48809             return "OP_vkAcquireNextImageKHR";
48810         }
48811         case OP_vkQueuePresentKHR: {
48812             return "OP_vkQueuePresentKHR";
48813         }
48814         case OP_vkGetDeviceGroupPresentCapabilitiesKHR: {
48815             return "OP_vkGetDeviceGroupPresentCapabilitiesKHR";
48816         }
48817         case OP_vkGetDeviceGroupSurfacePresentModesKHR: {
48818             return "OP_vkGetDeviceGroupSurfacePresentModesKHR";
48819         }
48820         case OP_vkGetPhysicalDevicePresentRectanglesKHR: {
48821             return "OP_vkGetPhysicalDevicePresentRectanglesKHR";
48822         }
48823         case OP_vkAcquireNextImage2KHR: {
48824             return "OP_vkAcquireNextImage2KHR";
48825         }
48826 #endif
48827 #ifdef VK_KHR_display
48828         case OP_vkGetPhysicalDeviceDisplayPropertiesKHR: {
48829             return "OP_vkGetPhysicalDeviceDisplayPropertiesKHR";
48830         }
48831         case OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR: {
48832             return "OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR";
48833         }
48834         case OP_vkGetDisplayPlaneSupportedDisplaysKHR: {
48835             return "OP_vkGetDisplayPlaneSupportedDisplaysKHR";
48836         }
48837         case OP_vkGetDisplayModePropertiesKHR: {
48838             return "OP_vkGetDisplayModePropertiesKHR";
48839         }
48840         case OP_vkCreateDisplayModeKHR: {
48841             return "OP_vkCreateDisplayModeKHR";
48842         }
48843         case OP_vkGetDisplayPlaneCapabilitiesKHR: {
48844             return "OP_vkGetDisplayPlaneCapabilitiesKHR";
48845         }
48846         case OP_vkCreateDisplayPlaneSurfaceKHR: {
48847             return "OP_vkCreateDisplayPlaneSurfaceKHR";
48848         }
48849 #endif
48850 #ifdef VK_KHR_display_swapchain
48851         case OP_vkCreateSharedSwapchainsKHR: {
48852             return "OP_vkCreateSharedSwapchainsKHR";
48853         }
48854 #endif
48855 #ifdef VK_KHR_xlib_surface
48856         case OP_vkCreateXlibSurfaceKHR: {
48857             return "OP_vkCreateXlibSurfaceKHR";
48858         }
48859         case OP_vkGetPhysicalDeviceXlibPresentationSupportKHR: {
48860             return "OP_vkGetPhysicalDeviceXlibPresentationSupportKHR";
48861         }
48862 #endif
48863 #ifdef VK_KHR_xcb_surface
48864         case OP_vkCreateXcbSurfaceKHR: {
48865             return "OP_vkCreateXcbSurfaceKHR";
48866         }
48867         case OP_vkGetPhysicalDeviceXcbPresentationSupportKHR: {
48868             return "OP_vkGetPhysicalDeviceXcbPresentationSupportKHR";
48869         }
48870 #endif
48871 #ifdef VK_KHR_wayland_surface
48872         case OP_vkCreateWaylandSurfaceKHR: {
48873             return "OP_vkCreateWaylandSurfaceKHR";
48874         }
48875         case OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR: {
48876             return "OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR";
48877         }
48878 #endif
48879 #ifdef VK_KHR_android_surface
48880         case OP_vkCreateAndroidSurfaceKHR: {
48881             return "OP_vkCreateAndroidSurfaceKHR";
48882         }
48883 #endif
48884 #ifdef VK_KHR_win32_surface
48885         case OP_vkCreateWin32SurfaceKHR: {
48886             return "OP_vkCreateWin32SurfaceKHR";
48887         }
48888         case OP_vkGetPhysicalDeviceWin32PresentationSupportKHR: {
48889             return "OP_vkGetPhysicalDeviceWin32PresentationSupportKHR";
48890         }
48891 #endif
48892 #ifdef VK_KHR_get_physical_device_properties2
48893         case OP_vkGetPhysicalDeviceFeatures2KHR: {
48894             return "OP_vkGetPhysicalDeviceFeatures2KHR";
48895         }
48896         case OP_vkGetPhysicalDeviceProperties2KHR: {
48897             return "OP_vkGetPhysicalDeviceProperties2KHR";
48898         }
48899         case OP_vkGetPhysicalDeviceFormatProperties2KHR: {
48900             return "OP_vkGetPhysicalDeviceFormatProperties2KHR";
48901         }
48902         case OP_vkGetPhysicalDeviceImageFormatProperties2KHR: {
48903             return "OP_vkGetPhysicalDeviceImageFormatProperties2KHR";
48904         }
48905         case OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR: {
48906             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR";
48907         }
48908         case OP_vkGetPhysicalDeviceMemoryProperties2KHR: {
48909             return "OP_vkGetPhysicalDeviceMemoryProperties2KHR";
48910         }
48911         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR: {
48912             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR";
48913         }
48914 #endif
48915 #ifdef VK_KHR_device_group
48916         case OP_vkGetDeviceGroupPeerMemoryFeaturesKHR: {
48917             return "OP_vkGetDeviceGroupPeerMemoryFeaturesKHR";
48918         }
48919         case OP_vkCmdSetDeviceMaskKHR: {
48920             return "OP_vkCmdSetDeviceMaskKHR";
48921         }
48922         case OP_vkCmdDispatchBaseKHR: {
48923             return "OP_vkCmdDispatchBaseKHR";
48924         }
48925 #endif
48926 #ifdef VK_KHR_maintenance1
48927         case OP_vkTrimCommandPoolKHR: {
48928             return "OP_vkTrimCommandPoolKHR";
48929         }
48930 #endif
48931 #ifdef VK_KHR_device_group_creation
48932         case OP_vkEnumeratePhysicalDeviceGroupsKHR: {
48933             return "OP_vkEnumeratePhysicalDeviceGroupsKHR";
48934         }
48935 #endif
48936 #ifdef VK_KHR_external_memory_capabilities
48937         case OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR: {
48938             return "OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR";
48939         }
48940 #endif
48941 #ifdef VK_KHR_external_memory_win32
48942         case OP_vkGetMemoryWin32HandleKHR: {
48943             return "OP_vkGetMemoryWin32HandleKHR";
48944         }
48945         case OP_vkGetMemoryWin32HandlePropertiesKHR: {
48946             return "OP_vkGetMemoryWin32HandlePropertiesKHR";
48947         }
48948 #endif
48949 #ifdef VK_KHR_external_memory_fd
48950         case OP_vkGetMemoryFdKHR: {
48951             return "OP_vkGetMemoryFdKHR";
48952         }
48953         case OP_vkGetMemoryFdPropertiesKHR: {
48954             return "OP_vkGetMemoryFdPropertiesKHR";
48955         }
48956 #endif
48957 #ifdef VK_KHR_external_semaphore_capabilities
48958         case OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR: {
48959             return "OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR";
48960         }
48961 #endif
48962 #ifdef VK_KHR_external_semaphore_win32
48963         case OP_vkImportSemaphoreWin32HandleKHR: {
48964             return "OP_vkImportSemaphoreWin32HandleKHR";
48965         }
48966         case OP_vkGetSemaphoreWin32HandleKHR: {
48967             return "OP_vkGetSemaphoreWin32HandleKHR";
48968         }
48969 #endif
48970 #ifdef VK_KHR_external_semaphore_fd
48971         case OP_vkImportSemaphoreFdKHR: {
48972             return "OP_vkImportSemaphoreFdKHR";
48973         }
48974         case OP_vkGetSemaphoreFdKHR: {
48975             return "OP_vkGetSemaphoreFdKHR";
48976         }
48977 #endif
48978 #ifdef VK_KHR_push_descriptor
48979         case OP_vkCmdPushDescriptorSetKHR: {
48980             return "OP_vkCmdPushDescriptorSetKHR";
48981         }
48982         case OP_vkCmdPushDescriptorSetWithTemplateKHR: {
48983             return "OP_vkCmdPushDescriptorSetWithTemplateKHR";
48984         }
48985 #endif
48986 #ifdef VK_KHR_descriptor_update_template
48987         case OP_vkCreateDescriptorUpdateTemplateKHR: {
48988             return "OP_vkCreateDescriptorUpdateTemplateKHR";
48989         }
48990         case OP_vkDestroyDescriptorUpdateTemplateKHR: {
48991             return "OP_vkDestroyDescriptorUpdateTemplateKHR";
48992         }
48993         case OP_vkUpdateDescriptorSetWithTemplateKHR: {
48994             return "OP_vkUpdateDescriptorSetWithTemplateKHR";
48995         }
48996 #endif
48997 #ifdef VK_KHR_create_renderpass2
48998         case OP_vkCreateRenderPass2KHR: {
48999             return "OP_vkCreateRenderPass2KHR";
49000         }
49001         case OP_vkCmdBeginRenderPass2KHR: {
49002             return "OP_vkCmdBeginRenderPass2KHR";
49003         }
49004         case OP_vkCmdNextSubpass2KHR: {
49005             return "OP_vkCmdNextSubpass2KHR";
49006         }
49007         case OP_vkCmdEndRenderPass2KHR: {
49008             return "OP_vkCmdEndRenderPass2KHR";
49009         }
49010 #endif
49011 #ifdef VK_KHR_shared_presentable_image
49012         case OP_vkGetSwapchainStatusKHR: {
49013             return "OP_vkGetSwapchainStatusKHR";
49014         }
49015 #endif
49016 #ifdef VK_KHR_external_fence_capabilities
49017         case OP_vkGetPhysicalDeviceExternalFencePropertiesKHR: {
49018             return "OP_vkGetPhysicalDeviceExternalFencePropertiesKHR";
49019         }
49020 #endif
49021 #ifdef VK_KHR_external_fence_win32
49022         case OP_vkImportFenceWin32HandleKHR: {
49023             return "OP_vkImportFenceWin32HandleKHR";
49024         }
49025         case OP_vkGetFenceWin32HandleKHR: {
49026             return "OP_vkGetFenceWin32HandleKHR";
49027         }
49028 #endif
49029 #ifdef VK_KHR_external_fence_fd
49030         case OP_vkImportFenceFdKHR: {
49031             return "OP_vkImportFenceFdKHR";
49032         }
49033         case OP_vkGetFenceFdKHR: {
49034             return "OP_vkGetFenceFdKHR";
49035         }
49036 #endif
49037 #ifdef VK_KHR_get_surface_capabilities2
49038         case OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR: {
49039             return "OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR";
49040         }
49041         case OP_vkGetPhysicalDeviceSurfaceFormats2KHR: {
49042             return "OP_vkGetPhysicalDeviceSurfaceFormats2KHR";
49043         }
49044 #endif
49045 #ifdef VK_KHR_get_display_properties2
49046         case OP_vkGetPhysicalDeviceDisplayProperties2KHR: {
49047             return "OP_vkGetPhysicalDeviceDisplayProperties2KHR";
49048         }
49049         case OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR: {
49050             return "OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR";
49051         }
49052         case OP_vkGetDisplayModeProperties2KHR: {
49053             return "OP_vkGetDisplayModeProperties2KHR";
49054         }
49055         case OP_vkGetDisplayPlaneCapabilities2KHR: {
49056             return "OP_vkGetDisplayPlaneCapabilities2KHR";
49057         }
49058 #endif
49059 #ifdef VK_KHR_get_memory_requirements2
49060         case OP_vkGetImageMemoryRequirements2KHR: {
49061             return "OP_vkGetImageMemoryRequirements2KHR";
49062         }
49063         case OP_vkGetBufferMemoryRequirements2KHR: {
49064             return "OP_vkGetBufferMemoryRequirements2KHR";
49065         }
49066         case OP_vkGetImageSparseMemoryRequirements2KHR: {
49067             return "OP_vkGetImageSparseMemoryRequirements2KHR";
49068         }
49069 #endif
49070 #ifdef VK_KHR_sampler_ycbcr_conversion
49071         case OP_vkCreateSamplerYcbcrConversionKHR: {
49072             return "OP_vkCreateSamplerYcbcrConversionKHR";
49073         }
49074         case OP_vkDestroySamplerYcbcrConversionKHR: {
49075             return "OP_vkDestroySamplerYcbcrConversionKHR";
49076         }
49077 #endif
49078 #ifdef VK_KHR_bind_memory2
49079         case OP_vkBindBufferMemory2KHR: {
49080             return "OP_vkBindBufferMemory2KHR";
49081         }
49082         case OP_vkBindImageMemory2KHR: {
49083             return "OP_vkBindImageMemory2KHR";
49084         }
49085 #endif
49086 #ifdef VK_KHR_maintenance3
49087         case OP_vkGetDescriptorSetLayoutSupportKHR: {
49088             return "OP_vkGetDescriptorSetLayoutSupportKHR";
49089         }
49090 #endif
49091 #ifdef VK_KHR_draw_indirect_count
49092         case OP_vkCmdDrawIndirectCountKHR: {
49093             return "OP_vkCmdDrawIndirectCountKHR";
49094         }
49095         case OP_vkCmdDrawIndexedIndirectCountKHR: {
49096             return "OP_vkCmdDrawIndexedIndirectCountKHR";
49097         }
49098 #endif
49099 #ifdef VK_ANDROID_native_buffer
49100         case OP_vkGetSwapchainGrallocUsageANDROID: {
49101             return "OP_vkGetSwapchainGrallocUsageANDROID";
49102         }
49103         case OP_vkAcquireImageANDROID: {
49104             return "OP_vkAcquireImageANDROID";
49105         }
49106         case OP_vkQueueSignalReleaseImageANDROID: {
49107             return "OP_vkQueueSignalReleaseImageANDROID";
49108         }
49109 #endif
49110 #ifdef VK_EXT_debug_report
49111         case OP_vkCreateDebugReportCallbackEXT: {
49112             return "OP_vkCreateDebugReportCallbackEXT";
49113         }
49114         case OP_vkDestroyDebugReportCallbackEXT: {
49115             return "OP_vkDestroyDebugReportCallbackEXT";
49116         }
49117         case OP_vkDebugReportMessageEXT: {
49118             return "OP_vkDebugReportMessageEXT";
49119         }
49120 #endif
49121 #ifdef VK_EXT_debug_marker
49122         case OP_vkDebugMarkerSetObjectTagEXT: {
49123             return "OP_vkDebugMarkerSetObjectTagEXT";
49124         }
49125         case OP_vkDebugMarkerSetObjectNameEXT: {
49126             return "OP_vkDebugMarkerSetObjectNameEXT";
49127         }
49128         case OP_vkCmdDebugMarkerBeginEXT: {
49129             return "OP_vkCmdDebugMarkerBeginEXT";
49130         }
49131         case OP_vkCmdDebugMarkerEndEXT: {
49132             return "OP_vkCmdDebugMarkerEndEXT";
49133         }
49134         case OP_vkCmdDebugMarkerInsertEXT: {
49135             return "OP_vkCmdDebugMarkerInsertEXT";
49136         }
49137 #endif
49138 #ifdef VK_AMD_draw_indirect_count
49139         case OP_vkCmdDrawIndirectCountAMD: {
49140             return "OP_vkCmdDrawIndirectCountAMD";
49141         }
49142         case OP_vkCmdDrawIndexedIndirectCountAMD: {
49143             return "OP_vkCmdDrawIndexedIndirectCountAMD";
49144         }
49145 #endif
49146 #ifdef VK_AMD_shader_info
49147         case OP_vkGetShaderInfoAMD: {
49148             return "OP_vkGetShaderInfoAMD";
49149         }
49150 #endif
49151 #ifdef VK_NV_external_memory_capabilities
49152         case OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV: {
49153             return "OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV";
49154         }
49155 #endif
49156 #ifdef VK_NV_external_memory_win32
49157         case OP_vkGetMemoryWin32HandleNV: {
49158             return "OP_vkGetMemoryWin32HandleNV";
49159         }
49160 #endif
49161 #ifdef VK_NN_vi_surface
49162         case OP_vkCreateViSurfaceNN: {
49163             return "OP_vkCreateViSurfaceNN";
49164         }
49165 #endif
49166 #ifdef VK_EXT_conditional_rendering
49167         case OP_vkCmdBeginConditionalRenderingEXT: {
49168             return "OP_vkCmdBeginConditionalRenderingEXT";
49169         }
49170         case OP_vkCmdEndConditionalRenderingEXT: {
49171             return "OP_vkCmdEndConditionalRenderingEXT";
49172         }
49173 #endif
49174 #ifdef VK_NV_clip_space_w_scaling
49175         case OP_vkCmdSetViewportWScalingNV: {
49176             return "OP_vkCmdSetViewportWScalingNV";
49177         }
49178 #endif
49179 #ifdef VK_EXT_direct_mode_display
49180         case OP_vkReleaseDisplayEXT: {
49181             return "OP_vkReleaseDisplayEXT";
49182         }
49183 #endif
49184 #ifdef VK_EXT_acquire_xlib_display
49185         case OP_vkAcquireXlibDisplayEXT: {
49186             return "OP_vkAcquireXlibDisplayEXT";
49187         }
49188         case OP_vkGetRandROutputDisplayEXT: {
49189             return "OP_vkGetRandROutputDisplayEXT";
49190         }
49191 #endif
49192 #ifdef VK_EXT_display_surface_counter
49193         case OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT: {
49194             return "OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT";
49195         }
49196 #endif
49197 #ifdef VK_EXT_display_control
49198         case OP_vkDisplayPowerControlEXT: {
49199             return "OP_vkDisplayPowerControlEXT";
49200         }
49201         case OP_vkRegisterDeviceEventEXT: {
49202             return "OP_vkRegisterDeviceEventEXT";
49203         }
49204         case OP_vkRegisterDisplayEventEXT: {
49205             return "OP_vkRegisterDisplayEventEXT";
49206         }
49207         case OP_vkGetSwapchainCounterEXT: {
49208             return "OP_vkGetSwapchainCounterEXT";
49209         }
49210 #endif
49211 #ifdef VK_GOOGLE_display_timing
49212         case OP_vkGetRefreshCycleDurationGOOGLE: {
49213             return "OP_vkGetRefreshCycleDurationGOOGLE";
49214         }
49215         case OP_vkGetPastPresentationTimingGOOGLE: {
49216             return "OP_vkGetPastPresentationTimingGOOGLE";
49217         }
49218 #endif
49219 #ifdef VK_EXT_discard_rectangles
49220         case OP_vkCmdSetDiscardRectangleEXT: {
49221             return "OP_vkCmdSetDiscardRectangleEXT";
49222         }
49223 #endif
49224 #ifdef VK_EXT_hdr_metadata
49225         case OP_vkSetHdrMetadataEXT: {
49226             return "OP_vkSetHdrMetadataEXT";
49227         }
49228 #endif
49229 #ifdef VK_MVK_ios_surface
49230         case OP_vkCreateIOSSurfaceMVK: {
49231             return "OP_vkCreateIOSSurfaceMVK";
49232         }
49233 #endif
49234 #ifdef VK_MVK_macos_surface
49235         case OP_vkCreateMacOSSurfaceMVK: {
49236             return "OP_vkCreateMacOSSurfaceMVK";
49237         }
49238 #endif
49239 #ifdef VK_EXT_debug_utils
49240         case OP_vkSetDebugUtilsObjectNameEXT: {
49241             return "OP_vkSetDebugUtilsObjectNameEXT";
49242         }
49243         case OP_vkSetDebugUtilsObjectTagEXT: {
49244             return "OP_vkSetDebugUtilsObjectTagEXT";
49245         }
49246         case OP_vkQueueBeginDebugUtilsLabelEXT: {
49247             return "OP_vkQueueBeginDebugUtilsLabelEXT";
49248         }
49249         case OP_vkQueueEndDebugUtilsLabelEXT: {
49250             return "OP_vkQueueEndDebugUtilsLabelEXT";
49251         }
49252         case OP_vkQueueInsertDebugUtilsLabelEXT: {
49253             return "OP_vkQueueInsertDebugUtilsLabelEXT";
49254         }
49255         case OP_vkCmdBeginDebugUtilsLabelEXT: {
49256             return "OP_vkCmdBeginDebugUtilsLabelEXT";
49257         }
49258         case OP_vkCmdEndDebugUtilsLabelEXT: {
49259             return "OP_vkCmdEndDebugUtilsLabelEXT";
49260         }
49261         case OP_vkCmdInsertDebugUtilsLabelEXT: {
49262             return "OP_vkCmdInsertDebugUtilsLabelEXT";
49263         }
49264         case OP_vkCreateDebugUtilsMessengerEXT: {
49265             return "OP_vkCreateDebugUtilsMessengerEXT";
49266         }
49267         case OP_vkDestroyDebugUtilsMessengerEXT: {
49268             return "OP_vkDestroyDebugUtilsMessengerEXT";
49269         }
49270         case OP_vkSubmitDebugUtilsMessageEXT: {
49271             return "OP_vkSubmitDebugUtilsMessageEXT";
49272         }
49273 #endif
49274 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
49275         case OP_vkGetAndroidHardwareBufferPropertiesANDROID: {
49276             return "OP_vkGetAndroidHardwareBufferPropertiesANDROID";
49277         }
49278         case OP_vkGetMemoryAndroidHardwareBufferANDROID: {
49279             return "OP_vkGetMemoryAndroidHardwareBufferANDROID";
49280         }
49281 #endif
49282 #ifdef VK_EXT_sample_locations
49283         case OP_vkCmdSetSampleLocationsEXT: {
49284             return "OP_vkCmdSetSampleLocationsEXT";
49285         }
49286         case OP_vkGetPhysicalDeviceMultisamplePropertiesEXT: {
49287             return "OP_vkGetPhysicalDeviceMultisamplePropertiesEXT";
49288         }
49289 #endif
49290 #ifdef VK_EXT_validation_cache
49291         case OP_vkCreateValidationCacheEXT: {
49292             return "OP_vkCreateValidationCacheEXT";
49293         }
49294         case OP_vkDestroyValidationCacheEXT: {
49295             return "OP_vkDestroyValidationCacheEXT";
49296         }
49297         case OP_vkMergeValidationCachesEXT: {
49298             return "OP_vkMergeValidationCachesEXT";
49299         }
49300         case OP_vkGetValidationCacheDataEXT: {
49301             return "OP_vkGetValidationCacheDataEXT";
49302         }
49303 #endif
49304 #ifdef VK_EXT_external_memory_host
49305         case OP_vkGetMemoryHostPointerPropertiesEXT: {
49306             return "OP_vkGetMemoryHostPointerPropertiesEXT";
49307         }
49308 #endif
49309 #ifdef VK_AMD_buffer_marker
49310         case OP_vkCmdWriteBufferMarkerAMD: {
49311             return "OP_vkCmdWriteBufferMarkerAMD";
49312         }
49313 #endif
49314 #ifdef VK_NV_device_diagnostic_checkpoints
49315         case OP_vkCmdSetCheckpointNV: {
49316             return "OP_vkCmdSetCheckpointNV";
49317         }
49318         case OP_vkGetQueueCheckpointDataNV: {
49319             return "OP_vkGetQueueCheckpointDataNV";
49320         }
49321 #endif
49322 #ifdef VK_GOOGLE_gfxstream
49323         case OP_vkMapMemoryIntoAddressSpaceGOOGLE: {
49324             return "OP_vkMapMemoryIntoAddressSpaceGOOGLE";
49325         }
49326         case OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE: {
49327             return "OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE";
49328         }
49329         case OP_vkBeginCommandBufferAsyncGOOGLE: {
49330             return "OP_vkBeginCommandBufferAsyncGOOGLE";
49331         }
49332         case OP_vkEndCommandBufferAsyncGOOGLE: {
49333             return "OP_vkEndCommandBufferAsyncGOOGLE";
49334         }
49335         case OP_vkResetCommandBufferAsyncGOOGLE: {
49336             return "OP_vkResetCommandBufferAsyncGOOGLE";
49337         }
49338         case OP_vkCommandBufferHostSyncGOOGLE: {
49339             return "OP_vkCommandBufferHostSyncGOOGLE";
49340         }
49341         case OP_vkCreateImageWithRequirementsGOOGLE: {
49342             return "OP_vkCreateImageWithRequirementsGOOGLE";
49343         }
49344         case OP_vkCreateBufferWithRequirementsGOOGLE: {
49345             return "OP_vkCreateBufferWithRequirementsGOOGLE";
49346         }
49347         case OP_vkGetMemoryHostAddressInfoGOOGLE: {
49348             return "OP_vkGetMemoryHostAddressInfoGOOGLE";
49349         }
49350         case OP_vkFreeMemorySyncGOOGLE: {
49351             return "OP_vkFreeMemorySyncGOOGLE";
49352         }
49353         case OP_vkQueueHostSyncGOOGLE: {
49354             return "OP_vkQueueHostSyncGOOGLE";
49355         }
49356         case OP_vkQueueSubmitAsyncGOOGLE: {
49357             return "OP_vkQueueSubmitAsyncGOOGLE";
49358         }
49359         case OP_vkQueueWaitIdleAsyncGOOGLE: {
49360             return "OP_vkQueueWaitIdleAsyncGOOGLE";
49361         }
49362         case OP_vkQueueBindSparseAsyncGOOGLE: {
49363             return "OP_vkQueueBindSparseAsyncGOOGLE";
49364         }
49365         case OP_vkGetLinearImageLayoutGOOGLE: {
49366             return "OP_vkGetLinearImageLayoutGOOGLE";
49367         }
49368         case OP_vkQueueFlushCommandsGOOGLE: {
49369             return "OP_vkQueueFlushCommandsGOOGLE";
49370         }
49371         case OP_vkGetBlobGOOGLE: {
49372             return "OP_vkGetBlobGOOGLE";
49373         }
49374 #endif
49375 #ifdef VK_EXT_extended_dynamic_state3
49376         case OP_vkCmdSetRasterizationSamplesEXT: {
49377             return "OP_vkCmdSetRasterizationSamplesEXT";
49378         }
49379 #endif
49380 #ifdef VK_KHR_dynamic_rendering
49381         case OP_vkCmdEndRenderingKHR: {
49382             return "OP_vkCmdEndRenderingKHR";
49383         }
49384 #endif
49385 #ifdef VK_EXT_full_screen_exclusive
49386         case OP_vkAcquireFullScreenExclusiveModeEXT: {
49387             return "OP_vkAcquireFullScreenExclusiveModeEXT";
49388         }
49389 #endif
49390 #ifdef VK_KHR_synchronization2
49391         case OP_vkCmdPipelineBarrier2KHR: {
49392             return "OP_vkCmdPipelineBarrier2KHR";
49393         }
49394 #endif
49395 #ifdef VK_KHR_maintenance4
49396         case OP_vkGetDeviceBufferMemoryRequirementsKHR: {
49397             return "OP_vkGetDeviceBufferMemoryRequirementsKHR";
49398         }
49399 #endif
49400 #ifdef VK_EXT_color_write_enable
49401         case OP_vkCmdSetColorWriteEnableEXT: {
49402             return "OP_vkCmdSetColorWriteEnableEXT";
49403         }
49404 #endif
49405 #ifdef VK_EXT_descriptor_buffer
49406         case OP_vkGetDescriptorEXT: {
49407             return "OP_vkGetDescriptorEXT";
49408         }
49409 #endif
49410 #ifdef VK_EXT_extended_dynamic_state3
49411         case OP_vkCmdSetColorBlendAdvancedEXT: {
49412             return "OP_vkCmdSetColorBlendAdvancedEXT";
49413         }
49414 #endif
49415 #ifdef VK_NV_ray_tracing
49416         case OP_vkBindAccelerationStructureMemoryNV: {
49417             return "OP_vkBindAccelerationStructureMemoryNV";
49418         }
49419 #endif
49420 #ifdef VK_INTEL_performance_query
49421         case OP_vkInitializePerformanceApiINTEL: {
49422             return "OP_vkInitializePerformanceApiINTEL";
49423         }
49424 #endif
49425 #ifdef VK_KHR_deferred_host_operations
49426         case OP_vkGetDeferredOperationMaxConcurrencyKHR: {
49427             return "OP_vkGetDeferredOperationMaxConcurrencyKHR";
49428         }
49429 #endif
49430 #ifdef VK_NV_optical_flow
49431         case OP_vkCreateOpticalFlowSessionNV: {
49432             return "OP_vkCreateOpticalFlowSessionNV";
49433         }
49434 #endif
49435 #ifdef VK_EXT_descriptor_buffer
49436         case OP_vkCmdBindDescriptorBufferEmbeddedSamplersEXT: {
49437             return "OP_vkCmdBindDescriptorBufferEmbeddedSamplersEXT";
49438         }
49439 #endif
49440 #ifdef VK_EXT_calibrated_timestamps
49441         case OP_vkGetCalibratedTimestampsEXT: {
49442             return "OP_vkGetCalibratedTimestampsEXT";
49443         }
49444 #endif
49445 #ifdef VK_NV_ray_tracing
49446         case OP_vkCreateRayTracingPipelinesNV: {
49447             return "OP_vkCreateRayTracingPipelinesNV";
49448         }
49449 #endif
49450 #ifdef VK_KHR_acceleration_structure
49451         case OP_vkCmdCopyMemoryToAccelerationStructureKHR: {
49452             return "OP_vkCmdCopyMemoryToAccelerationStructureKHR";
49453         }
49454 #endif
49455 #ifdef VK_KHR_fragment_shading_rate
49456         case OP_vkCmdSetFragmentShadingRateKHR: {
49457             return "OP_vkCmdSetFragmentShadingRateKHR";
49458         }
49459 #endif
49460 #ifdef VK_NVX_image_view_handle
49461         case OP_vkGetImageViewHandleNVX: {
49462             return "OP_vkGetImageViewHandleNVX";
49463         }
49464 #endif
49465 #ifdef VK_EXT_extended_dynamic_state
49466         case OP_vkCmdSetScissorWithCountEXT: {
49467             return "OP_vkCmdSetScissorWithCountEXT";
49468         }
49469 #endif
49470 #ifdef VK_EXT_extended_dynamic_state3
49471         case OP_vkCmdSetViewportWScalingEnableNV: {
49472             return "OP_vkCmdSetViewportWScalingEnableNV";
49473         }
49474         case OP_vkCmdSetRasterizationStreamEXT: {
49475             return "OP_vkCmdSetRasterizationStreamEXT";
49476         }
49477 #endif
49478 #ifdef VK_KHR_ray_tracing_pipeline
49479         case OP_vkGetRayTracingShaderGroupStackSizeKHR: {
49480             return "OP_vkGetRayTracingShaderGroupStackSizeKHR";
49481         }
49482 #endif
49483 #ifdef VK_EXT_extended_dynamic_state3
49484         case OP_vkCmdSetSampleMaskEXT: {
49485             return "OP_vkCmdSetSampleMaskEXT";
49486         }
49487 #endif
49488 #ifdef VK_EXT_full_screen_exclusive
49489         case OP_vkGetDeviceGroupSurfacePresentModes2EXT: {
49490             return "OP_vkGetDeviceGroupSurfacePresentModes2EXT";
49491         }
49492 #endif
49493 #ifdef VK_NV_mesh_shader
49494         case OP_vkCmdDrawMeshTasksNV: {
49495             return "OP_vkCmdDrawMeshTasksNV";
49496         }
49497 #endif
49498 #ifdef VK_NVX_binary_import
49499         case OP_vkCreateCuFunctionNVX: {
49500             return "OP_vkCreateCuFunctionNVX";
49501         }
49502 #endif
49503 #ifdef VK_NV_ray_tracing
49504         case OP_vkCmdWriteAccelerationStructuresPropertiesNV: {
49505             return "OP_vkCmdWriteAccelerationStructuresPropertiesNV";
49506         }
49507 #endif
49508 #ifdef VK_EXT_opacity_micromap
49509         case OP_vkCmdBuildMicromapsEXT: {
49510             return "OP_vkCmdBuildMicromapsEXT";
49511         }
49512         case OP_vkWriteMicromapsPropertiesEXT: {
49513             return "OP_vkWriteMicromapsPropertiesEXT";
49514         }
49515 #endif
49516 #ifdef VK_EXT_extended_dynamic_state2
49517         case OP_vkCmdSetPatchControlPointsEXT: {
49518             return "OP_vkCmdSetPatchControlPointsEXT";
49519         }
49520 #endif
49521 #ifdef VK_EXT_private_data
49522         case OP_vkDestroyPrivateDataSlotEXT: {
49523             return "OP_vkDestroyPrivateDataSlotEXT";
49524         }
49525 #endif
49526 #ifdef VK_VERSION_1_3
49527         case OP_vkCmdSetDepthTestEnable: {
49528             return "OP_vkCmdSetDepthTestEnable";
49529         }
49530 #endif
49531 #ifdef VK_NV_ray_tracing
49532         case OP_vkCmdTraceRaysNV: {
49533             return "OP_vkCmdTraceRaysNV";
49534         }
49535 #endif
49536 #ifdef VK_EXT_opacity_micromap
49537         case OP_vkCmdWriteMicromapsPropertiesEXT: {
49538             return "OP_vkCmdWriteMicromapsPropertiesEXT";
49539         }
49540 #endif
49541 #ifdef VK_HUAWEI_cluster_culling_shader
49542         case OP_vkCmdDrawClusterIndirectHUAWEI: {
49543             return "OP_vkCmdDrawClusterIndirectHUAWEI";
49544         }
49545 #endif
49546 #ifdef VK_NVX_image_view_handle
49547         case OP_vkGetImageViewAddressNVX: {
49548             return "OP_vkGetImageViewAddressNVX";
49549         }
49550 #endif
49551 #ifdef VK_NV_ray_tracing
49552         case OP_vkCmdCopyAccelerationStructureNV: {
49553             return "OP_vkCmdCopyAccelerationStructureNV";
49554         }
49555 #endif
49556 #ifdef VK_EXT_vertex_input_dynamic_state
49557         case OP_vkCmdSetVertexInputEXT: {
49558             return "OP_vkCmdSetVertexInputEXT";
49559         }
49560 #endif
49561 #ifdef VK_KHR_ray_tracing_pipeline
49562         case OP_vkCmdTraceRaysIndirectKHR: {
49563             return "OP_vkCmdTraceRaysIndirectKHR";
49564         }
49565 #endif
49566 #ifdef VK_EXT_extended_dynamic_state
49567         case OP_vkCmdSetFrontFaceEXT: {
49568             return "OP_vkCmdSetFrontFaceEXT";
49569         }
49570 #endif
49571 #ifdef VK_FUCHSIA_buffer_collection
49572         case OP_vkSetBufferCollectionBufferConstraintsFUCHSIA: {
49573             return "OP_vkSetBufferCollectionBufferConstraintsFUCHSIA";
49574         }
49575 #endif
49576 #ifdef VK_FUCHSIA_external_memory
49577         case OP_vkGetMemoryZirconHandlePropertiesFUCHSIA: {
49578             return "OP_vkGetMemoryZirconHandlePropertiesFUCHSIA";
49579         }
49580 #endif
49581 #ifdef VK_INTEL_performance_query
49582         case OP_vkGetPerformanceParameterINTEL: {
49583             return "OP_vkGetPerformanceParameterINTEL";
49584         }
49585 #endif
49586 #ifdef VK_GOOGLE_gfxstream
49587         case OP_vkCollectDescriptorPoolIdsGOOGLE: {
49588             return "OP_vkCollectDescriptorPoolIdsGOOGLE";
49589         }
49590 #endif
49591 #ifdef VK_KHR_ray_tracing_pipeline
49592         case OP_vkCmdTraceRaysKHR: {
49593             return "OP_vkCmdTraceRaysKHR";
49594         }
49595 #endif
49596 #ifdef VK_EXT_shader_module_identifier
49597         case OP_vkGetShaderModuleCreateInfoIdentifierEXT: {
49598             return "OP_vkGetShaderModuleCreateInfoIdentifierEXT";
49599         }
49600 #endif
49601 #ifdef VK_FUCHSIA_external_memory
49602         case OP_vkGetMemoryZirconHandleFUCHSIA: {
49603             return "OP_vkGetMemoryZirconHandleFUCHSIA";
49604         }
49605 #endif
49606 #ifdef VK_VERSION_1_3
49607         case OP_vkCmdCopyImageToBuffer2: {
49608             return "OP_vkCmdCopyImageToBuffer2";
49609         }
49610 #endif
49611 #ifdef VK_NV_shading_rate_image
49612         case OP_vkCmdSetViewportShadingRatePaletteNV: {
49613             return "OP_vkCmdSetViewportShadingRatePaletteNV";
49614         }
49615 #endif
49616 #ifdef VK_KHR_deferred_host_operations
49617         case OP_vkDestroyDeferredOperationKHR: {
49618             return "OP_vkDestroyDeferredOperationKHR";
49619         }
49620 #endif
49621 #ifdef VK_KHR_video_queue
49622         case OP_vkBindVideoSessionMemoryKHR: {
49623             return "OP_vkBindVideoSessionMemoryKHR";
49624         }
49625 #endif
49626 #ifdef VK_NV_optical_flow
49627         case OP_vkBindOpticalFlowSessionImageNV: {
49628             return "OP_vkBindOpticalFlowSessionImageNV";
49629         }
49630         case OP_vkCmdOpticalFlowExecuteNV: {
49631             return "OP_vkCmdOpticalFlowExecuteNV";
49632         }
49633 #endif
49634 #ifdef VK_KHR_deferred_host_operations
49635         case OP_vkDeferredOperationJoinKHR: {
49636             return "OP_vkDeferredOperationJoinKHR";
49637         }
49638 #endif
49639 #ifdef VK_EXT_extended_dynamic_state
49640         case OP_vkCmdSetDepthWriteEnableEXT: {
49641             return "OP_vkCmdSetDepthWriteEnableEXT";
49642         }
49643 #endif
49644 #ifdef VK_KHR_buffer_device_address
49645         case OP_vkGetBufferDeviceAddressKHR: {
49646             return "OP_vkGetBufferDeviceAddressKHR";
49647         }
49648 #endif
49649 #ifdef VK_VERSION_1_3
49650         case OP_vkCmdSetDepthBoundsTestEnable: {
49651             return "OP_vkCmdSetDepthBoundsTestEnable";
49652         }
49653 #endif
49654 #ifdef VK_KHR_acceleration_structure
49655         case OP_vkGetAccelerationStructureBuildSizesKHR: {
49656             return "OP_vkGetAccelerationStructureBuildSizesKHR";
49657         }
49658 #endif
49659 #ifdef VK_VERSION_1_3
49660         case OP_vkCmdSetScissorWithCount: {
49661             return "OP_vkCmdSetScissorWithCount";
49662         }
49663 #endif
49664 #ifdef VK_NVX_binary_import
49665         case OP_vkCmdCuLaunchKernelNVX: {
49666             return "OP_vkCmdCuLaunchKernelNVX";
49667         }
49668 #endif
49669 #ifdef VK_NV_memory_decompression
49670         case OP_vkCmdDecompressMemoryNV: {
49671             return "OP_vkCmdDecompressMemoryNV";
49672         }
49673 #endif
49674 #ifdef VK_NV_ray_tracing
49675         case OP_vkGetAccelerationStructureMemoryRequirementsNV: {
49676             return "OP_vkGetAccelerationStructureMemoryRequirementsNV";
49677         }
49678 #endif
49679 #ifdef VK_HUAWEI_subpass_shading
49680         case OP_vkCmdSubpassShadingHUAWEI: {
49681             return "OP_vkCmdSubpassShadingHUAWEI";
49682         }
49683 #endif
49684 #ifdef VK_VERSION_1_3
49685         case OP_vkCmdEndRendering: {
49686             return "OP_vkCmdEndRendering";
49687         }
49688 #endif
49689 #ifdef VK_EXT_directfb_surface
49690         case OP_vkCreateDirectFBSurfaceEXT: {
49691             return "OP_vkCreateDirectFBSurfaceEXT";
49692         }
49693 #endif
49694 #ifdef VK_VERSION_1_2
49695         case OP_vkCmdEndRenderPass2: {
49696             return "OP_vkCmdEndRenderPass2";
49697         }
49698 #endif
49699 #ifdef VK_EXT_descriptor_buffer
49700         case OP_vkGetDescriptorSetLayoutBindingOffsetEXT: {
49701             return "OP_vkGetDescriptorSetLayoutBindingOffsetEXT";
49702         }
49703 #endif
49704 #ifdef VK_KHR_ray_tracing_pipeline
49705         case OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: {
49706             return "OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR";
49707         }
49708 #endif
49709 #ifdef VK_VERSION_1_2
49710         case OP_vkGetBufferDeviceAddress: {
49711             return "OP_vkGetBufferDeviceAddress";
49712         }
49713 #endif
49714 #ifdef VK_VERSION_1_3
49715         case OP_vkCmdSetFrontFace: {
49716             return "OP_vkCmdSetFrontFace";
49717         }
49718 #endif
49719 #ifdef VK_EXT_discard_rectangles
49720         case OP_vkCmdSetDiscardRectangleModeEXT: {
49721             return "OP_vkCmdSetDiscardRectangleModeEXT";
49722         }
49723 #endif
49724 #ifdef VK_EXT_extended_dynamic_state
49725         case OP_vkCmdSetDepthBoundsTestEnableEXT: {
49726             return "OP_vkCmdSetDepthBoundsTestEnableEXT";
49727         }
49728 #endif
49729 #ifdef VK_KHR_acceleration_structure
49730         case OP_vkGetAccelerationStructureDeviceAddressKHR: {
49731             return "OP_vkGetAccelerationStructureDeviceAddressKHR";
49732         }
49733 #endif
49734 #ifdef VK_EXT_extended_dynamic_state3
49735         case OP_vkCmdSetColorBlendEquationEXT: {
49736             return "OP_vkCmdSetColorBlendEquationEXT";
49737         }
49738 #endif
49739 #ifdef VK_KHR_acceleration_structure
49740         case OP_vkCmdCopyAccelerationStructureToMemoryKHR: {
49741             return "OP_vkCmdCopyAccelerationStructureToMemoryKHR";
49742         }
49743 #endif
49744 #ifdef VK_EXT_mesh_shader
49745         case OP_vkCmdDrawMeshTasksIndirectEXT: {
49746             return "OP_vkCmdDrawMeshTasksIndirectEXT";
49747         }
49748 #endif
49749 #ifdef VK_NV_mesh_shader
49750         case OP_vkCmdDrawMeshTasksIndirectCountNV: {
49751             return "OP_vkCmdDrawMeshTasksIndirectCountNV";
49752         }
49753 #endif
49754 #ifdef VK_KHR_performance_query
49755         case OP_vkReleaseProfilingLockKHR: {
49756             return "OP_vkReleaseProfilingLockKHR";
49757         }
49758 #endif
49759 #ifdef VK_KHR_acceleration_structure
49760         case OP_vkDestroyAccelerationStructureKHR: {
49761             return "OP_vkDestroyAccelerationStructureKHR";
49762         }
49763 #endif
49764 #ifdef VK_EXT_pageable_device_local_memory
49765         case OP_vkSetDeviceMemoryPriorityEXT: {
49766             return "OP_vkSetDeviceMemoryPriorityEXT";
49767         }
49768 #endif
49769 #ifdef VK_EXT_buffer_device_address
49770         case OP_vkGetBufferDeviceAddressEXT: {
49771             return "OP_vkGetBufferDeviceAddressEXT";
49772         }
49773 #endif
49774 #ifdef VK_QNX_screen_surface
49775         case OP_vkCreateScreenSurfaceQNX: {
49776             return "OP_vkCreateScreenSurfaceQNX";
49777         }
49778 #endif
49779 #ifdef VK_VERSION_1_3
49780         case OP_vkDestroyPrivateDataSlot: {
49781             return "OP_vkDestroyPrivateDataSlot";
49782         }
49783         case OP_vkCmdSetCullMode: {
49784             return "OP_vkCmdSetCullMode";
49785         }
49786 #endif
49787 #ifdef VK_KHR_synchronization2
49788         case OP_vkCmdWriteBufferMarker2AMD: {
49789             return "OP_vkCmdWriteBufferMarker2AMD";
49790         }
49791 #endif
49792 #ifdef VK_VERSION_1_2
49793         case OP_vkWaitSemaphores: {
49794             return "OP_vkWaitSemaphores";
49795         }
49796 #endif
49797 #ifdef VK_FUCHSIA_buffer_collection
49798         case OP_vkDestroyBufferCollectionFUCHSIA: {
49799             return "OP_vkDestroyBufferCollectionFUCHSIA";
49800         }
49801 #endif
49802 #ifdef VK_EXT_extended_dynamic_state3
49803         case OP_vkCmdSetCoverageModulationModeNV: {
49804             return "OP_vkCmdSetCoverageModulationModeNV";
49805         }
49806 #endif
49807 #ifdef VK_EXT_private_data
49808         case OP_vkSetPrivateDataEXT: {
49809             return "OP_vkSetPrivateDataEXT";
49810         }
49811 #endif
49812 #ifdef VK_EXT_descriptor_buffer
49813         case OP_vkGetImageViewOpaqueCaptureDescriptorDataEXT: {
49814             return "OP_vkGetImageViewOpaqueCaptureDescriptorDataEXT";
49815         }
49816 #endif
49817 #ifdef VK_HUAWEI_subpass_shading
49818         case OP_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: {
49819             return "OP_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI";
49820         }
49821 #endif
49822 #ifdef VK_NV_scissor_exclusive
49823         case OP_vkCmdSetExclusiveScissorNV: {
49824             return "OP_vkCmdSetExclusiveScissorNV";
49825         }
49826 #endif
49827 #ifdef VK_EXT_extended_dynamic_state3
49828         case OP_vkCmdSetLineStippleEnableEXT: {
49829             return "OP_vkCmdSetLineStippleEnableEXT";
49830         }
49831 #endif
49832 #ifdef VK_KHR_copy_commands2
49833         case OP_vkCmdCopyImage2KHR: {
49834             return "OP_vkCmdCopyImage2KHR";
49835         }
49836 #endif
49837 #ifdef VK_NVX_binary_import
49838         case OP_vkCreateCuModuleNVX: {
49839             return "OP_vkCreateCuModuleNVX";
49840         }
49841 #endif
49842 #ifdef VK_KHR_video_queue
49843         case OP_vkCreateVideoSessionKHR: {
49844             return "OP_vkCreateVideoSessionKHR";
49845         }
49846 #endif
49847 #ifdef VK_EXT_extended_dynamic_state3
49848         case OP_vkCmdSetColorWriteMaskEXT: {
49849             return "OP_vkCmdSetColorWriteMaskEXT";
49850         }
49851 #endif
49852 #ifdef VK_KHR_timeline_semaphore
49853         case OP_vkGetSemaphoreCounterValueKHR: {
49854             return "OP_vkGetSemaphoreCounterValueKHR";
49855         }
49856 #endif
49857 #ifdef VK_KHR_map_memory2
49858         case OP_vkUnmapMemory2KHR: {
49859             return "OP_vkUnmapMemory2KHR";
49860         }
49861 #endif
49862 #ifdef VK_NV_ray_tracing
49863         case OP_vkGetRayTracingShaderGroupHandlesNV: {
49864             return "OP_vkGetRayTracingShaderGroupHandlesNV";
49865         }
49866 #endif
49867 #ifdef VK_VERSION_1_2
49868         case OP_vkGetBufferOpaqueCaptureAddress: {
49869             return "OP_vkGetBufferOpaqueCaptureAddress";
49870         }
49871 #endif
49872 #ifdef VK_VERSION_1_3
49873         case OP_vkCmdSetPrimitiveRestartEnable: {
49874             return "OP_vkCmdSetPrimitiveRestartEnable";
49875         }
49876 #endif
49877 #ifdef VK_EXT_swapchain_maintenance1
49878         case OP_vkReleaseSwapchainImagesEXT: {
49879             return "OP_vkReleaseSwapchainImagesEXT";
49880         }
49881 #endif
49882 #ifdef VK_VERSION_1_3
49883         case OP_vkCmdSetEvent2: {
49884             return "OP_vkCmdSetEvent2";
49885         }
49886 #endif
49887 #ifdef VK_EXT_descriptor_buffer
49888         case OP_vkGetDescriptorSetLayoutSizeEXT: {
49889             return "OP_vkGetDescriptorSetLayoutSizeEXT";
49890         }
49891 #endif
49892 #ifdef VK_KHR_map_memory2
49893         case OP_vkMapMemory2KHR: {
49894             return "OP_vkMapMemory2KHR";
49895         }
49896 #endif
49897 #ifdef VK_VERSION_1_3
49898         case OP_vkGetDeviceImageSparseMemoryRequirements: {
49899             return "OP_vkGetDeviceImageSparseMemoryRequirements";
49900         }
49901 #endif
49902 #ifdef VK_EXT_extended_dynamic_state
49903         case OP_vkCmdSetDepthTestEnableEXT: {
49904             return "OP_vkCmdSetDepthTestEnableEXT";
49905         }
49906 #endif
49907 #ifdef VK_EXT_opacity_micromap
49908         case OP_vkCmdCopyMicromapToMemoryEXT: {
49909             return "OP_vkCmdCopyMicromapToMemoryEXT";
49910         }
49911 #endif
49912 #ifdef VK_NV_device_generated_commands
49913         case OP_vkCmdExecuteGeneratedCommandsNV: {
49914             return "OP_vkCmdExecuteGeneratedCommandsNV";
49915         }
49916 #endif
49917 #ifdef VK_VERSION_1_2
49918         case OP_vkCmdBeginRenderPass2: {
49919             return "OP_vkCmdBeginRenderPass2";
49920         }
49921 #endif
49922 #ifdef VK_VERSION_1_3
49923         case OP_vkCmdSetStencilOp: {
49924             return "OP_vkCmdSetStencilOp";
49925         }
49926 #endif
49927 #ifdef VK_EXT_private_data
49928         case OP_vkCreatePrivateDataSlotEXT: {
49929             return "OP_vkCreatePrivateDataSlotEXT";
49930         }
49931 #endif
49932 #ifdef VK_VERSION_1_3
49933         case OP_vkCmdCopyBuffer2: {
49934             return "OP_vkCmdCopyBuffer2";
49935         }
49936 #endif
49937 #ifdef VK_NV_shading_rate_image
49938         case OP_vkCmdSetCoarseSampleOrderNV: {
49939             return "OP_vkCmdSetCoarseSampleOrderNV";
49940         }
49941 #endif
49942 #ifdef VK_VERSION_1_3
49943         case OP_vkGetPrivateData: {
49944             return "OP_vkGetPrivateData";
49945         }
49946 #endif
49947 #ifdef VK_KHR_video_queue
49948         case OP_vkDestroyVideoSessionParametersKHR: {
49949             return "OP_vkDestroyVideoSessionParametersKHR";
49950         }
49951 #endif
49952 #ifdef VK_NV_shading_rate_image
49953         case OP_vkCmdBindShadingRateImageNV: {
49954             return "OP_vkCmdBindShadingRateImageNV";
49955         }
49956 #endif
49957 #ifdef VK_KHR_performance_query
49958         case OP_vkAcquireProfilingLockKHR: {
49959             return "OP_vkAcquireProfilingLockKHR";
49960         }
49961 #endif
49962 #ifdef VK_KHR_video_queue
49963         case OP_vkDestroyVideoSessionKHR: {
49964             return "OP_vkDestroyVideoSessionKHR";
49965         }
49966         case OP_vkCmdBeginVideoCodingKHR: {
49967             return "OP_vkCmdBeginVideoCodingKHR";
49968         }
49969 #endif
49970 #ifdef VK_QCOM_tile_properties
49971         case OP_vkGetDynamicRenderingTilePropertiesQCOM: {
49972             return "OP_vkGetDynamicRenderingTilePropertiesQCOM";
49973         }
49974 #endif
49975 #ifdef VK_VERSION_1_3
49976         case OP_vkCmdSetDepthWriteEnable: {
49977             return "OP_vkCmdSetDepthWriteEnable";
49978         }
49979 #endif
49980 #ifdef VK_KHR_acceleration_structure
49981         case OP_vkCopyAccelerationStructureKHR: {
49982             return "OP_vkCopyAccelerationStructureKHR";
49983         }
49984 #endif
49985 #ifdef VK_EXT_opacity_micromap
49986         case OP_vkBuildMicromapsEXT: {
49987             return "OP_vkBuildMicromapsEXT";
49988         }
49989 #endif
49990 #ifdef VK_GGP_stream_descriptor_surface
49991         case OP_vkCreateStreamDescriptorSurfaceGGP: {
49992             return "OP_vkCreateStreamDescriptorSurfaceGGP";
49993         }
49994 #endif
49995 #ifdef VK_KHR_acceleration_structure
49996         case OP_vkBuildAccelerationStructuresKHR: {
49997             return "OP_vkBuildAccelerationStructuresKHR";
49998         }
49999 #endif
50000 #ifdef VK_VERSION_1_3
50001         case OP_vkSetPrivateData: {
50002             return "OP_vkSetPrivateData";
50003         }
50004 #endif
50005 #ifdef VK_FUCHSIA_buffer_collection
50006         case OP_vkGetBufferCollectionPropertiesFUCHSIA: {
50007             return "OP_vkGetBufferCollectionPropertiesFUCHSIA";
50008         }
50009 #endif
50010 #ifdef VK_EXT_shader_object
50011         case OP_vkDestroyShaderEXT: {
50012             return "OP_vkDestroyShaderEXT";
50013         }
50014 #endif
50015 #ifdef VK_EXT_opacity_micromap
50016         case OP_vkDestroyMicromapEXT: {
50017             return "OP_vkDestroyMicromapEXT";
50018         }
50019 #endif
50020 #ifdef VK_EXT_host_query_reset
50021         case OP_vkResetQueryPoolEXT: {
50022             return "OP_vkResetQueryPoolEXT";
50023         }
50024 #endif
50025 #ifdef VK_KHR_maintenance4
50026         case OP_vkGetDeviceImageMemoryRequirementsKHR: {
50027             return "OP_vkGetDeviceImageMemoryRequirementsKHR";
50028         }
50029 #endif
50030 #ifdef VK_EXT_extended_dynamic_state
50031         case OP_vkCmdBindVertexBuffers2EXT: {
50032             return "OP_vkCmdBindVertexBuffers2EXT";
50033         }
50034 #endif
50035 #ifdef VK_EXT_pipeline_properties
50036         case OP_vkGetPipelinePropertiesEXT: {
50037             return "OP_vkGetPipelinePropertiesEXT";
50038         }
50039 #endif
50040 #ifdef VK_GOOGLE_gfxstream
50041         case OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE: {
50042             return "OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE";
50043         }
50044 #endif
50045 #ifdef VK_EXT_descriptor_buffer
50046         case OP_vkGetImageOpaqueCaptureDescriptorDataEXT: {
50047             return "OP_vkGetImageOpaqueCaptureDescriptorDataEXT";
50048         }
50049 #endif
50050 #ifdef VK_EXT_extended_dynamic_state3
50051         case OP_vkCmdSetPolygonModeEXT: {
50052             return "OP_vkCmdSetPolygonModeEXT";
50053         }
50054 #endif
50055 #ifdef VK_VERSION_1_3
50056         case OP_vkCmdWaitEvents2: {
50057             return "OP_vkCmdWaitEvents2";
50058         }
50059 #endif
50060 #ifdef VK_GOOGLE_gfxstream
50061         case OP_vkUpdateDescriptorSetWithTemplateSized2GOOGLE: {
50062             return "OP_vkUpdateDescriptorSetWithTemplateSized2GOOGLE";
50063         }
50064 #endif
50065 #ifdef VK_EXT_extended_dynamic_state3
50066         case OP_vkCmdSetRepresentativeFragmentTestEnableNV: {
50067             return "OP_vkCmdSetRepresentativeFragmentTestEnableNV";
50068         }
50069 #endif
50070 #ifdef VK_VERSION_1_2
50071         case OP_vkCmdNextSubpass2: {
50072             return "OP_vkCmdNextSubpass2";
50073         }
50074 #endif
50075 #ifdef VK_NV_copy_memory_indirect
50076         case OP_vkCmdCopyMemoryIndirectNV: {
50077             return "OP_vkCmdCopyMemoryIndirectNV";
50078         }
50079 #endif
50080 #ifdef VK_KHR_synchronization2
50081         case OP_vkCmdWaitEvents2KHR: {
50082             return "OP_vkCmdWaitEvents2KHR";
50083         }
50084 #endif
50085 #ifdef VK_EXT_extended_dynamic_state3
50086         case OP_vkCmdSetCoverageToColorLocationNV: {
50087             return "OP_vkCmdSetCoverageToColorLocationNV";
50088         }
50089 #endif
50090 #ifdef VK_VERSION_1_2
50091         case OP_vkCmdDrawIndexedIndirectCount: {
50092             return "OP_vkCmdDrawIndexedIndirectCount";
50093         }
50094 #endif
50095 #ifdef VK_EXT_extended_dynamic_state2
50096         case OP_vkCmdSetRasterizerDiscardEnableEXT: {
50097             return "OP_vkCmdSetRasterizerDiscardEnableEXT";
50098         }
50099 #endif
50100 #ifdef VK_VERSION_1_3
50101         case OP_vkCmdSetDepthCompareOp: {
50102             return "OP_vkCmdSetDepthCompareOp";
50103         }
50104 #endif
50105 #ifdef VK_INTEL_performance_query
50106         case OP_vkAcquirePerformanceConfigurationINTEL: {
50107             return "OP_vkAcquirePerformanceConfigurationINTEL";
50108         }
50109 #endif
50110 #ifdef VK_VERSION_1_3
50111         case OP_vkCmdWriteTimestamp2: {
50112             return "OP_vkCmdWriteTimestamp2";
50113         }
50114         case OP_vkCmdCopyImage2: {
50115             return "OP_vkCmdCopyImage2";
50116         }
50117 #endif
50118 #ifdef VK_KHR_ray_tracing_pipeline
50119         case OP_vkCreateRayTracingPipelinesKHR: {
50120             return "OP_vkCreateRayTracingPipelinesKHR";
50121         }
50122 #endif
50123 #ifdef VK_EXT_extended_dynamic_state
50124         case OP_vkCmdSetDepthCompareOpEXT: {
50125             return "OP_vkCmdSetDepthCompareOpEXT";
50126         }
50127 #endif
50128 #ifdef VK_KHR_copy_commands2
50129         case OP_vkCmdCopyBuffer2KHR: {
50130             return "OP_vkCmdCopyBuffer2KHR";
50131         }
50132 #endif
50133 #ifdef VK_KHR_video_queue
50134         case OP_vkGetPhysicalDeviceVideoCapabilitiesKHR: {
50135             return "OP_vkGetPhysicalDeviceVideoCapabilitiesKHR";
50136         }
50137 #endif
50138 #ifdef VK_QCOM_tile_properties
50139         case OP_vkGetFramebufferTilePropertiesQCOM: {
50140             return "OP_vkGetFramebufferTilePropertiesQCOM";
50141         }
50142 #endif
50143 #ifdef VK_FUCHSIA_external_semaphore
50144         case OP_vkGetSemaphoreZirconHandleFUCHSIA: {
50145             return "OP_vkGetSemaphoreZirconHandleFUCHSIA";
50146         }
50147 #endif
50148 #ifdef VK_KHR_copy_commands2
50149         case OP_vkCmdCopyBufferToImage2KHR: {
50150             return "OP_vkCmdCopyBufferToImage2KHR";
50151         }
50152 #endif
50153 #ifdef VK_NV_device_generated_commands
50154         case OP_vkGetGeneratedCommandsMemoryRequirementsNV: {
50155             return "OP_vkGetGeneratedCommandsMemoryRequirementsNV";
50156         }
50157 #endif
50158 #ifdef VK_EXT_acquire_drm_display
50159         case OP_vkAcquireDrmDisplayEXT: {
50160             return "OP_vkAcquireDrmDisplayEXT";
50161         }
50162 #endif
50163 #ifdef VK_EXT_extended_dynamic_state3
50164         case OP_vkCmdSetAlphaToCoverageEnableEXT: {
50165             return "OP_vkCmdSetAlphaToCoverageEnableEXT";
50166         }
50167         case OP_vkCmdSetDepthClampEnableEXT: {
50168             return "OP_vkCmdSetDepthClampEnableEXT";
50169         }
50170 #endif
50171 #ifdef VK_EXT_image_drm_format_modifier
50172         case OP_vkGetImageDrmFormatModifierPropertiesEXT: {
50173             return "OP_vkGetImageDrmFormatModifierPropertiesEXT";
50174         }
50175 #endif
50176 #ifdef VK_INTEL_performance_query
50177         case OP_vkCmdSetPerformanceOverrideINTEL: {
50178             return "OP_vkCmdSetPerformanceOverrideINTEL";
50179         }
50180 #endif
50181 #ifdef VK_EXT_extended_dynamic_state3
50182         case OP_vkCmdSetProvokingVertexModeEXT: {
50183             return "OP_vkCmdSetProvokingVertexModeEXT";
50184         }
50185 #endif
50186 #ifdef VK_EXT_mesh_shader
50187         case OP_vkCmdDrawMeshTasksIndirectCountEXT: {
50188             return "OP_vkCmdDrawMeshTasksIndirectCountEXT";
50189         }
50190 #endif
50191 #ifdef VK_VERSION_1_2
50192         case OP_vkResetQueryPool: {
50193             return "OP_vkResetQueryPool";
50194         }
50195 #endif
50196 #ifdef VK_KHR_copy_commands2
50197         case OP_vkCmdCopyImageToBuffer2KHR: {
50198             return "OP_vkCmdCopyImageToBuffer2KHR";
50199         }
50200 #endif
50201 #ifdef VK_KHR_synchronization2
50202         case OP_vkCmdWriteTimestamp2KHR: {
50203             return "OP_vkCmdWriteTimestamp2KHR";
50204         }
50205 #endif
50206 #ifdef VK_NV_ray_tracing
50207         case OP_vkDestroyAccelerationStructureNV: {
50208             return "OP_vkDestroyAccelerationStructureNV";
50209         }
50210 #endif
50211 #ifdef VK_INTEL_performance_query
50212         case OP_vkReleasePerformanceConfigurationINTEL: {
50213             return "OP_vkReleasePerformanceConfigurationINTEL";
50214         }
50215 #endif
50216 #ifdef VK_KHR_video_queue
50217         case OP_vkCmdControlVideoCodingKHR: {
50218             return "OP_vkCmdControlVideoCodingKHR";
50219         }
50220 #endif
50221 #ifdef VK_NVX_binary_import
50222         case OP_vkDestroyCuFunctionNVX: {
50223             return "OP_vkDestroyCuFunctionNVX";
50224         }
50225 #endif
50226 #ifdef VK_HUAWEI_cluster_culling_shader
50227         case OP_vkCmdDrawClusterHUAWEI: {
50228             return "OP_vkCmdDrawClusterHUAWEI";
50229         }
50230 #endif
50231 #ifdef VK_KHR_copy_commands2
50232         case OP_vkCmdResolveImage2KHR: {
50233             return "OP_vkCmdResolveImage2KHR";
50234         }
50235 #endif
50236 #ifdef VK_EXT_metal_surface
50237         case OP_vkCreateMetalSurfaceEXT: {
50238             return "OP_vkCreateMetalSurfaceEXT";
50239         }
50240 #endif
50241 #ifdef VK_NV_optical_flow
50242         case OP_vkDestroyOpticalFlowSessionNV: {
50243             return "OP_vkDestroyOpticalFlowSessionNV";
50244         }
50245 #endif
50246 #ifdef VK_KHR_acceleration_structure
50247         case OP_vkCopyAccelerationStructureToMemoryKHR: {
50248             return "OP_vkCopyAccelerationStructureToMemoryKHR";
50249         }
50250 #endif
50251 #ifdef VK_KHR_video_queue
50252         case OP_vkGetVideoSessionMemoryRequirementsKHR: {
50253             return "OP_vkGetVideoSessionMemoryRequirementsKHR";
50254         }
50255 #endif
50256 #ifdef VK_NV_external_memory_rdma
50257         case OP_vkGetMemoryRemoteAddressNV: {
50258             return "OP_vkGetMemoryRemoteAddressNV";
50259         }
50260 #endif
50261 #ifdef VK_EXT_extended_dynamic_state
50262         case OP_vkCmdSetViewportWithCountEXT: {
50263             return "OP_vkCmdSetViewportWithCountEXT";
50264         }
50265 #endif
50266 #ifdef VK_EXT_full_screen_exclusive
50267         case OP_vkReleaseFullScreenExclusiveModeEXT: {
50268             return "OP_vkReleaseFullScreenExclusiveModeEXT";
50269         }
50270 #endif
50271 #ifdef VK_KHR_acceleration_structure
50272         case OP_vkCmdBuildAccelerationStructuresIndirectKHR: {
50273             return "OP_vkCmdBuildAccelerationStructuresIndirectKHR";
50274         }
50275 #endif
50276 #ifdef VK_QNX_screen_surface
50277         case OP_vkGetPhysicalDeviceScreenPresentationSupportQNX: {
50278             return "OP_vkGetPhysicalDeviceScreenPresentationSupportQNX";
50279         }
50280 #endif
50281 #ifdef VK_VERSION_1_3
50282         case OP_vkCmdBindVertexBuffers2: {
50283             return "OP_vkCmdBindVertexBuffers2";
50284         }
50285 #endif
50286 #ifdef VK_KHR_acceleration_structure
50287         case OP_vkCreateAccelerationStructureKHR: {
50288             return "OP_vkCreateAccelerationStructureKHR";
50289         }
50290 #endif
50291 #ifdef VK_EXT_extended_dynamic_state2
50292         case OP_vkCmdSetDepthBiasEnableEXT: {
50293             return "OP_vkCmdSetDepthBiasEnableEXT";
50294         }
50295 #endif
50296 #ifdef VK_EXT_extended_dynamic_state3
50297         case OP_vkCmdSetCoverageReductionModeNV: {
50298             return "OP_vkCmdSetCoverageReductionModeNV";
50299         }
50300 #endif
50301 #ifdef VK_NV_ray_tracing
50302         case OP_vkCreateAccelerationStructureNV: {
50303             return "OP_vkCreateAccelerationStructureNV";
50304         }
50305 #endif
50306 #ifdef VK_EXT_extended_dynamic_state3
50307         case OP_vkCmdSetCoverageModulationTableNV: {
50308             return "OP_vkCmdSetCoverageModulationTableNV";
50309         }
50310 #endif
50311 #ifdef VK_EXT_opacity_micromap
50312         case OP_vkCreateMicromapEXT: {
50313             return "OP_vkCreateMicromapEXT";
50314         }
50315 #endif
50316 #ifdef VK_KHR_copy_commands2
50317         case OP_vkCmdBlitImage2KHR: {
50318             return "OP_vkCmdBlitImage2KHR";
50319         }
50320 #endif
50321 #ifdef VK_KHR_ray_tracing_pipeline
50322         case OP_vkCmdSetRayTracingPipelineStackSizeKHR: {
50323             return "OP_vkCmdSetRayTracingPipelineStackSizeKHR";
50324         }
50325 #endif
50326 #ifdef VK_VERSION_1_2
50327         case OP_vkGetDeviceMemoryOpaqueCaptureAddress: {
50328             return "OP_vkGetDeviceMemoryOpaqueCaptureAddress";
50329         }
50330 #endif
50331 #ifdef VK_EXT_extended_dynamic_state
50332         case OP_vkCmdSetPrimitiveTopologyEXT: {
50333             return "OP_vkCmdSetPrimitiveTopologyEXT";
50334         }
50335 #endif
50336 #ifdef VK_KHR_ray_tracing_maintenance1
50337         case OP_vkCmdTraceRaysIndirect2KHR: {
50338             return "OP_vkCmdTraceRaysIndirect2KHR";
50339         }
50340 #endif
50341 #ifdef VK_KHR_video_queue
50342         case OP_vkUpdateVideoSessionParametersKHR: {
50343             return "OP_vkUpdateVideoSessionParametersKHR";
50344         }
50345 #endif
50346 #ifdef VK_INTEL_performance_query
50347         case OP_vkCmdSetPerformanceStreamMarkerINTEL: {
50348             return "OP_vkCmdSetPerformanceStreamMarkerINTEL";
50349         }
50350 #endif
50351 #ifdef VK_KHR_acceleration_structure
50352         case OP_vkCopyMemoryToAccelerationStructureKHR: {
50353             return "OP_vkCopyMemoryToAccelerationStructureKHR";
50354         }
50355 #endif
50356 #ifdef VK_FUCHSIA_imagepipe_surface
50357         case OP_vkCreateImagePipeSurfaceFUCHSIA: {
50358             return "OP_vkCreateImagePipeSurfaceFUCHSIA";
50359         }
50360 #endif
50361 #ifdef VK_KHR_video_queue
50362         case OP_vkGetPhysicalDeviceVideoFormatPropertiesKHR: {
50363             return "OP_vkGetPhysicalDeviceVideoFormatPropertiesKHR";
50364         }
50365 #endif
50366 #ifdef VK_EXT_extended_dynamic_state3
50367         case OP_vkCmdSetViewportSwizzleNV: {
50368             return "OP_vkCmdSetViewportSwizzleNV";
50369         }
50370 #endif
50371 #ifdef VK_VERSION_1_3
50372         case OP_vkCreatePrivateDataSlot: {
50373             return "OP_vkCreatePrivateDataSlot";
50374         }
50375         case OP_vkCmdSetPrimitiveTopology: {
50376             return "OP_vkCmdSetPrimitiveTopology";
50377         }
50378 #endif
50379 #ifdef VK_KHR_present_wait
50380         case OP_vkWaitForPresentKHR: {
50381             return "OP_vkWaitForPresentKHR";
50382         }
50383 #endif
50384 #ifdef VK_EXT_multi_draw
50385         case OP_vkCmdDrawMultiEXT: {
50386             return "OP_vkCmdDrawMultiEXT";
50387         }
50388 #endif
50389 #ifdef VK_KHR_deferred_host_operations
50390         case OP_vkGetDeferredOperationResultKHR: {
50391             return "OP_vkGetDeferredOperationResultKHR";
50392         }
50393 #endif
50394 #ifdef VK_EXT_line_rasterization
50395         case OP_vkCmdSetLineStippleEXT: {
50396             return "OP_vkCmdSetLineStippleEXT";
50397         }
50398 #endif
50399 #ifdef VK_KHR_timeline_semaphore
50400         case OP_vkWaitSemaphoresKHR: {
50401             return "OP_vkWaitSemaphoresKHR";
50402         }
50403 #endif
50404 #ifdef VK_NV_fragment_shading_rate_enums
50405         case OP_vkCmdSetFragmentShadingRateEnumNV: {
50406             return "OP_vkCmdSetFragmentShadingRateEnumNV";
50407         }
50408 #endif
50409 #ifdef VK_EXT_extended_dynamic_state3
50410         case OP_vkCmdSetTessellationDomainOriginEXT: {
50411             return "OP_vkCmdSetTessellationDomainOriginEXT";
50412         }
50413 #endif
50414 #ifdef VK_KHR_video_queue
50415         case OP_vkCreateVideoSessionParametersKHR: {
50416             return "OP_vkCreateVideoSessionParametersKHR";
50417         }
50418 #endif
50419 #ifdef VK_EXT_extended_dynamic_state
50420         case OP_vkCmdSetCullModeEXT: {
50421             return "OP_vkCmdSetCullModeEXT";
50422         }
50423 #endif
50424 #ifdef VK_KHR_acceleration_structure
50425         case OP_vkGetDeviceAccelerationStructureCompatibilityKHR: {
50426             return "OP_vkGetDeviceAccelerationStructureCompatibilityKHR";
50427         }
50428 #endif
50429 #ifdef VK_VERSION_1_2
50430         case OP_vkGetSemaphoreCounterValue: {
50431             return "OP_vkGetSemaphoreCounterValue";
50432         }
50433 #endif
50434 #ifdef VK_VERSION_1_3
50435         case OP_vkCmdSetDepthBiasEnable: {
50436             return "OP_vkCmdSetDepthBiasEnable";
50437         }
50438 #endif
50439 #ifdef VK_EXT_opacity_micromap
50440         case OP_vkCopyMicromapToMemoryEXT: {
50441             return "OP_vkCopyMicromapToMemoryEXT";
50442         }
50443 #endif
50444 #ifdef VK_VERSION_1_3
50445         case OP_vkCmdSetViewportWithCount: {
50446             return "OP_vkCmdSetViewportWithCount";
50447         }
50448 #endif
50449 #ifdef VK_EXT_extended_dynamic_state2
50450         case OP_vkCmdSetLogicOpEXT: {
50451             return "OP_vkCmdSetLogicOpEXT";
50452         }
50453 #endif
50454 #ifdef VK_AMD_display_native_hdr
50455         case OP_vkSetLocalDimmingAMD: {
50456             return "OP_vkSetLocalDimmingAMD";
50457         }
50458 #endif
50459 #ifdef VK_EXT_transform_feedback
50460         case OP_vkCmdBindTransformFeedbackBuffersEXT: {
50461             return "OP_vkCmdBindTransformFeedbackBuffersEXT";
50462         }
50463 #endif
50464 #ifdef VK_GOOGLE_gfxstream
50465         case OP_vkQueueCommitDescriptorSetUpdatesGOOGLE: {
50466             return "OP_vkQueueCommitDescriptorSetUpdatesGOOGLE";
50467         }
50468 #endif
50469 #ifdef VK_VERSION_1_3
50470         case OP_vkCmdCopyBufferToImage2: {
50471             return "OP_vkCmdCopyBufferToImage2";
50472         }
50473 #endif
50474 #ifdef VK_EXT_full_screen_exclusive
50475         case OP_vkGetPhysicalDeviceSurfacePresentModes2EXT: {
50476             return "OP_vkGetPhysicalDeviceSurfacePresentModes2EXT";
50477         }
50478 #endif
50479 #ifdef VK_EXT_extended_dynamic_state3
50480         case OP_vkCmdSetSampleLocationsEnableEXT: {
50481             return "OP_vkCmdSetSampleLocationsEnableEXT";
50482         }
50483 #endif
50484 #ifdef VK_NV_ray_tracing
50485         case OP_vkCmdBuildAccelerationStructureNV: {
50486             return "OP_vkCmdBuildAccelerationStructureNV";
50487         }
50488 #endif
50489 #ifdef VK_EXT_descriptor_buffer
50490         case OP_vkCmdBindDescriptorBuffersEXT: {
50491             return "OP_vkCmdBindDescriptorBuffersEXT";
50492         }
50493 #endif
50494 #ifdef VK_KHR_pipeline_executable_properties
50495         case OP_vkGetPipelineExecutablePropertiesKHR: {
50496             return "OP_vkGetPipelineExecutablePropertiesKHR";
50497         }
50498 #endif
50499 #ifdef VK_EXT_shader_object
50500         case OP_vkCmdBindShadersEXT: {
50501             return "OP_vkCmdBindShadersEXT";
50502         }
50503 #endif
50504 #ifdef VK_NV_ray_tracing
50505         case OP_vkGetAccelerationStructureHandleNV: {
50506             return "OP_vkGetAccelerationStructureHandleNV";
50507         }
50508 #endif
50509 #ifdef VK_KHR_timeline_semaphore
50510         case OP_vkSignalSemaphoreKHR: {
50511             return "OP_vkSignalSemaphoreKHR";
50512         }
50513 #endif
50514 #ifdef VK_INTEL_performance_query
50515         case OP_vkCmdSetPerformanceMarkerINTEL: {
50516             return "OP_vkCmdSetPerformanceMarkerINTEL";
50517         }
50518 #endif
50519 #ifdef VK_NV_device_generated_commands
50520         case OP_vkCmdBindPipelineShaderGroupNV: {
50521             return "OP_vkCmdBindPipelineShaderGroupNV";
50522         }
50523 #endif
50524 #ifdef VK_KHR_synchronization2
50525         case OP_vkCmdSetEvent2KHR: {
50526             return "OP_vkCmdSetEvent2KHR";
50527         }
50528 #endif
50529 #ifdef VK_EXT_opacity_micromap
50530         case OP_vkCopyMicromapEXT: {
50531             return "OP_vkCopyMicromapEXT";
50532         }
50533 #endif
50534 #ifdef VK_VERSION_1_2
50535         case OP_vkSignalSemaphore: {
50536             return "OP_vkSignalSemaphore";
50537         }
50538 #endif
50539 #ifdef VK_EXT_descriptor_buffer
50540         case OP_vkCmdSetDescriptorBufferOffsetsEXT: {
50541             return "OP_vkCmdSetDescriptorBufferOffsetsEXT";
50542         }
50543 #endif
50544 #ifdef VK_KHR_pipeline_executable_properties
50545         case OP_vkGetPipelineExecutableStatisticsKHR: {
50546             return "OP_vkGetPipelineExecutableStatisticsKHR";
50547         }
50548 #endif
50549 #ifdef VK_EXT_shader_object
50550         case OP_vkGetShaderBinaryDataEXT: {
50551             return "OP_vkGetShaderBinaryDataEXT";
50552         }
50553 #endif
50554 #ifdef VK_KHR_acceleration_structure
50555         case OP_vkCmdWriteAccelerationStructuresPropertiesKHR: {
50556             return "OP_vkCmdWriteAccelerationStructuresPropertiesKHR";
50557         }
50558 #endif
50559 #ifdef VK_NV_ray_tracing
50560         case OP_vkGetRayTracingShaderGroupHandlesKHR: {
50561             return "OP_vkGetRayTracingShaderGroupHandlesKHR";
50562         }
50563 #endif
50564 #ifdef VK_VERSION_1_3
50565         case OP_vkCmdResetEvent2: {
50566             return "OP_vkCmdResetEvent2";
50567         }
50568 #endif
50569 #ifdef VK_EXT_transform_feedback
50570         case OP_vkCmdEndTransformFeedbackEXT: {
50571             return "OP_vkCmdEndTransformFeedbackEXT";
50572         }
50573 #endif
50574 #ifdef VK_KHR_acceleration_structure
50575         case OP_vkCmdBuildAccelerationStructuresKHR: {
50576             return "OP_vkCmdBuildAccelerationStructuresKHR";
50577         }
50578 #endif
50579 #ifdef VK_KHR_fragment_shading_rate
50580         case OP_vkGetPhysicalDeviceFragmentShadingRatesKHR: {
50581             return "OP_vkGetPhysicalDeviceFragmentShadingRatesKHR";
50582         }
50583 #endif
50584 #ifdef VK_NVX_binary_import
50585         case OP_vkDestroyCuModuleNVX: {
50586             return "OP_vkDestroyCuModuleNVX";
50587         }
50588 #endif
50589 #ifdef VK_EXT_descriptor_buffer
50590         case OP_vkGetSamplerOpaqueCaptureDescriptorDataEXT: {
50591             return "OP_vkGetSamplerOpaqueCaptureDescriptorDataEXT";
50592         }
50593 #endif
50594 #ifdef VK_NV_mesh_shader
50595         case OP_vkCmdDrawMeshTasksIndirectNV: {
50596             return "OP_vkCmdDrawMeshTasksIndirectNV";
50597         }
50598 #endif
50599 #ifdef VK_KHR_pipeline_executable_properties
50600         case OP_vkGetPipelineExecutableInternalRepresentationsKHR: {
50601             return "OP_vkGetPipelineExecutableInternalRepresentationsKHR";
50602         }
50603 #endif
50604 #ifdef VK_NV_acquire_winrt_display
50605         case OP_vkAcquireWinrtDisplayNV: {
50606             return "OP_vkAcquireWinrtDisplayNV";
50607         }
50608 #endif
50609 #ifdef VK_KHR_deferred_host_operations
50610         case OP_vkCreateDeferredOperationKHR: {
50611             return "OP_vkCreateDeferredOperationKHR";
50612         }
50613 #endif
50614 #ifdef VK_EXT_extended_dynamic_state3
50615         case OP_vkCmdSetCoverageToColorEnableNV: {
50616             return "OP_vkCmdSetCoverageToColorEnableNV";
50617         }
50618 #endif
50619 #ifdef VK_FUCHSIA_buffer_collection
50620         case OP_vkSetBufferCollectionImageConstraintsFUCHSIA: {
50621             return "OP_vkSetBufferCollectionImageConstraintsFUCHSIA";
50622         }
50623 #endif
50624 #ifdef VK_VERSION_1_3
50625         case OP_vkCmdBlitImage2: {
50626             return "OP_vkCmdBlitImage2";
50627         }
50628         case OP_vkQueueSubmit2: {
50629             return "OP_vkQueueSubmit2";
50630         }
50631 #endif
50632 #ifdef VK_KHR_maintenance4
50633         case OP_vkGetDeviceImageSparseMemoryRequirementsKHR: {
50634             return "OP_vkGetDeviceImageSparseMemoryRequirementsKHR";
50635         }
50636 #endif
50637 #ifdef VK_KHR_video_decode_queue
50638         case OP_vkCmdDecodeVideoKHR: {
50639             return "OP_vkCmdDecodeVideoKHR";
50640         }
50641 #endif
50642 #ifdef VK_EXT_transform_feedback
50643         case OP_vkCmdBeginQueryIndexedEXT: {
50644             return "OP_vkCmdBeginQueryIndexedEXT";
50645         }
50646 #endif
50647 #ifdef VK_VERSION_1_3
50648         case OP_vkCmdSetRasterizerDiscardEnable: {
50649             return "OP_vkCmdSetRasterizerDiscardEnable";
50650         }
50651 #endif
50652 #ifdef VK_NV_copy_memory_indirect
50653         case OP_vkCmdCopyMemoryToImageIndirectNV: {
50654             return "OP_vkCmdCopyMemoryToImageIndirectNV";
50655         }
50656 #endif
50657 #ifdef VK_EXT_extended_dynamic_state
50658         case OP_vkCmdSetStencilOpEXT: {
50659             return "OP_vkCmdSetStencilOpEXT";
50660         }
50661 #endif
50662 #ifdef VK_FUCHSIA_buffer_collection
50663         case OP_vkCreateBufferCollectionFUCHSIA: {
50664             return "OP_vkCreateBufferCollectionFUCHSIA";
50665         }
50666 #endif
50667 #ifdef VK_EXT_metal_objects
50668         case OP_vkExportMetalObjectsEXT: {
50669             return "OP_vkExportMetalObjectsEXT";
50670         }
50671 #endif
50672 #ifdef VK_NV_ray_tracing
50673         case OP_vkCompileDeferredNV: {
50674             return "OP_vkCompileDeferredNV";
50675         }
50676 #endif
50677 #ifdef VK_EXT_device_fault
50678         case OP_vkGetDeviceFaultInfoEXT: {
50679             return "OP_vkGetDeviceFaultInfoEXT";
50680         }
50681 #endif
50682 #ifdef VK_EXT_extended_dynamic_state3
50683         case OP_vkCmdSetDepthClipNegativeOneToOneEXT: {
50684             return "OP_vkCmdSetDepthClipNegativeOneToOneEXT";
50685         }
50686 #endif
50687 #ifdef VK_KHR_acceleration_structure
50688         case OP_vkCmdCopyAccelerationStructureKHR: {
50689             return "OP_vkCmdCopyAccelerationStructureKHR";
50690         }
50691 #endif
50692 #ifdef VK_VERSION_1_2
50693         case OP_vkCreateRenderPass2: {
50694             return "OP_vkCreateRenderPass2";
50695         }
50696 #endif
50697 #ifdef VK_EXT_transform_feedback
50698         case OP_vkCmdEndQueryIndexedEXT: {
50699             return "OP_vkCmdEndQueryIndexedEXT";
50700         }
50701 #endif
50702 #ifdef VK_KHR_video_queue
50703         case OP_vkCmdEndVideoCodingKHR: {
50704             return "OP_vkCmdEndVideoCodingKHR";
50705         }
50706 #endif
50707 #ifdef VK_VALVE_descriptor_set_host_mapping
50708         case OP_vkGetDescriptorSetHostMappingVALVE: {
50709             return "OP_vkGetDescriptorSetHostMappingVALVE";
50710         }
50711 #endif
50712 #ifdef VK_EXT_descriptor_buffer
50713         case OP_vkGetBufferOpaqueCaptureDescriptorDataEXT: {
50714             return "OP_vkGetBufferOpaqueCaptureDescriptorDataEXT";
50715         }
50716 #endif
50717 #ifdef VK_EXT_shader_object
50718         case OP_vkCreateShadersEXT: {
50719             return "OP_vkCreateShadersEXT";
50720         }
50721 #endif
50722 #ifdef VK_EXT_opacity_micromap
50723         case OP_vkCmdCopyMemoryToMicromapEXT: {
50724             return "OP_vkCmdCopyMemoryToMicromapEXT";
50725         }
50726 #endif
50727 #ifdef VK_KHR_performance_query
50728         case OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: {
50729             return "OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR";
50730         }
50731 #endif
50732 #ifdef VK_EXT_tooling_info
50733         case OP_vkGetPhysicalDeviceToolPropertiesEXT: {
50734             return "OP_vkGetPhysicalDeviceToolPropertiesEXT";
50735         }
50736 #endif
50737 #ifdef VK_GOOGLE_gfxstream
50738         case OP_vkGetLinearImageLayout2GOOGLE: {
50739             return "OP_vkGetLinearImageLayout2GOOGLE";
50740         }
50741 #endif
50742 #ifdef VK_VERSION_1_3
50743         case OP_vkCmdResolveImage2: {
50744             return "OP_vkCmdResolveImage2";
50745         }
50746         case OP_vkGetDeviceImageMemoryRequirements: {
50747             return "OP_vkGetDeviceImageMemoryRequirements";
50748         }
50749 #endif
50750 #ifdef VK_EXT_acquire_drm_display
50751         case OP_vkGetDrmDisplayEXT: {
50752             return "OP_vkGetDrmDisplayEXT";
50753         }
50754 #endif
50755 #ifdef VK_VERSION_1_2
50756         case OP_vkCmdDrawIndirectCount: {
50757             return "OP_vkCmdDrawIndirectCount";
50758         }
50759 #endif
50760 #ifdef VK_EXT_extended_dynamic_state3
50761         case OP_vkCmdSetLogicOpEnableEXT: {
50762             return "OP_vkCmdSetLogicOpEnableEXT";
50763         }
50764 #endif
50765 #ifdef VK_EXT_opacity_micromap
50766         case OP_vkGetDeviceMicromapCompatibilityEXT: {
50767             return "OP_vkGetDeviceMicromapCompatibilityEXT";
50768         }
50769 #endif
50770 #ifdef VK_KHR_synchronization2
50771         case OP_vkCmdResetEvent2KHR: {
50772             return "OP_vkCmdResetEvent2KHR";
50773         }
50774 #endif
50775 #ifdef VK_EXT_extended_dynamic_state3
50776         case OP_vkCmdSetDepthClipEnableEXT: {
50777             return "OP_vkCmdSetDepthClipEnableEXT";
50778         }
50779 #endif
50780 #ifdef VK_EXT_discard_rectangles
50781         case OP_vkCmdSetDiscardRectangleEnableEXT: {
50782             return "OP_vkCmdSetDiscardRectangleEnableEXT";
50783         }
50784 #endif
50785 #ifdef VK_NV_memory_decompression
50786         case OP_vkCmdDecompressMemoryIndirectCountNV: {
50787             return "OP_vkCmdDecompressMemoryIndirectCountNV";
50788         }
50789 #endif
50790 #ifdef VK_EXT_multi_draw
50791         case OP_vkCmdDrawMultiIndexedEXT: {
50792             return "OP_vkCmdDrawMultiIndexedEXT";
50793         }
50794 #endif
50795 #ifdef VK_EXT_transform_feedback
50796         case OP_vkCmdDrawIndirectByteCountEXT: {
50797             return "OP_vkCmdDrawIndirectByteCountEXT";
50798         }
50799 #endif
50800 #ifdef VK_NV_device_generated_commands
50801         case OP_vkCreateIndirectCommandsLayoutNV: {
50802             return "OP_vkCreateIndirectCommandsLayoutNV";
50803         }
50804 #endif
50805 #ifdef VK_EXT_mesh_shader
50806         case OP_vkCmdDrawMeshTasksEXT: {
50807             return "OP_vkCmdDrawMeshTasksEXT";
50808         }
50809 #endif
50810 #ifdef VK_EXT_directfb_surface
50811         case OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT: {
50812             return "OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT";
50813         }
50814 #endif
50815 #ifdef VK_KHR_buffer_device_address
50816         case OP_vkGetBufferOpaqueCaptureAddressKHR: {
50817             return "OP_vkGetBufferOpaqueCaptureAddressKHR";
50818         }
50819 #endif
50820 #ifdef VK_EXT_extended_dynamic_state3
50821         case OP_vkCmdSetCoverageModulationTableEnableNV: {
50822             return "OP_vkCmdSetCoverageModulationTableEnableNV";
50823         }
50824 #endif
50825 #ifdef VK_EXT_extended_dynamic_state
50826         case OP_vkCmdSetStencilTestEnableEXT: {
50827             return "OP_vkCmdSetStencilTestEnableEXT";
50828         }
50829 #endif
50830 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
50831         case OP_vkCmdSetAttachmentFeedbackLoopEnableEXT: {
50832             return "OP_vkCmdSetAttachmentFeedbackLoopEnableEXT";
50833         }
50834 #endif
50835 #ifdef VK_VERSION_1_3
50836         case OP_vkCmdSetStencilTestEnable: {
50837             return "OP_vkCmdSetStencilTestEnable";
50838         }
50839         case OP_vkGetPhysicalDeviceToolProperties: {
50840             return "OP_vkGetPhysicalDeviceToolProperties";
50841         }
50842 #endif
50843 #ifdef VK_NV_cooperative_matrix
50844         case OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: {
50845             return "OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV";
50846         }
50847 #endif
50848 #ifdef VK_ANDROID_native_buffer
50849         case OP_vkGetSwapchainGrallocUsage2ANDROID: {
50850             return "OP_vkGetSwapchainGrallocUsage2ANDROID";
50851         }
50852 #endif
50853 #ifdef VK_EXT_opacity_micromap
50854         case OP_vkCmdCopyMicromapEXT: {
50855             return "OP_vkCmdCopyMicromapEXT";
50856         }
50857 #endif
50858 #ifdef VK_EXT_shader_module_identifier
50859         case OP_vkGetShaderModuleIdentifierEXT: {
50860             return "OP_vkGetShaderModuleIdentifierEXT";
50861         }
50862 #endif
50863 #ifdef VK_EXT_descriptor_buffer
50864         case OP_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT: {
50865             return "OP_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT";
50866         }
50867 #endif
50868 #ifdef VK_KHR_acceleration_structure
50869         case OP_vkWriteAccelerationStructuresPropertiesKHR: {
50870             return "OP_vkWriteAccelerationStructuresPropertiesKHR";
50871         }
50872 #endif
50873 #ifdef VK_EXT_extended_dynamic_state3
50874         case OP_vkCmdSetAlphaToOneEnableEXT: {
50875             return "OP_vkCmdSetAlphaToOneEnableEXT";
50876         }
50877 #endif
50878 #ifdef VK_GOOGLE_gfxstream
50879         case OP_vkQueueFlushCommandsFromAuxMemoryGOOGLE: {
50880             return "OP_vkQueueFlushCommandsFromAuxMemoryGOOGLE";
50881         }
50882 #endif
50883 #ifdef VK_EXT_opacity_micromap
50884         case OP_vkGetMicromapBuildSizesEXT: {
50885             return "OP_vkGetMicromapBuildSizesEXT";
50886         }
50887 #endif
50888 #ifdef VK_NV_scissor_exclusive
50889         case OP_vkCmdSetExclusiveScissorEnableNV: {
50890             return "OP_vkCmdSetExclusiveScissorEnableNV";
50891         }
50892 #endif
50893 #ifdef VK_NV_optical_flow
50894         case OP_vkGetPhysicalDeviceOpticalFlowImageFormatsNV: {
50895             return "OP_vkGetPhysicalDeviceOpticalFlowImageFormatsNV";
50896         }
50897 #endif
50898 #ifdef VK_EXT_private_data
50899         case OP_vkGetPrivateDataEXT: {
50900             return "OP_vkGetPrivateDataEXT";
50901         }
50902 #endif
50903 #ifdef VK_EXT_extended_dynamic_state3
50904         case OP_vkCmdSetExtraPrimitiveOverestimationSizeEXT: {
50905             return "OP_vkCmdSetExtraPrimitiveOverestimationSizeEXT";
50906         }
50907 #endif
50908 #ifdef VK_NV_coverage_reduction_mode
50909         case OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: {
50910             return "OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV";
50911         }
50912 #endif
50913 #ifdef VK_KHR_synchronization2
50914         case OP_vkGetQueueCheckpointData2NV: {
50915             return "OP_vkGetQueueCheckpointData2NV";
50916         }
50917 #endif
50918 #ifdef VK_EXT_opacity_micromap
50919         case OP_vkCopyMemoryToMicromapEXT: {
50920             return "OP_vkCopyMemoryToMicromapEXT";
50921         }
50922 #endif
50923 #ifdef VK_NV_device_generated_commands
50924         case OP_vkDestroyIndirectCommandsLayoutNV: {
50925             return "OP_vkDestroyIndirectCommandsLayoutNV";
50926         }
50927 #endif
50928 #ifdef VK_KHR_synchronization2
50929         case OP_vkQueueSubmit2KHR: {
50930             return "OP_vkQueueSubmit2KHR";
50931         }
50932 #endif
50933 #ifdef VK_EXT_extended_dynamic_state3
50934         case OP_vkCmdSetConservativeRasterizationModeEXT: {
50935             return "OP_vkCmdSetConservativeRasterizationModeEXT";
50936         }
50937         case OP_vkCmdSetLineRasterizationModeEXT: {
50938             return "OP_vkCmdSetLineRasterizationModeEXT";
50939         }
50940 #endif
50941 #ifdef VK_VERSION_1_3
50942         case OP_vkGetDeviceBufferMemoryRequirements: {
50943             return "OP_vkGetDeviceBufferMemoryRequirements";
50944         }
50945 #endif
50946 #ifdef VK_NV_acquire_winrt_display
50947         case OP_vkGetWinrtDisplayNV: {
50948             return "OP_vkGetWinrtDisplayNV";
50949         }
50950 #endif
50951 #ifdef VK_EXT_transform_feedback
50952         case OP_vkCmdBeginTransformFeedbackEXT: {
50953             return "OP_vkCmdBeginTransformFeedbackEXT";
50954         }
50955 #endif
50956 #ifdef VK_VERSION_1_3
50957         case OP_vkCmdBeginRendering: {
50958             return "OP_vkCmdBeginRendering";
50959         }
50960 #endif
50961 #ifdef VK_KHR_buffer_device_address
50962         case OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR: {
50963             return "OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR";
50964         }
50965 #endif
50966 #ifdef VK_INTEL_performance_query
50967         case OP_vkQueueSetPerformanceConfigurationINTEL: {
50968             return "OP_vkQueueSetPerformanceConfigurationINTEL";
50969         }
50970 #endif
50971 #ifdef VK_EXT_extended_dynamic_state3
50972         case OP_vkCmdSetColorBlendEnableEXT: {
50973             return "OP_vkCmdSetColorBlendEnableEXT";
50974         }
50975 #endif
50976 #ifdef VK_EXT_calibrated_timestamps
50977         case OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: {
50978             return "OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT";
50979         }
50980 #endif
50981 #ifdef VK_KHR_video_encode_queue
50982         case OP_vkCmdEncodeVideoKHR: {
50983             return "OP_vkCmdEncodeVideoKHR";
50984         }
50985 #endif
50986 #ifdef VK_INTEL_performance_query
50987         case OP_vkUninitializePerformanceApiINTEL: {
50988             return "OP_vkUninitializePerformanceApiINTEL";
50989         }
50990 #endif
50991 #ifdef VK_EXT_image_compression_control
50992         case OP_vkGetImageSubresourceLayout2EXT: {
50993             return "OP_vkGetImageSubresourceLayout2EXT";
50994         }
50995 #endif
50996 #ifdef VK_VALVE_descriptor_set_host_mapping
50997         case OP_vkGetDescriptorSetLayoutHostMappingInfoVALVE: {
50998             return "OP_vkGetDescriptorSetLayoutHostMappingInfoVALVE";
50999         }
51000 #endif
51001 #ifdef VK_VERSION_1_3
51002         case OP_vkCmdPipelineBarrier2: {
51003             return "OP_vkCmdPipelineBarrier2";
51004         }
51005 #endif
51006 #ifdef VK_NV_device_generated_commands
51007         case OP_vkCmdPreprocessGeneratedCommandsNV: {
51008             return "OP_vkCmdPreprocessGeneratedCommandsNV";
51009         }
51010 #endif
51011 #ifdef VK_KHR_dynamic_rendering
51012         case OP_vkCmdBeginRenderingKHR: {
51013             return "OP_vkCmdBeginRenderingKHR";
51014         }
51015 #endif
51016 #ifdef VK_EXT_headless_surface
51017         case OP_vkCreateHeadlessSurfaceEXT: {
51018             return "OP_vkCreateHeadlessSurfaceEXT";
51019         }
51020 #endif
51021 #ifdef VK_KHR_performance_query
51022         case OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: {
51023             return "OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR";
51024         }
51025 #endif
51026 #ifdef VK_HUAWEI_invocation_mask
51027         case OP_vkCmdBindInvocationMaskHUAWEI: {
51028             return "OP_vkCmdBindInvocationMaskHUAWEI";
51029         }
51030 #endif
51031 #ifdef VK_FUCHSIA_external_semaphore
51032         case OP_vkImportSemaphoreZirconHandleFUCHSIA: {
51033             return "OP_vkImportSemaphoreZirconHandleFUCHSIA";
51034         }
51035 #endif
51036 #ifdef VK_EXT_extended_dynamic_state2
51037         case OP_vkCmdSetPrimitiveRestartEnableEXT: {
51038             return "OP_vkCmdSetPrimitiveRestartEnableEXT";
51039         }
51040 #endif
51041 #ifdef VK_EXT_extended_dynamic_state3
51042         case OP_vkCmdSetShadingRateImageEnableNV: {
51043             return "OP_vkCmdSetShadingRateImageEnableNV";
51044         }
51045 #endif
51046         default: {
51047             return "OP_UNKNOWN_API_CALL";
51048         }
51049     }
51050 }
51051 
51052 }  // namespace vk
51053 }  // namespace gfxstream
51054