• 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_guest
17 //
18 // (impl) generated by scripts/genvk.py -registry ../../vulkan/registry/vk.xml -registryGfxstream
19 // xml/vk_gfxstream.xml cereal -o /tmp/
20 //
21 // Please do not modify directly;
22 // re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.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_guest.h"
33 
34 #include <cstring>
35 
36 #include "goldfish_vk_extension_structs_guest.h"
37 #include "goldfish_vk_private_defs.h"
38 
39 namespace gfxstream {
40 namespace vk {
41 
42 void marshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
43                               const void* structExtension);
44 
45 void unmarshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
46                                 void* structExtension_out);
47 
48 #ifdef VK_VERSION_1_0
marshal_VkExtent2D(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExtent2D * forMarshaling)49 void marshal_VkExtent2D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExtent2D * forUnmarshaling)56 void unmarshal_VkExtent2D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExtent3D * forMarshaling)63 void marshal_VkExtent3D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExtent3D * forUnmarshaling)71 void unmarshal_VkExtent3D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkOffset2D * forMarshaling)79 void marshal_VkOffset2D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,VkOffset2D * forUnmarshaling)86 void unmarshal_VkOffset2D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkOffset3D * forMarshaling)93 void marshal_VkOffset3D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,VkOffset3D * forUnmarshaling)101 void unmarshal_VkOffset3D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRect2D * forMarshaling)109 void marshal_VkRect2D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRect2D * forUnmarshaling)116 void unmarshal_VkRect2D(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBaseInStructure * forMarshaling)123 void marshal_VkBaseInStructure(VulkanStreamGuest* 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(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBaseInStructure * forUnmarshaling)133 void unmarshal_VkBaseInStructure(VulkanStreamGuest* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
141 }
142 
marshal_VkBaseOutStructure(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBaseOutStructure * forMarshaling)143 void marshal_VkBaseOutStructure(VulkanStreamGuest* vkStream, VkStructureType rootType,
144                                 const VkBaseOutStructure* forMarshaling) {
145     (void)rootType;
146     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
147     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
148         rootType = forMarshaling->sType;
149     }
150     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
151 }
152 
unmarshal_VkBaseOutStructure(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBaseOutStructure * forUnmarshaling)153 void unmarshal_VkBaseOutStructure(VulkanStreamGuest* vkStream, VkStructureType rootType,
154                                   VkBaseOutStructure* forUnmarshaling) {
155     (void)rootType;
156     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
157     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
158         rootType = forUnmarshaling->sType;
159     }
160     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
161 }
162 
marshal_VkBufferMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferMemoryBarrier * forMarshaling)163 void marshal_VkBufferMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
164                                    const VkBufferMemoryBarrier* forMarshaling) {
165     (void)rootType;
166     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
167     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
168         rootType = forMarshaling->sType;
169     }
170     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
171     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
172     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
173     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
174     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
175     uint64_t cgen_var_0;
176     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
177     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
178     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
179     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
180 }
181 
unmarshal_VkBufferMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferMemoryBarrier * forUnmarshaling)182 void unmarshal_VkBufferMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
183                                      VkBufferMemoryBarrier* forUnmarshaling) {
184     (void)rootType;
185     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
186     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
187         rootType = forUnmarshaling->sType;
188     }
189     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
190     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
191     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
192     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
193     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
194     uint64_t cgen_var_0;
195     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
196     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
197                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
198     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
199     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
200 }
201 
marshal_VkDispatchIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDispatchIndirectCommand * forMarshaling)202 void marshal_VkDispatchIndirectCommand(VulkanStreamGuest* vkStream, VkStructureType rootType,
203                                        const VkDispatchIndirectCommand* forMarshaling) {
204     (void)rootType;
205     vkStream->write((uint32_t*)&forMarshaling->x, sizeof(uint32_t));
206     vkStream->write((uint32_t*)&forMarshaling->y, sizeof(uint32_t));
207     vkStream->write((uint32_t*)&forMarshaling->z, sizeof(uint32_t));
208 }
209 
unmarshal_VkDispatchIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDispatchIndirectCommand * forUnmarshaling)210 void unmarshal_VkDispatchIndirectCommand(VulkanStreamGuest* vkStream, VkStructureType rootType,
211                                          VkDispatchIndirectCommand* forUnmarshaling) {
212     (void)rootType;
213     vkStream->read((uint32_t*)&forUnmarshaling->x, sizeof(uint32_t));
214     vkStream->read((uint32_t*)&forUnmarshaling->y, sizeof(uint32_t));
215     vkStream->read((uint32_t*)&forUnmarshaling->z, sizeof(uint32_t));
216 }
217 
marshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrawIndexedIndirectCommand * forMarshaling)218 void marshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest* vkStream, VkStructureType rootType,
219                                           const VkDrawIndexedIndirectCommand* forMarshaling) {
220     (void)rootType;
221     vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
222     vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
223     vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
224     vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
225     vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
226 }
227 
unmarshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrawIndexedIndirectCommand * forUnmarshaling)228 void unmarshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest* vkStream, VkStructureType rootType,
229                                             VkDrawIndexedIndirectCommand* forUnmarshaling) {
230     (void)rootType;
231     vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
232     vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
233     vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
234     vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
235     vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
236 }
237 
marshal_VkDrawIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrawIndirectCommand * forMarshaling)238 void marshal_VkDrawIndirectCommand(VulkanStreamGuest* vkStream, VkStructureType rootType,
239                                    const VkDrawIndirectCommand* forMarshaling) {
240     (void)rootType;
241     vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
242     vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
243     vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
244     vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
245 }
246 
unmarshal_VkDrawIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrawIndirectCommand * forUnmarshaling)247 void unmarshal_VkDrawIndirectCommand(VulkanStreamGuest* vkStream, VkStructureType rootType,
248                                      VkDrawIndirectCommand* forUnmarshaling) {
249     (void)rootType;
250     vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
251     vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
252     vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
253     vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
254 }
255 
marshal_VkImageSubresourceRange(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresourceRange * forMarshaling)256 void marshal_VkImageSubresourceRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
257                                      const VkImageSubresourceRange* forMarshaling) {
258     (void)rootType;
259     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
260     vkStream->write((uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
261     vkStream->write((uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
262     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
263     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
264 }
265 
unmarshal_VkImageSubresourceRange(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageSubresourceRange * forUnmarshaling)266 void unmarshal_VkImageSubresourceRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
267                                        VkImageSubresourceRange* forUnmarshaling) {
268     (void)rootType;
269     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
270     vkStream->read((uint32_t*)&forUnmarshaling->baseMipLevel, sizeof(uint32_t));
271     vkStream->read((uint32_t*)&forUnmarshaling->levelCount, sizeof(uint32_t));
272     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
273     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
274 }
275 
marshal_VkImageMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageMemoryBarrier * forMarshaling)276 void marshal_VkImageMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
277                                   const VkImageMemoryBarrier* forMarshaling) {
278     (void)rootType;
279     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
280     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
281         rootType = forMarshaling->sType;
282     }
283     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
284     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
285     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
286     vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
287     vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
288     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
289     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
290     uint64_t cgen_var_0;
291     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
292     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
293     marshal_VkImageSubresourceRange(vkStream, rootType,
294                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
295 }
296 
unmarshal_VkImageMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageMemoryBarrier * forUnmarshaling)297 void unmarshal_VkImageMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
298                                     VkImageMemoryBarrier* forUnmarshaling) {
299     (void)rootType;
300     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
301     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
302         rootType = forUnmarshaling->sType;
303     }
304     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
305     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
306     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
307     vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
308     vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
309     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
310     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
311     uint64_t cgen_var_0;
312     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
313     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
314                                                       (VkImage*)&forUnmarshaling->image, 1);
315     unmarshal_VkImageSubresourceRange(
316         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
317 }
318 
marshal_VkMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryBarrier * forMarshaling)319 void marshal_VkMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
320                              const VkMemoryBarrier* forMarshaling) {
321     (void)rootType;
322     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
323     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
324         rootType = forMarshaling->sType;
325     }
326     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
327     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
328     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
329 }
330 
unmarshal_VkMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryBarrier * forUnmarshaling)331 void unmarshal_VkMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
332                                VkMemoryBarrier* forUnmarshaling) {
333     (void)rootType;
334     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
335     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
336         rootType = forUnmarshaling->sType;
337     }
338     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
339     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
340     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
341 }
342 
marshal_VkPipelineCacheHeaderVersionOne(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCacheHeaderVersionOne * forMarshaling)343 void marshal_VkPipelineCacheHeaderVersionOne(VulkanStreamGuest* vkStream, VkStructureType rootType,
344                                              const VkPipelineCacheHeaderVersionOne* forMarshaling) {
345     (void)rootType;
346     vkStream->write((uint32_t*)&forMarshaling->headerSize, sizeof(uint32_t));
347     vkStream->write((VkPipelineCacheHeaderVersion*)&forMarshaling->headerVersion,
348                     sizeof(VkPipelineCacheHeaderVersion));
349     vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
350     vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
351     vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
352 }
353 
unmarshal_VkPipelineCacheHeaderVersionOne(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineCacheHeaderVersionOne * forUnmarshaling)354 void unmarshal_VkPipelineCacheHeaderVersionOne(VulkanStreamGuest* vkStream,
355                                                VkStructureType rootType,
356                                                VkPipelineCacheHeaderVersionOne* forUnmarshaling) {
357     (void)rootType;
358     vkStream->read((uint32_t*)&forUnmarshaling->headerSize, sizeof(uint32_t));
359     vkStream->read((VkPipelineCacheHeaderVersion*)&forUnmarshaling->headerVersion,
360                    sizeof(VkPipelineCacheHeaderVersion));
361     vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
362     vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
363     vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
364 }
365 
marshal_VkAllocationCallbacks(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAllocationCallbacks * forMarshaling)366 void marshal_VkAllocationCallbacks(VulkanStreamGuest* vkStream, VkStructureType rootType,
367                                    const VkAllocationCallbacks* forMarshaling) {
368     (void)rootType;
369     // WARNING PTR CHECK
370     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
371     vkStream->putBe64(cgen_var_0);
372     if (forMarshaling->pUserData) {
373         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
374     }
375     uint64_t cgen_var_1 = (uint64_t)forMarshaling->pfnAllocation;
376     vkStream->putBe64(cgen_var_1);
377     uint64_t cgen_var_2 = (uint64_t)forMarshaling->pfnReallocation;
378     vkStream->putBe64(cgen_var_2);
379     uint64_t cgen_var_3 = (uint64_t)forMarshaling->pfnFree;
380     vkStream->putBe64(cgen_var_3);
381     uint64_t cgen_var_4 = (uint64_t)forMarshaling->pfnInternalAllocation;
382     vkStream->putBe64(cgen_var_4);
383     uint64_t cgen_var_5 = (uint64_t)forMarshaling->pfnInternalFree;
384     vkStream->putBe64(cgen_var_5);
385 }
386 
unmarshal_VkAllocationCallbacks(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAllocationCallbacks * forUnmarshaling)387 void unmarshal_VkAllocationCallbacks(VulkanStreamGuest* vkStream, VkStructureType rootType,
388                                      VkAllocationCallbacks* forUnmarshaling) {
389     (void)rootType;
390     // WARNING PTR CHECK
391     void* check_pUserData;
392     check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
393     if (forUnmarshaling->pUserData) {
394         if (!(check_pUserData)) {
395             fprintf(stderr,
396                     "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
397         }
398         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
399     }
400     forUnmarshaling->pfnAllocation = (PFN_vkAllocationFunction)vkStream->getBe64();
401     forUnmarshaling->pfnReallocation = (PFN_vkReallocationFunction)vkStream->getBe64();
402     forUnmarshaling->pfnFree = (PFN_vkFreeFunction)vkStream->getBe64();
403     forUnmarshaling->pfnInternalAllocation =
404         (PFN_vkInternalAllocationNotification)vkStream->getBe64();
405     forUnmarshaling->pfnInternalFree = (PFN_vkInternalFreeNotification)vkStream->getBe64();
406 }
407 
marshal_VkApplicationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkApplicationInfo * forMarshaling)408 void marshal_VkApplicationInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
409                                const VkApplicationInfo* forMarshaling) {
410     (void)rootType;
411     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
412     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
413         rootType = forMarshaling->sType;
414     }
415     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
416     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
417         // WARNING PTR CHECK
418         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationName;
419         vkStream->putBe64(cgen_var_0);
420         if (forMarshaling->pApplicationName) {
421             vkStream->putString(forMarshaling->pApplicationName);
422         }
423     } else {
424         vkStream->putString(forMarshaling->pApplicationName);
425     }
426     vkStream->write((uint32_t*)&forMarshaling->applicationVersion, sizeof(uint32_t));
427     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
428         // WARNING PTR CHECK
429         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
430         vkStream->putBe64(cgen_var_0);
431         if (forMarshaling->pEngineName) {
432             vkStream->putString(forMarshaling->pEngineName);
433         }
434     } else {
435         vkStream->putString(forMarshaling->pEngineName);
436     }
437     vkStream->write((uint32_t*)&forMarshaling->engineVersion, sizeof(uint32_t));
438     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
439 }
440 
unmarshal_VkApplicationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkApplicationInfo * forUnmarshaling)441 void unmarshal_VkApplicationInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
442                                  VkApplicationInfo* forUnmarshaling) {
443     (void)rootType;
444     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
445     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
446         rootType = forUnmarshaling->sType;
447     }
448     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
449     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
450         // WARNING PTR CHECK
451         const char* check_pApplicationName;
452         check_pApplicationName = (const char*)(uintptr_t)vkStream->getBe64();
453         if (forUnmarshaling->pApplicationName) {
454             if (!(check_pApplicationName)) {
455                 fprintf(stderr,
456                         "fatal: forUnmarshaling->pApplicationName inconsistent between guest and "
457                         "host\n");
458             }
459             vkStream->loadStringInPlace((char**)&forUnmarshaling->pApplicationName);
460         }
461     } else {
462         vkStream->loadStringInPlace((char**)&forUnmarshaling->pApplicationName);
463     }
464     vkStream->read((uint32_t*)&forUnmarshaling->applicationVersion, sizeof(uint32_t));
465     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
466         // WARNING PTR CHECK
467         const char* check_pEngineName;
468         check_pEngineName = (const char*)(uintptr_t)vkStream->getBe64();
469         if (forUnmarshaling->pEngineName) {
470             if (!(check_pEngineName)) {
471                 fprintf(
472                     stderr,
473                     "fatal: forUnmarshaling->pEngineName inconsistent between guest and host\n");
474             }
475             vkStream->loadStringInPlace((char**)&forUnmarshaling->pEngineName);
476         }
477     } else {
478         vkStream->loadStringInPlace((char**)&forUnmarshaling->pEngineName);
479     }
480     vkStream->read((uint32_t*)&forUnmarshaling->engineVersion, sizeof(uint32_t));
481     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
482 }
483 
marshal_VkFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFormatProperties * forMarshaling)484 void marshal_VkFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
485                                 const VkFormatProperties* forMarshaling) {
486     (void)rootType;
487     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures,
488                     sizeof(VkFormatFeatureFlags));
489     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures,
490                     sizeof(VkFormatFeatureFlags));
491     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->bufferFeatures,
492                     sizeof(VkFormatFeatureFlags));
493 }
494 
unmarshal_VkFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFormatProperties * forUnmarshaling)495 void unmarshal_VkFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
496                                   VkFormatProperties* forUnmarshaling) {
497     (void)rootType;
498     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures,
499                    sizeof(VkFormatFeatureFlags));
500     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->optimalTilingFeatures,
501                    sizeof(VkFormatFeatureFlags));
502     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->bufferFeatures,
503                    sizeof(VkFormatFeatureFlags));
504 }
505 
marshal_VkImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageFormatProperties * forMarshaling)506 void marshal_VkImageFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
507                                      const VkImageFormatProperties* forMarshaling) {
508     (void)rootType;
509     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->maxExtent));
510     vkStream->write((uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
511     vkStream->write((uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
512     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
513     vkStream->write((VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
514 }
515 
unmarshal_VkImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageFormatProperties * forUnmarshaling)516 void unmarshal_VkImageFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
517                                        VkImageFormatProperties* forUnmarshaling) {
518     (void)rootType;
519     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->maxExtent));
520     vkStream->read((uint32_t*)&forUnmarshaling->maxMipLevels, sizeof(uint32_t));
521     vkStream->read((uint32_t*)&forUnmarshaling->maxArrayLayers, sizeof(uint32_t));
522     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
523     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxResourceSize, sizeof(VkDeviceSize));
524 }
525 
marshal_VkInstanceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkInstanceCreateInfo * forMarshaling)526 void marshal_VkInstanceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
527                                   const VkInstanceCreateInfo* forMarshaling) {
528     (void)rootType;
529     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
531         rootType = forMarshaling->sType;
532     }
533     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
534     vkStream->write((VkInstanceCreateFlags*)&forMarshaling->flags, sizeof(VkInstanceCreateFlags));
535     // WARNING PTR CHECK
536     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
537     vkStream->putBe64(cgen_var_0);
538     if (forMarshaling->pApplicationInfo) {
539         marshal_VkApplicationInfo(vkStream, rootType,
540                                   (const VkApplicationInfo*)(forMarshaling->pApplicationInfo));
541     }
542     vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
543     saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
544     vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
545     saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames,
546                     forMarshaling->enabledExtensionCount);
547 }
548 
unmarshal_VkInstanceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkInstanceCreateInfo * forUnmarshaling)549 void unmarshal_VkInstanceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
550                                     VkInstanceCreateInfo* forUnmarshaling) {
551     (void)rootType;
552     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
553     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
554         rootType = forUnmarshaling->sType;
555     }
556     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
557     vkStream->read((VkInstanceCreateFlags*)&forUnmarshaling->flags, sizeof(VkInstanceCreateFlags));
558     // WARNING PTR CHECK
559     const VkApplicationInfo* check_pApplicationInfo;
560     check_pApplicationInfo = (const VkApplicationInfo*)(uintptr_t)vkStream->getBe64();
561     if (forUnmarshaling->pApplicationInfo) {
562         if (!(check_pApplicationInfo)) {
563             fprintf(
564                 stderr,
565                 "fatal: forUnmarshaling->pApplicationInfo inconsistent between guest and host\n");
566         }
567         unmarshal_VkApplicationInfo(vkStream, rootType,
568                                     (VkApplicationInfo*)(forUnmarshaling->pApplicationInfo));
569     }
570     vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
571     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
572     vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
573     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
574 }
575 
marshal_VkMemoryHeap(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryHeap * forMarshaling)576 void marshal_VkMemoryHeap(VulkanStreamGuest* vkStream, VkStructureType rootType,
577                           const VkMemoryHeap* forMarshaling) {
578     (void)rootType;
579     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
580     vkStream->write((VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
581 }
582 
unmarshal_VkMemoryHeap(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryHeap * forUnmarshaling)583 void unmarshal_VkMemoryHeap(VulkanStreamGuest* vkStream, VkStructureType rootType,
584                             VkMemoryHeap* forUnmarshaling) {
585     (void)rootType;
586     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
587     vkStream->read((VkMemoryHeapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryHeapFlags));
588 }
589 
marshal_VkMemoryType(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryType * forMarshaling)590 void marshal_VkMemoryType(VulkanStreamGuest* vkStream, VkStructureType rootType,
591                           const VkMemoryType* forMarshaling) {
592     (void)rootType;
593     vkStream->write((VkMemoryPropertyFlags*)&forMarshaling->propertyFlags,
594                     sizeof(VkMemoryPropertyFlags));
595     vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
596 }
597 
unmarshal_VkMemoryType(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryType * forUnmarshaling)598 void unmarshal_VkMemoryType(VulkanStreamGuest* vkStream, VkStructureType rootType,
599                             VkMemoryType* forUnmarshaling) {
600     (void)rootType;
601     vkStream->read((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags,
602                    sizeof(VkMemoryPropertyFlags));
603     vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
604 }
605 
marshal_VkPhysicalDeviceFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFeatures * forMarshaling)606 void marshal_VkPhysicalDeviceFeatures(VulkanStreamGuest* vkStream, VkStructureType rootType,
607                                       const VkPhysicalDeviceFeatures* forMarshaling) {
608     (void)rootType;
609     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess, sizeof(VkBool32));
610     vkStream->write((VkBool32*)&forMarshaling->fullDrawIndexUint32, sizeof(VkBool32));
611     vkStream->write((VkBool32*)&forMarshaling->imageCubeArray, sizeof(VkBool32));
612     vkStream->write((VkBool32*)&forMarshaling->independentBlend, sizeof(VkBool32));
613     vkStream->write((VkBool32*)&forMarshaling->geometryShader, sizeof(VkBool32));
614     vkStream->write((VkBool32*)&forMarshaling->tessellationShader, sizeof(VkBool32));
615     vkStream->write((VkBool32*)&forMarshaling->sampleRateShading, sizeof(VkBool32));
616     vkStream->write((VkBool32*)&forMarshaling->dualSrcBlend, sizeof(VkBool32));
617     vkStream->write((VkBool32*)&forMarshaling->logicOp, sizeof(VkBool32));
618     vkStream->write((VkBool32*)&forMarshaling->multiDrawIndirect, sizeof(VkBool32));
619     vkStream->write((VkBool32*)&forMarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
620     vkStream->write((VkBool32*)&forMarshaling->depthClamp, sizeof(VkBool32));
621     vkStream->write((VkBool32*)&forMarshaling->depthBiasClamp, sizeof(VkBool32));
622     vkStream->write((VkBool32*)&forMarshaling->fillModeNonSolid, sizeof(VkBool32));
623     vkStream->write((VkBool32*)&forMarshaling->depthBounds, sizeof(VkBool32));
624     vkStream->write((VkBool32*)&forMarshaling->wideLines, sizeof(VkBool32));
625     vkStream->write((VkBool32*)&forMarshaling->largePoints, sizeof(VkBool32));
626     vkStream->write((VkBool32*)&forMarshaling->alphaToOne, sizeof(VkBool32));
627     vkStream->write((VkBool32*)&forMarshaling->multiViewport, sizeof(VkBool32));
628     vkStream->write((VkBool32*)&forMarshaling->samplerAnisotropy, sizeof(VkBool32));
629     vkStream->write((VkBool32*)&forMarshaling->textureCompressionETC2, sizeof(VkBool32));
630     vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
631     vkStream->write((VkBool32*)&forMarshaling->textureCompressionBC, sizeof(VkBool32));
632     vkStream->write((VkBool32*)&forMarshaling->occlusionQueryPrecise, sizeof(VkBool32));
633     vkStream->write((VkBool32*)&forMarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
634     vkStream->write((VkBool32*)&forMarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
635     vkStream->write((VkBool32*)&forMarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
636     vkStream->write((VkBool32*)&forMarshaling->shaderTessellationAndGeometryPointSize,
637                     sizeof(VkBool32));
638     vkStream->write((VkBool32*)&forMarshaling->shaderImageGatherExtended, sizeof(VkBool32));
639     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageExtendedFormats, sizeof(VkBool32));
640     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
641     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageReadWithoutFormat,
642                     sizeof(VkBool32));
643     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageWriteWithoutFormat,
644                     sizeof(VkBool32));
645     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayDynamicIndexing,
646                     sizeof(VkBool32));
647     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayDynamicIndexing,
648                     sizeof(VkBool32));
649     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayDynamicIndexing,
650                     sizeof(VkBool32));
651     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayDynamicIndexing,
652                     sizeof(VkBool32));
653     vkStream->write((VkBool32*)&forMarshaling->shaderClipDistance, sizeof(VkBool32));
654     vkStream->write((VkBool32*)&forMarshaling->shaderCullDistance, sizeof(VkBool32));
655     vkStream->write((VkBool32*)&forMarshaling->shaderFloat64, sizeof(VkBool32));
656     vkStream->write((VkBool32*)&forMarshaling->shaderInt64, sizeof(VkBool32));
657     vkStream->write((VkBool32*)&forMarshaling->shaderInt16, sizeof(VkBool32));
658     vkStream->write((VkBool32*)&forMarshaling->shaderResourceResidency, sizeof(VkBool32));
659     vkStream->write((VkBool32*)&forMarshaling->shaderResourceMinLod, sizeof(VkBool32));
660     vkStream->write((VkBool32*)&forMarshaling->sparseBinding, sizeof(VkBool32));
661     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyBuffer, sizeof(VkBool32));
662     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage2D, sizeof(VkBool32));
663     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage3D, sizeof(VkBool32));
664     vkStream->write((VkBool32*)&forMarshaling->sparseResidency2Samples, sizeof(VkBool32));
665     vkStream->write((VkBool32*)&forMarshaling->sparseResidency4Samples, sizeof(VkBool32));
666     vkStream->write((VkBool32*)&forMarshaling->sparseResidency8Samples, sizeof(VkBool32));
667     vkStream->write((VkBool32*)&forMarshaling->sparseResidency16Samples, sizeof(VkBool32));
668     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyAliased, sizeof(VkBool32));
669     vkStream->write((VkBool32*)&forMarshaling->variableMultisampleRate, sizeof(VkBool32));
670     vkStream->write((VkBool32*)&forMarshaling->inheritedQueries, sizeof(VkBool32));
671 }
672 
unmarshal_VkPhysicalDeviceFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceFeatures * forUnmarshaling)673 void unmarshal_VkPhysicalDeviceFeatures(VulkanStreamGuest* vkStream, VkStructureType rootType,
674                                         VkPhysicalDeviceFeatures* forUnmarshaling) {
675     (void)rootType;
676     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess, sizeof(VkBool32));
677     vkStream->read((VkBool32*)&forUnmarshaling->fullDrawIndexUint32, sizeof(VkBool32));
678     vkStream->read((VkBool32*)&forUnmarshaling->imageCubeArray, sizeof(VkBool32));
679     vkStream->read((VkBool32*)&forUnmarshaling->independentBlend, sizeof(VkBool32));
680     vkStream->read((VkBool32*)&forUnmarshaling->geometryShader, sizeof(VkBool32));
681     vkStream->read((VkBool32*)&forUnmarshaling->tessellationShader, sizeof(VkBool32));
682     vkStream->read((VkBool32*)&forUnmarshaling->sampleRateShading, sizeof(VkBool32));
683     vkStream->read((VkBool32*)&forUnmarshaling->dualSrcBlend, sizeof(VkBool32));
684     vkStream->read((VkBool32*)&forUnmarshaling->logicOp, sizeof(VkBool32));
685     vkStream->read((VkBool32*)&forUnmarshaling->multiDrawIndirect, sizeof(VkBool32));
686     vkStream->read((VkBool32*)&forUnmarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
687     vkStream->read((VkBool32*)&forUnmarshaling->depthClamp, sizeof(VkBool32));
688     vkStream->read((VkBool32*)&forUnmarshaling->depthBiasClamp, sizeof(VkBool32));
689     vkStream->read((VkBool32*)&forUnmarshaling->fillModeNonSolid, sizeof(VkBool32));
690     vkStream->read((VkBool32*)&forUnmarshaling->depthBounds, sizeof(VkBool32));
691     vkStream->read((VkBool32*)&forUnmarshaling->wideLines, sizeof(VkBool32));
692     vkStream->read((VkBool32*)&forUnmarshaling->largePoints, sizeof(VkBool32));
693     vkStream->read((VkBool32*)&forUnmarshaling->alphaToOne, sizeof(VkBool32));
694     vkStream->read((VkBool32*)&forUnmarshaling->multiViewport, sizeof(VkBool32));
695     vkStream->read((VkBool32*)&forUnmarshaling->samplerAnisotropy, sizeof(VkBool32));
696     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionETC2, sizeof(VkBool32));
697     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
698     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionBC, sizeof(VkBool32));
699     vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryPrecise, sizeof(VkBool32));
700     vkStream->read((VkBool32*)&forUnmarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
701     vkStream->read((VkBool32*)&forUnmarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
702     vkStream->read((VkBool32*)&forUnmarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
703     vkStream->read((VkBool32*)&forUnmarshaling->shaderTessellationAndGeometryPointSize,
704                    sizeof(VkBool32));
705     vkStream->read((VkBool32*)&forUnmarshaling->shaderImageGatherExtended, sizeof(VkBool32));
706     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageExtendedFormats,
707                    sizeof(VkBool32));
708     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
709     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageReadWithoutFormat,
710                    sizeof(VkBool32));
711     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageWriteWithoutFormat,
712                    sizeof(VkBool32));
713     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayDynamicIndexing,
714                    sizeof(VkBool32));
715     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayDynamicIndexing,
716                    sizeof(VkBool32));
717     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayDynamicIndexing,
718                    sizeof(VkBool32));
719     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayDynamicIndexing,
720                    sizeof(VkBool32));
721     vkStream->read((VkBool32*)&forUnmarshaling->shaderClipDistance, sizeof(VkBool32));
722     vkStream->read((VkBool32*)&forUnmarshaling->shaderCullDistance, sizeof(VkBool32));
723     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat64, sizeof(VkBool32));
724     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt64, sizeof(VkBool32));
725     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt16, sizeof(VkBool32));
726     vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceResidency, sizeof(VkBool32));
727     vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceMinLod, sizeof(VkBool32));
728     vkStream->read((VkBool32*)&forUnmarshaling->sparseBinding, sizeof(VkBool32));
729     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyBuffer, sizeof(VkBool32));
730     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage2D, sizeof(VkBool32));
731     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage3D, sizeof(VkBool32));
732     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency2Samples, sizeof(VkBool32));
733     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency4Samples, sizeof(VkBool32));
734     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency8Samples, sizeof(VkBool32));
735     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency16Samples, sizeof(VkBool32));
736     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyAliased, sizeof(VkBool32));
737     vkStream->read((VkBool32*)&forUnmarshaling->variableMultisampleRate, sizeof(VkBool32));
738     vkStream->read((VkBool32*)&forUnmarshaling->inheritedQueries, sizeof(VkBool32));
739 }
740 
marshal_VkPhysicalDeviceLimits(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLimits * forMarshaling)741 void marshal_VkPhysicalDeviceLimits(VulkanStreamGuest* vkStream, VkStructureType rootType,
742                                     const VkPhysicalDeviceLimits* forMarshaling) {
743     (void)rootType;
744     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension1D, sizeof(uint32_t));
745     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension2D, sizeof(uint32_t));
746     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension3D, sizeof(uint32_t));
747     vkStream->write((uint32_t*)&forMarshaling->maxImageDimensionCube, sizeof(uint32_t));
748     vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
749     vkStream->write((uint32_t*)&forMarshaling->maxTexelBufferElements, sizeof(uint32_t));
750     vkStream->write((uint32_t*)&forMarshaling->maxUniformBufferRange, sizeof(uint32_t));
751     vkStream->write((uint32_t*)&forMarshaling->maxStorageBufferRange, sizeof(uint32_t));
752     vkStream->write((uint32_t*)&forMarshaling->maxPushConstantsSize, sizeof(uint32_t));
753     vkStream->write((uint32_t*)&forMarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
754     vkStream->write((uint32_t*)&forMarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
755     vkStream->write((VkDeviceSize*)&forMarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
756     vkStream->write((VkDeviceSize*)&forMarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
757     vkStream->write((uint32_t*)&forMarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
758     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
759     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUniformBuffers,
760                     sizeof(uint32_t));
761     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageBuffers,
762                     sizeof(uint32_t));
763     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSampledImages,
764                     sizeof(uint32_t));
765     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageImages,
766                     sizeof(uint32_t));
767     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInputAttachments,
768                     sizeof(uint32_t));
769     vkStream->write((uint32_t*)&forMarshaling->maxPerStageResources, sizeof(uint32_t));
770     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
771     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
772     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffersDynamic,
773                     sizeof(uint32_t));
774     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
775     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffersDynamic,
776                     sizeof(uint32_t));
777     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
778     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
779     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
780     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributes, sizeof(uint32_t));
781     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindings, sizeof(uint32_t));
782     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
783     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
784     vkStream->write((uint32_t*)&forMarshaling->maxVertexOutputComponents, sizeof(uint32_t));
785     vkStream->write((uint32_t*)&forMarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
786     vkStream->write((uint32_t*)&forMarshaling->maxTessellationPatchSize, sizeof(uint32_t));
787     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexInputComponents,
788                     sizeof(uint32_t));
789     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexOutputComponents,
790                     sizeof(uint32_t));
791     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerPatchOutputComponents,
792                     sizeof(uint32_t));
793     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlTotalOutputComponents,
794                     sizeof(uint32_t));
795     vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationInputComponents,
796                     sizeof(uint32_t));
797     vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationOutputComponents,
798                     sizeof(uint32_t));
799     vkStream->write((uint32_t*)&forMarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
800     vkStream->write((uint32_t*)&forMarshaling->maxGeometryInputComponents, sizeof(uint32_t));
801     vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
802     vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
803     vkStream->write((uint32_t*)&forMarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
804     vkStream->write((uint32_t*)&forMarshaling->maxFragmentInputComponents, sizeof(uint32_t));
805     vkStream->write((uint32_t*)&forMarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
806     vkStream->write((uint32_t*)&forMarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
807     vkStream->write((uint32_t*)&forMarshaling->maxFragmentCombinedOutputResources,
808                     sizeof(uint32_t));
809     vkStream->write((uint32_t*)&forMarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
810     vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
811     vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
812     vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
813     vkStream->write((uint32_t*)&forMarshaling->subPixelPrecisionBits, sizeof(uint32_t));
814     vkStream->write((uint32_t*)&forMarshaling->subTexelPrecisionBits, sizeof(uint32_t));
815     vkStream->write((uint32_t*)&forMarshaling->mipmapPrecisionBits, sizeof(uint32_t));
816     vkStream->write((uint32_t*)&forMarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
817     vkStream->write((uint32_t*)&forMarshaling->maxDrawIndirectCount, sizeof(uint32_t));
818     vkStream->write((float*)&forMarshaling->maxSamplerLodBias, sizeof(float));
819     vkStream->write((float*)&forMarshaling->maxSamplerAnisotropy, sizeof(float));
820     vkStream->write((uint32_t*)&forMarshaling->maxViewports, sizeof(uint32_t));
821     vkStream->write((uint32_t*)forMarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
822     vkStream->write((float*)forMarshaling->viewportBoundsRange, 2 * sizeof(float));
823     vkStream->write((uint32_t*)&forMarshaling->viewportSubPixelBits, sizeof(uint32_t));
824     uint64_t cgen_var_0 = (uint64_t)forMarshaling->minMemoryMapAlignment;
825     vkStream->putBe64(cgen_var_0);
826     vkStream->write((VkDeviceSize*)&forMarshaling->minTexelBufferOffsetAlignment,
827                     sizeof(VkDeviceSize));
828     vkStream->write((VkDeviceSize*)&forMarshaling->minUniformBufferOffsetAlignment,
829                     sizeof(VkDeviceSize));
830     vkStream->write((VkDeviceSize*)&forMarshaling->minStorageBufferOffsetAlignment,
831                     sizeof(VkDeviceSize));
832     vkStream->write((int32_t*)&forMarshaling->minTexelOffset, sizeof(int32_t));
833     vkStream->write((uint32_t*)&forMarshaling->maxTexelOffset, sizeof(uint32_t));
834     vkStream->write((int32_t*)&forMarshaling->minTexelGatherOffset, sizeof(int32_t));
835     vkStream->write((uint32_t*)&forMarshaling->maxTexelGatherOffset, sizeof(uint32_t));
836     vkStream->write((float*)&forMarshaling->minInterpolationOffset, sizeof(float));
837     vkStream->write((float*)&forMarshaling->maxInterpolationOffset, sizeof(float));
838     vkStream->write((uint32_t*)&forMarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
839     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferWidth, sizeof(uint32_t));
840     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferHeight, sizeof(uint32_t));
841     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferLayers, sizeof(uint32_t));
842     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferColorSampleCounts,
843                     sizeof(VkSampleCountFlags));
844     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferDepthSampleCounts,
845                     sizeof(VkSampleCountFlags));
846     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferStencilSampleCounts,
847                     sizeof(VkSampleCountFlags));
848     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferNoAttachmentsSampleCounts,
849                     sizeof(VkSampleCountFlags));
850     vkStream->write((uint32_t*)&forMarshaling->maxColorAttachments, sizeof(uint32_t));
851     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageColorSampleCounts,
852                     sizeof(VkSampleCountFlags));
853     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageIntegerSampleCounts,
854                     sizeof(VkSampleCountFlags));
855     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageDepthSampleCounts,
856                     sizeof(VkSampleCountFlags));
857     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageStencilSampleCounts,
858                     sizeof(VkSampleCountFlags));
859     vkStream->write((VkSampleCountFlags*)&forMarshaling->storageImageSampleCounts,
860                     sizeof(VkSampleCountFlags));
861     vkStream->write((uint32_t*)&forMarshaling->maxSampleMaskWords, sizeof(uint32_t));
862     vkStream->write((VkBool32*)&forMarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
863     vkStream->write((float*)&forMarshaling->timestampPeriod, sizeof(float));
864     vkStream->write((uint32_t*)&forMarshaling->maxClipDistances, sizeof(uint32_t));
865     vkStream->write((uint32_t*)&forMarshaling->maxCullDistances, sizeof(uint32_t));
866     vkStream->write((uint32_t*)&forMarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
867     vkStream->write((uint32_t*)&forMarshaling->discreteQueuePriorities, sizeof(uint32_t));
868     vkStream->write((float*)forMarshaling->pointSizeRange, 2 * sizeof(float));
869     vkStream->write((float*)forMarshaling->lineWidthRange, 2 * sizeof(float));
870     vkStream->write((float*)&forMarshaling->pointSizeGranularity, sizeof(float));
871     vkStream->write((float*)&forMarshaling->lineWidthGranularity, sizeof(float));
872     vkStream->write((VkBool32*)&forMarshaling->strictLines, sizeof(VkBool32));
873     vkStream->write((VkBool32*)&forMarshaling->standardSampleLocations, sizeof(VkBool32));
874     vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyOffsetAlignment,
875                     sizeof(VkDeviceSize));
876     vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyRowPitchAlignment,
877                     sizeof(VkDeviceSize));
878     vkStream->write((VkDeviceSize*)&forMarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
879 }
880 
unmarshal_VkPhysicalDeviceLimits(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceLimits * forUnmarshaling)881 void unmarshal_VkPhysicalDeviceLimits(VulkanStreamGuest* vkStream, VkStructureType rootType,
882                                       VkPhysicalDeviceLimits* forUnmarshaling) {
883     (void)rootType;
884     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension1D, sizeof(uint32_t));
885     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension2D, sizeof(uint32_t));
886     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension3D, sizeof(uint32_t));
887     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimensionCube, sizeof(uint32_t));
888     vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
889     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelBufferElements, sizeof(uint32_t));
890     vkStream->read((uint32_t*)&forUnmarshaling->maxUniformBufferRange, sizeof(uint32_t));
891     vkStream->read((uint32_t*)&forUnmarshaling->maxStorageBufferRange, sizeof(uint32_t));
892     vkStream->read((uint32_t*)&forUnmarshaling->maxPushConstantsSize, sizeof(uint32_t));
893     vkStream->read((uint32_t*)&forUnmarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
894     vkStream->read((uint32_t*)&forUnmarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
895     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
896     vkStream->read((VkDeviceSize*)&forUnmarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
897     vkStream->read((uint32_t*)&forUnmarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
898     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
899     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUniformBuffers,
900                    sizeof(uint32_t));
901     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageBuffers,
902                    sizeof(uint32_t));
903     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSampledImages,
904                    sizeof(uint32_t));
905     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageImages,
906                    sizeof(uint32_t));
907     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInputAttachments,
908                    sizeof(uint32_t));
909     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageResources, sizeof(uint32_t));
910     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
911     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
912     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffersDynamic,
913                    sizeof(uint32_t));
914     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
915     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffersDynamic,
916                    sizeof(uint32_t));
917     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
918     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
919     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
920     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributes, sizeof(uint32_t));
921     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindings, sizeof(uint32_t));
922     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
923     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
924     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexOutputComponents, sizeof(uint32_t));
925     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
926     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationPatchSize, sizeof(uint32_t));
927     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexInputComponents,
928                    sizeof(uint32_t));
929     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexOutputComponents,
930                    sizeof(uint32_t));
931     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerPatchOutputComponents,
932                    sizeof(uint32_t));
933     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlTotalOutputComponents,
934                    sizeof(uint32_t));
935     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationInputComponents,
936                    sizeof(uint32_t));
937     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationOutputComponents,
938                    sizeof(uint32_t));
939     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
940     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryInputComponents, sizeof(uint32_t));
941     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
942     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
943     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
944     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentInputComponents, sizeof(uint32_t));
945     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
946     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
947     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentCombinedOutputResources,
948                    sizeof(uint32_t));
949     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
950     vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
951     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
952     vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
953     vkStream->read((uint32_t*)&forUnmarshaling->subPixelPrecisionBits, sizeof(uint32_t));
954     vkStream->read((uint32_t*)&forUnmarshaling->subTexelPrecisionBits, sizeof(uint32_t));
955     vkStream->read((uint32_t*)&forUnmarshaling->mipmapPrecisionBits, sizeof(uint32_t));
956     vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
957     vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndirectCount, sizeof(uint32_t));
958     vkStream->read((float*)&forUnmarshaling->maxSamplerLodBias, sizeof(float));
959     vkStream->read((float*)&forUnmarshaling->maxSamplerAnisotropy, sizeof(float));
960     vkStream->read((uint32_t*)&forUnmarshaling->maxViewports, sizeof(uint32_t));
961     vkStream->read((uint32_t*)forUnmarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
962     vkStream->read((float*)forUnmarshaling->viewportBoundsRange, 2 * sizeof(float));
963     vkStream->read((uint32_t*)&forUnmarshaling->viewportSubPixelBits, sizeof(uint32_t));
964     forUnmarshaling->minMemoryMapAlignment = (size_t)vkStream->getBe64();
965     vkStream->read((VkDeviceSize*)&forUnmarshaling->minTexelBufferOffsetAlignment,
966                    sizeof(VkDeviceSize));
967     vkStream->read((VkDeviceSize*)&forUnmarshaling->minUniformBufferOffsetAlignment,
968                    sizeof(VkDeviceSize));
969     vkStream->read((VkDeviceSize*)&forUnmarshaling->minStorageBufferOffsetAlignment,
970                    sizeof(VkDeviceSize));
971     vkStream->read((int32_t*)&forUnmarshaling->minTexelOffset, sizeof(int32_t));
972     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelOffset, sizeof(uint32_t));
973     vkStream->read((int32_t*)&forUnmarshaling->minTexelGatherOffset, sizeof(int32_t));
974     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelGatherOffset, sizeof(uint32_t));
975     vkStream->read((float*)&forUnmarshaling->minInterpolationOffset, sizeof(float));
976     vkStream->read((float*)&forUnmarshaling->maxInterpolationOffset, sizeof(float));
977     vkStream->read((uint32_t*)&forUnmarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
978     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferWidth, sizeof(uint32_t));
979     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferHeight, sizeof(uint32_t));
980     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferLayers, sizeof(uint32_t));
981     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferColorSampleCounts,
982                    sizeof(VkSampleCountFlags));
983     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferDepthSampleCounts,
984                    sizeof(VkSampleCountFlags));
985     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferStencilSampleCounts,
986                    sizeof(VkSampleCountFlags));
987     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferNoAttachmentsSampleCounts,
988                    sizeof(VkSampleCountFlags));
989     vkStream->read((uint32_t*)&forUnmarshaling->maxColorAttachments, sizeof(uint32_t));
990     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageColorSampleCounts,
991                    sizeof(VkSampleCountFlags));
992     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageIntegerSampleCounts,
993                    sizeof(VkSampleCountFlags));
994     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageDepthSampleCounts,
995                    sizeof(VkSampleCountFlags));
996     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageStencilSampleCounts,
997                    sizeof(VkSampleCountFlags));
998     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->storageImageSampleCounts,
999                    sizeof(VkSampleCountFlags));
1000     vkStream->read((uint32_t*)&forUnmarshaling->maxSampleMaskWords, sizeof(uint32_t));
1001     vkStream->read((VkBool32*)&forUnmarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
1002     vkStream->read((float*)&forUnmarshaling->timestampPeriod, sizeof(float));
1003     vkStream->read((uint32_t*)&forUnmarshaling->maxClipDistances, sizeof(uint32_t));
1004     vkStream->read((uint32_t*)&forUnmarshaling->maxCullDistances, sizeof(uint32_t));
1005     vkStream->read((uint32_t*)&forUnmarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
1006     vkStream->read((uint32_t*)&forUnmarshaling->discreteQueuePriorities, sizeof(uint32_t));
1007     vkStream->read((float*)forUnmarshaling->pointSizeRange, 2 * sizeof(float));
1008     vkStream->read((float*)forUnmarshaling->lineWidthRange, 2 * sizeof(float));
1009     vkStream->read((float*)&forUnmarshaling->pointSizeGranularity, sizeof(float));
1010     vkStream->read((float*)&forUnmarshaling->lineWidthGranularity, sizeof(float));
1011     vkStream->read((VkBool32*)&forUnmarshaling->strictLines, sizeof(VkBool32));
1012     vkStream->read((VkBool32*)&forUnmarshaling->standardSampleLocations, sizeof(VkBool32));
1013     vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyOffsetAlignment,
1014                    sizeof(VkDeviceSize));
1015     vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyRowPitchAlignment,
1016                    sizeof(VkDeviceSize));
1017     vkStream->read((VkDeviceSize*)&forUnmarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
1018 }
1019 
marshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties * forMarshaling)1020 void marshal_VkPhysicalDeviceMemoryProperties(
1021     VulkanStreamGuest* vkStream, VkStructureType rootType,
1022     const VkPhysicalDeviceMemoryProperties* forMarshaling) {
1023     (void)rootType;
1024     vkStream->write((uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
1025     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
1026         marshal_VkMemoryType(vkStream, rootType, (VkMemoryType*)(forMarshaling->memoryTypes + i));
1027     }
1028     vkStream->write((uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
1029     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
1030         marshal_VkMemoryHeap(vkStream, rootType, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i));
1031     }
1032 }
1033 
unmarshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryProperties * forUnmarshaling)1034 void unmarshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest* vkStream,
1035                                                 VkStructureType rootType,
1036                                                 VkPhysicalDeviceMemoryProperties* forUnmarshaling) {
1037     (void)rootType;
1038     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeCount, sizeof(uint32_t));
1039     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
1040         unmarshal_VkMemoryType(vkStream, rootType,
1041                                (VkMemoryType*)(forUnmarshaling->memoryTypes + i));
1042     }
1043     vkStream->read((uint32_t*)&forUnmarshaling->memoryHeapCount, sizeof(uint32_t));
1044     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
1045         unmarshal_VkMemoryHeap(vkStream, rootType,
1046                                (VkMemoryHeap*)(forUnmarshaling->memoryHeaps + i));
1047     }
1048 }
1049 
marshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSparseProperties * forMarshaling)1050 void marshal_VkPhysicalDeviceSparseProperties(
1051     VulkanStreamGuest* vkStream, VkStructureType rootType,
1052     const VkPhysicalDeviceSparseProperties* forMarshaling) {
1053     (void)rootType;
1054     vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
1055     vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DMultisampleBlockShape,
1056                     sizeof(VkBool32));
1057     vkStream->write((VkBool32*)&forMarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
1058     vkStream->write((VkBool32*)&forMarshaling->residencyAlignedMipSize, sizeof(VkBool32));
1059     vkStream->write((VkBool32*)&forMarshaling->residencyNonResidentStrict, sizeof(VkBool32));
1060 }
1061 
unmarshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSparseProperties * forUnmarshaling)1062 void unmarshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest* vkStream,
1063                                                 VkStructureType rootType,
1064                                                 VkPhysicalDeviceSparseProperties* forUnmarshaling) {
1065     (void)rootType;
1066     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
1067     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DMultisampleBlockShape,
1068                    sizeof(VkBool32));
1069     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
1070     vkStream->read((VkBool32*)&forUnmarshaling->residencyAlignedMipSize, sizeof(VkBool32));
1071     vkStream->read((VkBool32*)&forUnmarshaling->residencyNonResidentStrict, sizeof(VkBool32));
1072 }
1073 
marshal_VkPhysicalDeviceProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProperties * forMarshaling)1074 void marshal_VkPhysicalDeviceProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1075                                         const VkPhysicalDeviceProperties* forMarshaling) {
1076     (void)rootType;
1077     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
1078     vkStream->write((uint32_t*)&forMarshaling->driverVersion, sizeof(uint32_t));
1079     vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
1080     vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
1081     vkStream->write((VkPhysicalDeviceType*)&forMarshaling->deviceType,
1082                     sizeof(VkPhysicalDeviceType));
1083     vkStream->write((char*)forMarshaling->deviceName,
1084                     VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
1085     vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
1086     marshal_VkPhysicalDeviceLimits(vkStream, rootType,
1087                                    (VkPhysicalDeviceLimits*)(&forMarshaling->limits));
1088     marshal_VkPhysicalDeviceSparseProperties(
1089         vkStream, rootType, (VkPhysicalDeviceSparseProperties*)(&forMarshaling->sparseProperties));
1090 }
1091 
unmarshal_VkPhysicalDeviceProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProperties * forUnmarshaling)1092 void unmarshal_VkPhysicalDeviceProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1093                                           VkPhysicalDeviceProperties* forUnmarshaling) {
1094     (void)rootType;
1095     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
1096     vkStream->read((uint32_t*)&forUnmarshaling->driverVersion, sizeof(uint32_t));
1097     vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
1098     vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
1099     vkStream->read((VkPhysicalDeviceType*)&forUnmarshaling->deviceType,
1100                    sizeof(VkPhysicalDeviceType));
1101     vkStream->read((char*)forUnmarshaling->deviceName,
1102                    VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
1103     vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
1104     unmarshal_VkPhysicalDeviceLimits(vkStream, rootType,
1105                                      (VkPhysicalDeviceLimits*)(&forUnmarshaling->limits));
1106     unmarshal_VkPhysicalDeviceSparseProperties(
1107         vkStream, rootType,
1108         (VkPhysicalDeviceSparseProperties*)(&forUnmarshaling->sparseProperties));
1109 }
1110 
marshal_VkQueueFamilyProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueueFamilyProperties * forMarshaling)1111 void marshal_VkQueueFamilyProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1112                                      const VkQueueFamilyProperties* forMarshaling) {
1113     (void)rootType;
1114     vkStream->write((VkQueueFlags*)&forMarshaling->queueFlags, sizeof(VkQueueFlags));
1115     vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
1116     vkStream->write((uint32_t*)&forMarshaling->timestampValidBits, sizeof(uint32_t));
1117     marshal_VkExtent3D(vkStream, rootType,
1118                        (VkExtent3D*)(&forMarshaling->minImageTransferGranularity));
1119 }
1120 
unmarshal_VkQueueFamilyProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkQueueFamilyProperties * forUnmarshaling)1121 void unmarshal_VkQueueFamilyProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1122                                        VkQueueFamilyProperties* forUnmarshaling) {
1123     (void)rootType;
1124     vkStream->read((VkQueueFlags*)&forUnmarshaling->queueFlags, sizeof(VkQueueFlags));
1125     vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
1126     vkStream->read((uint32_t*)&forUnmarshaling->timestampValidBits, sizeof(uint32_t));
1127     unmarshal_VkExtent3D(vkStream, rootType,
1128                          (VkExtent3D*)(&forUnmarshaling->minImageTransferGranularity));
1129 }
1130 
marshal_VkDeviceQueueCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceQueueCreateInfo * forMarshaling)1131 void marshal_VkDeviceQueueCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1132                                      const VkDeviceQueueCreateInfo* forMarshaling) {
1133     (void)rootType;
1134     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1135     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1136         rootType = forMarshaling->sType;
1137     }
1138     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1139     vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags,
1140                     sizeof(VkDeviceQueueCreateFlags));
1141     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
1142     vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
1143     vkStream->write((const float*)forMarshaling->pQueuePriorities,
1144                     forMarshaling->queueCount * sizeof(const float));
1145 }
1146 
unmarshal_VkDeviceQueueCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceQueueCreateInfo * forUnmarshaling)1147 void unmarshal_VkDeviceQueueCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1148                                        VkDeviceQueueCreateInfo* forUnmarshaling) {
1149     (void)rootType;
1150     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1151     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1152         rootType = forUnmarshaling->sType;
1153     }
1154     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1155     vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags,
1156                    sizeof(VkDeviceQueueCreateFlags));
1157     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
1158     vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
1159     vkStream->read((float*)forUnmarshaling->pQueuePriorities,
1160                    forUnmarshaling->queueCount * sizeof(const float));
1161 }
1162 
marshal_VkDeviceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceCreateInfo * forMarshaling)1163 void marshal_VkDeviceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1164                                 const VkDeviceCreateInfo* forMarshaling) {
1165     (void)rootType;
1166     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1167     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1168         rootType = forMarshaling->sType;
1169     }
1170     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1171     vkStream->write((VkDeviceCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceCreateFlags));
1172     vkStream->write((uint32_t*)&forMarshaling->queueCreateInfoCount, sizeof(uint32_t));
1173     if (forMarshaling) {
1174         for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueCreateInfoCount; ++i) {
1175             marshal_VkDeviceQueueCreateInfo(
1176                 vkStream, rootType,
1177                 (const VkDeviceQueueCreateInfo*)(forMarshaling->pQueueCreateInfos + i));
1178         }
1179     }
1180     vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
1181     saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
1182     vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
1183     saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames,
1184                     forMarshaling->enabledExtensionCount);
1185     // WARNING PTR CHECK
1186     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
1187     vkStream->putBe64(cgen_var_0);
1188     if (forMarshaling->pEnabledFeatures) {
1189         marshal_VkPhysicalDeviceFeatures(
1190             vkStream, rootType, (const VkPhysicalDeviceFeatures*)(forMarshaling->pEnabledFeatures));
1191     }
1192 }
1193 
unmarshal_VkDeviceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceCreateInfo * forUnmarshaling)1194 void unmarshal_VkDeviceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1195                                   VkDeviceCreateInfo* forUnmarshaling) {
1196     (void)rootType;
1197     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1198     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1199         rootType = forUnmarshaling->sType;
1200     }
1201     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1202     vkStream->read((VkDeviceCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceCreateFlags));
1203     vkStream->read((uint32_t*)&forUnmarshaling->queueCreateInfoCount, sizeof(uint32_t));
1204     if (forUnmarshaling) {
1205         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueCreateInfoCount; ++i) {
1206             unmarshal_VkDeviceQueueCreateInfo(
1207                 vkStream, rootType,
1208                 (VkDeviceQueueCreateInfo*)(forUnmarshaling->pQueueCreateInfos + i));
1209         }
1210     }
1211     vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
1212     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
1213     vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
1214     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
1215     // WARNING PTR CHECK
1216     const VkPhysicalDeviceFeatures* check_pEnabledFeatures;
1217     check_pEnabledFeatures = (const VkPhysicalDeviceFeatures*)(uintptr_t)vkStream->getBe64();
1218     if (forUnmarshaling->pEnabledFeatures) {
1219         if (!(check_pEnabledFeatures)) {
1220             fprintf(
1221                 stderr,
1222                 "fatal: forUnmarshaling->pEnabledFeatures inconsistent between guest and host\n");
1223         }
1224         unmarshal_VkPhysicalDeviceFeatures(
1225             vkStream, rootType, (VkPhysicalDeviceFeatures*)(forUnmarshaling->pEnabledFeatures));
1226     }
1227 }
1228 
marshal_VkExtensionProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExtensionProperties * forMarshaling)1229 void marshal_VkExtensionProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1230                                    const VkExtensionProperties* forMarshaling) {
1231     (void)rootType;
1232     vkStream->write((char*)forMarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1233     vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
1234 }
1235 
unmarshal_VkExtensionProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExtensionProperties * forUnmarshaling)1236 void unmarshal_VkExtensionProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1237                                      VkExtensionProperties* forUnmarshaling) {
1238     (void)rootType;
1239     vkStream->read((char*)forUnmarshaling->extensionName,
1240                    VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1241     vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
1242 }
1243 
marshal_VkLayerProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkLayerProperties * forMarshaling)1244 void marshal_VkLayerProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1245                                const VkLayerProperties* forMarshaling) {
1246     (void)rootType;
1247     vkStream->write((char*)forMarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1248     vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
1249     vkStream->write((uint32_t*)&forMarshaling->implementationVersion, sizeof(uint32_t));
1250     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
1251 }
1252 
unmarshal_VkLayerProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkLayerProperties * forUnmarshaling)1253 void unmarshal_VkLayerProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1254                                  VkLayerProperties* forUnmarshaling) {
1255     (void)rootType;
1256     vkStream->read((char*)forUnmarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1257     vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
1258     vkStream->read((uint32_t*)&forUnmarshaling->implementationVersion, sizeof(uint32_t));
1259     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
1260 }
1261 
marshal_VkSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubmitInfo * forMarshaling)1262 void marshal_VkSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1263                           const VkSubmitInfo* forMarshaling) {
1264     (void)rootType;
1265     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1266     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1267         rootType = forMarshaling->sType;
1268     }
1269     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1270     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1271     if (forMarshaling->waitSemaphoreCount) {
1272         uint64_t* cgen_var_0;
1273         vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1274         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1275             forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
1276         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1277     }
1278     vkStream->write((const VkPipelineStageFlags*)forMarshaling->pWaitDstStageMask,
1279                     forMarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1280     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
1281     if (forMarshaling->commandBufferCount) {
1282         uint64_t* cgen_var_1;
1283         vkStream->alloc((void**)&cgen_var_1, forMarshaling->commandBufferCount * 8);
1284         vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(
1285             forMarshaling->pCommandBuffers, cgen_var_1, forMarshaling->commandBufferCount);
1286         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->commandBufferCount * 8);
1287     }
1288     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1289     if (forMarshaling->signalSemaphoreCount) {
1290         uint64_t* cgen_var_2;
1291         vkStream->alloc((void**)&cgen_var_2, forMarshaling->signalSemaphoreCount * 8);
1292         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1293             forMarshaling->pSignalSemaphores, cgen_var_2, forMarshaling->signalSemaphoreCount);
1294         vkStream->write((uint64_t*)cgen_var_2, forMarshaling->signalSemaphoreCount * 8);
1295     }
1296 }
1297 
unmarshal_VkSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubmitInfo * forUnmarshaling)1298 void unmarshal_VkSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1299                             VkSubmitInfo* forUnmarshaling) {
1300     (void)rootType;
1301     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1302     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1303         rootType = forUnmarshaling->sType;
1304     }
1305     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1306     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
1307     if (forUnmarshaling->waitSemaphoreCount) {
1308         uint64_t* cgen_var_0;
1309         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1310         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1311         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1312             cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores,
1313             forUnmarshaling->waitSemaphoreCount);
1314     }
1315     vkStream->read((VkPipelineStageFlags*)forUnmarshaling->pWaitDstStageMask,
1316                    forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1317     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
1318     if (forUnmarshaling->commandBufferCount) {
1319         uint64_t* cgen_var_1;
1320         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->commandBufferCount * 8);
1321         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->commandBufferCount * 8);
1322         vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(
1323             cgen_var_1, (VkCommandBuffer*)forUnmarshaling->pCommandBuffers,
1324             forUnmarshaling->commandBufferCount);
1325     }
1326     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
1327     if (forUnmarshaling->signalSemaphoreCount) {
1328         uint64_t* cgen_var_2;
1329         vkStream->alloc((void**)&cgen_var_2, forUnmarshaling->signalSemaphoreCount * 8);
1330         vkStream->read((uint64_t*)cgen_var_2, forUnmarshaling->signalSemaphoreCount * 8);
1331         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1332             cgen_var_2, (VkSemaphore*)forUnmarshaling->pSignalSemaphores,
1333             forUnmarshaling->signalSemaphoreCount);
1334     }
1335 }
1336 
marshal_VkMappedMemoryRange(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMappedMemoryRange * forMarshaling)1337 void marshal_VkMappedMemoryRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
1338                                  const VkMappedMemoryRange* forMarshaling) {
1339     (void)rootType;
1340     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1341     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1342         rootType = forMarshaling->sType;
1343     }
1344     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1345     uint64_t cgen_var_0;
1346     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
1347                                                              1);
1348     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1349     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1350     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1351 }
1352 
unmarshal_VkMappedMemoryRange(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMappedMemoryRange * forUnmarshaling)1353 void unmarshal_VkMappedMemoryRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
1354                                    VkMappedMemoryRange* forUnmarshaling) {
1355     (void)rootType;
1356     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1357     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1358         rootType = forUnmarshaling->sType;
1359     }
1360     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1361     uint64_t cgen_var_0;
1362     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1363     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
1364         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1365     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1366     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1367 }
1368 
marshal_VkMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryAllocateInfo * forMarshaling)1369 void marshal_VkMemoryAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1370                                   const VkMemoryAllocateInfo* forMarshaling) {
1371     (void)rootType;
1372     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1373     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1374         rootType = forMarshaling->sType;
1375     }
1376     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1377     vkStream->write((VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
1378     vkStream->write((uint32_t*)&forMarshaling->memoryTypeIndex, sizeof(uint32_t));
1379 }
1380 
unmarshal_VkMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryAllocateInfo * forUnmarshaling)1381 void unmarshal_VkMemoryAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1382                                     VkMemoryAllocateInfo* forUnmarshaling) {
1383     (void)rootType;
1384     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1385     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1386         rootType = forUnmarshaling->sType;
1387     }
1388     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1389     vkStream->read((VkDeviceSize*)&forUnmarshaling->allocationSize, sizeof(VkDeviceSize));
1390     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeIndex, sizeof(uint32_t));
1391 }
1392 
marshal_VkMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryRequirements * forMarshaling)1393 void marshal_VkMemoryRequirements(VulkanStreamGuest* vkStream, VkStructureType rootType,
1394                                   const VkMemoryRequirements* forMarshaling) {
1395     (void)rootType;
1396     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1397     vkStream->write((VkDeviceSize*)&forMarshaling->alignment, sizeof(VkDeviceSize));
1398     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
1399 }
1400 
unmarshal_VkMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryRequirements * forUnmarshaling)1401 void unmarshal_VkMemoryRequirements(VulkanStreamGuest* vkStream, VkStructureType rootType,
1402                                     VkMemoryRequirements* forUnmarshaling) {
1403     (void)rootType;
1404     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1405     vkStream->read((VkDeviceSize*)&forUnmarshaling->alignment, sizeof(VkDeviceSize));
1406     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
1407 }
1408 
marshal_VkSparseMemoryBind(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseMemoryBind * forMarshaling)1409 void marshal_VkSparseMemoryBind(VulkanStreamGuest* vkStream, VkStructureType rootType,
1410                                 const VkSparseMemoryBind* forMarshaling) {
1411     (void)rootType;
1412     vkStream->write((VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
1413     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1414     uint64_t cgen_var_0;
1415     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
1416                                                              1);
1417     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1418     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1419     vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags,
1420                     sizeof(VkSparseMemoryBindFlags));
1421 }
1422 
unmarshal_VkSparseMemoryBind(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseMemoryBind * forUnmarshaling)1423 void unmarshal_VkSparseMemoryBind(VulkanStreamGuest* vkStream, VkStructureType rootType,
1424                                   VkSparseMemoryBind* forUnmarshaling) {
1425     (void)rootType;
1426     vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceOffset, sizeof(VkDeviceSize));
1427     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1428     uint64_t cgen_var_0;
1429     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1430     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
1431         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1432     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1433     vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags,
1434                    sizeof(VkSparseMemoryBindFlags));
1435 }
1436 
marshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseBufferMemoryBindInfo * forMarshaling)1437 void marshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1438                                           const VkSparseBufferMemoryBindInfo* forMarshaling) {
1439     (void)rootType;
1440     uint64_t cgen_var_0;
1441     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
1442     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1443     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1444     if (forMarshaling) {
1445         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1446             marshal_VkSparseMemoryBind(vkStream, rootType,
1447                                        (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1448         }
1449     }
1450 }
1451 
unmarshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseBufferMemoryBindInfo * forUnmarshaling)1452 void unmarshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1453                                             VkSparseBufferMemoryBindInfo* forUnmarshaling) {
1454     (void)rootType;
1455     uint64_t cgen_var_0;
1456     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1457     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
1458                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
1459     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1460     if (forUnmarshaling) {
1461         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1462             unmarshal_VkSparseMemoryBind(vkStream, rootType,
1463                                          (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1464         }
1465     }
1466 }
1467 
marshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageOpaqueMemoryBindInfo * forMarshaling)1468 void marshal_VkSparseImageOpaqueMemoryBindInfo(
1469     VulkanStreamGuest* vkStream, VkStructureType rootType,
1470     const VkSparseImageOpaqueMemoryBindInfo* forMarshaling) {
1471     (void)rootType;
1472     uint64_t cgen_var_0;
1473     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
1474     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1475     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1476     if (forMarshaling) {
1477         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1478             marshal_VkSparseMemoryBind(vkStream, rootType,
1479                                        (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1480         }
1481     }
1482 }
1483 
unmarshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseImageOpaqueMemoryBindInfo * forUnmarshaling)1484 void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
1485     VulkanStreamGuest* vkStream, VkStructureType rootType,
1486     VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling) {
1487     (void)rootType;
1488     uint64_t cgen_var_0;
1489     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1490     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
1491                                                       (VkImage*)&forUnmarshaling->image, 1);
1492     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1493     if (forUnmarshaling) {
1494         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1495             unmarshal_VkSparseMemoryBind(vkStream, rootType,
1496                                          (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1497         }
1498     }
1499 }
1500 
marshal_VkImageSubresource(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresource * forMarshaling)1501 void marshal_VkImageSubresource(VulkanStreamGuest* vkStream, VkStructureType rootType,
1502                                 const VkImageSubresource* forMarshaling) {
1503     (void)rootType;
1504     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1505     vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
1506     vkStream->write((uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
1507 }
1508 
unmarshal_VkImageSubresource(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageSubresource * forUnmarshaling)1509 void unmarshal_VkImageSubresource(VulkanStreamGuest* vkStream, VkStructureType rootType,
1510                                   VkImageSubresource* forUnmarshaling) {
1511     (void)rootType;
1512     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1513     vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
1514     vkStream->read((uint32_t*)&forUnmarshaling->arrayLayer, sizeof(uint32_t));
1515 }
1516 
marshal_VkSparseImageMemoryBind(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryBind * forMarshaling)1517 void marshal_VkSparseImageMemoryBind(VulkanStreamGuest* vkStream, VkStructureType rootType,
1518                                      const VkSparseImageMemoryBind* forMarshaling) {
1519     (void)rootType;
1520     marshal_VkImageSubresource(vkStream, rootType,
1521                                (VkImageSubresource*)(&forMarshaling->subresource));
1522     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->offset));
1523     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
1524     uint64_t cgen_var_0;
1525     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
1526                                                              1);
1527     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1528     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1529     vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags,
1530                     sizeof(VkSparseMemoryBindFlags));
1531 }
1532 
unmarshal_VkSparseImageMemoryBind(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseImageMemoryBind * forUnmarshaling)1533 void unmarshal_VkSparseImageMemoryBind(VulkanStreamGuest* vkStream, VkStructureType rootType,
1534                                        VkSparseImageMemoryBind* forUnmarshaling) {
1535     (void)rootType;
1536     unmarshal_VkImageSubresource(vkStream, rootType,
1537                                  (VkImageSubresource*)(&forUnmarshaling->subresource));
1538     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->offset));
1539     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
1540     uint64_t cgen_var_0;
1541     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1542     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
1543         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1544     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1545     vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags,
1546                    sizeof(VkSparseMemoryBindFlags));
1547 }
1548 
marshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryBindInfo * forMarshaling)1549 void marshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1550                                          const VkSparseImageMemoryBindInfo* forMarshaling) {
1551     (void)rootType;
1552     uint64_t cgen_var_0;
1553     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
1554     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1555     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1556     if (forMarshaling) {
1557         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1558             marshal_VkSparseImageMemoryBind(
1559                 vkStream, rootType, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i));
1560         }
1561     }
1562 }
1563 
unmarshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseImageMemoryBindInfo * forUnmarshaling)1564 void unmarshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1565                                            VkSparseImageMemoryBindInfo* forUnmarshaling) {
1566     (void)rootType;
1567     uint64_t cgen_var_0;
1568     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1569     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
1570                                                       (VkImage*)&forUnmarshaling->image, 1);
1571     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1572     if (forUnmarshaling) {
1573         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1574             unmarshal_VkSparseImageMemoryBind(
1575                 vkStream, rootType, (VkSparseImageMemoryBind*)(forUnmarshaling->pBinds + i));
1576         }
1577     }
1578 }
1579 
marshal_VkBindSparseInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindSparseInfo * forMarshaling)1580 void marshal_VkBindSparseInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1581                               const VkBindSparseInfo* forMarshaling) {
1582     (void)rootType;
1583     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1584     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1585         rootType = forMarshaling->sType;
1586     }
1587     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1588     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1589     if (forMarshaling->waitSemaphoreCount) {
1590         uint64_t* cgen_var_0;
1591         vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1592         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1593             forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
1594         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
1595     }
1596     vkStream->write((uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
1597     if (forMarshaling) {
1598         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i) {
1599             marshal_VkSparseBufferMemoryBindInfo(
1600                 vkStream, rootType,
1601                 (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i));
1602         }
1603     }
1604     vkStream->write((uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1605     if (forMarshaling) {
1606         for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i) {
1607             marshal_VkSparseImageOpaqueMemoryBindInfo(
1608                 vkStream, rootType,
1609                 (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i));
1610         }
1611     }
1612     vkStream->write((uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
1613     if (forMarshaling) {
1614         for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i) {
1615             marshal_VkSparseImageMemoryBindInfo(
1616                 vkStream, rootType,
1617                 (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i));
1618         }
1619     }
1620     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1621     if (forMarshaling->signalSemaphoreCount) {
1622         uint64_t* cgen_var_1;
1623         vkStream->alloc((void**)&cgen_var_1, forMarshaling->signalSemaphoreCount * 8);
1624         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
1625             forMarshaling->pSignalSemaphores, cgen_var_1, forMarshaling->signalSemaphoreCount);
1626         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->signalSemaphoreCount * 8);
1627     }
1628 }
1629 
unmarshal_VkBindSparseInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindSparseInfo * forUnmarshaling)1630 void unmarshal_VkBindSparseInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1631                                 VkBindSparseInfo* forUnmarshaling) {
1632     (void)rootType;
1633     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1634     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1635         rootType = forUnmarshaling->sType;
1636     }
1637     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1638     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
1639     if (forUnmarshaling->waitSemaphoreCount) {
1640         uint64_t* cgen_var_0;
1641         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1642         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
1643         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1644             cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores,
1645             forUnmarshaling->waitSemaphoreCount);
1646     }
1647     vkStream->read((uint32_t*)&forUnmarshaling->bufferBindCount, sizeof(uint32_t));
1648     if (forUnmarshaling) {
1649         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferBindCount; ++i) {
1650             unmarshal_VkSparseBufferMemoryBindInfo(
1651                 vkStream, rootType,
1652                 (VkSparseBufferMemoryBindInfo*)(forUnmarshaling->pBufferBinds + i));
1653         }
1654     }
1655     vkStream->read((uint32_t*)&forUnmarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1656     if (forUnmarshaling) {
1657         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageOpaqueBindCount; ++i) {
1658             unmarshal_VkSparseImageOpaqueMemoryBindInfo(
1659                 vkStream, rootType,
1660                 (VkSparseImageOpaqueMemoryBindInfo*)(forUnmarshaling->pImageOpaqueBinds + i));
1661         }
1662     }
1663     vkStream->read((uint32_t*)&forUnmarshaling->imageBindCount, sizeof(uint32_t));
1664     if (forUnmarshaling) {
1665         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageBindCount; ++i) {
1666             unmarshal_VkSparseImageMemoryBindInfo(
1667                 vkStream, rootType,
1668                 (VkSparseImageMemoryBindInfo*)(forUnmarshaling->pImageBinds + i));
1669         }
1670     }
1671     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
1672     if (forUnmarshaling->signalSemaphoreCount) {
1673         uint64_t* cgen_var_1;
1674         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->signalSemaphoreCount * 8);
1675         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->signalSemaphoreCount * 8);
1676         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
1677             cgen_var_1, (VkSemaphore*)forUnmarshaling->pSignalSemaphores,
1678             forUnmarshaling->signalSemaphoreCount);
1679     }
1680 }
1681 
marshal_VkSparseImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageFormatProperties * forMarshaling)1682 void marshal_VkSparseImageFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1683                                            const VkSparseImageFormatProperties* forMarshaling) {
1684     (void)rootType;
1685     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1686     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageGranularity));
1687     vkStream->write((VkSparseImageFormatFlags*)&forMarshaling->flags,
1688                     sizeof(VkSparseImageFormatFlags));
1689 }
1690 
unmarshal_VkSparseImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseImageFormatProperties * forUnmarshaling)1691 void unmarshal_VkSparseImageFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1692                                              VkSparseImageFormatProperties* forUnmarshaling) {
1693     (void)rootType;
1694     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1695     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageGranularity));
1696     vkStream->read((VkSparseImageFormatFlags*)&forUnmarshaling->flags,
1697                    sizeof(VkSparseImageFormatFlags));
1698 }
1699 
marshal_VkSparseImageMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryRequirements * forMarshaling)1700 void marshal_VkSparseImageMemoryRequirements(VulkanStreamGuest* vkStream, VkStructureType rootType,
1701                                              const VkSparseImageMemoryRequirements* forMarshaling) {
1702     (void)rootType;
1703     marshal_VkSparseImageFormatProperties(
1704         vkStream, rootType, (VkSparseImageFormatProperties*)(&forMarshaling->formatProperties));
1705     vkStream->write((uint32_t*)&forMarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1706     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1707     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1708     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1709 }
1710 
unmarshal_VkSparseImageMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseImageMemoryRequirements * forUnmarshaling)1711 void unmarshal_VkSparseImageMemoryRequirements(VulkanStreamGuest* vkStream,
1712                                                VkStructureType rootType,
1713                                                VkSparseImageMemoryRequirements* forUnmarshaling) {
1714     (void)rootType;
1715     unmarshal_VkSparseImageFormatProperties(
1716         vkStream, rootType, (VkSparseImageFormatProperties*)(&forUnmarshaling->formatProperties));
1717     vkStream->read((uint32_t*)&forUnmarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1718     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1719     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1720     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1721 }
1722 
marshal_VkFenceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFenceCreateInfo * forMarshaling)1723 void marshal_VkFenceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1724                                const VkFenceCreateInfo* forMarshaling) {
1725     (void)rootType;
1726     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1727     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1728         rootType = forMarshaling->sType;
1729     }
1730     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1731     vkStream->write((VkFenceCreateFlags*)&forMarshaling->flags, sizeof(VkFenceCreateFlags));
1732 }
1733 
unmarshal_VkFenceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFenceCreateInfo * forUnmarshaling)1734 void unmarshal_VkFenceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1735                                  VkFenceCreateInfo* forUnmarshaling) {
1736     (void)rootType;
1737     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1739         rootType = forUnmarshaling->sType;
1740     }
1741     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1742     vkStream->read((VkFenceCreateFlags*)&forUnmarshaling->flags, sizeof(VkFenceCreateFlags));
1743 }
1744 
marshal_VkSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreCreateInfo * forMarshaling)1745 void marshal_VkSemaphoreCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1746                                    const VkSemaphoreCreateInfo* forMarshaling) {
1747     (void)rootType;
1748     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1749     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1750         rootType = forMarshaling->sType;
1751     }
1752     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1753     vkStream->write((VkSemaphoreCreateFlags*)&forMarshaling->flags, sizeof(VkSemaphoreCreateFlags));
1754 }
1755 
unmarshal_VkSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSemaphoreCreateInfo * forUnmarshaling)1756 void unmarshal_VkSemaphoreCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1757                                      VkSemaphoreCreateInfo* forUnmarshaling) {
1758     (void)rootType;
1759     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1760     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1761         rootType = forUnmarshaling->sType;
1762     }
1763     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1764     vkStream->read((VkSemaphoreCreateFlags*)&forUnmarshaling->flags,
1765                    sizeof(VkSemaphoreCreateFlags));
1766 }
1767 
marshal_VkEventCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkEventCreateInfo * forMarshaling)1768 void marshal_VkEventCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1769                                const VkEventCreateInfo* forMarshaling) {
1770     (void)rootType;
1771     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1772     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1773         rootType = forMarshaling->sType;
1774     }
1775     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1776     vkStream->write((VkEventCreateFlags*)&forMarshaling->flags, sizeof(VkEventCreateFlags));
1777 }
1778 
unmarshal_VkEventCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkEventCreateInfo * forUnmarshaling)1779 void unmarshal_VkEventCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1780                                  VkEventCreateInfo* forUnmarshaling) {
1781     (void)rootType;
1782     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1783     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1784         rootType = forUnmarshaling->sType;
1785     }
1786     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1787     vkStream->read((VkEventCreateFlags*)&forUnmarshaling->flags, sizeof(VkEventCreateFlags));
1788 }
1789 
marshal_VkQueryPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueryPoolCreateInfo * forMarshaling)1790 void marshal_VkQueryPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1791                                    const VkQueryPoolCreateInfo* forMarshaling) {
1792     (void)rootType;
1793     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1794     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1795         rootType = forMarshaling->sType;
1796     }
1797     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1798     vkStream->write((VkQueryPoolCreateFlags*)&forMarshaling->flags, sizeof(VkQueryPoolCreateFlags));
1799     vkStream->write((VkQueryType*)&forMarshaling->queryType, sizeof(VkQueryType));
1800     vkStream->write((uint32_t*)&forMarshaling->queryCount, sizeof(uint32_t));
1801     vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics,
1802                     sizeof(VkQueryPipelineStatisticFlags));
1803 }
1804 
unmarshal_VkQueryPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkQueryPoolCreateInfo * forUnmarshaling)1805 void unmarshal_VkQueryPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1806                                      VkQueryPoolCreateInfo* forUnmarshaling) {
1807     (void)rootType;
1808     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1809     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1810         rootType = forUnmarshaling->sType;
1811     }
1812     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1813     vkStream->read((VkQueryPoolCreateFlags*)&forUnmarshaling->flags,
1814                    sizeof(VkQueryPoolCreateFlags));
1815     vkStream->read((VkQueryType*)&forUnmarshaling->queryType, sizeof(VkQueryType));
1816     vkStream->read((uint32_t*)&forUnmarshaling->queryCount, sizeof(uint32_t));
1817     vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics,
1818                    sizeof(VkQueryPipelineStatisticFlags));
1819 }
1820 
marshal_VkBufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferCreateInfo * forMarshaling)1821 void marshal_VkBufferCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1822                                 const VkBufferCreateInfo* forMarshaling) {
1823     (void)rootType;
1824     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1825     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1826         rootType = forMarshaling->sType;
1827     }
1828     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1829     vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
1830     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1831     vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
1832     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1833     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1834     // WARNING PTR CHECK
1835     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1836     vkStream->putBe64(cgen_var_0);
1837     if (forMarshaling->pQueueFamilyIndices) {
1838         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
1839                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1840     }
1841 }
1842 
unmarshal_VkBufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferCreateInfo * forUnmarshaling)1843 void unmarshal_VkBufferCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1844                                   VkBufferCreateInfo* forUnmarshaling) {
1845     (void)rootType;
1846     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1847     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1848         rootType = forUnmarshaling->sType;
1849     }
1850     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1851     vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
1852     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1853     vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
1854     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
1855     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1856     // WARNING PTR CHECK
1857     const uint32_t* check_pQueueFamilyIndices;
1858     check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
1859     if (forUnmarshaling->pQueueFamilyIndices) {
1860         if (!(check_pQueueFamilyIndices)) {
1861             fprintf(stderr,
1862                     "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and "
1863                     "host\n");
1864         }
1865         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
1866                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1867     }
1868 }
1869 
marshal_VkBufferViewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferViewCreateInfo * forMarshaling)1870 void marshal_VkBufferViewCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1871                                     const VkBufferViewCreateInfo* forMarshaling) {
1872     (void)rootType;
1873     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1874     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1875         rootType = forMarshaling->sType;
1876     }
1877     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1878     vkStream->write((VkBufferViewCreateFlags*)&forMarshaling->flags,
1879                     sizeof(VkBufferViewCreateFlags));
1880     uint64_t cgen_var_0;
1881     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
1882     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
1883     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1884     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1885     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
1886 }
1887 
unmarshal_VkBufferViewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferViewCreateInfo * forUnmarshaling)1888 void unmarshal_VkBufferViewCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1889                                       VkBufferViewCreateInfo* forUnmarshaling) {
1890     (void)rootType;
1891     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1892     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1893         rootType = forUnmarshaling->sType;
1894     }
1895     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1896     vkStream->read((VkBufferViewCreateFlags*)&forUnmarshaling->flags,
1897                    sizeof(VkBufferViewCreateFlags));
1898     uint64_t cgen_var_0;
1899     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
1900     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
1901                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
1902     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1903     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1904     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
1905 }
1906 
marshal_VkImageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCreateInfo * forMarshaling)1907 void marshal_VkImageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1908                                const VkImageCreateInfo* forMarshaling) {
1909     (void)rootType;
1910     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1911     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1912         rootType = forMarshaling->sType;
1913     }
1914     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
1915     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
1916     vkStream->write((VkImageType*)&forMarshaling->imageType, sizeof(VkImageType));
1917     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1918     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
1919     vkStream->write((uint32_t*)&forMarshaling->mipLevels, sizeof(uint32_t));
1920     vkStream->write((uint32_t*)&forMarshaling->arrayLayers, sizeof(uint32_t));
1921     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
1922     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
1923     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
1924     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1925     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1926     // WARNING PTR CHECK
1927     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1928     vkStream->putBe64(cgen_var_0);
1929     if (forMarshaling->pQueueFamilyIndices) {
1930         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
1931                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1932     }
1933     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
1934 }
1935 
unmarshal_VkImageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageCreateInfo * forUnmarshaling)1936 void unmarshal_VkImageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1937                                  VkImageCreateInfo* forUnmarshaling) {
1938     (void)rootType;
1939     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1940     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1941         rootType = forUnmarshaling->sType;
1942     }
1943     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
1944     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
1945     vkStream->read((VkImageType*)&forUnmarshaling->imageType, sizeof(VkImageType));
1946     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1947     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
1948     vkStream->read((uint32_t*)&forUnmarshaling->mipLevels, sizeof(uint32_t));
1949     vkStream->read((uint32_t*)&forUnmarshaling->arrayLayers, sizeof(uint32_t));
1950     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
1951                    sizeof(VkSampleCountFlagBits));
1952     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
1953     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
1954     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
1955     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1956     // WARNING PTR CHECK
1957     const uint32_t* check_pQueueFamilyIndices;
1958     check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
1959     if (forUnmarshaling->pQueueFamilyIndices) {
1960         if (!(check_pQueueFamilyIndices)) {
1961             fprintf(stderr,
1962                     "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and "
1963                     "host\n");
1964         }
1965         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
1966                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1967     }
1968     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
1969 }
1970 
marshal_VkSubresourceLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceLayout * forMarshaling)1971 void marshal_VkSubresourceLayout(VulkanStreamGuest* vkStream, VkStructureType rootType,
1972                                  const VkSubresourceLayout* forMarshaling) {
1973     (void)rootType;
1974     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1975     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1976     vkStream->write((VkDeviceSize*)&forMarshaling->rowPitch, sizeof(VkDeviceSize));
1977     vkStream->write((VkDeviceSize*)&forMarshaling->arrayPitch, sizeof(VkDeviceSize));
1978     vkStream->write((VkDeviceSize*)&forMarshaling->depthPitch, sizeof(VkDeviceSize));
1979 }
1980 
unmarshal_VkSubresourceLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubresourceLayout * forUnmarshaling)1981 void unmarshal_VkSubresourceLayout(VulkanStreamGuest* vkStream, VkStructureType rootType,
1982                                    VkSubresourceLayout* forUnmarshaling) {
1983     (void)rootType;
1984     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1985     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1986     vkStream->read((VkDeviceSize*)&forUnmarshaling->rowPitch, sizeof(VkDeviceSize));
1987     vkStream->read((VkDeviceSize*)&forUnmarshaling->arrayPitch, sizeof(VkDeviceSize));
1988     vkStream->read((VkDeviceSize*)&forUnmarshaling->depthPitch, sizeof(VkDeviceSize));
1989 }
1990 
marshal_VkComponentMapping(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkComponentMapping * forMarshaling)1991 void marshal_VkComponentMapping(VulkanStreamGuest* vkStream, VkStructureType rootType,
1992                                 const VkComponentMapping* forMarshaling) {
1993     (void)rootType;
1994     vkStream->write((VkComponentSwizzle*)&forMarshaling->r, sizeof(VkComponentSwizzle));
1995     vkStream->write((VkComponentSwizzle*)&forMarshaling->g, sizeof(VkComponentSwizzle));
1996     vkStream->write((VkComponentSwizzle*)&forMarshaling->b, sizeof(VkComponentSwizzle));
1997     vkStream->write((VkComponentSwizzle*)&forMarshaling->a, sizeof(VkComponentSwizzle));
1998 }
1999 
unmarshal_VkComponentMapping(VulkanStreamGuest * vkStream,VkStructureType rootType,VkComponentMapping * forUnmarshaling)2000 void unmarshal_VkComponentMapping(VulkanStreamGuest* vkStream, VkStructureType rootType,
2001                                   VkComponentMapping* forUnmarshaling) {
2002     (void)rootType;
2003     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->r, sizeof(VkComponentSwizzle));
2004     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->g, sizeof(VkComponentSwizzle));
2005     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->b, sizeof(VkComponentSwizzle));
2006     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->a, sizeof(VkComponentSwizzle));
2007 }
2008 
marshal_VkImageViewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageViewCreateInfo * forMarshaling)2009 void marshal_VkImageViewCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2010                                    const VkImageViewCreateInfo* forMarshaling) {
2011     (void)rootType;
2012     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2014         rootType = forMarshaling->sType;
2015     }
2016     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2017     vkStream->write((VkImageViewCreateFlags*)&forMarshaling->flags, sizeof(VkImageViewCreateFlags));
2018     uint64_t cgen_var_0;
2019     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
2020     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
2021     vkStream->write((VkImageViewType*)&forMarshaling->viewType, sizeof(VkImageViewType));
2022     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2023     marshal_VkComponentMapping(vkStream, rootType,
2024                                (VkComponentMapping*)(&forMarshaling->components));
2025     marshal_VkImageSubresourceRange(vkStream, rootType,
2026                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
2027 }
2028 
unmarshal_VkImageViewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageViewCreateInfo * forUnmarshaling)2029 void unmarshal_VkImageViewCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2030                                      VkImageViewCreateInfo* forUnmarshaling) {
2031     (void)rootType;
2032     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2033     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2034         rootType = forUnmarshaling->sType;
2035     }
2036     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2037     vkStream->read((VkImageViewCreateFlags*)&forUnmarshaling->flags,
2038                    sizeof(VkImageViewCreateFlags));
2039     uint64_t cgen_var_0;
2040     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
2041     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
2042                                                       (VkImage*)&forUnmarshaling->image, 1);
2043     vkStream->read((VkImageViewType*)&forUnmarshaling->viewType, sizeof(VkImageViewType));
2044     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
2045     unmarshal_VkComponentMapping(vkStream, rootType,
2046                                  (VkComponentMapping*)(&forUnmarshaling->components));
2047     unmarshal_VkImageSubresourceRange(
2048         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
2049 }
2050 
marshal_VkShaderModuleCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkShaderModuleCreateInfo * forMarshaling)2051 void marshal_VkShaderModuleCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2052                                       const VkShaderModuleCreateInfo* forMarshaling) {
2053     (void)rootType;
2054     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2055     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2056         rootType = forMarshaling->sType;
2057     }
2058     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2059     vkStream->write((VkShaderModuleCreateFlags*)&forMarshaling->flags,
2060                     sizeof(VkShaderModuleCreateFlags));
2061     uint64_t cgen_var_0 = (uint64_t)forMarshaling->codeSize;
2062     vkStream->putBe64(cgen_var_0);
2063     vkStream->write((const uint32_t*)forMarshaling->pCode,
2064                     (forMarshaling->codeSize / 4) * sizeof(const uint32_t));
2065 }
2066 
unmarshal_VkShaderModuleCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkShaderModuleCreateInfo * forUnmarshaling)2067 void unmarshal_VkShaderModuleCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2068                                         VkShaderModuleCreateInfo* forUnmarshaling) {
2069     (void)rootType;
2070     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2071     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2072         rootType = forUnmarshaling->sType;
2073     }
2074     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2075     vkStream->read((VkShaderModuleCreateFlags*)&forUnmarshaling->flags,
2076                    sizeof(VkShaderModuleCreateFlags));
2077     forUnmarshaling->codeSize = (size_t)vkStream->getBe64();
2078     vkStream->read((uint32_t*)forUnmarshaling->pCode,
2079                    (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t));
2080 }
2081 
marshal_VkPipelineCacheCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCacheCreateInfo * forMarshaling)2082 void marshal_VkPipelineCacheCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2083                                        const VkPipelineCacheCreateInfo* forMarshaling) {
2084     (void)rootType;
2085     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2086     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2087         rootType = forMarshaling->sType;
2088     }
2089     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2090     vkStream->write((VkPipelineCacheCreateFlags*)&forMarshaling->flags,
2091                     sizeof(VkPipelineCacheCreateFlags));
2092     uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
2093     vkStream->putBe64(cgen_var_0);
2094     vkStream->write((const void*)forMarshaling->pInitialData,
2095                     forMarshaling->initialDataSize * sizeof(const uint8_t));
2096 }
2097 
unmarshal_VkPipelineCacheCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineCacheCreateInfo * forUnmarshaling)2098 void unmarshal_VkPipelineCacheCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2099                                          VkPipelineCacheCreateInfo* forUnmarshaling) {
2100     (void)rootType;
2101     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2102     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2103         rootType = forUnmarshaling->sType;
2104     }
2105     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2106     vkStream->read((VkPipelineCacheCreateFlags*)&forUnmarshaling->flags,
2107                    sizeof(VkPipelineCacheCreateFlags));
2108     forUnmarshaling->initialDataSize = (size_t)vkStream->getBe64();
2109     vkStream->read((void*)forUnmarshaling->pInitialData,
2110                    forUnmarshaling->initialDataSize * sizeof(const uint8_t));
2111 }
2112 
marshal_VkSpecializationMapEntry(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSpecializationMapEntry * forMarshaling)2113 void marshal_VkSpecializationMapEntry(VulkanStreamGuest* vkStream, VkStructureType rootType,
2114                                       const VkSpecializationMapEntry* forMarshaling) {
2115     (void)rootType;
2116     vkStream->write((uint32_t*)&forMarshaling->constantID, sizeof(uint32_t));
2117     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2118     uint64_t cgen_var_0 = (uint64_t)forMarshaling->size;
2119     vkStream->putBe64(cgen_var_0);
2120 }
2121 
unmarshal_VkSpecializationMapEntry(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSpecializationMapEntry * forUnmarshaling)2122 void unmarshal_VkSpecializationMapEntry(VulkanStreamGuest* vkStream, VkStructureType rootType,
2123                                         VkSpecializationMapEntry* forUnmarshaling) {
2124     (void)rootType;
2125     vkStream->read((uint32_t*)&forUnmarshaling->constantID, sizeof(uint32_t));
2126     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
2127     forUnmarshaling->size = (size_t)vkStream->getBe64();
2128 }
2129 
marshal_VkSpecializationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSpecializationInfo * forMarshaling)2130 void marshal_VkSpecializationInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2131                                   const VkSpecializationInfo* forMarshaling) {
2132     (void)rootType;
2133     vkStream->write((uint32_t*)&forMarshaling->mapEntryCount, sizeof(uint32_t));
2134     if (forMarshaling) {
2135         for (uint32_t i = 0; i < (uint32_t)forMarshaling->mapEntryCount; ++i) {
2136             marshal_VkSpecializationMapEntry(
2137                 vkStream, rootType,
2138                 (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i));
2139         }
2140     }
2141     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
2142     vkStream->putBe64(cgen_var_0);
2143     vkStream->write((const void*)forMarshaling->pData,
2144                     forMarshaling->dataSize * sizeof(const uint8_t));
2145 }
2146 
unmarshal_VkSpecializationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSpecializationInfo * forUnmarshaling)2147 void unmarshal_VkSpecializationInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2148                                     VkSpecializationInfo* forUnmarshaling) {
2149     (void)rootType;
2150     vkStream->read((uint32_t*)&forUnmarshaling->mapEntryCount, sizeof(uint32_t));
2151     if (forUnmarshaling) {
2152         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mapEntryCount; ++i) {
2153             unmarshal_VkSpecializationMapEntry(
2154                 vkStream, rootType, (VkSpecializationMapEntry*)(forUnmarshaling->pMapEntries + i));
2155         }
2156     }
2157     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
2158     vkStream->read((void*)forUnmarshaling->pData,
2159                    forUnmarshaling->dataSize * sizeof(const uint8_t));
2160 }
2161 
marshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineShaderStageCreateInfo * forMarshaling)2162 void marshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2163                                              const VkPipelineShaderStageCreateInfo* forMarshaling) {
2164     (void)rootType;
2165     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2166     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2167         rootType = forMarshaling->sType;
2168     }
2169     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2170     vkStream->write((VkPipelineShaderStageCreateFlags*)&forMarshaling->flags,
2171                     sizeof(VkPipelineShaderStageCreateFlags));
2172     vkStream->write((VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
2173     uint64_t cgen_var_0;
2174     vkStream->handleMapping()->mapHandles_VkShaderModule_u64(&forMarshaling->module, &cgen_var_0,
2175                                                              1);
2176     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
2177     vkStream->putString(forMarshaling->pName);
2178     // WARNING PTR CHECK
2179     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
2180     vkStream->putBe64(cgen_var_1);
2181     if (forMarshaling->pSpecializationInfo) {
2182         marshal_VkSpecializationInfo(
2183             vkStream, rootType, (const VkSpecializationInfo*)(forMarshaling->pSpecializationInfo));
2184     }
2185 }
2186 
unmarshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineShaderStageCreateInfo * forUnmarshaling)2187 void unmarshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest* vkStream,
2188                                                VkStructureType rootType,
2189                                                VkPipelineShaderStageCreateInfo* forUnmarshaling) {
2190     (void)rootType;
2191     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2193         rootType = forUnmarshaling->sType;
2194     }
2195     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2196     vkStream->read((VkPipelineShaderStageCreateFlags*)&forUnmarshaling->flags,
2197                    sizeof(VkPipelineShaderStageCreateFlags));
2198     vkStream->read((VkShaderStageFlagBits*)&forUnmarshaling->stage, sizeof(VkShaderStageFlagBits));
2199     uint64_t cgen_var_0;
2200     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
2201     vkStream->handleMapping()->mapHandles_u64_VkShaderModule(
2202         &cgen_var_0, (VkShaderModule*)&forUnmarshaling->module, 1);
2203     vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
2204     // WARNING PTR CHECK
2205     const VkSpecializationInfo* check_pSpecializationInfo;
2206     check_pSpecializationInfo = (const VkSpecializationInfo*)(uintptr_t)vkStream->getBe64();
2207     if (forUnmarshaling->pSpecializationInfo) {
2208         if (!(check_pSpecializationInfo)) {
2209             fprintf(stderr,
2210                     "fatal: forUnmarshaling->pSpecializationInfo inconsistent between guest and "
2211                     "host\n");
2212         }
2213         unmarshal_VkSpecializationInfo(
2214             vkStream, rootType, (VkSpecializationInfo*)(forUnmarshaling->pSpecializationInfo));
2215     }
2216 }
2217 
marshal_VkComputePipelineCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkComputePipelineCreateInfo * forMarshaling)2218 void marshal_VkComputePipelineCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2219                                          const VkComputePipelineCreateInfo* forMarshaling) {
2220     (void)rootType;
2221     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2222     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2223         rootType = forMarshaling->sType;
2224     }
2225     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2226     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2227     marshal_VkPipelineShaderStageCreateInfo(
2228         vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage));
2229     uint64_t cgen_var_0;
2230     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0,
2231                                                                1);
2232     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
2233     uint64_t cgen_var_1;
2234     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle,
2235                                                          &cgen_var_1, 1);
2236     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
2237     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2238 }
2239 
unmarshal_VkComputePipelineCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkComputePipelineCreateInfo * forUnmarshaling)2240 void unmarshal_VkComputePipelineCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2241                                            VkComputePipelineCreateInfo* forUnmarshaling) {
2242     (void)rootType;
2243     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2244     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2245         rootType = forUnmarshaling->sType;
2246     }
2247     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2248     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
2249     unmarshal_VkPipelineShaderStageCreateInfo(
2250         vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(&forUnmarshaling->stage));
2251     uint64_t cgen_var_0;
2252     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
2253     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
2254         &cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
2255     uint64_t cgen_var_1;
2256     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
2257     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
2258         &cgen_var_1, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
2259     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
2260 }
2261 
marshal_VkVertexInputBindingDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkVertexInputBindingDescription * forMarshaling)2262 void marshal_VkVertexInputBindingDescription(VulkanStreamGuest* vkStream, VkStructureType rootType,
2263                                              const VkVertexInputBindingDescription* forMarshaling) {
2264     (void)rootType;
2265     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
2266     vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
2267     vkStream->write((VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
2268 }
2269 
unmarshal_VkVertexInputBindingDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,VkVertexInputBindingDescription * forUnmarshaling)2270 void unmarshal_VkVertexInputBindingDescription(VulkanStreamGuest* vkStream,
2271                                                VkStructureType rootType,
2272                                                VkVertexInputBindingDescription* forUnmarshaling) {
2273     (void)rootType;
2274     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
2275     vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
2276     vkStream->read((VkVertexInputRate*)&forUnmarshaling->inputRate, sizeof(VkVertexInputRate));
2277 }
2278 
marshal_VkVertexInputAttributeDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkVertexInputAttributeDescription * forMarshaling)2279 void marshal_VkVertexInputAttributeDescription(
2280     VulkanStreamGuest* vkStream, VkStructureType rootType,
2281     const VkVertexInputAttributeDescription* forMarshaling) {
2282     (void)rootType;
2283     vkStream->write((uint32_t*)&forMarshaling->location, sizeof(uint32_t));
2284     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
2285     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2286     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2287 }
2288 
unmarshal_VkVertexInputAttributeDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,VkVertexInputAttributeDescription * forUnmarshaling)2289 void unmarshal_VkVertexInputAttributeDescription(
2290     VulkanStreamGuest* vkStream, VkStructureType rootType,
2291     VkVertexInputAttributeDescription* forUnmarshaling) {
2292     (void)rootType;
2293     vkStream->read((uint32_t*)&forUnmarshaling->location, sizeof(uint32_t));
2294     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
2295     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
2296     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
2297 }
2298 
marshal_VkPipelineVertexInputStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineVertexInputStateCreateInfo * forMarshaling)2299 void marshal_VkPipelineVertexInputStateCreateInfo(
2300     VulkanStreamGuest* vkStream, VkStructureType rootType,
2301     const VkPipelineVertexInputStateCreateInfo* forMarshaling) {
2302     (void)rootType;
2303     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2304     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2305         rootType = forMarshaling->sType;
2306     }
2307     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2308     vkStream->write((VkPipelineVertexInputStateCreateFlags*)&forMarshaling->flags,
2309                     sizeof(VkPipelineVertexInputStateCreateFlags));
2310     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
2311     if (forMarshaling) {
2312         for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDescriptionCount; ++i) {
2313             marshal_VkVertexInputBindingDescription(
2314                 vkStream, rootType,
2315                 (const VkVertexInputBindingDescription*)(forMarshaling->pVertexBindingDescriptions +
2316                                                          i));
2317         }
2318     }
2319     vkStream->write((uint32_t*)&forMarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
2320     if (forMarshaling) {
2321         for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexAttributeDescriptionCount; ++i) {
2322             marshal_VkVertexInputAttributeDescription(
2323                 vkStream, rootType,
2324                 (const VkVertexInputAttributeDescription*)(forMarshaling
2325                                                                ->pVertexAttributeDescriptions +
2326                                                            i));
2327         }
2328     }
2329 }
2330 
unmarshal_VkPipelineVertexInputStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineVertexInputStateCreateInfo * forUnmarshaling)2331 void unmarshal_VkPipelineVertexInputStateCreateInfo(
2332     VulkanStreamGuest* vkStream, VkStructureType rootType,
2333     VkPipelineVertexInputStateCreateInfo* forUnmarshaling) {
2334     (void)rootType;
2335     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2336     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2337         rootType = forUnmarshaling->sType;
2338     }
2339     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2340     vkStream->read((VkPipelineVertexInputStateCreateFlags*)&forUnmarshaling->flags,
2341                    sizeof(VkPipelineVertexInputStateCreateFlags));
2342     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
2343     if (forUnmarshaling) {
2344         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDescriptionCount; ++i) {
2345             unmarshal_VkVertexInputBindingDescription(
2346                 vkStream, rootType,
2347                 (VkVertexInputBindingDescription*)(forUnmarshaling->pVertexBindingDescriptions +
2348                                                    i));
2349         }
2350     }
2351     vkStream->read((uint32_t*)&forUnmarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
2352     if (forUnmarshaling) {
2353         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexAttributeDescriptionCount; ++i) {
2354             unmarshal_VkVertexInputAttributeDescription(
2355                 vkStream, rootType,
2356                 (VkVertexInputAttributeDescription*)(forUnmarshaling->pVertexAttributeDescriptions +
2357                                                      i));
2358         }
2359     }
2360 }
2361 
marshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineInputAssemblyStateCreateInfo * forMarshaling)2362 void marshal_VkPipelineInputAssemblyStateCreateInfo(
2363     VulkanStreamGuest* vkStream, VkStructureType rootType,
2364     const VkPipelineInputAssemblyStateCreateInfo* forMarshaling) {
2365     (void)rootType;
2366     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2367     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2368         rootType = forMarshaling->sType;
2369     }
2370     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2371     vkStream->write((VkPipelineInputAssemblyStateCreateFlags*)&forMarshaling->flags,
2372                     sizeof(VkPipelineInputAssemblyStateCreateFlags));
2373     vkStream->write((VkPrimitiveTopology*)&forMarshaling->topology, sizeof(VkPrimitiveTopology));
2374     vkStream->write((VkBool32*)&forMarshaling->primitiveRestartEnable, sizeof(VkBool32));
2375 }
2376 
unmarshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineInputAssemblyStateCreateInfo * forUnmarshaling)2377 void unmarshal_VkPipelineInputAssemblyStateCreateInfo(
2378     VulkanStreamGuest* vkStream, VkStructureType rootType,
2379     VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling) {
2380     (void)rootType;
2381     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2382     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2383         rootType = forUnmarshaling->sType;
2384     }
2385     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2386     vkStream->read((VkPipelineInputAssemblyStateCreateFlags*)&forUnmarshaling->flags,
2387                    sizeof(VkPipelineInputAssemblyStateCreateFlags));
2388     vkStream->read((VkPrimitiveTopology*)&forUnmarshaling->topology, sizeof(VkPrimitiveTopology));
2389     vkStream->read((VkBool32*)&forUnmarshaling->primitiveRestartEnable, sizeof(VkBool32));
2390 }
2391 
marshal_VkPipelineTessellationStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineTessellationStateCreateInfo * forMarshaling)2392 void marshal_VkPipelineTessellationStateCreateInfo(
2393     VulkanStreamGuest* vkStream, VkStructureType rootType,
2394     const VkPipelineTessellationStateCreateInfo* forMarshaling) {
2395     (void)rootType;
2396     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2397     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2398         rootType = forMarshaling->sType;
2399     }
2400     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2401     vkStream->write((VkPipelineTessellationStateCreateFlags*)&forMarshaling->flags,
2402                     sizeof(VkPipelineTessellationStateCreateFlags));
2403     vkStream->write((uint32_t*)&forMarshaling->patchControlPoints, sizeof(uint32_t));
2404 }
2405 
unmarshal_VkPipelineTessellationStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineTessellationStateCreateInfo * forUnmarshaling)2406 void unmarshal_VkPipelineTessellationStateCreateInfo(
2407     VulkanStreamGuest* vkStream, VkStructureType rootType,
2408     VkPipelineTessellationStateCreateInfo* forUnmarshaling) {
2409     (void)rootType;
2410     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2411     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2412         rootType = forUnmarshaling->sType;
2413     }
2414     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2415     vkStream->read((VkPipelineTessellationStateCreateFlags*)&forUnmarshaling->flags,
2416                    sizeof(VkPipelineTessellationStateCreateFlags));
2417     vkStream->read((uint32_t*)&forUnmarshaling->patchControlPoints, sizeof(uint32_t));
2418 }
2419 
marshal_VkViewport(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkViewport * forMarshaling)2420 void marshal_VkViewport(VulkanStreamGuest* vkStream, VkStructureType rootType,
2421                         const VkViewport* forMarshaling) {
2422     (void)rootType;
2423     vkStream->write((float*)&forMarshaling->x, sizeof(float));
2424     vkStream->write((float*)&forMarshaling->y, sizeof(float));
2425     vkStream->write((float*)&forMarshaling->width, sizeof(float));
2426     vkStream->write((float*)&forMarshaling->height, sizeof(float));
2427     vkStream->write((float*)&forMarshaling->minDepth, sizeof(float));
2428     vkStream->write((float*)&forMarshaling->maxDepth, sizeof(float));
2429 }
2430 
unmarshal_VkViewport(VulkanStreamGuest * vkStream,VkStructureType rootType,VkViewport * forUnmarshaling)2431 void unmarshal_VkViewport(VulkanStreamGuest* vkStream, VkStructureType rootType,
2432                           VkViewport* forUnmarshaling) {
2433     (void)rootType;
2434     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
2435     vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
2436     vkStream->read((float*)&forUnmarshaling->width, sizeof(float));
2437     vkStream->read((float*)&forUnmarshaling->height, sizeof(float));
2438     vkStream->read((float*)&forUnmarshaling->minDepth, sizeof(float));
2439     vkStream->read((float*)&forUnmarshaling->maxDepth, sizeof(float));
2440 }
2441 
marshal_VkPipelineViewportStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineViewportStateCreateInfo * forMarshaling)2442 void marshal_VkPipelineViewportStateCreateInfo(
2443     VulkanStreamGuest* vkStream, VkStructureType rootType,
2444     const VkPipelineViewportStateCreateInfo* forMarshaling) {
2445     (void)rootType;
2446     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2447     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2448         rootType = forMarshaling->sType;
2449     }
2450     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2451     vkStream->write((VkPipelineViewportStateCreateFlags*)&forMarshaling->flags,
2452                     sizeof(VkPipelineViewportStateCreateFlags));
2453     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
2454     // WARNING PTR CHECK
2455     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
2456     vkStream->putBe64(cgen_var_0);
2457     if (forMarshaling->pViewports) {
2458         if (forMarshaling) {
2459             for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i) {
2460                 marshal_VkViewport(vkStream, rootType,
2461                                    (const VkViewport*)(forMarshaling->pViewports + i));
2462             }
2463         }
2464     }
2465     vkStream->write((uint32_t*)&forMarshaling->scissorCount, sizeof(uint32_t));
2466     // WARNING PTR CHECK
2467     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
2468     vkStream->putBe64(cgen_var_1);
2469     if (forMarshaling->pScissors) {
2470         if (forMarshaling) {
2471             for (uint32_t i = 0; i < (uint32_t)forMarshaling->scissorCount; ++i) {
2472                 marshal_VkRect2D(vkStream, rootType,
2473                                  (const VkRect2D*)(forMarshaling->pScissors + i));
2474             }
2475         }
2476     }
2477 }
2478 
unmarshal_VkPipelineViewportStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineViewportStateCreateInfo * forUnmarshaling)2479 void unmarshal_VkPipelineViewportStateCreateInfo(
2480     VulkanStreamGuest* vkStream, VkStructureType rootType,
2481     VkPipelineViewportStateCreateInfo* forUnmarshaling) {
2482     (void)rootType;
2483     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2484     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2485         rootType = forUnmarshaling->sType;
2486     }
2487     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2488     vkStream->read((VkPipelineViewportStateCreateFlags*)&forUnmarshaling->flags,
2489                    sizeof(VkPipelineViewportStateCreateFlags));
2490     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
2491     // WARNING PTR CHECK
2492     const VkViewport* check_pViewports;
2493     check_pViewports = (const VkViewport*)(uintptr_t)vkStream->getBe64();
2494     if (forUnmarshaling->pViewports) {
2495         if (!(check_pViewports)) {
2496             fprintf(stderr,
2497                     "fatal: forUnmarshaling->pViewports inconsistent between guest and host\n");
2498         }
2499         if (forUnmarshaling) {
2500             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i) {
2501                 unmarshal_VkViewport(vkStream, rootType,
2502                                      (VkViewport*)(forUnmarshaling->pViewports + i));
2503             }
2504         }
2505     }
2506     vkStream->read((uint32_t*)&forUnmarshaling->scissorCount, sizeof(uint32_t));
2507     // WARNING PTR CHECK
2508     const VkRect2D* check_pScissors;
2509     check_pScissors = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
2510     if (forUnmarshaling->pScissors) {
2511         if (!(check_pScissors)) {
2512             fprintf(stderr,
2513                     "fatal: forUnmarshaling->pScissors inconsistent between guest and host\n");
2514         }
2515         if (forUnmarshaling) {
2516             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->scissorCount; ++i) {
2517                 unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(forUnmarshaling->pScissors + i));
2518             }
2519         }
2520     }
2521 }
2522 
marshal_VkPipelineRasterizationStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateCreateInfo * forMarshaling)2523 void marshal_VkPipelineRasterizationStateCreateInfo(
2524     VulkanStreamGuest* vkStream, VkStructureType rootType,
2525     const VkPipelineRasterizationStateCreateInfo* forMarshaling) {
2526     (void)rootType;
2527     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2528     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2529         rootType = forMarshaling->sType;
2530     }
2531     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2532     vkStream->write((VkPipelineRasterizationStateCreateFlags*)&forMarshaling->flags,
2533                     sizeof(VkPipelineRasterizationStateCreateFlags));
2534     vkStream->write((VkBool32*)&forMarshaling->depthClampEnable, sizeof(VkBool32));
2535     vkStream->write((VkBool32*)&forMarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2536     vkStream->write((VkPolygonMode*)&forMarshaling->polygonMode, sizeof(VkPolygonMode));
2537     vkStream->write((VkCullModeFlags*)&forMarshaling->cullMode, sizeof(VkCullModeFlags));
2538     vkStream->write((VkFrontFace*)&forMarshaling->frontFace, sizeof(VkFrontFace));
2539     vkStream->write((VkBool32*)&forMarshaling->depthBiasEnable, sizeof(VkBool32));
2540     vkStream->write((float*)&forMarshaling->depthBiasConstantFactor, sizeof(float));
2541     vkStream->write((float*)&forMarshaling->depthBiasClamp, sizeof(float));
2542     vkStream->write((float*)&forMarshaling->depthBiasSlopeFactor, sizeof(float));
2543     vkStream->write((float*)&forMarshaling->lineWidth, sizeof(float));
2544 }
2545 
unmarshal_VkPipelineRasterizationStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationStateCreateInfo * forUnmarshaling)2546 void unmarshal_VkPipelineRasterizationStateCreateInfo(
2547     VulkanStreamGuest* vkStream, VkStructureType rootType,
2548     VkPipelineRasterizationStateCreateInfo* forUnmarshaling) {
2549     (void)rootType;
2550     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2551     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2552         rootType = forUnmarshaling->sType;
2553     }
2554     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2555     vkStream->read((VkPipelineRasterizationStateCreateFlags*)&forUnmarshaling->flags,
2556                    sizeof(VkPipelineRasterizationStateCreateFlags));
2557     vkStream->read((VkBool32*)&forUnmarshaling->depthClampEnable, sizeof(VkBool32));
2558     vkStream->read((VkBool32*)&forUnmarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2559     vkStream->read((VkPolygonMode*)&forUnmarshaling->polygonMode, sizeof(VkPolygonMode));
2560     vkStream->read((VkCullModeFlags*)&forUnmarshaling->cullMode, sizeof(VkCullModeFlags));
2561     vkStream->read((VkFrontFace*)&forUnmarshaling->frontFace, sizeof(VkFrontFace));
2562     vkStream->read((VkBool32*)&forUnmarshaling->depthBiasEnable, sizeof(VkBool32));
2563     vkStream->read((float*)&forUnmarshaling->depthBiasConstantFactor, sizeof(float));
2564     vkStream->read((float*)&forUnmarshaling->depthBiasClamp, sizeof(float));
2565     vkStream->read((float*)&forUnmarshaling->depthBiasSlopeFactor, sizeof(float));
2566     vkStream->read((float*)&forUnmarshaling->lineWidth, sizeof(float));
2567 }
2568 
marshal_VkPipelineMultisampleStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineMultisampleStateCreateInfo * forMarshaling)2569 void marshal_VkPipelineMultisampleStateCreateInfo(
2570     VulkanStreamGuest* vkStream, VkStructureType rootType,
2571     const VkPipelineMultisampleStateCreateInfo* forMarshaling) {
2572     (void)rootType;
2573     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2574     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2575         rootType = forMarshaling->sType;
2576     }
2577     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2578     vkStream->write((VkPipelineMultisampleStateCreateFlags*)&forMarshaling->flags,
2579                     sizeof(VkPipelineMultisampleStateCreateFlags));
2580     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
2581                     sizeof(VkSampleCountFlagBits));
2582     vkStream->write((VkBool32*)&forMarshaling->sampleShadingEnable, sizeof(VkBool32));
2583     vkStream->write((float*)&forMarshaling->minSampleShading, sizeof(float));
2584     // WARNING PTR CHECK
2585     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
2586     vkStream->putBe64(cgen_var_0);
2587     if (forMarshaling->pSampleMask) {
2588         vkStream->write(
2589             (const VkSampleMask*)forMarshaling->pSampleMask,
2590             (((forMarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2591     }
2592     vkStream->write((VkBool32*)&forMarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2593     vkStream->write((VkBool32*)&forMarshaling->alphaToOneEnable, sizeof(VkBool32));
2594 }
2595 
unmarshal_VkPipelineMultisampleStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineMultisampleStateCreateInfo * forUnmarshaling)2596 void unmarshal_VkPipelineMultisampleStateCreateInfo(
2597     VulkanStreamGuest* vkStream, VkStructureType rootType,
2598     VkPipelineMultisampleStateCreateInfo* forUnmarshaling) {
2599     (void)rootType;
2600     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2601     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2602         rootType = forUnmarshaling->sType;
2603     }
2604     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2605     vkStream->read((VkPipelineMultisampleStateCreateFlags*)&forUnmarshaling->flags,
2606                    sizeof(VkPipelineMultisampleStateCreateFlags));
2607     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples,
2608                    sizeof(VkSampleCountFlagBits));
2609     vkStream->read((VkBool32*)&forUnmarshaling->sampleShadingEnable, sizeof(VkBool32));
2610     vkStream->read((float*)&forUnmarshaling->minSampleShading, sizeof(float));
2611     // WARNING PTR CHECK
2612     const VkSampleMask* check_pSampleMask;
2613     check_pSampleMask = (const VkSampleMask*)(uintptr_t)vkStream->getBe64();
2614     if (forUnmarshaling->pSampleMask) {
2615         if (!(check_pSampleMask)) {
2616             fprintf(stderr,
2617                     "fatal: forUnmarshaling->pSampleMask inconsistent between guest and host\n");
2618         }
2619         vkStream->read(
2620             (VkSampleMask*)forUnmarshaling->pSampleMask,
2621             (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2622     }
2623     vkStream->read((VkBool32*)&forUnmarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2624     vkStream->read((VkBool32*)&forUnmarshaling->alphaToOneEnable, sizeof(VkBool32));
2625 }
2626 
marshal_VkStencilOpState(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkStencilOpState * forMarshaling)2627 void marshal_VkStencilOpState(VulkanStreamGuest* vkStream, VkStructureType rootType,
2628                               const VkStencilOpState* forMarshaling) {
2629     (void)rootType;
2630     vkStream->write((VkStencilOp*)&forMarshaling->failOp, sizeof(VkStencilOp));
2631     vkStream->write((VkStencilOp*)&forMarshaling->passOp, sizeof(VkStencilOp));
2632     vkStream->write((VkStencilOp*)&forMarshaling->depthFailOp, sizeof(VkStencilOp));
2633     vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
2634     vkStream->write((uint32_t*)&forMarshaling->compareMask, sizeof(uint32_t));
2635     vkStream->write((uint32_t*)&forMarshaling->writeMask, sizeof(uint32_t));
2636     vkStream->write((uint32_t*)&forMarshaling->reference, sizeof(uint32_t));
2637 }
2638 
unmarshal_VkStencilOpState(VulkanStreamGuest * vkStream,VkStructureType rootType,VkStencilOpState * forUnmarshaling)2639 void unmarshal_VkStencilOpState(VulkanStreamGuest* vkStream, VkStructureType rootType,
2640                                 VkStencilOpState* forUnmarshaling) {
2641     (void)rootType;
2642     vkStream->read((VkStencilOp*)&forUnmarshaling->failOp, sizeof(VkStencilOp));
2643     vkStream->read((VkStencilOp*)&forUnmarshaling->passOp, sizeof(VkStencilOp));
2644     vkStream->read((VkStencilOp*)&forUnmarshaling->depthFailOp, sizeof(VkStencilOp));
2645     vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
2646     vkStream->read((uint32_t*)&forUnmarshaling->compareMask, sizeof(uint32_t));
2647     vkStream->read((uint32_t*)&forUnmarshaling->writeMask, sizeof(uint32_t));
2648     vkStream->read((uint32_t*)&forUnmarshaling->reference, sizeof(uint32_t));
2649 }
2650 
marshal_VkPipelineDepthStencilStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineDepthStencilStateCreateInfo * forMarshaling)2651 void marshal_VkPipelineDepthStencilStateCreateInfo(
2652     VulkanStreamGuest* vkStream, VkStructureType rootType,
2653     const VkPipelineDepthStencilStateCreateInfo* forMarshaling) {
2654     (void)rootType;
2655     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2656     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2657         rootType = forMarshaling->sType;
2658     }
2659     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2660     vkStream->write((VkPipelineDepthStencilStateCreateFlags*)&forMarshaling->flags,
2661                     sizeof(VkPipelineDepthStencilStateCreateFlags));
2662     vkStream->write((VkBool32*)&forMarshaling->depthTestEnable, sizeof(VkBool32));
2663     vkStream->write((VkBool32*)&forMarshaling->depthWriteEnable, sizeof(VkBool32));
2664     vkStream->write((VkCompareOp*)&forMarshaling->depthCompareOp, sizeof(VkCompareOp));
2665     vkStream->write((VkBool32*)&forMarshaling->depthBoundsTestEnable, sizeof(VkBool32));
2666     vkStream->write((VkBool32*)&forMarshaling->stencilTestEnable, sizeof(VkBool32));
2667     marshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forMarshaling->front));
2668     marshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forMarshaling->back));
2669     vkStream->write((float*)&forMarshaling->minDepthBounds, sizeof(float));
2670     vkStream->write((float*)&forMarshaling->maxDepthBounds, sizeof(float));
2671 }
2672 
unmarshal_VkPipelineDepthStencilStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineDepthStencilStateCreateInfo * forUnmarshaling)2673 void unmarshal_VkPipelineDepthStencilStateCreateInfo(
2674     VulkanStreamGuest* vkStream, VkStructureType rootType,
2675     VkPipelineDepthStencilStateCreateInfo* forUnmarshaling) {
2676     (void)rootType;
2677     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2678     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2679         rootType = forUnmarshaling->sType;
2680     }
2681     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2682     vkStream->read((VkPipelineDepthStencilStateCreateFlags*)&forUnmarshaling->flags,
2683                    sizeof(VkPipelineDepthStencilStateCreateFlags));
2684     vkStream->read((VkBool32*)&forUnmarshaling->depthTestEnable, sizeof(VkBool32));
2685     vkStream->read((VkBool32*)&forUnmarshaling->depthWriteEnable, sizeof(VkBool32));
2686     vkStream->read((VkCompareOp*)&forUnmarshaling->depthCompareOp, sizeof(VkCompareOp));
2687     vkStream->read((VkBool32*)&forUnmarshaling->depthBoundsTestEnable, sizeof(VkBool32));
2688     vkStream->read((VkBool32*)&forUnmarshaling->stencilTestEnable, sizeof(VkBool32));
2689     unmarshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forUnmarshaling->front));
2690     unmarshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forUnmarshaling->back));
2691     vkStream->read((float*)&forUnmarshaling->minDepthBounds, sizeof(float));
2692     vkStream->read((float*)&forUnmarshaling->maxDepthBounds, sizeof(float));
2693 }
2694 
marshal_VkPipelineColorBlendAttachmentState(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineColorBlendAttachmentState * forMarshaling)2695 void marshal_VkPipelineColorBlendAttachmentState(
2696     VulkanStreamGuest* vkStream, VkStructureType rootType,
2697     const VkPipelineColorBlendAttachmentState* forMarshaling) {
2698     (void)rootType;
2699     vkStream->write((VkBool32*)&forMarshaling->blendEnable, sizeof(VkBool32));
2700     vkStream->write((VkBlendFactor*)&forMarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
2701     vkStream->write((VkBlendFactor*)&forMarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
2702     vkStream->write((VkBlendOp*)&forMarshaling->colorBlendOp, sizeof(VkBlendOp));
2703     vkStream->write((VkBlendFactor*)&forMarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
2704     vkStream->write((VkBlendFactor*)&forMarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
2705     vkStream->write((VkBlendOp*)&forMarshaling->alphaBlendOp, sizeof(VkBlendOp));
2706     vkStream->write((VkColorComponentFlags*)&forMarshaling->colorWriteMask,
2707                     sizeof(VkColorComponentFlags));
2708 }
2709 
unmarshal_VkPipelineColorBlendAttachmentState(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineColorBlendAttachmentState * forUnmarshaling)2710 void unmarshal_VkPipelineColorBlendAttachmentState(
2711     VulkanStreamGuest* vkStream, VkStructureType rootType,
2712     VkPipelineColorBlendAttachmentState* forUnmarshaling) {
2713     (void)rootType;
2714     vkStream->read((VkBool32*)&forUnmarshaling->blendEnable, sizeof(VkBool32));
2715     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
2716     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
2717     vkStream->read((VkBlendOp*)&forUnmarshaling->colorBlendOp, sizeof(VkBlendOp));
2718     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
2719     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
2720     vkStream->read((VkBlendOp*)&forUnmarshaling->alphaBlendOp, sizeof(VkBlendOp));
2721     vkStream->read((VkColorComponentFlags*)&forUnmarshaling->colorWriteMask,
2722                    sizeof(VkColorComponentFlags));
2723 }
2724 
marshal_VkPipelineColorBlendStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineColorBlendStateCreateInfo * forMarshaling)2725 void marshal_VkPipelineColorBlendStateCreateInfo(
2726     VulkanStreamGuest* vkStream, VkStructureType rootType,
2727     const VkPipelineColorBlendStateCreateInfo* forMarshaling) {
2728     (void)rootType;
2729     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2730     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2731         rootType = forMarshaling->sType;
2732     }
2733     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2734     vkStream->write((VkPipelineColorBlendStateCreateFlags*)&forMarshaling->flags,
2735                     sizeof(VkPipelineColorBlendStateCreateFlags));
2736     vkStream->write((VkBool32*)&forMarshaling->logicOpEnable, sizeof(VkBool32));
2737     vkStream->write((VkLogicOp*)&forMarshaling->logicOp, sizeof(VkLogicOp));
2738     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
2739     if (forMarshaling) {
2740         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
2741             marshal_VkPipelineColorBlendAttachmentState(
2742                 vkStream, rootType,
2743                 (const VkPipelineColorBlendAttachmentState*)(forMarshaling->pAttachments + i));
2744         }
2745     }
2746     vkStream->write((float*)forMarshaling->blendConstants, 4 * sizeof(float));
2747 }
2748 
unmarshal_VkPipelineColorBlendStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineColorBlendStateCreateInfo * forUnmarshaling)2749 void unmarshal_VkPipelineColorBlendStateCreateInfo(
2750     VulkanStreamGuest* vkStream, VkStructureType rootType,
2751     VkPipelineColorBlendStateCreateInfo* forUnmarshaling) {
2752     (void)rootType;
2753     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2754     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2755         rootType = forUnmarshaling->sType;
2756     }
2757     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2758     vkStream->read((VkPipelineColorBlendStateCreateFlags*)&forUnmarshaling->flags,
2759                    sizeof(VkPipelineColorBlendStateCreateFlags));
2760     vkStream->read((VkBool32*)&forUnmarshaling->logicOpEnable, sizeof(VkBool32));
2761     vkStream->read((VkLogicOp*)&forUnmarshaling->logicOp, sizeof(VkLogicOp));
2762     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
2763     if (forUnmarshaling) {
2764         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
2765             unmarshal_VkPipelineColorBlendAttachmentState(
2766                 vkStream, rootType,
2767                 (VkPipelineColorBlendAttachmentState*)(forUnmarshaling->pAttachments + i));
2768         }
2769     }
2770     vkStream->read((float*)forUnmarshaling->blendConstants, 4 * sizeof(float));
2771 }
2772 
marshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineDynamicStateCreateInfo * forMarshaling)2773 void marshal_VkPipelineDynamicStateCreateInfo(
2774     VulkanStreamGuest* vkStream, VkStructureType rootType,
2775     const VkPipelineDynamicStateCreateInfo* forMarshaling) {
2776     (void)rootType;
2777     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2778     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2779         rootType = forMarshaling->sType;
2780     }
2781     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2782     vkStream->write((VkPipelineDynamicStateCreateFlags*)&forMarshaling->flags,
2783                     sizeof(VkPipelineDynamicStateCreateFlags));
2784     vkStream->write((uint32_t*)&forMarshaling->dynamicStateCount, sizeof(uint32_t));
2785     vkStream->write((const VkDynamicState*)forMarshaling->pDynamicStates,
2786                     forMarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2787 }
2788 
unmarshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineDynamicStateCreateInfo * forUnmarshaling)2789 void unmarshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest* vkStream,
2790                                                 VkStructureType rootType,
2791                                                 VkPipelineDynamicStateCreateInfo* forUnmarshaling) {
2792     (void)rootType;
2793     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2794     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2795         rootType = forUnmarshaling->sType;
2796     }
2797     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2798     vkStream->read((VkPipelineDynamicStateCreateFlags*)&forUnmarshaling->flags,
2799                    sizeof(VkPipelineDynamicStateCreateFlags));
2800     vkStream->read((uint32_t*)&forUnmarshaling->dynamicStateCount, sizeof(uint32_t));
2801     vkStream->read((VkDynamicState*)forUnmarshaling->pDynamicStates,
2802                    forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2803 }
2804 
marshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkGraphicsPipelineCreateInfo * forMarshaling)2805 void marshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2806                                           const VkGraphicsPipelineCreateInfo* forMarshaling) {
2807     (void)rootType;
2808     uint32_t hasRasterization = 1;
2809     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2810         hasRasterization =
2811             ((((0 == forMarshaling->pRasterizationState))
2812                   ? (0)
2813                   : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable))) ||
2814              (((0 == forMarshaling->pDynamicState))
2815                   ? (0)
2816                   : (arrayany((*(forMarshaling->pDynamicState)).pDynamicStates, 0,
2817                               (*(forMarshaling->pDynamicState)).dynamicStateCount,
2818                               [](VkDynamicState s) {
2819                                   return (s == VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE);
2820                               }))));
2821         uint32_t cgen_var_0 = (uint32_t)hasRasterization;
2822         vkStream->putBe32(cgen_var_0);
2823     }
2824     uint32_t hasTessellation = 1;
2825     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2826         hasTessellation =
2827             arrayany(forMarshaling->pStages, 0, forMarshaling->stageCount,
2828                      [](VkPipelineShaderStageCreateInfo s) {
2829                          return ((s.stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ||
2830                                  (s.stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT));
2831                      });
2832         uint32_t cgen_var_0 = (uint32_t)hasTessellation;
2833         vkStream->putBe32(cgen_var_0);
2834     }
2835     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2836     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2837         rootType = forMarshaling->sType;
2838     }
2839     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
2840     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2841     vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
2842     if (forMarshaling) {
2843         for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i) {
2844             marshal_VkPipelineShaderStageCreateInfo(
2845                 vkStream, rootType,
2846                 (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
2847         }
2848     }
2849     // WARNING PTR CHECK
2850     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2851         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
2852         vkStream->putBe64(cgen_var_0);
2853     }
2854     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2855          forMarshaling->pVertexInputState)) {
2856         marshal_VkPipelineVertexInputStateCreateInfo(
2857             vkStream, rootType,
2858             (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState));
2859     }
2860     // WARNING PTR CHECK
2861     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2862         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
2863         vkStream->putBe64(cgen_var_0);
2864     }
2865     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2866          forMarshaling->pInputAssemblyState)) {
2867         marshal_VkPipelineInputAssemblyStateCreateInfo(
2868             vkStream, rootType,
2869             (const VkPipelineInputAssemblyStateCreateInfo*)(forMarshaling->pInputAssemblyState));
2870     }
2871     // WARNING PTR CHECK
2872     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
2873     vkStream->putBe64(cgen_var_0);
2874     if (forMarshaling->pTessellationState) {
2875         if (hasTessellation) {
2876             marshal_VkPipelineTessellationStateCreateInfo(
2877                 vkStream, rootType,
2878                 (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState));
2879         }
2880     }
2881     // WARNING PTR CHECK
2882     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
2883     vkStream->putBe64(cgen_var_1);
2884     if (forMarshaling->pViewportState) {
2885         if (hasRasterization) {
2886             marshal_VkPipelineViewportStateCreateInfo(
2887                 vkStream, rootType,
2888                 (const VkPipelineViewportStateCreateInfo*)(forMarshaling->pViewportState));
2889         }
2890     }
2891     // WARNING PTR CHECK
2892     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2893         uint64_t cgen_var_1_0 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
2894         vkStream->putBe64(cgen_var_1_0);
2895     }
2896     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2897          forMarshaling->pRasterizationState)) {
2898         marshal_VkPipelineRasterizationStateCreateInfo(
2899             vkStream, rootType,
2900             (const VkPipelineRasterizationStateCreateInfo*)(forMarshaling->pRasterizationState));
2901     }
2902     // WARNING PTR CHECK
2903     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
2904     vkStream->putBe64(cgen_var_2);
2905     if (forMarshaling->pMultisampleState) {
2906         if (hasRasterization) {
2907             marshal_VkPipelineMultisampleStateCreateInfo(
2908                 vkStream, rootType,
2909                 (const VkPipelineMultisampleStateCreateInfo*)(forMarshaling->pMultisampleState));
2910         }
2911     }
2912     // WARNING PTR CHECK
2913     uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
2914     vkStream->putBe64(cgen_var_3);
2915     if (forMarshaling->pDepthStencilState) {
2916         if (hasRasterization) {
2917             marshal_VkPipelineDepthStencilStateCreateInfo(
2918                 vkStream, rootType,
2919                 (const VkPipelineDepthStencilStateCreateInfo*)(forMarshaling->pDepthStencilState));
2920         }
2921     }
2922     // WARNING PTR CHECK
2923     uint64_t cgen_var_4 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
2924     vkStream->putBe64(cgen_var_4);
2925     if (forMarshaling->pColorBlendState) {
2926         if (hasRasterization) {
2927             marshal_VkPipelineColorBlendStateCreateInfo(
2928                 vkStream, rootType,
2929                 (const VkPipelineColorBlendStateCreateInfo*)(forMarshaling->pColorBlendState));
2930         }
2931     }
2932     // WARNING PTR CHECK
2933     uint64_t cgen_var_5 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
2934     vkStream->putBe64(cgen_var_5);
2935     if (forMarshaling->pDynamicState) {
2936         marshal_VkPipelineDynamicStateCreateInfo(
2937             vkStream, rootType,
2938             (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState));
2939     }
2940     uint64_t cgen_var_6;
2941     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_6,
2942                                                                1);
2943     vkStream->write((uint64_t*)&cgen_var_6, 1 * 8);
2944     uint64_t cgen_var_7;
2945     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_7,
2946                                                            1);
2947     vkStream->write((uint64_t*)&cgen_var_7, 1 * 8);
2948     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
2949     uint64_t cgen_var_8;
2950     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle,
2951                                                          &cgen_var_8, 1);
2952     vkStream->write((uint64_t*)&cgen_var_8, 1 * 8);
2953     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2954 }
2955 
unmarshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkGraphicsPipelineCreateInfo * forUnmarshaling)2956 void unmarshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2957                                             VkGraphicsPipelineCreateInfo* forUnmarshaling) {
2958     (void)rootType;
2959     uint32_t hasRasterization = 1;
2960     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2961         hasRasterization = (const uint32_t)vkStream->getBe32();
2962     }
2963     uint32_t hasTessellation = 1;
2964     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2965         hasTessellation = (const uint32_t)vkStream->getBe32();
2966     }
2967     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2968     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2969         rootType = forUnmarshaling->sType;
2970     }
2971     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
2972     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
2973     vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
2974     if (forUnmarshaling) {
2975         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i) {
2976             unmarshal_VkPipelineShaderStageCreateInfo(
2977                 vkStream, rootType,
2978                 (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
2979         }
2980     }
2981     // WARNING PTR CHECK
2982     const VkPipelineVertexInputStateCreateInfo* check_pVertexInputState;
2983     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2984         check_pVertexInputState =
2985             (const VkPipelineVertexInputStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2986     }
2987     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2988          forUnmarshaling->pVertexInputState)) {
2989         unmarshal_VkPipelineVertexInputStateCreateInfo(
2990             vkStream, rootType,
2991             (VkPipelineVertexInputStateCreateInfo*)(forUnmarshaling->pVertexInputState));
2992     }
2993     // WARNING PTR CHECK
2994     const VkPipelineInputAssemblyStateCreateInfo* check_pInputAssemblyState;
2995     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2996         check_pInputAssemblyState =
2997             (const VkPipelineInputAssemblyStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2998     }
2999     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3000          forUnmarshaling->pInputAssemblyState)) {
3001         unmarshal_VkPipelineInputAssemblyStateCreateInfo(
3002             vkStream, rootType,
3003             (VkPipelineInputAssemblyStateCreateInfo*)(forUnmarshaling->pInputAssemblyState));
3004     }
3005     // WARNING PTR CHECK
3006     const VkPipelineTessellationStateCreateInfo* check_pTessellationState;
3007     check_pTessellationState =
3008         (const VkPipelineTessellationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3009     if (forUnmarshaling->pTessellationState) {
3010         if (!(check_pTessellationState)) {
3011             fprintf(
3012                 stderr,
3013                 "fatal: forUnmarshaling->pTessellationState inconsistent between guest and host\n");
3014         }
3015         if (hasTessellation) {
3016             unmarshal_VkPipelineTessellationStateCreateInfo(
3017                 vkStream, rootType,
3018                 (VkPipelineTessellationStateCreateInfo*)(forUnmarshaling->pTessellationState));
3019         } else {
3020             forUnmarshaling->pTessellationState = 0;
3021         }
3022     }
3023     // WARNING PTR CHECK
3024     const VkPipelineViewportStateCreateInfo* check_pViewportState;
3025     check_pViewportState = (const VkPipelineViewportStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3026     if (forUnmarshaling->pViewportState) {
3027         if (!(check_pViewportState)) {
3028             fprintf(stderr,
3029                     "fatal: forUnmarshaling->pViewportState inconsistent between guest and host\n");
3030         }
3031         if (hasRasterization) {
3032             unmarshal_VkPipelineViewportStateCreateInfo(
3033                 vkStream, rootType,
3034                 (VkPipelineViewportStateCreateInfo*)(forUnmarshaling->pViewportState));
3035         } else {
3036             forUnmarshaling->pViewportState = 0;
3037         }
3038     }
3039     // WARNING PTR CHECK
3040     const VkPipelineRasterizationStateCreateInfo* check_pRasterizationState;
3041     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
3042         check_pRasterizationState =
3043             (const VkPipelineRasterizationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3044     }
3045     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3046          forUnmarshaling->pRasterizationState)) {
3047         unmarshal_VkPipelineRasterizationStateCreateInfo(
3048             vkStream, rootType,
3049             (VkPipelineRasterizationStateCreateInfo*)(forUnmarshaling->pRasterizationState));
3050     }
3051     // WARNING PTR CHECK
3052     const VkPipelineMultisampleStateCreateInfo* check_pMultisampleState;
3053     check_pMultisampleState =
3054         (const VkPipelineMultisampleStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3055     if (forUnmarshaling->pMultisampleState) {
3056         if (!(check_pMultisampleState)) {
3057             fprintf(
3058                 stderr,
3059                 "fatal: forUnmarshaling->pMultisampleState inconsistent between guest and host\n");
3060         }
3061         if (hasRasterization) {
3062             unmarshal_VkPipelineMultisampleStateCreateInfo(
3063                 vkStream, rootType,
3064                 (VkPipelineMultisampleStateCreateInfo*)(forUnmarshaling->pMultisampleState));
3065         } else {
3066             forUnmarshaling->pMultisampleState = 0;
3067         }
3068     }
3069     // WARNING PTR CHECK
3070     const VkPipelineDepthStencilStateCreateInfo* check_pDepthStencilState;
3071     check_pDepthStencilState =
3072         (const VkPipelineDepthStencilStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3073     if (forUnmarshaling->pDepthStencilState) {
3074         if (!(check_pDepthStencilState)) {
3075             fprintf(
3076                 stderr,
3077                 "fatal: forUnmarshaling->pDepthStencilState inconsistent between guest and host\n");
3078         }
3079         if (hasRasterization) {
3080             unmarshal_VkPipelineDepthStencilStateCreateInfo(
3081                 vkStream, rootType,
3082                 (VkPipelineDepthStencilStateCreateInfo*)(forUnmarshaling->pDepthStencilState));
3083         } else {
3084             forUnmarshaling->pDepthStencilState = 0;
3085         }
3086     }
3087     // WARNING PTR CHECK
3088     const VkPipelineColorBlendStateCreateInfo* check_pColorBlendState;
3089     check_pColorBlendState =
3090         (const VkPipelineColorBlendStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3091     if (forUnmarshaling->pColorBlendState) {
3092         if (!(check_pColorBlendState)) {
3093             fprintf(
3094                 stderr,
3095                 "fatal: forUnmarshaling->pColorBlendState inconsistent between guest and host\n");
3096         }
3097         if (hasRasterization) {
3098             unmarshal_VkPipelineColorBlendStateCreateInfo(
3099                 vkStream, rootType,
3100                 (VkPipelineColorBlendStateCreateInfo*)(forUnmarshaling->pColorBlendState));
3101         } else {
3102             forUnmarshaling->pColorBlendState = 0;
3103         }
3104     }
3105     // WARNING PTR CHECK
3106     const VkPipelineDynamicStateCreateInfo* check_pDynamicState;
3107     check_pDynamicState = (const VkPipelineDynamicStateCreateInfo*)(uintptr_t)vkStream->getBe64();
3108     if (forUnmarshaling->pDynamicState) {
3109         if (!(check_pDynamicState)) {
3110             fprintf(stderr,
3111                     "fatal: forUnmarshaling->pDynamicState inconsistent between guest and host\n");
3112         }
3113         unmarshal_VkPipelineDynamicStateCreateInfo(
3114             vkStream, rootType,
3115             (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState));
3116     }
3117     uint64_t cgen_var_6;
3118     vkStream->read((uint64_t*)&cgen_var_6, 1 * 8);
3119     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
3120         &cgen_var_6, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
3121     uint64_t cgen_var_7;
3122     vkStream->read((uint64_t*)&cgen_var_7, 1 * 8);
3123     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
3124         &cgen_var_7, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
3125     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
3126     uint64_t cgen_var_8;
3127     vkStream->read((uint64_t*)&cgen_var_8, 1 * 8);
3128     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
3129         &cgen_var_8, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
3130     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
3131 }
3132 
marshal_VkPushConstantRange(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPushConstantRange * forMarshaling)3133 void marshal_VkPushConstantRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
3134                                  const VkPushConstantRange* forMarshaling) {
3135     (void)rootType;
3136     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
3137     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
3138     vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
3139 }
3140 
unmarshal_VkPushConstantRange(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPushConstantRange * forUnmarshaling)3141 void unmarshal_VkPushConstantRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
3142                                    VkPushConstantRange* forUnmarshaling) {
3143     (void)rootType;
3144     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
3145     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
3146     vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
3147 }
3148 
marshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineLayoutCreateInfo * forMarshaling)3149 void marshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3150                                         const VkPipelineLayoutCreateInfo* forMarshaling) {
3151     (void)rootType;
3152     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3153     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3154         rootType = forMarshaling->sType;
3155     }
3156     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3157     vkStream->write((VkPipelineLayoutCreateFlags*)&forMarshaling->flags,
3158                     sizeof(VkPipelineLayoutCreateFlags));
3159     vkStream->write((uint32_t*)&forMarshaling->setLayoutCount, sizeof(uint32_t));
3160     if (forMarshaling->setLayoutCount) {
3161         uint64_t* cgen_var_0;
3162         vkStream->alloc((void**)&cgen_var_0, forMarshaling->setLayoutCount * 8);
3163         vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
3164             forMarshaling->pSetLayouts, cgen_var_0, forMarshaling->setLayoutCount);
3165         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->setLayoutCount * 8);
3166     }
3167     vkStream->write((uint32_t*)&forMarshaling->pushConstantRangeCount, sizeof(uint32_t));
3168     if (forMarshaling) {
3169         for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i) {
3170             marshal_VkPushConstantRange(
3171                 vkStream, rootType,
3172                 (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i));
3173         }
3174     }
3175 }
3176 
unmarshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineLayoutCreateInfo * forUnmarshaling)3177 void unmarshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3178                                           VkPipelineLayoutCreateInfo* forUnmarshaling) {
3179     (void)rootType;
3180     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3181     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3182         rootType = forUnmarshaling->sType;
3183     }
3184     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3185     vkStream->read((VkPipelineLayoutCreateFlags*)&forUnmarshaling->flags,
3186                    sizeof(VkPipelineLayoutCreateFlags));
3187     vkStream->read((uint32_t*)&forUnmarshaling->setLayoutCount, sizeof(uint32_t));
3188     if (forUnmarshaling->setLayoutCount) {
3189         uint64_t* cgen_var_0;
3190         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->setLayoutCount * 8);
3191         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->setLayoutCount * 8);
3192         vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
3193             cgen_var_0, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts,
3194             forUnmarshaling->setLayoutCount);
3195     }
3196     vkStream->read((uint32_t*)&forUnmarshaling->pushConstantRangeCount, sizeof(uint32_t));
3197     if (forUnmarshaling) {
3198         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i) {
3199             unmarshal_VkPushConstantRange(
3200                 vkStream, rootType,
3201                 (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i));
3202         }
3203     }
3204 }
3205 
marshal_VkSamplerCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerCreateInfo * forMarshaling)3206 void marshal_VkSamplerCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3207                                  const VkSamplerCreateInfo* forMarshaling) {
3208     (void)rootType;
3209     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3210     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3211         rootType = forMarshaling->sType;
3212     }
3213     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3214     vkStream->write((VkSamplerCreateFlags*)&forMarshaling->flags, sizeof(VkSamplerCreateFlags));
3215     vkStream->write((VkFilter*)&forMarshaling->magFilter, sizeof(VkFilter));
3216     vkStream->write((VkFilter*)&forMarshaling->minFilter, sizeof(VkFilter));
3217     vkStream->write((VkSamplerMipmapMode*)&forMarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
3218     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeU,
3219                     sizeof(VkSamplerAddressMode));
3220     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeV,
3221                     sizeof(VkSamplerAddressMode));
3222     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeW,
3223                     sizeof(VkSamplerAddressMode));
3224     vkStream->write((float*)&forMarshaling->mipLodBias, sizeof(float));
3225     vkStream->write((VkBool32*)&forMarshaling->anisotropyEnable, sizeof(VkBool32));
3226     vkStream->write((float*)&forMarshaling->maxAnisotropy, sizeof(float));
3227     vkStream->write((VkBool32*)&forMarshaling->compareEnable, sizeof(VkBool32));
3228     vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
3229     vkStream->write((float*)&forMarshaling->minLod, sizeof(float));
3230     vkStream->write((float*)&forMarshaling->maxLod, sizeof(float));
3231     vkStream->write((VkBorderColor*)&forMarshaling->borderColor, sizeof(VkBorderColor));
3232     vkStream->write((VkBool32*)&forMarshaling->unnormalizedCoordinates, sizeof(VkBool32));
3233 }
3234 
unmarshal_VkSamplerCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSamplerCreateInfo * forUnmarshaling)3235 void unmarshal_VkSamplerCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3236                                    VkSamplerCreateInfo* forUnmarshaling) {
3237     (void)rootType;
3238     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3239     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3240         rootType = forUnmarshaling->sType;
3241     }
3242     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3243     vkStream->read((VkSamplerCreateFlags*)&forUnmarshaling->flags, sizeof(VkSamplerCreateFlags));
3244     vkStream->read((VkFilter*)&forUnmarshaling->magFilter, sizeof(VkFilter));
3245     vkStream->read((VkFilter*)&forUnmarshaling->minFilter, sizeof(VkFilter));
3246     vkStream->read((VkSamplerMipmapMode*)&forUnmarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
3247     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeU,
3248                    sizeof(VkSamplerAddressMode));
3249     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeV,
3250                    sizeof(VkSamplerAddressMode));
3251     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeW,
3252                    sizeof(VkSamplerAddressMode));
3253     vkStream->read((float*)&forUnmarshaling->mipLodBias, sizeof(float));
3254     vkStream->read((VkBool32*)&forUnmarshaling->anisotropyEnable, sizeof(VkBool32));
3255     vkStream->read((float*)&forUnmarshaling->maxAnisotropy, sizeof(float));
3256     vkStream->read((VkBool32*)&forUnmarshaling->compareEnable, sizeof(VkBool32));
3257     vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
3258     vkStream->read((float*)&forUnmarshaling->minLod, sizeof(float));
3259     vkStream->read((float*)&forUnmarshaling->maxLod, sizeof(float));
3260     vkStream->read((VkBorderColor*)&forUnmarshaling->borderColor, sizeof(VkBorderColor));
3261     vkStream->read((VkBool32*)&forUnmarshaling->unnormalizedCoordinates, sizeof(VkBool32));
3262 }
3263 
marshal_VkCopyDescriptorSet(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyDescriptorSet * forMarshaling)3264 void marshal_VkCopyDescriptorSet(VulkanStreamGuest* vkStream, VkStructureType rootType,
3265                                  const VkCopyDescriptorSet* forMarshaling) {
3266     (void)rootType;
3267     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3268     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3269         rootType = forMarshaling->sType;
3270     }
3271     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3272     uint64_t cgen_var_0;
3273     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->srcSet, &cgen_var_0,
3274                                                               1);
3275     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3276     vkStream->write((uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
3277     vkStream->write((uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
3278     uint64_t cgen_var_1;
3279     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_1,
3280                                                               1);
3281     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
3282     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
3283     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
3284     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3285 }
3286 
unmarshal_VkCopyDescriptorSet(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyDescriptorSet * forUnmarshaling)3287 void unmarshal_VkCopyDescriptorSet(VulkanStreamGuest* vkStream, VkStructureType rootType,
3288                                    VkCopyDescriptorSet* forUnmarshaling) {
3289     (void)rootType;
3290     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3291     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3292         rootType = forUnmarshaling->sType;
3293     }
3294     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3295     uint64_t cgen_var_0;
3296     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3297     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(
3298         &cgen_var_0, (VkDescriptorSet*)&forUnmarshaling->srcSet, 1);
3299     vkStream->read((uint32_t*)&forUnmarshaling->srcBinding, sizeof(uint32_t));
3300     vkStream->read((uint32_t*)&forUnmarshaling->srcArrayElement, sizeof(uint32_t));
3301     uint64_t cgen_var_1;
3302     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
3303     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(
3304         &cgen_var_1, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
3305     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
3306     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
3307     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3308 }
3309 
marshal_VkDescriptorBufferInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorBufferInfo * forMarshaling)3310 void marshal_VkDescriptorBufferInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3311                                     const VkDescriptorBufferInfo* forMarshaling) {
3312     (void)rootType;
3313     uint64_t cgen_var_0;
3314     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
3315     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3316     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
3317     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
3318 }
3319 
unmarshal_VkDescriptorBufferInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorBufferInfo * forUnmarshaling)3320 void unmarshal_VkDescriptorBufferInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3321                                       VkDescriptorBufferInfo* forUnmarshaling) {
3322     (void)rootType;
3323     uint64_t cgen_var_0;
3324     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3325     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
3326                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
3327     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
3328     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
3329 }
3330 
marshal_VkDescriptorImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorImageInfo * forMarshaling)3331 void marshal_VkDescriptorImageInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3332                                    const VkDescriptorImageInfo* forMarshaling) {
3333     (void)rootType;
3334     uint64_t cgen_var_0;
3335     vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_0, 1);
3336     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3337     uint64_t cgen_var_1;
3338     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_1,
3339                                                           1);
3340     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
3341     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
3342 }
3343 
unmarshal_VkDescriptorImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorImageInfo * forUnmarshaling)3344 void unmarshal_VkDescriptorImageInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3345                                      VkDescriptorImageInfo* forUnmarshaling) {
3346     (void)rootType;
3347     uint64_t cgen_var_0;
3348     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3349     vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_0,
3350                                                         (VkSampler*)&forUnmarshaling->sampler, 1);
3351     uint64_t cgen_var_1;
3352     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
3353     vkStream->handleMapping()->mapHandles_u64_VkImageView(
3354         &cgen_var_1, (VkImageView*)&forUnmarshaling->imageView, 1);
3355     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
3356 }
3357 
marshal_VkDescriptorPoolSize(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorPoolSize * forMarshaling)3358 void marshal_VkDescriptorPoolSize(VulkanStreamGuest* vkStream, VkStructureType rootType,
3359                                   const VkDescriptorPoolSize* forMarshaling) {
3360     (void)rootType;
3361     vkStream->write((VkDescriptorType*)&forMarshaling->type, sizeof(VkDescriptorType));
3362     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3363 }
3364 
unmarshal_VkDescriptorPoolSize(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorPoolSize * forUnmarshaling)3365 void unmarshal_VkDescriptorPoolSize(VulkanStreamGuest* vkStream, VkStructureType rootType,
3366                                     VkDescriptorPoolSize* forUnmarshaling) {
3367     (void)rootType;
3368     vkStream->read((VkDescriptorType*)&forUnmarshaling->type, sizeof(VkDescriptorType));
3369     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3370 }
3371 
marshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorPoolCreateInfo * forMarshaling)3372 void marshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3373                                         const VkDescriptorPoolCreateInfo* forMarshaling) {
3374     (void)rootType;
3375     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3376     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3377         rootType = forMarshaling->sType;
3378     }
3379     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3380     vkStream->write((VkDescriptorPoolCreateFlags*)&forMarshaling->flags,
3381                     sizeof(VkDescriptorPoolCreateFlags));
3382     vkStream->write((uint32_t*)&forMarshaling->maxSets, sizeof(uint32_t));
3383     vkStream->write((uint32_t*)&forMarshaling->poolSizeCount, sizeof(uint32_t));
3384     if (forMarshaling) {
3385         for (uint32_t i = 0; i < (uint32_t)forMarshaling->poolSizeCount; ++i) {
3386             marshal_VkDescriptorPoolSize(
3387                 vkStream, rootType, (const VkDescriptorPoolSize*)(forMarshaling->pPoolSizes + i));
3388         }
3389     }
3390 }
3391 
unmarshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorPoolCreateInfo * forUnmarshaling)3392 void unmarshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3393                                           VkDescriptorPoolCreateInfo* forUnmarshaling) {
3394     (void)rootType;
3395     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3396     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3397         rootType = forUnmarshaling->sType;
3398     }
3399     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3400     vkStream->read((VkDescriptorPoolCreateFlags*)&forUnmarshaling->flags,
3401                    sizeof(VkDescriptorPoolCreateFlags));
3402     vkStream->read((uint32_t*)&forUnmarshaling->maxSets, sizeof(uint32_t));
3403     vkStream->read((uint32_t*)&forUnmarshaling->poolSizeCount, sizeof(uint32_t));
3404     if (forUnmarshaling) {
3405         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->poolSizeCount; ++i) {
3406             unmarshal_VkDescriptorPoolSize(
3407                 vkStream, rootType, (VkDescriptorPoolSize*)(forUnmarshaling->pPoolSizes + i));
3408         }
3409     }
3410 }
3411 
marshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetAllocateInfo * forMarshaling)3412 void marshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3413                                          const VkDescriptorSetAllocateInfo* forMarshaling) {
3414     (void)rootType;
3415     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3416     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3417         rootType = forMarshaling->sType;
3418     }
3419     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3420     uint64_t cgen_var_0;
3421     vkStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&forMarshaling->descriptorPool,
3422                                                                &cgen_var_0, 1);
3423     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3424     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
3425     if (forMarshaling->descriptorSetCount) {
3426         uint64_t* cgen_var_1;
3427         vkStream->alloc((void**)&cgen_var_1, forMarshaling->descriptorSetCount * 8);
3428         vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
3429             forMarshaling->pSetLayouts, cgen_var_1, forMarshaling->descriptorSetCount);
3430         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->descriptorSetCount * 8);
3431     }
3432 }
3433 
unmarshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorSetAllocateInfo * forUnmarshaling)3434 void unmarshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3435                                            VkDescriptorSetAllocateInfo* forUnmarshaling) {
3436     (void)rootType;
3437     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3438     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3439         rootType = forUnmarshaling->sType;
3440     }
3441     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3442     uint64_t cgen_var_0;
3443     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3444     vkStream->handleMapping()->mapHandles_u64_VkDescriptorPool(
3445         &cgen_var_0, (VkDescriptorPool*)&forUnmarshaling->descriptorPool, 1);
3446     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
3447     if (forUnmarshaling->descriptorSetCount) {
3448         uint64_t* cgen_var_1;
3449         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
3450         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
3451         vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
3452             cgen_var_1, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts,
3453             forUnmarshaling->descriptorSetCount);
3454     }
3455 }
3456 
marshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutBinding * forMarshaling)3457 void marshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest* vkStream, VkStructureType rootType,
3458                                           const VkDescriptorSetLayoutBinding* forMarshaling) {
3459     (void)rootType;
3460     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
3461     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
3462     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3463     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
3464     // WARNING PTR CHECK
3465     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
3466     vkStream->putBe64(cgen_var_0);
3467     if (forMarshaling->pImmutableSamplers) {
3468         if (forMarshaling->descriptorCount) {
3469             uint64_t* cgen_var_0_0;
3470             vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->descriptorCount * 8);
3471             vkStream->handleMapping()->mapHandles_VkSampler_u64(
3472                 forMarshaling->pImmutableSamplers, cgen_var_0_0, forMarshaling->descriptorCount);
3473             vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->descriptorCount * 8);
3474         }
3475     }
3476 }
3477 
unmarshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorSetLayoutBinding * forUnmarshaling)3478 void unmarshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest* vkStream, VkStructureType rootType,
3479                                             VkDescriptorSetLayoutBinding* forUnmarshaling) {
3480     (void)rootType;
3481     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
3482     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
3483     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3484     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
3485     // WARNING PTR CHECK
3486     const VkSampler* check_pImmutableSamplers;
3487     check_pImmutableSamplers = (const VkSampler*)(uintptr_t)vkStream->getBe64();
3488     if (forUnmarshaling->pImmutableSamplers) {
3489         if (!(check_pImmutableSamplers)) {
3490             fprintf(
3491                 stderr,
3492                 "fatal: forUnmarshaling->pImmutableSamplers inconsistent between guest and host\n");
3493         }
3494         if (forUnmarshaling->descriptorCount) {
3495             uint64_t* cgen_var_0_0;
3496             vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->descriptorCount * 8);
3497             vkStream->read((uint64_t*)cgen_var_0_0, forUnmarshaling->descriptorCount * 8);
3498             vkStream->handleMapping()->mapHandles_u64_VkSampler(
3499                 cgen_var_0_0, (VkSampler*)forUnmarshaling->pImmutableSamplers,
3500                 forUnmarshaling->descriptorCount);
3501         }
3502     }
3503 }
3504 
marshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutCreateInfo * forMarshaling)3505 void marshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3506                                              const VkDescriptorSetLayoutCreateInfo* forMarshaling) {
3507     (void)rootType;
3508     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3509     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3510         rootType = forMarshaling->sType;
3511     }
3512     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3513     vkStream->write((VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags,
3514                     sizeof(VkDescriptorSetLayoutCreateFlags));
3515     vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
3516     if (forMarshaling) {
3517         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i) {
3518             marshal_VkDescriptorSetLayoutBinding(
3519                 vkStream, rootType,
3520                 (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i));
3521         }
3522     }
3523 }
3524 
unmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorSetLayoutCreateInfo * forUnmarshaling)3525 void unmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest* vkStream,
3526                                                VkStructureType rootType,
3527                                                VkDescriptorSetLayoutCreateInfo* forUnmarshaling) {
3528     (void)rootType;
3529     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3531         rootType = forUnmarshaling->sType;
3532     }
3533     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3534     vkStream->read((VkDescriptorSetLayoutCreateFlags*)&forUnmarshaling->flags,
3535                    sizeof(VkDescriptorSetLayoutCreateFlags));
3536     vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
3537     if (forUnmarshaling) {
3538         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindingCount; ++i) {
3539             unmarshal_VkDescriptorSetLayoutBinding(
3540                 vkStream, rootType,
3541                 (VkDescriptorSetLayoutBinding*)(forUnmarshaling->pBindings + i));
3542         }
3543     }
3544 }
3545 
marshal_VkWriteDescriptorSet(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkWriteDescriptorSet * forMarshaling)3546 void marshal_VkWriteDescriptorSet(VulkanStreamGuest* vkStream, VkStructureType rootType,
3547                                   const VkWriteDescriptorSet* 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     uint64_t cgen_var_0;
3555     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_0,
3556                                                               1);
3557     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3558     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
3559     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
3560     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3561     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
3562     // WARNING PTR CHECK
3563     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
3564     vkStream->putBe64(cgen_var_1);
3565     if (forMarshaling->pImageInfo) {
3566         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3567              ((VK_DESCRIPTOR_TYPE_SAMPLER == forMarshaling->descriptorType) ||
3568               (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forMarshaling->descriptorType) ||
3569               (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forMarshaling->descriptorType) ||
3570               (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forMarshaling->descriptorType) ||
3571               (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forMarshaling->descriptorType)))) {
3572             if (forMarshaling) {
3573                 for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i) {
3574                     marshal_VkDescriptorImageInfo(
3575                         vkStream, rootType,
3576                         (const VkDescriptorImageInfo*)(forMarshaling->pImageInfo + i));
3577                 }
3578             }
3579         }
3580     }
3581     // WARNING PTR CHECK
3582     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
3583     vkStream->putBe64(cgen_var_2);
3584     if (forMarshaling->pBufferInfo) {
3585         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3586              ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forMarshaling->descriptorType) ||
3587               (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forMarshaling->descriptorType) ||
3588               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forMarshaling->descriptorType) ||
3589               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forMarshaling->descriptorType)))) {
3590             if (forMarshaling) {
3591                 for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i) {
3592                     marshal_VkDescriptorBufferInfo(
3593                         vkStream, rootType,
3594                         (const VkDescriptorBufferInfo*)(forMarshaling->pBufferInfo + i));
3595                 }
3596             }
3597         }
3598     }
3599     // WARNING PTR CHECK
3600     uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
3601     vkStream->putBe64(cgen_var_3);
3602     if (forMarshaling->pTexelBufferView) {
3603         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3604              ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forMarshaling->descriptorType) ||
3605               (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forMarshaling->descriptorType)))) {
3606             if (forMarshaling->descriptorCount) {
3607                 uint64_t* cgen_var_3_0;
3608                 vkStream->alloc((void**)&cgen_var_3_0, forMarshaling->descriptorCount * 8);
3609                 vkStream->handleMapping()->mapHandles_VkBufferView_u64(
3610                     forMarshaling->pTexelBufferView, cgen_var_3_0, forMarshaling->descriptorCount);
3611                 vkStream->write((uint64_t*)cgen_var_3_0, forMarshaling->descriptorCount * 8);
3612             }
3613         }
3614     }
3615 }
3616 
unmarshal_VkWriteDescriptorSet(VulkanStreamGuest * vkStream,VkStructureType rootType,VkWriteDescriptorSet * forUnmarshaling)3617 void unmarshal_VkWriteDescriptorSet(VulkanStreamGuest* vkStream, VkStructureType rootType,
3618                                     VkWriteDescriptorSet* forUnmarshaling) {
3619     (void)rootType;
3620     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3621     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3622         rootType = forUnmarshaling->sType;
3623     }
3624     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3625     uint64_t cgen_var_0;
3626     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3627     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(
3628         &cgen_var_0, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
3629     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
3630     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
3631     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3632     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
3633     // WARNING PTR CHECK
3634     const VkDescriptorImageInfo* check_pImageInfo;
3635     check_pImageInfo = (const VkDescriptorImageInfo*)(uintptr_t)vkStream->getBe64();
3636     if (forUnmarshaling->pImageInfo) {
3637         if (!(check_pImageInfo)) {
3638             fprintf(stderr,
3639                     "fatal: forUnmarshaling->pImageInfo inconsistent between guest and host\n");
3640         }
3641         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3642              ((VK_DESCRIPTOR_TYPE_SAMPLER == forUnmarshaling->descriptorType) ||
3643               (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forUnmarshaling->descriptorType) ||
3644               (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forUnmarshaling->descriptorType) ||
3645               (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forUnmarshaling->descriptorType) ||
3646               (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forUnmarshaling->descriptorType)))) {
3647             if (forUnmarshaling) {
3648                 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i) {
3649                     unmarshal_VkDescriptorImageInfo(
3650                         vkStream, rootType,
3651                         (VkDescriptorImageInfo*)(forUnmarshaling->pImageInfo + i));
3652                 }
3653             }
3654         } else {
3655             forUnmarshaling->pImageInfo = 0;
3656         }
3657     }
3658     // WARNING PTR CHECK
3659     const VkDescriptorBufferInfo* check_pBufferInfo;
3660     check_pBufferInfo = (const VkDescriptorBufferInfo*)(uintptr_t)vkStream->getBe64();
3661     if (forUnmarshaling->pBufferInfo) {
3662         if (!(check_pBufferInfo)) {
3663             fprintf(stderr,
3664                     "fatal: forUnmarshaling->pBufferInfo inconsistent between guest and host\n");
3665         }
3666         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3667              ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forUnmarshaling->descriptorType) ||
3668               (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forUnmarshaling->descriptorType) ||
3669               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forUnmarshaling->descriptorType) ||
3670               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forUnmarshaling->descriptorType)))) {
3671             if (forUnmarshaling) {
3672                 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i) {
3673                     unmarshal_VkDescriptorBufferInfo(
3674                         vkStream, rootType,
3675                         (VkDescriptorBufferInfo*)(forUnmarshaling->pBufferInfo + i));
3676                 }
3677             }
3678         } else {
3679             forUnmarshaling->pBufferInfo = 0;
3680         }
3681     }
3682     // WARNING PTR CHECK
3683     const VkBufferView* check_pTexelBufferView;
3684     check_pTexelBufferView = (const VkBufferView*)(uintptr_t)vkStream->getBe64();
3685     if (forUnmarshaling->pTexelBufferView) {
3686         if (!(check_pTexelBufferView)) {
3687             fprintf(
3688                 stderr,
3689                 "fatal: forUnmarshaling->pTexelBufferView inconsistent between guest and host\n");
3690         }
3691         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3692              ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forUnmarshaling->descriptorType) ||
3693               (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forUnmarshaling->descriptorType)))) {
3694             if (forUnmarshaling->descriptorCount) {
3695                 uint64_t* cgen_var_3_0;
3696                 vkStream->alloc((void**)&cgen_var_3_0, forUnmarshaling->descriptorCount * 8);
3697                 vkStream->read((uint64_t*)cgen_var_3_0, forUnmarshaling->descriptorCount * 8);
3698                 vkStream->handleMapping()->mapHandles_u64_VkBufferView(
3699                     cgen_var_3_0, (VkBufferView*)forUnmarshaling->pTexelBufferView,
3700                     forUnmarshaling->descriptorCount);
3701             }
3702         } else {
3703             forUnmarshaling->pTexelBufferView = 0;
3704         }
3705     }
3706 }
3707 
marshal_VkAttachmentDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentDescription * forMarshaling)3708 void marshal_VkAttachmentDescription(VulkanStreamGuest* vkStream, VkStructureType rootType,
3709                                      const VkAttachmentDescription* forMarshaling) {
3710     (void)rootType;
3711     vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags,
3712                     sizeof(VkAttachmentDescriptionFlags));
3713     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
3714     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
3715     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
3716     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
3717     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
3718     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp,
3719                     sizeof(VkAttachmentStoreOp));
3720     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
3721     vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
3722 }
3723 
unmarshal_VkAttachmentDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAttachmentDescription * forUnmarshaling)3724 void unmarshal_VkAttachmentDescription(VulkanStreamGuest* vkStream, VkStructureType rootType,
3725                                        VkAttachmentDescription* forUnmarshaling) {
3726     (void)rootType;
3727     vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags,
3728                    sizeof(VkAttachmentDescriptionFlags));
3729     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
3730     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
3731                    sizeof(VkSampleCountFlagBits));
3732     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
3733     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
3734     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp,
3735                    sizeof(VkAttachmentLoadOp));
3736     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp,
3737                    sizeof(VkAttachmentStoreOp));
3738     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
3739     vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
3740 }
3741 
marshal_VkAttachmentReference(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentReference * forMarshaling)3742 void marshal_VkAttachmentReference(VulkanStreamGuest* vkStream, VkStructureType rootType,
3743                                    const VkAttachmentReference* forMarshaling) {
3744     (void)rootType;
3745     vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
3746     vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
3747 }
3748 
unmarshal_VkAttachmentReference(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAttachmentReference * forUnmarshaling)3749 void unmarshal_VkAttachmentReference(VulkanStreamGuest* vkStream, VkStructureType rootType,
3750                                      VkAttachmentReference* forUnmarshaling) {
3751     (void)rootType;
3752     vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
3753     vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
3754 }
3755 
marshal_VkFramebufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFramebufferCreateInfo * forMarshaling)3756 void marshal_VkFramebufferCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3757                                      const VkFramebufferCreateInfo* forMarshaling) {
3758     (void)rootType;
3759     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3760     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3761         rootType = forMarshaling->sType;
3762     }
3763     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3764     vkStream->write((VkFramebufferCreateFlags*)&forMarshaling->flags,
3765                     sizeof(VkFramebufferCreateFlags));
3766     uint64_t cgen_var_0;
3767     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0,
3768                                                            1);
3769     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
3770     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
3771     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3772          (((forMarshaling->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0)))) {
3773         if (forMarshaling->attachmentCount) {
3774             uint64_t* cgen_var_0_0;
3775             vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->attachmentCount * 8);
3776             vkStream->handleMapping()->mapHandles_VkImageView_u64(
3777                 forMarshaling->pAttachments, cgen_var_0_0, forMarshaling->attachmentCount);
3778             vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->attachmentCount * 8);
3779         }
3780     }
3781     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
3782     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
3783     vkStream->write((uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
3784 }
3785 
unmarshal_VkFramebufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFramebufferCreateInfo * forUnmarshaling)3786 void unmarshal_VkFramebufferCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3787                                        VkFramebufferCreateInfo* forUnmarshaling) {
3788     (void)rootType;
3789     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3790     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3791         rootType = forUnmarshaling->sType;
3792     }
3793     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3794     vkStream->read((VkFramebufferCreateFlags*)&forUnmarshaling->flags,
3795                    sizeof(VkFramebufferCreateFlags));
3796     uint64_t cgen_var_0;
3797     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
3798     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
3799         &cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
3800     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
3801     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3802          (((forUnmarshaling->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0)))) {
3803         if (forUnmarshaling->attachmentCount) {
3804             uint64_t* cgen_var_0_0;
3805             vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->attachmentCount * 8);
3806             vkStream->read((uint64_t*)cgen_var_0_0, forUnmarshaling->attachmentCount * 8);
3807             vkStream->handleMapping()->mapHandles_u64_VkImageView(
3808                 cgen_var_0_0, (VkImageView*)forUnmarshaling->pAttachments,
3809                 forUnmarshaling->attachmentCount);
3810         }
3811     } else {
3812         forUnmarshaling->pAttachments = 0;
3813     }
3814     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
3815     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
3816     vkStream->read((uint32_t*)&forUnmarshaling->layers, sizeof(uint32_t));
3817 }
3818 
marshal_VkSubpassDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDescription * forMarshaling)3819 void marshal_VkSubpassDescription(VulkanStreamGuest* vkStream, VkStructureType rootType,
3820                                   const VkSubpassDescription* forMarshaling) {
3821     (void)rootType;
3822     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags,
3823                     sizeof(VkSubpassDescriptionFlags));
3824     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
3825                     sizeof(VkPipelineBindPoint));
3826     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
3827     if (forMarshaling) {
3828         for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i) {
3829             marshal_VkAttachmentReference(
3830                 vkStream, rootType,
3831                 (const VkAttachmentReference*)(forMarshaling->pInputAttachments + i));
3832         }
3833     }
3834     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
3835     if (forMarshaling) {
3836         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
3837             marshal_VkAttachmentReference(
3838                 vkStream, rootType,
3839                 (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i));
3840         }
3841     }
3842     // WARNING PTR CHECK
3843     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
3844     vkStream->putBe64(cgen_var_0);
3845     if (forMarshaling->pResolveAttachments) {
3846         if (forMarshaling) {
3847             for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
3848                 marshal_VkAttachmentReference(
3849                     vkStream, rootType,
3850                     (const VkAttachmentReference*)(forMarshaling->pResolveAttachments + i));
3851             }
3852         }
3853     }
3854     // WARNING PTR CHECK
3855     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
3856     vkStream->putBe64(cgen_var_1);
3857     if (forMarshaling->pDepthStencilAttachment) {
3858         marshal_VkAttachmentReference(
3859             vkStream, rootType,
3860             (const VkAttachmentReference*)(forMarshaling->pDepthStencilAttachment));
3861     }
3862     vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
3863     vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments,
3864                     forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3865 }
3866 
unmarshal_VkSubpassDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubpassDescription * forUnmarshaling)3867 void unmarshal_VkSubpassDescription(VulkanStreamGuest* vkStream, VkStructureType rootType,
3868                                     VkSubpassDescription* forUnmarshaling) {
3869     (void)rootType;
3870     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags,
3871                    sizeof(VkSubpassDescriptionFlags));
3872     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
3873                    sizeof(VkPipelineBindPoint));
3874     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
3875     if (forUnmarshaling) {
3876         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i) {
3877             unmarshal_VkAttachmentReference(
3878                 vkStream, rootType,
3879                 (VkAttachmentReference*)(forUnmarshaling->pInputAttachments + i));
3880         }
3881     }
3882     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
3883     if (forUnmarshaling) {
3884         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
3885             unmarshal_VkAttachmentReference(
3886                 vkStream, rootType,
3887                 (VkAttachmentReference*)(forUnmarshaling->pColorAttachments + i));
3888         }
3889     }
3890     // WARNING PTR CHECK
3891     const VkAttachmentReference* check_pResolveAttachments;
3892     check_pResolveAttachments = (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
3893     if (forUnmarshaling->pResolveAttachments) {
3894         if (!(check_pResolveAttachments)) {
3895             fprintf(stderr,
3896                     "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and "
3897                     "host\n");
3898         }
3899         if (forUnmarshaling) {
3900             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
3901                 unmarshal_VkAttachmentReference(
3902                     vkStream, rootType,
3903                     (VkAttachmentReference*)(forUnmarshaling->pResolveAttachments + i));
3904             }
3905         }
3906     }
3907     // WARNING PTR CHECK
3908     const VkAttachmentReference* check_pDepthStencilAttachment;
3909     check_pDepthStencilAttachment = (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
3910     if (forUnmarshaling->pDepthStencilAttachment) {
3911         if (!(check_pDepthStencilAttachment)) {
3912             fprintf(stderr,
3913                     "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest "
3914                     "and host\n");
3915         }
3916         unmarshal_VkAttachmentReference(
3917             vkStream, rootType, (VkAttachmentReference*)(forUnmarshaling->pDepthStencilAttachment));
3918     }
3919     vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
3920     vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments,
3921                    forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3922 }
3923 
marshal_VkSubpassDependency(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDependency * forMarshaling)3924 void marshal_VkSubpassDependency(VulkanStreamGuest* vkStream, VkStructureType rootType,
3925                                  const VkSubpassDependency* forMarshaling) {
3926     (void)rootType;
3927     vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
3928     vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
3929     vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask,
3930                     sizeof(VkPipelineStageFlags));
3931     vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask,
3932                     sizeof(VkPipelineStageFlags));
3933     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
3934     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
3935     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
3936 }
3937 
unmarshal_VkSubpassDependency(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubpassDependency * forUnmarshaling)3938 void unmarshal_VkSubpassDependency(VulkanStreamGuest* vkStream, VkStructureType rootType,
3939                                    VkSubpassDependency* forUnmarshaling) {
3940     (void)rootType;
3941     vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
3942     vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
3943     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask,
3944                    sizeof(VkPipelineStageFlags));
3945     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask,
3946                    sizeof(VkPipelineStageFlags));
3947     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
3948     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
3949     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags,
3950                    sizeof(VkDependencyFlags));
3951 }
3952 
marshal_VkRenderPassCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassCreateInfo * forMarshaling)3953 void marshal_VkRenderPassCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3954                                     const VkRenderPassCreateInfo* forMarshaling) {
3955     (void)rootType;
3956     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3957     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3958         rootType = forMarshaling->sType;
3959     }
3960     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
3961     vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags,
3962                     sizeof(VkRenderPassCreateFlags));
3963     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
3964     if (forMarshaling) {
3965         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
3966             marshal_VkAttachmentDescription(
3967                 vkStream, rootType,
3968                 (const VkAttachmentDescription*)(forMarshaling->pAttachments + i));
3969         }
3970     }
3971     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
3972     if (forMarshaling) {
3973         for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i) {
3974             marshal_VkSubpassDescription(
3975                 vkStream, rootType, (const VkSubpassDescription*)(forMarshaling->pSubpasses + i));
3976         }
3977     }
3978     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
3979     if (forMarshaling) {
3980         for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i) {
3981             marshal_VkSubpassDependency(
3982                 vkStream, rootType, (const VkSubpassDependency*)(forMarshaling->pDependencies + i));
3983         }
3984     }
3985 }
3986 
unmarshal_VkRenderPassCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassCreateInfo * forUnmarshaling)3987 void unmarshal_VkRenderPassCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3988                                       VkRenderPassCreateInfo* forUnmarshaling) {
3989     (void)rootType;
3990     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3991     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3992         rootType = forUnmarshaling->sType;
3993     }
3994     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
3995     vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags,
3996                    sizeof(VkRenderPassCreateFlags));
3997     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
3998     if (forUnmarshaling) {
3999         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
4000             unmarshal_VkAttachmentDescription(
4001                 vkStream, rootType, (VkAttachmentDescription*)(forUnmarshaling->pAttachments + i));
4002         }
4003     }
4004     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
4005     if (forUnmarshaling) {
4006         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i) {
4007             unmarshal_VkSubpassDescription(
4008                 vkStream, rootType, (VkSubpassDescription*)(forUnmarshaling->pSubpasses + i));
4009         }
4010     }
4011     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
4012     if (forUnmarshaling) {
4013         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i) {
4014             unmarshal_VkSubpassDependency(
4015                 vkStream, rootType, (VkSubpassDependency*)(forUnmarshaling->pDependencies + i));
4016         }
4017     }
4018 }
4019 
marshal_VkCommandPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandPoolCreateInfo * forMarshaling)4020 void marshal_VkCommandPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4021                                      const VkCommandPoolCreateInfo* 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     vkStream->write((VkCommandPoolCreateFlags*)&forMarshaling->flags,
4029                     sizeof(VkCommandPoolCreateFlags));
4030     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
4031 }
4032 
unmarshal_VkCommandPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCommandPoolCreateInfo * forUnmarshaling)4033 void unmarshal_VkCommandPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4034                                        VkCommandPoolCreateInfo* forUnmarshaling) {
4035     (void)rootType;
4036     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4037     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4038         rootType = forUnmarshaling->sType;
4039     }
4040     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4041     vkStream->read((VkCommandPoolCreateFlags*)&forUnmarshaling->flags,
4042                    sizeof(VkCommandPoolCreateFlags));
4043     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
4044 }
4045 
marshal_VkCommandBufferAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferAllocateInfo * forMarshaling)4046 void marshal_VkCommandBufferAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4047                                          const VkCommandBufferAllocateInfo* forMarshaling) {
4048     (void)rootType;
4049     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4050     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4051         rootType = forMarshaling->sType;
4052     }
4053     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4054     uint64_t cgen_var_0;
4055     vkStream->handleMapping()->mapHandles_VkCommandPool_u64(&forMarshaling->commandPool,
4056                                                             &cgen_var_0, 1);
4057     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4058     vkStream->write((VkCommandBufferLevel*)&forMarshaling->level, sizeof(VkCommandBufferLevel));
4059     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
4060 }
4061 
unmarshal_VkCommandBufferAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCommandBufferAllocateInfo * forUnmarshaling)4062 void unmarshal_VkCommandBufferAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4063                                            VkCommandBufferAllocateInfo* forUnmarshaling) {
4064     (void)rootType;
4065     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4066     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4067         rootType = forUnmarshaling->sType;
4068     }
4069     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4070     uint64_t cgen_var_0;
4071     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4072     vkStream->handleMapping()->mapHandles_u64_VkCommandPool(
4073         &cgen_var_0, (VkCommandPool*)&forUnmarshaling->commandPool, 1);
4074     vkStream->read((VkCommandBufferLevel*)&forUnmarshaling->level, sizeof(VkCommandBufferLevel));
4075     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
4076 }
4077 
marshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceInfo * forMarshaling)4078 void marshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4079                                             const VkCommandBufferInheritanceInfo* forMarshaling) {
4080     (void)rootType;
4081     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4082     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4083         rootType = forMarshaling->sType;
4084     }
4085     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4086     uint64_t cgen_var_0;
4087     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0,
4088                                                            1);
4089     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4090     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
4091     uint64_t cgen_var_1;
4092     vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer,
4093                                                             &cgen_var_1, 1);
4094     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
4095     vkStream->write((VkBool32*)&forMarshaling->occlusionQueryEnable, sizeof(VkBool32));
4096     vkStream->write((VkQueryControlFlags*)&forMarshaling->queryFlags, sizeof(VkQueryControlFlags));
4097     vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics,
4098                     sizeof(VkQueryPipelineStatisticFlags));
4099 }
4100 
unmarshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCommandBufferInheritanceInfo * forUnmarshaling)4101 void unmarshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4102                                               VkCommandBufferInheritanceInfo* forUnmarshaling) {
4103     (void)rootType;
4104     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4105     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4106         rootType = forUnmarshaling->sType;
4107     }
4108     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4109     uint64_t cgen_var_0;
4110     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4111     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
4112         &cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
4113     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
4114     uint64_t cgen_var_1;
4115     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
4116     vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(
4117         &cgen_var_1, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
4118     vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryEnable, sizeof(VkBool32));
4119     vkStream->read((VkQueryControlFlags*)&forUnmarshaling->queryFlags, sizeof(VkQueryControlFlags));
4120     vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics,
4121                    sizeof(VkQueryPipelineStatisticFlags));
4122 }
4123 
marshal_VkCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferBeginInfo * forMarshaling)4124 void marshal_VkCommandBufferBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4125                                       const VkCommandBufferBeginInfo* forMarshaling) {
4126     (void)rootType;
4127     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4128     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4129         rootType = forMarshaling->sType;
4130     }
4131     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4132     vkStream->write((VkCommandBufferUsageFlags*)&forMarshaling->flags,
4133                     sizeof(VkCommandBufferUsageFlags));
4134     // WARNING PTR CHECK
4135     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
4136     vkStream->putBe64(cgen_var_0);
4137     if (forMarshaling->pInheritanceInfo) {
4138         marshal_VkCommandBufferInheritanceInfo(
4139             vkStream, rootType,
4140             (const VkCommandBufferInheritanceInfo*)(forMarshaling->pInheritanceInfo));
4141     }
4142 }
4143 
unmarshal_VkCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCommandBufferBeginInfo * forUnmarshaling)4144 void unmarshal_VkCommandBufferBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4145                                         VkCommandBufferBeginInfo* forUnmarshaling) {
4146     (void)rootType;
4147     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4148     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4149         rootType = forUnmarshaling->sType;
4150     }
4151     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4152     vkStream->read((VkCommandBufferUsageFlags*)&forUnmarshaling->flags,
4153                    sizeof(VkCommandBufferUsageFlags));
4154     // WARNING PTR CHECK
4155     const VkCommandBufferInheritanceInfo* check_pInheritanceInfo;
4156     check_pInheritanceInfo = (const VkCommandBufferInheritanceInfo*)(uintptr_t)vkStream->getBe64();
4157     if (forUnmarshaling->pInheritanceInfo) {
4158         if (!(check_pInheritanceInfo)) {
4159             fprintf(
4160                 stderr,
4161                 "fatal: forUnmarshaling->pInheritanceInfo inconsistent between guest and host\n");
4162         }
4163         unmarshal_VkCommandBufferInheritanceInfo(
4164             vkStream, rootType,
4165             (VkCommandBufferInheritanceInfo*)(forUnmarshaling->pInheritanceInfo));
4166     }
4167 }
4168 
marshal_VkBufferCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferCopy * forMarshaling)4169 void marshal_VkBufferCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
4170                           const VkBufferCopy* forMarshaling) {
4171     (void)rootType;
4172     vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
4173     vkStream->write((VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
4174     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
4175 }
4176 
unmarshal_VkBufferCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferCopy * forUnmarshaling)4177 void unmarshal_VkBufferCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
4178                             VkBufferCopy* forUnmarshaling) {
4179     (void)rootType;
4180     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
4181     vkStream->read((VkDeviceSize*)&forUnmarshaling->dstOffset, sizeof(VkDeviceSize));
4182     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
4183 }
4184 
marshal_VkImageSubresourceLayers(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresourceLayers * forMarshaling)4185 void marshal_VkImageSubresourceLayers(VulkanStreamGuest* vkStream, VkStructureType rootType,
4186                                       const VkImageSubresourceLayers* forMarshaling) {
4187     (void)rootType;
4188     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
4189     vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
4190     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
4191     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
4192 }
4193 
unmarshal_VkImageSubresourceLayers(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageSubresourceLayers * forUnmarshaling)4194 void unmarshal_VkImageSubresourceLayers(VulkanStreamGuest* vkStream, VkStructureType rootType,
4195                                         VkImageSubresourceLayers* forUnmarshaling) {
4196     (void)rootType;
4197     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
4198     vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
4199     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
4200     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
4201 }
4202 
marshal_VkBufferImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferImageCopy * forMarshaling)4203 void marshal_VkBufferImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
4204                                const VkBufferImageCopy* forMarshaling) {
4205     (void)rootType;
4206     vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
4207     vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
4208     vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
4209     marshal_VkImageSubresourceLayers(vkStream, rootType,
4210                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
4211     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
4212     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
4213 }
4214 
unmarshal_VkBufferImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferImageCopy * forUnmarshaling)4215 void unmarshal_VkBufferImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
4216                                  VkBufferImageCopy* forUnmarshaling) {
4217     (void)rootType;
4218     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
4219     vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
4220     vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
4221     unmarshal_VkImageSubresourceLayers(
4222         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
4223     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
4224     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
4225 }
4226 
marshal_VkClearColorValue(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearColorValue * forMarshaling)4227 void marshal_VkClearColorValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
4228                                const VkClearColorValue* forMarshaling) {
4229     (void)rootType;
4230     vkStream->write((float*)forMarshaling->float32, 4 * sizeof(float));
4231 }
4232 
unmarshal_VkClearColorValue(VulkanStreamGuest * vkStream,VkStructureType rootType,VkClearColorValue * forUnmarshaling)4233 void unmarshal_VkClearColorValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
4234                                  VkClearColorValue* forUnmarshaling) {
4235     (void)rootType;
4236     vkStream->read((float*)forUnmarshaling->float32, 4 * sizeof(float));
4237 }
4238 
marshal_VkClearDepthStencilValue(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearDepthStencilValue * forMarshaling)4239 void marshal_VkClearDepthStencilValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
4240                                       const VkClearDepthStencilValue* forMarshaling) {
4241     (void)rootType;
4242     vkStream->write((float*)&forMarshaling->depth, sizeof(float));
4243     vkStream->write((uint32_t*)&forMarshaling->stencil, sizeof(uint32_t));
4244 }
4245 
unmarshal_VkClearDepthStencilValue(VulkanStreamGuest * vkStream,VkStructureType rootType,VkClearDepthStencilValue * forUnmarshaling)4246 void unmarshal_VkClearDepthStencilValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
4247                                         VkClearDepthStencilValue* forUnmarshaling) {
4248     (void)rootType;
4249     vkStream->read((float*)&forUnmarshaling->depth, sizeof(float));
4250     vkStream->read((uint32_t*)&forUnmarshaling->stencil, sizeof(uint32_t));
4251 }
4252 
marshal_VkClearValue(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearValue * forMarshaling)4253 void marshal_VkClearValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
4254                           const VkClearValue* forMarshaling) {
4255     (void)rootType;
4256     marshal_VkClearColorValue(vkStream, rootType, (VkClearColorValue*)(&forMarshaling->color));
4257 }
4258 
unmarshal_VkClearValue(VulkanStreamGuest * vkStream,VkStructureType rootType,VkClearValue * forUnmarshaling)4259 void unmarshal_VkClearValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
4260                             VkClearValue* forUnmarshaling) {
4261     (void)rootType;
4262     unmarshal_VkClearColorValue(vkStream, rootType, (VkClearColorValue*)(&forUnmarshaling->color));
4263 }
4264 
marshal_VkClearAttachment(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearAttachment * forMarshaling)4265 void marshal_VkClearAttachment(VulkanStreamGuest* vkStream, VkStructureType rootType,
4266                                const VkClearAttachment* forMarshaling) {
4267     (void)rootType;
4268     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
4269     vkStream->write((uint32_t*)&forMarshaling->colorAttachment, sizeof(uint32_t));
4270     marshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue));
4271 }
4272 
unmarshal_VkClearAttachment(VulkanStreamGuest * vkStream,VkStructureType rootType,VkClearAttachment * forUnmarshaling)4273 void unmarshal_VkClearAttachment(VulkanStreamGuest* vkStream, VkStructureType rootType,
4274                                  VkClearAttachment* forUnmarshaling) {
4275     (void)rootType;
4276     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
4277     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachment, sizeof(uint32_t));
4278     unmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forUnmarshaling->clearValue));
4279 }
4280 
marshal_VkClearRect(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearRect * forMarshaling)4281 void marshal_VkClearRect(VulkanStreamGuest* vkStream, VkStructureType rootType,
4282                          const VkClearRect* forMarshaling) {
4283     (void)rootType;
4284     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->rect));
4285     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
4286     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
4287 }
4288 
unmarshal_VkClearRect(VulkanStreamGuest * vkStream,VkStructureType rootType,VkClearRect * forUnmarshaling)4289 void unmarshal_VkClearRect(VulkanStreamGuest* vkStream, VkStructureType rootType,
4290                            VkClearRect* forUnmarshaling) {
4291     (void)rootType;
4292     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->rect));
4293     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
4294     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
4295 }
4296 
marshal_VkImageBlit(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageBlit * forMarshaling)4297 void marshal_VkImageBlit(VulkanStreamGuest* vkStream, VkStructureType rootType,
4298                          const VkImageBlit* forMarshaling) {
4299     (void)rootType;
4300     marshal_VkImageSubresourceLayers(vkStream, rootType,
4301                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4302     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4303         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->srcOffsets + i));
4304     }
4305     marshal_VkImageSubresourceLayers(vkStream, rootType,
4306                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4307     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4308         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->dstOffsets + i));
4309     }
4310 }
4311 
unmarshal_VkImageBlit(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageBlit * forUnmarshaling)4312 void unmarshal_VkImageBlit(VulkanStreamGuest* vkStream, VkStructureType rootType,
4313                            VkImageBlit* forUnmarshaling) {
4314     (void)rootType;
4315     unmarshal_VkImageSubresourceLayers(
4316         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4317     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4318         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
4319     }
4320     unmarshal_VkImageSubresourceLayers(
4321         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4322     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
4323         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
4324     }
4325 }
4326 
marshal_VkImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCopy * forMarshaling)4327 void marshal_VkImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
4328                          const VkImageCopy* forMarshaling) {
4329     (void)rootType;
4330     marshal_VkImageSubresourceLayers(vkStream, rootType,
4331                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4332     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
4333     marshal_VkImageSubresourceLayers(vkStream, rootType,
4334                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4335     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
4336     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
4337 }
4338 
unmarshal_VkImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageCopy * forUnmarshaling)4339 void unmarshal_VkImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
4340                            VkImageCopy* forUnmarshaling) {
4341     (void)rootType;
4342     unmarshal_VkImageSubresourceLayers(
4343         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4344     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
4345     unmarshal_VkImageSubresourceLayers(
4346         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4347     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
4348     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
4349 }
4350 
marshal_VkImageResolve(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageResolve * forMarshaling)4351 void marshal_VkImageResolve(VulkanStreamGuest* vkStream, VkStructureType rootType,
4352                             const VkImageResolve* forMarshaling) {
4353     (void)rootType;
4354     marshal_VkImageSubresourceLayers(vkStream, rootType,
4355                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4356     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
4357     marshal_VkImageSubresourceLayers(vkStream, rootType,
4358                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4359     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
4360     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
4361 }
4362 
unmarshal_VkImageResolve(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageResolve * forUnmarshaling)4363 void unmarshal_VkImageResolve(VulkanStreamGuest* vkStream, VkStructureType rootType,
4364                               VkImageResolve* forUnmarshaling) {
4365     (void)rootType;
4366     unmarshal_VkImageSubresourceLayers(
4367         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4368     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
4369     unmarshal_VkImageSubresourceLayers(
4370         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4371     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
4372     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
4373 }
4374 
marshal_VkRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassBeginInfo * forMarshaling)4375 void marshal_VkRenderPassBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4376                                    const VkRenderPassBeginInfo* forMarshaling) {
4377     (void)rootType;
4378     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4380         rootType = forMarshaling->sType;
4381     }
4382     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4383     uint64_t cgen_var_0;
4384     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0,
4385                                                            1);
4386     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4387     uint64_t cgen_var_1;
4388     vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer,
4389                                                             &cgen_var_1, 1);
4390     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
4391     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea));
4392     vkStream->write((uint32_t*)&forMarshaling->clearValueCount, sizeof(uint32_t));
4393     // WARNING PTR CHECK
4394     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
4395     vkStream->putBe64(cgen_var_2);
4396     if (forMarshaling->pClearValues) {
4397         if (forMarshaling) {
4398             for (uint32_t i = 0; i < (uint32_t)forMarshaling->clearValueCount; ++i) {
4399                 marshal_VkClearValue(vkStream, rootType,
4400                                      (const VkClearValue*)(forMarshaling->pClearValues + i));
4401             }
4402         }
4403     }
4404 }
4405 
unmarshal_VkRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassBeginInfo * forUnmarshaling)4406 void unmarshal_VkRenderPassBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4407                                      VkRenderPassBeginInfo* forUnmarshaling) {
4408     (void)rootType;
4409     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4410     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4411         rootType = forUnmarshaling->sType;
4412     }
4413     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4414     uint64_t cgen_var_0;
4415     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4416     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(
4417         &cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
4418     uint64_t cgen_var_1;
4419     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
4420     vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(
4421         &cgen_var_1, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
4422     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea));
4423     vkStream->read((uint32_t*)&forUnmarshaling->clearValueCount, sizeof(uint32_t));
4424     // WARNING PTR CHECK
4425     const VkClearValue* check_pClearValues;
4426     check_pClearValues = (const VkClearValue*)(uintptr_t)vkStream->getBe64();
4427     if (forUnmarshaling->pClearValues) {
4428         if (!(check_pClearValues)) {
4429             fprintf(stderr,
4430                     "fatal: forUnmarshaling->pClearValues inconsistent between guest and host\n");
4431         }
4432         if (forUnmarshaling) {
4433             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->clearValueCount; ++i) {
4434                 unmarshal_VkClearValue(vkStream, rootType,
4435                                        (VkClearValue*)(forUnmarshaling->pClearValues + i));
4436             }
4437         }
4438     }
4439 }
4440 
4441 #endif
4442 #ifdef VK_VERSION_1_1
marshal_VkPhysicalDeviceSubgroupProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupProperties * forMarshaling)4443 void marshal_VkPhysicalDeviceSubgroupProperties(
4444     VulkanStreamGuest* vkStream, VkStructureType rootType,
4445     const VkPhysicalDeviceSubgroupProperties* forMarshaling) {
4446     (void)rootType;
4447     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4448     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4449         rootType = forMarshaling->sType;
4450     }
4451     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4452     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
4453     vkStream->write((VkShaderStageFlags*)&forMarshaling->supportedStages,
4454                     sizeof(VkShaderStageFlags));
4455     vkStream->write((VkSubgroupFeatureFlags*)&forMarshaling->supportedOperations,
4456                     sizeof(VkSubgroupFeatureFlags));
4457     vkStream->write((VkBool32*)&forMarshaling->quadOperationsInAllStages, sizeof(VkBool32));
4458 }
4459 
unmarshal_VkPhysicalDeviceSubgroupProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupProperties * forUnmarshaling)4460 void unmarshal_VkPhysicalDeviceSubgroupProperties(
4461     VulkanStreamGuest* vkStream, VkStructureType rootType,
4462     VkPhysicalDeviceSubgroupProperties* forUnmarshaling) {
4463     (void)rootType;
4464     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4465     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4466         rootType = forUnmarshaling->sType;
4467     }
4468     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4469     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
4470     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->supportedStages,
4471                    sizeof(VkShaderStageFlags));
4472     vkStream->read((VkSubgroupFeatureFlags*)&forUnmarshaling->supportedOperations,
4473                    sizeof(VkSubgroupFeatureFlags));
4474     vkStream->read((VkBool32*)&forUnmarshaling->quadOperationsInAllStages, sizeof(VkBool32));
4475 }
4476 
marshal_VkBindBufferMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindBufferMemoryInfo * forMarshaling)4477 void marshal_VkBindBufferMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4478                                     const VkBindBufferMemoryInfo* forMarshaling) {
4479     (void)rootType;
4480     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4481     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4482         rootType = forMarshaling->sType;
4483     }
4484     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4485     uint64_t cgen_var_0;
4486     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
4487     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4488     uint64_t cgen_var_1;
4489     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1,
4490                                                              1);
4491     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
4492     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
4493 }
4494 
unmarshal_VkBindBufferMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindBufferMemoryInfo * forUnmarshaling)4495 void unmarshal_VkBindBufferMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4496                                       VkBindBufferMemoryInfo* forUnmarshaling) {
4497     (void)rootType;
4498     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4499     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4500         rootType = forUnmarshaling->sType;
4501     }
4502     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4503     uint64_t cgen_var_0;
4504     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4505     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
4506                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
4507     uint64_t cgen_var_1;
4508     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
4509     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
4510         &cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
4511     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
4512 }
4513 
marshal_VkBindImageMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindImageMemoryInfo * forMarshaling)4514 void marshal_VkBindImageMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4515                                    const VkBindImageMemoryInfo* forMarshaling) {
4516     (void)rootType;
4517     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4518     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4519         rootType = forMarshaling->sType;
4520     }
4521     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4522     uint64_t cgen_var_0;
4523     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
4524     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4525     uint64_t cgen_var_1;
4526     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1,
4527                                                              1);
4528     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
4529     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
4530 }
4531 
unmarshal_VkBindImageMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindImageMemoryInfo * forUnmarshaling)4532 void unmarshal_VkBindImageMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4533                                      VkBindImageMemoryInfo* forUnmarshaling) {
4534     (void)rootType;
4535     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4536     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4537         rootType = forUnmarshaling->sType;
4538     }
4539     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4540     uint64_t cgen_var_0;
4541     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4542     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
4543                                                       (VkImage*)&forUnmarshaling->image, 1);
4544     uint64_t cgen_var_1;
4545     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
4546     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
4547         &cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
4548     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
4549 }
4550 
marshal_VkPhysicalDevice16BitStorageFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevice16BitStorageFeatures * forMarshaling)4551 void marshal_VkPhysicalDevice16BitStorageFeatures(
4552     VulkanStreamGuest* vkStream, VkStructureType rootType,
4553     const VkPhysicalDevice16BitStorageFeatures* forMarshaling) {
4554     (void)rootType;
4555     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4556     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4557         rootType = forMarshaling->sType;
4558     }
4559     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4560     vkStream->write((VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
4561     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess,
4562                     sizeof(VkBool32));
4563     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
4564     vkStream->write((VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
4565 }
4566 
unmarshal_VkPhysicalDevice16BitStorageFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevice16BitStorageFeatures * forUnmarshaling)4567 void unmarshal_VkPhysicalDevice16BitStorageFeatures(
4568     VulkanStreamGuest* vkStream, VkStructureType rootType,
4569     VkPhysicalDevice16BitStorageFeatures* forUnmarshaling) {
4570     (void)rootType;
4571     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4572     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4573         rootType = forUnmarshaling->sType;
4574     }
4575     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4576     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
4577     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess,
4578                    sizeof(VkBool32));
4579     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant16, sizeof(VkBool32));
4580     vkStream->read((VkBool32*)&forUnmarshaling->storageInputOutput16, sizeof(VkBool32));
4581 }
4582 
marshal_VkMemoryDedicatedRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryDedicatedRequirements * forMarshaling)4583 void marshal_VkMemoryDedicatedRequirements(VulkanStreamGuest* vkStream, VkStructureType rootType,
4584                                            const VkMemoryDedicatedRequirements* forMarshaling) {
4585     (void)rootType;
4586     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4587     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4588         rootType = forMarshaling->sType;
4589     }
4590     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4591     vkStream->write((VkBool32*)&forMarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
4592     vkStream->write((VkBool32*)&forMarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
4593 }
4594 
unmarshal_VkMemoryDedicatedRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryDedicatedRequirements * forUnmarshaling)4595 void unmarshal_VkMemoryDedicatedRequirements(VulkanStreamGuest* vkStream, VkStructureType rootType,
4596                                              VkMemoryDedicatedRequirements* forUnmarshaling) {
4597     (void)rootType;
4598     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4599     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4600         rootType = forUnmarshaling->sType;
4601     }
4602     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4603     vkStream->read((VkBool32*)&forUnmarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
4604     vkStream->read((VkBool32*)&forUnmarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
4605 }
4606 
marshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryDedicatedAllocateInfo * forMarshaling)4607 void marshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4608                                            const VkMemoryDedicatedAllocateInfo* forMarshaling) {
4609     (void)rootType;
4610     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4611     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4612         rootType = forMarshaling->sType;
4613     }
4614     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4615     uint64_t cgen_var_0;
4616     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
4617     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4618     uint64_t cgen_var_1;
4619     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_1, 1);
4620     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
4621 }
4622 
unmarshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryDedicatedAllocateInfo * forUnmarshaling)4623 void unmarshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4624                                              VkMemoryDedicatedAllocateInfo* forUnmarshaling) {
4625     (void)rootType;
4626     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4627     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4628         rootType = forUnmarshaling->sType;
4629     }
4630     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4631     uint64_t cgen_var_0;
4632     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4633     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
4634                                                       (VkImage*)&forUnmarshaling->image, 1);
4635     uint64_t cgen_var_1;
4636     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
4637     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
4638                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
4639 }
4640 
marshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryAllocateFlagsInfo * forMarshaling)4641 void marshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4642                                        const VkMemoryAllocateFlagsInfo* forMarshaling) {
4643     (void)rootType;
4644     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4645     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4646         rootType = forMarshaling->sType;
4647     }
4648     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4649     vkStream->write((VkMemoryAllocateFlags*)&forMarshaling->flags, sizeof(VkMemoryAllocateFlags));
4650     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4651 }
4652 
unmarshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryAllocateFlagsInfo * forUnmarshaling)4653 void unmarshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4654                                          VkMemoryAllocateFlagsInfo* forUnmarshaling) {
4655     (void)rootType;
4656     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4657     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4658         rootType = forUnmarshaling->sType;
4659     }
4660     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4661     vkStream->read((VkMemoryAllocateFlags*)&forUnmarshaling->flags, sizeof(VkMemoryAllocateFlags));
4662     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4663 }
4664 
marshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupRenderPassBeginInfo * forMarshaling)4665 void marshal_VkDeviceGroupRenderPassBeginInfo(
4666     VulkanStreamGuest* vkStream, VkStructureType rootType,
4667     const VkDeviceGroupRenderPassBeginInfo* forMarshaling) {
4668     (void)rootType;
4669     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4670     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4671         rootType = forMarshaling->sType;
4672     }
4673     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4674     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4675     vkStream->write((uint32_t*)&forMarshaling->deviceRenderAreaCount, sizeof(uint32_t));
4676     if (forMarshaling) {
4677         for (uint32_t i = 0; i < (uint32_t)forMarshaling->deviceRenderAreaCount; ++i) {
4678             marshal_VkRect2D(vkStream, rootType,
4679                              (const VkRect2D*)(forMarshaling->pDeviceRenderAreas + i));
4680         }
4681     }
4682 }
4683 
unmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceGroupRenderPassBeginInfo * forUnmarshaling)4684 void unmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest* vkStream,
4685                                                 VkStructureType rootType,
4686                                                 VkDeviceGroupRenderPassBeginInfo* forUnmarshaling) {
4687     (void)rootType;
4688     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4689     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4690         rootType = forUnmarshaling->sType;
4691     }
4692     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4693     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4694     vkStream->read((uint32_t*)&forUnmarshaling->deviceRenderAreaCount, sizeof(uint32_t));
4695     if (forUnmarshaling) {
4696         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->deviceRenderAreaCount; ++i) {
4697             unmarshal_VkRect2D(vkStream, rootType,
4698                                (VkRect2D*)(forUnmarshaling->pDeviceRenderAreas + i));
4699         }
4700     }
4701 }
4702 
marshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupCommandBufferBeginInfo * forMarshaling)4703 void marshal_VkDeviceGroupCommandBufferBeginInfo(
4704     VulkanStreamGuest* vkStream, VkStructureType rootType,
4705     const VkDeviceGroupCommandBufferBeginInfo* forMarshaling) {
4706     (void)rootType;
4707     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4708     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4709         rootType = forMarshaling->sType;
4710     }
4711     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4712     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4713 }
4714 
unmarshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceGroupCommandBufferBeginInfo * forUnmarshaling)4715 void unmarshal_VkDeviceGroupCommandBufferBeginInfo(
4716     VulkanStreamGuest* vkStream, VkStructureType rootType,
4717     VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling) {
4718     (void)rootType;
4719     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4720     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4721         rootType = forUnmarshaling->sType;
4722     }
4723     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4724     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4725 }
4726 
marshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupSubmitInfo * forMarshaling)4727 void marshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4728                                      const VkDeviceGroupSubmitInfo* forMarshaling) {
4729     (void)rootType;
4730     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4731     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4732         rootType = forMarshaling->sType;
4733     }
4734     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4735     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
4736     vkStream->write((const uint32_t*)forMarshaling->pWaitSemaphoreDeviceIndices,
4737                     forMarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4738     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
4739     vkStream->write((const uint32_t*)forMarshaling->pCommandBufferDeviceMasks,
4740                     forMarshaling->commandBufferCount * sizeof(const uint32_t));
4741     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
4742     vkStream->write((const uint32_t*)forMarshaling->pSignalSemaphoreDeviceIndices,
4743                     forMarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4744 }
4745 
unmarshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceGroupSubmitInfo * forUnmarshaling)4746 void unmarshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4747                                        VkDeviceGroupSubmitInfo* forUnmarshaling) {
4748     (void)rootType;
4749     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4750     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4751         rootType = forUnmarshaling->sType;
4752     }
4753     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4754     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
4755     vkStream->read((uint32_t*)forUnmarshaling->pWaitSemaphoreDeviceIndices,
4756                    forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4757     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
4758     vkStream->read((uint32_t*)forUnmarshaling->pCommandBufferDeviceMasks,
4759                    forUnmarshaling->commandBufferCount * sizeof(const uint32_t));
4760     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
4761     vkStream->read((uint32_t*)forUnmarshaling->pSignalSemaphoreDeviceIndices,
4762                    forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4763 }
4764 
marshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupBindSparseInfo * forMarshaling)4765 void marshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4766                                          const VkDeviceGroupBindSparseInfo* forMarshaling) {
4767     (void)rootType;
4768     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4769     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4770         rootType = forMarshaling->sType;
4771     }
4772     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4773     vkStream->write((uint32_t*)&forMarshaling->resourceDeviceIndex, sizeof(uint32_t));
4774     vkStream->write((uint32_t*)&forMarshaling->memoryDeviceIndex, sizeof(uint32_t));
4775 }
4776 
unmarshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceGroupBindSparseInfo * forUnmarshaling)4777 void unmarshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4778                                            VkDeviceGroupBindSparseInfo* forUnmarshaling) {
4779     (void)rootType;
4780     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4781     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4782         rootType = forUnmarshaling->sType;
4783     }
4784     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4785     vkStream->read((uint32_t*)&forUnmarshaling->resourceDeviceIndex, sizeof(uint32_t));
4786     vkStream->read((uint32_t*)&forUnmarshaling->memoryDeviceIndex, sizeof(uint32_t));
4787 }
4788 
marshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindBufferMemoryDeviceGroupInfo * forMarshaling)4789 void marshal_VkBindBufferMemoryDeviceGroupInfo(
4790     VulkanStreamGuest* vkStream, VkStructureType rootType,
4791     const VkBindBufferMemoryDeviceGroupInfo* forMarshaling) {
4792     (void)rootType;
4793     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4794     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4795         rootType = forMarshaling->sType;
4796     }
4797     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4798     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
4799     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices,
4800                     forMarshaling->deviceIndexCount * sizeof(const uint32_t));
4801 }
4802 
unmarshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindBufferMemoryDeviceGroupInfo * forUnmarshaling)4803 void unmarshal_VkBindBufferMemoryDeviceGroupInfo(
4804     VulkanStreamGuest* vkStream, VkStructureType rootType,
4805     VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling) {
4806     (void)rootType;
4807     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4808     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4809         rootType = forUnmarshaling->sType;
4810     }
4811     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4812     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
4813     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices,
4814                    forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4815 }
4816 
marshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindImageMemoryDeviceGroupInfo * forMarshaling)4817 void marshal_VkBindImageMemoryDeviceGroupInfo(
4818     VulkanStreamGuest* vkStream, VkStructureType rootType,
4819     const VkBindImageMemoryDeviceGroupInfo* forMarshaling) {
4820     (void)rootType;
4821     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4822     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4823         rootType = forMarshaling->sType;
4824     }
4825     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4826     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
4827     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices,
4828                     forMarshaling->deviceIndexCount * sizeof(const uint32_t));
4829     vkStream->write((uint32_t*)&forMarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
4830     if (forMarshaling) {
4831         for (uint32_t i = 0; i < (uint32_t)forMarshaling->splitInstanceBindRegionCount; ++i) {
4832             marshal_VkRect2D(vkStream, rootType,
4833                              (const VkRect2D*)(forMarshaling->pSplitInstanceBindRegions + i));
4834         }
4835     }
4836 }
4837 
unmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindImageMemoryDeviceGroupInfo * forUnmarshaling)4838 void unmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest* vkStream,
4839                                                 VkStructureType rootType,
4840                                                 VkBindImageMemoryDeviceGroupInfo* forUnmarshaling) {
4841     (void)rootType;
4842     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4843     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4844         rootType = forUnmarshaling->sType;
4845     }
4846     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4847     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
4848     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices,
4849                    forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4850     vkStream->read((uint32_t*)&forUnmarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
4851     if (forUnmarshaling) {
4852         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->splitInstanceBindRegionCount; ++i) {
4853             unmarshal_VkRect2D(vkStream, rootType,
4854                                (VkRect2D*)(forUnmarshaling->pSplitInstanceBindRegions + i));
4855         }
4856     }
4857 }
4858 
marshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGroupProperties * forMarshaling)4859 void marshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
4860                                              const VkPhysicalDeviceGroupProperties* forMarshaling) {
4861     (void)rootType;
4862     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4863     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4864         rootType = forMarshaling->sType;
4865     }
4866     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4867     vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
4868     vkStream->write((VkPhysicalDevice*)forMarshaling->physicalDevices,
4869                     VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
4870     vkStream->write((VkBool32*)&forMarshaling->subsetAllocation, sizeof(VkBool32));
4871 }
4872 
unmarshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceGroupProperties * forUnmarshaling)4873 void unmarshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest* vkStream,
4874                                                VkStructureType rootType,
4875                                                VkPhysicalDeviceGroupProperties* forUnmarshaling) {
4876     (void)rootType;
4877     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4878     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4879         rootType = forUnmarshaling->sType;
4880     }
4881     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4882     vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
4883     vkStream->read((VkPhysicalDevice*)forUnmarshaling->physicalDevices,
4884                    VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
4885     vkStream->read((VkBool32*)&forUnmarshaling->subsetAllocation, sizeof(VkBool32));
4886 }
4887 
marshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupDeviceCreateInfo * forMarshaling)4888 void marshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4889                                            const VkDeviceGroupDeviceCreateInfo* forMarshaling) {
4890     (void)rootType;
4891     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4892     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4893         rootType = forMarshaling->sType;
4894     }
4895     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4896     vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
4897     if (forMarshaling->physicalDeviceCount) {
4898         uint64_t* cgen_var_0;
4899         vkStream->alloc((void**)&cgen_var_0, forMarshaling->physicalDeviceCount * 8);
4900         vkStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(
4901             forMarshaling->pPhysicalDevices, cgen_var_0, forMarshaling->physicalDeviceCount);
4902         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->physicalDeviceCount * 8);
4903     }
4904 }
4905 
unmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceGroupDeviceCreateInfo * forUnmarshaling)4906 void unmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4907                                              VkDeviceGroupDeviceCreateInfo* forUnmarshaling) {
4908     (void)rootType;
4909     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4910     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4911         rootType = forUnmarshaling->sType;
4912     }
4913     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4914     vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
4915     if (forUnmarshaling->physicalDeviceCount) {
4916         uint64_t* cgen_var_0;
4917         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->physicalDeviceCount * 8);
4918         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->physicalDeviceCount * 8);
4919         vkStream->handleMapping()->mapHandles_u64_VkPhysicalDevice(
4920             cgen_var_0, (VkPhysicalDevice*)forUnmarshaling->pPhysicalDevices,
4921             forUnmarshaling->physicalDeviceCount);
4922     }
4923 }
4924 
marshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferMemoryRequirementsInfo2 * forMarshaling)4925 void marshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4926                                              const VkBufferMemoryRequirementsInfo2* forMarshaling) {
4927     (void)rootType;
4928     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4929     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4930         rootType = forMarshaling->sType;
4931     }
4932     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4933     uint64_t cgen_var_0;
4934     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
4935     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4936 }
4937 
unmarshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferMemoryRequirementsInfo2 * forUnmarshaling)4938 void unmarshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest* vkStream,
4939                                                VkStructureType rootType,
4940                                                VkBufferMemoryRequirementsInfo2* forUnmarshaling) {
4941     (void)rootType;
4942     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4943     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4944         rootType = forUnmarshaling->sType;
4945     }
4946     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4947     uint64_t cgen_var_0;
4948     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4949     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
4950                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
4951 }
4952 
marshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageMemoryRequirementsInfo2 * forMarshaling)4953 void marshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4954                                             const VkImageMemoryRequirementsInfo2* forMarshaling) {
4955     (void)rootType;
4956     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4957     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4958         rootType = forMarshaling->sType;
4959     }
4960     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4961     uint64_t cgen_var_0;
4962     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
4963     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4964 }
4965 
unmarshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageMemoryRequirementsInfo2 * forUnmarshaling)4966 void unmarshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4967                                               VkImageMemoryRequirementsInfo2* forUnmarshaling) {
4968     (void)rootType;
4969     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4970     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4971         rootType = forUnmarshaling->sType;
4972     }
4973     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
4974     uint64_t cgen_var_0;
4975     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
4976     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
4977                                                       (VkImage*)&forUnmarshaling->image, 1);
4978 }
4979 
marshal_VkImageSparseMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSparseMemoryRequirementsInfo2 * forMarshaling)4980 void marshal_VkImageSparseMemoryRequirementsInfo2(
4981     VulkanStreamGuest* vkStream, VkStructureType rootType,
4982     const VkImageSparseMemoryRequirementsInfo2* forMarshaling) {
4983     (void)rootType;
4984     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4985     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4986         rootType = forMarshaling->sType;
4987     }
4988     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
4989     uint64_t cgen_var_0;
4990     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
4991     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
4992 }
4993 
unmarshal_VkImageSparseMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageSparseMemoryRequirementsInfo2 * forUnmarshaling)4994 void unmarshal_VkImageSparseMemoryRequirementsInfo2(
4995     VulkanStreamGuest* vkStream, VkStructureType rootType,
4996     VkImageSparseMemoryRequirementsInfo2* forUnmarshaling) {
4997     (void)rootType;
4998     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4999     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5000         rootType = forUnmarshaling->sType;
5001     }
5002     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5003     uint64_t cgen_var_0;
5004     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5005     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
5006                                                       (VkImage*)&forUnmarshaling->image, 1);
5007 }
5008 
marshal_VkMemoryRequirements2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryRequirements2 * forMarshaling)5009 void marshal_VkMemoryRequirements2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5010                                    const VkMemoryRequirements2* forMarshaling) {
5011     (void)rootType;
5012     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5014         rootType = forMarshaling->sType;
5015     }
5016     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5017     marshal_VkMemoryRequirements(vkStream, rootType,
5018                                  (VkMemoryRequirements*)(&forMarshaling->memoryRequirements));
5019 }
5020 
unmarshal_VkMemoryRequirements2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryRequirements2 * forUnmarshaling)5021 void unmarshal_VkMemoryRequirements2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5022                                      VkMemoryRequirements2* forUnmarshaling) {
5023     (void)rootType;
5024     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5025     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5026         rootType = forUnmarshaling->sType;
5027     }
5028     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5029     unmarshal_VkMemoryRequirements(vkStream, rootType,
5030                                    (VkMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
5031 }
5032 
marshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryRequirements2 * forMarshaling)5033 void marshal_VkSparseImageMemoryRequirements2(
5034     VulkanStreamGuest* vkStream, VkStructureType rootType,
5035     const VkSparseImageMemoryRequirements2* forMarshaling) {
5036     (void)rootType;
5037     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5038     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5039         rootType = forMarshaling->sType;
5040     }
5041     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5042     marshal_VkSparseImageMemoryRequirements(
5043         vkStream, rootType, (VkSparseImageMemoryRequirements*)(&forMarshaling->memoryRequirements));
5044 }
5045 
unmarshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseImageMemoryRequirements2 * forUnmarshaling)5046 void unmarshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest* vkStream,
5047                                                 VkStructureType rootType,
5048                                                 VkSparseImageMemoryRequirements2* forUnmarshaling) {
5049     (void)rootType;
5050     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5051     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5052         rootType = forUnmarshaling->sType;
5053     }
5054     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5055     unmarshal_VkSparseImageMemoryRequirements(
5056         vkStream, rootType,
5057         (VkSparseImageMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
5058 }
5059 
marshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFeatures2 * forMarshaling)5060 void marshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5061                                        const VkPhysicalDeviceFeatures2* forMarshaling) {
5062     (void)rootType;
5063     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5064     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5065         rootType = forMarshaling->sType;
5066     }
5067     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5068     marshal_VkPhysicalDeviceFeatures(vkStream, rootType,
5069                                      (VkPhysicalDeviceFeatures*)(&forMarshaling->features));
5070 }
5071 
unmarshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceFeatures2 * forUnmarshaling)5072 void unmarshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5073                                          VkPhysicalDeviceFeatures2* forUnmarshaling) {
5074     (void)rootType;
5075     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5076     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5077         rootType = forUnmarshaling->sType;
5078     }
5079     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5080     unmarshal_VkPhysicalDeviceFeatures(vkStream, rootType,
5081                                        (VkPhysicalDeviceFeatures*)(&forUnmarshaling->features));
5082 }
5083 
marshal_VkPhysicalDeviceProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProperties2 * forMarshaling)5084 void marshal_VkPhysicalDeviceProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5085                                          const VkPhysicalDeviceProperties2* forMarshaling) {
5086     (void)rootType;
5087     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5088     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5089         rootType = forMarshaling->sType;
5090     }
5091     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5092     marshal_VkPhysicalDeviceProperties(vkStream, rootType,
5093                                        (VkPhysicalDeviceProperties*)(&forMarshaling->properties));
5094 }
5095 
unmarshal_VkPhysicalDeviceProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProperties2 * forUnmarshaling)5096 void unmarshal_VkPhysicalDeviceProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5097                                            VkPhysicalDeviceProperties2* forUnmarshaling) {
5098     (void)rootType;
5099     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5100     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5101         rootType = forUnmarshaling->sType;
5102     }
5103     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5104     unmarshal_VkPhysicalDeviceProperties(
5105         vkStream, rootType, (VkPhysicalDeviceProperties*)(&forUnmarshaling->properties));
5106 }
5107 
marshal_VkFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFormatProperties2 * forMarshaling)5108 void marshal_VkFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5109                                  const VkFormatProperties2* forMarshaling) {
5110     (void)rootType;
5111     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5112     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5113         rootType = forMarshaling->sType;
5114     }
5115     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5116     marshal_VkFormatProperties(vkStream, rootType,
5117                                (VkFormatProperties*)(&forMarshaling->formatProperties));
5118 }
5119 
unmarshal_VkFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFormatProperties2 * forUnmarshaling)5120 void unmarshal_VkFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5121                                    VkFormatProperties2* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5128     unmarshal_VkFormatProperties(vkStream, rootType,
5129                                  (VkFormatProperties*)(&forUnmarshaling->formatProperties));
5130 }
5131 
marshal_VkImageFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageFormatProperties2 * forMarshaling)5132 void marshal_VkImageFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5133                                       const VkImageFormatProperties2* forMarshaling) {
5134     (void)rootType;
5135     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5136     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5137         rootType = forMarshaling->sType;
5138     }
5139     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5140     marshal_VkImageFormatProperties(
5141         vkStream, rootType, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
5142 }
5143 
unmarshal_VkImageFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageFormatProperties2 * forUnmarshaling)5144 void unmarshal_VkImageFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5145                                         VkImageFormatProperties2* forUnmarshaling) {
5146     (void)rootType;
5147     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5148     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5149         rootType = forUnmarshaling->sType;
5150     }
5151     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5152     unmarshal_VkImageFormatProperties(
5153         vkStream, rootType, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
5154 }
5155 
marshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageFormatInfo2 * forMarshaling)5156 void marshal_VkPhysicalDeviceImageFormatInfo2(
5157     VulkanStreamGuest* vkStream, VkStructureType rootType,
5158     const VkPhysicalDeviceImageFormatInfo2* forMarshaling) {
5159     (void)rootType;
5160     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5161     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5162         rootType = forMarshaling->sType;
5163     }
5164     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5165     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5166     vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
5167     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
5168     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5169     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
5170 }
5171 
unmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageFormatInfo2 * forUnmarshaling)5172 void unmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest* vkStream,
5173                                                 VkStructureType rootType,
5174                                                 VkPhysicalDeviceImageFormatInfo2* forUnmarshaling) {
5175     (void)rootType;
5176     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5177     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5178         rootType = forUnmarshaling->sType;
5179     }
5180     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5181     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5182     vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
5183     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
5184     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5185     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
5186 }
5187 
marshal_VkQueueFamilyProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueueFamilyProperties2 * forMarshaling)5188 void marshal_VkQueueFamilyProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5189                                       const VkQueueFamilyProperties2* forMarshaling) {
5190     (void)rootType;
5191     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5193         rootType = forMarshaling->sType;
5194     }
5195     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5196     marshal_VkQueueFamilyProperties(
5197         vkStream, rootType, (VkQueueFamilyProperties*)(&forMarshaling->queueFamilyProperties));
5198 }
5199 
unmarshal_VkQueueFamilyProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkQueueFamilyProperties2 * forUnmarshaling)5200 void unmarshal_VkQueueFamilyProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5201                                         VkQueueFamilyProperties2* forUnmarshaling) {
5202     (void)rootType;
5203     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5204     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5205         rootType = forUnmarshaling->sType;
5206     }
5207     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5208     unmarshal_VkQueueFamilyProperties(
5209         vkStream, rootType, (VkQueueFamilyProperties*)(&forUnmarshaling->queueFamilyProperties));
5210 }
5211 
marshal_VkPhysicalDeviceMemoryProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties2 * forMarshaling)5212 void marshal_VkPhysicalDeviceMemoryProperties2(
5213     VulkanStreamGuest* vkStream, VkStructureType rootType,
5214     const VkPhysicalDeviceMemoryProperties2* forMarshaling) {
5215     (void)rootType;
5216     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5217     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5218         rootType = forMarshaling->sType;
5219     }
5220     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5221     marshal_VkPhysicalDeviceMemoryProperties(
5222         vkStream, rootType, (VkPhysicalDeviceMemoryProperties*)(&forMarshaling->memoryProperties));
5223 }
5224 
unmarshal_VkPhysicalDeviceMemoryProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryProperties2 * forUnmarshaling)5225 void unmarshal_VkPhysicalDeviceMemoryProperties2(
5226     VulkanStreamGuest* vkStream, VkStructureType rootType,
5227     VkPhysicalDeviceMemoryProperties2* forUnmarshaling) {
5228     (void)rootType;
5229     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5230     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5231         rootType = forUnmarshaling->sType;
5232     }
5233     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5234     unmarshal_VkPhysicalDeviceMemoryProperties(
5235         vkStream, rootType,
5236         (VkPhysicalDeviceMemoryProperties*)(&forUnmarshaling->memoryProperties));
5237 }
5238 
marshal_VkSparseImageFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageFormatProperties2 * forMarshaling)5239 void marshal_VkSparseImageFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5240                                             const VkSparseImageFormatProperties2* forMarshaling) {
5241     (void)rootType;
5242     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5243     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5244         rootType = forMarshaling->sType;
5245     }
5246     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5247     marshal_VkSparseImageFormatProperties(
5248         vkStream, rootType, (VkSparseImageFormatProperties*)(&forMarshaling->properties));
5249 }
5250 
unmarshal_VkSparseImageFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSparseImageFormatProperties2 * forUnmarshaling)5251 void unmarshal_VkSparseImageFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5252                                               VkSparseImageFormatProperties2* forUnmarshaling) {
5253     (void)rootType;
5254     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5256         rootType = forUnmarshaling->sType;
5257     }
5258     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5259     unmarshal_VkSparseImageFormatProperties(
5260         vkStream, rootType, (VkSparseImageFormatProperties*)(&forUnmarshaling->properties));
5261 }
5262 
marshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSparseImageFormatInfo2 * forMarshaling)5263 void marshal_VkPhysicalDeviceSparseImageFormatInfo2(
5264     VulkanStreamGuest* vkStream, VkStructureType rootType,
5265     const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling) {
5266     (void)rootType;
5267     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5268     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5269         rootType = forMarshaling->sType;
5270     }
5271     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5272     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5273     vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
5274     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
5275     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5276     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
5277 }
5278 
unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSparseImageFormatInfo2 * forUnmarshaling)5279 void unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
5280     VulkanStreamGuest* vkStream, VkStructureType rootType,
5281     VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling) {
5282     (void)rootType;
5283     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5284     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5285         rootType = forUnmarshaling->sType;
5286     }
5287     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5288     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5289     vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
5290     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
5291                    sizeof(VkSampleCountFlagBits));
5292     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5293     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
5294 }
5295 
marshal_VkPhysicalDevicePointClippingProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePointClippingProperties * forMarshaling)5296 void marshal_VkPhysicalDevicePointClippingProperties(
5297     VulkanStreamGuest* vkStream, VkStructureType rootType,
5298     const VkPhysicalDevicePointClippingProperties* forMarshaling) {
5299     (void)rootType;
5300     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5301     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5302         rootType = forMarshaling->sType;
5303     }
5304     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5305     vkStream->write((VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior,
5306                     sizeof(VkPointClippingBehavior));
5307 }
5308 
unmarshal_VkPhysicalDevicePointClippingProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePointClippingProperties * forUnmarshaling)5309 void unmarshal_VkPhysicalDevicePointClippingProperties(
5310     VulkanStreamGuest* vkStream, VkStructureType rootType,
5311     VkPhysicalDevicePointClippingProperties* forUnmarshaling) {
5312     (void)rootType;
5313     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5314     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5315         rootType = forUnmarshaling->sType;
5316     }
5317     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5318     vkStream->read((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior,
5319                    sizeof(VkPointClippingBehavior));
5320 }
5321 
marshal_VkInputAttachmentAspectReference(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkInputAttachmentAspectReference * forMarshaling)5322 void marshal_VkInputAttachmentAspectReference(
5323     VulkanStreamGuest* vkStream, VkStructureType rootType,
5324     const VkInputAttachmentAspectReference* forMarshaling) {
5325     (void)rootType;
5326     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
5327     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentIndex, sizeof(uint32_t));
5328     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
5329 }
5330 
unmarshal_VkInputAttachmentAspectReference(VulkanStreamGuest * vkStream,VkStructureType rootType,VkInputAttachmentAspectReference * forUnmarshaling)5331 void unmarshal_VkInputAttachmentAspectReference(VulkanStreamGuest* vkStream,
5332                                                 VkStructureType rootType,
5333                                                 VkInputAttachmentAspectReference* forUnmarshaling) {
5334     (void)rootType;
5335     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
5336     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentIndex, sizeof(uint32_t));
5337     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
5338 }
5339 
marshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassInputAttachmentAspectCreateInfo * forMarshaling)5340 void marshal_VkRenderPassInputAttachmentAspectCreateInfo(
5341     VulkanStreamGuest* vkStream, VkStructureType rootType,
5342     const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling) {
5343     (void)rootType;
5344     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5345     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5346         rootType = forMarshaling->sType;
5347     }
5348     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5349     vkStream->write((uint32_t*)&forMarshaling->aspectReferenceCount, sizeof(uint32_t));
5350     if (forMarshaling) {
5351         for (uint32_t i = 0; i < (uint32_t)forMarshaling->aspectReferenceCount; ++i) {
5352             marshal_VkInputAttachmentAspectReference(
5353                 vkStream, rootType,
5354                 (const VkInputAttachmentAspectReference*)(forMarshaling->pAspectReferences + i));
5355         }
5356     }
5357 }
5358 
unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassInputAttachmentAspectCreateInfo * forUnmarshaling)5359 void unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
5360     VulkanStreamGuest* vkStream, VkStructureType rootType,
5361     VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling) {
5362     (void)rootType;
5363     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5364     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5365         rootType = forUnmarshaling->sType;
5366     }
5367     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5368     vkStream->read((uint32_t*)&forUnmarshaling->aspectReferenceCount, sizeof(uint32_t));
5369     if (forUnmarshaling) {
5370         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->aspectReferenceCount; ++i) {
5371             unmarshal_VkInputAttachmentAspectReference(
5372                 vkStream, rootType,
5373                 (VkInputAttachmentAspectReference*)(forUnmarshaling->pAspectReferences + i));
5374         }
5375     }
5376 }
5377 
marshal_VkImageViewUsageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageViewUsageCreateInfo * forMarshaling)5378 void marshal_VkImageViewUsageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5379                                         const VkImageViewUsageCreateInfo* forMarshaling) {
5380     (void)rootType;
5381     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5382     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5383         rootType = forMarshaling->sType;
5384     }
5385     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5386     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5387 }
5388 
unmarshal_VkImageViewUsageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageViewUsageCreateInfo * forUnmarshaling)5389 void unmarshal_VkImageViewUsageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5390                                           VkImageViewUsageCreateInfo* forUnmarshaling) {
5391     (void)rootType;
5392     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5393     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5394         rootType = forUnmarshaling->sType;
5395     }
5396     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5397     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5398 }
5399 
marshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineTessellationDomainOriginStateCreateInfo * forMarshaling)5400 void marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
5401     VulkanStreamGuest* vkStream, VkStructureType rootType,
5402     const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling) {
5403     (void)rootType;
5404     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5405     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5406         rootType = forMarshaling->sType;
5407     }
5408     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5409     vkStream->write((VkTessellationDomainOrigin*)&forMarshaling->domainOrigin,
5410                     sizeof(VkTessellationDomainOrigin));
5411 }
5412 
unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineTessellationDomainOriginStateCreateInfo * forUnmarshaling)5413 void unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
5414     VulkanStreamGuest* vkStream, VkStructureType rootType,
5415     VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling) {
5416     (void)rootType;
5417     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5418     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5419         rootType = forUnmarshaling->sType;
5420     }
5421     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5422     vkStream->read((VkTessellationDomainOrigin*)&forUnmarshaling->domainOrigin,
5423                    sizeof(VkTessellationDomainOrigin));
5424 }
5425 
marshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassMultiviewCreateInfo * forMarshaling)5426 void marshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5427                                              const VkRenderPassMultiviewCreateInfo* forMarshaling) {
5428     (void)rootType;
5429     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5430     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5431         rootType = forMarshaling->sType;
5432     }
5433     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5434     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
5435     vkStream->write((const uint32_t*)forMarshaling->pViewMasks,
5436                     forMarshaling->subpassCount * sizeof(const uint32_t));
5437     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
5438     vkStream->write((const int32_t*)forMarshaling->pViewOffsets,
5439                     forMarshaling->dependencyCount * sizeof(const int32_t));
5440     vkStream->write((uint32_t*)&forMarshaling->correlationMaskCount, sizeof(uint32_t));
5441     vkStream->write((const uint32_t*)forMarshaling->pCorrelationMasks,
5442                     forMarshaling->correlationMaskCount * sizeof(const uint32_t));
5443 }
5444 
unmarshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassMultiviewCreateInfo * forUnmarshaling)5445 void unmarshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest* vkStream,
5446                                                VkStructureType rootType,
5447                                                VkRenderPassMultiviewCreateInfo* forUnmarshaling) {
5448     (void)rootType;
5449     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5450     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5451         rootType = forUnmarshaling->sType;
5452     }
5453     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5454     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
5455     vkStream->read((uint32_t*)forUnmarshaling->pViewMasks,
5456                    forUnmarshaling->subpassCount * sizeof(const uint32_t));
5457     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
5458     vkStream->read((int32_t*)forUnmarshaling->pViewOffsets,
5459                    forUnmarshaling->dependencyCount * sizeof(const int32_t));
5460     vkStream->read((uint32_t*)&forUnmarshaling->correlationMaskCount, sizeof(uint32_t));
5461     vkStream->read((uint32_t*)forUnmarshaling->pCorrelationMasks,
5462                    forUnmarshaling->correlationMaskCount * sizeof(const uint32_t));
5463 }
5464 
marshal_VkPhysicalDeviceMultiviewFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewFeatures * forMarshaling)5465 void marshal_VkPhysicalDeviceMultiviewFeatures(
5466     VulkanStreamGuest* vkStream, VkStructureType rootType,
5467     const VkPhysicalDeviceMultiviewFeatures* forMarshaling) {
5468     (void)rootType;
5469     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5470     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5471         rootType = forMarshaling->sType;
5472     }
5473     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5474     vkStream->write((VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
5475     vkStream->write((VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
5476     vkStream->write((VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
5477 }
5478 
unmarshal_VkPhysicalDeviceMultiviewFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewFeatures * forUnmarshaling)5479 void unmarshal_VkPhysicalDeviceMultiviewFeatures(
5480     VulkanStreamGuest* vkStream, VkStructureType rootType,
5481     VkPhysicalDeviceMultiviewFeatures* forUnmarshaling) {
5482     (void)rootType;
5483     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5484     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5485         rootType = forUnmarshaling->sType;
5486     }
5487     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5488     vkStream->read((VkBool32*)&forUnmarshaling->multiview, sizeof(VkBool32));
5489     vkStream->read((VkBool32*)&forUnmarshaling->multiviewGeometryShader, sizeof(VkBool32));
5490     vkStream->read((VkBool32*)&forUnmarshaling->multiviewTessellationShader, sizeof(VkBool32));
5491 }
5492 
marshal_VkPhysicalDeviceMultiviewProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewProperties * forMarshaling)5493 void marshal_VkPhysicalDeviceMultiviewProperties(
5494     VulkanStreamGuest* vkStream, VkStructureType rootType,
5495     const VkPhysicalDeviceMultiviewProperties* forMarshaling) {
5496     (void)rootType;
5497     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5498     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5499         rootType = forMarshaling->sType;
5500     }
5501     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5502     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
5503     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
5504 }
5505 
unmarshal_VkPhysicalDeviceMultiviewProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewProperties * forUnmarshaling)5506 void unmarshal_VkPhysicalDeviceMultiviewProperties(
5507     VulkanStreamGuest* vkStream, VkStructureType rootType,
5508     VkPhysicalDeviceMultiviewProperties* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5515     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, sizeof(uint32_t));
5516     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
5517 }
5518 
marshal_VkPhysicalDeviceVariablePointersFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVariablePointersFeatures * forMarshaling)5519 void marshal_VkPhysicalDeviceVariablePointersFeatures(
5520     VulkanStreamGuest* vkStream, VkStructureType rootType,
5521     const VkPhysicalDeviceVariablePointersFeatures* forMarshaling) {
5522     (void)rootType;
5523     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5524     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5525         rootType = forMarshaling->sType;
5526     }
5527     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5528     vkStream->write((VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
5529     vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
5530 }
5531 
unmarshal_VkPhysicalDeviceVariablePointersFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVariablePointersFeatures * forUnmarshaling)5532 void unmarshal_VkPhysicalDeviceVariablePointersFeatures(
5533     VulkanStreamGuest* vkStream, VkStructureType rootType,
5534     VkPhysicalDeviceVariablePointersFeatures* forUnmarshaling) {
5535     (void)rootType;
5536     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5537     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5538         rootType = forUnmarshaling->sType;
5539     }
5540     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5541     vkStream->read((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
5542     vkStream->read((VkBool32*)&forUnmarshaling->variablePointers, sizeof(VkBool32));
5543 }
5544 
marshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryFeatures * forMarshaling)5545 void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
5546     VulkanStreamGuest* vkStream, VkStructureType rootType,
5547     const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling) {
5548     (void)rootType;
5549     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5550     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5551         rootType = forMarshaling->sType;
5552     }
5553     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5554     vkStream->write((VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
5555 }
5556 
unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProtectedMemoryFeatures * forUnmarshaling)5557 void unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
5558     VulkanStreamGuest* vkStream, VkStructureType rootType,
5559     VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling) {
5560     (void)rootType;
5561     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5562     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5563         rootType = forUnmarshaling->sType;
5564     }
5565     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5566     vkStream->read((VkBool32*)&forUnmarshaling->protectedMemory, sizeof(VkBool32));
5567 }
5568 
marshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryProperties * forMarshaling)5569 void marshal_VkPhysicalDeviceProtectedMemoryProperties(
5570     VulkanStreamGuest* vkStream, VkStructureType rootType,
5571     const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling) {
5572     (void)rootType;
5573     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5574     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5575         rootType = forMarshaling->sType;
5576     }
5577     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5578     vkStream->write((VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
5579 }
5580 
unmarshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProtectedMemoryProperties * forUnmarshaling)5581 void unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
5582     VulkanStreamGuest* vkStream, VkStructureType rootType,
5583     VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling) {
5584     (void)rootType;
5585     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5586     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5587         rootType = forUnmarshaling->sType;
5588     }
5589     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5590     vkStream->read((VkBool32*)&forUnmarshaling->protectedNoFault, sizeof(VkBool32));
5591 }
5592 
marshal_VkDeviceQueueInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceQueueInfo2 * forMarshaling)5593 void marshal_VkDeviceQueueInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5594                                 const VkDeviceQueueInfo2* forMarshaling) {
5595     (void)rootType;
5596     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5597     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5598         rootType = forMarshaling->sType;
5599     }
5600     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5601     vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags,
5602                     sizeof(VkDeviceQueueCreateFlags));
5603     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
5604     vkStream->write((uint32_t*)&forMarshaling->queueIndex, sizeof(uint32_t));
5605 }
5606 
unmarshal_VkDeviceQueueInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceQueueInfo2 * forUnmarshaling)5607 void unmarshal_VkDeviceQueueInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
5608                                   VkDeviceQueueInfo2* forUnmarshaling) {
5609     (void)rootType;
5610     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5611     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5612         rootType = forUnmarshaling->sType;
5613     }
5614     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5615     vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags,
5616                    sizeof(VkDeviceQueueCreateFlags));
5617     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
5618     vkStream->read((uint32_t*)&forUnmarshaling->queueIndex, sizeof(uint32_t));
5619 }
5620 
marshal_VkProtectedSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkProtectedSubmitInfo * forMarshaling)5621 void marshal_VkProtectedSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5622                                    const VkProtectedSubmitInfo* forMarshaling) {
5623     (void)rootType;
5624     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5625     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5626         rootType = forMarshaling->sType;
5627     }
5628     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5629     vkStream->write((VkBool32*)&forMarshaling->protectedSubmit, sizeof(VkBool32));
5630 }
5631 
unmarshal_VkProtectedSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkProtectedSubmitInfo * forUnmarshaling)5632 void unmarshal_VkProtectedSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5633                                      VkProtectedSubmitInfo* forUnmarshaling) {
5634     (void)rootType;
5635     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5636     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5637         rootType = forUnmarshaling->sType;
5638     }
5639     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5640     vkStream->read((VkBool32*)&forUnmarshaling->protectedSubmit, sizeof(VkBool32));
5641 }
5642 
marshal_VkSamplerYcbcrConversionCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionCreateInfo * forMarshaling)5643 void marshal_VkSamplerYcbcrConversionCreateInfo(
5644     VulkanStreamGuest* vkStream, VkStructureType rootType,
5645     const VkSamplerYcbcrConversionCreateInfo* forMarshaling) {
5646     (void)rootType;
5647     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5648     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5649         rootType = forMarshaling->sType;
5650     }
5651     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5652     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5653     vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->ycbcrModel,
5654                     sizeof(VkSamplerYcbcrModelConversion));
5655     vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
5656     marshal_VkComponentMapping(vkStream, rootType,
5657                                (VkComponentMapping*)(&forMarshaling->components));
5658     vkStream->write((VkChromaLocation*)&forMarshaling->xChromaOffset, sizeof(VkChromaLocation));
5659     vkStream->write((VkChromaLocation*)&forMarshaling->yChromaOffset, sizeof(VkChromaLocation));
5660     vkStream->write((VkFilter*)&forMarshaling->chromaFilter, sizeof(VkFilter));
5661     vkStream->write((VkBool32*)&forMarshaling->forceExplicitReconstruction, sizeof(VkBool32));
5662 }
5663 
unmarshal_VkSamplerYcbcrConversionCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionCreateInfo * forUnmarshaling)5664 void unmarshal_VkSamplerYcbcrConversionCreateInfo(
5665     VulkanStreamGuest* vkStream, VkStructureType rootType,
5666     VkSamplerYcbcrConversionCreateInfo* forUnmarshaling) {
5667     (void)rootType;
5668     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5669     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5670         rootType = forUnmarshaling->sType;
5671     }
5672     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5673     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5674     vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->ycbcrModel,
5675                    sizeof(VkSamplerYcbcrModelConversion));
5676     vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
5677     unmarshal_VkComponentMapping(vkStream, rootType,
5678                                  (VkComponentMapping*)(&forUnmarshaling->components));
5679     vkStream->read((VkChromaLocation*)&forUnmarshaling->xChromaOffset, sizeof(VkChromaLocation));
5680     vkStream->read((VkChromaLocation*)&forUnmarshaling->yChromaOffset, sizeof(VkChromaLocation));
5681     vkStream->read((VkFilter*)&forUnmarshaling->chromaFilter, sizeof(VkFilter));
5682     vkStream->read((VkBool32*)&forUnmarshaling->forceExplicitReconstruction, sizeof(VkBool32));
5683 }
5684 
marshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionInfo * forMarshaling)5685 void marshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5686                                           const VkSamplerYcbcrConversionInfo* forMarshaling) {
5687     (void)rootType;
5688     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5689     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5690         rootType = forMarshaling->sType;
5691     }
5692     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5693     uint64_t cgen_var_0;
5694     vkStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&forMarshaling->conversion,
5695                                                                        &cgen_var_0, 1);
5696     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5697 }
5698 
unmarshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionInfo * forUnmarshaling)5699 void unmarshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5700                                             VkSamplerYcbcrConversionInfo* forUnmarshaling) {
5701     (void)rootType;
5702     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5703     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5704         rootType = forUnmarshaling->sType;
5705     }
5706     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5707     uint64_t cgen_var_0;
5708     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5709     vkStream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(
5710         &cgen_var_0, (VkSamplerYcbcrConversion*)&forUnmarshaling->conversion, 1);
5711 }
5712 
marshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindImagePlaneMemoryInfo * forMarshaling)5713 void marshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5714                                         const VkBindImagePlaneMemoryInfo* forMarshaling) {
5715     (void)rootType;
5716     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5717     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5718         rootType = forMarshaling->sType;
5719     }
5720     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5721     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect,
5722                     sizeof(VkImageAspectFlagBits));
5723 }
5724 
unmarshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindImagePlaneMemoryInfo * forUnmarshaling)5725 void unmarshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5726                                           VkBindImagePlaneMemoryInfo* forUnmarshaling) {
5727     (void)rootType;
5728     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5729     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5730         rootType = forUnmarshaling->sType;
5731     }
5732     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5733     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect,
5734                    sizeof(VkImageAspectFlagBits));
5735 }
5736 
marshal_VkImagePlaneMemoryRequirementsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImagePlaneMemoryRequirementsInfo * forMarshaling)5737 void marshal_VkImagePlaneMemoryRequirementsInfo(
5738     VulkanStreamGuest* vkStream, VkStructureType rootType,
5739     const VkImagePlaneMemoryRequirementsInfo* forMarshaling) {
5740     (void)rootType;
5741     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5742     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5743         rootType = forMarshaling->sType;
5744     }
5745     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5746     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect,
5747                     sizeof(VkImageAspectFlagBits));
5748 }
5749 
unmarshal_VkImagePlaneMemoryRequirementsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImagePlaneMemoryRequirementsInfo * forUnmarshaling)5750 void unmarshal_VkImagePlaneMemoryRequirementsInfo(
5751     VulkanStreamGuest* vkStream, VkStructureType rootType,
5752     VkImagePlaneMemoryRequirementsInfo* forUnmarshaling) {
5753     (void)rootType;
5754     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5755     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5756         rootType = forUnmarshaling->sType;
5757     }
5758     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5759     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect,
5760                    sizeof(VkImageAspectFlagBits));
5761 }
5762 
marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * forMarshaling)5763 void marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
5764     VulkanStreamGuest* vkStream, VkStructureType rootType,
5765     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling) {
5766     (void)rootType;
5767     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5768     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5769         rootType = forMarshaling->sType;
5770     }
5771     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5772     vkStream->write((VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
5773 }
5774 
unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSamplerYcbcrConversionFeatures * forUnmarshaling)5775 void unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
5776     VulkanStreamGuest* vkStream, VkStructureType rootType,
5777     VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling) {
5778     (void)rootType;
5779     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5780     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5781         rootType = forUnmarshaling->sType;
5782     }
5783     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5784     vkStream->read((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, sizeof(VkBool32));
5785 }
5786 
marshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionImageFormatProperties * forMarshaling)5787 void marshal_VkSamplerYcbcrConversionImageFormatProperties(
5788     VulkanStreamGuest* vkStream, VkStructureType rootType,
5789     const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling) {
5790     (void)rootType;
5791     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5792     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5793         rootType = forMarshaling->sType;
5794     }
5795     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5796     vkStream->write((uint32_t*)&forMarshaling->combinedImageSamplerDescriptorCount,
5797                     sizeof(uint32_t));
5798 }
5799 
unmarshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionImageFormatProperties * forUnmarshaling)5800 void unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
5801     VulkanStreamGuest* vkStream, VkStructureType rootType,
5802     VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling) {
5803     (void)rootType;
5804     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5805     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5806         rootType = forUnmarshaling->sType;
5807     }
5808     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5809     vkStream->read((uint32_t*)&forUnmarshaling->combinedImageSamplerDescriptorCount,
5810                    sizeof(uint32_t));
5811 }
5812 
marshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorUpdateTemplateEntry * forMarshaling)5813 void marshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest* vkStream, VkStructureType rootType,
5814                                              const VkDescriptorUpdateTemplateEntry* forMarshaling) {
5815     (void)rootType;
5816     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
5817     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
5818     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
5819     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
5820     uint64_t cgen_var_0 = (uint64_t)forMarshaling->offset;
5821     vkStream->putBe64(cgen_var_0);
5822     uint64_t cgen_var_1 = (uint64_t)forMarshaling->stride;
5823     vkStream->putBe64(cgen_var_1);
5824 }
5825 
unmarshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorUpdateTemplateEntry * forUnmarshaling)5826 void unmarshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest* vkStream,
5827                                                VkStructureType rootType,
5828                                                VkDescriptorUpdateTemplateEntry* forUnmarshaling) {
5829     (void)rootType;
5830     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
5831     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
5832     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
5833     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
5834     forUnmarshaling->offset = (size_t)vkStream->getBe64();
5835     forUnmarshaling->stride = (size_t)vkStream->getBe64();
5836 }
5837 
marshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorUpdateTemplateCreateInfo * forMarshaling)5838 void marshal_VkDescriptorUpdateTemplateCreateInfo(
5839     VulkanStreamGuest* vkStream, VkStructureType rootType,
5840     const VkDescriptorUpdateTemplateCreateInfo* forMarshaling) {
5841     (void)rootType;
5842     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5843     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5844         rootType = forMarshaling->sType;
5845     }
5846     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5847     vkStream->write((VkDescriptorUpdateTemplateCreateFlags*)&forMarshaling->flags,
5848                     sizeof(VkDescriptorUpdateTemplateCreateFlags));
5849     vkStream->write((uint32_t*)&forMarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
5850     if (forMarshaling) {
5851         for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorUpdateEntryCount; ++i) {
5852             marshal_VkDescriptorUpdateTemplateEntry(
5853                 vkStream, rootType,
5854                 (const VkDescriptorUpdateTemplateEntry*)(forMarshaling->pDescriptorUpdateEntries +
5855                                                          i));
5856         }
5857     }
5858     vkStream->write((VkDescriptorUpdateTemplateType*)&forMarshaling->templateType,
5859                     sizeof(VkDescriptorUpdateTemplateType));
5860     uint64_t cgen_var_0;
5861     vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(
5862         &forMarshaling->descriptorSetLayout, &cgen_var_0, 1);
5863     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
5864     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
5865                     sizeof(VkPipelineBindPoint));
5866     uint64_t cgen_var_1;
5867     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout,
5868                                                                &cgen_var_1, 1);
5869     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
5870     vkStream->write((uint32_t*)&forMarshaling->set, sizeof(uint32_t));
5871 }
5872 
unmarshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorUpdateTemplateCreateInfo * forUnmarshaling)5873 void unmarshal_VkDescriptorUpdateTemplateCreateInfo(
5874     VulkanStreamGuest* vkStream, VkStructureType rootType,
5875     VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling) {
5876     (void)rootType;
5877     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5878     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5879         rootType = forUnmarshaling->sType;
5880     }
5881     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5882     vkStream->read((VkDescriptorUpdateTemplateCreateFlags*)&forUnmarshaling->flags,
5883                    sizeof(VkDescriptorUpdateTemplateCreateFlags));
5884     vkStream->read((uint32_t*)&forUnmarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
5885     if (forUnmarshaling) {
5886         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorUpdateEntryCount; ++i) {
5887             unmarshal_VkDescriptorUpdateTemplateEntry(
5888                 vkStream, rootType,
5889                 (VkDescriptorUpdateTemplateEntry*)(forUnmarshaling->pDescriptorUpdateEntries + i));
5890         }
5891     }
5892     vkStream->read((VkDescriptorUpdateTemplateType*)&forUnmarshaling->templateType,
5893                    sizeof(VkDescriptorUpdateTemplateType));
5894     uint64_t cgen_var_0;
5895     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
5896     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(
5897         &cgen_var_0, (VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout, 1);
5898     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
5899                    sizeof(VkPipelineBindPoint));
5900     uint64_t cgen_var_1;
5901     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
5902     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
5903         &cgen_var_1, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
5904     vkStream->read((uint32_t*)&forUnmarshaling->set, sizeof(uint32_t));
5905 }
5906 
marshal_VkExternalMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalMemoryProperties * forMarshaling)5907 void marshal_VkExternalMemoryProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
5908                                         const VkExternalMemoryProperties* forMarshaling) {
5909     (void)rootType;
5910     vkStream->write((VkExternalMemoryFeatureFlags*)&forMarshaling->externalMemoryFeatures,
5911                     sizeof(VkExternalMemoryFeatureFlags));
5912     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
5913                     sizeof(VkExternalMemoryHandleTypeFlags));
5914     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
5915                     sizeof(VkExternalMemoryHandleTypeFlags));
5916 }
5917 
unmarshal_VkExternalMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExternalMemoryProperties * forUnmarshaling)5918 void unmarshal_VkExternalMemoryProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
5919                                           VkExternalMemoryProperties* forUnmarshaling) {
5920     (void)rootType;
5921     vkStream->read((VkExternalMemoryFeatureFlags*)&forUnmarshaling->externalMemoryFeatures,
5922                    sizeof(VkExternalMemoryFeatureFlags));
5923     vkStream->read(
5924         (VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes,
5925         sizeof(VkExternalMemoryHandleTypeFlags));
5926     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes,
5927                    sizeof(VkExternalMemoryHandleTypeFlags));
5928 }
5929 
marshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalImageFormatInfo * forMarshaling)5930 void marshal_VkPhysicalDeviceExternalImageFormatInfo(
5931     VulkanStreamGuest* vkStream, VkStructureType rootType,
5932     const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling) {
5933     (void)rootType;
5934     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5935     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5936         rootType = forMarshaling->sType;
5937     }
5938     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5939     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
5940                     sizeof(VkExternalMemoryHandleTypeFlagBits));
5941 }
5942 
unmarshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalImageFormatInfo * forUnmarshaling)5943 void unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
5944     VulkanStreamGuest* vkStream, VkStructureType rootType,
5945     VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling) {
5946     (void)rootType;
5947     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5948     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5949         rootType = forUnmarshaling->sType;
5950     }
5951     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5952     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
5953                    sizeof(VkExternalMemoryHandleTypeFlagBits));
5954 }
5955 
marshal_VkExternalImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalImageFormatProperties * forMarshaling)5956 void marshal_VkExternalImageFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
5957                                              const VkExternalImageFormatProperties* forMarshaling) {
5958     (void)rootType;
5959     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5960     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5961         rootType = forMarshaling->sType;
5962     }
5963     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5964     marshal_VkExternalMemoryProperties(
5965         vkStream, rootType,
5966         (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
5967 }
5968 
unmarshal_VkExternalImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExternalImageFormatProperties * forUnmarshaling)5969 void unmarshal_VkExternalImageFormatProperties(VulkanStreamGuest* vkStream,
5970                                                VkStructureType rootType,
5971                                                VkExternalImageFormatProperties* forUnmarshaling) {
5972     (void)rootType;
5973     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5974     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5975         rootType = forUnmarshaling->sType;
5976     }
5977     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
5978     unmarshal_VkExternalMemoryProperties(
5979         vkStream, rootType,
5980         (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
5981 }
5982 
marshal_VkPhysicalDeviceExternalBufferInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalBufferInfo * forMarshaling)5983 void marshal_VkPhysicalDeviceExternalBufferInfo(
5984     VulkanStreamGuest* vkStream, VkStructureType rootType,
5985     const VkPhysicalDeviceExternalBufferInfo* forMarshaling) {
5986     (void)rootType;
5987     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5988     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5989         rootType = forMarshaling->sType;
5990     }
5991     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
5992     vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
5993     vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
5994     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
5995                     sizeof(VkExternalMemoryHandleTypeFlagBits));
5996 }
5997 
unmarshal_VkPhysicalDeviceExternalBufferInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalBufferInfo * forUnmarshaling)5998 void unmarshal_VkPhysicalDeviceExternalBufferInfo(
5999     VulkanStreamGuest* vkStream, VkStructureType rootType,
6000     VkPhysicalDeviceExternalBufferInfo* forUnmarshaling) {
6001     (void)rootType;
6002     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6003     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6004         rootType = forUnmarshaling->sType;
6005     }
6006     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6007     vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
6008     vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
6009     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType,
6010                    sizeof(VkExternalMemoryHandleTypeFlagBits));
6011 }
6012 
marshal_VkExternalBufferProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalBufferProperties * forMarshaling)6013 void marshal_VkExternalBufferProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6014                                         const VkExternalBufferProperties* forMarshaling) {
6015     (void)rootType;
6016     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6017     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6018         rootType = forMarshaling->sType;
6019     }
6020     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6021     marshal_VkExternalMemoryProperties(
6022         vkStream, rootType,
6023         (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
6024 }
6025 
unmarshal_VkExternalBufferProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExternalBufferProperties * forUnmarshaling)6026 void unmarshal_VkExternalBufferProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6027                                           VkExternalBufferProperties* forUnmarshaling) {
6028     (void)rootType;
6029     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6030     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6031         rootType = forUnmarshaling->sType;
6032     }
6033     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6034     unmarshal_VkExternalMemoryProperties(
6035         vkStream, rootType,
6036         (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
6037 }
6038 
marshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceIDProperties * forMarshaling)6039 void marshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6040                                           const VkPhysicalDeviceIDProperties* forMarshaling) {
6041     (void)rootType;
6042     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6043     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6044         rootType = forMarshaling->sType;
6045     }
6046     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6047     vkStream->write((uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6048     vkStream->write((uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6049     vkStream->write((uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6050     vkStream->write((uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
6051     vkStream->write((VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
6052 }
6053 
unmarshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceIDProperties * forUnmarshaling)6054 void unmarshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6055                                             VkPhysicalDeviceIDProperties* forUnmarshaling) {
6056     (void)rootType;
6057     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6058     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6059         rootType = forUnmarshaling->sType;
6060     }
6061     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6062     vkStream->read((uint8_t*)forUnmarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6063     vkStream->read((uint8_t*)forUnmarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6064     vkStream->read((uint8_t*)forUnmarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6065     vkStream->read((uint32_t*)&forUnmarshaling->deviceNodeMask, sizeof(uint32_t));
6066     vkStream->read((VkBool32*)&forUnmarshaling->deviceLUIDValid, sizeof(VkBool32));
6067 }
6068 
marshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalMemoryImageCreateInfo * forMarshaling)6069 void marshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6070                                              const VkExternalMemoryImageCreateInfo* forMarshaling) {
6071     (void)rootType;
6072     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6073     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6074         rootType = forMarshaling->sType;
6075     }
6076     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6077     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
6078                     sizeof(VkExternalMemoryHandleTypeFlags));
6079 }
6080 
unmarshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExternalMemoryImageCreateInfo * forUnmarshaling)6081 void unmarshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest* vkStream,
6082                                                VkStructureType rootType,
6083                                                VkExternalMemoryImageCreateInfo* forUnmarshaling) {
6084     (void)rootType;
6085     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6086     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6087         rootType = forUnmarshaling->sType;
6088     }
6089     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6090     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes,
6091                    sizeof(VkExternalMemoryHandleTypeFlags));
6092 }
6093 
marshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalMemoryBufferCreateInfo * forMarshaling)6094 void marshal_VkExternalMemoryBufferCreateInfo(
6095     VulkanStreamGuest* vkStream, VkStructureType rootType,
6096     const VkExternalMemoryBufferCreateInfo* forMarshaling) {
6097     (void)rootType;
6098     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6099     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6100         rootType = forMarshaling->sType;
6101     }
6102     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6103     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
6104                     sizeof(VkExternalMemoryHandleTypeFlags));
6105 }
6106 
unmarshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExternalMemoryBufferCreateInfo * forUnmarshaling)6107 void unmarshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest* vkStream,
6108                                                 VkStructureType rootType,
6109                                                 VkExternalMemoryBufferCreateInfo* forUnmarshaling) {
6110     (void)rootType;
6111     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6112     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6113         rootType = forUnmarshaling->sType;
6114     }
6115     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6116     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes,
6117                    sizeof(VkExternalMemoryHandleTypeFlags));
6118 }
6119 
marshal_VkExportMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExportMemoryAllocateInfo * forMarshaling)6120 void marshal_VkExportMemoryAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6121                                         const VkExportMemoryAllocateInfo* forMarshaling) {
6122     (void)rootType;
6123     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6124     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6125         rootType = forMarshaling->sType;
6126     }
6127     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6128     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
6129                     sizeof(VkExternalMemoryHandleTypeFlags));
6130 }
6131 
unmarshal_VkExportMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExportMemoryAllocateInfo * forUnmarshaling)6132 void unmarshal_VkExportMemoryAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6133                                           VkExportMemoryAllocateInfo* forUnmarshaling) {
6134     (void)rootType;
6135     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6136     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6137         rootType = forUnmarshaling->sType;
6138     }
6139     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6140     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes,
6141                    sizeof(VkExternalMemoryHandleTypeFlags));
6142 }
6143 
marshal_VkPhysicalDeviceExternalFenceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalFenceInfo * forMarshaling)6144 void marshal_VkPhysicalDeviceExternalFenceInfo(
6145     VulkanStreamGuest* vkStream, VkStructureType rootType,
6146     const VkPhysicalDeviceExternalFenceInfo* forMarshaling) {
6147     (void)rootType;
6148     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6149     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6150         rootType = forMarshaling->sType;
6151     }
6152     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6153     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
6154                     sizeof(VkExternalFenceHandleTypeFlagBits));
6155 }
6156 
unmarshal_VkPhysicalDeviceExternalFenceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalFenceInfo * forUnmarshaling)6157 void unmarshal_VkPhysicalDeviceExternalFenceInfo(
6158     VulkanStreamGuest* vkStream, VkStructureType rootType,
6159     VkPhysicalDeviceExternalFenceInfo* forUnmarshaling) {
6160     (void)rootType;
6161     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6162     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6163         rootType = forUnmarshaling->sType;
6164     }
6165     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6166     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
6167                    sizeof(VkExternalFenceHandleTypeFlagBits));
6168 }
6169 
marshal_VkExternalFenceProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalFenceProperties * forMarshaling)6170 void marshal_VkExternalFenceProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6171                                        const VkExternalFenceProperties* forMarshaling) {
6172     (void)rootType;
6173     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6174     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6175         rootType = forMarshaling->sType;
6176     }
6177     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6178     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
6179                     sizeof(VkExternalFenceHandleTypeFlags));
6180     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
6181                     sizeof(VkExternalFenceHandleTypeFlags));
6182     vkStream->write((VkExternalFenceFeatureFlags*)&forMarshaling->externalFenceFeatures,
6183                     sizeof(VkExternalFenceFeatureFlags));
6184 }
6185 
unmarshal_VkExternalFenceProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExternalFenceProperties * forUnmarshaling)6186 void unmarshal_VkExternalFenceProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6187                                          VkExternalFenceProperties* forUnmarshaling) {
6188     (void)rootType;
6189     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6190     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6191         rootType = forUnmarshaling->sType;
6192     }
6193     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6194     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes,
6195                    sizeof(VkExternalFenceHandleTypeFlags));
6196     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes,
6197                    sizeof(VkExternalFenceHandleTypeFlags));
6198     vkStream->read((VkExternalFenceFeatureFlags*)&forUnmarshaling->externalFenceFeatures,
6199                    sizeof(VkExternalFenceFeatureFlags));
6200 }
6201 
marshal_VkExportFenceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExportFenceCreateInfo * forMarshaling)6202 void marshal_VkExportFenceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6203                                      const VkExportFenceCreateInfo* forMarshaling) {
6204     (void)rootType;
6205     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6206     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6207         rootType = forMarshaling->sType;
6208     }
6209     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6210     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->handleTypes,
6211                     sizeof(VkExternalFenceHandleTypeFlags));
6212 }
6213 
unmarshal_VkExportFenceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExportFenceCreateInfo * forUnmarshaling)6214 void unmarshal_VkExportFenceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6215                                        VkExportFenceCreateInfo* forUnmarshaling) {
6216     (void)rootType;
6217     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6218     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6219         rootType = forUnmarshaling->sType;
6220     }
6221     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6222     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->handleTypes,
6223                    sizeof(VkExternalFenceHandleTypeFlags));
6224 }
6225 
marshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExportSemaphoreCreateInfo * forMarshaling)6226 void marshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6227                                          const VkExportSemaphoreCreateInfo* forMarshaling) {
6228     (void)rootType;
6229     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6230     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6231         rootType = forMarshaling->sType;
6232     }
6233     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6234     vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->handleTypes,
6235                     sizeof(VkExternalSemaphoreHandleTypeFlags));
6236 }
6237 
unmarshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExportSemaphoreCreateInfo * forUnmarshaling)6238 void unmarshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6239                                            VkExportSemaphoreCreateInfo* forUnmarshaling) {
6240     (void)rootType;
6241     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6243         rootType = forUnmarshaling->sType;
6244     }
6245     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6246     vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->handleTypes,
6247                    sizeof(VkExternalSemaphoreHandleTypeFlags));
6248 }
6249 
marshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalSemaphoreInfo * forMarshaling)6250 void marshal_VkPhysicalDeviceExternalSemaphoreInfo(
6251     VulkanStreamGuest* vkStream, VkStructureType rootType,
6252     const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling) {
6253     (void)rootType;
6254     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6256         rootType = forMarshaling->sType;
6257     }
6258     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6259     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
6260                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
6261 }
6262 
unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalSemaphoreInfo * forUnmarshaling)6263 void unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
6264     VulkanStreamGuest* vkStream, VkStructureType rootType,
6265     VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling) {
6266     (void)rootType;
6267     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6268     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6269         rootType = forUnmarshaling->sType;
6270     }
6271     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6272     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
6273                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
6274 }
6275 
marshal_VkExternalSemaphoreProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalSemaphoreProperties * forMarshaling)6276 void marshal_VkExternalSemaphoreProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6277                                            const VkExternalSemaphoreProperties* forMarshaling) {
6278     (void)rootType;
6279     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6280     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6281         rootType = forMarshaling->sType;
6282     }
6283     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6284     vkStream->write(
6285         (VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
6286         sizeof(VkExternalSemaphoreHandleTypeFlags));
6287     vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
6288                     sizeof(VkExternalSemaphoreHandleTypeFlags));
6289     vkStream->write((VkExternalSemaphoreFeatureFlags*)&forMarshaling->externalSemaphoreFeatures,
6290                     sizeof(VkExternalSemaphoreFeatureFlags));
6291 }
6292 
unmarshal_VkExternalSemaphoreProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkExternalSemaphoreProperties * forUnmarshaling)6293 void unmarshal_VkExternalSemaphoreProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
6294                                              VkExternalSemaphoreProperties* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6301     vkStream->read(
6302         (VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes,
6303         sizeof(VkExternalSemaphoreHandleTypeFlags));
6304     vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes,
6305                    sizeof(VkExternalSemaphoreHandleTypeFlags));
6306     vkStream->read((VkExternalSemaphoreFeatureFlags*)&forUnmarshaling->externalSemaphoreFeatures,
6307                    sizeof(VkExternalSemaphoreFeatureFlags));
6308 }
6309 
marshal_VkPhysicalDeviceMaintenance3Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance3Properties * forMarshaling)6310 void marshal_VkPhysicalDeviceMaintenance3Properties(
6311     VulkanStreamGuest* vkStream, VkStructureType rootType,
6312     const VkPhysicalDeviceMaintenance3Properties* forMarshaling) {
6313     (void)rootType;
6314     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6315     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6316         rootType = forMarshaling->sType;
6317     }
6318     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6319     vkStream->write((uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6320     vkStream->write((VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6321 }
6322 
unmarshal_VkPhysicalDeviceMaintenance3Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance3Properties * forUnmarshaling)6323 void unmarshal_VkPhysicalDeviceMaintenance3Properties(
6324     VulkanStreamGuest* vkStream, VkStructureType rootType,
6325     VkPhysicalDeviceMaintenance3Properties* forUnmarshaling) {
6326     (void)rootType;
6327     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6328     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6329         rootType = forUnmarshaling->sType;
6330     }
6331     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6332     vkStream->read((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6333     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6334 }
6335 
marshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutSupport * forMarshaling)6336 void marshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest* vkStream, VkStructureType rootType,
6337                                           const VkDescriptorSetLayoutSupport* forMarshaling) {
6338     (void)rootType;
6339     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6340     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6341         rootType = forMarshaling->sType;
6342     }
6343     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6344     vkStream->write((VkBool32*)&forMarshaling->supported, sizeof(VkBool32));
6345 }
6346 
unmarshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorSetLayoutSupport * forUnmarshaling)6347 void unmarshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest* vkStream, VkStructureType rootType,
6348                                             VkDescriptorSetLayoutSupport* forUnmarshaling) {
6349     (void)rootType;
6350     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6351     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6352         rootType = forUnmarshaling->sType;
6353     }
6354     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6355     vkStream->read((VkBool32*)&forUnmarshaling->supported, sizeof(VkBool32));
6356 }
6357 
marshal_VkPhysicalDeviceShaderDrawParametersFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderDrawParametersFeatures * forMarshaling)6358 void marshal_VkPhysicalDeviceShaderDrawParametersFeatures(
6359     VulkanStreamGuest* vkStream, VkStructureType rootType,
6360     const VkPhysicalDeviceShaderDrawParametersFeatures* forMarshaling) {
6361     (void)rootType;
6362     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6363     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6364         rootType = forMarshaling->sType;
6365     }
6366     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6367     vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
6368 }
6369 
unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderDrawParametersFeatures * forUnmarshaling)6370 void unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
6371     VulkanStreamGuest* vkStream, VkStructureType rootType,
6372     VkPhysicalDeviceShaderDrawParametersFeatures* forUnmarshaling) {
6373     (void)rootType;
6374     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6375     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6376         rootType = forUnmarshaling->sType;
6377     }
6378     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6379     vkStream->read((VkBool32*)&forUnmarshaling->shaderDrawParameters, sizeof(VkBool32));
6380 }
6381 
6382 #endif
6383 #ifdef VK_VERSION_1_2
marshal_VkPhysicalDeviceVulkan11Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan11Features * forMarshaling)6384 void marshal_VkPhysicalDeviceVulkan11Features(
6385     VulkanStreamGuest* vkStream, VkStructureType rootType,
6386     const VkPhysicalDeviceVulkan11Features* forMarshaling) {
6387     (void)rootType;
6388     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6389     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6390         rootType = forMarshaling->sType;
6391     }
6392     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6393     vkStream->write((VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
6394     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess,
6395                     sizeof(VkBool32));
6396     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
6397     vkStream->write((VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
6398     vkStream->write((VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
6399     vkStream->write((VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
6400     vkStream->write((VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
6401     vkStream->write((VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
6402     vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
6403     vkStream->write((VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
6404     vkStream->write((VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
6405     vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
6406 }
6407 
unmarshal_VkPhysicalDeviceVulkan11Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan11Features * forUnmarshaling)6408 void unmarshal_VkPhysicalDeviceVulkan11Features(VulkanStreamGuest* vkStream,
6409                                                 VkStructureType rootType,
6410                                                 VkPhysicalDeviceVulkan11Features* forUnmarshaling) {
6411     (void)rootType;
6412     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6413     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6414         rootType = forUnmarshaling->sType;
6415     }
6416     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6417     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
6418     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess,
6419                    sizeof(VkBool32));
6420     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant16, sizeof(VkBool32));
6421     vkStream->read((VkBool32*)&forUnmarshaling->storageInputOutput16, sizeof(VkBool32));
6422     vkStream->read((VkBool32*)&forUnmarshaling->multiview, sizeof(VkBool32));
6423     vkStream->read((VkBool32*)&forUnmarshaling->multiviewGeometryShader, sizeof(VkBool32));
6424     vkStream->read((VkBool32*)&forUnmarshaling->multiviewTessellationShader, sizeof(VkBool32));
6425     vkStream->read((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
6426     vkStream->read((VkBool32*)&forUnmarshaling->variablePointers, sizeof(VkBool32));
6427     vkStream->read((VkBool32*)&forUnmarshaling->protectedMemory, sizeof(VkBool32));
6428     vkStream->read((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, sizeof(VkBool32));
6429     vkStream->read((VkBool32*)&forUnmarshaling->shaderDrawParameters, sizeof(VkBool32));
6430 }
6431 
marshal_VkPhysicalDeviceVulkan11Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan11Properties * forMarshaling)6432 void marshal_VkPhysicalDeviceVulkan11Properties(
6433     VulkanStreamGuest* vkStream, VkStructureType rootType,
6434     const VkPhysicalDeviceVulkan11Properties* forMarshaling) {
6435     (void)rootType;
6436     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6437     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6438         rootType = forMarshaling->sType;
6439     }
6440     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6441     vkStream->write((uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6442     vkStream->write((uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6443     vkStream->write((uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6444     vkStream->write((uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
6445     vkStream->write((VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
6446     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
6447     vkStream->write((VkShaderStageFlags*)&forMarshaling->subgroupSupportedStages,
6448                     sizeof(VkShaderStageFlags));
6449     vkStream->write((VkSubgroupFeatureFlags*)&forMarshaling->subgroupSupportedOperations,
6450                     sizeof(VkSubgroupFeatureFlags));
6451     vkStream->write((VkBool32*)&forMarshaling->subgroupQuadOperationsInAllStages, sizeof(VkBool32));
6452     vkStream->write((VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior,
6453                     sizeof(VkPointClippingBehavior));
6454     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
6455     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
6456     vkStream->write((VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
6457     vkStream->write((uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6458     vkStream->write((VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6459 }
6460 
unmarshal_VkPhysicalDeviceVulkan11Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan11Properties * forUnmarshaling)6461 void unmarshal_VkPhysicalDeviceVulkan11Properties(
6462     VulkanStreamGuest* vkStream, VkStructureType rootType,
6463     VkPhysicalDeviceVulkan11Properties* forUnmarshaling) {
6464     (void)rootType;
6465     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6466     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6467         rootType = forUnmarshaling->sType;
6468     }
6469     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6470     vkStream->read((uint8_t*)forUnmarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6471     vkStream->read((uint8_t*)forUnmarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6472     vkStream->read((uint8_t*)forUnmarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6473     vkStream->read((uint32_t*)&forUnmarshaling->deviceNodeMask, sizeof(uint32_t));
6474     vkStream->read((VkBool32*)&forUnmarshaling->deviceLUIDValid, sizeof(VkBool32));
6475     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
6476     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->subgroupSupportedStages,
6477                    sizeof(VkShaderStageFlags));
6478     vkStream->read((VkSubgroupFeatureFlags*)&forUnmarshaling->subgroupSupportedOperations,
6479                    sizeof(VkSubgroupFeatureFlags));
6480     vkStream->read((VkBool32*)&forUnmarshaling->subgroupQuadOperationsInAllStages,
6481                    sizeof(VkBool32));
6482     vkStream->read((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior,
6483                    sizeof(VkPointClippingBehavior));
6484     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, sizeof(uint32_t));
6485     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
6486     vkStream->read((VkBool32*)&forUnmarshaling->protectedNoFault, sizeof(VkBool32));
6487     vkStream->read((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6488     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6489 }
6490 
marshal_VkPhysicalDeviceVulkan12Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan12Features * forMarshaling)6491 void marshal_VkPhysicalDeviceVulkan12Features(
6492     VulkanStreamGuest* vkStream, VkStructureType rootType,
6493     const VkPhysicalDeviceVulkan12Features* forMarshaling) {
6494     (void)rootType;
6495     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6496     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6497         rootType = forMarshaling->sType;
6498     }
6499     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6500     vkStream->write((VkBool32*)&forMarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
6501     vkStream->write((VkBool32*)&forMarshaling->drawIndirectCount, sizeof(VkBool32));
6502     vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
6503     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
6504     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
6505     vkStream->write((VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
6506     vkStream->write((VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
6507     vkStream->write((VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
6508     vkStream->write((VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
6509     vkStream->write((VkBool32*)&forMarshaling->descriptorIndexing, sizeof(VkBool32));
6510     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing,
6511                     sizeof(VkBool32));
6512     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
6513                     sizeof(VkBool32));
6514     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
6515                     sizeof(VkBool32));
6516     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing,
6517                     sizeof(VkBool32));
6518     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing,
6519                     sizeof(VkBool32));
6520     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing,
6521                     sizeof(VkBool32));
6522     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing,
6523                     sizeof(VkBool32));
6524     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing,
6525                     sizeof(VkBool32));
6526     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
6527                     sizeof(VkBool32));
6528     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
6529                     sizeof(VkBool32));
6530     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind,
6531                     sizeof(VkBool32));
6532     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind,
6533                     sizeof(VkBool32));
6534     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind,
6535                     sizeof(VkBool32));
6536     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind,
6537                     sizeof(VkBool32));
6538     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
6539                     sizeof(VkBool32));
6540     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
6541                     sizeof(VkBool32));
6542     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending,
6543                     sizeof(VkBool32));
6544     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
6545     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount,
6546                     sizeof(VkBool32));
6547     vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
6548     vkStream->write((VkBool32*)&forMarshaling->samplerFilterMinmax, sizeof(VkBool32));
6549     vkStream->write((VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
6550     vkStream->write((VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
6551     vkStream->write((VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
6552     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
6553     vkStream->write((VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
6554     vkStream->write((VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
6555     vkStream->write((VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
6556     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
6557     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
6558     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
6559     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
6560     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
6561     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
6562                     sizeof(VkBool32));
6563     vkStream->write((VkBool32*)&forMarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
6564     vkStream->write((VkBool32*)&forMarshaling->shaderOutputLayer, sizeof(VkBool32));
6565     vkStream->write((VkBool32*)&forMarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
6566 }
6567 
unmarshal_VkPhysicalDeviceVulkan12Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan12Features * forUnmarshaling)6568 void unmarshal_VkPhysicalDeviceVulkan12Features(VulkanStreamGuest* vkStream,
6569                                                 VkStructureType rootType,
6570                                                 VkPhysicalDeviceVulkan12Features* forUnmarshaling) {
6571     (void)rootType;
6572     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6573     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6574         rootType = forUnmarshaling->sType;
6575     }
6576     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6577     vkStream->read((VkBool32*)&forUnmarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
6578     vkStream->read((VkBool32*)&forUnmarshaling->drawIndirectCount, sizeof(VkBool32));
6579     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
6580     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess,
6581                    sizeof(VkBool32));
6582     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
6583     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
6584     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
6585     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat16, sizeof(VkBool32));
6586     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt8, sizeof(VkBool32));
6587     vkStream->read((VkBool32*)&forUnmarshaling->descriptorIndexing, sizeof(VkBool32));
6588     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing,
6589                    sizeof(VkBool32));
6590     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
6591                    sizeof(VkBool32));
6592     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
6593                    sizeof(VkBool32));
6594     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing,
6595                    sizeof(VkBool32));
6596     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing,
6597                    sizeof(VkBool32));
6598     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing,
6599                    sizeof(VkBool32));
6600     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing,
6601                    sizeof(VkBool32));
6602     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing,
6603                    sizeof(VkBool32));
6604     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
6605                    sizeof(VkBool32));
6606     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
6607                    sizeof(VkBool32));
6608     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind,
6609                    sizeof(VkBool32));
6610     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind,
6611                    sizeof(VkBool32));
6612     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind,
6613                    sizeof(VkBool32));
6614     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind,
6615                    sizeof(VkBool32));
6616     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
6617                    sizeof(VkBool32));
6618     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
6619                    sizeof(VkBool32));
6620     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending,
6621                    sizeof(VkBool32));
6622     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
6623     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount,
6624                    sizeof(VkBool32));
6625     vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
6626     vkStream->read((VkBool32*)&forUnmarshaling->samplerFilterMinmax, sizeof(VkBool32));
6627     vkStream->read((VkBool32*)&forUnmarshaling->scalarBlockLayout, sizeof(VkBool32));
6628     vkStream->read((VkBool32*)&forUnmarshaling->imagelessFramebuffer, sizeof(VkBool32));
6629     vkStream->read((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
6630     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
6631     vkStream->read((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
6632     vkStream->read((VkBool32*)&forUnmarshaling->hostQueryReset, sizeof(VkBool32));
6633     vkStream->read((VkBool32*)&forUnmarshaling->timelineSemaphore, sizeof(VkBool32));
6634     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
6635     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
6636     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
6637     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModel, sizeof(VkBool32));
6638     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
6639     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
6640                    sizeof(VkBool32));
6641     vkStream->read((VkBool32*)&forUnmarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
6642     vkStream->read((VkBool32*)&forUnmarshaling->shaderOutputLayer, sizeof(VkBool32));
6643     vkStream->read((VkBool32*)&forUnmarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
6644 }
6645 
marshal_VkConformanceVersion(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkConformanceVersion * forMarshaling)6646 void marshal_VkConformanceVersion(VulkanStreamGuest* vkStream, VkStructureType rootType,
6647                                   const VkConformanceVersion* forMarshaling) {
6648     (void)rootType;
6649     vkStream->write((uint8_t*)&forMarshaling->major, sizeof(uint8_t));
6650     vkStream->write((uint8_t*)&forMarshaling->minor, sizeof(uint8_t));
6651     vkStream->write((uint8_t*)&forMarshaling->subminor, sizeof(uint8_t));
6652     vkStream->write((uint8_t*)&forMarshaling->patch, sizeof(uint8_t));
6653 }
6654 
unmarshal_VkConformanceVersion(VulkanStreamGuest * vkStream,VkStructureType rootType,VkConformanceVersion * forUnmarshaling)6655 void unmarshal_VkConformanceVersion(VulkanStreamGuest* vkStream, VkStructureType rootType,
6656                                     VkConformanceVersion* forUnmarshaling) {
6657     (void)rootType;
6658     vkStream->read((uint8_t*)&forUnmarshaling->major, sizeof(uint8_t));
6659     vkStream->read((uint8_t*)&forUnmarshaling->minor, sizeof(uint8_t));
6660     vkStream->read((uint8_t*)&forUnmarshaling->subminor, sizeof(uint8_t));
6661     vkStream->read((uint8_t*)&forUnmarshaling->patch, sizeof(uint8_t));
6662 }
6663 
marshal_VkPhysicalDeviceVulkan12Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan12Properties * forMarshaling)6664 void marshal_VkPhysicalDeviceVulkan12Properties(
6665     VulkanStreamGuest* vkStream, VkStructureType rootType,
6666     const VkPhysicalDeviceVulkan12Properties* forMarshaling) {
6667     (void)rootType;
6668     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6669     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6670         rootType = forMarshaling->sType;
6671     }
6672     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6673     vkStream->write((VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
6674     vkStream->write((char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
6675     vkStream->write((char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
6676     marshal_VkConformanceVersion(vkStream, rootType,
6677                                  (VkConformanceVersion*)(&forMarshaling->conformanceVersion));
6678     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence,
6679                     sizeof(VkShaderFloatControlsIndependence));
6680     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence,
6681                     sizeof(VkShaderFloatControlsIndependence));
6682     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16,
6683                     sizeof(VkBool32));
6684     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32,
6685                     sizeof(VkBool32));
6686     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64,
6687                     sizeof(VkBool32));
6688     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
6689     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
6690     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
6691     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
6692     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
6693     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
6694     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
6695     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
6696     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
6697     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
6698     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
6699     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
6700     vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools,
6701                     sizeof(uint32_t));
6702     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
6703                     sizeof(VkBool32));
6704     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative,
6705                     sizeof(VkBool32));
6706     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
6707                     sizeof(VkBool32));
6708     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative,
6709                     sizeof(VkBool32));
6710     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
6711                     sizeof(VkBool32));
6712     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
6713     vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
6714     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
6715                     sizeof(uint32_t));
6716     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
6717                     sizeof(uint32_t));
6718     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
6719                     sizeof(uint32_t));
6720     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
6721                     sizeof(uint32_t));
6722     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
6723                     sizeof(uint32_t));
6724     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
6725                     sizeof(uint32_t));
6726     vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources,
6727                     sizeof(uint32_t));
6728     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers,
6729                     sizeof(uint32_t));
6730     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
6731                     sizeof(uint32_t));
6732     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
6733                     sizeof(uint32_t));
6734     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
6735                     sizeof(uint32_t));
6736     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
6737                     sizeof(uint32_t));
6738     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
6739                     sizeof(uint32_t));
6740     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
6741                     sizeof(uint32_t));
6742     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
6743                     sizeof(uint32_t));
6744     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes,
6745                     sizeof(VkResolveModeFlags));
6746     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes,
6747                     sizeof(VkResolveModeFlags));
6748     vkStream->write((VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
6749     vkStream->write((VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
6750     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats,
6751                     sizeof(VkBool32));
6752     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
6753     vkStream->write((uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference,
6754                     sizeof(uint64_t));
6755     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferIntegerColorSampleCounts,
6756                     sizeof(VkSampleCountFlags));
6757 }
6758 
unmarshal_VkPhysicalDeviceVulkan12Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan12Properties * forUnmarshaling)6759 void unmarshal_VkPhysicalDeviceVulkan12Properties(
6760     VulkanStreamGuest* vkStream, VkStructureType rootType,
6761     VkPhysicalDeviceVulkan12Properties* forUnmarshaling) {
6762     (void)rootType;
6763     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6764     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6765         rootType = forUnmarshaling->sType;
6766     }
6767     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6768     vkStream->read((VkDriverId*)&forUnmarshaling->driverID, sizeof(VkDriverId));
6769     vkStream->read((char*)forUnmarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
6770     vkStream->read((char*)forUnmarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
6771     unmarshal_VkConformanceVersion(vkStream, rootType,
6772                                    (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion));
6773     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence,
6774                    sizeof(VkShaderFloatControlsIndependence));
6775     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence,
6776                    sizeof(VkShaderFloatControlsIndependence));
6777     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16,
6778                    sizeof(VkBool32));
6779     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32,
6780                    sizeof(VkBool32));
6781     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64,
6782                    sizeof(VkBool32));
6783     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
6784     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
6785     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
6786     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
6787     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
6788     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
6789     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
6790     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
6791     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
6792     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
6793     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
6794     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
6795     vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools,
6796                    sizeof(uint32_t));
6797     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
6798                    sizeof(VkBool32));
6799     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative,
6800                    sizeof(VkBool32));
6801     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
6802                    sizeof(VkBool32));
6803     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative,
6804                    sizeof(VkBool32));
6805     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
6806                    sizeof(VkBool32));
6807     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind,
6808                    sizeof(VkBool32));
6809     vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
6810     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
6811                    sizeof(uint32_t));
6812     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
6813                    sizeof(uint32_t));
6814     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
6815                    sizeof(uint32_t));
6816     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
6817                    sizeof(uint32_t));
6818     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
6819                    sizeof(uint32_t));
6820     vkStream->read(
6821         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
6822         sizeof(uint32_t));
6823     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources,
6824                    sizeof(uint32_t));
6825     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers,
6826                    sizeof(uint32_t));
6827     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
6828                    sizeof(uint32_t));
6829     vkStream->read(
6830         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
6831         sizeof(uint32_t));
6832     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
6833                    sizeof(uint32_t));
6834     vkStream->read(
6835         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
6836         sizeof(uint32_t));
6837     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
6838                    sizeof(uint32_t));
6839     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
6840                    sizeof(uint32_t));
6841     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
6842                    sizeof(uint32_t));
6843     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes,
6844                    sizeof(VkResolveModeFlags));
6845     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes,
6846                    sizeof(VkResolveModeFlags));
6847     vkStream->read((VkBool32*)&forUnmarshaling->independentResolveNone, sizeof(VkBool32));
6848     vkStream->read((VkBool32*)&forUnmarshaling->independentResolve, sizeof(VkBool32));
6849     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats,
6850                    sizeof(VkBool32));
6851     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping,
6852                    sizeof(VkBool32));
6853     vkStream->read((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference,
6854                    sizeof(uint64_t));
6855     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferIntegerColorSampleCounts,
6856                    sizeof(VkSampleCountFlags));
6857 }
6858 
marshal_VkImageFormatListCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageFormatListCreateInfo * forMarshaling)6859 void marshal_VkImageFormatListCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6860                                          const VkImageFormatListCreateInfo* forMarshaling) {
6861     (void)rootType;
6862     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6863     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6864         rootType = forMarshaling->sType;
6865     }
6866     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6867     vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
6868     vkStream->write((const VkFormat*)forMarshaling->pViewFormats,
6869                     forMarshaling->viewFormatCount * sizeof(const VkFormat));
6870 }
6871 
unmarshal_VkImageFormatListCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageFormatListCreateInfo * forUnmarshaling)6872 void unmarshal_VkImageFormatListCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6873                                            VkImageFormatListCreateInfo* forUnmarshaling) {
6874     (void)rootType;
6875     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6876     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6877         rootType = forUnmarshaling->sType;
6878     }
6879     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6880     vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
6881     vkStream->read((VkFormat*)forUnmarshaling->pViewFormats,
6882                    forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
6883 }
6884 
marshal_VkAttachmentDescription2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentDescription2 * forMarshaling)6885 void marshal_VkAttachmentDescription2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6886                                       const VkAttachmentDescription2* 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((VkAttachmentDescriptionFlags*)&forMarshaling->flags,
6894                     sizeof(VkAttachmentDescriptionFlags));
6895     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
6896     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
6897     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
6898     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
6899     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
6900     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp,
6901                     sizeof(VkAttachmentStoreOp));
6902     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
6903     vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
6904 }
6905 
unmarshal_VkAttachmentDescription2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAttachmentDescription2 * forUnmarshaling)6906 void unmarshal_VkAttachmentDescription2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6907                                         VkAttachmentDescription2* forUnmarshaling) {
6908     (void)rootType;
6909     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6910     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6911         rootType = forUnmarshaling->sType;
6912     }
6913     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6914     vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags,
6915                    sizeof(VkAttachmentDescriptionFlags));
6916     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
6917     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples,
6918                    sizeof(VkSampleCountFlagBits));
6919     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
6920     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
6921     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp,
6922                    sizeof(VkAttachmentLoadOp));
6923     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp,
6924                    sizeof(VkAttachmentStoreOp));
6925     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
6926     vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
6927 }
6928 
marshal_VkAttachmentReference2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentReference2 * forMarshaling)6929 void marshal_VkAttachmentReference2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6930                                     const VkAttachmentReference2* forMarshaling) {
6931     (void)rootType;
6932     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6933     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6934         rootType = forMarshaling->sType;
6935     }
6936     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6937     vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
6938     vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
6939     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
6940 }
6941 
unmarshal_VkAttachmentReference2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAttachmentReference2 * forUnmarshaling)6942 void unmarshal_VkAttachmentReference2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6943                                       VkAttachmentReference2* forUnmarshaling) {
6944     (void)rootType;
6945     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6946     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6947         rootType = forUnmarshaling->sType;
6948     }
6949     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
6950     vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
6951     vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
6952     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
6953 }
6954 
marshal_VkSubpassDescription2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDescription2 * forMarshaling)6955 void marshal_VkSubpassDescription2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6956                                    const VkSubpassDescription2* forMarshaling) {
6957     (void)rootType;
6958     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6959     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6960         rootType = forMarshaling->sType;
6961     }
6962     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
6963     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags,
6964                     sizeof(VkSubpassDescriptionFlags));
6965     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
6966                     sizeof(VkPipelineBindPoint));
6967     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
6968     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
6969     if (forMarshaling) {
6970         for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i) {
6971             marshal_VkAttachmentReference2(
6972                 vkStream, rootType,
6973                 (const VkAttachmentReference2*)(forMarshaling->pInputAttachments + i));
6974         }
6975     }
6976     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
6977     if (forMarshaling) {
6978         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
6979             marshal_VkAttachmentReference2(
6980                 vkStream, rootType,
6981                 (const VkAttachmentReference2*)(forMarshaling->pColorAttachments + i));
6982         }
6983     }
6984     // WARNING PTR CHECK
6985     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
6986     vkStream->putBe64(cgen_var_0);
6987     if (forMarshaling->pResolveAttachments) {
6988         if (forMarshaling) {
6989             for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
6990                 marshal_VkAttachmentReference2(
6991                     vkStream, rootType,
6992                     (const VkAttachmentReference2*)(forMarshaling->pResolveAttachments + i));
6993             }
6994         }
6995     }
6996     // WARNING PTR CHECK
6997     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
6998     vkStream->putBe64(cgen_var_1);
6999     if (forMarshaling->pDepthStencilAttachment) {
7000         marshal_VkAttachmentReference2(
7001             vkStream, rootType,
7002             (const VkAttachmentReference2*)(forMarshaling->pDepthStencilAttachment));
7003     }
7004     vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
7005     vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments,
7006                     forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
7007 }
7008 
unmarshal_VkSubpassDescription2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubpassDescription2 * forUnmarshaling)7009 void unmarshal_VkSubpassDescription2(VulkanStreamGuest* vkStream, VkStructureType rootType,
7010                                      VkSubpassDescription2* forUnmarshaling) {
7011     (void)rootType;
7012     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7014         rootType = forUnmarshaling->sType;
7015     }
7016     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7017     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags,
7018                    sizeof(VkSubpassDescriptionFlags));
7019     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint,
7020                    sizeof(VkPipelineBindPoint));
7021     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
7022     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
7023     if (forUnmarshaling) {
7024         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i) {
7025             unmarshal_VkAttachmentReference2(
7026                 vkStream, rootType,
7027                 (VkAttachmentReference2*)(forUnmarshaling->pInputAttachments + i));
7028         }
7029     }
7030     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
7031     if (forUnmarshaling) {
7032         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
7033             unmarshal_VkAttachmentReference2(
7034                 vkStream, rootType,
7035                 (VkAttachmentReference2*)(forUnmarshaling->pColorAttachments + i));
7036         }
7037     }
7038     // WARNING PTR CHECK
7039     const VkAttachmentReference2* check_pResolveAttachments;
7040     check_pResolveAttachments = (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
7041     if (forUnmarshaling->pResolveAttachments) {
7042         if (!(check_pResolveAttachments)) {
7043             fprintf(stderr,
7044                     "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and "
7045                     "host\n");
7046         }
7047         if (forUnmarshaling) {
7048             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
7049                 unmarshal_VkAttachmentReference2(
7050                     vkStream, rootType,
7051                     (VkAttachmentReference2*)(forUnmarshaling->pResolveAttachments + i));
7052             }
7053         }
7054     }
7055     // WARNING PTR CHECK
7056     const VkAttachmentReference2* check_pDepthStencilAttachment;
7057     check_pDepthStencilAttachment = (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
7058     if (forUnmarshaling->pDepthStencilAttachment) {
7059         if (!(check_pDepthStencilAttachment)) {
7060             fprintf(stderr,
7061                     "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest "
7062                     "and host\n");
7063         }
7064         unmarshal_VkAttachmentReference2(
7065             vkStream, rootType,
7066             (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilAttachment));
7067     }
7068     vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
7069     vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments,
7070                    forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
7071 }
7072 
marshal_VkSubpassDependency2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDependency2 * forMarshaling)7073 void marshal_VkSubpassDependency2(VulkanStreamGuest* vkStream, VkStructureType rootType,
7074                                   const VkSubpassDependency2* forMarshaling) {
7075     (void)rootType;
7076     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7077     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7078         rootType = forMarshaling->sType;
7079     }
7080     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7081     vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
7082     vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
7083     vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask,
7084                     sizeof(VkPipelineStageFlags));
7085     vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask,
7086                     sizeof(VkPipelineStageFlags));
7087     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
7088     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
7089     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
7090     vkStream->write((int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
7091 }
7092 
unmarshal_VkSubpassDependency2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubpassDependency2 * forUnmarshaling)7093 void unmarshal_VkSubpassDependency2(VulkanStreamGuest* vkStream, VkStructureType rootType,
7094                                     VkSubpassDependency2* forUnmarshaling) {
7095     (void)rootType;
7096     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7097     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7098         rootType = forUnmarshaling->sType;
7099     }
7100     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7101     vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
7102     vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
7103     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask,
7104                    sizeof(VkPipelineStageFlags));
7105     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask,
7106                    sizeof(VkPipelineStageFlags));
7107     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
7108     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
7109     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags,
7110                    sizeof(VkDependencyFlags));
7111     vkStream->read((int32_t*)&forUnmarshaling->viewOffset, sizeof(int32_t));
7112 }
7113 
marshal_VkRenderPassCreateInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassCreateInfo2 * forMarshaling)7114 void marshal_VkRenderPassCreateInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
7115                                      const VkRenderPassCreateInfo2* forMarshaling) {
7116     (void)rootType;
7117     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7118     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7119         rootType = forMarshaling->sType;
7120     }
7121     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7122     vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags,
7123                     sizeof(VkRenderPassCreateFlags));
7124     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
7125     if (forMarshaling) {
7126         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
7127             marshal_VkAttachmentDescription2(
7128                 vkStream, rootType,
7129                 (const VkAttachmentDescription2*)(forMarshaling->pAttachments + i));
7130         }
7131     }
7132     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
7133     if (forMarshaling) {
7134         for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i) {
7135             marshal_VkSubpassDescription2(
7136                 vkStream, rootType, (const VkSubpassDescription2*)(forMarshaling->pSubpasses + i));
7137         }
7138     }
7139     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
7140     if (forMarshaling) {
7141         for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i) {
7142             marshal_VkSubpassDependency2(
7143                 vkStream, rootType,
7144                 (const VkSubpassDependency2*)(forMarshaling->pDependencies + i));
7145         }
7146     }
7147     vkStream->write((uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
7148     vkStream->write((const uint32_t*)forMarshaling->pCorrelatedViewMasks,
7149                     forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
7150 }
7151 
unmarshal_VkRenderPassCreateInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassCreateInfo2 * forUnmarshaling)7152 void unmarshal_VkRenderPassCreateInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
7153                                        VkRenderPassCreateInfo2* forUnmarshaling) {
7154     (void)rootType;
7155     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7156     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7157         rootType = forUnmarshaling->sType;
7158     }
7159     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7160     vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags,
7161                    sizeof(VkRenderPassCreateFlags));
7162     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
7163     if (forUnmarshaling) {
7164         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
7165             unmarshal_VkAttachmentDescription2(
7166                 vkStream, rootType, (VkAttachmentDescription2*)(forUnmarshaling->pAttachments + i));
7167         }
7168     }
7169     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
7170     if (forUnmarshaling) {
7171         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i) {
7172             unmarshal_VkSubpassDescription2(
7173                 vkStream, rootType, (VkSubpassDescription2*)(forUnmarshaling->pSubpasses + i));
7174         }
7175     }
7176     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
7177     if (forUnmarshaling) {
7178         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i) {
7179             unmarshal_VkSubpassDependency2(
7180                 vkStream, rootType, (VkSubpassDependency2*)(forUnmarshaling->pDependencies + i));
7181         }
7182     }
7183     vkStream->read((uint32_t*)&forUnmarshaling->correlatedViewMaskCount, sizeof(uint32_t));
7184     vkStream->read((uint32_t*)forUnmarshaling->pCorrelatedViewMasks,
7185                    forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
7186 }
7187 
marshal_VkSubpassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassBeginInfo * forMarshaling)7188 void marshal_VkSubpassBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
7189                                 const VkSubpassBeginInfo* forMarshaling) {
7190     (void)rootType;
7191     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7193         rootType = forMarshaling->sType;
7194     }
7195     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7196     vkStream->write((VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
7197 }
7198 
unmarshal_VkSubpassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubpassBeginInfo * forUnmarshaling)7199 void unmarshal_VkSubpassBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
7200                                   VkSubpassBeginInfo* forUnmarshaling) {
7201     (void)rootType;
7202     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7203     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7204         rootType = forUnmarshaling->sType;
7205     }
7206     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7207     vkStream->read((VkSubpassContents*)&forUnmarshaling->contents, sizeof(VkSubpassContents));
7208 }
7209 
marshal_VkSubpassEndInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassEndInfo * forMarshaling)7210 void marshal_VkSubpassEndInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
7211                               const VkSubpassEndInfo* forMarshaling) {
7212     (void)rootType;
7213     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7214     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7215         rootType = forMarshaling->sType;
7216     }
7217     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7218 }
7219 
unmarshal_VkSubpassEndInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubpassEndInfo * forUnmarshaling)7220 void unmarshal_VkSubpassEndInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
7221                                 VkSubpassEndInfo* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7228 }
7229 
marshal_VkPhysicalDevice8BitStorageFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevice8BitStorageFeatures * forMarshaling)7230 void marshal_VkPhysicalDevice8BitStorageFeatures(
7231     VulkanStreamGuest* vkStream, VkStructureType rootType,
7232     const VkPhysicalDevice8BitStorageFeatures* forMarshaling) {
7233     (void)rootType;
7234     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7235     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7236         rootType = forMarshaling->sType;
7237     }
7238     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7239     vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
7240     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
7241     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
7242 }
7243 
unmarshal_VkPhysicalDevice8BitStorageFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevice8BitStorageFeatures * forUnmarshaling)7244 void unmarshal_VkPhysicalDevice8BitStorageFeatures(
7245     VulkanStreamGuest* vkStream, VkStructureType rootType,
7246     VkPhysicalDevice8BitStorageFeatures* forUnmarshaling) {
7247     (void)rootType;
7248     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7249     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7250         rootType = forUnmarshaling->sType;
7251     }
7252     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7253     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
7254     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess,
7255                    sizeof(VkBool32));
7256     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
7257 }
7258 
marshal_VkPhysicalDeviceDriverProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDriverProperties * forMarshaling)7259 void marshal_VkPhysicalDeviceDriverProperties(
7260     VulkanStreamGuest* vkStream, VkStructureType rootType,
7261     const VkPhysicalDeviceDriverProperties* forMarshaling) {
7262     (void)rootType;
7263     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7264     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7265         rootType = forMarshaling->sType;
7266     }
7267     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7268     vkStream->write((VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
7269     vkStream->write((char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
7270     vkStream->write((char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
7271     marshal_VkConformanceVersion(vkStream, rootType,
7272                                  (VkConformanceVersion*)(&forMarshaling->conformanceVersion));
7273 }
7274 
unmarshal_VkPhysicalDeviceDriverProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDriverProperties * forUnmarshaling)7275 void unmarshal_VkPhysicalDeviceDriverProperties(VulkanStreamGuest* vkStream,
7276                                                 VkStructureType rootType,
7277                                                 VkPhysicalDeviceDriverProperties* forUnmarshaling) {
7278     (void)rootType;
7279     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7280     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7281         rootType = forUnmarshaling->sType;
7282     }
7283     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7284     vkStream->read((VkDriverId*)&forUnmarshaling->driverID, sizeof(VkDriverId));
7285     vkStream->read((char*)forUnmarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
7286     vkStream->read((char*)forUnmarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
7287     unmarshal_VkConformanceVersion(vkStream, rootType,
7288                                    (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion));
7289 }
7290 
marshal_VkPhysicalDeviceShaderAtomicInt64Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderAtomicInt64Features * forMarshaling)7291 void marshal_VkPhysicalDeviceShaderAtomicInt64Features(
7292     VulkanStreamGuest* vkStream, VkStructureType rootType,
7293     const VkPhysicalDeviceShaderAtomicInt64Features* forMarshaling) {
7294     (void)rootType;
7295     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7296     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7297         rootType = forMarshaling->sType;
7298     }
7299     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7300     vkStream->write((VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
7301     vkStream->write((VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
7302 }
7303 
unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderAtomicInt64Features * forUnmarshaling)7304 void unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
7305     VulkanStreamGuest* vkStream, VkStructureType rootType,
7306     VkPhysicalDeviceShaderAtomicInt64Features* forUnmarshaling) {
7307     (void)rootType;
7308     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7309     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7310         rootType = forUnmarshaling->sType;
7311     }
7312     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7313     vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
7314     vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
7315 }
7316 
marshal_VkPhysicalDeviceShaderFloat16Int8Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderFloat16Int8Features * forMarshaling)7317 void marshal_VkPhysicalDeviceShaderFloat16Int8Features(
7318     VulkanStreamGuest* vkStream, VkStructureType rootType,
7319     const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling) {
7320     (void)rootType;
7321     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7322     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7323         rootType = forMarshaling->sType;
7324     }
7325     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7326     vkStream->write((VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
7327     vkStream->write((VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
7328 }
7329 
unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderFloat16Int8Features * forUnmarshaling)7330 void unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
7331     VulkanStreamGuest* vkStream, VkStructureType rootType,
7332     VkPhysicalDeviceShaderFloat16Int8Features* forUnmarshaling) {
7333     (void)rootType;
7334     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7335     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7336         rootType = forUnmarshaling->sType;
7337     }
7338     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7339     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat16, sizeof(VkBool32));
7340     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt8, sizeof(VkBool32));
7341 }
7342 
marshal_VkPhysicalDeviceFloatControlsProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFloatControlsProperties * forMarshaling)7343 void marshal_VkPhysicalDeviceFloatControlsProperties(
7344     VulkanStreamGuest* vkStream, VkStructureType rootType,
7345     const VkPhysicalDeviceFloatControlsProperties* forMarshaling) {
7346     (void)rootType;
7347     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7348     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7349         rootType = forMarshaling->sType;
7350     }
7351     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7352     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence,
7353                     sizeof(VkShaderFloatControlsIndependence));
7354     vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence,
7355                     sizeof(VkShaderFloatControlsIndependence));
7356     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16,
7357                     sizeof(VkBool32));
7358     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32,
7359                     sizeof(VkBool32));
7360     vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64,
7361                     sizeof(VkBool32));
7362     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
7363     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
7364     vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
7365     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
7366     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
7367     vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
7368     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
7369     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
7370     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
7371     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
7372     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
7373     vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
7374 }
7375 
unmarshal_VkPhysicalDeviceFloatControlsProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceFloatControlsProperties * forUnmarshaling)7376 void unmarshal_VkPhysicalDeviceFloatControlsProperties(
7377     VulkanStreamGuest* vkStream, VkStructureType rootType,
7378     VkPhysicalDeviceFloatControlsProperties* forUnmarshaling) {
7379     (void)rootType;
7380     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7381     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7382         rootType = forUnmarshaling->sType;
7383     }
7384     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7385     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence,
7386                    sizeof(VkShaderFloatControlsIndependence));
7387     vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence,
7388                    sizeof(VkShaderFloatControlsIndependence));
7389     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16,
7390                    sizeof(VkBool32));
7391     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32,
7392                    sizeof(VkBool32));
7393     vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64,
7394                    sizeof(VkBool32));
7395     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
7396     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
7397     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
7398     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
7399     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
7400     vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
7401     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
7402     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
7403     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
7404     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
7405     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
7406     vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
7407 }
7408 
marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutBindingFlagsCreateInfo * forMarshaling)7409 void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
7410     VulkanStreamGuest* vkStream, VkStructureType rootType,
7411     const VkDescriptorSetLayoutBindingFlagsCreateInfo* forMarshaling) {
7412     (void)rootType;
7413     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7414     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7415         rootType = forMarshaling->sType;
7416     }
7417     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7418     vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
7419     // WARNING PTR CHECK
7420     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pBindingFlags;
7421     vkStream->putBe64(cgen_var_0);
7422     if (forMarshaling->pBindingFlags) {
7423         vkStream->write((const VkDescriptorBindingFlags*)forMarshaling->pBindingFlags,
7424                         forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
7425     }
7426 }
7427 
unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorSetLayoutBindingFlagsCreateInfo * forUnmarshaling)7428 void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
7429     VulkanStreamGuest* vkStream, VkStructureType rootType,
7430     VkDescriptorSetLayoutBindingFlagsCreateInfo* forUnmarshaling) {
7431     (void)rootType;
7432     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7433     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7434         rootType = forUnmarshaling->sType;
7435     }
7436     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7437     vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
7438     // WARNING PTR CHECK
7439     const VkDescriptorBindingFlags* check_pBindingFlags;
7440     check_pBindingFlags = (const VkDescriptorBindingFlags*)(uintptr_t)vkStream->getBe64();
7441     if (forUnmarshaling->pBindingFlags) {
7442         if (!(check_pBindingFlags)) {
7443             fprintf(stderr,
7444                     "fatal: forUnmarshaling->pBindingFlags inconsistent between guest and host\n");
7445         }
7446         vkStream->read((VkDescriptorBindingFlags*)forUnmarshaling->pBindingFlags,
7447                        forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
7448     }
7449 }
7450 
marshal_VkPhysicalDeviceDescriptorIndexingFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingFeatures * forMarshaling)7451 void marshal_VkPhysicalDeviceDescriptorIndexingFeatures(
7452     VulkanStreamGuest* vkStream, VkStructureType rootType,
7453     const VkPhysicalDeviceDescriptorIndexingFeatures* forMarshaling) {
7454     (void)rootType;
7455     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7456     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7457         rootType = forMarshaling->sType;
7458     }
7459     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7460     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing,
7461                     sizeof(VkBool32));
7462     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
7463                     sizeof(VkBool32));
7464     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
7465                     sizeof(VkBool32));
7466     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing,
7467                     sizeof(VkBool32));
7468     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing,
7469                     sizeof(VkBool32));
7470     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing,
7471                     sizeof(VkBool32));
7472     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing,
7473                     sizeof(VkBool32));
7474     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing,
7475                     sizeof(VkBool32));
7476     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
7477                     sizeof(VkBool32));
7478     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
7479                     sizeof(VkBool32));
7480     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind,
7481                     sizeof(VkBool32));
7482     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind,
7483                     sizeof(VkBool32));
7484     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind,
7485                     sizeof(VkBool32));
7486     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind,
7487                     sizeof(VkBool32));
7488     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
7489                     sizeof(VkBool32));
7490     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
7491                     sizeof(VkBool32));
7492     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending,
7493                     sizeof(VkBool32));
7494     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
7495     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount,
7496                     sizeof(VkBool32));
7497     vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
7498 }
7499 
unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorIndexingFeatures * forUnmarshaling)7500 void unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
7501     VulkanStreamGuest* vkStream, VkStructureType rootType,
7502     VkPhysicalDeviceDescriptorIndexingFeatures* forUnmarshaling) {
7503     (void)rootType;
7504     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7505     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7506         rootType = forUnmarshaling->sType;
7507     }
7508     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7509     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing,
7510                    sizeof(VkBool32));
7511     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
7512                    sizeof(VkBool32));
7513     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
7514                    sizeof(VkBool32));
7515     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing,
7516                    sizeof(VkBool32));
7517     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing,
7518                    sizeof(VkBool32));
7519     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing,
7520                    sizeof(VkBool32));
7521     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing,
7522                    sizeof(VkBool32));
7523     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing,
7524                    sizeof(VkBool32));
7525     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
7526                    sizeof(VkBool32));
7527     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
7528                    sizeof(VkBool32));
7529     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind,
7530                    sizeof(VkBool32));
7531     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind,
7532                    sizeof(VkBool32));
7533     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind,
7534                    sizeof(VkBool32));
7535     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind,
7536                    sizeof(VkBool32));
7537     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
7538                    sizeof(VkBool32));
7539     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
7540                    sizeof(VkBool32));
7541     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending,
7542                    sizeof(VkBool32));
7543     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
7544     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount,
7545                    sizeof(VkBool32));
7546     vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
7547 }
7548 
marshal_VkPhysicalDeviceDescriptorIndexingProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingProperties * forMarshaling)7549 void marshal_VkPhysicalDeviceDescriptorIndexingProperties(
7550     VulkanStreamGuest* vkStream, VkStructureType rootType,
7551     const VkPhysicalDeviceDescriptorIndexingProperties* forMarshaling) {
7552     (void)rootType;
7553     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7554     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7555         rootType = forMarshaling->sType;
7556     }
7557     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7558     vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools,
7559                     sizeof(uint32_t));
7560     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
7561                     sizeof(VkBool32));
7562     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative,
7563                     sizeof(VkBool32));
7564     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
7565                     sizeof(VkBool32));
7566     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative,
7567                     sizeof(VkBool32));
7568     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
7569                     sizeof(VkBool32));
7570     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
7571     vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
7572     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
7573                     sizeof(uint32_t));
7574     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
7575                     sizeof(uint32_t));
7576     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
7577                     sizeof(uint32_t));
7578     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
7579                     sizeof(uint32_t));
7580     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
7581                     sizeof(uint32_t));
7582     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
7583                     sizeof(uint32_t));
7584     vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources,
7585                     sizeof(uint32_t));
7586     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers,
7587                     sizeof(uint32_t));
7588     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
7589                     sizeof(uint32_t));
7590     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
7591                     sizeof(uint32_t));
7592     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
7593                     sizeof(uint32_t));
7594     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
7595                     sizeof(uint32_t));
7596     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
7597                     sizeof(uint32_t));
7598     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
7599                     sizeof(uint32_t));
7600     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
7601                     sizeof(uint32_t));
7602 }
7603 
unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorIndexingProperties * forUnmarshaling)7604 void unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
7605     VulkanStreamGuest* vkStream, VkStructureType rootType,
7606     VkPhysicalDeviceDescriptorIndexingProperties* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7613     vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools,
7614                    sizeof(uint32_t));
7615     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
7616                    sizeof(VkBool32));
7617     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative,
7618                    sizeof(VkBool32));
7619     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
7620                    sizeof(VkBool32));
7621     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative,
7622                    sizeof(VkBool32));
7623     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
7624                    sizeof(VkBool32));
7625     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind,
7626                    sizeof(VkBool32));
7627     vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
7628     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
7629                    sizeof(uint32_t));
7630     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
7631                    sizeof(uint32_t));
7632     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
7633                    sizeof(uint32_t));
7634     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
7635                    sizeof(uint32_t));
7636     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
7637                    sizeof(uint32_t));
7638     vkStream->read(
7639         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
7640         sizeof(uint32_t));
7641     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources,
7642                    sizeof(uint32_t));
7643     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers,
7644                    sizeof(uint32_t));
7645     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
7646                    sizeof(uint32_t));
7647     vkStream->read(
7648         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
7649         sizeof(uint32_t));
7650     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
7651                    sizeof(uint32_t));
7652     vkStream->read(
7653         (uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
7654         sizeof(uint32_t));
7655     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
7656                    sizeof(uint32_t));
7657     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
7658                    sizeof(uint32_t));
7659     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
7660                    sizeof(uint32_t));
7661 }
7662 
marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountAllocateInfo * forMarshaling)7663 void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
7664     VulkanStreamGuest* vkStream, VkStructureType rootType,
7665     const VkDescriptorSetVariableDescriptorCountAllocateInfo* forMarshaling) {
7666     (void)rootType;
7667     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7668     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7669         rootType = forMarshaling->sType;
7670     }
7671     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7672     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
7673     vkStream->write((const uint32_t*)forMarshaling->pDescriptorCounts,
7674                     forMarshaling->descriptorSetCount * sizeof(const uint32_t));
7675 }
7676 
unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorSetVariableDescriptorCountAllocateInfo * forUnmarshaling)7677 void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
7678     VulkanStreamGuest* vkStream, VkStructureType rootType,
7679     VkDescriptorSetVariableDescriptorCountAllocateInfo* forUnmarshaling) {
7680     (void)rootType;
7681     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7682     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7683         rootType = forUnmarshaling->sType;
7684     }
7685     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7686     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
7687     vkStream->read((uint32_t*)forUnmarshaling->pDescriptorCounts,
7688                    forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
7689 }
7690 
marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountLayoutSupport * forMarshaling)7691 void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
7692     VulkanStreamGuest* vkStream, VkStructureType rootType,
7693     const VkDescriptorSetVariableDescriptorCountLayoutSupport* forMarshaling) {
7694     (void)rootType;
7695     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7696     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7697         rootType = forMarshaling->sType;
7698     }
7699     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7700     vkStream->write((uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
7701 }
7702 
unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorSetVariableDescriptorCountLayoutSupport * forUnmarshaling)7703 void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
7704     VulkanStreamGuest* vkStream, VkStructureType rootType,
7705     VkDescriptorSetVariableDescriptorCountLayoutSupport* forUnmarshaling) {
7706     (void)rootType;
7707     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7708     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7709         rootType = forUnmarshaling->sType;
7710     }
7711     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7712     vkStream->read((uint32_t*)&forUnmarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
7713 }
7714 
marshal_VkSubpassDescriptionDepthStencilResolve(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDescriptionDepthStencilResolve * forMarshaling)7715 void marshal_VkSubpassDescriptionDepthStencilResolve(
7716     VulkanStreamGuest* vkStream, VkStructureType rootType,
7717     const VkSubpassDescriptionDepthStencilResolve* forMarshaling) {
7718     (void)rootType;
7719     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7720     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7721         rootType = forMarshaling->sType;
7722     }
7723     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7724     vkStream->write((VkResolveModeFlagBits*)&forMarshaling->depthResolveMode,
7725                     sizeof(VkResolveModeFlagBits));
7726     vkStream->write((VkResolveModeFlagBits*)&forMarshaling->stencilResolveMode,
7727                     sizeof(VkResolveModeFlagBits));
7728     // WARNING PTR CHECK
7729     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilResolveAttachment;
7730     vkStream->putBe64(cgen_var_0);
7731     if (forMarshaling->pDepthStencilResolveAttachment) {
7732         marshal_VkAttachmentReference2(
7733             vkStream, rootType,
7734             (const VkAttachmentReference2*)(forMarshaling->pDepthStencilResolveAttachment));
7735     }
7736 }
7737 
unmarshal_VkSubpassDescriptionDepthStencilResolve(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubpassDescriptionDepthStencilResolve * forUnmarshaling)7738 void unmarshal_VkSubpassDescriptionDepthStencilResolve(
7739     VulkanStreamGuest* vkStream, VkStructureType rootType,
7740     VkSubpassDescriptionDepthStencilResolve* forUnmarshaling) {
7741     (void)rootType;
7742     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7743     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7744         rootType = forUnmarshaling->sType;
7745     }
7746     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7747     vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->depthResolveMode,
7748                    sizeof(VkResolveModeFlagBits));
7749     vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->stencilResolveMode,
7750                    sizeof(VkResolveModeFlagBits));
7751     // WARNING PTR CHECK
7752     const VkAttachmentReference2* check_pDepthStencilResolveAttachment;
7753     check_pDepthStencilResolveAttachment =
7754         (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
7755     if (forUnmarshaling->pDepthStencilResolveAttachment) {
7756         if (!(check_pDepthStencilResolveAttachment)) {
7757             fprintf(stderr,
7758                     "fatal: forUnmarshaling->pDepthStencilResolveAttachment inconsistent between "
7759                     "guest and host\n");
7760         }
7761         unmarshal_VkAttachmentReference2(
7762             vkStream, rootType,
7763             (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilResolveAttachment));
7764     }
7765 }
7766 
marshal_VkPhysicalDeviceDepthStencilResolveProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthStencilResolveProperties * forMarshaling)7767 void marshal_VkPhysicalDeviceDepthStencilResolveProperties(
7768     VulkanStreamGuest* vkStream, VkStructureType rootType,
7769     const VkPhysicalDeviceDepthStencilResolveProperties* forMarshaling) {
7770     (void)rootType;
7771     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7772     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7773         rootType = forMarshaling->sType;
7774     }
7775     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7776     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes,
7777                     sizeof(VkResolveModeFlags));
7778     vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes,
7779                     sizeof(VkResolveModeFlags));
7780     vkStream->write((VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
7781     vkStream->write((VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
7782 }
7783 
unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthStencilResolveProperties * forUnmarshaling)7784 void unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
7785     VulkanStreamGuest* vkStream, VkStructureType rootType,
7786     VkPhysicalDeviceDepthStencilResolveProperties* forUnmarshaling) {
7787     (void)rootType;
7788     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7789     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7790         rootType = forUnmarshaling->sType;
7791     }
7792     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7793     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes,
7794                    sizeof(VkResolveModeFlags));
7795     vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes,
7796                    sizeof(VkResolveModeFlags));
7797     vkStream->read((VkBool32*)&forUnmarshaling->independentResolveNone, sizeof(VkBool32));
7798     vkStream->read((VkBool32*)&forUnmarshaling->independentResolve, sizeof(VkBool32));
7799 }
7800 
marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceScalarBlockLayoutFeatures * forMarshaling)7801 void marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
7802     VulkanStreamGuest* vkStream, VkStructureType rootType,
7803     const VkPhysicalDeviceScalarBlockLayoutFeatures* forMarshaling) {
7804     (void)rootType;
7805     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7806     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7807         rootType = forMarshaling->sType;
7808     }
7809     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7810     vkStream->write((VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
7811 }
7812 
unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceScalarBlockLayoutFeatures * forUnmarshaling)7813 void unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
7814     VulkanStreamGuest* vkStream, VkStructureType rootType,
7815     VkPhysicalDeviceScalarBlockLayoutFeatures* forUnmarshaling) {
7816     (void)rootType;
7817     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7818     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7819         rootType = forUnmarshaling->sType;
7820     }
7821     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7822     vkStream->read((VkBool32*)&forUnmarshaling->scalarBlockLayout, sizeof(VkBool32));
7823 }
7824 
marshal_VkImageStencilUsageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageStencilUsageCreateInfo * forMarshaling)7825 void marshal_VkImageStencilUsageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
7826                                            const VkImageStencilUsageCreateInfo* forMarshaling) {
7827     (void)rootType;
7828     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7829     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7830         rootType = forMarshaling->sType;
7831     }
7832     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7833     vkStream->write((VkImageUsageFlags*)&forMarshaling->stencilUsage, sizeof(VkImageUsageFlags));
7834 }
7835 
unmarshal_VkImageStencilUsageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageStencilUsageCreateInfo * forUnmarshaling)7836 void unmarshal_VkImageStencilUsageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
7837                                              VkImageStencilUsageCreateInfo* forUnmarshaling) {
7838     (void)rootType;
7839     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7840     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7841         rootType = forUnmarshaling->sType;
7842     }
7843     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7844     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->stencilUsage, sizeof(VkImageUsageFlags));
7845 }
7846 
marshal_VkSamplerReductionModeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerReductionModeCreateInfo * forMarshaling)7847 void marshal_VkSamplerReductionModeCreateInfo(
7848     VulkanStreamGuest* vkStream, VkStructureType rootType,
7849     const VkSamplerReductionModeCreateInfo* forMarshaling) {
7850     (void)rootType;
7851     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7852     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7853         rootType = forMarshaling->sType;
7854     }
7855     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7856     vkStream->write((VkSamplerReductionMode*)&forMarshaling->reductionMode,
7857                     sizeof(VkSamplerReductionMode));
7858 }
7859 
unmarshal_VkSamplerReductionModeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSamplerReductionModeCreateInfo * forUnmarshaling)7860 void unmarshal_VkSamplerReductionModeCreateInfo(VulkanStreamGuest* vkStream,
7861                                                 VkStructureType rootType,
7862                                                 VkSamplerReductionModeCreateInfo* forUnmarshaling) {
7863     (void)rootType;
7864     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7865     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7866         rootType = forUnmarshaling->sType;
7867     }
7868     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7869     vkStream->read((VkSamplerReductionMode*)&forUnmarshaling->reductionMode,
7870                    sizeof(VkSamplerReductionMode));
7871 }
7872 
marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSamplerFilterMinmaxProperties * forMarshaling)7873 void marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
7874     VulkanStreamGuest* vkStream, VkStructureType rootType,
7875     const VkPhysicalDeviceSamplerFilterMinmaxProperties* forMarshaling) {
7876     (void)rootType;
7877     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7878     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7879         rootType = forMarshaling->sType;
7880     }
7881     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7882     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats,
7883                     sizeof(VkBool32));
7884     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
7885 }
7886 
unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSamplerFilterMinmaxProperties * forUnmarshaling)7887 void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
7888     VulkanStreamGuest* vkStream, VkStructureType rootType,
7889     VkPhysicalDeviceSamplerFilterMinmaxProperties* forUnmarshaling) {
7890     (void)rootType;
7891     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7892     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7893         rootType = forUnmarshaling->sType;
7894     }
7895     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7896     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats,
7897                    sizeof(VkBool32));
7898     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping,
7899                    sizeof(VkBool32));
7900 }
7901 
marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkanMemoryModelFeatures * forMarshaling)7902 void marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
7903     VulkanStreamGuest* vkStream, VkStructureType rootType,
7904     const VkPhysicalDeviceVulkanMemoryModelFeatures* forMarshaling) {
7905     (void)rootType;
7906     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7907     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7908         rootType = forMarshaling->sType;
7909     }
7910     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7911     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
7912     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
7913     vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
7914                     sizeof(VkBool32));
7915 }
7916 
unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkanMemoryModelFeatures * forUnmarshaling)7917 void unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
7918     VulkanStreamGuest* vkStream, VkStructureType rootType,
7919     VkPhysicalDeviceVulkanMemoryModelFeatures* forUnmarshaling) {
7920     (void)rootType;
7921     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7922     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7923         rootType = forUnmarshaling->sType;
7924     }
7925     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7926     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModel, sizeof(VkBool32));
7927     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
7928     vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
7929                    sizeof(VkBool32));
7930 }
7931 
marshal_VkPhysicalDeviceImagelessFramebufferFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImagelessFramebufferFeatures * forMarshaling)7932 void marshal_VkPhysicalDeviceImagelessFramebufferFeatures(
7933     VulkanStreamGuest* vkStream, VkStructureType rootType,
7934     const VkPhysicalDeviceImagelessFramebufferFeatures* forMarshaling) {
7935     (void)rootType;
7936     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7937     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7938         rootType = forMarshaling->sType;
7939     }
7940     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7941     vkStream->write((VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
7942 }
7943 
unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImagelessFramebufferFeatures * forUnmarshaling)7944 void unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
7945     VulkanStreamGuest* vkStream, VkStructureType rootType,
7946     VkPhysicalDeviceImagelessFramebufferFeatures* forUnmarshaling) {
7947     (void)rootType;
7948     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7949     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7950         rootType = forUnmarshaling->sType;
7951     }
7952     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7953     vkStream->read((VkBool32*)&forUnmarshaling->imagelessFramebuffer, sizeof(VkBool32));
7954 }
7955 
marshal_VkFramebufferAttachmentImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFramebufferAttachmentImageInfo * forMarshaling)7956 void marshal_VkFramebufferAttachmentImageInfo(
7957     VulkanStreamGuest* vkStream, VkStructureType rootType,
7958     const VkFramebufferAttachmentImageInfo* forMarshaling) {
7959     (void)rootType;
7960     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7961     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7962         rootType = forMarshaling->sType;
7963     }
7964     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
7965     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
7966     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
7967     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
7968     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
7969     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
7970     vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
7971     vkStream->write((const VkFormat*)forMarshaling->pViewFormats,
7972                     forMarshaling->viewFormatCount * sizeof(const VkFormat));
7973 }
7974 
unmarshal_VkFramebufferAttachmentImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFramebufferAttachmentImageInfo * forUnmarshaling)7975 void unmarshal_VkFramebufferAttachmentImageInfo(VulkanStreamGuest* vkStream,
7976                                                 VkStructureType rootType,
7977                                                 VkFramebufferAttachmentImageInfo* forUnmarshaling) {
7978     (void)rootType;
7979     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7980     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7981         rootType = forUnmarshaling->sType;
7982     }
7983     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
7984     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
7985     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
7986     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
7987     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
7988     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
7989     vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
7990     vkStream->read((VkFormat*)forUnmarshaling->pViewFormats,
7991                    forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
7992 }
7993 
marshal_VkFramebufferAttachmentsCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFramebufferAttachmentsCreateInfo * forMarshaling)7994 void marshal_VkFramebufferAttachmentsCreateInfo(
7995     VulkanStreamGuest* vkStream, VkStructureType rootType,
7996     const VkFramebufferAttachmentsCreateInfo* forMarshaling) {
7997     (void)rootType;
7998     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7999     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8000         rootType = forMarshaling->sType;
8001     }
8002     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8003     vkStream->write((uint32_t*)&forMarshaling->attachmentImageInfoCount, sizeof(uint32_t));
8004     if (forMarshaling) {
8005         for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentImageInfoCount; ++i) {
8006             marshal_VkFramebufferAttachmentImageInfo(
8007                 vkStream, rootType,
8008                 (const VkFramebufferAttachmentImageInfo*)(forMarshaling->pAttachmentImageInfos +
8009                                                           i));
8010         }
8011     }
8012 }
8013 
unmarshal_VkFramebufferAttachmentsCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFramebufferAttachmentsCreateInfo * forUnmarshaling)8014 void unmarshal_VkFramebufferAttachmentsCreateInfo(
8015     VulkanStreamGuest* vkStream, VkStructureType rootType,
8016     VkFramebufferAttachmentsCreateInfo* forUnmarshaling) {
8017     (void)rootType;
8018     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8019     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8020         rootType = forUnmarshaling->sType;
8021     }
8022     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8023     vkStream->read((uint32_t*)&forUnmarshaling->attachmentImageInfoCount, sizeof(uint32_t));
8024     if (forUnmarshaling) {
8025         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentImageInfoCount; ++i) {
8026             unmarshal_VkFramebufferAttachmentImageInfo(
8027                 vkStream, rootType,
8028                 (VkFramebufferAttachmentImageInfo*)(forUnmarshaling->pAttachmentImageInfos + i));
8029         }
8030     }
8031 }
8032 
marshal_VkRenderPassAttachmentBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassAttachmentBeginInfo * forMarshaling)8033 void marshal_VkRenderPassAttachmentBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8034                                              const VkRenderPassAttachmentBeginInfo* forMarshaling) {
8035     (void)rootType;
8036     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8037     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8038         rootType = forMarshaling->sType;
8039     }
8040     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8041     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
8042     if (forMarshaling->attachmentCount) {
8043         uint64_t* cgen_var_0;
8044         vkStream->alloc((void**)&cgen_var_0, forMarshaling->attachmentCount * 8);
8045         vkStream->handleMapping()->mapHandles_VkImageView_u64(
8046             forMarshaling->pAttachments, cgen_var_0, forMarshaling->attachmentCount);
8047         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->attachmentCount * 8);
8048     }
8049 }
8050 
unmarshal_VkRenderPassAttachmentBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassAttachmentBeginInfo * forUnmarshaling)8051 void unmarshal_VkRenderPassAttachmentBeginInfo(VulkanStreamGuest* vkStream,
8052                                                VkStructureType rootType,
8053                                                VkRenderPassAttachmentBeginInfo* forUnmarshaling) {
8054     (void)rootType;
8055     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8056     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8057         rootType = forUnmarshaling->sType;
8058     }
8059     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8060     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
8061     if (forUnmarshaling->attachmentCount) {
8062         uint64_t* cgen_var_0;
8063         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->attachmentCount * 8);
8064         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->attachmentCount * 8);
8065         vkStream->handleMapping()->mapHandles_u64_VkImageView(
8066             cgen_var_0, (VkImageView*)forUnmarshaling->pAttachments,
8067             forUnmarshaling->attachmentCount);
8068     }
8069 }
8070 
marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * forMarshaling)8071 void marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
8072     VulkanStreamGuest* vkStream, VkStructureType rootType,
8073     const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forMarshaling) {
8074     (void)rootType;
8075     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8076     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8077         rootType = forMarshaling->sType;
8078     }
8079     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8080     vkStream->write((VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
8081 }
8082 
unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceUniformBufferStandardLayoutFeatures * forUnmarshaling)8083 void unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
8084     VulkanStreamGuest* vkStream, VkStructureType rootType,
8085     VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forUnmarshaling) {
8086     (void)rootType;
8087     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8088     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8089         rootType = forUnmarshaling->sType;
8090     }
8091     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8092     vkStream->read((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
8093 }
8094 
marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * forMarshaling)8095 void marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
8096     VulkanStreamGuest* vkStream, VkStructureType rootType,
8097     const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forMarshaling) {
8098     (void)rootType;
8099     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8100     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8101         rootType = forMarshaling->sType;
8102     }
8103     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8104     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
8105 }
8106 
unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * forUnmarshaling)8107 void unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
8108     VulkanStreamGuest* vkStream, VkStructureType rootType,
8109     VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forUnmarshaling) {
8110     (void)rootType;
8111     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8112     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8113         rootType = forUnmarshaling->sType;
8114     }
8115     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8116     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
8117 }
8118 
marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * forMarshaling)8119 void marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
8120     VulkanStreamGuest* vkStream, VkStructureType rootType,
8121     const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forMarshaling) {
8122     (void)rootType;
8123     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8124     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8125         rootType = forMarshaling->sType;
8126     }
8127     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8128     vkStream->write((VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
8129 }
8130 
unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * forUnmarshaling)8131 void unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
8132     VulkanStreamGuest* vkStream, VkStructureType rootType,
8133     VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forUnmarshaling) {
8134     (void)rootType;
8135     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8136     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8137         rootType = forUnmarshaling->sType;
8138     }
8139     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8140     vkStream->read((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
8141 }
8142 
marshal_VkAttachmentReferenceStencilLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentReferenceStencilLayout * forMarshaling)8143 void marshal_VkAttachmentReferenceStencilLayout(
8144     VulkanStreamGuest* vkStream, VkStructureType rootType,
8145     const VkAttachmentReferenceStencilLayout* forMarshaling) {
8146     (void)rootType;
8147     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8148     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8149         rootType = forMarshaling->sType;
8150     }
8151     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8152     vkStream->write((VkImageLayout*)&forMarshaling->stencilLayout, sizeof(VkImageLayout));
8153 }
8154 
unmarshal_VkAttachmentReferenceStencilLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAttachmentReferenceStencilLayout * forUnmarshaling)8155 void unmarshal_VkAttachmentReferenceStencilLayout(
8156     VulkanStreamGuest* vkStream, VkStructureType rootType,
8157     VkAttachmentReferenceStencilLayout* forUnmarshaling) {
8158     (void)rootType;
8159     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8160     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8161         rootType = forUnmarshaling->sType;
8162     }
8163     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8164     vkStream->read((VkImageLayout*)&forUnmarshaling->stencilLayout, sizeof(VkImageLayout));
8165 }
8166 
marshal_VkAttachmentDescriptionStencilLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentDescriptionStencilLayout * forMarshaling)8167 void marshal_VkAttachmentDescriptionStencilLayout(
8168     VulkanStreamGuest* vkStream, VkStructureType rootType,
8169     const VkAttachmentDescriptionStencilLayout* forMarshaling) {
8170     (void)rootType;
8171     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8172     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8173         rootType = forMarshaling->sType;
8174     }
8175     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8176     vkStream->write((VkImageLayout*)&forMarshaling->stencilInitialLayout, sizeof(VkImageLayout));
8177     vkStream->write((VkImageLayout*)&forMarshaling->stencilFinalLayout, sizeof(VkImageLayout));
8178 }
8179 
unmarshal_VkAttachmentDescriptionStencilLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAttachmentDescriptionStencilLayout * forUnmarshaling)8180 void unmarshal_VkAttachmentDescriptionStencilLayout(
8181     VulkanStreamGuest* vkStream, VkStructureType rootType,
8182     VkAttachmentDescriptionStencilLayout* forUnmarshaling) {
8183     (void)rootType;
8184     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8185     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8186         rootType = forUnmarshaling->sType;
8187     }
8188     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8189     vkStream->read((VkImageLayout*)&forUnmarshaling->stencilInitialLayout, sizeof(VkImageLayout));
8190     vkStream->read((VkImageLayout*)&forUnmarshaling->stencilFinalLayout, sizeof(VkImageLayout));
8191 }
8192 
marshal_VkPhysicalDeviceHostQueryResetFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostQueryResetFeatures * forMarshaling)8193 void marshal_VkPhysicalDeviceHostQueryResetFeatures(
8194     VulkanStreamGuest* vkStream, VkStructureType rootType,
8195     const VkPhysicalDeviceHostQueryResetFeatures* forMarshaling) {
8196     (void)rootType;
8197     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8198     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8199         rootType = forMarshaling->sType;
8200     }
8201     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8202     vkStream->write((VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
8203 }
8204 
unmarshal_VkPhysicalDeviceHostQueryResetFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceHostQueryResetFeatures * forUnmarshaling)8205 void unmarshal_VkPhysicalDeviceHostQueryResetFeatures(
8206     VulkanStreamGuest* vkStream, VkStructureType rootType,
8207     VkPhysicalDeviceHostQueryResetFeatures* forUnmarshaling) {
8208     (void)rootType;
8209     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8210     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8211         rootType = forUnmarshaling->sType;
8212     }
8213     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8214     vkStream->read((VkBool32*)&forUnmarshaling->hostQueryReset, sizeof(VkBool32));
8215 }
8216 
marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreFeatures * forMarshaling)8217 void marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
8218     VulkanStreamGuest* vkStream, VkStructureType rootType,
8219     const VkPhysicalDeviceTimelineSemaphoreFeatures* forMarshaling) {
8220     (void)rootType;
8221     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8222     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8223         rootType = forMarshaling->sType;
8224     }
8225     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8226     vkStream->write((VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
8227 }
8228 
unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTimelineSemaphoreFeatures * forUnmarshaling)8229 void unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
8230     VulkanStreamGuest* vkStream, VkStructureType rootType,
8231     VkPhysicalDeviceTimelineSemaphoreFeatures* forUnmarshaling) {
8232     (void)rootType;
8233     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8234     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8235         rootType = forUnmarshaling->sType;
8236     }
8237     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8238     vkStream->read((VkBool32*)&forUnmarshaling->timelineSemaphore, sizeof(VkBool32));
8239 }
8240 
marshal_VkPhysicalDeviceTimelineSemaphoreProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreProperties * forMarshaling)8241 void marshal_VkPhysicalDeviceTimelineSemaphoreProperties(
8242     VulkanStreamGuest* vkStream, VkStructureType rootType,
8243     const VkPhysicalDeviceTimelineSemaphoreProperties* forMarshaling) {
8244     (void)rootType;
8245     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8246     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8247         rootType = forMarshaling->sType;
8248     }
8249     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8250     vkStream->write((uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference,
8251                     sizeof(uint64_t));
8252 }
8253 
unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTimelineSemaphoreProperties * forUnmarshaling)8254 void unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
8255     VulkanStreamGuest* vkStream, VkStructureType rootType,
8256     VkPhysicalDeviceTimelineSemaphoreProperties* forUnmarshaling) {
8257     (void)rootType;
8258     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8259     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8260         rootType = forUnmarshaling->sType;
8261     }
8262     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8263     vkStream->read((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference,
8264                    sizeof(uint64_t));
8265 }
8266 
marshal_VkSemaphoreTypeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreTypeCreateInfo * forMarshaling)8267 void marshal_VkSemaphoreTypeCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8268                                        const VkSemaphoreTypeCreateInfo* forMarshaling) {
8269     (void)rootType;
8270     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8271     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8272         rootType = forMarshaling->sType;
8273     }
8274     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8275     vkStream->write((VkSemaphoreType*)&forMarshaling->semaphoreType, sizeof(VkSemaphoreType));
8276     vkStream->write((uint64_t*)&forMarshaling->initialValue, sizeof(uint64_t));
8277 }
8278 
unmarshal_VkSemaphoreTypeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSemaphoreTypeCreateInfo * forUnmarshaling)8279 void unmarshal_VkSemaphoreTypeCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8280                                          VkSemaphoreTypeCreateInfo* forUnmarshaling) {
8281     (void)rootType;
8282     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8283     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8284         rootType = forUnmarshaling->sType;
8285     }
8286     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8287     vkStream->read((VkSemaphoreType*)&forUnmarshaling->semaphoreType, sizeof(VkSemaphoreType));
8288     vkStream->read((uint64_t*)&forUnmarshaling->initialValue, sizeof(uint64_t));
8289 }
8290 
marshal_VkTimelineSemaphoreSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkTimelineSemaphoreSubmitInfo * forMarshaling)8291 void marshal_VkTimelineSemaphoreSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8292                                            const VkTimelineSemaphoreSubmitInfo* forMarshaling) {
8293     (void)rootType;
8294     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8295     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8296         rootType = forMarshaling->sType;
8297     }
8298     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8299     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
8300     // WARNING PTR CHECK
8301     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
8302     vkStream->putBe64(cgen_var_0);
8303     if (forMarshaling->pWaitSemaphoreValues) {
8304         vkStream->write((const uint64_t*)forMarshaling->pWaitSemaphoreValues,
8305                         forMarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
8306     }
8307     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
8308     // WARNING PTR CHECK
8309     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
8310     vkStream->putBe64(cgen_var_1);
8311     if (forMarshaling->pSignalSemaphoreValues) {
8312         vkStream->write((const uint64_t*)forMarshaling->pSignalSemaphoreValues,
8313                         forMarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
8314     }
8315 }
8316 
unmarshal_VkTimelineSemaphoreSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkTimelineSemaphoreSubmitInfo * forUnmarshaling)8317 void unmarshal_VkTimelineSemaphoreSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8318                                              VkTimelineSemaphoreSubmitInfo* forUnmarshaling) {
8319     (void)rootType;
8320     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8321     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8322         rootType = forUnmarshaling->sType;
8323     }
8324     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8325     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
8326     // WARNING PTR CHECK
8327     const uint64_t* check_pWaitSemaphoreValues;
8328     check_pWaitSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
8329     if (forUnmarshaling->pWaitSemaphoreValues) {
8330         if (!(check_pWaitSemaphoreValues)) {
8331             fprintf(stderr,
8332                     "fatal: forUnmarshaling->pWaitSemaphoreValues inconsistent between guest and "
8333                     "host\n");
8334         }
8335         vkStream->read((uint64_t*)forUnmarshaling->pWaitSemaphoreValues,
8336                        forUnmarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
8337     }
8338     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
8339     // WARNING PTR CHECK
8340     const uint64_t* check_pSignalSemaphoreValues;
8341     check_pSignalSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
8342     if (forUnmarshaling->pSignalSemaphoreValues) {
8343         if (!(check_pSignalSemaphoreValues)) {
8344             fprintf(stderr,
8345                     "fatal: forUnmarshaling->pSignalSemaphoreValues inconsistent between guest and "
8346                     "host\n");
8347         }
8348         vkStream->read((uint64_t*)forUnmarshaling->pSignalSemaphoreValues,
8349                        forUnmarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
8350     }
8351 }
8352 
marshal_VkSemaphoreWaitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreWaitInfo * forMarshaling)8353 void marshal_VkSemaphoreWaitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8354                                  const VkSemaphoreWaitInfo* forMarshaling) {
8355     (void)rootType;
8356     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8357     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8358         rootType = forMarshaling->sType;
8359     }
8360     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8361     vkStream->write((VkSemaphoreWaitFlags*)&forMarshaling->flags, sizeof(VkSemaphoreWaitFlags));
8362     vkStream->write((uint32_t*)&forMarshaling->semaphoreCount, sizeof(uint32_t));
8363     if (forMarshaling->semaphoreCount) {
8364         uint64_t* cgen_var_0;
8365         vkStream->alloc((void**)&cgen_var_0, forMarshaling->semaphoreCount * 8);
8366         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
8367             forMarshaling->pSemaphores, cgen_var_0, forMarshaling->semaphoreCount);
8368         vkStream->write((uint64_t*)cgen_var_0, forMarshaling->semaphoreCount * 8);
8369     }
8370     vkStream->write((const uint64_t*)forMarshaling->pValues,
8371                     forMarshaling->semaphoreCount * sizeof(const uint64_t));
8372 }
8373 
unmarshal_VkSemaphoreWaitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSemaphoreWaitInfo * forUnmarshaling)8374 void unmarshal_VkSemaphoreWaitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8375                                    VkSemaphoreWaitInfo* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8382     vkStream->read((VkSemaphoreWaitFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreWaitFlags));
8383     vkStream->read((uint32_t*)&forUnmarshaling->semaphoreCount, sizeof(uint32_t));
8384     if (forUnmarshaling->semaphoreCount) {
8385         uint64_t* cgen_var_0;
8386         vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->semaphoreCount * 8);
8387         vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->semaphoreCount * 8);
8388         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
8389             cgen_var_0, (VkSemaphore*)forUnmarshaling->pSemaphores,
8390             forUnmarshaling->semaphoreCount);
8391     }
8392     vkStream->read((uint64_t*)forUnmarshaling->pValues,
8393                    forUnmarshaling->semaphoreCount * sizeof(const uint64_t));
8394 }
8395 
marshal_VkSemaphoreSignalInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreSignalInfo * forMarshaling)8396 void marshal_VkSemaphoreSignalInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8397                                    const VkSemaphoreSignalInfo* forMarshaling) {
8398     (void)rootType;
8399     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8400     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8401         rootType = forMarshaling->sType;
8402     }
8403     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8404     uint64_t cgen_var_0;
8405     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
8406                                                           1);
8407     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
8408     vkStream->write((uint64_t*)&forMarshaling->value, sizeof(uint64_t));
8409 }
8410 
unmarshal_VkSemaphoreSignalInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSemaphoreSignalInfo * forUnmarshaling)8411 void unmarshal_VkSemaphoreSignalInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8412                                      VkSemaphoreSignalInfo* forUnmarshaling) {
8413     (void)rootType;
8414     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8415     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8416         rootType = forUnmarshaling->sType;
8417     }
8418     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8419     uint64_t cgen_var_0;
8420     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
8421     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
8422         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8423     vkStream->read((uint64_t*)&forUnmarshaling->value, sizeof(uint64_t));
8424 }
8425 
marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceBufferDeviceAddressFeatures * forMarshaling)8426 void marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
8427     VulkanStreamGuest* vkStream, VkStructureType rootType,
8428     const VkPhysicalDeviceBufferDeviceAddressFeatures* forMarshaling) {
8429     (void)rootType;
8430     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8431     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8432         rootType = forMarshaling->sType;
8433     }
8434     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8435     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
8436     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
8437     vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
8438 }
8439 
unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceBufferDeviceAddressFeatures * forUnmarshaling)8440 void unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
8441     VulkanStreamGuest* vkStream, VkStructureType rootType,
8442     VkPhysicalDeviceBufferDeviceAddressFeatures* forUnmarshaling) {
8443     (void)rootType;
8444     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8445     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8446         rootType = forUnmarshaling->sType;
8447     }
8448     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8449     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
8450     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
8451     vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
8452 }
8453 
marshal_VkBufferDeviceAddressInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferDeviceAddressInfo * forMarshaling)8454 void marshal_VkBufferDeviceAddressInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8455                                        const VkBufferDeviceAddressInfo* forMarshaling) {
8456     (void)rootType;
8457     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8458     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8459         rootType = forMarshaling->sType;
8460     }
8461     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8462     uint64_t cgen_var_0;
8463     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
8464     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
8465 }
8466 
unmarshal_VkBufferDeviceAddressInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferDeviceAddressInfo * forUnmarshaling)8467 void unmarshal_VkBufferDeviceAddressInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
8468                                          VkBufferDeviceAddressInfo* forUnmarshaling) {
8469     (void)rootType;
8470     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8471     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8472         rootType = forUnmarshaling->sType;
8473     }
8474     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8475     uint64_t cgen_var_0;
8476     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
8477     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
8478                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
8479 }
8480 
marshal_VkBufferOpaqueCaptureAddressCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferOpaqueCaptureAddressCreateInfo * forMarshaling)8481 void marshal_VkBufferOpaqueCaptureAddressCreateInfo(
8482     VulkanStreamGuest* vkStream, VkStructureType rootType,
8483     const VkBufferOpaqueCaptureAddressCreateInfo* forMarshaling) {
8484     (void)rootType;
8485     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8486     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8487         rootType = forMarshaling->sType;
8488     }
8489     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8490     vkStream->write((uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
8491 }
8492 
unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferOpaqueCaptureAddressCreateInfo * forUnmarshaling)8493 void unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
8494     VulkanStreamGuest* vkStream, VkStructureType rootType,
8495     VkBufferOpaqueCaptureAddressCreateInfo* forUnmarshaling) {
8496     (void)rootType;
8497     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8498     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8499         rootType = forUnmarshaling->sType;
8500     }
8501     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8502     vkStream->read((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, sizeof(uint64_t));
8503 }
8504 
marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryOpaqueCaptureAddressAllocateInfo * forMarshaling)8505 void marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
8506     VulkanStreamGuest* vkStream, VkStructureType rootType,
8507     const VkMemoryOpaqueCaptureAddressAllocateInfo* forMarshaling) {
8508     (void)rootType;
8509     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8510     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8511         rootType = forMarshaling->sType;
8512     }
8513     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8514     vkStream->write((uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
8515 }
8516 
unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryOpaqueCaptureAddressAllocateInfo * forUnmarshaling)8517 void unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
8518     VulkanStreamGuest* vkStream, VkStructureType rootType,
8519     VkMemoryOpaqueCaptureAddressAllocateInfo* forUnmarshaling) {
8520     (void)rootType;
8521     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8522     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8523         rootType = forUnmarshaling->sType;
8524     }
8525     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8526     vkStream->read((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, sizeof(uint64_t));
8527 }
8528 
marshal_VkDeviceMemoryOpaqueCaptureAddressInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceMemoryOpaqueCaptureAddressInfo * forMarshaling)8529 void marshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
8530     VulkanStreamGuest* vkStream, VkStructureType rootType,
8531     const VkDeviceMemoryOpaqueCaptureAddressInfo* 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     uint64_t cgen_var_0;
8539     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
8540                                                              1);
8541     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
8542 }
8543 
unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceMemoryOpaqueCaptureAddressInfo * forUnmarshaling)8544 void unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
8545     VulkanStreamGuest* vkStream, VkStructureType rootType,
8546     VkDeviceMemoryOpaqueCaptureAddressInfo* forUnmarshaling) {
8547     (void)rootType;
8548     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8549     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8550         rootType = forUnmarshaling->sType;
8551     }
8552     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8553     uint64_t cgen_var_0;
8554     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
8555     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
8556         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
8557 }
8558 
8559 #endif
8560 #ifdef VK_VERSION_1_3
marshal_VkPhysicalDeviceVulkan13Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan13Features * forMarshaling)8561 void marshal_VkPhysicalDeviceVulkan13Features(
8562     VulkanStreamGuest* vkStream, VkStructureType rootType,
8563     const VkPhysicalDeviceVulkan13Features* forMarshaling) {
8564     (void)rootType;
8565     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8566     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8567         rootType = forMarshaling->sType;
8568     }
8569     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8570     vkStream->write((VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
8571     vkStream->write((VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
8572     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
8573                     sizeof(VkBool32));
8574     vkStream->write((VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
8575     vkStream->write((VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
8576     vkStream->write((VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
8577     vkStream->write((VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
8578     vkStream->write((VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
8579     vkStream->write((VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
8580     vkStream->write((VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
8581     vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
8582     vkStream->write((VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory,
8583                     sizeof(VkBool32));
8584     vkStream->write((VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
8585     vkStream->write((VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
8586     vkStream->write((VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
8587 }
8588 
unmarshal_VkPhysicalDeviceVulkan13Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan13Features * forUnmarshaling)8589 void unmarshal_VkPhysicalDeviceVulkan13Features(VulkanStreamGuest* vkStream,
8590                                                 VkStructureType rootType,
8591                                                 VkPhysicalDeviceVulkan13Features* forUnmarshaling) {
8592     (void)rootType;
8593     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8594     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8595         rootType = forUnmarshaling->sType;
8596     }
8597     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8598     vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess, sizeof(VkBool32));
8599     vkStream->read((VkBool32*)&forUnmarshaling->inlineUniformBlock, sizeof(VkBool32));
8600     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
8601                    sizeof(VkBool32));
8602     vkStream->read((VkBool32*)&forUnmarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
8603     vkStream->read((VkBool32*)&forUnmarshaling->privateData, sizeof(VkBool32));
8604     vkStream->read((VkBool32*)&forUnmarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
8605     vkStream->read((VkBool32*)&forUnmarshaling->shaderTerminateInvocation, sizeof(VkBool32));
8606     vkStream->read((VkBool32*)&forUnmarshaling->subgroupSizeControl, sizeof(VkBool32));
8607     vkStream->read((VkBool32*)&forUnmarshaling->computeFullSubgroups, sizeof(VkBool32));
8608     vkStream->read((VkBool32*)&forUnmarshaling->synchronization2, sizeof(VkBool32));
8609     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
8610     vkStream->read((VkBool32*)&forUnmarshaling->shaderZeroInitializeWorkgroupMemory,
8611                    sizeof(VkBool32));
8612     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRendering, sizeof(VkBool32));
8613     vkStream->read((VkBool32*)&forUnmarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
8614     vkStream->read((VkBool32*)&forUnmarshaling->maintenance4, sizeof(VkBool32));
8615 }
8616 
marshal_VkPhysicalDeviceVulkan13Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan13Properties * forMarshaling)8617 void marshal_VkPhysicalDeviceVulkan13Properties(
8618     VulkanStreamGuest* vkStream, VkStructureType rootType,
8619     const VkPhysicalDeviceVulkan13Properties* forMarshaling) {
8620     (void)rootType;
8621     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8622     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8623         rootType = forMarshaling->sType;
8624     }
8625     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8626     vkStream->write((uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
8627     vkStream->write((uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
8628     vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
8629     vkStream->write((VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages,
8630                     sizeof(VkShaderStageFlags));
8631     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
8632     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks,
8633                     sizeof(uint32_t));
8634     vkStream->write(
8635         (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
8636         sizeof(uint32_t));
8637     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks,
8638                     sizeof(uint32_t));
8639     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
8640                     sizeof(uint32_t));
8641     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformTotalSize, sizeof(uint32_t));
8642     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated,
8643                     sizeof(VkBool32));
8644     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated,
8645                     sizeof(VkBool32));
8646     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated,
8647                     sizeof(VkBool32));
8648     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
8649                     sizeof(VkBool32));
8650     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
8651                     sizeof(VkBool32));
8652     vkStream->write(
8653         (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
8654         sizeof(VkBool32));
8655     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated,
8656                     sizeof(VkBool32));
8657     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated,
8658                     sizeof(VkBool32));
8659     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated,
8660                     sizeof(VkBool32));
8661     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated,
8662                     sizeof(VkBool32));
8663     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated,
8664                     sizeof(VkBool32));
8665     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated,
8666                     sizeof(VkBool32));
8667     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated,
8668                     sizeof(VkBool32));
8669     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated,
8670                     sizeof(VkBool32));
8671     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated,
8672                     sizeof(VkBool32));
8673     vkStream->write(
8674         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
8675         sizeof(VkBool32));
8676     vkStream->write(
8677         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
8678         sizeof(VkBool32));
8679     vkStream->write((VkBool32*)&forMarshaling
8680                         ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
8681                     sizeof(VkBool32));
8682     vkStream->write((VkBool32*)&forMarshaling
8683                         ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
8684                     sizeof(VkBool32));
8685     vkStream->write((VkBool32*)&forMarshaling
8686                         ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
8687                     sizeof(VkBool32));
8688     vkStream->write(
8689         (VkBool32*)&forMarshaling
8690             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
8691         sizeof(VkBool32));
8692     vkStream->write(
8693         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
8694         sizeof(VkBool32));
8695     vkStream->write(
8696         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
8697         sizeof(VkBool32));
8698     vkStream->write((VkBool32*)&forMarshaling
8699                         ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
8700                     sizeof(VkBool32));
8701     vkStream->write(
8702         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
8703         sizeof(VkBool32));
8704     vkStream->write(
8705         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
8706         sizeof(VkBool32));
8707     vkStream->write((VkBool32*)&forMarshaling
8708                         ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
8709                     sizeof(VkBool32));
8710     vkStream->write(
8711         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
8712         sizeof(VkBool32));
8713     vkStream->write(
8714         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
8715         sizeof(VkBool32));
8716     vkStream->write((VkBool32*)&forMarshaling
8717                         ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
8718                     sizeof(VkBool32));
8719     vkStream->write((VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes,
8720                     sizeof(VkDeviceSize));
8721     vkStream->write((VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment,
8722                     sizeof(VkBool32));
8723     vkStream->write((VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes,
8724                     sizeof(VkDeviceSize));
8725     vkStream->write((VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
8726                     sizeof(VkBool32));
8727     vkStream->write((VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
8728 }
8729 
unmarshal_VkPhysicalDeviceVulkan13Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan13Properties * forUnmarshaling)8730 void unmarshal_VkPhysicalDeviceVulkan13Properties(
8731     VulkanStreamGuest* vkStream, VkStructureType rootType,
8732     VkPhysicalDeviceVulkan13Properties* forUnmarshaling) {
8733     (void)rootType;
8734     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8735     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8736         rootType = forUnmarshaling->sType;
8737     }
8738     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8739     vkStream->read((uint32_t*)&forUnmarshaling->minSubgroupSize, sizeof(uint32_t));
8740     vkStream->read((uint32_t*)&forUnmarshaling->maxSubgroupSize, sizeof(uint32_t));
8741     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
8742     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->requiredSubgroupSizeStages,
8743                    sizeof(VkShaderStageFlags));
8744     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
8745     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInlineUniformBlocks,
8746                    sizeof(uint32_t));
8747     vkStream->read(
8748         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
8749         sizeof(uint32_t));
8750     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInlineUniformBlocks,
8751                    sizeof(uint32_t));
8752     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
8753                    sizeof(uint32_t));
8754     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformTotalSize, sizeof(uint32_t));
8755     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitUnsignedAccelerated,
8756                    sizeof(VkBool32));
8757     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitSignedAccelerated,
8758                    sizeof(VkBool32));
8759     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitMixedSignednessAccelerated,
8760                    sizeof(VkBool32));
8761     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
8762                    sizeof(VkBool32));
8763     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
8764                    sizeof(VkBool32));
8765     vkStream->read(
8766         (VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
8767         sizeof(VkBool32));
8768     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitUnsignedAccelerated,
8769                    sizeof(VkBool32));
8770     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitSignedAccelerated,
8771                    sizeof(VkBool32));
8772     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitMixedSignednessAccelerated,
8773                    sizeof(VkBool32));
8774     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitUnsignedAccelerated,
8775                    sizeof(VkBool32));
8776     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitSignedAccelerated,
8777                    sizeof(VkBool32));
8778     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitMixedSignednessAccelerated,
8779                    sizeof(VkBool32));
8780     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitUnsignedAccelerated,
8781                    sizeof(VkBool32));
8782     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitSignedAccelerated,
8783                    sizeof(VkBool32));
8784     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitMixedSignednessAccelerated,
8785                    sizeof(VkBool32));
8786     vkStream->read(
8787         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
8788         sizeof(VkBool32));
8789     vkStream->read(
8790         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
8791         sizeof(VkBool32));
8792     vkStream->read((VkBool32*)&forUnmarshaling
8793                        ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
8794                    sizeof(VkBool32));
8795     vkStream->read((VkBool32*)&forUnmarshaling
8796                        ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
8797                    sizeof(VkBool32));
8798     vkStream->read((VkBool32*)&forUnmarshaling
8799                        ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
8800                    sizeof(VkBool32));
8801     vkStream->read(
8802         (VkBool32*)&forUnmarshaling
8803             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
8804         sizeof(VkBool32));
8805     vkStream->read((VkBool32*)&forUnmarshaling
8806                        ->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
8807                    sizeof(VkBool32));
8808     vkStream->read(
8809         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
8810         sizeof(VkBool32));
8811     vkStream->read((VkBool32*)&forUnmarshaling
8812                        ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
8813                    sizeof(VkBool32));
8814     vkStream->read((VkBool32*)&forUnmarshaling
8815                        ->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
8816                    sizeof(VkBool32));
8817     vkStream->read(
8818         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
8819         sizeof(VkBool32));
8820     vkStream->read((VkBool32*)&forUnmarshaling
8821                        ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
8822                    sizeof(VkBool32));
8823     vkStream->read((VkBool32*)&forUnmarshaling
8824                        ->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
8825                    sizeof(VkBool32));
8826     vkStream->read(
8827         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
8828         sizeof(VkBool32));
8829     vkStream->read((VkBool32*)&forUnmarshaling
8830                        ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
8831                    sizeof(VkBool32));
8832     vkStream->read((VkDeviceSize*)&forUnmarshaling->storageTexelBufferOffsetAlignmentBytes,
8833                    sizeof(VkDeviceSize));
8834     vkStream->read((VkBool32*)&forUnmarshaling->storageTexelBufferOffsetSingleTexelAlignment,
8835                    sizeof(VkBool32));
8836     vkStream->read((VkDeviceSize*)&forUnmarshaling->uniformTexelBufferOffsetAlignmentBytes,
8837                    sizeof(VkDeviceSize));
8838     vkStream->read((VkBool32*)&forUnmarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
8839                    sizeof(VkBool32));
8840     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxBufferSize, sizeof(VkDeviceSize));
8841 }
8842 
marshal_VkPipelineCreationFeedback(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCreationFeedback * forMarshaling)8843 void marshal_VkPipelineCreationFeedback(VulkanStreamGuest* vkStream, VkStructureType rootType,
8844                                         const VkPipelineCreationFeedback* forMarshaling) {
8845     (void)rootType;
8846     vkStream->write((VkPipelineCreationFeedbackFlags*)&forMarshaling->flags,
8847                     sizeof(VkPipelineCreationFeedbackFlags));
8848     vkStream->write((uint64_t*)&forMarshaling->duration, sizeof(uint64_t));
8849 }
8850 
unmarshal_VkPipelineCreationFeedback(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineCreationFeedback * forUnmarshaling)8851 void unmarshal_VkPipelineCreationFeedback(VulkanStreamGuest* vkStream, VkStructureType rootType,
8852                                           VkPipelineCreationFeedback* forUnmarshaling) {
8853     (void)rootType;
8854     vkStream->read((VkPipelineCreationFeedbackFlags*)&forUnmarshaling->flags,
8855                    sizeof(VkPipelineCreationFeedbackFlags));
8856     vkStream->read((uint64_t*)&forUnmarshaling->duration, sizeof(uint64_t));
8857 }
8858 
marshal_VkPipelineCreationFeedbackCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCreationFeedbackCreateInfo * forMarshaling)8859 void marshal_VkPipelineCreationFeedbackCreateInfo(
8860     VulkanStreamGuest* vkStream, VkStructureType rootType,
8861     const VkPipelineCreationFeedbackCreateInfo* forMarshaling) {
8862     (void)rootType;
8863     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8864     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8865         rootType = forMarshaling->sType;
8866     }
8867     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8868     marshal_VkPipelineCreationFeedback(
8869         vkStream, rootType,
8870         (VkPipelineCreationFeedback*)(forMarshaling->pPipelineCreationFeedback));
8871     vkStream->write((uint32_t*)&forMarshaling->pipelineStageCreationFeedbackCount,
8872                     sizeof(uint32_t));
8873     if (forMarshaling) {
8874         for (uint32_t i = 0; i < (uint32_t)forMarshaling->pipelineStageCreationFeedbackCount; ++i) {
8875             marshal_VkPipelineCreationFeedback(
8876                 vkStream, rootType,
8877                 (VkPipelineCreationFeedback*)(forMarshaling->pPipelineStageCreationFeedbacks + i));
8878         }
8879     }
8880 }
8881 
unmarshal_VkPipelineCreationFeedbackCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineCreationFeedbackCreateInfo * forUnmarshaling)8882 void unmarshal_VkPipelineCreationFeedbackCreateInfo(
8883     VulkanStreamGuest* vkStream, VkStructureType rootType,
8884     VkPipelineCreationFeedbackCreateInfo* forUnmarshaling) {
8885     (void)rootType;
8886     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8887     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8888         rootType = forUnmarshaling->sType;
8889     }
8890     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8891     unmarshal_VkPipelineCreationFeedback(
8892         vkStream, rootType,
8893         (VkPipelineCreationFeedback*)(forUnmarshaling->pPipelineCreationFeedback));
8894     vkStream->read((uint32_t*)&forUnmarshaling->pipelineStageCreationFeedbackCount,
8895                    sizeof(uint32_t));
8896     if (forUnmarshaling) {
8897         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pipelineStageCreationFeedbackCount;
8898              ++i) {
8899             unmarshal_VkPipelineCreationFeedback(
8900                 vkStream, rootType,
8901                 (VkPipelineCreationFeedback*)(forUnmarshaling->pPipelineStageCreationFeedbacks +
8902                                               i));
8903         }
8904     }
8905 }
8906 
marshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderTerminateInvocationFeatures * forMarshaling)8907 void marshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
8908     VulkanStreamGuest* vkStream, VkStructureType rootType,
8909     const VkPhysicalDeviceShaderTerminateInvocationFeatures* forMarshaling) {
8910     (void)rootType;
8911     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8912     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8913         rootType = forMarshaling->sType;
8914     }
8915     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8916     vkStream->write((VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
8917 }
8918 
unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderTerminateInvocationFeatures * forUnmarshaling)8919 void unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
8920     VulkanStreamGuest* vkStream, VkStructureType rootType,
8921     VkPhysicalDeviceShaderTerminateInvocationFeatures* forUnmarshaling) {
8922     (void)rootType;
8923     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8924     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8925         rootType = forUnmarshaling->sType;
8926     }
8927     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8928     vkStream->read((VkBool32*)&forUnmarshaling->shaderTerminateInvocation, sizeof(VkBool32));
8929 }
8930 
marshal_VkPhysicalDeviceToolProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceToolProperties * forMarshaling)8931 void marshal_VkPhysicalDeviceToolProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
8932                                             const VkPhysicalDeviceToolProperties* forMarshaling) {
8933     (void)rootType;
8934     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8935     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8936         rootType = forMarshaling->sType;
8937     }
8938     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8939     vkStream->write((char*)forMarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8940     vkStream->write((char*)forMarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8941     vkStream->write((VkToolPurposeFlags*)&forMarshaling->purposes, sizeof(VkToolPurposeFlags));
8942     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
8943     vkStream->write((char*)forMarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8944 }
8945 
unmarshal_VkPhysicalDeviceToolProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceToolProperties * forUnmarshaling)8946 void unmarshal_VkPhysicalDeviceToolProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
8947                                               VkPhysicalDeviceToolProperties* forUnmarshaling) {
8948     (void)rootType;
8949     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8950     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8951         rootType = forUnmarshaling->sType;
8952     }
8953     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8954     vkStream->read((char*)forUnmarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8955     vkStream->read((char*)forUnmarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8956     vkStream->read((VkToolPurposeFlags*)&forUnmarshaling->purposes, sizeof(VkToolPurposeFlags));
8957     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
8958     vkStream->read((char*)forUnmarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8959 }
8960 
marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * forMarshaling)8961 void marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
8962     VulkanStreamGuest* vkStream, VkStructureType rootType,
8963     const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* forMarshaling) {
8964     (void)rootType;
8965     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8966     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8967         rootType = forMarshaling->sType;
8968     }
8969     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8970     vkStream->write((VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
8971 }
8972 
unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * forUnmarshaling)8973 void unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
8974     VulkanStreamGuest* vkStream, VkStructureType rootType,
8975     VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* forUnmarshaling) {
8976     (void)rootType;
8977     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8978     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8979         rootType = forUnmarshaling->sType;
8980     }
8981     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
8982     vkStream->read((VkBool32*)&forUnmarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
8983 }
8984 
marshal_VkPhysicalDevicePrivateDataFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePrivateDataFeatures * forMarshaling)8985 void marshal_VkPhysicalDevicePrivateDataFeatures(
8986     VulkanStreamGuest* vkStream, VkStructureType rootType,
8987     const VkPhysicalDevicePrivateDataFeatures* forMarshaling) {
8988     (void)rootType;
8989     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8990     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8991         rootType = forMarshaling->sType;
8992     }
8993     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
8994     vkStream->write((VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
8995 }
8996 
unmarshal_VkPhysicalDevicePrivateDataFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePrivateDataFeatures * forUnmarshaling)8997 void unmarshal_VkPhysicalDevicePrivateDataFeatures(
8998     VulkanStreamGuest* vkStream, VkStructureType rootType,
8999     VkPhysicalDevicePrivateDataFeatures* forUnmarshaling) {
9000     (void)rootType;
9001     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9002     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9003         rootType = forUnmarshaling->sType;
9004     }
9005     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9006     vkStream->read((VkBool32*)&forUnmarshaling->privateData, sizeof(VkBool32));
9007 }
9008 
marshal_VkDevicePrivateDataCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDevicePrivateDataCreateInfo * forMarshaling)9009 void marshal_VkDevicePrivateDataCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9010                                            const VkDevicePrivateDataCreateInfo* forMarshaling) {
9011     (void)rootType;
9012     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9014         rootType = forMarshaling->sType;
9015     }
9016     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9017     vkStream->write((uint32_t*)&forMarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
9018 }
9019 
unmarshal_VkDevicePrivateDataCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDevicePrivateDataCreateInfo * forUnmarshaling)9020 void unmarshal_VkDevicePrivateDataCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9021                                              VkDevicePrivateDataCreateInfo* forUnmarshaling) {
9022     (void)rootType;
9023     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9024     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9025         rootType = forUnmarshaling->sType;
9026     }
9027     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9028     vkStream->read((uint32_t*)&forUnmarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
9029 }
9030 
marshal_VkPrivateDataSlotCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPrivateDataSlotCreateInfo * forMarshaling)9031 void marshal_VkPrivateDataSlotCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9032                                          const VkPrivateDataSlotCreateInfo* forMarshaling) {
9033     (void)rootType;
9034     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9035     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9036         rootType = forMarshaling->sType;
9037     }
9038     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9039     vkStream->write((VkPrivateDataSlotCreateFlags*)&forMarshaling->flags,
9040                     sizeof(VkPrivateDataSlotCreateFlags));
9041 }
9042 
unmarshal_VkPrivateDataSlotCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPrivateDataSlotCreateInfo * forUnmarshaling)9043 void unmarshal_VkPrivateDataSlotCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9044                                            VkPrivateDataSlotCreateInfo* forUnmarshaling) {
9045     (void)rootType;
9046     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9047     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9048         rootType = forUnmarshaling->sType;
9049     }
9050     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9051     vkStream->read((VkPrivateDataSlotCreateFlags*)&forUnmarshaling->flags,
9052                    sizeof(VkPrivateDataSlotCreateFlags));
9053 }
9054 
marshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineCreationCacheControlFeatures * forMarshaling)9055 void marshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
9056     VulkanStreamGuest* vkStream, VkStructureType rootType,
9057     const VkPhysicalDevicePipelineCreationCacheControlFeatures* forMarshaling) {
9058     (void)rootType;
9059     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9060     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9061         rootType = forMarshaling->sType;
9062     }
9063     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9064     vkStream->write((VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
9065 }
9066 
unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineCreationCacheControlFeatures * forUnmarshaling)9067 void unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
9068     VulkanStreamGuest* vkStream, VkStructureType rootType,
9069     VkPhysicalDevicePipelineCreationCacheControlFeatures* forUnmarshaling) {
9070     (void)rootType;
9071     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9072     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9073         rootType = forUnmarshaling->sType;
9074     }
9075     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9076     vkStream->read((VkBool32*)&forUnmarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
9077 }
9078 
marshal_VkMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryBarrier2 * forMarshaling)9079 void marshal_VkMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9080                               const VkMemoryBarrier2* forMarshaling) {
9081     (void)rootType;
9082     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9083     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9084         rootType = forMarshaling->sType;
9085     }
9086     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9087     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
9088                     sizeof(VkPipelineStageFlags2));
9089     vkStream->write((VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
9090     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
9091                     sizeof(VkPipelineStageFlags2));
9092     vkStream->write((VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
9093 }
9094 
unmarshal_VkMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryBarrier2 * forUnmarshaling)9095 void unmarshal_VkMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9096                                 VkMemoryBarrier2* forUnmarshaling) {
9097     (void)rootType;
9098     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9099     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9100         rootType = forUnmarshaling->sType;
9101     }
9102     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9103     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask,
9104                    sizeof(VkPipelineStageFlags2));
9105     vkStream->read((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2));
9106     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask,
9107                    sizeof(VkPipelineStageFlags2));
9108     vkStream->read((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2));
9109 }
9110 
marshal_VkBufferMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferMemoryBarrier2 * forMarshaling)9111 void marshal_VkBufferMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9112                                     const VkBufferMemoryBarrier2* forMarshaling) {
9113     (void)rootType;
9114     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9115     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9116         rootType = forMarshaling->sType;
9117     }
9118     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9119     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
9120                     sizeof(VkPipelineStageFlags2));
9121     vkStream->write((VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
9122     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
9123                     sizeof(VkPipelineStageFlags2));
9124     vkStream->write((VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
9125     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
9126     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
9127     uint64_t cgen_var_0;
9128     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
9129     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9130     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
9131     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
9132 }
9133 
unmarshal_VkBufferMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferMemoryBarrier2 * forUnmarshaling)9134 void unmarshal_VkBufferMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9135                                       VkBufferMemoryBarrier2* forUnmarshaling) {
9136     (void)rootType;
9137     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9138     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9139         rootType = forUnmarshaling->sType;
9140     }
9141     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9142     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask,
9143                    sizeof(VkPipelineStageFlags2));
9144     vkStream->read((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2));
9145     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask,
9146                    sizeof(VkPipelineStageFlags2));
9147     vkStream->read((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2));
9148     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
9149     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
9150     uint64_t cgen_var_0;
9151     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9152     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
9153                                                        (VkBuffer*)&forUnmarshaling->buffer, 1);
9154     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
9155     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
9156 }
9157 
marshal_VkImageMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageMemoryBarrier2 * forMarshaling)9158 void marshal_VkImageMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9159                                    const VkImageMemoryBarrier2* forMarshaling) {
9160     (void)rootType;
9161     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9162     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9163         rootType = forMarshaling->sType;
9164     }
9165     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9166     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
9167                     sizeof(VkPipelineStageFlags2));
9168     vkStream->write((VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
9169     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
9170                     sizeof(VkPipelineStageFlags2));
9171     vkStream->write((VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
9172     vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
9173     vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
9174     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
9175     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
9176     uint64_t cgen_var_0;
9177     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
9178     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9179     marshal_VkImageSubresourceRange(vkStream, rootType,
9180                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
9181 }
9182 
unmarshal_VkImageMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageMemoryBarrier2 * forUnmarshaling)9183 void unmarshal_VkImageMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9184                                      VkImageMemoryBarrier2* forUnmarshaling) {
9185     (void)rootType;
9186     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9187     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9188         rootType = forUnmarshaling->sType;
9189     }
9190     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9191     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask,
9192                    sizeof(VkPipelineStageFlags2));
9193     vkStream->read((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2));
9194     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask,
9195                    sizeof(VkPipelineStageFlags2));
9196     vkStream->read((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2));
9197     vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
9198     vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
9199     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
9200     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
9201     uint64_t cgen_var_0;
9202     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9203     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
9204                                                       (VkImage*)&forUnmarshaling->image, 1);
9205     unmarshal_VkImageSubresourceRange(
9206         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
9207 }
9208 
marshal_VkDependencyInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDependencyInfo * forMarshaling)9209 void marshal_VkDependencyInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9210                               const VkDependencyInfo* forMarshaling) {
9211     (void)rootType;
9212     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9213     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9214         rootType = forMarshaling->sType;
9215     }
9216     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9217     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
9218     vkStream->write((uint32_t*)&forMarshaling->memoryBarrierCount, sizeof(uint32_t));
9219     if (forMarshaling) {
9220         for (uint32_t i = 0; i < (uint32_t)forMarshaling->memoryBarrierCount; ++i) {
9221             marshal_VkMemoryBarrier2(vkStream, rootType,
9222                                      (const VkMemoryBarrier2*)(forMarshaling->pMemoryBarriers + i));
9223         }
9224     }
9225     vkStream->write((uint32_t*)&forMarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
9226     if (forMarshaling) {
9227         for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferMemoryBarrierCount; ++i) {
9228             marshal_VkBufferMemoryBarrier2(
9229                 vkStream, rootType,
9230                 (const VkBufferMemoryBarrier2*)(forMarshaling->pBufferMemoryBarriers + i));
9231         }
9232     }
9233     vkStream->write((uint32_t*)&forMarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
9234     if (forMarshaling) {
9235         for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageMemoryBarrierCount; ++i) {
9236             marshal_VkImageMemoryBarrier2(
9237                 vkStream, rootType,
9238                 (const VkImageMemoryBarrier2*)(forMarshaling->pImageMemoryBarriers + i));
9239         }
9240     }
9241 }
9242 
unmarshal_VkDependencyInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDependencyInfo * forUnmarshaling)9243 void unmarshal_VkDependencyInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9244                                 VkDependencyInfo* forUnmarshaling) {
9245     (void)rootType;
9246     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9247     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9248         rootType = forUnmarshaling->sType;
9249     }
9250     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9251     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags,
9252                    sizeof(VkDependencyFlags));
9253     vkStream->read((uint32_t*)&forUnmarshaling->memoryBarrierCount, sizeof(uint32_t));
9254     if (forUnmarshaling) {
9255         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->memoryBarrierCount; ++i) {
9256             unmarshal_VkMemoryBarrier2(vkStream, rootType,
9257                                        (VkMemoryBarrier2*)(forUnmarshaling->pMemoryBarriers + i));
9258         }
9259     }
9260     vkStream->read((uint32_t*)&forUnmarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
9261     if (forUnmarshaling) {
9262         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferMemoryBarrierCount; ++i) {
9263             unmarshal_VkBufferMemoryBarrier2(
9264                 vkStream, rootType,
9265                 (VkBufferMemoryBarrier2*)(forUnmarshaling->pBufferMemoryBarriers + i));
9266         }
9267     }
9268     vkStream->read((uint32_t*)&forUnmarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
9269     if (forUnmarshaling) {
9270         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageMemoryBarrierCount; ++i) {
9271             unmarshal_VkImageMemoryBarrier2(
9272                 vkStream, rootType,
9273                 (VkImageMemoryBarrier2*)(forUnmarshaling->pImageMemoryBarriers + i));
9274         }
9275     }
9276 }
9277 
marshal_VkSemaphoreSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreSubmitInfo * forMarshaling)9278 void marshal_VkSemaphoreSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9279                                    const VkSemaphoreSubmitInfo* forMarshaling) {
9280     (void)rootType;
9281     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9282     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9283         rootType = forMarshaling->sType;
9284     }
9285     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9286     uint64_t cgen_var_0;
9287     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
9288                                                           1);
9289     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9290     vkStream->write((uint64_t*)&forMarshaling->value, sizeof(uint64_t));
9291     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->stageMask,
9292                     sizeof(VkPipelineStageFlags2));
9293     vkStream->write((uint32_t*)&forMarshaling->deviceIndex, sizeof(uint32_t));
9294 }
9295 
unmarshal_VkSemaphoreSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSemaphoreSubmitInfo * forUnmarshaling)9296 void unmarshal_VkSemaphoreSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9297                                      VkSemaphoreSubmitInfo* forUnmarshaling) {
9298     (void)rootType;
9299     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9300     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9301         rootType = forUnmarshaling->sType;
9302     }
9303     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9304     uint64_t cgen_var_0;
9305     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9306     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
9307         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
9308     vkStream->read((uint64_t*)&forUnmarshaling->value, sizeof(uint64_t));
9309     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->stageMask,
9310                    sizeof(VkPipelineStageFlags2));
9311     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndex, sizeof(uint32_t));
9312 }
9313 
marshal_VkCommandBufferSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferSubmitInfo * forMarshaling)9314 void marshal_VkCommandBufferSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9315                                        const VkCommandBufferSubmitInfo* forMarshaling) {
9316     (void)rootType;
9317     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9318     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9319         rootType = forMarshaling->sType;
9320     }
9321     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9322     uint64_t cgen_var_0;
9323     vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->commandBuffer,
9324                                                               &cgen_var_0, 1);
9325     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9326     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
9327 }
9328 
unmarshal_VkCommandBufferSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCommandBufferSubmitInfo * forUnmarshaling)9329 void unmarshal_VkCommandBufferSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
9330                                          VkCommandBufferSubmitInfo* forUnmarshaling) {
9331     (void)rootType;
9332     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9333     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9334         rootType = forUnmarshaling->sType;
9335     }
9336     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9337     uint64_t cgen_var_0;
9338     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9339     vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(
9340         &cgen_var_0, (VkCommandBuffer*)&forUnmarshaling->commandBuffer, 1);
9341     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
9342 }
9343 
marshal_VkSubmitInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubmitInfo2 * forMarshaling)9344 void marshal_VkSubmitInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9345                            const VkSubmitInfo2* forMarshaling) {
9346     (void)rootType;
9347     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9348     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9349         rootType = forMarshaling->sType;
9350     }
9351     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9352     vkStream->write((VkSubmitFlags*)&forMarshaling->flags, sizeof(VkSubmitFlags));
9353     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
9354     if (forMarshaling) {
9355         for (uint32_t i = 0; i < (uint32_t)forMarshaling->waitSemaphoreInfoCount; ++i) {
9356             marshal_VkSemaphoreSubmitInfo(
9357                 vkStream, rootType,
9358                 (const VkSemaphoreSubmitInfo*)(forMarshaling->pWaitSemaphoreInfos + i));
9359         }
9360     }
9361     vkStream->write((uint32_t*)&forMarshaling->commandBufferInfoCount, sizeof(uint32_t));
9362     if (forMarshaling) {
9363         for (uint32_t i = 0; i < (uint32_t)forMarshaling->commandBufferInfoCount; ++i) {
9364             marshal_VkCommandBufferSubmitInfo(
9365                 vkStream, rootType,
9366                 (const VkCommandBufferSubmitInfo*)(forMarshaling->pCommandBufferInfos + i));
9367         }
9368     }
9369     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
9370     if (forMarshaling) {
9371         for (uint32_t i = 0; i < (uint32_t)forMarshaling->signalSemaphoreInfoCount; ++i) {
9372             marshal_VkSemaphoreSubmitInfo(
9373                 vkStream, rootType,
9374                 (const VkSemaphoreSubmitInfo*)(forMarshaling->pSignalSemaphoreInfos + i));
9375         }
9376     }
9377 }
9378 
unmarshal_VkSubmitInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubmitInfo2 * forUnmarshaling)9379 void unmarshal_VkSubmitInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9380                              VkSubmitInfo2* forUnmarshaling) {
9381     (void)rootType;
9382     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9383     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9384         rootType = forUnmarshaling->sType;
9385     }
9386     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9387     vkStream->read((VkSubmitFlags*)&forUnmarshaling->flags, sizeof(VkSubmitFlags));
9388     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
9389     if (forUnmarshaling) {
9390         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->waitSemaphoreInfoCount; ++i) {
9391             unmarshal_VkSemaphoreSubmitInfo(
9392                 vkStream, rootType,
9393                 (VkSemaphoreSubmitInfo*)(forUnmarshaling->pWaitSemaphoreInfos + i));
9394         }
9395     }
9396     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferInfoCount, sizeof(uint32_t));
9397     if (forUnmarshaling) {
9398         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->commandBufferInfoCount; ++i) {
9399             unmarshal_VkCommandBufferSubmitInfo(
9400                 vkStream, rootType,
9401                 (VkCommandBufferSubmitInfo*)(forUnmarshaling->pCommandBufferInfos + i));
9402         }
9403     }
9404     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
9405     if (forUnmarshaling) {
9406         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->signalSemaphoreInfoCount; ++i) {
9407             unmarshal_VkSemaphoreSubmitInfo(
9408                 vkStream, rootType,
9409                 (VkSemaphoreSubmitInfo*)(forUnmarshaling->pSignalSemaphoreInfos + i));
9410         }
9411     }
9412 }
9413 
marshal_VkPhysicalDeviceSynchronization2Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSynchronization2Features * forMarshaling)9414 void marshal_VkPhysicalDeviceSynchronization2Features(
9415     VulkanStreamGuest* vkStream, VkStructureType rootType,
9416     const VkPhysicalDeviceSynchronization2Features* forMarshaling) {
9417     (void)rootType;
9418     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9419     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9420         rootType = forMarshaling->sType;
9421     }
9422     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9423     vkStream->write((VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
9424 }
9425 
unmarshal_VkPhysicalDeviceSynchronization2Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSynchronization2Features * forUnmarshaling)9426 void unmarshal_VkPhysicalDeviceSynchronization2Features(
9427     VulkanStreamGuest* vkStream, VkStructureType rootType,
9428     VkPhysicalDeviceSynchronization2Features* forUnmarshaling) {
9429     (void)rootType;
9430     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9431     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9432         rootType = forUnmarshaling->sType;
9433     }
9434     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9435     vkStream->read((VkBool32*)&forUnmarshaling->synchronization2, sizeof(VkBool32));
9436 }
9437 
marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * forMarshaling)9438 void marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
9439     VulkanStreamGuest* vkStream, VkStructureType rootType,
9440     const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* forMarshaling) {
9441     (void)rootType;
9442     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9443     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9444         rootType = forMarshaling->sType;
9445     }
9446     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9447     vkStream->write((VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory,
9448                     sizeof(VkBool32));
9449 }
9450 
unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * forUnmarshaling)9451 void unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
9452     VulkanStreamGuest* vkStream, VkStructureType rootType,
9453     VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* forUnmarshaling) {
9454     (void)rootType;
9455     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9456     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9457         rootType = forUnmarshaling->sType;
9458     }
9459     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9460     vkStream->read((VkBool32*)&forUnmarshaling->shaderZeroInitializeWorkgroupMemory,
9461                    sizeof(VkBool32));
9462 }
9463 
marshal_VkPhysicalDeviceImageRobustnessFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageRobustnessFeatures * forMarshaling)9464 void marshal_VkPhysicalDeviceImageRobustnessFeatures(
9465     VulkanStreamGuest* vkStream, VkStructureType rootType,
9466     const VkPhysicalDeviceImageRobustnessFeatures* forMarshaling) {
9467     (void)rootType;
9468     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9469     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9470         rootType = forMarshaling->sType;
9471     }
9472     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9473     vkStream->write((VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
9474 }
9475 
unmarshal_VkPhysicalDeviceImageRobustnessFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageRobustnessFeatures * forUnmarshaling)9476 void unmarshal_VkPhysicalDeviceImageRobustnessFeatures(
9477     VulkanStreamGuest* vkStream, VkStructureType rootType,
9478     VkPhysicalDeviceImageRobustnessFeatures* forUnmarshaling) {
9479     (void)rootType;
9480     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9481     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9482         rootType = forUnmarshaling->sType;
9483     }
9484     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9485     vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess, sizeof(VkBool32));
9486 }
9487 
marshal_VkBufferCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferCopy2 * forMarshaling)9488 void marshal_VkBufferCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9489                            const VkBufferCopy2* forMarshaling) {
9490     (void)rootType;
9491     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9492     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9493         rootType = forMarshaling->sType;
9494     }
9495     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9496     vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
9497     vkStream->write((VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
9498     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
9499 }
9500 
unmarshal_VkBufferCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferCopy2 * forUnmarshaling)9501 void unmarshal_VkBufferCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9502                              VkBufferCopy2* forUnmarshaling) {
9503     (void)rootType;
9504     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9505     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9506         rootType = forUnmarshaling->sType;
9507     }
9508     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9509     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
9510     vkStream->read((VkDeviceSize*)&forUnmarshaling->dstOffset, sizeof(VkDeviceSize));
9511     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
9512 }
9513 
marshal_VkCopyBufferInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyBufferInfo2 * forMarshaling)9514 void marshal_VkCopyBufferInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9515                                const VkCopyBufferInfo2* forMarshaling) {
9516     (void)rootType;
9517     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9518     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9519         rootType = forMarshaling->sType;
9520     }
9521     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9522     uint64_t cgen_var_0;
9523     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->srcBuffer, &cgen_var_0, 1);
9524     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9525     uint64_t cgen_var_1;
9526     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBuffer, &cgen_var_1, 1);
9527     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
9528     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
9529     if (forMarshaling) {
9530         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
9531             marshal_VkBufferCopy2(vkStream, rootType,
9532                                   (const VkBufferCopy2*)(forMarshaling->pRegions + i));
9533         }
9534     }
9535 }
9536 
unmarshal_VkCopyBufferInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyBufferInfo2 * forUnmarshaling)9537 void unmarshal_VkCopyBufferInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9538                                  VkCopyBufferInfo2* forUnmarshaling) {
9539     (void)rootType;
9540     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9541     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9542         rootType = forUnmarshaling->sType;
9543     }
9544     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9545     uint64_t cgen_var_0;
9546     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9547     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
9548                                                        (VkBuffer*)&forUnmarshaling->srcBuffer, 1);
9549     uint64_t cgen_var_1;
9550     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
9551     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
9552                                                        (VkBuffer*)&forUnmarshaling->dstBuffer, 1);
9553     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
9554     if (forUnmarshaling) {
9555         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9556             unmarshal_VkBufferCopy2(vkStream, rootType,
9557                                     (VkBufferCopy2*)(forUnmarshaling->pRegions + i));
9558         }
9559     }
9560 }
9561 
marshal_VkImageCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCopy2 * forMarshaling)9562 void marshal_VkImageCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9563                           const VkImageCopy2* forMarshaling) {
9564     (void)rootType;
9565     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9566     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9567         rootType = forMarshaling->sType;
9568     }
9569     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9570     marshal_VkImageSubresourceLayers(vkStream, rootType,
9571                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
9572     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
9573     marshal_VkImageSubresourceLayers(vkStream, rootType,
9574                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
9575     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
9576     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
9577 }
9578 
unmarshal_VkImageCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageCopy2 * forUnmarshaling)9579 void unmarshal_VkImageCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9580                             VkImageCopy2* forUnmarshaling) {
9581     (void)rootType;
9582     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9583     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9584         rootType = forUnmarshaling->sType;
9585     }
9586     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9587     unmarshal_VkImageSubresourceLayers(
9588         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
9589     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
9590     unmarshal_VkImageSubresourceLayers(
9591         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
9592     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
9593     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
9594 }
9595 
marshal_VkCopyImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageInfo2 * forMarshaling)9596 void marshal_VkCopyImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9597                               const VkCopyImageInfo2* forMarshaling) {
9598     (void)rootType;
9599     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9600     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9601         rootType = forMarshaling->sType;
9602     }
9603     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9604     uint64_t cgen_var_0;
9605     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
9606     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9607     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
9608     uint64_t cgen_var_1;
9609     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
9610     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
9611     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
9612     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
9613     if (forMarshaling) {
9614         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
9615             marshal_VkImageCopy2(vkStream, rootType,
9616                                  (const VkImageCopy2*)(forMarshaling->pRegions + i));
9617         }
9618     }
9619 }
9620 
unmarshal_VkCopyImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyImageInfo2 * forUnmarshaling)9621 void unmarshal_VkCopyImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9622                                 VkCopyImageInfo2* forUnmarshaling) {
9623     (void)rootType;
9624     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9625     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9626         rootType = forUnmarshaling->sType;
9627     }
9628     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9629     uint64_t cgen_var_0;
9630     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9631     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
9632                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
9633     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
9634     uint64_t cgen_var_1;
9635     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
9636     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
9637                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
9638     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
9639     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
9640     if (forUnmarshaling) {
9641         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9642             unmarshal_VkImageCopy2(vkStream, rootType,
9643                                    (VkImageCopy2*)(forUnmarshaling->pRegions + i));
9644         }
9645     }
9646 }
9647 
marshal_VkBufferImageCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferImageCopy2 * forMarshaling)9648 void marshal_VkBufferImageCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9649                                 const VkBufferImageCopy2* forMarshaling) {
9650     (void)rootType;
9651     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9652     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9653         rootType = forMarshaling->sType;
9654     }
9655     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9656     vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
9657     vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
9658     vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
9659     marshal_VkImageSubresourceLayers(vkStream, rootType,
9660                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
9661     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
9662     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
9663 }
9664 
unmarshal_VkBufferImageCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferImageCopy2 * forUnmarshaling)9665 void unmarshal_VkBufferImageCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9666                                   VkBufferImageCopy2* forUnmarshaling) {
9667     (void)rootType;
9668     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9669     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9670         rootType = forUnmarshaling->sType;
9671     }
9672     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9673     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
9674     vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
9675     vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
9676     unmarshal_VkImageSubresourceLayers(
9677         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
9678     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
9679     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
9680 }
9681 
marshal_VkCopyBufferToImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyBufferToImageInfo2 * forMarshaling)9682 void marshal_VkCopyBufferToImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9683                                       const VkCopyBufferToImageInfo2* forMarshaling) {
9684     (void)rootType;
9685     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9686     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9687         rootType = forMarshaling->sType;
9688     }
9689     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9690     uint64_t cgen_var_0;
9691     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->srcBuffer, &cgen_var_0, 1);
9692     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9693     uint64_t cgen_var_1;
9694     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
9695     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
9696     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
9697     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
9698     if (forMarshaling) {
9699         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
9700             marshal_VkBufferImageCopy2(vkStream, rootType,
9701                                        (const VkBufferImageCopy2*)(forMarshaling->pRegions + i));
9702         }
9703     }
9704 }
9705 
unmarshal_VkCopyBufferToImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyBufferToImageInfo2 * forUnmarshaling)9706 void unmarshal_VkCopyBufferToImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9707                                         VkCopyBufferToImageInfo2* forUnmarshaling) {
9708     (void)rootType;
9709     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9710     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9711         rootType = forUnmarshaling->sType;
9712     }
9713     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9714     uint64_t cgen_var_0;
9715     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9716     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0,
9717                                                        (VkBuffer*)&forUnmarshaling->srcBuffer, 1);
9718     uint64_t cgen_var_1;
9719     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
9720     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
9721                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
9722     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
9723     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
9724     if (forUnmarshaling) {
9725         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9726             unmarshal_VkBufferImageCopy2(vkStream, rootType,
9727                                          (VkBufferImageCopy2*)(forUnmarshaling->pRegions + i));
9728         }
9729     }
9730 }
9731 
marshal_VkCopyImageToBufferInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToBufferInfo2 * forMarshaling)9732 void marshal_VkCopyImageToBufferInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9733                                       const VkCopyImageToBufferInfo2* forMarshaling) {
9734     (void)rootType;
9735     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9736     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9737         rootType = forMarshaling->sType;
9738     }
9739     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9740     uint64_t cgen_var_0;
9741     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
9742     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9743     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
9744     uint64_t cgen_var_1;
9745     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBuffer, &cgen_var_1, 1);
9746     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
9747     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
9748     if (forMarshaling) {
9749         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
9750             marshal_VkBufferImageCopy2(vkStream, rootType,
9751                                        (const VkBufferImageCopy2*)(forMarshaling->pRegions + i));
9752         }
9753     }
9754 }
9755 
unmarshal_VkCopyImageToBufferInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyImageToBufferInfo2 * forUnmarshaling)9756 void unmarshal_VkCopyImageToBufferInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9757                                         VkCopyImageToBufferInfo2* forUnmarshaling) {
9758     (void)rootType;
9759     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9760     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9761         rootType = forUnmarshaling->sType;
9762     }
9763     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9764     uint64_t cgen_var_0;
9765     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9766     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
9767                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
9768     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
9769     uint64_t cgen_var_1;
9770     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
9771     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1,
9772                                                        (VkBuffer*)&forUnmarshaling->dstBuffer, 1);
9773     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
9774     if (forUnmarshaling) {
9775         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9776             unmarshal_VkBufferImageCopy2(vkStream, rootType,
9777                                          (VkBufferImageCopy2*)(forUnmarshaling->pRegions + i));
9778         }
9779     }
9780 }
9781 
marshal_VkImageBlit2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageBlit2 * forMarshaling)9782 void marshal_VkImageBlit2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9783                           const VkImageBlit2* forMarshaling) {
9784     (void)rootType;
9785     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9786     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9787         rootType = forMarshaling->sType;
9788     }
9789     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9790     marshal_VkImageSubresourceLayers(vkStream, rootType,
9791                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
9792     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
9793         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->srcOffsets + i));
9794     }
9795     marshal_VkImageSubresourceLayers(vkStream, rootType,
9796                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
9797     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
9798         marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->dstOffsets + i));
9799     }
9800 }
9801 
unmarshal_VkImageBlit2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageBlit2 * forUnmarshaling)9802 void unmarshal_VkImageBlit2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9803                             VkImageBlit2* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9810     unmarshal_VkImageSubresourceLayers(
9811         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
9812     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
9813         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
9814     }
9815     unmarshal_VkImageSubresourceLayers(
9816         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
9817     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
9818         unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
9819     }
9820 }
9821 
marshal_VkBlitImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBlitImageInfo2 * forMarshaling)9822 void marshal_VkBlitImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9823                               const VkBlitImageInfo2* forMarshaling) {
9824     (void)rootType;
9825     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9826     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9827         rootType = forMarshaling->sType;
9828     }
9829     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9830     uint64_t cgen_var_0;
9831     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
9832     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9833     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
9834     uint64_t cgen_var_1;
9835     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
9836     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
9837     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
9838     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
9839     if (forMarshaling) {
9840         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
9841             marshal_VkImageBlit2(vkStream, rootType,
9842                                  (const VkImageBlit2*)(forMarshaling->pRegions + i));
9843         }
9844     }
9845     vkStream->write((VkFilter*)&forMarshaling->filter, sizeof(VkFilter));
9846 }
9847 
unmarshal_VkBlitImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBlitImageInfo2 * forUnmarshaling)9848 void unmarshal_VkBlitImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9849                                 VkBlitImageInfo2* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9856     uint64_t cgen_var_0;
9857     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9858     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
9859                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
9860     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
9861     uint64_t cgen_var_1;
9862     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
9863     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
9864                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
9865     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
9866     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
9867     if (forUnmarshaling) {
9868         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9869             unmarshal_VkImageBlit2(vkStream, rootType,
9870                                    (VkImageBlit2*)(forUnmarshaling->pRegions + i));
9871         }
9872     }
9873     vkStream->read((VkFilter*)&forUnmarshaling->filter, sizeof(VkFilter));
9874 }
9875 
marshal_VkImageResolve2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageResolve2 * forMarshaling)9876 void marshal_VkImageResolve2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9877                              const VkImageResolve2* forMarshaling) {
9878     (void)rootType;
9879     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9881         rootType = forMarshaling->sType;
9882     }
9883     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9884     marshal_VkImageSubresourceLayers(vkStream, rootType,
9885                                      (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
9886     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset));
9887     marshal_VkImageSubresourceLayers(vkStream, rootType,
9888                                      (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
9889     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset));
9890     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent));
9891 }
9892 
unmarshal_VkImageResolve2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageResolve2 * forUnmarshaling)9893 void unmarshal_VkImageResolve2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9894                                VkImageResolve2* forUnmarshaling) {
9895     (void)rootType;
9896     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9897     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9898         rootType = forUnmarshaling->sType;
9899     }
9900     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9901     unmarshal_VkImageSubresourceLayers(
9902         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
9903     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset));
9904     unmarshal_VkImageSubresourceLayers(
9905         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
9906     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset));
9907     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent));
9908 }
9909 
marshal_VkResolveImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkResolveImageInfo2 * forMarshaling)9910 void marshal_VkResolveImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9911                                  const VkResolveImageInfo2* forMarshaling) {
9912     (void)rootType;
9913     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9914     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9915         rootType = forMarshaling->sType;
9916     }
9917     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9918     uint64_t cgen_var_0;
9919     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
9920     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
9921     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
9922     uint64_t cgen_var_1;
9923     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
9924     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
9925     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
9926     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
9927     if (forMarshaling) {
9928         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
9929             marshal_VkImageResolve2(vkStream, rootType,
9930                                     (const VkImageResolve2*)(forMarshaling->pRegions + i));
9931         }
9932     }
9933 }
9934 
unmarshal_VkResolveImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkResolveImageInfo2 * forUnmarshaling)9935 void unmarshal_VkResolveImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
9936                                    VkResolveImageInfo2* forUnmarshaling) {
9937     (void)rootType;
9938     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9939     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9940         rootType = forUnmarshaling->sType;
9941     }
9942     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9943     uint64_t cgen_var_0;
9944     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
9945     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
9946                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
9947     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
9948     uint64_t cgen_var_1;
9949     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
9950     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
9951                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
9952     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
9953     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
9954     if (forUnmarshaling) {
9955         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9956             unmarshal_VkImageResolve2(vkStream, rootType,
9957                                       (VkImageResolve2*)(forUnmarshaling->pRegions + i));
9958         }
9959     }
9960 }
9961 
marshal_VkPhysicalDeviceSubgroupSizeControlFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlFeatures * forMarshaling)9962 void marshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
9963     VulkanStreamGuest* vkStream, VkStructureType rootType,
9964     const VkPhysicalDeviceSubgroupSizeControlFeatures* forMarshaling) {
9965     (void)rootType;
9966     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9967     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9968         rootType = forMarshaling->sType;
9969     }
9970     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9971     vkStream->write((VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
9972     vkStream->write((VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
9973 }
9974 
unmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupSizeControlFeatures * forUnmarshaling)9975 void unmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
9976     VulkanStreamGuest* vkStream, VkStructureType rootType,
9977     VkPhysicalDeviceSubgroupSizeControlFeatures* forUnmarshaling) {
9978     (void)rootType;
9979     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9980     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9981         rootType = forUnmarshaling->sType;
9982     }
9983     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
9984     vkStream->read((VkBool32*)&forUnmarshaling->subgroupSizeControl, sizeof(VkBool32));
9985     vkStream->read((VkBool32*)&forUnmarshaling->computeFullSubgroups, sizeof(VkBool32));
9986 }
9987 
marshal_VkPhysicalDeviceSubgroupSizeControlProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlProperties * forMarshaling)9988 void marshal_VkPhysicalDeviceSubgroupSizeControlProperties(
9989     VulkanStreamGuest* vkStream, VkStructureType rootType,
9990     const VkPhysicalDeviceSubgroupSizeControlProperties* forMarshaling) {
9991     (void)rootType;
9992     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9993     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9994         rootType = forMarshaling->sType;
9995     }
9996     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
9997     vkStream->write((uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
9998     vkStream->write((uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
9999     vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
10000     vkStream->write((VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages,
10001                     sizeof(VkShaderStageFlags));
10002 }
10003 
unmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupSizeControlProperties * forUnmarshaling)10004 void unmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
10005     VulkanStreamGuest* vkStream, VkStructureType rootType,
10006     VkPhysicalDeviceSubgroupSizeControlProperties* forUnmarshaling) {
10007     (void)rootType;
10008     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10009     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10010         rootType = forUnmarshaling->sType;
10011     }
10012     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10013     vkStream->read((uint32_t*)&forUnmarshaling->minSubgroupSize, sizeof(uint32_t));
10014     vkStream->read((uint32_t*)&forUnmarshaling->maxSubgroupSize, sizeof(uint32_t));
10015     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
10016     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->requiredSubgroupSizeStages,
10017                    sizeof(VkShaderStageFlags));
10018 }
10019 
marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * forMarshaling)10020 void marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
10021     VulkanStreamGuest* vkStream, VkStructureType rootType,
10022     const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* forMarshaling) {
10023     (void)rootType;
10024     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10025     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10026         rootType = forMarshaling->sType;
10027     }
10028     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10029     vkStream->write((uint32_t*)&forMarshaling->requiredSubgroupSize, sizeof(uint32_t));
10030 }
10031 
unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * forUnmarshaling)10032 void unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
10033     VulkanStreamGuest* vkStream, VkStructureType rootType,
10034     VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* forUnmarshaling) {
10035     (void)rootType;
10036     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10037     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10038         rootType = forUnmarshaling->sType;
10039     }
10040     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10041     vkStream->read((uint32_t*)&forUnmarshaling->requiredSubgroupSize, sizeof(uint32_t));
10042 }
10043 
marshal_VkPhysicalDeviceInlineUniformBlockFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockFeatures * forMarshaling)10044 void marshal_VkPhysicalDeviceInlineUniformBlockFeatures(
10045     VulkanStreamGuest* vkStream, VkStructureType rootType,
10046     const VkPhysicalDeviceInlineUniformBlockFeatures* forMarshaling) {
10047     (void)rootType;
10048     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10049     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10050         rootType = forMarshaling->sType;
10051     }
10052     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10053     vkStream->write((VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
10054     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
10055                     sizeof(VkBool32));
10056 }
10057 
unmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceInlineUniformBlockFeatures * forUnmarshaling)10058 void unmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
10059     VulkanStreamGuest* vkStream, VkStructureType rootType,
10060     VkPhysicalDeviceInlineUniformBlockFeatures* forUnmarshaling) {
10061     (void)rootType;
10062     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10063     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10064         rootType = forUnmarshaling->sType;
10065     }
10066     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10067     vkStream->read((VkBool32*)&forUnmarshaling->inlineUniformBlock, sizeof(VkBool32));
10068     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
10069                    sizeof(VkBool32));
10070 }
10071 
marshal_VkPhysicalDeviceInlineUniformBlockProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockProperties * forMarshaling)10072 void marshal_VkPhysicalDeviceInlineUniformBlockProperties(
10073     VulkanStreamGuest* vkStream, VkStructureType rootType,
10074     const VkPhysicalDeviceInlineUniformBlockProperties* forMarshaling) {
10075     (void)rootType;
10076     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10077     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10078         rootType = forMarshaling->sType;
10079     }
10080     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10081     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
10082     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks,
10083                     sizeof(uint32_t));
10084     vkStream->write(
10085         (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
10086         sizeof(uint32_t));
10087     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks,
10088                     sizeof(uint32_t));
10089     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
10090                     sizeof(uint32_t));
10091 }
10092 
unmarshal_VkPhysicalDeviceInlineUniformBlockProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceInlineUniformBlockProperties * forUnmarshaling)10093 void unmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
10094     VulkanStreamGuest* vkStream, VkStructureType rootType,
10095     VkPhysicalDeviceInlineUniformBlockProperties* forUnmarshaling) {
10096     (void)rootType;
10097     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10098     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10099         rootType = forUnmarshaling->sType;
10100     }
10101     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10102     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
10103     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInlineUniformBlocks,
10104                    sizeof(uint32_t));
10105     vkStream->read(
10106         (uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
10107         sizeof(uint32_t));
10108     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInlineUniformBlocks,
10109                    sizeof(uint32_t));
10110     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
10111                    sizeof(uint32_t));
10112 }
10113 
marshal_VkWriteDescriptorSetInlineUniformBlock(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkWriteDescriptorSetInlineUniformBlock * forMarshaling)10114 void marshal_VkWriteDescriptorSetInlineUniformBlock(
10115     VulkanStreamGuest* vkStream, VkStructureType rootType,
10116     const VkWriteDescriptorSetInlineUniformBlock* forMarshaling) {
10117     (void)rootType;
10118     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10119     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10120         rootType = forMarshaling->sType;
10121     }
10122     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10123     vkStream->write((uint32_t*)&forMarshaling->dataSize, sizeof(uint32_t));
10124     vkStream->write((const void*)forMarshaling->pData,
10125                     forMarshaling->dataSize * sizeof(const uint8_t));
10126 }
10127 
unmarshal_VkWriteDescriptorSetInlineUniformBlock(VulkanStreamGuest * vkStream,VkStructureType rootType,VkWriteDescriptorSetInlineUniformBlock * forUnmarshaling)10128 void unmarshal_VkWriteDescriptorSetInlineUniformBlock(
10129     VulkanStreamGuest* vkStream, VkStructureType rootType,
10130     VkWriteDescriptorSetInlineUniformBlock* forUnmarshaling) {
10131     (void)rootType;
10132     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10133     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10134         rootType = forUnmarshaling->sType;
10135     }
10136     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10137     vkStream->read((uint32_t*)&forUnmarshaling->dataSize, sizeof(uint32_t));
10138     vkStream->read((void*)forUnmarshaling->pData,
10139                    forUnmarshaling->dataSize * sizeof(const uint8_t));
10140 }
10141 
marshal_VkDescriptorPoolInlineUniformBlockCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorPoolInlineUniformBlockCreateInfo * forMarshaling)10142 void marshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
10143     VulkanStreamGuest* vkStream, VkStructureType rootType,
10144     const VkDescriptorPoolInlineUniformBlockCreateInfo* forMarshaling) {
10145     (void)rootType;
10146     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10147     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10148         rootType = forMarshaling->sType;
10149     }
10150     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10151     vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
10152 }
10153 
unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDescriptorPoolInlineUniformBlockCreateInfo * forUnmarshaling)10154 void unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
10155     VulkanStreamGuest* vkStream, VkStructureType rootType,
10156     VkDescriptorPoolInlineUniformBlockCreateInfo* forUnmarshaling) {
10157     (void)rootType;
10158     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10159     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10160         rootType = forUnmarshaling->sType;
10161     }
10162     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10163     vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
10164 }
10165 
marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * forMarshaling)10166 void marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
10167     VulkanStreamGuest* vkStream, VkStructureType rootType,
10168     const VkPhysicalDeviceTextureCompressionASTCHDRFeatures* forMarshaling) {
10169     (void)rootType;
10170     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10171     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10172         rootType = forMarshaling->sType;
10173     }
10174     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10175     vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
10176 }
10177 
unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTextureCompressionASTCHDRFeatures * forUnmarshaling)10178 void unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
10179     VulkanStreamGuest* vkStream, VkStructureType rootType,
10180     VkPhysicalDeviceTextureCompressionASTCHDRFeatures* forUnmarshaling) {
10181     (void)rootType;
10182     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10183     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10184         rootType = forUnmarshaling->sType;
10185     }
10186     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10187     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
10188 }
10189 
marshal_VkRenderingAttachmentInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingAttachmentInfo * forMarshaling)10190 void marshal_VkRenderingAttachmentInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
10191                                        const VkRenderingAttachmentInfo* forMarshaling) {
10192     (void)rootType;
10193     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10194     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10195         rootType = forMarshaling->sType;
10196     }
10197     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10198     uint64_t cgen_var_0;
10199     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
10200                                                           1);
10201     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
10202     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
10203     vkStream->write((VkResolveModeFlagBits*)&forMarshaling->resolveMode,
10204                     sizeof(VkResolveModeFlagBits));
10205     uint64_t cgen_var_1;
10206     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->resolveImageView,
10207                                                           &cgen_var_1, 1);
10208     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
10209     vkStream->write((VkImageLayout*)&forMarshaling->resolveImageLayout, sizeof(VkImageLayout));
10210     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
10211     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
10212     marshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue));
10213 }
10214 
unmarshal_VkRenderingAttachmentInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingAttachmentInfo * forUnmarshaling)10215 void unmarshal_VkRenderingAttachmentInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
10216                                          VkRenderingAttachmentInfo* forUnmarshaling) {
10217     (void)rootType;
10218     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10219     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10220         rootType = forUnmarshaling->sType;
10221     }
10222     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10223     uint64_t cgen_var_0;
10224     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
10225     vkStream->handleMapping()->mapHandles_u64_VkImageView(
10226         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
10227     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
10228     vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->resolveMode,
10229                    sizeof(VkResolveModeFlagBits));
10230     uint64_t cgen_var_1;
10231     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
10232     vkStream->handleMapping()->mapHandles_u64_VkImageView(
10233         &cgen_var_1, (VkImageView*)&forUnmarshaling->resolveImageView, 1);
10234     vkStream->read((VkImageLayout*)&forUnmarshaling->resolveImageLayout, sizeof(VkImageLayout));
10235     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
10236     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
10237     unmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forUnmarshaling->clearValue));
10238 }
10239 
marshal_VkRenderingInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingInfo * forMarshaling)10240 void marshal_VkRenderingInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
10241                              const VkRenderingInfo* forMarshaling) {
10242     (void)rootType;
10243     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10244     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10245         rootType = forMarshaling->sType;
10246     }
10247     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10248     vkStream->write((VkRenderingFlags*)&forMarshaling->flags, sizeof(VkRenderingFlags));
10249     marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea));
10250     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
10251     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
10252     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
10253     if (forMarshaling) {
10254         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
10255             marshal_VkRenderingAttachmentInfo(
10256                 vkStream, rootType,
10257                 (const VkRenderingAttachmentInfo*)(forMarshaling->pColorAttachments + i));
10258         }
10259     }
10260     // WARNING PTR CHECK
10261     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthAttachment;
10262     vkStream->putBe64(cgen_var_0);
10263     if (forMarshaling->pDepthAttachment) {
10264         marshal_VkRenderingAttachmentInfo(
10265             vkStream, rootType,
10266             (const VkRenderingAttachmentInfo*)(forMarshaling->pDepthAttachment));
10267     }
10268     // WARNING PTR CHECK
10269     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pStencilAttachment;
10270     vkStream->putBe64(cgen_var_1);
10271     if (forMarshaling->pStencilAttachment) {
10272         marshal_VkRenderingAttachmentInfo(
10273             vkStream, rootType,
10274             (const VkRenderingAttachmentInfo*)(forMarshaling->pStencilAttachment));
10275     }
10276 }
10277 
unmarshal_VkRenderingInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingInfo * forUnmarshaling)10278 void unmarshal_VkRenderingInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
10279                                VkRenderingInfo* forUnmarshaling) {
10280     (void)rootType;
10281     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10282     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10283         rootType = forUnmarshaling->sType;
10284     }
10285     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10286     vkStream->read((VkRenderingFlags*)&forUnmarshaling->flags, sizeof(VkRenderingFlags));
10287     unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea));
10288     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
10289     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
10290     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
10291     if (forUnmarshaling) {
10292         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
10293             unmarshal_VkRenderingAttachmentInfo(
10294                 vkStream, rootType,
10295                 (VkRenderingAttachmentInfo*)(forUnmarshaling->pColorAttachments + i));
10296         }
10297     }
10298     // WARNING PTR CHECK
10299     const VkRenderingAttachmentInfo* check_pDepthAttachment;
10300     check_pDepthAttachment = (const VkRenderingAttachmentInfo*)(uintptr_t)vkStream->getBe64();
10301     if (forUnmarshaling->pDepthAttachment) {
10302         if (!(check_pDepthAttachment)) {
10303             fprintf(
10304                 stderr,
10305                 "fatal: forUnmarshaling->pDepthAttachment inconsistent between guest and host\n");
10306         }
10307         unmarshal_VkRenderingAttachmentInfo(
10308             vkStream, rootType, (VkRenderingAttachmentInfo*)(forUnmarshaling->pDepthAttachment));
10309     }
10310     // WARNING PTR CHECK
10311     const VkRenderingAttachmentInfo* check_pStencilAttachment;
10312     check_pStencilAttachment = (const VkRenderingAttachmentInfo*)(uintptr_t)vkStream->getBe64();
10313     if (forUnmarshaling->pStencilAttachment) {
10314         if (!(check_pStencilAttachment)) {
10315             fprintf(
10316                 stderr,
10317                 "fatal: forUnmarshaling->pStencilAttachment inconsistent between guest and host\n");
10318         }
10319         unmarshal_VkRenderingAttachmentInfo(
10320             vkStream, rootType, (VkRenderingAttachmentInfo*)(forUnmarshaling->pStencilAttachment));
10321     }
10322 }
10323 
marshal_VkPipelineRenderingCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRenderingCreateInfo * forMarshaling)10324 void marshal_VkPipelineRenderingCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
10325                                            const VkPipelineRenderingCreateInfo* forMarshaling) {
10326     (void)rootType;
10327     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10328     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10329         rootType = forMarshaling->sType;
10330     }
10331     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10332     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
10333     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
10334     // WARNING PTR CHECK
10335     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentFormats;
10336     vkStream->putBe64(cgen_var_0);
10337     if (forMarshaling->pColorAttachmentFormats) {
10338         vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats,
10339                         forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
10340     }
10341     vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
10342     vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
10343 }
10344 
unmarshal_VkPipelineRenderingCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRenderingCreateInfo * forUnmarshaling)10345 void unmarshal_VkPipelineRenderingCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
10346                                              VkPipelineRenderingCreateInfo* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10353     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
10354     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
10355     // WARNING PTR CHECK
10356     const VkFormat* check_pColorAttachmentFormats;
10357     check_pColorAttachmentFormats = (const VkFormat*)(uintptr_t)vkStream->getBe64();
10358     if (forUnmarshaling->pColorAttachmentFormats) {
10359         if (!(check_pColorAttachmentFormats)) {
10360             fprintf(stderr,
10361                     "fatal: forUnmarshaling->pColorAttachmentFormats inconsistent between guest "
10362                     "and host\n");
10363         }
10364         vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats,
10365                        forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
10366     }
10367     vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
10368     vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
10369 }
10370 
marshal_VkPhysicalDeviceDynamicRenderingFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDynamicRenderingFeatures * forMarshaling)10371 void marshal_VkPhysicalDeviceDynamicRenderingFeatures(
10372     VulkanStreamGuest* vkStream, VkStructureType rootType,
10373     const VkPhysicalDeviceDynamicRenderingFeatures* forMarshaling) {
10374     (void)rootType;
10375     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10376     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10377         rootType = forMarshaling->sType;
10378     }
10379     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10380     vkStream->write((VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
10381 }
10382 
unmarshal_VkPhysicalDeviceDynamicRenderingFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDynamicRenderingFeatures * forUnmarshaling)10383 void unmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
10384     VulkanStreamGuest* vkStream, VkStructureType rootType,
10385     VkPhysicalDeviceDynamicRenderingFeatures* forUnmarshaling) {
10386     (void)rootType;
10387     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10388     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10389         rootType = forUnmarshaling->sType;
10390     }
10391     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10392     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRendering, sizeof(VkBool32));
10393 }
10394 
marshal_VkCommandBufferInheritanceRenderingInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceRenderingInfo * forMarshaling)10395 void marshal_VkCommandBufferInheritanceRenderingInfo(
10396     VulkanStreamGuest* vkStream, VkStructureType rootType,
10397     const VkCommandBufferInheritanceRenderingInfo* forMarshaling) {
10398     (void)rootType;
10399     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10400     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10401         rootType = forMarshaling->sType;
10402     }
10403     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10404     vkStream->write((VkRenderingFlags*)&forMarshaling->flags, sizeof(VkRenderingFlags));
10405     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
10406     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
10407     vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats,
10408                     forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
10409     vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
10410     vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
10411     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
10412                     sizeof(VkSampleCountFlagBits));
10413 }
10414 
unmarshal_VkCommandBufferInheritanceRenderingInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCommandBufferInheritanceRenderingInfo * forUnmarshaling)10415 void unmarshal_VkCommandBufferInheritanceRenderingInfo(
10416     VulkanStreamGuest* vkStream, VkStructureType rootType,
10417     VkCommandBufferInheritanceRenderingInfo* forUnmarshaling) {
10418     (void)rootType;
10419     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10420     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10421         rootType = forUnmarshaling->sType;
10422     }
10423     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10424     vkStream->read((VkRenderingFlags*)&forUnmarshaling->flags, sizeof(VkRenderingFlags));
10425     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
10426     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
10427     vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats,
10428                    forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
10429     vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
10430     vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
10431     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples,
10432                    sizeof(VkSampleCountFlagBits));
10433 }
10434 
marshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductFeatures * forMarshaling)10435 void marshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
10436     VulkanStreamGuest* vkStream, VkStructureType rootType,
10437     const VkPhysicalDeviceShaderIntegerDotProductFeatures* forMarshaling) {
10438     (void)rootType;
10439     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10440     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10441         rootType = forMarshaling->sType;
10442     }
10443     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10444     vkStream->write((VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
10445 }
10446 
unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderIntegerDotProductFeatures * forUnmarshaling)10447 void unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
10448     VulkanStreamGuest* vkStream, VkStructureType rootType,
10449     VkPhysicalDeviceShaderIntegerDotProductFeatures* forUnmarshaling) {
10450     (void)rootType;
10451     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10452     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10453         rootType = forUnmarshaling->sType;
10454     }
10455     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10456     vkStream->read((VkBool32*)&forUnmarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
10457 }
10458 
marshal_VkPhysicalDeviceShaderIntegerDotProductProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductProperties * forMarshaling)10459 void marshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
10460     VulkanStreamGuest* vkStream, VkStructureType rootType,
10461     const VkPhysicalDeviceShaderIntegerDotProductProperties* forMarshaling) {
10462     (void)rootType;
10463     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10464     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10465         rootType = forMarshaling->sType;
10466     }
10467     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10468     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated,
10469                     sizeof(VkBool32));
10470     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated,
10471                     sizeof(VkBool32));
10472     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated,
10473                     sizeof(VkBool32));
10474     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
10475                     sizeof(VkBool32));
10476     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
10477                     sizeof(VkBool32));
10478     vkStream->write(
10479         (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
10480         sizeof(VkBool32));
10481     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated,
10482                     sizeof(VkBool32));
10483     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated,
10484                     sizeof(VkBool32));
10485     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated,
10486                     sizeof(VkBool32));
10487     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated,
10488                     sizeof(VkBool32));
10489     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated,
10490                     sizeof(VkBool32));
10491     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated,
10492                     sizeof(VkBool32));
10493     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated,
10494                     sizeof(VkBool32));
10495     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated,
10496                     sizeof(VkBool32));
10497     vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated,
10498                     sizeof(VkBool32));
10499     vkStream->write(
10500         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
10501         sizeof(VkBool32));
10502     vkStream->write(
10503         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
10504         sizeof(VkBool32));
10505     vkStream->write((VkBool32*)&forMarshaling
10506                         ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
10507                     sizeof(VkBool32));
10508     vkStream->write((VkBool32*)&forMarshaling
10509                         ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
10510                     sizeof(VkBool32));
10511     vkStream->write((VkBool32*)&forMarshaling
10512                         ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
10513                     sizeof(VkBool32));
10514     vkStream->write(
10515         (VkBool32*)&forMarshaling
10516             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
10517         sizeof(VkBool32));
10518     vkStream->write(
10519         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
10520         sizeof(VkBool32));
10521     vkStream->write(
10522         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
10523         sizeof(VkBool32));
10524     vkStream->write((VkBool32*)&forMarshaling
10525                         ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
10526                     sizeof(VkBool32));
10527     vkStream->write(
10528         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
10529         sizeof(VkBool32));
10530     vkStream->write(
10531         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
10532         sizeof(VkBool32));
10533     vkStream->write((VkBool32*)&forMarshaling
10534                         ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
10535                     sizeof(VkBool32));
10536     vkStream->write(
10537         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
10538         sizeof(VkBool32));
10539     vkStream->write(
10540         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
10541         sizeof(VkBool32));
10542     vkStream->write((VkBool32*)&forMarshaling
10543                         ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
10544                     sizeof(VkBool32));
10545 }
10546 
unmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderIntegerDotProductProperties * forUnmarshaling)10547 void unmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
10548     VulkanStreamGuest* vkStream, VkStructureType rootType,
10549     VkPhysicalDeviceShaderIntegerDotProductProperties* forUnmarshaling) {
10550     (void)rootType;
10551     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10552     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10553         rootType = forUnmarshaling->sType;
10554     }
10555     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10556     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitUnsignedAccelerated,
10557                    sizeof(VkBool32));
10558     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitSignedAccelerated,
10559                    sizeof(VkBool32));
10560     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitMixedSignednessAccelerated,
10561                    sizeof(VkBool32));
10562     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
10563                    sizeof(VkBool32));
10564     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
10565                    sizeof(VkBool32));
10566     vkStream->read(
10567         (VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
10568         sizeof(VkBool32));
10569     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitUnsignedAccelerated,
10570                    sizeof(VkBool32));
10571     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitSignedAccelerated,
10572                    sizeof(VkBool32));
10573     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitMixedSignednessAccelerated,
10574                    sizeof(VkBool32));
10575     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitUnsignedAccelerated,
10576                    sizeof(VkBool32));
10577     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitSignedAccelerated,
10578                    sizeof(VkBool32));
10579     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitMixedSignednessAccelerated,
10580                    sizeof(VkBool32));
10581     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitUnsignedAccelerated,
10582                    sizeof(VkBool32));
10583     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitSignedAccelerated,
10584                    sizeof(VkBool32));
10585     vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitMixedSignednessAccelerated,
10586                    sizeof(VkBool32));
10587     vkStream->read(
10588         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
10589         sizeof(VkBool32));
10590     vkStream->read(
10591         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
10592         sizeof(VkBool32));
10593     vkStream->read((VkBool32*)&forUnmarshaling
10594                        ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
10595                    sizeof(VkBool32));
10596     vkStream->read((VkBool32*)&forUnmarshaling
10597                        ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
10598                    sizeof(VkBool32));
10599     vkStream->read((VkBool32*)&forUnmarshaling
10600                        ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
10601                    sizeof(VkBool32));
10602     vkStream->read(
10603         (VkBool32*)&forUnmarshaling
10604             ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
10605         sizeof(VkBool32));
10606     vkStream->read((VkBool32*)&forUnmarshaling
10607                        ->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
10608                    sizeof(VkBool32));
10609     vkStream->read(
10610         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
10611         sizeof(VkBool32));
10612     vkStream->read((VkBool32*)&forUnmarshaling
10613                        ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
10614                    sizeof(VkBool32));
10615     vkStream->read((VkBool32*)&forUnmarshaling
10616                        ->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
10617                    sizeof(VkBool32));
10618     vkStream->read(
10619         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
10620         sizeof(VkBool32));
10621     vkStream->read((VkBool32*)&forUnmarshaling
10622                        ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
10623                    sizeof(VkBool32));
10624     vkStream->read((VkBool32*)&forUnmarshaling
10625                        ->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
10626                    sizeof(VkBool32));
10627     vkStream->read(
10628         (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
10629         sizeof(VkBool32));
10630     vkStream->read((VkBool32*)&forUnmarshaling
10631                        ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
10632                    sizeof(VkBool32));
10633 }
10634 
marshal_VkPhysicalDeviceTexelBufferAlignmentProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentProperties * forMarshaling)10635 void marshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
10636     VulkanStreamGuest* vkStream, VkStructureType rootType,
10637     const VkPhysicalDeviceTexelBufferAlignmentProperties* forMarshaling) {
10638     (void)rootType;
10639     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10640     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10641         rootType = forMarshaling->sType;
10642     }
10643     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10644     vkStream->write((VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes,
10645                     sizeof(VkDeviceSize));
10646     vkStream->write((VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment,
10647                     sizeof(VkBool32));
10648     vkStream->write((VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes,
10649                     sizeof(VkDeviceSize));
10650     vkStream->write((VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
10651                     sizeof(VkBool32));
10652 }
10653 
unmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTexelBufferAlignmentProperties * forUnmarshaling)10654 void unmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
10655     VulkanStreamGuest* vkStream, VkStructureType rootType,
10656     VkPhysicalDeviceTexelBufferAlignmentProperties* forUnmarshaling) {
10657     (void)rootType;
10658     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10659     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10660         rootType = forUnmarshaling->sType;
10661     }
10662     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10663     vkStream->read((VkDeviceSize*)&forUnmarshaling->storageTexelBufferOffsetAlignmentBytes,
10664                    sizeof(VkDeviceSize));
10665     vkStream->read((VkBool32*)&forUnmarshaling->storageTexelBufferOffsetSingleTexelAlignment,
10666                    sizeof(VkBool32));
10667     vkStream->read((VkDeviceSize*)&forUnmarshaling->uniformTexelBufferOffsetAlignmentBytes,
10668                    sizeof(VkDeviceSize));
10669     vkStream->read((VkBool32*)&forUnmarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
10670                    sizeof(VkBool32));
10671 }
10672 
marshal_VkFormatProperties3(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFormatProperties3 * forMarshaling)10673 void marshal_VkFormatProperties3(VulkanStreamGuest* vkStream, VkStructureType rootType,
10674                                  const VkFormatProperties3* forMarshaling) {
10675     (void)rootType;
10676     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10677     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10678         rootType = forMarshaling->sType;
10679     }
10680     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10681     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->linearTilingFeatures,
10682                     sizeof(VkFormatFeatureFlags2));
10683     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->optimalTilingFeatures,
10684                     sizeof(VkFormatFeatureFlags2));
10685     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->bufferFeatures,
10686                     sizeof(VkFormatFeatureFlags2));
10687 }
10688 
unmarshal_VkFormatProperties3(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFormatProperties3 * forUnmarshaling)10689 void unmarshal_VkFormatProperties3(VulkanStreamGuest* vkStream, VkStructureType rootType,
10690                                    VkFormatProperties3* forUnmarshaling) {
10691     (void)rootType;
10692     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10693     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10694         rootType = forUnmarshaling->sType;
10695     }
10696     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10697     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->linearTilingFeatures,
10698                    sizeof(VkFormatFeatureFlags2));
10699     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->optimalTilingFeatures,
10700                    sizeof(VkFormatFeatureFlags2));
10701     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->bufferFeatures,
10702                    sizeof(VkFormatFeatureFlags2));
10703 }
10704 
marshal_VkPhysicalDeviceMaintenance4Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Features * forMarshaling)10705 void marshal_VkPhysicalDeviceMaintenance4Features(
10706     VulkanStreamGuest* vkStream, VkStructureType rootType,
10707     const VkPhysicalDeviceMaintenance4Features* forMarshaling) {
10708     (void)rootType;
10709     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10710     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10711         rootType = forMarshaling->sType;
10712     }
10713     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10714     vkStream->write((VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
10715 }
10716 
unmarshal_VkPhysicalDeviceMaintenance4Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance4Features * forUnmarshaling)10717 void unmarshal_VkPhysicalDeviceMaintenance4Features(
10718     VulkanStreamGuest* vkStream, VkStructureType rootType,
10719     VkPhysicalDeviceMaintenance4Features* forUnmarshaling) {
10720     (void)rootType;
10721     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10722     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10723         rootType = forUnmarshaling->sType;
10724     }
10725     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10726     vkStream->read((VkBool32*)&forUnmarshaling->maintenance4, sizeof(VkBool32));
10727 }
10728 
marshal_VkPhysicalDeviceMaintenance4Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Properties * forMarshaling)10729 void marshal_VkPhysicalDeviceMaintenance4Properties(
10730     VulkanStreamGuest* vkStream, VkStructureType rootType,
10731     const VkPhysicalDeviceMaintenance4Properties* forMarshaling) {
10732     (void)rootType;
10733     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10734     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10735         rootType = forMarshaling->sType;
10736     }
10737     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10738     vkStream->write((VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
10739 }
10740 
unmarshal_VkPhysicalDeviceMaintenance4Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance4Properties * forUnmarshaling)10741 void unmarshal_VkPhysicalDeviceMaintenance4Properties(
10742     VulkanStreamGuest* vkStream, VkStructureType rootType,
10743     VkPhysicalDeviceMaintenance4Properties* forUnmarshaling) {
10744     (void)rootType;
10745     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10746     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10747         rootType = forUnmarshaling->sType;
10748     }
10749     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10750     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxBufferSize, sizeof(VkDeviceSize));
10751 }
10752 
marshal_VkDeviceBufferMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceBufferMemoryRequirements * forMarshaling)10753 void marshal_VkDeviceBufferMemoryRequirements(
10754     VulkanStreamGuest* vkStream, VkStructureType rootType,
10755     const VkDeviceBufferMemoryRequirements* forMarshaling) {
10756     (void)rootType;
10757     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10758     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10759         rootType = forMarshaling->sType;
10760     }
10761     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10762     marshal_VkBufferCreateInfo(vkStream, rootType,
10763                                (const VkBufferCreateInfo*)(forMarshaling->pCreateInfo));
10764 }
10765 
unmarshal_VkDeviceBufferMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceBufferMemoryRequirements * forUnmarshaling)10766 void unmarshal_VkDeviceBufferMemoryRequirements(VulkanStreamGuest* vkStream,
10767                                                 VkStructureType rootType,
10768                                                 VkDeviceBufferMemoryRequirements* forUnmarshaling) {
10769     (void)rootType;
10770     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10771     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10772         rootType = forUnmarshaling->sType;
10773     }
10774     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10775     unmarshal_VkBufferCreateInfo(vkStream, rootType,
10776                                  (VkBufferCreateInfo*)(forUnmarshaling->pCreateInfo));
10777 }
10778 
marshal_VkDeviceImageMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceImageMemoryRequirements * forMarshaling)10779 void marshal_VkDeviceImageMemoryRequirements(VulkanStreamGuest* vkStream, VkStructureType rootType,
10780                                              const VkDeviceImageMemoryRequirements* forMarshaling) {
10781     (void)rootType;
10782     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10783     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10784         rootType = forMarshaling->sType;
10785     }
10786     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10787     marshal_VkImageCreateInfo(vkStream, rootType,
10788                               (const VkImageCreateInfo*)(forMarshaling->pCreateInfo));
10789     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect,
10790                     sizeof(VkImageAspectFlagBits));
10791 }
10792 
unmarshal_VkDeviceImageMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceImageMemoryRequirements * forUnmarshaling)10793 void unmarshal_VkDeviceImageMemoryRequirements(VulkanStreamGuest* vkStream,
10794                                                VkStructureType rootType,
10795                                                VkDeviceImageMemoryRequirements* forUnmarshaling) {
10796     (void)rootType;
10797     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10798     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10799         rootType = forUnmarshaling->sType;
10800     }
10801     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10802     unmarshal_VkImageCreateInfo(vkStream, rootType,
10803                                 (VkImageCreateInfo*)(forUnmarshaling->pCreateInfo));
10804     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect,
10805                    sizeof(VkImageAspectFlagBits));
10806 }
10807 
10808 #endif
10809 #ifdef VK_VERSION_1_4
marshal_VkPhysicalDeviceVulkan14Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan14Features * forMarshaling)10810 void marshal_VkPhysicalDeviceVulkan14Features(
10811     VulkanStreamGuest* vkStream, VkStructureType rootType,
10812     const VkPhysicalDeviceVulkan14Features* forMarshaling) {
10813     (void)rootType;
10814     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10815     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10816         rootType = forMarshaling->sType;
10817     }
10818     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10819     vkStream->write((VkBool32*)&forMarshaling->globalPriorityQuery, sizeof(VkBool32));
10820     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupRotate, sizeof(VkBool32));
10821     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupRotateClustered, sizeof(VkBool32));
10822     vkStream->write((VkBool32*)&forMarshaling->shaderFloatControls2, sizeof(VkBool32));
10823     vkStream->write((VkBool32*)&forMarshaling->shaderExpectAssume, sizeof(VkBool32));
10824     vkStream->write((VkBool32*)&forMarshaling->rectangularLines, sizeof(VkBool32));
10825     vkStream->write((VkBool32*)&forMarshaling->bresenhamLines, sizeof(VkBool32));
10826     vkStream->write((VkBool32*)&forMarshaling->smoothLines, sizeof(VkBool32));
10827     vkStream->write((VkBool32*)&forMarshaling->stippledRectangularLines, sizeof(VkBool32));
10828     vkStream->write((VkBool32*)&forMarshaling->stippledBresenhamLines, sizeof(VkBool32));
10829     vkStream->write((VkBool32*)&forMarshaling->stippledSmoothLines, sizeof(VkBool32));
10830     vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateDivisor,
10831                     sizeof(VkBool32));
10832     vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateZeroDivisor,
10833                     sizeof(VkBool32));
10834     vkStream->write((VkBool32*)&forMarshaling->indexTypeUint8, sizeof(VkBool32));
10835     vkStream->write((VkBool32*)&forMarshaling->dynamicRenderingLocalRead, sizeof(VkBool32));
10836     vkStream->write((VkBool32*)&forMarshaling->maintenance5, sizeof(VkBool32));
10837     vkStream->write((VkBool32*)&forMarshaling->maintenance6, sizeof(VkBool32));
10838     vkStream->write((VkBool32*)&forMarshaling->pipelineProtectedAccess, sizeof(VkBool32));
10839     vkStream->write((VkBool32*)&forMarshaling->pipelineRobustness, sizeof(VkBool32));
10840     vkStream->write((VkBool32*)&forMarshaling->hostImageCopy, sizeof(VkBool32));
10841     vkStream->write((VkBool32*)&forMarshaling->pushDescriptor, sizeof(VkBool32));
10842 }
10843 
unmarshal_VkPhysicalDeviceVulkan14Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan14Features * forUnmarshaling)10844 void unmarshal_VkPhysicalDeviceVulkan14Features(VulkanStreamGuest* vkStream,
10845                                                 VkStructureType rootType,
10846                                                 VkPhysicalDeviceVulkan14Features* forUnmarshaling) {
10847     (void)rootType;
10848     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10849     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10850         rootType = forUnmarshaling->sType;
10851     }
10852     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10853     vkStream->read((VkBool32*)&forUnmarshaling->globalPriorityQuery, sizeof(VkBool32));
10854     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupRotate, sizeof(VkBool32));
10855     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupRotateClustered, sizeof(VkBool32));
10856     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloatControls2, sizeof(VkBool32));
10857     vkStream->read((VkBool32*)&forUnmarshaling->shaderExpectAssume, sizeof(VkBool32));
10858     vkStream->read((VkBool32*)&forUnmarshaling->rectangularLines, sizeof(VkBool32));
10859     vkStream->read((VkBool32*)&forUnmarshaling->bresenhamLines, sizeof(VkBool32));
10860     vkStream->read((VkBool32*)&forUnmarshaling->smoothLines, sizeof(VkBool32));
10861     vkStream->read((VkBool32*)&forUnmarshaling->stippledRectangularLines, sizeof(VkBool32));
10862     vkStream->read((VkBool32*)&forUnmarshaling->stippledBresenhamLines, sizeof(VkBool32));
10863     vkStream->read((VkBool32*)&forUnmarshaling->stippledSmoothLines, sizeof(VkBool32));
10864     vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateDivisor,
10865                    sizeof(VkBool32));
10866     vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateZeroDivisor,
10867                    sizeof(VkBool32));
10868     vkStream->read((VkBool32*)&forUnmarshaling->indexTypeUint8, sizeof(VkBool32));
10869     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRenderingLocalRead, sizeof(VkBool32));
10870     vkStream->read((VkBool32*)&forUnmarshaling->maintenance5, sizeof(VkBool32));
10871     vkStream->read((VkBool32*)&forUnmarshaling->maintenance6, sizeof(VkBool32));
10872     vkStream->read((VkBool32*)&forUnmarshaling->pipelineProtectedAccess, sizeof(VkBool32));
10873     vkStream->read((VkBool32*)&forUnmarshaling->pipelineRobustness, sizeof(VkBool32));
10874     vkStream->read((VkBool32*)&forUnmarshaling->hostImageCopy, sizeof(VkBool32));
10875     vkStream->read((VkBool32*)&forUnmarshaling->pushDescriptor, sizeof(VkBool32));
10876 }
10877 
marshal_VkPhysicalDeviceVulkan14Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan14Properties * forMarshaling)10878 void marshal_VkPhysicalDeviceVulkan14Properties(
10879     VulkanStreamGuest* vkStream, VkStructureType rootType,
10880     const VkPhysicalDeviceVulkan14Properties* forMarshaling) {
10881     (void)rootType;
10882     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10883     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10884         rootType = forMarshaling->sType;
10885     }
10886     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10887     vkStream->write((uint32_t*)&forMarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
10888     vkStream->write((uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
10889     vkStream->write((VkBool32*)&forMarshaling->supportsNonZeroFirstInstance, sizeof(VkBool32));
10890     vkStream->write((uint32_t*)&forMarshaling->maxPushDescriptors, sizeof(uint32_t));
10891     vkStream->write((VkBool32*)&forMarshaling->dynamicRenderingLocalReadDepthStencilAttachments,
10892                     sizeof(VkBool32));
10893     vkStream->write((VkBool32*)&forMarshaling->dynamicRenderingLocalReadMultisampledAttachments,
10894                     sizeof(VkBool32));
10895     vkStream->write((VkBool32*)&forMarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting,
10896                     sizeof(VkBool32));
10897     vkStream->write((VkBool32*)&forMarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting,
10898                     sizeof(VkBool32));
10899     vkStream->write((VkBool32*)&forMarshaling->depthStencilSwizzleOneSupport, sizeof(VkBool32));
10900     vkStream->write((VkBool32*)&forMarshaling->polygonModePointSize, sizeof(VkBool32));
10901     vkStream->write((VkBool32*)&forMarshaling->nonStrictSinglePixelWideLinesUseParallelogram,
10902                     sizeof(VkBool32));
10903     vkStream->write((VkBool32*)&forMarshaling->nonStrictWideLinesUseParallelogram,
10904                     sizeof(VkBool32));
10905     vkStream->write((VkBool32*)&forMarshaling->blockTexelViewCompatibleMultipleLayers,
10906                     sizeof(VkBool32));
10907     vkStream->write((uint32_t*)&forMarshaling->maxCombinedImageSamplerDescriptorCount,
10908                     sizeof(uint32_t));
10909     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateClampCombinerInputs,
10910                     sizeof(VkBool32));
10911     vkStream->write(
10912         (VkPipelineRobustnessBufferBehavior*)&forMarshaling->defaultRobustnessStorageBuffers,
10913         sizeof(VkPipelineRobustnessBufferBehavior));
10914     vkStream->write(
10915         (VkPipelineRobustnessBufferBehavior*)&forMarshaling->defaultRobustnessUniformBuffers,
10916         sizeof(VkPipelineRobustnessBufferBehavior));
10917     vkStream->write(
10918         (VkPipelineRobustnessBufferBehavior*)&forMarshaling->defaultRobustnessVertexInputs,
10919         sizeof(VkPipelineRobustnessBufferBehavior));
10920     vkStream->write((VkPipelineRobustnessImageBehavior*)&forMarshaling->defaultRobustnessImages,
10921                     sizeof(VkPipelineRobustnessImageBehavior));
10922     vkStream->write((uint32_t*)&forMarshaling->copySrcLayoutCount, sizeof(uint32_t));
10923     // WARNING PTR CHECK
10924     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCopySrcLayouts;
10925     vkStream->putBe64(cgen_var_0);
10926     if (forMarshaling->pCopySrcLayouts) {
10927         vkStream->write((VkImageLayout*)forMarshaling->pCopySrcLayouts,
10928                         forMarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
10929     }
10930     vkStream->write((uint32_t*)&forMarshaling->copyDstLayoutCount, sizeof(uint32_t));
10931     // WARNING PTR CHECK
10932     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pCopyDstLayouts;
10933     vkStream->putBe64(cgen_var_1);
10934     if (forMarshaling->pCopyDstLayouts) {
10935         vkStream->write((VkImageLayout*)forMarshaling->pCopyDstLayouts,
10936                         forMarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
10937     }
10938     vkStream->write((uint8_t*)forMarshaling->optimalTilingLayoutUUID,
10939                     VK_UUID_SIZE * sizeof(uint8_t));
10940     vkStream->write((VkBool32*)&forMarshaling->identicalMemoryTypeRequirements, sizeof(VkBool32));
10941 }
10942 
unmarshal_VkPhysicalDeviceVulkan14Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan14Properties * forUnmarshaling)10943 void unmarshal_VkPhysicalDeviceVulkan14Properties(
10944     VulkanStreamGuest* vkStream, VkStructureType rootType,
10945     VkPhysicalDeviceVulkan14Properties* forUnmarshaling) {
10946     (void)rootType;
10947     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10948     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10949         rootType = forUnmarshaling->sType;
10950     }
10951     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10952     vkStream->read((uint32_t*)&forUnmarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
10953     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
10954     vkStream->read((VkBool32*)&forUnmarshaling->supportsNonZeroFirstInstance, sizeof(VkBool32));
10955     vkStream->read((uint32_t*)&forUnmarshaling->maxPushDescriptors, sizeof(uint32_t));
10956     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRenderingLocalReadDepthStencilAttachments,
10957                    sizeof(VkBool32));
10958     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRenderingLocalReadMultisampledAttachments,
10959                    sizeof(VkBool32));
10960     vkStream->read((VkBool32*)&forUnmarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting,
10961                    sizeof(VkBool32));
10962     vkStream->read((VkBool32*)&forUnmarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting,
10963                    sizeof(VkBool32));
10964     vkStream->read((VkBool32*)&forUnmarshaling->depthStencilSwizzleOneSupport, sizeof(VkBool32));
10965     vkStream->read((VkBool32*)&forUnmarshaling->polygonModePointSize, sizeof(VkBool32));
10966     vkStream->read((VkBool32*)&forUnmarshaling->nonStrictSinglePixelWideLinesUseParallelogram,
10967                    sizeof(VkBool32));
10968     vkStream->read((VkBool32*)&forUnmarshaling->nonStrictWideLinesUseParallelogram,
10969                    sizeof(VkBool32));
10970     vkStream->read((VkBool32*)&forUnmarshaling->blockTexelViewCompatibleMultipleLayers,
10971                    sizeof(VkBool32));
10972     vkStream->read((uint32_t*)&forUnmarshaling->maxCombinedImageSamplerDescriptorCount,
10973                    sizeof(uint32_t));
10974     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateClampCombinerInputs,
10975                    sizeof(VkBool32));
10976     vkStream->read(
10977         (VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->defaultRobustnessStorageBuffers,
10978         sizeof(VkPipelineRobustnessBufferBehavior));
10979     vkStream->read(
10980         (VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->defaultRobustnessUniformBuffers,
10981         sizeof(VkPipelineRobustnessBufferBehavior));
10982     vkStream->read(
10983         (VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->defaultRobustnessVertexInputs,
10984         sizeof(VkPipelineRobustnessBufferBehavior));
10985     vkStream->read((VkPipelineRobustnessImageBehavior*)&forUnmarshaling->defaultRobustnessImages,
10986                    sizeof(VkPipelineRobustnessImageBehavior));
10987     vkStream->read((uint32_t*)&forUnmarshaling->copySrcLayoutCount, sizeof(uint32_t));
10988     // WARNING PTR CHECK
10989     VkImageLayout* check_pCopySrcLayouts;
10990     check_pCopySrcLayouts = (VkImageLayout*)(uintptr_t)vkStream->getBe64();
10991     if (forUnmarshaling->pCopySrcLayouts) {
10992         if (!(check_pCopySrcLayouts)) {
10993             fprintf(
10994                 stderr,
10995                 "fatal: forUnmarshaling->pCopySrcLayouts inconsistent between guest and host\n");
10996         }
10997         vkStream->read((VkImageLayout*)forUnmarshaling->pCopySrcLayouts,
10998                        forUnmarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
10999     }
11000     vkStream->read((uint32_t*)&forUnmarshaling->copyDstLayoutCount, sizeof(uint32_t));
11001     // WARNING PTR CHECK
11002     VkImageLayout* check_pCopyDstLayouts;
11003     check_pCopyDstLayouts = (VkImageLayout*)(uintptr_t)vkStream->getBe64();
11004     if (forUnmarshaling->pCopyDstLayouts) {
11005         if (!(check_pCopyDstLayouts)) {
11006             fprintf(
11007                 stderr,
11008                 "fatal: forUnmarshaling->pCopyDstLayouts inconsistent between guest and host\n");
11009         }
11010         vkStream->read((VkImageLayout*)forUnmarshaling->pCopyDstLayouts,
11011                        forUnmarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
11012     }
11013     vkStream->read((uint8_t*)forUnmarshaling->optimalTilingLayoutUUID,
11014                    VK_UUID_SIZE * sizeof(uint8_t));
11015     vkStream->read((VkBool32*)&forUnmarshaling->identicalMemoryTypeRequirements, sizeof(VkBool32));
11016 }
11017 
marshal_VkDeviceQueueGlobalPriorityCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceQueueGlobalPriorityCreateInfo * forMarshaling)11018 void marshal_VkDeviceQueueGlobalPriorityCreateInfo(
11019     VulkanStreamGuest* vkStream, VkStructureType rootType,
11020     const VkDeviceQueueGlobalPriorityCreateInfo* forMarshaling) {
11021     (void)rootType;
11022     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11023     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11024         rootType = forMarshaling->sType;
11025     }
11026     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11027     vkStream->write((VkQueueGlobalPriority*)&forMarshaling->globalPriority,
11028                     sizeof(VkQueueGlobalPriority));
11029 }
11030 
unmarshal_VkDeviceQueueGlobalPriorityCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceQueueGlobalPriorityCreateInfo * forUnmarshaling)11031 void unmarshal_VkDeviceQueueGlobalPriorityCreateInfo(
11032     VulkanStreamGuest* vkStream, VkStructureType rootType,
11033     VkDeviceQueueGlobalPriorityCreateInfo* forUnmarshaling) {
11034     (void)rootType;
11035     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11036     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11037         rootType = forUnmarshaling->sType;
11038     }
11039     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11040     vkStream->read((VkQueueGlobalPriority*)&forUnmarshaling->globalPriority,
11041                    sizeof(VkQueueGlobalPriority));
11042 }
11043 
marshal_VkPhysicalDeviceGlobalPriorityQueryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGlobalPriorityQueryFeatures * forMarshaling)11044 void marshal_VkPhysicalDeviceGlobalPriorityQueryFeatures(
11045     VulkanStreamGuest* vkStream, VkStructureType rootType,
11046     const VkPhysicalDeviceGlobalPriorityQueryFeatures* forMarshaling) {
11047     (void)rootType;
11048     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11049     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11050         rootType = forMarshaling->sType;
11051     }
11052     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11053     vkStream->write((VkBool32*)&forMarshaling->globalPriorityQuery, sizeof(VkBool32));
11054 }
11055 
unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceGlobalPriorityQueryFeatures * forUnmarshaling)11056 void unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeatures(
11057     VulkanStreamGuest* vkStream, VkStructureType rootType,
11058     VkPhysicalDeviceGlobalPriorityQueryFeatures* forUnmarshaling) {
11059     (void)rootType;
11060     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11061     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11062         rootType = forUnmarshaling->sType;
11063     }
11064     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11065     vkStream->read((VkBool32*)&forUnmarshaling->globalPriorityQuery, sizeof(VkBool32));
11066 }
11067 
marshal_VkQueueFamilyGlobalPriorityProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueueFamilyGlobalPriorityProperties * forMarshaling)11068 void marshal_VkQueueFamilyGlobalPriorityProperties(
11069     VulkanStreamGuest* vkStream, VkStructureType rootType,
11070     const VkQueueFamilyGlobalPriorityProperties* forMarshaling) {
11071     (void)rootType;
11072     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11073     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11074         rootType = forMarshaling->sType;
11075     }
11076     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11077     vkStream->write((uint32_t*)&forMarshaling->priorityCount, sizeof(uint32_t));
11078     vkStream->write((VkQueueGlobalPriority*)forMarshaling->priorities,
11079                     VK_MAX_GLOBAL_PRIORITY_SIZE * sizeof(VkQueueGlobalPriority));
11080 }
11081 
unmarshal_VkQueueFamilyGlobalPriorityProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkQueueFamilyGlobalPriorityProperties * forUnmarshaling)11082 void unmarshal_VkQueueFamilyGlobalPriorityProperties(
11083     VulkanStreamGuest* vkStream, VkStructureType rootType,
11084     VkQueueFamilyGlobalPriorityProperties* forUnmarshaling) {
11085     (void)rootType;
11086     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11087     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11088         rootType = forUnmarshaling->sType;
11089     }
11090     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11091     vkStream->read((uint32_t*)&forUnmarshaling->priorityCount, sizeof(uint32_t));
11092     vkStream->read((VkQueueGlobalPriority*)forUnmarshaling->priorities,
11093                    VK_MAX_GLOBAL_PRIORITY_SIZE * sizeof(VkQueueGlobalPriority));
11094 }
11095 
marshal_VkPhysicalDeviceShaderSubgroupRotateFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderSubgroupRotateFeatures * forMarshaling)11096 void marshal_VkPhysicalDeviceShaderSubgroupRotateFeatures(
11097     VulkanStreamGuest* vkStream, VkStructureType rootType,
11098     const VkPhysicalDeviceShaderSubgroupRotateFeatures* forMarshaling) {
11099     (void)rootType;
11100     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11101     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11102         rootType = forMarshaling->sType;
11103     }
11104     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11105     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupRotate, sizeof(VkBool32));
11106     vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupRotateClustered, sizeof(VkBool32));
11107 }
11108 
unmarshal_VkPhysicalDeviceShaderSubgroupRotateFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderSubgroupRotateFeatures * forUnmarshaling)11109 void unmarshal_VkPhysicalDeviceShaderSubgroupRotateFeatures(
11110     VulkanStreamGuest* vkStream, VkStructureType rootType,
11111     VkPhysicalDeviceShaderSubgroupRotateFeatures* forUnmarshaling) {
11112     (void)rootType;
11113     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11114     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11115         rootType = forUnmarshaling->sType;
11116     }
11117     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11118     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupRotate, sizeof(VkBool32));
11119     vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupRotateClustered, sizeof(VkBool32));
11120 }
11121 
marshal_VkPhysicalDeviceShaderFloatControls2Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderFloatControls2Features * forMarshaling)11122 void marshal_VkPhysicalDeviceShaderFloatControls2Features(
11123     VulkanStreamGuest* vkStream, VkStructureType rootType,
11124     const VkPhysicalDeviceShaderFloatControls2Features* forMarshaling) {
11125     (void)rootType;
11126     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11127     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11128         rootType = forMarshaling->sType;
11129     }
11130     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11131     vkStream->write((VkBool32*)&forMarshaling->shaderFloatControls2, sizeof(VkBool32));
11132 }
11133 
unmarshal_VkPhysicalDeviceShaderFloatControls2Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderFloatControls2Features * forUnmarshaling)11134 void unmarshal_VkPhysicalDeviceShaderFloatControls2Features(
11135     VulkanStreamGuest* vkStream, VkStructureType rootType,
11136     VkPhysicalDeviceShaderFloatControls2Features* forUnmarshaling) {
11137     (void)rootType;
11138     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11139     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11140         rootType = forUnmarshaling->sType;
11141     }
11142     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11143     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloatControls2, sizeof(VkBool32));
11144 }
11145 
marshal_VkPhysicalDeviceShaderExpectAssumeFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderExpectAssumeFeatures * forMarshaling)11146 void marshal_VkPhysicalDeviceShaderExpectAssumeFeatures(
11147     VulkanStreamGuest* vkStream, VkStructureType rootType,
11148     const VkPhysicalDeviceShaderExpectAssumeFeatures* forMarshaling) {
11149     (void)rootType;
11150     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11151     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11152         rootType = forMarshaling->sType;
11153     }
11154     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11155     vkStream->write((VkBool32*)&forMarshaling->shaderExpectAssume, sizeof(VkBool32));
11156 }
11157 
unmarshal_VkPhysicalDeviceShaderExpectAssumeFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderExpectAssumeFeatures * forUnmarshaling)11158 void unmarshal_VkPhysicalDeviceShaderExpectAssumeFeatures(
11159     VulkanStreamGuest* vkStream, VkStructureType rootType,
11160     VkPhysicalDeviceShaderExpectAssumeFeatures* forUnmarshaling) {
11161     (void)rootType;
11162     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11163     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11164         rootType = forUnmarshaling->sType;
11165     }
11166     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11167     vkStream->read((VkBool32*)&forUnmarshaling->shaderExpectAssume, sizeof(VkBool32));
11168 }
11169 
marshal_VkPhysicalDeviceLineRasterizationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationFeatures * forMarshaling)11170 void marshal_VkPhysicalDeviceLineRasterizationFeatures(
11171     VulkanStreamGuest* vkStream, VkStructureType rootType,
11172     const VkPhysicalDeviceLineRasterizationFeatures* forMarshaling) {
11173     (void)rootType;
11174     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11175     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11176         rootType = forMarshaling->sType;
11177     }
11178     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11179     vkStream->write((VkBool32*)&forMarshaling->rectangularLines, sizeof(VkBool32));
11180     vkStream->write((VkBool32*)&forMarshaling->bresenhamLines, sizeof(VkBool32));
11181     vkStream->write((VkBool32*)&forMarshaling->smoothLines, sizeof(VkBool32));
11182     vkStream->write((VkBool32*)&forMarshaling->stippledRectangularLines, sizeof(VkBool32));
11183     vkStream->write((VkBool32*)&forMarshaling->stippledBresenhamLines, sizeof(VkBool32));
11184     vkStream->write((VkBool32*)&forMarshaling->stippledSmoothLines, sizeof(VkBool32));
11185 }
11186 
unmarshal_VkPhysicalDeviceLineRasterizationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationFeatures * forUnmarshaling)11187 void unmarshal_VkPhysicalDeviceLineRasterizationFeatures(
11188     VulkanStreamGuest* vkStream, VkStructureType rootType,
11189     VkPhysicalDeviceLineRasterizationFeatures* forUnmarshaling) {
11190     (void)rootType;
11191     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11193         rootType = forUnmarshaling->sType;
11194     }
11195     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11196     vkStream->read((VkBool32*)&forUnmarshaling->rectangularLines, sizeof(VkBool32));
11197     vkStream->read((VkBool32*)&forUnmarshaling->bresenhamLines, sizeof(VkBool32));
11198     vkStream->read((VkBool32*)&forUnmarshaling->smoothLines, sizeof(VkBool32));
11199     vkStream->read((VkBool32*)&forUnmarshaling->stippledRectangularLines, sizeof(VkBool32));
11200     vkStream->read((VkBool32*)&forUnmarshaling->stippledBresenhamLines, sizeof(VkBool32));
11201     vkStream->read((VkBool32*)&forUnmarshaling->stippledSmoothLines, sizeof(VkBool32));
11202 }
11203 
marshal_VkPhysicalDeviceLineRasterizationProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationProperties * forMarshaling)11204 void marshal_VkPhysicalDeviceLineRasterizationProperties(
11205     VulkanStreamGuest* vkStream, VkStructureType rootType,
11206     const VkPhysicalDeviceLineRasterizationProperties* forMarshaling) {
11207     (void)rootType;
11208     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11209     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11210         rootType = forMarshaling->sType;
11211     }
11212     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11213     vkStream->write((uint32_t*)&forMarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
11214 }
11215 
unmarshal_VkPhysicalDeviceLineRasterizationProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationProperties * forUnmarshaling)11216 void unmarshal_VkPhysicalDeviceLineRasterizationProperties(
11217     VulkanStreamGuest* vkStream, VkStructureType rootType,
11218     VkPhysicalDeviceLineRasterizationProperties* forUnmarshaling) {
11219     (void)rootType;
11220     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11221     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11222         rootType = forUnmarshaling->sType;
11223     }
11224     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11225     vkStream->read((uint32_t*)&forUnmarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
11226 }
11227 
marshal_VkPipelineRasterizationLineStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationLineStateCreateInfo * forMarshaling)11228 void marshal_VkPipelineRasterizationLineStateCreateInfo(
11229     VulkanStreamGuest* vkStream, VkStructureType rootType,
11230     const VkPipelineRasterizationLineStateCreateInfo* forMarshaling) {
11231     (void)rootType;
11232     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11233     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11234         rootType = forMarshaling->sType;
11235     }
11236     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11237     vkStream->write((VkLineRasterizationMode*)&forMarshaling->lineRasterizationMode,
11238                     sizeof(VkLineRasterizationMode));
11239     vkStream->write((VkBool32*)&forMarshaling->stippledLineEnable, sizeof(VkBool32));
11240     vkStream->write((uint32_t*)&forMarshaling->lineStippleFactor, sizeof(uint32_t));
11241     vkStream->write((uint16_t*)&forMarshaling->lineStipplePattern, sizeof(uint16_t));
11242 }
11243 
unmarshal_VkPipelineRasterizationLineStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationLineStateCreateInfo * forUnmarshaling)11244 void unmarshal_VkPipelineRasterizationLineStateCreateInfo(
11245     VulkanStreamGuest* vkStream, VkStructureType rootType,
11246     VkPipelineRasterizationLineStateCreateInfo* forUnmarshaling) {
11247     (void)rootType;
11248     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11249     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11250         rootType = forUnmarshaling->sType;
11251     }
11252     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11253     vkStream->read((VkLineRasterizationMode*)&forUnmarshaling->lineRasterizationMode,
11254                    sizeof(VkLineRasterizationMode));
11255     vkStream->read((VkBool32*)&forUnmarshaling->stippledLineEnable, sizeof(VkBool32));
11256     vkStream->read((uint32_t*)&forUnmarshaling->lineStippleFactor, sizeof(uint32_t));
11257     vkStream->read((uint16_t*)&forUnmarshaling->lineStipplePattern, sizeof(uint16_t));
11258 }
11259 
marshal_VkPhysicalDeviceVertexAttributeDivisorProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorProperties * forMarshaling)11260 void marshal_VkPhysicalDeviceVertexAttributeDivisorProperties(
11261     VulkanStreamGuest* vkStream, VkStructureType rootType,
11262     const VkPhysicalDeviceVertexAttributeDivisorProperties* forMarshaling) {
11263     (void)rootType;
11264     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11265     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11266         rootType = forMarshaling->sType;
11267     }
11268     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11269     vkStream->write((uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
11270     vkStream->write((VkBool32*)&forMarshaling->supportsNonZeroFirstInstance, sizeof(VkBool32));
11271 }
11272 
unmarshal_VkPhysicalDeviceVertexAttributeDivisorProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorProperties * forUnmarshaling)11273 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorProperties(
11274     VulkanStreamGuest* vkStream, VkStructureType rootType,
11275     VkPhysicalDeviceVertexAttributeDivisorProperties* forUnmarshaling) {
11276     (void)rootType;
11277     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11278     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11279         rootType = forUnmarshaling->sType;
11280     }
11281     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11282     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
11283     vkStream->read((VkBool32*)&forUnmarshaling->supportsNonZeroFirstInstance, sizeof(VkBool32));
11284 }
11285 
marshal_VkVertexInputBindingDivisorDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkVertexInputBindingDivisorDescription * forMarshaling)11286 void marshal_VkVertexInputBindingDivisorDescription(
11287     VulkanStreamGuest* vkStream, VkStructureType rootType,
11288     const VkVertexInputBindingDivisorDescription* forMarshaling) {
11289     (void)rootType;
11290     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
11291     vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
11292 }
11293 
unmarshal_VkVertexInputBindingDivisorDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,VkVertexInputBindingDivisorDescription * forUnmarshaling)11294 void unmarshal_VkVertexInputBindingDivisorDescription(
11295     VulkanStreamGuest* vkStream, VkStructureType rootType,
11296     VkVertexInputBindingDivisorDescription* forUnmarshaling) {
11297     (void)rootType;
11298     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
11299     vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
11300 }
11301 
marshal_VkPipelineVertexInputDivisorStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineVertexInputDivisorStateCreateInfo * forMarshaling)11302 void marshal_VkPipelineVertexInputDivisorStateCreateInfo(
11303     VulkanStreamGuest* vkStream, VkStructureType rootType,
11304     const VkPipelineVertexInputDivisorStateCreateInfo* forMarshaling) {
11305     (void)rootType;
11306     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11307     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11308         rootType = forMarshaling->sType;
11309     }
11310     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11311     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
11312     if (forMarshaling) {
11313         for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDivisorCount; ++i) {
11314             marshal_VkVertexInputBindingDivisorDescription(
11315                 vkStream, rootType,
11316                 (const VkVertexInputBindingDivisorDescription*)(forMarshaling
11317                                                                     ->pVertexBindingDivisors +
11318                                                                 i));
11319         }
11320     }
11321 }
11322 
unmarshal_VkPipelineVertexInputDivisorStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineVertexInputDivisorStateCreateInfo * forUnmarshaling)11323 void unmarshal_VkPipelineVertexInputDivisorStateCreateInfo(
11324     VulkanStreamGuest* vkStream, VkStructureType rootType,
11325     VkPipelineVertexInputDivisorStateCreateInfo* forUnmarshaling) {
11326     (void)rootType;
11327     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11328     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11329         rootType = forUnmarshaling->sType;
11330     }
11331     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11332     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
11333     if (forUnmarshaling) {
11334         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDivisorCount; ++i) {
11335             unmarshal_VkVertexInputBindingDivisorDescription(
11336                 vkStream, rootType,
11337                 (VkVertexInputBindingDivisorDescription*)(forUnmarshaling->pVertexBindingDivisors +
11338                                                           i));
11339         }
11340     }
11341 }
11342 
marshal_VkPhysicalDeviceVertexAttributeDivisorFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorFeatures * forMarshaling)11343 void marshal_VkPhysicalDeviceVertexAttributeDivisorFeatures(
11344     VulkanStreamGuest* vkStream, VkStructureType rootType,
11345     const VkPhysicalDeviceVertexAttributeDivisorFeatures* forMarshaling) {
11346     (void)rootType;
11347     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11348     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11349         rootType = forMarshaling->sType;
11350     }
11351     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11352     vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateDivisor,
11353                     sizeof(VkBool32));
11354     vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateZeroDivisor,
11355                     sizeof(VkBool32));
11356 }
11357 
unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorFeatures * forUnmarshaling)11358 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeatures(
11359     VulkanStreamGuest* vkStream, VkStructureType rootType,
11360     VkPhysicalDeviceVertexAttributeDivisorFeatures* forUnmarshaling) {
11361     (void)rootType;
11362     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11363     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11364         rootType = forUnmarshaling->sType;
11365     }
11366     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11367     vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateDivisor,
11368                    sizeof(VkBool32));
11369     vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateZeroDivisor,
11370                    sizeof(VkBool32));
11371 }
11372 
marshal_VkPhysicalDeviceIndexTypeUint8Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceIndexTypeUint8Features * forMarshaling)11373 void marshal_VkPhysicalDeviceIndexTypeUint8Features(
11374     VulkanStreamGuest* vkStream, VkStructureType rootType,
11375     const VkPhysicalDeviceIndexTypeUint8Features* forMarshaling) {
11376     (void)rootType;
11377     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11378     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11379         rootType = forMarshaling->sType;
11380     }
11381     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11382     vkStream->write((VkBool32*)&forMarshaling->indexTypeUint8, sizeof(VkBool32));
11383 }
11384 
unmarshal_VkPhysicalDeviceIndexTypeUint8Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceIndexTypeUint8Features * forUnmarshaling)11385 void unmarshal_VkPhysicalDeviceIndexTypeUint8Features(
11386     VulkanStreamGuest* vkStream, VkStructureType rootType,
11387     VkPhysicalDeviceIndexTypeUint8Features* forUnmarshaling) {
11388     (void)rootType;
11389     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11390     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11391         rootType = forUnmarshaling->sType;
11392     }
11393     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11394     vkStream->read((VkBool32*)&forUnmarshaling->indexTypeUint8, sizeof(VkBool32));
11395 }
11396 
marshal_VkMemoryMapInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryMapInfo * forMarshaling)11397 void marshal_VkMemoryMapInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11398                              const VkMemoryMapInfo* forMarshaling) {
11399     (void)rootType;
11400     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11401     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11402         rootType = forMarshaling->sType;
11403     }
11404     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11405     vkStream->write((VkMemoryMapFlags*)&forMarshaling->flags, sizeof(VkMemoryMapFlags));
11406     uint64_t cgen_var_0;
11407     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
11408                                                              1);
11409     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11410     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
11411     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
11412 }
11413 
unmarshal_VkMemoryMapInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryMapInfo * forUnmarshaling)11414 void unmarshal_VkMemoryMapInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11415                                VkMemoryMapInfo* forUnmarshaling) {
11416     (void)rootType;
11417     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11418     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11419         rootType = forUnmarshaling->sType;
11420     }
11421     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11422     vkStream->read((VkMemoryMapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryMapFlags));
11423     uint64_t cgen_var_0;
11424     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11425     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
11426         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
11427     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
11428     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
11429 }
11430 
marshal_VkMemoryUnmapInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryUnmapInfo * forMarshaling)11431 void marshal_VkMemoryUnmapInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11432                                const VkMemoryUnmapInfo* forMarshaling) {
11433     (void)rootType;
11434     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11435     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11436         rootType = forMarshaling->sType;
11437     }
11438     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11439     vkStream->write((VkMemoryUnmapFlags*)&forMarshaling->flags, sizeof(VkMemoryUnmapFlags));
11440     uint64_t cgen_var_0;
11441     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0,
11442                                                              1);
11443     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11444 }
11445 
unmarshal_VkMemoryUnmapInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryUnmapInfo * forUnmarshaling)11446 void unmarshal_VkMemoryUnmapInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11447                                  VkMemoryUnmapInfo* forUnmarshaling) {
11448     (void)rootType;
11449     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11450     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11451         rootType = forUnmarshaling->sType;
11452     }
11453     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11454     vkStream->read((VkMemoryUnmapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryUnmapFlags));
11455     uint64_t cgen_var_0;
11456     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11457     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(
11458         &cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
11459 }
11460 
marshal_VkPhysicalDeviceMaintenance5Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance5Features * forMarshaling)11461 void marshal_VkPhysicalDeviceMaintenance5Features(
11462     VulkanStreamGuest* vkStream, VkStructureType rootType,
11463     const VkPhysicalDeviceMaintenance5Features* forMarshaling) {
11464     (void)rootType;
11465     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11466     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11467         rootType = forMarshaling->sType;
11468     }
11469     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11470     vkStream->write((VkBool32*)&forMarshaling->maintenance5, sizeof(VkBool32));
11471 }
11472 
unmarshal_VkPhysicalDeviceMaintenance5Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance5Features * forUnmarshaling)11473 void unmarshal_VkPhysicalDeviceMaintenance5Features(
11474     VulkanStreamGuest* vkStream, VkStructureType rootType,
11475     VkPhysicalDeviceMaintenance5Features* forUnmarshaling) {
11476     (void)rootType;
11477     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11478     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11479         rootType = forUnmarshaling->sType;
11480     }
11481     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11482     vkStream->read((VkBool32*)&forUnmarshaling->maintenance5, sizeof(VkBool32));
11483 }
11484 
marshal_VkPhysicalDeviceMaintenance5Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance5Properties * forMarshaling)11485 void marshal_VkPhysicalDeviceMaintenance5Properties(
11486     VulkanStreamGuest* vkStream, VkStructureType rootType,
11487     const VkPhysicalDeviceMaintenance5Properties* forMarshaling) {
11488     (void)rootType;
11489     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11490     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11491         rootType = forMarshaling->sType;
11492     }
11493     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11494     vkStream->write((VkBool32*)&forMarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting,
11495                     sizeof(VkBool32));
11496     vkStream->write((VkBool32*)&forMarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting,
11497                     sizeof(VkBool32));
11498     vkStream->write((VkBool32*)&forMarshaling->depthStencilSwizzleOneSupport, sizeof(VkBool32));
11499     vkStream->write((VkBool32*)&forMarshaling->polygonModePointSize, sizeof(VkBool32));
11500     vkStream->write((VkBool32*)&forMarshaling->nonStrictSinglePixelWideLinesUseParallelogram,
11501                     sizeof(VkBool32));
11502     vkStream->write((VkBool32*)&forMarshaling->nonStrictWideLinesUseParallelogram,
11503                     sizeof(VkBool32));
11504 }
11505 
unmarshal_VkPhysicalDeviceMaintenance5Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance5Properties * forUnmarshaling)11506 void unmarshal_VkPhysicalDeviceMaintenance5Properties(
11507     VulkanStreamGuest* vkStream, VkStructureType rootType,
11508     VkPhysicalDeviceMaintenance5Properties* forUnmarshaling) {
11509     (void)rootType;
11510     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11511     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11512         rootType = forUnmarshaling->sType;
11513     }
11514     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11515     vkStream->read((VkBool32*)&forUnmarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting,
11516                    sizeof(VkBool32));
11517     vkStream->read((VkBool32*)&forUnmarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting,
11518                    sizeof(VkBool32));
11519     vkStream->read((VkBool32*)&forUnmarshaling->depthStencilSwizzleOneSupport, sizeof(VkBool32));
11520     vkStream->read((VkBool32*)&forUnmarshaling->polygonModePointSize, sizeof(VkBool32));
11521     vkStream->read((VkBool32*)&forUnmarshaling->nonStrictSinglePixelWideLinesUseParallelogram,
11522                    sizeof(VkBool32));
11523     vkStream->read((VkBool32*)&forUnmarshaling->nonStrictWideLinesUseParallelogram,
11524                    sizeof(VkBool32));
11525 }
11526 
marshal_VkRenderingAreaInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingAreaInfo * forMarshaling)11527 void marshal_VkRenderingAreaInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11528                                  const VkRenderingAreaInfo* forMarshaling) {
11529     (void)rootType;
11530     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11531     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11532         rootType = forMarshaling->sType;
11533     }
11534     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11535     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
11536     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
11537     // WARNING PTR CHECK
11538     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentFormats;
11539     vkStream->putBe64(cgen_var_0);
11540     if (forMarshaling->pColorAttachmentFormats) {
11541         vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats,
11542                         forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
11543     }
11544     vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
11545     vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
11546 }
11547 
unmarshal_VkRenderingAreaInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingAreaInfo * forUnmarshaling)11548 void unmarshal_VkRenderingAreaInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11549                                    VkRenderingAreaInfo* forUnmarshaling) {
11550     (void)rootType;
11551     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11552     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11553         rootType = forUnmarshaling->sType;
11554     }
11555     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11556     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
11557     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
11558     // WARNING PTR CHECK
11559     const VkFormat* check_pColorAttachmentFormats;
11560     check_pColorAttachmentFormats = (const VkFormat*)(uintptr_t)vkStream->getBe64();
11561     if (forUnmarshaling->pColorAttachmentFormats) {
11562         if (!(check_pColorAttachmentFormats)) {
11563             fprintf(stderr,
11564                     "fatal: forUnmarshaling->pColorAttachmentFormats inconsistent between guest "
11565                     "and host\n");
11566         }
11567         vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats,
11568                        forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
11569     }
11570     vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
11571     vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
11572 }
11573 
marshal_VkImageSubresource2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresource2 * forMarshaling)11574 void marshal_VkImageSubresource2(VulkanStreamGuest* vkStream, VkStructureType rootType,
11575                                  const VkImageSubresource2* forMarshaling) {
11576     (void)rootType;
11577     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11578     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11579         rootType = forMarshaling->sType;
11580     }
11581     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11582     marshal_VkImageSubresource(vkStream, rootType,
11583                                (VkImageSubresource*)(&forMarshaling->imageSubresource));
11584 }
11585 
unmarshal_VkImageSubresource2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageSubresource2 * forUnmarshaling)11586 void unmarshal_VkImageSubresource2(VulkanStreamGuest* vkStream, VkStructureType rootType,
11587                                    VkImageSubresource2* forUnmarshaling) {
11588     (void)rootType;
11589     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11590     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11591         rootType = forUnmarshaling->sType;
11592     }
11593     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11594     unmarshal_VkImageSubresource(vkStream, rootType,
11595                                  (VkImageSubresource*)(&forUnmarshaling->imageSubresource));
11596 }
11597 
marshal_VkDeviceImageSubresourceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceImageSubresourceInfo * forMarshaling)11598 void marshal_VkDeviceImageSubresourceInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11599                                           const VkDeviceImageSubresourceInfo* forMarshaling) {
11600     (void)rootType;
11601     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11602     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11603         rootType = forMarshaling->sType;
11604     }
11605     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11606     marshal_VkImageCreateInfo(vkStream, rootType,
11607                               (const VkImageCreateInfo*)(forMarshaling->pCreateInfo));
11608     marshal_VkImageSubresource2(vkStream, rootType,
11609                                 (const VkImageSubresource2*)(forMarshaling->pSubresource));
11610 }
11611 
unmarshal_VkDeviceImageSubresourceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceImageSubresourceInfo * forUnmarshaling)11612 void unmarshal_VkDeviceImageSubresourceInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11613                                             VkDeviceImageSubresourceInfo* forUnmarshaling) {
11614     (void)rootType;
11615     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11616     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11617         rootType = forUnmarshaling->sType;
11618     }
11619     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11620     unmarshal_VkImageCreateInfo(vkStream, rootType,
11621                                 (VkImageCreateInfo*)(forUnmarshaling->pCreateInfo));
11622     unmarshal_VkImageSubresource2(vkStream, rootType,
11623                                   (VkImageSubresource2*)(forUnmarshaling->pSubresource));
11624 }
11625 
marshal_VkSubresourceLayout2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceLayout2 * forMarshaling)11626 void marshal_VkSubresourceLayout2(VulkanStreamGuest* vkStream, VkStructureType rootType,
11627                                   const VkSubresourceLayout2* forMarshaling) {
11628     (void)rootType;
11629     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11630     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11631         rootType = forMarshaling->sType;
11632     }
11633     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11634     marshal_VkSubresourceLayout(vkStream, rootType,
11635                                 (VkSubresourceLayout*)(&forMarshaling->subresourceLayout));
11636 }
11637 
unmarshal_VkSubresourceLayout2(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubresourceLayout2 * forUnmarshaling)11638 void unmarshal_VkSubresourceLayout2(VulkanStreamGuest* vkStream, VkStructureType rootType,
11639                                     VkSubresourceLayout2* forUnmarshaling) {
11640     (void)rootType;
11641     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11642     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11643         rootType = forUnmarshaling->sType;
11644     }
11645     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11646     unmarshal_VkSubresourceLayout(vkStream, rootType,
11647                                   (VkSubresourceLayout*)(&forUnmarshaling->subresourceLayout));
11648 }
11649 
marshal_VkPipelineCreateFlags2CreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCreateFlags2CreateInfo * forMarshaling)11650 void marshal_VkPipelineCreateFlags2CreateInfo(
11651     VulkanStreamGuest* vkStream, VkStructureType rootType,
11652     const VkPipelineCreateFlags2CreateInfo* forMarshaling) {
11653     (void)rootType;
11654     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11655     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11656         rootType = forMarshaling->sType;
11657     }
11658     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11659     vkStream->write((VkPipelineCreateFlags2*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags2));
11660 }
11661 
unmarshal_VkPipelineCreateFlags2CreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineCreateFlags2CreateInfo * forUnmarshaling)11662 void unmarshal_VkPipelineCreateFlags2CreateInfo(VulkanStreamGuest* vkStream,
11663                                                 VkStructureType rootType,
11664                                                 VkPipelineCreateFlags2CreateInfo* forUnmarshaling) {
11665     (void)rootType;
11666     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11667     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11668         rootType = forUnmarshaling->sType;
11669     }
11670     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11671     vkStream->read((VkPipelineCreateFlags2*)&forUnmarshaling->flags,
11672                    sizeof(VkPipelineCreateFlags2));
11673 }
11674 
marshal_VkBufferUsageFlags2CreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferUsageFlags2CreateInfo * forMarshaling)11675 void marshal_VkBufferUsageFlags2CreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11676                                            const VkBufferUsageFlags2CreateInfo* forMarshaling) {
11677     (void)rootType;
11678     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11679     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11680         rootType = forMarshaling->sType;
11681     }
11682     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11683     vkStream->write((VkBufferUsageFlags2*)&forMarshaling->usage, sizeof(VkBufferUsageFlags2));
11684 }
11685 
unmarshal_VkBufferUsageFlags2CreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferUsageFlags2CreateInfo * forUnmarshaling)11686 void unmarshal_VkBufferUsageFlags2CreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11687                                              VkBufferUsageFlags2CreateInfo* forUnmarshaling) {
11688     (void)rootType;
11689     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11690     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11691         rootType = forUnmarshaling->sType;
11692     }
11693     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11694     vkStream->read((VkBufferUsageFlags2*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags2));
11695 }
11696 
marshal_VkPhysicalDevicePushDescriptorProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePushDescriptorProperties * forMarshaling)11697 void marshal_VkPhysicalDevicePushDescriptorProperties(
11698     VulkanStreamGuest* vkStream, VkStructureType rootType,
11699     const VkPhysicalDevicePushDescriptorProperties* forMarshaling) {
11700     (void)rootType;
11701     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11702     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11703         rootType = forMarshaling->sType;
11704     }
11705     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11706     vkStream->write((uint32_t*)&forMarshaling->maxPushDescriptors, sizeof(uint32_t));
11707 }
11708 
unmarshal_VkPhysicalDevicePushDescriptorProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePushDescriptorProperties * forUnmarshaling)11709 void unmarshal_VkPhysicalDevicePushDescriptorProperties(
11710     VulkanStreamGuest* vkStream, VkStructureType rootType,
11711     VkPhysicalDevicePushDescriptorProperties* forUnmarshaling) {
11712     (void)rootType;
11713     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11714     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11715         rootType = forUnmarshaling->sType;
11716     }
11717     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11718     vkStream->read((uint32_t*)&forUnmarshaling->maxPushDescriptors, sizeof(uint32_t));
11719 }
11720 
marshal_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDynamicRenderingLocalReadFeatures * forMarshaling)11721 void marshal_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(
11722     VulkanStreamGuest* vkStream, VkStructureType rootType,
11723     const VkPhysicalDeviceDynamicRenderingLocalReadFeatures* forMarshaling) {
11724     (void)rootType;
11725     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11726     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11727         rootType = forMarshaling->sType;
11728     }
11729     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11730     vkStream->write((VkBool32*)&forMarshaling->dynamicRenderingLocalRead, sizeof(VkBool32));
11731 }
11732 
unmarshal_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDynamicRenderingLocalReadFeatures * forUnmarshaling)11733 void unmarshal_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(
11734     VulkanStreamGuest* vkStream, VkStructureType rootType,
11735     VkPhysicalDeviceDynamicRenderingLocalReadFeatures* forUnmarshaling) {
11736     (void)rootType;
11737     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11738     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11739         rootType = forUnmarshaling->sType;
11740     }
11741     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11742     vkStream->read((VkBool32*)&forUnmarshaling->dynamicRenderingLocalRead, sizeof(VkBool32));
11743 }
11744 
marshal_VkRenderingAttachmentLocationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingAttachmentLocationInfo * forMarshaling)11745 void marshal_VkRenderingAttachmentLocationInfo(
11746     VulkanStreamGuest* vkStream, VkStructureType rootType,
11747     const VkRenderingAttachmentLocationInfo* forMarshaling) {
11748     (void)rootType;
11749     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11750     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11751         rootType = forMarshaling->sType;
11752     }
11753     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11754     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
11755     // WARNING PTR CHECK
11756     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentLocations;
11757     vkStream->putBe64(cgen_var_0);
11758     if (forMarshaling->pColorAttachmentLocations) {
11759         vkStream->write((const uint32_t*)forMarshaling->pColorAttachmentLocations,
11760                         forMarshaling->colorAttachmentCount * sizeof(const uint32_t));
11761     }
11762 }
11763 
unmarshal_VkRenderingAttachmentLocationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingAttachmentLocationInfo * forUnmarshaling)11764 void unmarshal_VkRenderingAttachmentLocationInfo(
11765     VulkanStreamGuest* vkStream, VkStructureType rootType,
11766     VkRenderingAttachmentLocationInfo* forUnmarshaling) {
11767     (void)rootType;
11768     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11769     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11770         rootType = forUnmarshaling->sType;
11771     }
11772     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11773     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
11774     // WARNING PTR CHECK
11775     const uint32_t* check_pColorAttachmentLocations;
11776     check_pColorAttachmentLocations = (const uint32_t*)(uintptr_t)vkStream->getBe64();
11777     if (forUnmarshaling->pColorAttachmentLocations) {
11778         if (!(check_pColorAttachmentLocations)) {
11779             fprintf(stderr,
11780                     "fatal: forUnmarshaling->pColorAttachmentLocations inconsistent between guest "
11781                     "and host\n");
11782         }
11783         vkStream->read((uint32_t*)forUnmarshaling->pColorAttachmentLocations,
11784                        forUnmarshaling->colorAttachmentCount * sizeof(const uint32_t));
11785     }
11786 }
11787 
marshal_VkRenderingInputAttachmentIndexInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingInputAttachmentIndexInfo * forMarshaling)11788 void marshal_VkRenderingInputAttachmentIndexInfo(
11789     VulkanStreamGuest* vkStream, VkStructureType rootType,
11790     const VkRenderingInputAttachmentIndexInfo* forMarshaling) {
11791     (void)rootType;
11792     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11793     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11794         rootType = forMarshaling->sType;
11795     }
11796     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11797     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
11798     // WARNING PTR CHECK
11799     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentInputIndices;
11800     vkStream->putBe64(cgen_var_0);
11801     if (forMarshaling->pColorAttachmentInputIndices) {
11802         vkStream->write((const uint32_t*)forMarshaling->pColorAttachmentInputIndices,
11803                         forMarshaling->colorAttachmentCount * sizeof(const uint32_t));
11804     }
11805     // WARNING PTR CHECK
11806     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthInputAttachmentIndex;
11807     vkStream->putBe64(cgen_var_1);
11808     if (forMarshaling->pDepthInputAttachmentIndex) {
11809         vkStream->write((const uint32_t*)forMarshaling->pDepthInputAttachmentIndex,
11810                         sizeof(const uint32_t));
11811     }
11812     // WARNING PTR CHECK
11813     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pStencilInputAttachmentIndex;
11814     vkStream->putBe64(cgen_var_2);
11815     if (forMarshaling->pStencilInputAttachmentIndex) {
11816         vkStream->write((const uint32_t*)forMarshaling->pStencilInputAttachmentIndex,
11817                         sizeof(const uint32_t));
11818     }
11819 }
11820 
unmarshal_VkRenderingInputAttachmentIndexInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingInputAttachmentIndexInfo * forUnmarshaling)11821 void unmarshal_VkRenderingInputAttachmentIndexInfo(
11822     VulkanStreamGuest* vkStream, VkStructureType rootType,
11823     VkRenderingInputAttachmentIndexInfo* forUnmarshaling) {
11824     (void)rootType;
11825     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11826     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11827         rootType = forUnmarshaling->sType;
11828     }
11829     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11830     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
11831     // WARNING PTR CHECK
11832     const uint32_t* check_pColorAttachmentInputIndices;
11833     check_pColorAttachmentInputIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
11834     if (forUnmarshaling->pColorAttachmentInputIndices) {
11835         if (!(check_pColorAttachmentInputIndices)) {
11836             fprintf(stderr,
11837                     "fatal: forUnmarshaling->pColorAttachmentInputIndices inconsistent between "
11838                     "guest and host\n");
11839         }
11840         vkStream->read((uint32_t*)forUnmarshaling->pColorAttachmentInputIndices,
11841                        forUnmarshaling->colorAttachmentCount * sizeof(const uint32_t));
11842     }
11843     // WARNING PTR CHECK
11844     const uint32_t* check_pDepthInputAttachmentIndex;
11845     check_pDepthInputAttachmentIndex = (const uint32_t*)(uintptr_t)vkStream->getBe64();
11846     if (forUnmarshaling->pDepthInputAttachmentIndex) {
11847         if (!(check_pDepthInputAttachmentIndex)) {
11848             fprintf(stderr,
11849                     "fatal: forUnmarshaling->pDepthInputAttachmentIndex inconsistent between guest "
11850                     "and host\n");
11851         }
11852         vkStream->read((uint32_t*)forUnmarshaling->pDepthInputAttachmentIndex,
11853                        sizeof(const uint32_t));
11854     }
11855     // WARNING PTR CHECK
11856     const uint32_t* check_pStencilInputAttachmentIndex;
11857     check_pStencilInputAttachmentIndex = (const uint32_t*)(uintptr_t)vkStream->getBe64();
11858     if (forUnmarshaling->pStencilInputAttachmentIndex) {
11859         if (!(check_pStencilInputAttachmentIndex)) {
11860             fprintf(stderr,
11861                     "fatal: forUnmarshaling->pStencilInputAttachmentIndex inconsistent between "
11862                     "guest and host\n");
11863         }
11864         vkStream->read((uint32_t*)forUnmarshaling->pStencilInputAttachmentIndex,
11865                        sizeof(const uint32_t));
11866     }
11867 }
11868 
marshal_VkPhysicalDeviceMaintenance6Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance6Features * forMarshaling)11869 void marshal_VkPhysicalDeviceMaintenance6Features(
11870     VulkanStreamGuest* vkStream, VkStructureType rootType,
11871     const VkPhysicalDeviceMaintenance6Features* forMarshaling) {
11872     (void)rootType;
11873     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11874     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11875         rootType = forMarshaling->sType;
11876     }
11877     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11878     vkStream->write((VkBool32*)&forMarshaling->maintenance6, sizeof(VkBool32));
11879 }
11880 
unmarshal_VkPhysicalDeviceMaintenance6Features(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance6Features * forUnmarshaling)11881 void unmarshal_VkPhysicalDeviceMaintenance6Features(
11882     VulkanStreamGuest* vkStream, VkStructureType rootType,
11883     VkPhysicalDeviceMaintenance6Features* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11890     vkStream->read((VkBool32*)&forUnmarshaling->maintenance6, sizeof(VkBool32));
11891 }
11892 
marshal_VkPhysicalDeviceMaintenance6Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance6Properties * forMarshaling)11893 void marshal_VkPhysicalDeviceMaintenance6Properties(
11894     VulkanStreamGuest* vkStream, VkStructureType rootType,
11895     const VkPhysicalDeviceMaintenance6Properties* forMarshaling) {
11896     (void)rootType;
11897     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11898     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11899         rootType = forMarshaling->sType;
11900     }
11901     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11902     vkStream->write((VkBool32*)&forMarshaling->blockTexelViewCompatibleMultipleLayers,
11903                     sizeof(VkBool32));
11904     vkStream->write((uint32_t*)&forMarshaling->maxCombinedImageSamplerDescriptorCount,
11905                     sizeof(uint32_t));
11906     vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateClampCombinerInputs,
11907                     sizeof(VkBool32));
11908 }
11909 
unmarshal_VkPhysicalDeviceMaintenance6Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance6Properties * forUnmarshaling)11910 void unmarshal_VkPhysicalDeviceMaintenance6Properties(
11911     VulkanStreamGuest* vkStream, VkStructureType rootType,
11912     VkPhysicalDeviceMaintenance6Properties* forUnmarshaling) {
11913     (void)rootType;
11914     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11915     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11916         rootType = forUnmarshaling->sType;
11917     }
11918     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11919     vkStream->read((VkBool32*)&forUnmarshaling->blockTexelViewCompatibleMultipleLayers,
11920                    sizeof(VkBool32));
11921     vkStream->read((uint32_t*)&forUnmarshaling->maxCombinedImageSamplerDescriptorCount,
11922                    sizeof(uint32_t));
11923     vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateClampCombinerInputs,
11924                    sizeof(VkBool32));
11925 }
11926 
marshal_VkBindMemoryStatus(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindMemoryStatus * forMarshaling)11927 void marshal_VkBindMemoryStatus(VulkanStreamGuest* vkStream, VkStructureType rootType,
11928                                 const VkBindMemoryStatus* forMarshaling) {
11929     (void)rootType;
11930     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11931     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11932         rootType = forMarshaling->sType;
11933     }
11934     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11935     vkStream->write((VkResult*)forMarshaling->pResult, sizeof(VkResult));
11936 }
11937 
unmarshal_VkBindMemoryStatus(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindMemoryStatus * forUnmarshaling)11938 void unmarshal_VkBindMemoryStatus(VulkanStreamGuest* vkStream, VkStructureType rootType,
11939                                   VkBindMemoryStatus* forUnmarshaling) {
11940     (void)rootType;
11941     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11942     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11943         rootType = forUnmarshaling->sType;
11944     }
11945     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11946     vkStream->read((VkResult*)forUnmarshaling->pResult, sizeof(VkResult));
11947 }
11948 
marshal_VkBindDescriptorSetsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindDescriptorSetsInfo * forMarshaling)11949 void marshal_VkBindDescriptorSetsInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11950                                       const VkBindDescriptorSetsInfo* forMarshaling) {
11951     (void)rootType;
11952     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11953     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11954         rootType = forMarshaling->sType;
11955     }
11956     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11957     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
11958     uint64_t cgen_var_0;
11959     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0,
11960                                                                1);
11961     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11962     vkStream->write((uint32_t*)&forMarshaling->firstSet, sizeof(uint32_t));
11963     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
11964     if (forMarshaling->descriptorSetCount) {
11965         uint64_t* cgen_var_1;
11966         vkStream->alloc((void**)&cgen_var_1, forMarshaling->descriptorSetCount * 8);
11967         vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(
11968             forMarshaling->pDescriptorSets, cgen_var_1, forMarshaling->descriptorSetCount);
11969         vkStream->write((uint64_t*)cgen_var_1, forMarshaling->descriptorSetCount * 8);
11970     }
11971     vkStream->write((uint32_t*)&forMarshaling->dynamicOffsetCount, sizeof(uint32_t));
11972     // WARNING PTR CHECK
11973     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pDynamicOffsets;
11974     vkStream->putBe64(cgen_var_2);
11975     if (forMarshaling->pDynamicOffsets) {
11976         vkStream->write((const uint32_t*)forMarshaling->pDynamicOffsets,
11977                         forMarshaling->dynamicOffsetCount * sizeof(const uint32_t));
11978     }
11979 }
11980 
unmarshal_VkBindDescriptorSetsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBindDescriptorSetsInfo * forUnmarshaling)11981 void unmarshal_VkBindDescriptorSetsInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
11982                                         VkBindDescriptorSetsInfo* forUnmarshaling) {
11983     (void)rootType;
11984     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11985     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11986         rootType = forUnmarshaling->sType;
11987     }
11988     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11989     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
11990     uint64_t cgen_var_0;
11991     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11992     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
11993         &cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
11994     vkStream->read((uint32_t*)&forUnmarshaling->firstSet, sizeof(uint32_t));
11995     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
11996     if (forUnmarshaling->descriptorSetCount) {
11997         uint64_t* cgen_var_1;
11998         vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
11999         vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
12000         vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(
12001             cgen_var_1, (VkDescriptorSet*)forUnmarshaling->pDescriptorSets,
12002             forUnmarshaling->descriptorSetCount);
12003     }
12004     vkStream->read((uint32_t*)&forUnmarshaling->dynamicOffsetCount, sizeof(uint32_t));
12005     // WARNING PTR CHECK
12006     const uint32_t* check_pDynamicOffsets;
12007     check_pDynamicOffsets = (const uint32_t*)(uintptr_t)vkStream->getBe64();
12008     if (forUnmarshaling->pDynamicOffsets) {
12009         if (!(check_pDynamicOffsets)) {
12010             fprintf(
12011                 stderr,
12012                 "fatal: forUnmarshaling->pDynamicOffsets inconsistent between guest and host\n");
12013         }
12014         vkStream->read((uint32_t*)forUnmarshaling->pDynamicOffsets,
12015                        forUnmarshaling->dynamicOffsetCount * sizeof(const uint32_t));
12016     }
12017 }
12018 
marshal_VkPushConstantsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPushConstantsInfo * forMarshaling)12019 void marshal_VkPushConstantsInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12020                                  const VkPushConstantsInfo* forMarshaling) {
12021     (void)rootType;
12022     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12023     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12024         rootType = forMarshaling->sType;
12025     }
12026     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12027     uint64_t cgen_var_0;
12028     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0,
12029                                                                1);
12030     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12031     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
12032     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
12033     vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
12034     vkStream->write((const void*)forMarshaling->pValues,
12035                     forMarshaling->size * sizeof(const uint8_t));
12036 }
12037 
unmarshal_VkPushConstantsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPushConstantsInfo * forUnmarshaling)12038 void unmarshal_VkPushConstantsInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12039                                    VkPushConstantsInfo* forUnmarshaling) {
12040     (void)rootType;
12041     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12042     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12043         rootType = forUnmarshaling->sType;
12044     }
12045     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12046     uint64_t cgen_var_0;
12047     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12048     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
12049         &cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
12050     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
12051     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
12052     vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
12053     vkStream->read((void*)forUnmarshaling->pValues, forUnmarshaling->size * sizeof(const uint8_t));
12054 }
12055 
marshal_VkPushDescriptorSetInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPushDescriptorSetInfo * forMarshaling)12056 void marshal_VkPushDescriptorSetInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12057                                      const VkPushDescriptorSetInfo* forMarshaling) {
12058     (void)rootType;
12059     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12060     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12061         rootType = forMarshaling->sType;
12062     }
12063     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12064     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
12065     uint64_t cgen_var_0;
12066     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0,
12067                                                                1);
12068     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12069     vkStream->write((uint32_t*)&forMarshaling->set, sizeof(uint32_t));
12070     vkStream->write((uint32_t*)&forMarshaling->descriptorWriteCount, sizeof(uint32_t));
12071     if (forMarshaling) {
12072         for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorWriteCount; ++i) {
12073             marshal_VkWriteDescriptorSet(
12074                 vkStream, rootType,
12075                 (const VkWriteDescriptorSet*)(forMarshaling->pDescriptorWrites + i));
12076         }
12077     }
12078 }
12079 
unmarshal_VkPushDescriptorSetInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPushDescriptorSetInfo * forUnmarshaling)12080 void unmarshal_VkPushDescriptorSetInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12081                                        VkPushDescriptorSetInfo* forUnmarshaling) {
12082     (void)rootType;
12083     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12084     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12085         rootType = forUnmarshaling->sType;
12086     }
12087     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12088     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
12089     uint64_t cgen_var_0;
12090     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12091     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
12092         &cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
12093     vkStream->read((uint32_t*)&forUnmarshaling->set, sizeof(uint32_t));
12094     vkStream->read((uint32_t*)&forUnmarshaling->descriptorWriteCount, sizeof(uint32_t));
12095     if (forUnmarshaling) {
12096         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorWriteCount; ++i) {
12097             unmarshal_VkWriteDescriptorSet(
12098                 vkStream, rootType,
12099                 (VkWriteDescriptorSet*)(forUnmarshaling->pDescriptorWrites + i));
12100         }
12101     }
12102 }
12103 
marshal_VkPushDescriptorSetWithTemplateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPushDescriptorSetWithTemplateInfo * forMarshaling)12104 void marshal_VkPushDescriptorSetWithTemplateInfo(
12105     VulkanStreamGuest* vkStream, VkStructureType rootType,
12106     const VkPushDescriptorSetWithTemplateInfo* forMarshaling) {
12107     (void)rootType;
12108     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12109     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12110         rootType = forMarshaling->sType;
12111     }
12112     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12113     uint64_t cgen_var_0;
12114     vkStream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(
12115         &forMarshaling->descriptorUpdateTemplate, &cgen_var_0, 1);
12116     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12117     uint64_t cgen_var_1;
12118     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_1,
12119                                                                1);
12120     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
12121     vkStream->write((uint32_t*)&forMarshaling->set, sizeof(uint32_t));
12122     vkStream->write((const void*)forMarshaling->pData, sizeof(const uint8_t));
12123 }
12124 
unmarshal_VkPushDescriptorSetWithTemplateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPushDescriptorSetWithTemplateInfo * forUnmarshaling)12125 void unmarshal_VkPushDescriptorSetWithTemplateInfo(
12126     VulkanStreamGuest* vkStream, VkStructureType rootType,
12127     VkPushDescriptorSetWithTemplateInfo* forUnmarshaling) {
12128     (void)rootType;
12129     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12130     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12131         rootType = forUnmarshaling->sType;
12132     }
12133     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12134     uint64_t cgen_var_0;
12135     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12136     vkStream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(
12137         &cgen_var_0, (VkDescriptorUpdateTemplate*)&forUnmarshaling->descriptorUpdateTemplate, 1);
12138     uint64_t cgen_var_1;
12139     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12140     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(
12141         &cgen_var_1, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
12142     vkStream->read((uint32_t*)&forUnmarshaling->set, sizeof(uint32_t));
12143     vkStream->read((void*)forUnmarshaling->pData, sizeof(const uint8_t));
12144 }
12145 
marshal_VkPhysicalDevicePipelineProtectedAccessFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineProtectedAccessFeatures * forMarshaling)12146 void marshal_VkPhysicalDevicePipelineProtectedAccessFeatures(
12147     VulkanStreamGuest* vkStream, VkStructureType rootType,
12148     const VkPhysicalDevicePipelineProtectedAccessFeatures* forMarshaling) {
12149     (void)rootType;
12150     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12151     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12152         rootType = forMarshaling->sType;
12153     }
12154     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12155     vkStream->write((VkBool32*)&forMarshaling->pipelineProtectedAccess, sizeof(VkBool32));
12156 }
12157 
unmarshal_VkPhysicalDevicePipelineProtectedAccessFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineProtectedAccessFeatures * forUnmarshaling)12158 void unmarshal_VkPhysicalDevicePipelineProtectedAccessFeatures(
12159     VulkanStreamGuest* vkStream, VkStructureType rootType,
12160     VkPhysicalDevicePipelineProtectedAccessFeatures* forUnmarshaling) {
12161     (void)rootType;
12162     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12163     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12164         rootType = forUnmarshaling->sType;
12165     }
12166     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12167     vkStream->read((VkBool32*)&forUnmarshaling->pipelineProtectedAccess, sizeof(VkBool32));
12168 }
12169 
marshal_VkPhysicalDevicePipelineRobustnessFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineRobustnessFeatures * forMarshaling)12170 void marshal_VkPhysicalDevicePipelineRobustnessFeatures(
12171     VulkanStreamGuest* vkStream, VkStructureType rootType,
12172     const VkPhysicalDevicePipelineRobustnessFeatures* forMarshaling) {
12173     (void)rootType;
12174     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12175     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12176         rootType = forMarshaling->sType;
12177     }
12178     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12179     vkStream->write((VkBool32*)&forMarshaling->pipelineRobustness, sizeof(VkBool32));
12180 }
12181 
unmarshal_VkPhysicalDevicePipelineRobustnessFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineRobustnessFeatures * forUnmarshaling)12182 void unmarshal_VkPhysicalDevicePipelineRobustnessFeatures(
12183     VulkanStreamGuest* vkStream, VkStructureType rootType,
12184     VkPhysicalDevicePipelineRobustnessFeatures* forUnmarshaling) {
12185     (void)rootType;
12186     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12187     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12188         rootType = forUnmarshaling->sType;
12189     }
12190     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12191     vkStream->read((VkBool32*)&forUnmarshaling->pipelineRobustness, sizeof(VkBool32));
12192 }
12193 
marshal_VkPhysicalDevicePipelineRobustnessProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineRobustnessProperties * forMarshaling)12194 void marshal_VkPhysicalDevicePipelineRobustnessProperties(
12195     VulkanStreamGuest* vkStream, VkStructureType rootType,
12196     const VkPhysicalDevicePipelineRobustnessProperties* forMarshaling) {
12197     (void)rootType;
12198     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12199     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12200         rootType = forMarshaling->sType;
12201     }
12202     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12203     vkStream->write(
12204         (VkPipelineRobustnessBufferBehavior*)&forMarshaling->defaultRobustnessStorageBuffers,
12205         sizeof(VkPipelineRobustnessBufferBehavior));
12206     vkStream->write(
12207         (VkPipelineRobustnessBufferBehavior*)&forMarshaling->defaultRobustnessUniformBuffers,
12208         sizeof(VkPipelineRobustnessBufferBehavior));
12209     vkStream->write(
12210         (VkPipelineRobustnessBufferBehavior*)&forMarshaling->defaultRobustnessVertexInputs,
12211         sizeof(VkPipelineRobustnessBufferBehavior));
12212     vkStream->write((VkPipelineRobustnessImageBehavior*)&forMarshaling->defaultRobustnessImages,
12213                     sizeof(VkPipelineRobustnessImageBehavior));
12214 }
12215 
unmarshal_VkPhysicalDevicePipelineRobustnessProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineRobustnessProperties * forUnmarshaling)12216 void unmarshal_VkPhysicalDevicePipelineRobustnessProperties(
12217     VulkanStreamGuest* vkStream, VkStructureType rootType,
12218     VkPhysicalDevicePipelineRobustnessProperties* forUnmarshaling) {
12219     (void)rootType;
12220     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12221     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12222         rootType = forUnmarshaling->sType;
12223     }
12224     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12225     vkStream->read(
12226         (VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->defaultRobustnessStorageBuffers,
12227         sizeof(VkPipelineRobustnessBufferBehavior));
12228     vkStream->read(
12229         (VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->defaultRobustnessUniformBuffers,
12230         sizeof(VkPipelineRobustnessBufferBehavior));
12231     vkStream->read(
12232         (VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->defaultRobustnessVertexInputs,
12233         sizeof(VkPipelineRobustnessBufferBehavior));
12234     vkStream->read((VkPipelineRobustnessImageBehavior*)&forUnmarshaling->defaultRobustnessImages,
12235                    sizeof(VkPipelineRobustnessImageBehavior));
12236 }
12237 
marshal_VkPipelineRobustnessCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRobustnessCreateInfo * forMarshaling)12238 void marshal_VkPipelineRobustnessCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12239                                             const VkPipelineRobustnessCreateInfo* forMarshaling) {
12240     (void)rootType;
12241     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12243         rootType = forMarshaling->sType;
12244     }
12245     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12246     vkStream->write((VkPipelineRobustnessBufferBehavior*)&forMarshaling->storageBuffers,
12247                     sizeof(VkPipelineRobustnessBufferBehavior));
12248     vkStream->write((VkPipelineRobustnessBufferBehavior*)&forMarshaling->uniformBuffers,
12249                     sizeof(VkPipelineRobustnessBufferBehavior));
12250     vkStream->write((VkPipelineRobustnessBufferBehavior*)&forMarshaling->vertexInputs,
12251                     sizeof(VkPipelineRobustnessBufferBehavior));
12252     vkStream->write((VkPipelineRobustnessImageBehavior*)&forMarshaling->images,
12253                     sizeof(VkPipelineRobustnessImageBehavior));
12254 }
12255 
unmarshal_VkPipelineRobustnessCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRobustnessCreateInfo * forUnmarshaling)12256 void unmarshal_VkPipelineRobustnessCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12257                                               VkPipelineRobustnessCreateInfo* forUnmarshaling) {
12258     (void)rootType;
12259     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12260     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12261         rootType = forUnmarshaling->sType;
12262     }
12263     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12264     vkStream->read((VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->storageBuffers,
12265                    sizeof(VkPipelineRobustnessBufferBehavior));
12266     vkStream->read((VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->uniformBuffers,
12267                    sizeof(VkPipelineRobustnessBufferBehavior));
12268     vkStream->read((VkPipelineRobustnessBufferBehavior*)&forUnmarshaling->vertexInputs,
12269                    sizeof(VkPipelineRobustnessBufferBehavior));
12270     vkStream->read((VkPipelineRobustnessImageBehavior*)&forUnmarshaling->images,
12271                    sizeof(VkPipelineRobustnessImageBehavior));
12272 }
12273 
marshal_VkPhysicalDeviceHostImageCopyFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyFeatures * forMarshaling)12274 void marshal_VkPhysicalDeviceHostImageCopyFeatures(
12275     VulkanStreamGuest* vkStream, VkStructureType rootType,
12276     const VkPhysicalDeviceHostImageCopyFeatures* forMarshaling) {
12277     (void)rootType;
12278     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12279     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12280         rootType = forMarshaling->sType;
12281     }
12282     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12283     vkStream->write((VkBool32*)&forMarshaling->hostImageCopy, sizeof(VkBool32));
12284 }
12285 
unmarshal_VkPhysicalDeviceHostImageCopyFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceHostImageCopyFeatures * forUnmarshaling)12286 void unmarshal_VkPhysicalDeviceHostImageCopyFeatures(
12287     VulkanStreamGuest* vkStream, VkStructureType rootType,
12288     VkPhysicalDeviceHostImageCopyFeatures* forUnmarshaling) {
12289     (void)rootType;
12290     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12291     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12292         rootType = forUnmarshaling->sType;
12293     }
12294     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12295     vkStream->read((VkBool32*)&forUnmarshaling->hostImageCopy, sizeof(VkBool32));
12296 }
12297 
marshal_VkPhysicalDeviceHostImageCopyProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyProperties * forMarshaling)12298 void marshal_VkPhysicalDeviceHostImageCopyProperties(
12299     VulkanStreamGuest* vkStream, VkStructureType rootType,
12300     const VkPhysicalDeviceHostImageCopyProperties* forMarshaling) {
12301     (void)rootType;
12302     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12303     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12304         rootType = forMarshaling->sType;
12305     }
12306     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12307     vkStream->write((uint32_t*)&forMarshaling->copySrcLayoutCount, sizeof(uint32_t));
12308     // WARNING PTR CHECK
12309     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCopySrcLayouts;
12310     vkStream->putBe64(cgen_var_0);
12311     if (forMarshaling->pCopySrcLayouts) {
12312         vkStream->write((VkImageLayout*)forMarshaling->pCopySrcLayouts,
12313                         forMarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
12314     }
12315     vkStream->write((uint32_t*)&forMarshaling->copyDstLayoutCount, sizeof(uint32_t));
12316     // WARNING PTR CHECK
12317     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pCopyDstLayouts;
12318     vkStream->putBe64(cgen_var_1);
12319     if (forMarshaling->pCopyDstLayouts) {
12320         vkStream->write((VkImageLayout*)forMarshaling->pCopyDstLayouts,
12321                         forMarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
12322     }
12323     vkStream->write((uint8_t*)forMarshaling->optimalTilingLayoutUUID,
12324                     VK_UUID_SIZE * sizeof(uint8_t));
12325     vkStream->write((VkBool32*)&forMarshaling->identicalMemoryTypeRequirements, sizeof(VkBool32));
12326 }
12327 
unmarshal_VkPhysicalDeviceHostImageCopyProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceHostImageCopyProperties * forUnmarshaling)12328 void unmarshal_VkPhysicalDeviceHostImageCopyProperties(
12329     VulkanStreamGuest* vkStream, VkStructureType rootType,
12330     VkPhysicalDeviceHostImageCopyProperties* forUnmarshaling) {
12331     (void)rootType;
12332     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12333     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12334         rootType = forUnmarshaling->sType;
12335     }
12336     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12337     vkStream->read((uint32_t*)&forUnmarshaling->copySrcLayoutCount, sizeof(uint32_t));
12338     // WARNING PTR CHECK
12339     VkImageLayout* check_pCopySrcLayouts;
12340     check_pCopySrcLayouts = (VkImageLayout*)(uintptr_t)vkStream->getBe64();
12341     if (forUnmarshaling->pCopySrcLayouts) {
12342         if (!(check_pCopySrcLayouts)) {
12343             fprintf(
12344                 stderr,
12345                 "fatal: forUnmarshaling->pCopySrcLayouts inconsistent between guest and host\n");
12346         }
12347         vkStream->read((VkImageLayout*)forUnmarshaling->pCopySrcLayouts,
12348                        forUnmarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
12349     }
12350     vkStream->read((uint32_t*)&forUnmarshaling->copyDstLayoutCount, sizeof(uint32_t));
12351     // WARNING PTR CHECK
12352     VkImageLayout* check_pCopyDstLayouts;
12353     check_pCopyDstLayouts = (VkImageLayout*)(uintptr_t)vkStream->getBe64();
12354     if (forUnmarshaling->pCopyDstLayouts) {
12355         if (!(check_pCopyDstLayouts)) {
12356             fprintf(
12357                 stderr,
12358                 "fatal: forUnmarshaling->pCopyDstLayouts inconsistent between guest and host\n");
12359         }
12360         vkStream->read((VkImageLayout*)forUnmarshaling->pCopyDstLayouts,
12361                        forUnmarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
12362     }
12363     vkStream->read((uint8_t*)forUnmarshaling->optimalTilingLayoutUUID,
12364                    VK_UUID_SIZE * sizeof(uint8_t));
12365     vkStream->read((VkBool32*)&forUnmarshaling->identicalMemoryTypeRequirements, sizeof(VkBool32));
12366 }
12367 
marshal_VkMemoryToImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryToImageCopy * forMarshaling)12368 void marshal_VkMemoryToImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
12369                                  const VkMemoryToImageCopy* 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((const void*)forMarshaling->pHostPointer, sizeof(const uint8_t));
12377     vkStream->write((uint32_t*)&forMarshaling->memoryRowLength, sizeof(uint32_t));
12378     vkStream->write((uint32_t*)&forMarshaling->memoryImageHeight, sizeof(uint32_t));
12379     marshal_VkImageSubresourceLayers(vkStream, rootType,
12380                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
12381     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
12382     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
12383 }
12384 
unmarshal_VkMemoryToImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryToImageCopy * forUnmarshaling)12385 void unmarshal_VkMemoryToImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
12386                                    VkMemoryToImageCopy* forUnmarshaling) {
12387     (void)rootType;
12388     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12389     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12390         rootType = forUnmarshaling->sType;
12391     }
12392     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12393     vkStream->read((void*)forUnmarshaling->pHostPointer, sizeof(const uint8_t));
12394     vkStream->read((uint32_t*)&forUnmarshaling->memoryRowLength, sizeof(uint32_t));
12395     vkStream->read((uint32_t*)&forUnmarshaling->memoryImageHeight, sizeof(uint32_t));
12396     unmarshal_VkImageSubresourceLayers(
12397         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
12398     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
12399     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
12400 }
12401 
marshal_VkImageToMemoryCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageToMemoryCopy * forMarshaling)12402 void marshal_VkImageToMemoryCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
12403                                  const VkImageToMemoryCopy* forMarshaling) {
12404     (void)rootType;
12405     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12406     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12407         rootType = forMarshaling->sType;
12408     }
12409     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12410     vkStream->write((void*)forMarshaling->pHostPointer, sizeof(uint8_t));
12411     vkStream->write((uint32_t*)&forMarshaling->memoryRowLength, sizeof(uint32_t));
12412     vkStream->write((uint32_t*)&forMarshaling->memoryImageHeight, sizeof(uint32_t));
12413     marshal_VkImageSubresourceLayers(vkStream, rootType,
12414                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
12415     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
12416     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
12417 }
12418 
unmarshal_VkImageToMemoryCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageToMemoryCopy * forUnmarshaling)12419 void unmarshal_VkImageToMemoryCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
12420                                    VkImageToMemoryCopy* forUnmarshaling) {
12421     (void)rootType;
12422     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12423     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12424         rootType = forUnmarshaling->sType;
12425     }
12426     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12427     vkStream->read((void*)forUnmarshaling->pHostPointer, sizeof(uint8_t));
12428     vkStream->read((uint32_t*)&forUnmarshaling->memoryRowLength, sizeof(uint32_t));
12429     vkStream->read((uint32_t*)&forUnmarshaling->memoryImageHeight, sizeof(uint32_t));
12430     unmarshal_VkImageSubresourceLayers(
12431         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
12432     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
12433     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
12434 }
12435 
marshal_VkCopyMemoryToImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyMemoryToImageInfo * forMarshaling)12436 void marshal_VkCopyMemoryToImageInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12437                                      const VkCopyMemoryToImageInfo* forMarshaling) {
12438     (void)rootType;
12439     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12440     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12441         rootType = forMarshaling->sType;
12442     }
12443     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12444     vkStream->write((VkHostImageCopyFlags*)&forMarshaling->flags, sizeof(VkHostImageCopyFlags));
12445     uint64_t cgen_var_0;
12446     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_0, 1);
12447     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12448     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
12449     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12450     if (forMarshaling) {
12451         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12452             marshal_VkMemoryToImageCopy(vkStream, rootType,
12453                                         (const VkMemoryToImageCopy*)(forMarshaling->pRegions + i));
12454         }
12455     }
12456 }
12457 
unmarshal_VkCopyMemoryToImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyMemoryToImageInfo * forUnmarshaling)12458 void unmarshal_VkCopyMemoryToImageInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12459                                        VkCopyMemoryToImageInfo* forUnmarshaling) {
12460     (void)rootType;
12461     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12462     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12463         rootType = forUnmarshaling->sType;
12464     }
12465     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12466     vkStream->read((VkHostImageCopyFlags*)&forUnmarshaling->flags, sizeof(VkHostImageCopyFlags));
12467     uint64_t cgen_var_0;
12468     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12469     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12470                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
12471     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
12472     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12473     if (forUnmarshaling) {
12474         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12475             unmarshal_VkMemoryToImageCopy(vkStream, rootType,
12476                                           (VkMemoryToImageCopy*)(forUnmarshaling->pRegions + i));
12477         }
12478     }
12479 }
12480 
marshal_VkCopyImageToMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToMemoryInfo * forMarshaling)12481 void marshal_VkCopyImageToMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12482                                      const VkCopyImageToMemoryInfo* forMarshaling) {
12483     (void)rootType;
12484     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12485     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12486         rootType = forMarshaling->sType;
12487     }
12488     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12489     vkStream->write((VkHostImageCopyFlags*)&forMarshaling->flags, sizeof(VkHostImageCopyFlags));
12490     uint64_t cgen_var_0;
12491     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
12492     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12493     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
12494     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12495     if (forMarshaling) {
12496         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12497             marshal_VkImageToMemoryCopy(vkStream, rootType,
12498                                         (const VkImageToMemoryCopy*)(forMarshaling->pRegions + i));
12499         }
12500     }
12501 }
12502 
unmarshal_VkCopyImageToMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyImageToMemoryInfo * forUnmarshaling)12503 void unmarshal_VkCopyImageToMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12504                                        VkCopyImageToMemoryInfo* forUnmarshaling) {
12505     (void)rootType;
12506     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12507     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12508         rootType = forUnmarshaling->sType;
12509     }
12510     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12511     vkStream->read((VkHostImageCopyFlags*)&forUnmarshaling->flags, sizeof(VkHostImageCopyFlags));
12512     uint64_t cgen_var_0;
12513     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12514     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12515                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
12516     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
12517     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12518     if (forUnmarshaling) {
12519         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12520             unmarshal_VkImageToMemoryCopy(vkStream, rootType,
12521                                           (VkImageToMemoryCopy*)(forUnmarshaling->pRegions + i));
12522         }
12523     }
12524 }
12525 
marshal_VkCopyImageToImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToImageInfo * forMarshaling)12526 void marshal_VkCopyImageToImageInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12527                                     const VkCopyImageToImageInfo* forMarshaling) {
12528     (void)rootType;
12529     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12530     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12531         rootType = forMarshaling->sType;
12532     }
12533     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12534     vkStream->write((VkHostImageCopyFlags*)&forMarshaling->flags, sizeof(VkHostImageCopyFlags));
12535     uint64_t cgen_var_0;
12536     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
12537     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12538     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
12539     uint64_t cgen_var_1;
12540     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
12541     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
12542     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
12543     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12544     if (forMarshaling) {
12545         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12546             marshal_VkImageCopy2(vkStream, rootType,
12547                                  (const VkImageCopy2*)(forMarshaling->pRegions + i));
12548         }
12549     }
12550 }
12551 
unmarshal_VkCopyImageToImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyImageToImageInfo * forUnmarshaling)12552 void unmarshal_VkCopyImageToImageInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12553                                       VkCopyImageToImageInfo* forUnmarshaling) {
12554     (void)rootType;
12555     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12556     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12557         rootType = forUnmarshaling->sType;
12558     }
12559     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12560     vkStream->read((VkHostImageCopyFlags*)&forUnmarshaling->flags, sizeof(VkHostImageCopyFlags));
12561     uint64_t cgen_var_0;
12562     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12563     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12564                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
12565     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
12566     uint64_t cgen_var_1;
12567     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12568     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
12569                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
12570     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
12571     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12572     if (forUnmarshaling) {
12573         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12574             unmarshal_VkImageCopy2(vkStream, rootType,
12575                                    (VkImageCopy2*)(forUnmarshaling->pRegions + i));
12576         }
12577     }
12578 }
12579 
marshal_VkHostImageLayoutTransitionInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkHostImageLayoutTransitionInfo * forMarshaling)12580 void marshal_VkHostImageLayoutTransitionInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
12581                                              const VkHostImageLayoutTransitionInfo* forMarshaling) {
12582     (void)rootType;
12583     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12584     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12585         rootType = forMarshaling->sType;
12586     }
12587     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12588     uint64_t cgen_var_0;
12589     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
12590     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12591     vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
12592     vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
12593     marshal_VkImageSubresourceRange(vkStream, rootType,
12594                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
12595 }
12596 
unmarshal_VkHostImageLayoutTransitionInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,VkHostImageLayoutTransitionInfo * forUnmarshaling)12597 void unmarshal_VkHostImageLayoutTransitionInfo(VulkanStreamGuest* vkStream,
12598                                                VkStructureType rootType,
12599                                                VkHostImageLayoutTransitionInfo* forUnmarshaling) {
12600     (void)rootType;
12601     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12602     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12603         rootType = forUnmarshaling->sType;
12604     }
12605     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12606     uint64_t cgen_var_0;
12607     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12608     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12609                                                       (VkImage*)&forUnmarshaling->image, 1);
12610     vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
12611     vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
12612     unmarshal_VkImageSubresourceRange(
12613         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
12614 }
12615 
marshal_VkSubresourceHostMemcpySize(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceHostMemcpySize * forMarshaling)12616 void marshal_VkSubresourceHostMemcpySize(VulkanStreamGuest* vkStream, VkStructureType rootType,
12617                                          const VkSubresourceHostMemcpySize* forMarshaling) {
12618     (void)rootType;
12619     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12620     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12621         rootType = forMarshaling->sType;
12622     }
12623     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12624     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
12625 }
12626 
unmarshal_VkSubresourceHostMemcpySize(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubresourceHostMemcpySize * forUnmarshaling)12627 void unmarshal_VkSubresourceHostMemcpySize(VulkanStreamGuest* vkStream, VkStructureType rootType,
12628                                            VkSubresourceHostMemcpySize* forUnmarshaling) {
12629     (void)rootType;
12630     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12631     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12632         rootType = forUnmarshaling->sType;
12633     }
12634     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12635     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
12636 }
12637 
marshal_VkHostImageCopyDevicePerformanceQuery(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkHostImageCopyDevicePerformanceQuery * forMarshaling)12638 void marshal_VkHostImageCopyDevicePerformanceQuery(
12639     VulkanStreamGuest* vkStream, VkStructureType rootType,
12640     const VkHostImageCopyDevicePerformanceQuery* forMarshaling) {
12641     (void)rootType;
12642     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12643     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12644         rootType = forMarshaling->sType;
12645     }
12646     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12647     vkStream->write((VkBool32*)&forMarshaling->optimalDeviceAccess, sizeof(VkBool32));
12648     vkStream->write((VkBool32*)&forMarshaling->identicalMemoryLayout, sizeof(VkBool32));
12649 }
12650 
unmarshal_VkHostImageCopyDevicePerformanceQuery(VulkanStreamGuest * vkStream,VkStructureType rootType,VkHostImageCopyDevicePerformanceQuery * forUnmarshaling)12651 void unmarshal_VkHostImageCopyDevicePerformanceQuery(
12652     VulkanStreamGuest* vkStream, VkStructureType rootType,
12653     VkHostImageCopyDevicePerformanceQuery* forUnmarshaling) {
12654     (void)rootType;
12655     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12656     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12657         rootType = forUnmarshaling->sType;
12658     }
12659     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12660     vkStream->read((VkBool32*)&forUnmarshaling->optimalDeviceAccess, sizeof(VkBool32));
12661     vkStream->read((VkBool32*)&forUnmarshaling->identicalMemoryLayout, sizeof(VkBool32));
12662 }
12663 
12664 #endif
12665 #ifdef VK_KHR_external_semaphore_fd
marshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportSemaphoreFdInfoKHR * forMarshaling)12666 void marshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12667                                         const VkImportSemaphoreFdInfoKHR* forMarshaling) {
12668     (void)rootType;
12669     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12670     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12671         rootType = forMarshaling->sType;
12672     }
12673     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12674     uint64_t cgen_var_0;
12675     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
12676                                                           1);
12677     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12678     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
12679     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
12680                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
12681     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
12682 }
12683 
unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportSemaphoreFdInfoKHR * forUnmarshaling)12684 void unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12685                                           VkImportSemaphoreFdInfoKHR* forUnmarshaling) {
12686     (void)rootType;
12687     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12688     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12689         rootType = forUnmarshaling->sType;
12690     }
12691     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12692     uint64_t cgen_var_0;
12693     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12694     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
12695         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
12696     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags,
12697                    sizeof(VkSemaphoreImportFlags));
12698     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
12699                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
12700     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
12701 }
12702 
marshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreGetFdInfoKHR * forMarshaling)12703 void marshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12704                                      const VkSemaphoreGetFdInfoKHR* forMarshaling) {
12705     (void)rootType;
12706     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12707     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12708         rootType = forMarshaling->sType;
12709     }
12710     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12711     uint64_t cgen_var_0;
12712     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
12713                                                           1);
12714     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12715     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
12716                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
12717 }
12718 
unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSemaphoreGetFdInfoKHR * forUnmarshaling)12719 void unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12720                                        VkSemaphoreGetFdInfoKHR* forUnmarshaling) {
12721     (void)rootType;
12722     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12723     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12724         rootType = forUnmarshaling->sType;
12725     }
12726     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12727     uint64_t cgen_var_0;
12728     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12729     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
12730         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
12731     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
12732                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
12733 }
12734 
12735 #endif
12736 #ifdef VK_KHR_incremental_present
marshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRectLayerKHR * forMarshaling)12737 void marshal_VkRectLayerKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12738                             const VkRectLayerKHR* forMarshaling) {
12739     (void)rootType;
12740     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->offset));
12741     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->extent));
12742     vkStream->write((uint32_t*)&forMarshaling->layer, sizeof(uint32_t));
12743 }
12744 
unmarshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRectLayerKHR * forUnmarshaling)12745 void unmarshal_VkRectLayerKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12746                               VkRectLayerKHR* forUnmarshaling) {
12747     (void)rootType;
12748     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->offset));
12749     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->extent));
12750     vkStream->read((uint32_t*)&forUnmarshaling->layer, sizeof(uint32_t));
12751 }
12752 
marshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPresentRegionKHR * forMarshaling)12753 void marshal_VkPresentRegionKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12754                                 const VkPresentRegionKHR* forMarshaling) {
12755     (void)rootType;
12756     vkStream->write((uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
12757     // WARNING PTR CHECK
12758     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
12759     vkStream->putBe64(cgen_var_0);
12760     if (forMarshaling->pRectangles) {
12761         if (forMarshaling) {
12762             for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i) {
12763                 marshal_VkRectLayerKHR(vkStream, rootType,
12764                                        (const VkRectLayerKHR*)(forMarshaling->pRectangles + i));
12765             }
12766         }
12767     }
12768 }
12769 
unmarshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPresentRegionKHR * forUnmarshaling)12770 void unmarshal_VkPresentRegionKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12771                                   VkPresentRegionKHR* forUnmarshaling) {
12772     (void)rootType;
12773     vkStream->read((uint32_t*)&forUnmarshaling->rectangleCount, sizeof(uint32_t));
12774     // WARNING PTR CHECK
12775     const VkRectLayerKHR* check_pRectangles;
12776     check_pRectangles = (const VkRectLayerKHR*)(uintptr_t)vkStream->getBe64();
12777     if (forUnmarshaling->pRectangles) {
12778         if (!(check_pRectangles)) {
12779             fprintf(stderr,
12780                     "fatal: forUnmarshaling->pRectangles inconsistent between guest and host\n");
12781         }
12782         if (forUnmarshaling) {
12783             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i) {
12784                 unmarshal_VkRectLayerKHR(vkStream, rootType,
12785                                          (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i));
12786             }
12787         }
12788     }
12789 }
12790 
marshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPresentRegionsKHR * forMarshaling)12791 void marshal_VkPresentRegionsKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12792                                  const VkPresentRegionsKHR* forMarshaling) {
12793     (void)rootType;
12794     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12795     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12796         rootType = forMarshaling->sType;
12797     }
12798     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12799     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
12800     // WARNING PTR CHECK
12801     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
12802     vkStream->putBe64(cgen_var_0);
12803     if (forMarshaling->pRegions) {
12804         if (forMarshaling) {
12805             for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i) {
12806                 marshal_VkPresentRegionKHR(
12807                     vkStream, rootType, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i));
12808             }
12809         }
12810     }
12811 }
12812 
unmarshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPresentRegionsKHR * forUnmarshaling)12813 void unmarshal_VkPresentRegionsKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12814                                    VkPresentRegionsKHR* forUnmarshaling) {
12815     (void)rootType;
12816     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12817     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12818         rootType = forUnmarshaling->sType;
12819     }
12820     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12821     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
12822     // WARNING PTR CHECK
12823     const VkPresentRegionKHR* check_pRegions;
12824     check_pRegions = (const VkPresentRegionKHR*)(uintptr_t)vkStream->getBe64();
12825     if (forUnmarshaling->pRegions) {
12826         if (!(check_pRegions)) {
12827             fprintf(stderr,
12828                     "fatal: forUnmarshaling->pRegions inconsistent between guest and host\n");
12829         }
12830         if (forUnmarshaling) {
12831             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i) {
12832                 unmarshal_VkPresentRegionKHR(vkStream, rootType,
12833                                              (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i));
12834             }
12835         }
12836     }
12837 }
12838 
12839 #endif
12840 #ifdef VK_KHR_external_fence_fd
marshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportFenceFdInfoKHR * forMarshaling)12841 void marshal_VkImportFenceFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12842                                     const VkImportFenceFdInfoKHR* forMarshaling) {
12843     (void)rootType;
12844     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12845     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12846         rootType = forMarshaling->sType;
12847     }
12848     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12849     uint64_t cgen_var_0;
12850     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
12851     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12852     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
12853     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
12854                     sizeof(VkExternalFenceHandleTypeFlagBits));
12855     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
12856 }
12857 
unmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportFenceFdInfoKHR * forUnmarshaling)12858 void unmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12859                                       VkImportFenceFdInfoKHR* forUnmarshaling) {
12860     (void)rootType;
12861     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12862     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12863         rootType = forUnmarshaling->sType;
12864     }
12865     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12866     uint64_t cgen_var_0;
12867     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12868     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
12869                                                       (VkFence*)&forUnmarshaling->fence, 1);
12870     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
12871     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
12872                    sizeof(VkExternalFenceHandleTypeFlagBits));
12873     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
12874 }
12875 
marshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFenceGetFdInfoKHR * forMarshaling)12876 void marshal_VkFenceGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12877                                  const VkFenceGetFdInfoKHR* forMarshaling) {
12878     (void)rootType;
12879     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12881         rootType = forMarshaling->sType;
12882     }
12883     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12884     uint64_t cgen_var_0;
12885     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
12886     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12887     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
12888                     sizeof(VkExternalFenceHandleTypeFlagBits));
12889 }
12890 
unmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFenceGetFdInfoKHR * forUnmarshaling)12891 void unmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12892                                    VkFenceGetFdInfoKHR* forUnmarshaling) {
12893     (void)rootType;
12894     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12895     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12896         rootType = forUnmarshaling->sType;
12897     }
12898     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12899     uint64_t cgen_var_0;
12900     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12901     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
12902                                                       (VkFence*)&forUnmarshaling->fence, 1);
12903     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
12904                    sizeof(VkExternalFenceHandleTypeFlagBits));
12905 }
12906 
12907 #endif
12908 #ifdef VK_KHR_pipeline_executable_properties
marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forMarshaling)12909 void marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
12910     VulkanStreamGuest* vkStream, VkStructureType rootType,
12911     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling) {
12912     (void)rootType;
12913     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12914     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12915         rootType = forMarshaling->sType;
12916     }
12917     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12918     vkStream->write((VkBool32*)&forMarshaling->pipelineExecutableInfo, sizeof(VkBool32));
12919 }
12920 
unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forUnmarshaling)12921 void unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
12922     VulkanStreamGuest* vkStream, VkStructureType rootType,
12923     VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12930     vkStream->read((VkBool32*)&forUnmarshaling->pipelineExecutableInfo, sizeof(VkBool32));
12931 }
12932 
marshal_VkPipelineInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineInfoKHR * forMarshaling)12933 void marshal_VkPipelineInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12934                                const VkPipelineInfoKHR* forMarshaling) {
12935     (void)rootType;
12936     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12937     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12938         rootType = forMarshaling->sType;
12939     }
12940     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12941     uint64_t cgen_var_0;
12942     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
12943     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12944 }
12945 
unmarshal_VkPipelineInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineInfoKHR * forUnmarshaling)12946 void unmarshal_VkPipelineInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12947                                  VkPipelineInfoKHR* forUnmarshaling) {
12948     (void)rootType;
12949     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12950     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12951         rootType = forUnmarshaling->sType;
12952     }
12953     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12954     uint64_t cgen_var_0;
12955     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12956     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
12957         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
12958 }
12959 
marshal_VkPipelineExecutablePropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutablePropertiesKHR * forMarshaling)12960 void marshal_VkPipelineExecutablePropertiesKHR(
12961     VulkanStreamGuest* vkStream, VkStructureType rootType,
12962     const VkPipelineExecutablePropertiesKHR* forMarshaling) {
12963     (void)rootType;
12964     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12965     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12966         rootType = forMarshaling->sType;
12967     }
12968     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12969     vkStream->write((VkShaderStageFlags*)&forMarshaling->stages, sizeof(VkShaderStageFlags));
12970     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
12971     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
12972     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
12973 }
12974 
unmarshal_VkPipelineExecutablePropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutablePropertiesKHR * forUnmarshaling)12975 void unmarshal_VkPipelineExecutablePropertiesKHR(
12976     VulkanStreamGuest* vkStream, VkStructureType rootType,
12977     VkPipelineExecutablePropertiesKHR* forUnmarshaling) {
12978     (void)rootType;
12979     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12980     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12981         rootType = forUnmarshaling->sType;
12982     }
12983     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12984     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stages, sizeof(VkShaderStageFlags));
12985     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
12986     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
12987     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
12988 }
12989 
marshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableInfoKHR * forMarshaling)12990 void marshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
12991                                          const VkPipelineExecutableInfoKHR* forMarshaling) {
12992     (void)rootType;
12993     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12994     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12995         rootType = forMarshaling->sType;
12996     }
12997     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12998     uint64_t cgen_var_0;
12999     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
13000     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
13001     vkStream->write((uint32_t*)&forMarshaling->executableIndex, sizeof(uint32_t));
13002 }
13003 
unmarshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableInfoKHR * forUnmarshaling)13004 void unmarshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
13005                                            VkPipelineExecutableInfoKHR* forUnmarshaling) {
13006     (void)rootType;
13007     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13008     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13009         rootType = forUnmarshaling->sType;
13010     }
13011     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13012     uint64_t cgen_var_0;
13013     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
13014     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
13015         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
13016     vkStream->read((uint32_t*)&forUnmarshaling->executableIndex, sizeof(uint32_t));
13017 }
13018 
marshal_VkPipelineExecutableStatisticValueKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticValueKHR * forMarshaling)13019 void marshal_VkPipelineExecutableStatisticValueKHR(
13020     VulkanStreamGuest* vkStream, VkStructureType rootType,
13021     const VkPipelineExecutableStatisticValueKHR* forMarshaling) {
13022     (void)rootType;
13023     vkStream->write((VkBool32*)&forMarshaling->b32, sizeof(VkBool32));
13024 }
13025 
unmarshal_VkPipelineExecutableStatisticValueKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticValueKHR * forUnmarshaling)13026 void unmarshal_VkPipelineExecutableStatisticValueKHR(
13027     VulkanStreamGuest* vkStream, VkStructureType rootType,
13028     VkPipelineExecutableStatisticValueKHR* forUnmarshaling) {
13029     (void)rootType;
13030     vkStream->read((VkBool32*)&forUnmarshaling->b32, sizeof(VkBool32));
13031 }
13032 
marshal_VkPipelineExecutableStatisticKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticKHR * forMarshaling)13033 void marshal_VkPipelineExecutableStatisticKHR(
13034     VulkanStreamGuest* vkStream, VkStructureType rootType,
13035     const VkPipelineExecutableStatisticKHR* forMarshaling) {
13036     (void)rootType;
13037     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13038     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13039         rootType = forMarshaling->sType;
13040     }
13041     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13042     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13043     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13044     vkStream->write((VkPipelineExecutableStatisticFormatKHR*)&forMarshaling->format,
13045                     sizeof(VkPipelineExecutableStatisticFormatKHR));
13046     marshal_VkPipelineExecutableStatisticValueKHR(
13047         vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forMarshaling->value));
13048 }
13049 
unmarshal_VkPipelineExecutableStatisticKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticKHR * forUnmarshaling)13050 void unmarshal_VkPipelineExecutableStatisticKHR(VulkanStreamGuest* vkStream,
13051                                                 VkStructureType rootType,
13052                                                 VkPipelineExecutableStatisticKHR* forUnmarshaling) {
13053     (void)rootType;
13054     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13055     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13056         rootType = forUnmarshaling->sType;
13057     }
13058     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13059     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13060     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13061     vkStream->read((VkPipelineExecutableStatisticFormatKHR*)&forUnmarshaling->format,
13062                    sizeof(VkPipelineExecutableStatisticFormatKHR));
13063     unmarshal_VkPipelineExecutableStatisticValueKHR(
13064         vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forUnmarshaling->value));
13065 }
13066 
marshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableInternalRepresentationKHR * forMarshaling)13067 void marshal_VkPipelineExecutableInternalRepresentationKHR(
13068     VulkanStreamGuest* vkStream, VkStructureType rootType,
13069     const VkPipelineExecutableInternalRepresentationKHR* forMarshaling) {
13070     (void)rootType;
13071     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13072     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13073         rootType = forMarshaling->sType;
13074     }
13075     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13076     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13077     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13078     vkStream->write((VkBool32*)&forMarshaling->isText, sizeof(VkBool32));
13079     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
13080     vkStream->putBe64(cgen_var_0);
13081     // WARNING PTR CHECK
13082     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pData;
13083     vkStream->putBe64(cgen_var_1);
13084     if (forMarshaling->pData) {
13085         vkStream->write((void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(uint8_t));
13086     }
13087 }
13088 
unmarshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableInternalRepresentationKHR * forUnmarshaling)13089 void unmarshal_VkPipelineExecutableInternalRepresentationKHR(
13090     VulkanStreamGuest* vkStream, VkStructureType rootType,
13091     VkPipelineExecutableInternalRepresentationKHR* forUnmarshaling) {
13092     (void)rootType;
13093     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13094     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13095         rootType = forUnmarshaling->sType;
13096     }
13097     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13098     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13099     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
13100     vkStream->read((VkBool32*)&forUnmarshaling->isText, sizeof(VkBool32));
13101     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
13102     // WARNING PTR CHECK
13103     void* check_pData;
13104     check_pData = (void*)(uintptr_t)vkStream->getBe64();
13105     if (forUnmarshaling->pData) {
13106         if (!(check_pData)) {
13107             fprintf(stderr, "fatal: forUnmarshaling->pData inconsistent between guest and host\n");
13108         }
13109         vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(uint8_t));
13110     }
13111 }
13112 
13113 #endif
13114 #ifdef VK_ANDROID_native_buffer
marshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkNativeBufferUsage2ANDROID * forMarshaling)13115 void marshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
13116                                          const VkNativeBufferUsage2ANDROID* forMarshaling) {
13117     (void)rootType;
13118     vkStream->write((uint64_t*)&forMarshaling->consumer, sizeof(uint64_t));
13119     vkStream->write((uint64_t*)&forMarshaling->producer, sizeof(uint64_t));
13120 }
13121 
unmarshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkNativeBufferUsage2ANDROID * forUnmarshaling)13122 void unmarshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
13123                                            VkNativeBufferUsage2ANDROID* forUnmarshaling) {
13124     (void)rootType;
13125     vkStream->read((uint64_t*)&forUnmarshaling->consumer, sizeof(uint64_t));
13126     vkStream->read((uint64_t*)&forUnmarshaling->producer, sizeof(uint64_t));
13127 }
13128 
marshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkNativeBufferANDROID * forMarshaling)13129 void marshal_VkNativeBufferANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
13130                                    const VkNativeBufferANDROID* forMarshaling) {
13131     (void)rootType;
13132     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13133     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13134         rootType = forMarshaling->sType;
13135     }
13136     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13137     // WARNING PTR CHECK
13138     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->handle;
13139     vkStream->putBe64(cgen_var_0);
13140     if (forMarshaling->handle) {
13141         vkStream->write((const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
13142     }
13143     vkStream->write((int*)&forMarshaling->stride, sizeof(int));
13144     vkStream->write((int*)&forMarshaling->format, sizeof(int));
13145     vkStream->write((int*)&forMarshaling->usage, sizeof(int));
13146     marshal_VkNativeBufferUsage2ANDROID(vkStream, rootType,
13147                                         (VkNativeBufferUsage2ANDROID*)(&forMarshaling->usage2));
13148 }
13149 
unmarshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkNativeBufferANDROID * forUnmarshaling)13150 void unmarshal_VkNativeBufferANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
13151                                      VkNativeBufferANDROID* forUnmarshaling) {
13152     (void)rootType;
13153     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13154     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13155         rootType = forUnmarshaling->sType;
13156     }
13157     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13158     // WARNING PTR CHECK
13159     const uint32_t* check_handle;
13160     check_handle = (const uint32_t*)(uintptr_t)vkStream->getBe64();
13161     if (forUnmarshaling->handle) {
13162         if (!(check_handle)) {
13163             fprintf(stderr, "fatal: forUnmarshaling->handle inconsistent between guest and host\n");
13164         }
13165         vkStream->read((uint32_t*)forUnmarshaling->handle, sizeof(const uint32_t));
13166     }
13167     vkStream->read((int*)&forUnmarshaling->stride, sizeof(int));
13168     vkStream->read((int*)&forUnmarshaling->format, sizeof(int));
13169     vkStream->read((int*)&forUnmarshaling->usage, sizeof(int));
13170     unmarshal_VkNativeBufferUsage2ANDROID(vkStream, rootType,
13171                                           (VkNativeBufferUsage2ANDROID*)(&forUnmarshaling->usage2));
13172 }
13173 
marshal_VkSwapchainImageCreateInfoANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSwapchainImageCreateInfoANDROID * forMarshaling)13174 void marshal_VkSwapchainImageCreateInfoANDROID(
13175     VulkanStreamGuest* vkStream, VkStructureType rootType,
13176     const VkSwapchainImageCreateInfoANDROID* forMarshaling) {
13177     (void)rootType;
13178     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13179     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13180         rootType = forMarshaling->sType;
13181     }
13182     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13183     vkStream->write((VkSwapchainImageUsageFlagsANDROID*)&forMarshaling->usage,
13184                     sizeof(VkSwapchainImageUsageFlagsANDROID));
13185 }
13186 
unmarshal_VkSwapchainImageCreateInfoANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSwapchainImageCreateInfoANDROID * forUnmarshaling)13187 void unmarshal_VkSwapchainImageCreateInfoANDROID(
13188     VulkanStreamGuest* vkStream, VkStructureType rootType,
13189     VkSwapchainImageCreateInfoANDROID* forUnmarshaling) {
13190     (void)rootType;
13191     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13192     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13193         rootType = forUnmarshaling->sType;
13194     }
13195     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13196     vkStream->read((VkSwapchainImageUsageFlagsANDROID*)&forUnmarshaling->usage,
13197                    sizeof(VkSwapchainImageUsageFlagsANDROID));
13198 }
13199 
marshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePresentationPropertiesANDROID * forMarshaling)13200 void marshal_VkPhysicalDevicePresentationPropertiesANDROID(
13201     VulkanStreamGuest* vkStream, VkStructureType rootType,
13202     const VkPhysicalDevicePresentationPropertiesANDROID* forMarshaling) {
13203     (void)rootType;
13204     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13205     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13206         rootType = forMarshaling->sType;
13207     }
13208     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13209     vkStream->write((VkBool32*)&forMarshaling->sharedImage, sizeof(VkBool32));
13210 }
13211 
unmarshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePresentationPropertiesANDROID * forUnmarshaling)13212 void unmarshal_VkPhysicalDevicePresentationPropertiesANDROID(
13213     VulkanStreamGuest* vkStream, VkStructureType rootType,
13214     VkPhysicalDevicePresentationPropertiesANDROID* forUnmarshaling) {
13215     (void)rootType;
13216     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13217     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13218         rootType = forUnmarshaling->sType;
13219     }
13220     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13221     vkStream->read((VkBool32*)&forUnmarshaling->sharedImage, sizeof(VkBool32));
13222 }
13223 
13224 #endif
13225 #ifdef VK_EXT_transform_feedback
marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * forMarshaling)13226 void marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
13227     VulkanStreamGuest* vkStream, VkStructureType rootType,
13228     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling) {
13229     (void)rootType;
13230     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13231     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13232         rootType = forMarshaling->sType;
13233     }
13234     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13235     vkStream->write((VkBool32*)&forMarshaling->transformFeedback, sizeof(VkBool32));
13236     vkStream->write((VkBool32*)&forMarshaling->geometryStreams, sizeof(VkBool32));
13237 }
13238 
unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackFeaturesEXT * forUnmarshaling)13239 void unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
13240     VulkanStreamGuest* vkStream, VkStructureType rootType,
13241     VkPhysicalDeviceTransformFeedbackFeaturesEXT* forUnmarshaling) {
13242     (void)rootType;
13243     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13244     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13245         rootType = forUnmarshaling->sType;
13246     }
13247     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13248     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedback, sizeof(VkBool32));
13249     vkStream->read((VkBool32*)&forUnmarshaling->geometryStreams, sizeof(VkBool32));
13250 }
13251 
marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * forMarshaling)13252 void marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
13253     VulkanStreamGuest* vkStream, VkStructureType rootType,
13254     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling) {
13255     (void)rootType;
13256     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13257     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13258         rootType = forMarshaling->sType;
13259     }
13260     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13261     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
13262     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
13263     vkStream->write((VkDeviceSize*)&forMarshaling->maxTransformFeedbackBufferSize,
13264                     sizeof(VkDeviceSize));
13265     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreamDataSize,
13266                     sizeof(uint32_t));
13267     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataSize,
13268                     sizeof(uint32_t));
13269     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataStride,
13270                     sizeof(uint32_t));
13271     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackQueries, sizeof(VkBool32));
13272     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackStreamsLinesTriangles,
13273                     sizeof(VkBool32));
13274     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackRasterizationStreamSelect,
13275                     sizeof(VkBool32));
13276     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackDraw, sizeof(VkBool32));
13277 }
13278 
unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackPropertiesEXT * forUnmarshaling)13279 void unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
13280     VulkanStreamGuest* vkStream, VkStructureType rootType,
13281     VkPhysicalDeviceTransformFeedbackPropertiesEXT* forUnmarshaling) {
13282     (void)rootType;
13283     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13284     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13285         rootType = forUnmarshaling->sType;
13286     }
13287     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13288     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
13289     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
13290     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxTransformFeedbackBufferSize,
13291                    sizeof(VkDeviceSize));
13292     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreamDataSize,
13293                    sizeof(uint32_t));
13294     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataSize,
13295                    sizeof(uint32_t));
13296     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataStride,
13297                    sizeof(uint32_t));
13298     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackQueries, sizeof(VkBool32));
13299     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackStreamsLinesTriangles,
13300                    sizeof(VkBool32));
13301     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackRasterizationStreamSelect,
13302                    sizeof(VkBool32));
13303     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackDraw, sizeof(VkBool32));
13304 }
13305 
marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateStreamCreateInfoEXT * forMarshaling)13306 void marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
13307     VulkanStreamGuest* vkStream, VkStructureType rootType,
13308     const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling) {
13309     (void)rootType;
13310     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13311     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13312         rootType = forMarshaling->sType;
13313     }
13314     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13315     vkStream->write((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forMarshaling->flags,
13316                     sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
13317     vkStream->write((uint32_t*)&forMarshaling->rasterizationStream, sizeof(uint32_t));
13318 }
13319 
unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationStateStreamCreateInfoEXT * forUnmarshaling)13320 void unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
13321     VulkanStreamGuest* vkStream, VkStructureType rootType,
13322     VkPipelineRasterizationStateStreamCreateInfoEXT* forUnmarshaling) {
13323     (void)rootType;
13324     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13325     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13326         rootType = forUnmarshaling->sType;
13327     }
13328     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13329     vkStream->read((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forUnmarshaling->flags,
13330                    sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
13331     vkStream->read((uint32_t*)&forUnmarshaling->rasterizationStream, sizeof(uint32_t));
13332 }
13333 
13334 #endif
13335 #ifdef VK_EXT_depth_clip_enable
marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * forMarshaling)13336 void marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
13337     VulkanStreamGuest* vkStream, VkStructureType rootType,
13338     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling) {
13339     (void)rootType;
13340     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13341     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13342         rootType = forMarshaling->sType;
13343     }
13344     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13345     vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
13346 }
13347 
unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthClipEnableFeaturesEXT * forUnmarshaling)13348 void unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
13349     VulkanStreamGuest* vkStream, VkStructureType rootType,
13350     VkPhysicalDeviceDepthClipEnableFeaturesEXT* forUnmarshaling) {
13351     (void)rootType;
13352     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13353     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13354         rootType = forUnmarshaling->sType;
13355     }
13356     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13357     vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
13358 }
13359 
marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationDepthClipStateCreateInfoEXT * forMarshaling)13360 void marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
13361     VulkanStreamGuest* vkStream, VkStructureType rootType,
13362     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling) {
13363     (void)rootType;
13364     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13365     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13366         rootType = forMarshaling->sType;
13367     }
13368     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13369     vkStream->write((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forMarshaling->flags,
13370                     sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
13371     vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
13372 }
13373 
unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationDepthClipStateCreateInfoEXT * forUnmarshaling)13374 void unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
13375     VulkanStreamGuest* vkStream, VkStructureType rootType,
13376     VkPipelineRasterizationDepthClipStateCreateInfoEXT* forUnmarshaling) {
13377     (void)rootType;
13378     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13380         rootType = forUnmarshaling->sType;
13381     }
13382     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13383     vkStream->read((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forUnmarshaling->flags,
13384                    sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
13385     vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
13386 }
13387 
13388 #endif
13389 #ifdef VK_EXT_image_drm_format_modifier
marshal_VkDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesEXT * forMarshaling)13390 void marshal_VkDrmFormatModifierPropertiesEXT(
13391     VulkanStreamGuest* vkStream, VkStructureType rootType,
13392     const VkDrmFormatModifierPropertiesEXT* forMarshaling) {
13393     (void)rootType;
13394     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
13395     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
13396     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->drmFormatModifierTilingFeatures,
13397                     sizeof(VkFormatFeatureFlags));
13398 }
13399 
unmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesEXT * forUnmarshaling)13400 void unmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStreamGuest* vkStream,
13401                                                 VkStructureType rootType,
13402                                                 VkDrmFormatModifierPropertiesEXT* forUnmarshaling) {
13403     (void)rootType;
13404     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
13405     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
13406     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->drmFormatModifierTilingFeatures,
13407                    sizeof(VkFormatFeatureFlags));
13408 }
13409 
marshal_VkDrmFormatModifierPropertiesListEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesListEXT * forMarshaling)13410 void marshal_VkDrmFormatModifierPropertiesListEXT(
13411     VulkanStreamGuest* vkStream, VkStructureType rootType,
13412     const VkDrmFormatModifierPropertiesListEXT* forMarshaling) {
13413     (void)rootType;
13414     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13415     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13416         rootType = forMarshaling->sType;
13417     }
13418     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13419     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
13420     // WARNING PTR CHECK
13421     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
13422     vkStream->putBe64(cgen_var_0);
13423     if (forMarshaling->pDrmFormatModifierProperties) {
13424         if (forMarshaling) {
13425             for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
13426                 marshal_VkDrmFormatModifierPropertiesEXT(
13427                     vkStream, rootType,
13428                     (VkDrmFormatModifierPropertiesEXT*)(forMarshaling
13429                                                             ->pDrmFormatModifierProperties +
13430                                                         i));
13431             }
13432         }
13433     }
13434 }
13435 
unmarshal_VkDrmFormatModifierPropertiesListEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesListEXT * forUnmarshaling)13436 void unmarshal_VkDrmFormatModifierPropertiesListEXT(
13437     VulkanStreamGuest* vkStream, VkStructureType rootType,
13438     VkDrmFormatModifierPropertiesListEXT* forUnmarshaling) {
13439     (void)rootType;
13440     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13441     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13442         rootType = forUnmarshaling->sType;
13443     }
13444     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13445     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
13446     // WARNING PTR CHECK
13447     VkDrmFormatModifierPropertiesEXT* check_pDrmFormatModifierProperties;
13448     check_pDrmFormatModifierProperties =
13449         (VkDrmFormatModifierPropertiesEXT*)(uintptr_t)vkStream->getBe64();
13450     if (forUnmarshaling->pDrmFormatModifierProperties) {
13451         if (!(check_pDrmFormatModifierProperties)) {
13452             fprintf(stderr,
13453                     "fatal: forUnmarshaling->pDrmFormatModifierProperties inconsistent between "
13454                     "guest and host\n");
13455         }
13456         if (forUnmarshaling) {
13457             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
13458                 unmarshal_VkDrmFormatModifierPropertiesEXT(
13459                     vkStream, rootType,
13460                     (VkDrmFormatModifierPropertiesEXT*)(forUnmarshaling
13461                                                             ->pDrmFormatModifierProperties +
13462                                                         i));
13463             }
13464         }
13465     }
13466 }
13467 
marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forMarshaling)13468 void marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
13469     VulkanStreamGuest* vkStream, VkStructureType rootType,
13470     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling) {
13471     (void)rootType;
13472     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13473     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13474         rootType = forMarshaling->sType;
13475     }
13476     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13477     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
13478     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
13479     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
13480     // WARNING PTR CHECK
13481     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
13482     vkStream->putBe64(cgen_var_0);
13483     if (forMarshaling->pQueueFamilyIndices) {
13484         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
13485                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
13486     }
13487 }
13488 
unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forUnmarshaling)13489 void unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
13490     VulkanStreamGuest* vkStream, VkStructureType rootType,
13491     VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forUnmarshaling) {
13492     (void)rootType;
13493     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13494     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13495         rootType = forUnmarshaling->sType;
13496     }
13497     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13498     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
13499     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
13500     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
13501     // WARNING PTR CHECK
13502     const uint32_t* check_pQueueFamilyIndices;
13503     check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
13504     if (forUnmarshaling->pQueueFamilyIndices) {
13505         if (!(check_pQueueFamilyIndices)) {
13506             fprintf(stderr,
13507                     "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and "
13508                     "host\n");
13509         }
13510         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
13511                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
13512     }
13513 }
13514 
marshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierListCreateInfoEXT * forMarshaling)13515 void marshal_VkImageDrmFormatModifierListCreateInfoEXT(
13516     VulkanStreamGuest* vkStream, VkStructureType rootType,
13517     const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling) {
13518     (void)rootType;
13519     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13520     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13521         rootType = forMarshaling->sType;
13522     }
13523     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13524     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
13525     vkStream->write((const uint64_t*)forMarshaling->pDrmFormatModifiers,
13526                     forMarshaling->drmFormatModifierCount * sizeof(const uint64_t));
13527 }
13528 
unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageDrmFormatModifierListCreateInfoEXT * forUnmarshaling)13529 void unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
13530     VulkanStreamGuest* vkStream, VkStructureType rootType,
13531     VkImageDrmFormatModifierListCreateInfoEXT* forUnmarshaling) {
13532     (void)rootType;
13533     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13534     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13535         rootType = forUnmarshaling->sType;
13536     }
13537     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13538     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
13539     vkStream->read((uint64_t*)forUnmarshaling->pDrmFormatModifiers,
13540                    forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t));
13541 }
13542 
marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierExplicitCreateInfoEXT * forMarshaling)13543 void marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
13544     VulkanStreamGuest* vkStream, VkStructureType rootType,
13545     const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling) {
13546     (void)rootType;
13547     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13548     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13549         rootType = forMarshaling->sType;
13550     }
13551     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13552     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
13553     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
13554     if (forMarshaling) {
13555         for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierPlaneCount; ++i) {
13556             marshal_VkSubresourceLayout(
13557                 vkStream, rootType, (const VkSubresourceLayout*)(forMarshaling->pPlaneLayouts + i));
13558         }
13559     }
13560 }
13561 
unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageDrmFormatModifierExplicitCreateInfoEXT * forUnmarshaling)13562 void unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
13563     VulkanStreamGuest* vkStream, VkStructureType rootType,
13564     VkImageDrmFormatModifierExplicitCreateInfoEXT* forUnmarshaling) {
13565     (void)rootType;
13566     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13567     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13568         rootType = forUnmarshaling->sType;
13569     }
13570     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13571     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
13572     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
13573     if (forUnmarshaling) {
13574         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierPlaneCount; ++i) {
13575             unmarshal_VkSubresourceLayout(
13576                 vkStream, rootType, (VkSubresourceLayout*)(forUnmarshaling->pPlaneLayouts + i));
13577         }
13578     }
13579 }
13580 
marshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierPropertiesEXT * forMarshaling)13581 void marshal_VkImageDrmFormatModifierPropertiesEXT(
13582     VulkanStreamGuest* vkStream, VkStructureType rootType,
13583     const VkImageDrmFormatModifierPropertiesEXT* forMarshaling) {
13584     (void)rootType;
13585     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13586     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13587         rootType = forMarshaling->sType;
13588     }
13589     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13590     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
13591 }
13592 
unmarshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageDrmFormatModifierPropertiesEXT * forUnmarshaling)13593 void unmarshal_VkImageDrmFormatModifierPropertiesEXT(
13594     VulkanStreamGuest* vkStream, VkStructureType rootType,
13595     VkImageDrmFormatModifierPropertiesEXT* forUnmarshaling) {
13596     (void)rootType;
13597     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13598     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13599         rootType = forUnmarshaling->sType;
13600     }
13601     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13602     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
13603 }
13604 
marshal_VkDrmFormatModifierProperties2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierProperties2EXT * forMarshaling)13605 void marshal_VkDrmFormatModifierProperties2EXT(
13606     VulkanStreamGuest* vkStream, VkStructureType rootType,
13607     const VkDrmFormatModifierProperties2EXT* forMarshaling) {
13608     (void)rootType;
13609     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
13610     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
13611     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->drmFormatModifierTilingFeatures,
13612                     sizeof(VkFormatFeatureFlags2));
13613 }
13614 
unmarshal_VkDrmFormatModifierProperties2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierProperties2EXT * forUnmarshaling)13615 void unmarshal_VkDrmFormatModifierProperties2EXT(
13616     VulkanStreamGuest* vkStream, VkStructureType rootType,
13617     VkDrmFormatModifierProperties2EXT* forUnmarshaling) {
13618     (void)rootType;
13619     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
13620     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
13621     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->drmFormatModifierTilingFeatures,
13622                    sizeof(VkFormatFeatureFlags2));
13623 }
13624 
marshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesList2EXT * forMarshaling)13625 void marshal_VkDrmFormatModifierPropertiesList2EXT(
13626     VulkanStreamGuest* vkStream, VkStructureType rootType,
13627     const VkDrmFormatModifierPropertiesList2EXT* forMarshaling) {
13628     (void)rootType;
13629     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13630     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13631         rootType = forMarshaling->sType;
13632     }
13633     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13634     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
13635     // WARNING PTR CHECK
13636     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
13637     vkStream->putBe64(cgen_var_0);
13638     if (forMarshaling->pDrmFormatModifierProperties) {
13639         if (forMarshaling) {
13640             for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
13641                 marshal_VkDrmFormatModifierProperties2EXT(
13642                     vkStream, rootType,
13643                     (VkDrmFormatModifierProperties2EXT*)(forMarshaling
13644                                                              ->pDrmFormatModifierProperties +
13645                                                          i));
13646             }
13647         }
13648     }
13649 }
13650 
unmarshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesList2EXT * forUnmarshaling)13651 void unmarshal_VkDrmFormatModifierPropertiesList2EXT(
13652     VulkanStreamGuest* vkStream, VkStructureType rootType,
13653     VkDrmFormatModifierPropertiesList2EXT* forUnmarshaling) {
13654     (void)rootType;
13655     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13656     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13657         rootType = forUnmarshaling->sType;
13658     }
13659     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13660     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
13661     // WARNING PTR CHECK
13662     VkDrmFormatModifierProperties2EXT* check_pDrmFormatModifierProperties;
13663     check_pDrmFormatModifierProperties =
13664         (VkDrmFormatModifierProperties2EXT*)(uintptr_t)vkStream->getBe64();
13665     if (forUnmarshaling->pDrmFormatModifierProperties) {
13666         if (!(check_pDrmFormatModifierProperties)) {
13667             fprintf(stderr,
13668                     "fatal: forUnmarshaling->pDrmFormatModifierProperties inconsistent between "
13669                     "guest and host\n");
13670         }
13671         if (forUnmarshaling) {
13672             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
13673                 unmarshal_VkDrmFormatModifierProperties2EXT(
13674                     vkStream, rootType,
13675                     (VkDrmFormatModifierProperties2EXT*)(forUnmarshaling
13676                                                              ->pDrmFormatModifierProperties +
13677                                                          i));
13678             }
13679         }
13680     }
13681 }
13682 
13683 #endif
13684 #ifdef VK_EXT_vertex_attribute_divisor
marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forMarshaling)13685 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
13686     VulkanStreamGuest* vkStream, VkStructureType rootType,
13687     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling) {
13688     (void)rootType;
13689     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13690     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13691         rootType = forMarshaling->sType;
13692     }
13693     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13694     vkStream->write((uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
13695 }
13696 
unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forUnmarshaling)13697 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
13698     VulkanStreamGuest* vkStream, VkStructureType rootType,
13699     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling) {
13700     (void)rootType;
13701     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13702     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13703         rootType = forUnmarshaling->sType;
13704     }
13705     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13706     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
13707 }
13708 
13709 #endif
13710 #ifdef VK_EXT_fragment_density_map
marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forMarshaling)13711 void marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
13712     VulkanStreamGuest* vkStream, VkStructureType rootType,
13713     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forMarshaling) {
13714     (void)rootType;
13715     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13716     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13717         rootType = forMarshaling->sType;
13718     }
13719     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13720     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMap, sizeof(VkBool32));
13721     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapDynamic, sizeof(VkBool32));
13722     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapNonSubsampledImages,
13723                     sizeof(VkBool32));
13724 }
13725 
unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forUnmarshaling)13726 void unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
13727     VulkanStreamGuest* vkStream, VkStructureType rootType,
13728     VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forUnmarshaling) {
13729     (void)rootType;
13730     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13731     forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
13732     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13733         rootType = forUnmarshaling->sType;
13734     }
13735     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13736     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMap, sizeof(VkBool32));
13737     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapDynamic, sizeof(VkBool32));
13738     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapNonSubsampledImages,
13739                    sizeof(VkBool32));
13740 }
13741 
marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forMarshaling)13742 void marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
13743     VulkanStreamGuest* vkStream, VkStructureType rootType,
13744     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forMarshaling) {
13745     (void)rootType;
13746     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13747     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13748         rootType = forMarshaling->sType;
13749     }
13750     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13751     marshal_VkExtent2D(vkStream, rootType,
13752                        (VkExtent2D*)(&forMarshaling->minFragmentDensityTexelSize));
13753     marshal_VkExtent2D(vkStream, rootType,
13754                        (VkExtent2D*)(&forMarshaling->maxFragmentDensityTexelSize));
13755     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityInvocations, sizeof(VkBool32));
13756 }
13757 
unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forUnmarshaling)13758 void unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
13759     VulkanStreamGuest* vkStream, VkStructureType rootType,
13760     VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forUnmarshaling) {
13761     (void)rootType;
13762     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13763     forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
13764     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13765         rootType = forUnmarshaling->sType;
13766     }
13767     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13768     unmarshal_VkExtent2D(vkStream, rootType,
13769                          (VkExtent2D*)(&forUnmarshaling->minFragmentDensityTexelSize));
13770     unmarshal_VkExtent2D(vkStream, rootType,
13771                          (VkExtent2D*)(&forUnmarshaling->maxFragmentDensityTexelSize));
13772     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityInvocations, sizeof(VkBool32));
13773 }
13774 
marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassFragmentDensityMapCreateInfoEXT * forMarshaling)13775 void marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
13776     VulkanStreamGuest* vkStream, VkStructureType rootType,
13777     const VkRenderPassFragmentDensityMapCreateInfoEXT* forMarshaling) {
13778     (void)rootType;
13779     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13780     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13781         rootType = forMarshaling->sType;
13782     }
13783     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13784     marshal_VkAttachmentReference(
13785         vkStream, rootType, (VkAttachmentReference*)(&forMarshaling->fragmentDensityMapAttachment));
13786 }
13787 
unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassFragmentDensityMapCreateInfoEXT * forUnmarshaling)13788 void unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
13789     VulkanStreamGuest* vkStream, VkStructureType rootType,
13790     VkRenderPassFragmentDensityMapCreateInfoEXT* forUnmarshaling) {
13791     (void)rootType;
13792     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13793     forUnmarshaling->sType = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
13794     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13795         rootType = forUnmarshaling->sType;
13796     }
13797     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13798     unmarshal_VkAttachmentReference(
13799         vkStream, rootType,
13800         (VkAttachmentReference*)(&forUnmarshaling->fragmentDensityMapAttachment));
13801 }
13802 
marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingFragmentDensityMapAttachmentInfoEXT * forMarshaling)13803 void marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
13804     VulkanStreamGuest* vkStream, VkStructureType rootType,
13805     const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling) {
13806     (void)rootType;
13807     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13808     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13809         rootType = forMarshaling->sType;
13810     }
13811     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13812     uint64_t cgen_var_0;
13813     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
13814                                                           1);
13815     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
13816     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
13817 }
13818 
unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingFragmentDensityMapAttachmentInfoEXT * forUnmarshaling)13819 void unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
13820     VulkanStreamGuest* vkStream, VkStructureType rootType,
13821     VkRenderingFragmentDensityMapAttachmentInfoEXT* forUnmarshaling) {
13822     (void)rootType;
13823     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13824     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13825         rootType = forUnmarshaling->sType;
13826     }
13827     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13828     uint64_t cgen_var_0;
13829     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
13830     vkStream->handleMapping()->mapHandles_u64_VkImageView(
13831         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
13832     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
13833 }
13834 
13835 #endif
13836 #ifdef VK_EXT_provoking_vertex
marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexFeaturesEXT * forMarshaling)13837 void marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
13838     VulkanStreamGuest* vkStream, VkStructureType rootType,
13839     const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling) {
13840     (void)rootType;
13841     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13842     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13843         rootType = forMarshaling->sType;
13844     }
13845     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13846     vkStream->write((VkBool32*)&forMarshaling->provokingVertexLast, sizeof(VkBool32));
13847     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesProvokingVertex,
13848                     sizeof(VkBool32));
13849 }
13850 
unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexFeaturesEXT * forUnmarshaling)13851 void unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
13852     VulkanStreamGuest* vkStream, VkStructureType rootType,
13853     VkPhysicalDeviceProvokingVertexFeaturesEXT* forUnmarshaling) {
13854     (void)rootType;
13855     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13856     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13857         rootType = forUnmarshaling->sType;
13858     }
13859     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13860     vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexLast, sizeof(VkBool32));
13861     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackPreservesProvokingVertex,
13862                    sizeof(VkBool32));
13863 }
13864 
marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexPropertiesEXT * forMarshaling)13865 void marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
13866     VulkanStreamGuest* vkStream, VkStructureType rootType,
13867     const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling) {
13868     (void)rootType;
13869     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13870     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13871         rootType = forMarshaling->sType;
13872     }
13873     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13874     vkStream->write((VkBool32*)&forMarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
13875     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesTriangleFanProvokingVertex,
13876                     sizeof(VkBool32));
13877 }
13878 
unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexPropertiesEXT * forUnmarshaling)13879 void unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
13880     VulkanStreamGuest* vkStream, VkStructureType rootType,
13881     VkPhysicalDeviceProvokingVertexPropertiesEXT* forUnmarshaling) {
13882     (void)rootType;
13883     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13884     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13885         rootType = forUnmarshaling->sType;
13886     }
13887     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13888     vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
13889     vkStream->read(
13890         (VkBool32*)&forUnmarshaling->transformFeedbackPreservesTriangleFanProvokingVertex,
13891         sizeof(VkBool32));
13892 }
13893 
marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forMarshaling)13894 void marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
13895     VulkanStreamGuest* vkStream, VkStructureType rootType,
13896     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* 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((VkProvokingVertexModeEXT*)&forMarshaling->provokingVertexMode,
13904                     sizeof(VkProvokingVertexModeEXT));
13905 }
13906 
unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forUnmarshaling)13907 void unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
13908     VulkanStreamGuest* vkStream, VkStructureType rootType,
13909     VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13916     vkStream->read((VkProvokingVertexModeEXT*)&forUnmarshaling->provokingVertexMode,
13917                    sizeof(VkProvokingVertexModeEXT));
13918 }
13919 
13920 #endif
13921 #ifdef VK_EXT_extended_dynamic_state
marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forMarshaling)13922 void marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
13923     VulkanStreamGuest* vkStream, VkStructureType rootType,
13924     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling) {
13925     (void)rootType;
13926     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13927     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13928         rootType = forMarshaling->sType;
13929     }
13930     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13931     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState, sizeof(VkBool32));
13932 }
13933 
unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forUnmarshaling)13934 void unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
13935     VulkanStreamGuest* vkStream, VkStructureType rootType,
13936     VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forUnmarshaling) {
13937     (void)rootType;
13938     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13939     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13940         rootType = forUnmarshaling->sType;
13941     }
13942     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13943     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState, sizeof(VkBool32));
13944 }
13945 
13946 #endif
13947 #ifdef VK_EXT_texel_buffer_alignment
marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forMarshaling)13948 void marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
13949     VulkanStreamGuest* vkStream, VkStructureType rootType,
13950     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling) {
13951     (void)rootType;
13952     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13953     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13954         rootType = forMarshaling->sType;
13955     }
13956     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13957     vkStream->write((VkBool32*)&forMarshaling->texelBufferAlignment, sizeof(VkBool32));
13958 }
13959 
unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forUnmarshaling)13960 void unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
13961     VulkanStreamGuest* vkStream, VkStructureType rootType,
13962     VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forUnmarshaling) {
13963     (void)rootType;
13964     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13965     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13966         rootType = forUnmarshaling->sType;
13967     }
13968     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13969     vkStream->read((VkBool32*)&forUnmarshaling->texelBufferAlignment, sizeof(VkBool32));
13970 }
13971 
13972 #endif
13973 #ifdef VK_EXT_device_memory_report
marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forMarshaling)13974 void marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
13975     VulkanStreamGuest* vkStream, VkStructureType rootType,
13976     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling) {
13977     (void)rootType;
13978     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13979     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13980         rootType = forMarshaling->sType;
13981     }
13982     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13983     vkStream->write((VkBool32*)&forMarshaling->deviceMemoryReport, sizeof(VkBool32));
13984 }
13985 
unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forUnmarshaling)13986 void unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
13987     VulkanStreamGuest* vkStream, VkStructureType rootType,
13988     VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forUnmarshaling) {
13989     (void)rootType;
13990     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13991     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13992         rootType = forUnmarshaling->sType;
13993     }
13994     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13995     vkStream->read((VkBool32*)&forUnmarshaling->deviceMemoryReport, sizeof(VkBool32));
13996 }
13997 
marshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceMemoryReportCallbackDataEXT * forMarshaling)13998 void marshal_VkDeviceMemoryReportCallbackDataEXT(
13999     VulkanStreamGuest* vkStream, VkStructureType rootType,
14000     const VkDeviceMemoryReportCallbackDataEXT* forMarshaling) {
14001     (void)rootType;
14002     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14003     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14004         rootType = forMarshaling->sType;
14005     }
14006     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14007     vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
14008                     sizeof(VkDeviceMemoryReportFlagsEXT));
14009     vkStream->write((VkDeviceMemoryReportEventTypeEXT*)&forMarshaling->type,
14010                     sizeof(VkDeviceMemoryReportEventTypeEXT));
14011     vkStream->write((uint64_t*)&forMarshaling->memoryObjectId, sizeof(uint64_t));
14012     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
14013     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
14014     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
14015     vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
14016 }
14017 
unmarshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceMemoryReportCallbackDataEXT * forUnmarshaling)14018 void unmarshal_VkDeviceMemoryReportCallbackDataEXT(
14019     VulkanStreamGuest* vkStream, VkStructureType rootType,
14020     VkDeviceMemoryReportCallbackDataEXT* forUnmarshaling) {
14021     (void)rootType;
14022     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14023     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14024         rootType = forUnmarshaling->sType;
14025     }
14026     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14027     vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags,
14028                    sizeof(VkDeviceMemoryReportFlagsEXT));
14029     vkStream->read((VkDeviceMemoryReportEventTypeEXT*)&forUnmarshaling->type,
14030                    sizeof(VkDeviceMemoryReportEventTypeEXT));
14031     vkStream->read((uint64_t*)&forUnmarshaling->memoryObjectId, sizeof(uint64_t));
14032     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
14033     vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
14034     vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
14035     vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
14036 }
14037 
marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceDeviceMemoryReportCreateInfoEXT * forMarshaling)14038 void marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
14039     VulkanStreamGuest* vkStream, VkStructureType rootType,
14040     const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling) {
14041     (void)rootType;
14042     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14043     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14044         rootType = forMarshaling->sType;
14045     }
14046     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14047     vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
14048                     sizeof(VkDeviceMemoryReportFlagsEXT));
14049     uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
14050     vkStream->putBe64(cgen_var_0);
14051     vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
14052 }
14053 
unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceDeviceMemoryReportCreateInfoEXT * forUnmarshaling)14054 void unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
14055     VulkanStreamGuest* vkStream, VkStructureType rootType,
14056     VkDeviceDeviceMemoryReportCreateInfoEXT* forUnmarshaling) {
14057     (void)rootType;
14058     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14059     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14060         rootType = forUnmarshaling->sType;
14061     }
14062     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14063     vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags,
14064                    sizeof(VkDeviceMemoryReportFlagsEXT));
14065     forUnmarshaling->pfnUserCallback = (PFN_vkDeviceMemoryReportCallbackEXT)vkStream->getBe64();
14066     vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
14067 }
14068 
14069 #endif
14070 #ifdef VK_EXT_robustness2
marshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2FeaturesEXT * forMarshaling)14071 void marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
14072     VulkanStreamGuest* vkStream, VkStructureType rootType,
14073     const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling) {
14074     (void)rootType;
14075     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14076     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14077         rootType = forMarshaling->sType;
14078     }
14079     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14080     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess2, sizeof(VkBool32));
14081     vkStream->write((VkBool32*)&forMarshaling->robustImageAccess2, sizeof(VkBool32));
14082     vkStream->write((VkBool32*)&forMarshaling->nullDescriptor, sizeof(VkBool32));
14083 }
14084 
unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2FeaturesEXT * forUnmarshaling)14085 void unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
14086     VulkanStreamGuest* vkStream, VkStructureType rootType,
14087     VkPhysicalDeviceRobustness2FeaturesEXT* forUnmarshaling) {
14088     (void)rootType;
14089     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14090     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14091         rootType = forUnmarshaling->sType;
14092     }
14093     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14094     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess2, sizeof(VkBool32));
14095     vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess2, sizeof(VkBool32));
14096     vkStream->read((VkBool32*)&forUnmarshaling->nullDescriptor, sizeof(VkBool32));
14097 }
14098 
marshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2PropertiesEXT * forMarshaling)14099 void marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
14100     VulkanStreamGuest* vkStream, VkStructureType rootType,
14101     const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling) {
14102     (void)rootType;
14103     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14104     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14105         rootType = forMarshaling->sType;
14106     }
14107     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14108     vkStream->write((VkDeviceSize*)&forMarshaling->robustStorageBufferAccessSizeAlignment,
14109                     sizeof(VkDeviceSize));
14110     vkStream->write((VkDeviceSize*)&forMarshaling->robustUniformBufferAccessSizeAlignment,
14111                     sizeof(VkDeviceSize));
14112 }
14113 
unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2PropertiesEXT * forUnmarshaling)14114 void unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
14115     VulkanStreamGuest* vkStream, VkStructureType rootType,
14116     VkPhysicalDeviceRobustness2PropertiesEXT* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14123     vkStream->read((VkDeviceSize*)&forUnmarshaling->robustStorageBufferAccessSizeAlignment,
14124                    sizeof(VkDeviceSize));
14125     vkStream->read((VkDeviceSize*)&forUnmarshaling->robustUniformBufferAccessSizeAlignment,
14126                    sizeof(VkDeviceSize));
14127 }
14128 
14129 #endif
14130 #ifdef VK_EXT_custom_border_color
marshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerCustomBorderColorCreateInfoEXT * forMarshaling)14131 void marshal_VkSamplerCustomBorderColorCreateInfoEXT(
14132     VulkanStreamGuest* vkStream, VkStructureType rootType,
14133     const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling) {
14134     (void)rootType;
14135     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14136     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14137         rootType = forMarshaling->sType;
14138     }
14139     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14140     marshal_VkClearColorValue(vkStream, rootType,
14141                               (VkClearColorValue*)(&forMarshaling->customBorderColor));
14142     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
14143 }
14144 
unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSamplerCustomBorderColorCreateInfoEXT * forUnmarshaling)14145 void unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
14146     VulkanStreamGuest* vkStream, VkStructureType rootType,
14147     VkSamplerCustomBorderColorCreateInfoEXT* forUnmarshaling) {
14148     (void)rootType;
14149     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14150     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14151         rootType = forUnmarshaling->sType;
14152     }
14153     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14154     unmarshal_VkClearColorValue(vkStream, rootType,
14155                                 (VkClearColorValue*)(&forUnmarshaling->customBorderColor));
14156     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
14157 }
14158 
marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * forMarshaling)14159 void marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
14160     VulkanStreamGuest* vkStream, VkStructureType rootType,
14161     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling) {
14162     (void)rootType;
14163     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14164     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14165         rootType = forMarshaling->sType;
14166     }
14167     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14168     vkStream->write((uint32_t*)&forMarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
14169 }
14170 
unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorPropertiesEXT * forUnmarshaling)14171 void unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
14172     VulkanStreamGuest* vkStream, VkStructureType rootType,
14173     VkPhysicalDeviceCustomBorderColorPropertiesEXT* forUnmarshaling) {
14174     (void)rootType;
14175     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14176     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14177         rootType = forUnmarshaling->sType;
14178     }
14179     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14180     vkStream->read((uint32_t*)&forUnmarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
14181 }
14182 
marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * forMarshaling)14183 void marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
14184     VulkanStreamGuest* vkStream, VkStructureType rootType,
14185     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling) {
14186     (void)rootType;
14187     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14188     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14189         rootType = forMarshaling->sType;
14190     }
14191     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14192     vkStream->write((VkBool32*)&forMarshaling->customBorderColors, sizeof(VkBool32));
14193     vkStream->write((VkBool32*)&forMarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
14194 }
14195 
unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorFeaturesEXT * forUnmarshaling)14196 void unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
14197     VulkanStreamGuest* vkStream, VkStructureType rootType,
14198     VkPhysicalDeviceCustomBorderColorFeaturesEXT* forUnmarshaling) {
14199     (void)rootType;
14200     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14201     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14202         rootType = forUnmarshaling->sType;
14203     }
14204     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14205     vkStream->read((VkBool32*)&forUnmarshaling->customBorderColors, sizeof(VkBool32));
14206     vkStream->read((VkBool32*)&forUnmarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
14207 }
14208 
14209 #endif
14210 #ifdef VK_EXT_graphics_pipeline_library
marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forMarshaling)14211 void marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
14212     VulkanStreamGuest* vkStream, VkStructureType rootType,
14213     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forMarshaling) {
14214     (void)rootType;
14215     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14216     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14217         rootType = forMarshaling->sType;
14218     }
14219     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14220     vkStream->write((VkBool32*)&forMarshaling->graphicsPipelineLibrary, sizeof(VkBool32));
14221 }
14222 
unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forUnmarshaling)14223 void unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
14224     VulkanStreamGuest* vkStream, VkStructureType rootType,
14225     VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forUnmarshaling) {
14226     (void)rootType;
14227     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14228     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14229         rootType = forUnmarshaling->sType;
14230     }
14231     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14232     vkStream->read((VkBool32*)&forUnmarshaling->graphicsPipelineLibrary, sizeof(VkBool32));
14233 }
14234 
marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forMarshaling)14235 void marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
14236     VulkanStreamGuest* vkStream, VkStructureType rootType,
14237     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forMarshaling) {
14238     (void)rootType;
14239     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14240     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14241         rootType = forMarshaling->sType;
14242     }
14243     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14244     vkStream->write((VkBool32*)&forMarshaling->graphicsPipelineLibraryFastLinking,
14245                     sizeof(VkBool32));
14246     vkStream->write(
14247         (VkBool32*)&forMarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
14248         sizeof(VkBool32));
14249 }
14250 
unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forUnmarshaling)14251 void unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
14252     VulkanStreamGuest* vkStream, VkStructureType rootType,
14253     VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forUnmarshaling) {
14254     (void)rootType;
14255     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14256     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14257         rootType = forUnmarshaling->sType;
14258     }
14259     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14260     vkStream->read((VkBool32*)&forUnmarshaling->graphicsPipelineLibraryFastLinking,
14261                    sizeof(VkBool32));
14262     vkStream->read(
14263         (VkBool32*)&forUnmarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
14264         sizeof(VkBool32));
14265 }
14266 
marshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkGraphicsPipelineLibraryCreateInfoEXT * forMarshaling)14267 void marshal_VkGraphicsPipelineLibraryCreateInfoEXT(
14268     VulkanStreamGuest* vkStream, VkStructureType rootType,
14269     const VkGraphicsPipelineLibraryCreateInfoEXT* forMarshaling) {
14270     (void)rootType;
14271     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14272     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14273         rootType = forMarshaling->sType;
14274     }
14275     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14276     vkStream->write((VkGraphicsPipelineLibraryFlagsEXT*)&forMarshaling->flags,
14277                     sizeof(VkGraphicsPipelineLibraryFlagsEXT));
14278 }
14279 
unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkGraphicsPipelineLibraryCreateInfoEXT * forUnmarshaling)14280 void unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
14281     VulkanStreamGuest* vkStream, VkStructureType rootType,
14282     VkGraphicsPipelineLibraryCreateInfoEXT* forUnmarshaling) {
14283     (void)rootType;
14284     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14285     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14286         rootType = forUnmarshaling->sType;
14287     }
14288     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14289     vkStream->read((VkGraphicsPipelineLibraryFlagsEXT*)&forUnmarshaling->flags,
14290                    sizeof(VkGraphicsPipelineLibraryFlagsEXT));
14291 }
14292 
14293 #endif
14294 #ifdef VK_EXT_ycbcr_2plane_444_formats
marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forMarshaling)14295 void marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
14296     VulkanStreamGuest* vkStream, VkStructureType rootType,
14297     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling) {
14298     (void)rootType;
14299     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14300     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14301         rootType = forMarshaling->sType;
14302     }
14303     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14304     vkStream->write((VkBool32*)&forMarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
14305 }
14306 
unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forUnmarshaling)14307 void unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
14308     VulkanStreamGuest* vkStream, VkStructureType rootType,
14309     VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forUnmarshaling) {
14310     (void)rootType;
14311     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14312     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14313         rootType = forUnmarshaling->sType;
14314     }
14315     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14316     vkStream->read((VkBool32*)&forUnmarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
14317 }
14318 
14319 #endif
14320 #ifdef VK_EXT_image_compression_control
marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlFeaturesEXT * forMarshaling)14321 void marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
14322     VulkanStreamGuest* vkStream, VkStructureType rootType,
14323     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* forMarshaling) {
14324     (void)rootType;
14325     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14326     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14327         rootType = forMarshaling->sType;
14328     }
14329     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14330     vkStream->write((VkBool32*)&forMarshaling->imageCompressionControl, sizeof(VkBool32));
14331 }
14332 
unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlFeaturesEXT * forUnmarshaling)14333 void unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
14334     VulkanStreamGuest* vkStream, VkStructureType rootType,
14335     VkPhysicalDeviceImageCompressionControlFeaturesEXT* forUnmarshaling) {
14336     (void)rootType;
14337     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14338     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14339         rootType = forUnmarshaling->sType;
14340     }
14341     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14342     vkStream->read((VkBool32*)&forUnmarshaling->imageCompressionControl, sizeof(VkBool32));
14343 }
14344 
marshal_VkImageCompressionControlEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCompressionControlEXT * forMarshaling)14345 void marshal_VkImageCompressionControlEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
14346                                           const VkImageCompressionControlEXT* forMarshaling) {
14347     (void)rootType;
14348     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14349     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14350         rootType = forMarshaling->sType;
14351     }
14352     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14353     vkStream->write((VkImageCompressionFlagsEXT*)&forMarshaling->flags,
14354                     sizeof(VkImageCompressionFlagsEXT));
14355     vkStream->write((uint32_t*)&forMarshaling->compressionControlPlaneCount, sizeof(uint32_t));
14356     // WARNING PTR CHECK
14357     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pFixedRateFlags;
14358     vkStream->putBe64(cgen_var_0);
14359     if (forMarshaling->pFixedRateFlags) {
14360         vkStream->write((VkImageCompressionFixedRateFlagsEXT*)forMarshaling->pFixedRateFlags,
14361                         forMarshaling->compressionControlPlaneCount *
14362                             sizeof(VkImageCompressionFixedRateFlagsEXT));
14363     }
14364 }
14365 
unmarshal_VkImageCompressionControlEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageCompressionControlEXT * forUnmarshaling)14366 void unmarshal_VkImageCompressionControlEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
14367                                             VkImageCompressionControlEXT* forUnmarshaling) {
14368     (void)rootType;
14369     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14370     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14371         rootType = forUnmarshaling->sType;
14372     }
14373     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14374     vkStream->read((VkImageCompressionFlagsEXT*)&forUnmarshaling->flags,
14375                    sizeof(VkImageCompressionFlagsEXT));
14376     vkStream->read((uint32_t*)&forUnmarshaling->compressionControlPlaneCount, sizeof(uint32_t));
14377     // WARNING PTR CHECK
14378     VkImageCompressionFixedRateFlagsEXT* check_pFixedRateFlags;
14379     check_pFixedRateFlags = (VkImageCompressionFixedRateFlagsEXT*)(uintptr_t)vkStream->getBe64();
14380     if (forUnmarshaling->pFixedRateFlags) {
14381         if (!(check_pFixedRateFlags)) {
14382             fprintf(
14383                 stderr,
14384                 "fatal: forUnmarshaling->pFixedRateFlags inconsistent between guest and host\n");
14385         }
14386         vkStream->read((VkImageCompressionFixedRateFlagsEXT*)forUnmarshaling->pFixedRateFlags,
14387                        forUnmarshaling->compressionControlPlaneCount *
14388                            sizeof(VkImageCompressionFixedRateFlagsEXT));
14389     }
14390 }
14391 
marshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCompressionPropertiesEXT * forMarshaling)14392 void marshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
14393                                              const VkImageCompressionPropertiesEXT* forMarshaling) {
14394     (void)rootType;
14395     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14396     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14397         rootType = forMarshaling->sType;
14398     }
14399     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14400     vkStream->write((VkImageCompressionFlagsEXT*)&forMarshaling->imageCompressionFlags,
14401                     sizeof(VkImageCompressionFlagsEXT));
14402     vkStream->write(
14403         (VkImageCompressionFixedRateFlagsEXT*)&forMarshaling->imageCompressionFixedRateFlags,
14404         sizeof(VkImageCompressionFixedRateFlagsEXT));
14405 }
14406 
unmarshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageCompressionPropertiesEXT * forUnmarshaling)14407 void unmarshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest* vkStream,
14408                                                VkStructureType rootType,
14409                                                VkImageCompressionPropertiesEXT* forUnmarshaling) {
14410     (void)rootType;
14411     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14412     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14413         rootType = forUnmarshaling->sType;
14414     }
14415     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14416     vkStream->read((VkImageCompressionFlagsEXT*)&forUnmarshaling->imageCompressionFlags,
14417                    sizeof(VkImageCompressionFlagsEXT));
14418     vkStream->read(
14419         (VkImageCompressionFixedRateFlagsEXT*)&forUnmarshaling->imageCompressionFixedRateFlags,
14420         sizeof(VkImageCompressionFixedRateFlagsEXT));
14421 }
14422 
14423 #endif
14424 #ifdef VK_EXT_4444_formats
marshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevice4444FormatsFeaturesEXT * forMarshaling)14425 void marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
14426     VulkanStreamGuest* vkStream, VkStructureType rootType,
14427     const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling) {
14428     (void)rootType;
14429     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14430     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14431         rootType = forMarshaling->sType;
14432     }
14433     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14434     vkStream->write((VkBool32*)&forMarshaling->formatA4R4G4B4, sizeof(VkBool32));
14435     vkStream->write((VkBool32*)&forMarshaling->formatA4B4G4R4, sizeof(VkBool32));
14436 }
14437 
unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevice4444FormatsFeaturesEXT * forUnmarshaling)14438 void unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
14439     VulkanStreamGuest* vkStream, VkStructureType rootType,
14440     VkPhysicalDevice4444FormatsFeaturesEXT* forUnmarshaling) {
14441     (void)rootType;
14442     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14443     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14444         rootType = forUnmarshaling->sType;
14445     }
14446     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14447     vkStream->read((VkBool32*)&forUnmarshaling->formatA4R4G4B4, sizeof(VkBool32));
14448     vkStream->read((VkBool32*)&forUnmarshaling->formatA4B4G4R4, sizeof(VkBool32));
14449 }
14450 
14451 #endif
14452 #ifdef VK_EXT_primitive_topology_list_restart
marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forMarshaling)14453 void marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
14454     VulkanStreamGuest* vkStream, VkStructureType rootType,
14455     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling) {
14456     (void)rootType;
14457     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14458     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14459         rootType = forMarshaling->sType;
14460     }
14461     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14462     vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
14463     vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyPatchListRestart, sizeof(VkBool32));
14464 }
14465 
unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forUnmarshaling)14466 void unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
14467     VulkanStreamGuest* vkStream, VkStructureType rootType,
14468     VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* 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     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14475     vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
14476     vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyPatchListRestart,
14477                    sizeof(VkBool32));
14478 }
14479 
14480 #endif
14481 #ifdef VK_EXT_extended_dynamic_state2
marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forMarshaling)14482 void marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
14483     VulkanStreamGuest* vkStream, VkStructureType rootType,
14484     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling) {
14485     (void)rootType;
14486     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14487     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14488         rootType = forMarshaling->sType;
14489     }
14490     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14491     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2, sizeof(VkBool32));
14492     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
14493     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2PatchControlPoints,
14494                     sizeof(VkBool32));
14495 }
14496 
unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forUnmarshaling)14497 void unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
14498     VulkanStreamGuest* vkStream, VkStructureType rootType,
14499     VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forUnmarshaling) {
14500     (void)rootType;
14501     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14502     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14503         rootType = forUnmarshaling->sType;
14504     }
14505     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14506     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2, sizeof(VkBool32));
14507     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
14508     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2PatchControlPoints,
14509                    sizeof(VkBool32));
14510 }
14511 
14512 #endif
14513 #ifdef VK_EXT_color_write_enable
marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceColorWriteEnableFeaturesEXT * forMarshaling)14514 void marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
14515     VulkanStreamGuest* vkStream, VkStructureType rootType,
14516     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling) {
14517     (void)rootType;
14518     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14519     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14520         rootType = forMarshaling->sType;
14521     }
14522     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14523     vkStream->write((VkBool32*)&forMarshaling->colorWriteEnable, sizeof(VkBool32));
14524 }
14525 
unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceColorWriteEnableFeaturesEXT * forUnmarshaling)14526 void unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
14527     VulkanStreamGuest* vkStream, VkStructureType rootType,
14528     VkPhysicalDeviceColorWriteEnableFeaturesEXT* forUnmarshaling) {
14529     (void)rootType;
14530     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14531     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14532         rootType = forUnmarshaling->sType;
14533     }
14534     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14535     vkStream->read((VkBool32*)&forUnmarshaling->colorWriteEnable, sizeof(VkBool32));
14536 }
14537 
marshal_VkPipelineColorWriteCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineColorWriteCreateInfoEXT * forMarshaling)14538 void marshal_VkPipelineColorWriteCreateInfoEXT(
14539     VulkanStreamGuest* vkStream, VkStructureType rootType,
14540     const VkPipelineColorWriteCreateInfoEXT* 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->attachmentCount, sizeof(uint32_t));
14548     vkStream->write((const VkBool32*)forMarshaling->pColorWriteEnables,
14549                     forMarshaling->attachmentCount * sizeof(const VkBool32));
14550 }
14551 
unmarshal_VkPipelineColorWriteCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineColorWriteCreateInfoEXT * forUnmarshaling)14552 void unmarshal_VkPipelineColorWriteCreateInfoEXT(
14553     VulkanStreamGuest* vkStream, VkStructureType rootType,
14554     VkPipelineColorWriteCreateInfoEXT* forUnmarshaling) {
14555     (void)rootType;
14556     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14557     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14558         rootType = forUnmarshaling->sType;
14559     }
14560     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14561     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
14562     vkStream->read((VkBool32*)forUnmarshaling->pColorWriteEnables,
14563                    forUnmarshaling->attachmentCount * sizeof(const VkBool32));
14564 }
14565 
14566 #endif
14567 #ifdef VK_GOOGLE_gfxstream
marshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportColorBufferGOOGLE * forMarshaling)14568 void marshal_VkImportColorBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
14569                                        const VkImportColorBufferGOOGLE* forMarshaling) {
14570     (void)rootType;
14571     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14572     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14573         rootType = forMarshaling->sType;
14574     }
14575     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14576     vkStream->write((uint32_t*)&forMarshaling->colorBuffer, sizeof(uint32_t));
14577 }
14578 
unmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportColorBufferGOOGLE * forUnmarshaling)14579 void unmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
14580                                          VkImportColorBufferGOOGLE* forUnmarshaling) {
14581     (void)rootType;
14582     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14583     forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE;
14584     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14585         rootType = forUnmarshaling->sType;
14586     }
14587     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14588     vkStream->read((uint32_t*)&forUnmarshaling->colorBuffer, sizeof(uint32_t));
14589 }
14590 
marshal_VkImportBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportBufferGOOGLE * forMarshaling)14591 void marshal_VkImportBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
14592                                   const VkImportBufferGOOGLE* forMarshaling) {
14593     (void)rootType;
14594     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14595     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14596         rootType = forMarshaling->sType;
14597     }
14598     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14599     vkStream->write((uint32_t*)&forMarshaling->buffer, sizeof(uint32_t));
14600 }
14601 
unmarshal_VkImportBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportBufferGOOGLE * forUnmarshaling)14602 void unmarshal_VkImportBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
14603                                     VkImportBufferGOOGLE* forUnmarshaling) {
14604     (void)rootType;
14605     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14606     forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE;
14607     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14608         rootType = forUnmarshaling->sType;
14609     }
14610     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14611     vkStream->read((uint32_t*)&forUnmarshaling->buffer, sizeof(uint32_t));
14612 }
14613 
marshal_VkCreateBlobGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCreateBlobGOOGLE * forMarshaling)14614 void marshal_VkCreateBlobGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
14615                                 const VkCreateBlobGOOGLE* forMarshaling) {
14616     (void)rootType;
14617     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14618     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14619         rootType = forMarshaling->sType;
14620     }
14621     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14622     vkStream->write((uint32_t*)&forMarshaling->blobMem, sizeof(uint32_t));
14623     vkStream->write((uint32_t*)&forMarshaling->blobFlags, sizeof(uint32_t));
14624     vkStream->write((uint64_t*)&forMarshaling->blobId, sizeof(uint64_t));
14625 }
14626 
unmarshal_VkCreateBlobGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCreateBlobGOOGLE * forUnmarshaling)14627 void unmarshal_VkCreateBlobGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
14628                                   VkCreateBlobGOOGLE* forUnmarshaling) {
14629     (void)rootType;
14630     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14631     forUnmarshaling->sType = VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE;
14632     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14633         rootType = forUnmarshaling->sType;
14634     }
14635     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14636     vkStream->read((uint32_t*)&forUnmarshaling->blobMem, sizeof(uint32_t));
14637     vkStream->read((uint32_t*)&forUnmarshaling->blobFlags, sizeof(uint32_t));
14638     vkStream->read((uint64_t*)&forUnmarshaling->blobId, sizeof(uint64_t));
14639 }
14640 
14641 #endif
14642 #ifdef VK_EXT_image_compression_control_swapchain
marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forMarshaling)14643 void marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
14644     VulkanStreamGuest* vkStream, VkStructureType rootType,
14645     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forMarshaling) {
14646     (void)rootType;
14647     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
14648     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14649         rootType = forMarshaling->sType;
14650     }
14651     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
14652     vkStream->write((VkBool32*)&forMarshaling->imageCompressionControlSwapchain, sizeof(VkBool32));
14653 }
14654 
unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forUnmarshaling)14655 void unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
14656     VulkanStreamGuest* vkStream, VkStructureType rootType,
14657     VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forUnmarshaling) {
14658     (void)rootType;
14659     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
14660     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14661         rootType = forUnmarshaling->sType;
14662     }
14663     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
14664     vkStream->read((VkBool32*)&forUnmarshaling->imageCompressionControlSwapchain, sizeof(VkBool32));
14665 }
14666 
14667 #endif
marshal_extension_struct(VulkanStreamGuest * vkStream,VkStructureType rootType,const void * structExtension)14668 void marshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
14669                               const void* structExtension) {
14670     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension);
14671     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
14672         vkStream->getFeatureBits(), rootType, structExtension);
14673     if (!currExtSize && structExtension) {
14674         // unknown struct extension; skip and call on its pNext field
14675         marshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext);
14676         return;
14677     } else {
14678         // known or null extension struct
14679         vkStream->putBe32(currExtSize);
14680         if (!currExtSize) {
14681             // exit if this was a null extension struct (size == 0 in this branch)
14682             return;
14683         }
14684     }
14685     vkStream->write(structExtension, sizeof(VkStructureType));
14686     if (!structExtension) {
14687         return;
14688     }
14689     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
14690     switch (structType) {
14691 #ifdef VK_VERSION_1_0
14692         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
14693             marshal_VkShaderModuleCreateInfo(
14694                 vkStream, rootType,
14695                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension));
14696             break;
14697         }
14698         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
14699             marshal_VkPipelineLayoutCreateInfo(
14700                 vkStream, rootType,
14701                 reinterpret_cast<const VkPipelineLayoutCreateInfo*>(structExtension));
14702             break;
14703         }
14704 #endif
14705 #ifdef VK_VERSION_1_1
14706         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
14707             marshal_VkPhysicalDeviceSubgroupProperties(
14708                 vkStream, rootType,
14709                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension));
14710             break;
14711         }
14712         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
14713             marshal_VkPhysicalDevice16BitStorageFeatures(
14714                 vkStream, rootType,
14715                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension));
14716             break;
14717         }
14718         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
14719             marshal_VkMemoryDedicatedRequirements(
14720                 vkStream, rootType,
14721                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension));
14722             break;
14723         }
14724         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
14725             marshal_VkMemoryDedicatedAllocateInfo(
14726                 vkStream, rootType,
14727                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension));
14728             break;
14729         }
14730         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
14731             marshal_VkMemoryAllocateFlagsInfo(
14732                 vkStream, rootType,
14733                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension));
14734             break;
14735         }
14736         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
14737             marshal_VkDeviceGroupRenderPassBeginInfo(
14738                 vkStream, rootType,
14739                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension));
14740             break;
14741         }
14742         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
14743             marshal_VkDeviceGroupCommandBufferBeginInfo(
14744                 vkStream, rootType,
14745                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension));
14746             break;
14747         }
14748         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
14749             marshal_VkDeviceGroupSubmitInfo(
14750                 vkStream, rootType,
14751                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension));
14752             break;
14753         }
14754         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
14755             marshal_VkDeviceGroupBindSparseInfo(
14756                 vkStream, rootType,
14757                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension));
14758             break;
14759         }
14760         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
14761             marshal_VkBindBufferMemoryDeviceGroupInfo(
14762                 vkStream, rootType,
14763                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension));
14764             break;
14765         }
14766         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
14767             marshal_VkBindImageMemoryDeviceGroupInfo(
14768                 vkStream, rootType,
14769                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension));
14770             break;
14771         }
14772         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
14773             marshal_VkDeviceGroupDeviceCreateInfo(
14774                 vkStream, rootType,
14775                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension));
14776             break;
14777         }
14778         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
14779             marshal_VkPhysicalDeviceFeatures2(
14780                 vkStream, rootType,
14781                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension));
14782             break;
14783         }
14784         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
14785             marshal_VkPhysicalDevicePointClippingProperties(
14786                 vkStream, rootType,
14787                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension));
14788             break;
14789         }
14790         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
14791             marshal_VkRenderPassInputAttachmentAspectCreateInfo(
14792                 vkStream, rootType,
14793                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
14794                     structExtension));
14795             break;
14796         }
14797         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
14798             marshal_VkImageViewUsageCreateInfo(
14799                 vkStream, rootType,
14800                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension));
14801             break;
14802         }
14803         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
14804             marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
14805                 vkStream, rootType,
14806                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
14807                     structExtension));
14808             break;
14809         }
14810         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
14811             marshal_VkRenderPassMultiviewCreateInfo(
14812                 vkStream, rootType,
14813                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension));
14814             break;
14815         }
14816         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
14817             marshal_VkPhysicalDeviceMultiviewFeatures(
14818                 vkStream, rootType,
14819                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension));
14820             break;
14821         }
14822         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
14823             marshal_VkPhysicalDeviceMultiviewProperties(
14824                 vkStream, rootType,
14825                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension));
14826             break;
14827         }
14828         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
14829             marshal_VkPhysicalDeviceVariablePointersFeatures(
14830                 vkStream, rootType,
14831                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension));
14832             break;
14833         }
14834         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
14835             marshal_VkPhysicalDeviceProtectedMemoryFeatures(
14836                 vkStream, rootType,
14837                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension));
14838             break;
14839         }
14840         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
14841             marshal_VkPhysicalDeviceProtectedMemoryProperties(
14842                 vkStream, rootType,
14843                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(
14844                     structExtension));
14845             break;
14846         }
14847         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
14848             marshal_VkProtectedSubmitInfo(
14849                 vkStream, rootType,
14850                 reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension));
14851             break;
14852         }
14853         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
14854             marshal_VkSamplerYcbcrConversionInfo(
14855                 vkStream, rootType,
14856                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension));
14857             break;
14858         }
14859         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
14860             marshal_VkBindImagePlaneMemoryInfo(
14861                 vkStream, rootType,
14862                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension));
14863             break;
14864         }
14865         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
14866             marshal_VkImagePlaneMemoryRequirementsInfo(
14867                 vkStream, rootType,
14868                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension));
14869             break;
14870         }
14871         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
14872             marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
14873                 vkStream, rootType,
14874                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
14875                     structExtension));
14876             break;
14877         }
14878         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
14879             marshal_VkSamplerYcbcrConversionImageFormatProperties(
14880                 vkStream, rootType,
14881                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
14882                     structExtension));
14883             break;
14884         }
14885         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
14886             marshal_VkPhysicalDeviceExternalImageFormatInfo(
14887                 vkStream, rootType,
14888                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension));
14889             break;
14890         }
14891         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
14892             marshal_VkExternalImageFormatProperties(
14893                 vkStream, rootType,
14894                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension));
14895             break;
14896         }
14897         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
14898             marshal_VkPhysicalDeviceIDProperties(
14899                 vkStream, rootType,
14900                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension));
14901             break;
14902         }
14903         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
14904             marshal_VkExternalMemoryImageCreateInfo(
14905                 vkStream, rootType,
14906                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension));
14907             break;
14908         }
14909         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
14910             marshal_VkExternalMemoryBufferCreateInfo(
14911                 vkStream, rootType,
14912                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension));
14913             break;
14914         }
14915         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
14916             marshal_VkExportMemoryAllocateInfo(
14917                 vkStream, rootType,
14918                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension));
14919             break;
14920         }
14921         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
14922             marshal_VkExportFenceCreateInfo(
14923                 vkStream, rootType,
14924                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension));
14925             break;
14926         }
14927         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
14928             marshal_VkExportSemaphoreCreateInfo(
14929                 vkStream, rootType,
14930                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension));
14931             break;
14932         }
14933         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
14934             marshal_VkPhysicalDeviceMaintenance3Properties(
14935                 vkStream, rootType,
14936                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension));
14937             break;
14938         }
14939         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
14940             marshal_VkPhysicalDeviceShaderDrawParametersFeatures(
14941                 vkStream, rootType,
14942                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
14943                     structExtension));
14944             break;
14945         }
14946 #endif
14947 #ifdef VK_VERSION_1_2
14948         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
14949             marshal_VkPhysicalDeviceVulkan11Features(
14950                 vkStream, rootType,
14951                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension));
14952             break;
14953         }
14954         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
14955             marshal_VkPhysicalDeviceVulkan11Properties(
14956                 vkStream, rootType,
14957                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension));
14958             break;
14959         }
14960         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
14961             marshal_VkPhysicalDeviceVulkan12Features(
14962                 vkStream, rootType,
14963                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension));
14964             break;
14965         }
14966         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
14967             marshal_VkPhysicalDeviceVulkan12Properties(
14968                 vkStream, rootType,
14969                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension));
14970             break;
14971         }
14972         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
14973             marshal_VkImageFormatListCreateInfo(
14974                 vkStream, rootType,
14975                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension));
14976             break;
14977         }
14978         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
14979             marshal_VkPhysicalDevice8BitStorageFeatures(
14980                 vkStream, rootType,
14981                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension));
14982             break;
14983         }
14984         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
14985             marshal_VkPhysicalDeviceDriverProperties(
14986                 vkStream, rootType,
14987                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension));
14988             break;
14989         }
14990         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
14991             marshal_VkPhysicalDeviceShaderAtomicInt64Features(
14992                 vkStream, rootType,
14993                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(
14994                     structExtension));
14995             break;
14996         }
14997         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
14998             marshal_VkPhysicalDeviceShaderFloat16Int8Features(
14999                 vkStream, rootType,
15000                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(
15001                     structExtension));
15002             break;
15003         }
15004         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
15005             marshal_VkPhysicalDeviceFloatControlsProperties(
15006                 vkStream, rootType,
15007                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension));
15008             break;
15009         }
15010         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
15011             marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
15012                 vkStream, rootType,
15013                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
15014                     structExtension));
15015             break;
15016         }
15017         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
15018             marshal_VkPhysicalDeviceDescriptorIndexingFeatures(
15019                 vkStream, rootType,
15020                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
15021                     structExtension));
15022             break;
15023         }
15024         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
15025             marshal_VkPhysicalDeviceDescriptorIndexingProperties(
15026                 vkStream, rootType,
15027                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
15028                     structExtension));
15029             break;
15030         }
15031         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
15032             marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
15033                 vkStream, rootType,
15034                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
15035                     structExtension));
15036             break;
15037         }
15038         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
15039             marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
15040                 vkStream, rootType,
15041                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
15042                     structExtension));
15043             break;
15044         }
15045         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
15046             marshal_VkSubpassDescriptionDepthStencilResolve(
15047                 vkStream, rootType,
15048                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension));
15049             break;
15050         }
15051         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
15052             marshal_VkPhysicalDeviceDepthStencilResolveProperties(
15053                 vkStream, rootType,
15054                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
15055                     structExtension));
15056             break;
15057         }
15058         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
15059             marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
15060                 vkStream, rootType,
15061                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(
15062                     structExtension));
15063             break;
15064         }
15065         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
15066             marshal_VkImageStencilUsageCreateInfo(
15067                 vkStream, rootType,
15068                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension));
15069             break;
15070         }
15071         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
15072             marshal_VkSamplerReductionModeCreateInfo(
15073                 vkStream, rootType,
15074                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension));
15075             break;
15076         }
15077         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
15078             marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
15079                 vkStream, rootType,
15080                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
15081                     structExtension));
15082             break;
15083         }
15084         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
15085             marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
15086                 vkStream, rootType,
15087                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(
15088                     structExtension));
15089             break;
15090         }
15091         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
15092             marshal_VkPhysicalDeviceImagelessFramebufferFeatures(
15093                 vkStream, rootType,
15094                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
15095                     structExtension));
15096             break;
15097         }
15098         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
15099             marshal_VkFramebufferAttachmentsCreateInfo(
15100                 vkStream, rootType,
15101                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension));
15102             break;
15103         }
15104         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
15105             marshal_VkRenderPassAttachmentBeginInfo(
15106                 vkStream, rootType,
15107                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension));
15108             break;
15109         }
15110         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
15111             marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
15112                 vkStream, rootType,
15113                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
15114                     structExtension));
15115             break;
15116         }
15117         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
15118             marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
15119                 vkStream, rootType,
15120                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
15121                     structExtension));
15122             break;
15123         }
15124         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
15125             marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
15126                 vkStream, rootType,
15127                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
15128                     structExtension));
15129             break;
15130         }
15131         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
15132             marshal_VkAttachmentReferenceStencilLayout(
15133                 vkStream, rootType,
15134                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension));
15135             break;
15136         }
15137         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
15138             marshal_VkAttachmentDescriptionStencilLayout(
15139                 vkStream, rootType,
15140                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension));
15141             break;
15142         }
15143         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
15144             marshal_VkPhysicalDeviceHostQueryResetFeatures(
15145                 vkStream, rootType,
15146                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension));
15147             break;
15148         }
15149         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
15150             marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
15151                 vkStream, rootType,
15152                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(
15153                     structExtension));
15154             break;
15155         }
15156         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
15157             marshal_VkPhysicalDeviceTimelineSemaphoreProperties(
15158                 vkStream, rootType,
15159                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
15160                     structExtension));
15161             break;
15162         }
15163         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
15164             marshal_VkSemaphoreTypeCreateInfo(
15165                 vkStream, rootType,
15166                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension));
15167             break;
15168         }
15169         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
15170             marshal_VkTimelineSemaphoreSubmitInfo(
15171                 vkStream, rootType,
15172                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension));
15173             break;
15174         }
15175         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
15176             marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
15177                 vkStream, rootType,
15178                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
15179                     structExtension));
15180             break;
15181         }
15182         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
15183             marshal_VkBufferOpaqueCaptureAddressCreateInfo(
15184                 vkStream, rootType,
15185                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension));
15186             break;
15187         }
15188         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
15189             marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
15190                 vkStream, rootType,
15191                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension));
15192             break;
15193         }
15194 #endif
15195 #ifdef VK_VERSION_1_3
15196         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
15197             marshal_VkPhysicalDeviceVulkan13Features(
15198                 vkStream, rootType,
15199                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension));
15200             break;
15201         }
15202         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
15203             marshal_VkPhysicalDeviceVulkan13Properties(
15204                 vkStream, rootType,
15205                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension));
15206             break;
15207         }
15208         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
15209             marshal_VkPipelineCreationFeedbackCreateInfo(
15210                 vkStream, rootType,
15211                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension));
15212             break;
15213         }
15214         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
15215             marshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
15216                 vkStream, rootType,
15217                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
15218                     structExtension));
15219             break;
15220         }
15221         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
15222             marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
15223                 vkStream, rootType,
15224                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
15225                     structExtension));
15226             break;
15227         }
15228         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
15229             marshal_VkPhysicalDevicePrivateDataFeatures(
15230                 vkStream, rootType,
15231                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension));
15232             break;
15233         }
15234         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
15235             marshal_VkDevicePrivateDataCreateInfo(
15236                 vkStream, rootType,
15237                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension));
15238             break;
15239         }
15240         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
15241             marshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
15242                 vkStream, rootType,
15243                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
15244                     structExtension));
15245             break;
15246         }
15247         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
15248             marshal_VkMemoryBarrier2(vkStream, rootType,
15249                                      reinterpret_cast<const VkMemoryBarrier2*>(structExtension));
15250             break;
15251         }
15252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
15253             marshal_VkPhysicalDeviceSynchronization2Features(
15254                 vkStream, rootType,
15255                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension));
15256             break;
15257         }
15258         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
15259             marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
15260                 vkStream, rootType,
15261                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
15262                     structExtension));
15263             break;
15264         }
15265         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
15266             marshal_VkPhysicalDeviceImageRobustnessFeatures(
15267                 vkStream, rootType,
15268                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension));
15269             break;
15270         }
15271         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
15272             marshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
15273                 vkStream, rootType,
15274                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
15275                     structExtension));
15276             break;
15277         }
15278         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
15279             marshal_VkPhysicalDeviceSubgroupSizeControlProperties(
15280                 vkStream, rootType,
15281                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
15282                     structExtension));
15283             break;
15284         }
15285         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
15286             marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
15287                 vkStream, rootType,
15288                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
15289                     structExtension));
15290             break;
15291         }
15292         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
15293             marshal_VkPhysicalDeviceInlineUniformBlockFeatures(
15294                 vkStream, rootType,
15295                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
15296                     structExtension));
15297             break;
15298         }
15299         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
15300             marshal_VkPhysicalDeviceInlineUniformBlockProperties(
15301                 vkStream, rootType,
15302                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
15303                     structExtension));
15304             break;
15305         }
15306         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
15307             marshal_VkWriteDescriptorSetInlineUniformBlock(
15308                 vkStream, rootType,
15309                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension));
15310             break;
15311         }
15312         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
15313             marshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
15314                 vkStream, rootType,
15315                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
15316                     structExtension));
15317             break;
15318         }
15319         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
15320             marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
15321                 vkStream, rootType,
15322                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
15323                     structExtension));
15324             break;
15325         }
15326         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
15327             marshal_VkPipelineRenderingCreateInfo(
15328                 vkStream, rootType,
15329                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension));
15330             break;
15331         }
15332         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
15333             marshal_VkPhysicalDeviceDynamicRenderingFeatures(
15334                 vkStream, rootType,
15335                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension));
15336             break;
15337         }
15338         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
15339             marshal_VkCommandBufferInheritanceRenderingInfo(
15340                 vkStream, rootType,
15341                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension));
15342             break;
15343         }
15344         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
15345             marshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
15346                 vkStream, rootType,
15347                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
15348                     structExtension));
15349             break;
15350         }
15351         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
15352             marshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
15353                 vkStream, rootType,
15354                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
15355                     structExtension));
15356             break;
15357         }
15358         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
15359             marshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
15360                 vkStream, rootType,
15361                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
15362                     structExtension));
15363             break;
15364         }
15365         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
15366             marshal_VkFormatProperties3(
15367                 vkStream, rootType, reinterpret_cast<const VkFormatProperties3*>(structExtension));
15368             break;
15369         }
15370         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
15371             marshal_VkPhysicalDeviceMaintenance4Features(
15372                 vkStream, rootType,
15373                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension));
15374             break;
15375         }
15376         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
15377             marshal_VkPhysicalDeviceMaintenance4Properties(
15378                 vkStream, rootType,
15379                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension));
15380             break;
15381         }
15382 #endif
15383 #ifdef VK_VERSION_1_4
15384         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES: {
15385             marshal_VkPhysicalDeviceVulkan14Features(
15386                 vkStream, rootType,
15387                 reinterpret_cast<const VkPhysicalDeviceVulkan14Features*>(structExtension));
15388             break;
15389         }
15390         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES: {
15391             marshal_VkPhysicalDeviceVulkan14Properties(
15392                 vkStream, rootType,
15393                 reinterpret_cast<const VkPhysicalDeviceVulkan14Properties*>(structExtension));
15394             break;
15395         }
15396         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO: {
15397             marshal_VkDeviceQueueGlobalPriorityCreateInfo(
15398                 vkStream, rootType,
15399                 reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfo*>(structExtension));
15400             break;
15401         }
15402         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES: {
15403             marshal_VkPhysicalDeviceGlobalPriorityQueryFeatures(
15404                 vkStream, rootType,
15405                 reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeatures*>(
15406                     structExtension));
15407             break;
15408         }
15409         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES: {
15410             marshal_VkQueueFamilyGlobalPriorityProperties(
15411                 vkStream, rootType,
15412                 reinterpret_cast<const VkQueueFamilyGlobalPriorityProperties*>(structExtension));
15413             break;
15414         }
15415         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES: {
15416             marshal_VkPhysicalDeviceShaderSubgroupRotateFeatures(
15417                 vkStream, rootType,
15418                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupRotateFeatures*>(
15419                     structExtension));
15420             break;
15421         }
15422         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES: {
15423             marshal_VkPhysicalDeviceShaderFloatControls2Features(
15424                 vkStream, rootType,
15425                 reinterpret_cast<const VkPhysicalDeviceShaderFloatControls2Features*>(
15426                     structExtension));
15427             break;
15428         }
15429         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES: {
15430             marshal_VkPhysicalDeviceShaderExpectAssumeFeatures(
15431                 vkStream, rootType,
15432                 reinterpret_cast<const VkPhysicalDeviceShaderExpectAssumeFeatures*>(
15433                     structExtension));
15434             break;
15435         }
15436         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES: {
15437             marshal_VkPhysicalDeviceLineRasterizationFeatures(
15438                 vkStream, rootType,
15439                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeatures*>(
15440                     structExtension));
15441             break;
15442         }
15443         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES: {
15444             marshal_VkPhysicalDeviceLineRasterizationProperties(
15445                 vkStream, rootType,
15446                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationProperties*>(
15447                     structExtension));
15448             break;
15449         }
15450         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO: {
15451             marshal_VkPipelineRasterizationLineStateCreateInfo(
15452                 vkStream, rootType,
15453                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfo*>(
15454                     structExtension));
15455             break;
15456         }
15457         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES: {
15458             marshal_VkPhysicalDeviceVertexAttributeDivisorProperties(
15459                 vkStream, rootType,
15460                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorProperties*>(
15461                     structExtension));
15462             break;
15463         }
15464         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO: {
15465             marshal_VkPipelineVertexInputDivisorStateCreateInfo(
15466                 vkStream, rootType,
15467                 reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfo*>(
15468                     structExtension));
15469             break;
15470         }
15471         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES: {
15472             marshal_VkPhysicalDeviceVertexAttributeDivisorFeatures(
15473                 vkStream, rootType,
15474                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeatures*>(
15475                     structExtension));
15476             break;
15477         }
15478         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES: {
15479             marshal_VkPhysicalDeviceIndexTypeUint8Features(
15480                 vkStream, rootType,
15481                 reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8Features*>(structExtension));
15482             break;
15483         }
15484         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES: {
15485             marshal_VkPhysicalDeviceMaintenance5Features(
15486                 vkStream, rootType,
15487                 reinterpret_cast<const VkPhysicalDeviceMaintenance5Features*>(structExtension));
15488             break;
15489         }
15490         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES: {
15491             marshal_VkPhysicalDeviceMaintenance5Properties(
15492                 vkStream, rootType,
15493                 reinterpret_cast<const VkPhysicalDeviceMaintenance5Properties*>(structExtension));
15494             break;
15495         }
15496         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO: {
15497             marshal_VkPipelineCreateFlags2CreateInfo(
15498                 vkStream, rootType,
15499                 reinterpret_cast<const VkPipelineCreateFlags2CreateInfo*>(structExtension));
15500             break;
15501         }
15502         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO: {
15503             marshal_VkBufferUsageFlags2CreateInfo(
15504                 vkStream, rootType,
15505                 reinterpret_cast<const VkBufferUsageFlags2CreateInfo*>(structExtension));
15506             break;
15507         }
15508         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES: {
15509             marshal_VkPhysicalDevicePushDescriptorProperties(
15510                 vkStream, rootType,
15511                 reinterpret_cast<const VkPhysicalDevicePushDescriptorProperties*>(structExtension));
15512             break;
15513         }
15514         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES: {
15515             marshal_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(
15516                 vkStream, rootType,
15517                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingLocalReadFeatures*>(
15518                     structExtension));
15519             break;
15520         }
15521         case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO: {
15522             marshal_VkRenderingAttachmentLocationInfo(
15523                 vkStream, rootType,
15524                 reinterpret_cast<const VkRenderingAttachmentLocationInfo*>(structExtension));
15525             break;
15526         }
15527         case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO: {
15528             marshal_VkRenderingInputAttachmentIndexInfo(
15529                 vkStream, rootType,
15530                 reinterpret_cast<const VkRenderingInputAttachmentIndexInfo*>(structExtension));
15531             break;
15532         }
15533         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES: {
15534             marshal_VkPhysicalDeviceMaintenance6Features(
15535                 vkStream, rootType,
15536                 reinterpret_cast<const VkPhysicalDeviceMaintenance6Features*>(structExtension));
15537             break;
15538         }
15539         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES: {
15540             marshal_VkPhysicalDeviceMaintenance6Properties(
15541                 vkStream, rootType,
15542                 reinterpret_cast<const VkPhysicalDeviceMaintenance6Properties*>(structExtension));
15543             break;
15544         }
15545         case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS: {
15546             marshal_VkBindMemoryStatus(
15547                 vkStream, rootType, reinterpret_cast<const VkBindMemoryStatus*>(structExtension));
15548             break;
15549         }
15550         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES: {
15551             marshal_VkPhysicalDevicePipelineProtectedAccessFeatures(
15552                 vkStream, rootType,
15553                 reinterpret_cast<const VkPhysicalDevicePipelineProtectedAccessFeatures*>(
15554                     structExtension));
15555             break;
15556         }
15557         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES: {
15558             marshal_VkPhysicalDevicePipelineRobustnessFeatures(
15559                 vkStream, rootType,
15560                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeatures*>(
15561                     structExtension));
15562             break;
15563         }
15564         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES: {
15565             marshal_VkPhysicalDevicePipelineRobustnessProperties(
15566                 vkStream, rootType,
15567                 reinterpret_cast<const VkPhysicalDevicePipelineRobustnessProperties*>(
15568                     structExtension));
15569             break;
15570         }
15571         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO: {
15572             marshal_VkPipelineRobustnessCreateInfo(
15573                 vkStream, rootType,
15574                 reinterpret_cast<const VkPipelineRobustnessCreateInfo*>(structExtension));
15575             break;
15576         }
15577         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES: {
15578             marshal_VkPhysicalDeviceHostImageCopyFeatures(
15579                 vkStream, rootType,
15580                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeatures*>(structExtension));
15581             break;
15582         }
15583         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES: {
15584             marshal_VkPhysicalDeviceHostImageCopyProperties(
15585                 vkStream, rootType,
15586                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyProperties*>(structExtension));
15587             break;
15588         }
15589         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE: {
15590             marshal_VkSubresourceHostMemcpySize(
15591                 vkStream, rootType,
15592                 reinterpret_cast<const VkSubresourceHostMemcpySize*>(structExtension));
15593             break;
15594         }
15595         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY: {
15596             marshal_VkHostImageCopyDevicePerformanceQuery(
15597                 vkStream, rootType,
15598                 reinterpret_cast<const VkHostImageCopyDevicePerformanceQuery*>(structExtension));
15599             break;
15600         }
15601 #endif
15602 #ifdef VK_KHR_incremental_present
15603         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
15604             marshal_VkPresentRegionsKHR(
15605                 vkStream, rootType, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension));
15606             break;
15607         }
15608 #endif
15609 #ifdef VK_KHR_pipeline_executable_properties
15610         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
15611             marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
15612                 vkStream, rootType,
15613                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
15614                     structExtension));
15615             break;
15616         }
15617 #endif
15618 #ifdef VK_ANDROID_native_buffer
15619         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
15620             marshal_VkNativeBufferANDROID(
15621                 vkStream, rootType,
15622                 reinterpret_cast<const VkNativeBufferANDROID*>(structExtension));
15623             break;
15624         }
15625 #endif
15626 #ifdef VK_EXT_transform_feedback
15627         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
15628             marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
15629                 vkStream, rootType,
15630                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
15631                     structExtension));
15632             break;
15633         }
15634         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
15635             marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
15636                 vkStream, rootType,
15637                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
15638                     structExtension));
15639             break;
15640         }
15641         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
15642             marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
15643                 vkStream, rootType,
15644                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
15645                     structExtension));
15646             break;
15647         }
15648 #endif
15649 #ifdef VK_EXT_depth_clip_enable
15650         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
15651             marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
15652                 vkStream, rootType,
15653                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
15654                     structExtension));
15655             break;
15656         }
15657         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
15658             marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
15659                 vkStream, rootType,
15660                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
15661                     structExtension));
15662             break;
15663         }
15664 #endif
15665 #ifdef VK_EXT_image_drm_format_modifier
15666         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
15667             marshal_VkDrmFormatModifierPropertiesListEXT(
15668                 vkStream, rootType,
15669                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension));
15670             break;
15671         }
15672         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
15673             marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
15674                 vkStream, rootType,
15675                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
15676                     structExtension));
15677             break;
15678         }
15679         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
15680             marshal_VkImageDrmFormatModifierListCreateInfoEXT(
15681                 vkStream, rootType,
15682                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(
15683                     structExtension));
15684             break;
15685         }
15686         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
15687             marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
15688                 vkStream, rootType,
15689                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
15690                     structExtension));
15691             break;
15692         }
15693         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
15694             marshal_VkDrmFormatModifierPropertiesList2EXT(
15695                 vkStream, rootType,
15696                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension));
15697             break;
15698         }
15699 #endif
15700 #ifdef VK_EXT_vertex_attribute_divisor
15701         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
15702             marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
15703                 vkStream, rootType,
15704                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
15705                     structExtension));
15706             break;
15707         }
15708 #endif
15709 #ifdef VK_EXT_fragment_density_map
15710         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
15711             switch (rootType) {
15712                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
15713                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15714                         vkStream, rootType,
15715                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15716                             structExtension));
15717                     break;
15718                 }
15719                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
15720                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15721                         vkStream, rootType,
15722                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15723                             structExtension));
15724                     break;
15725                 }
15726                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15727                     marshal_VkImportColorBufferGOOGLE(
15728                         vkStream, rootType,
15729                         reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
15730                     break;
15731                 }
15732                 default: {
15733                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15734                         vkStream, rootType,
15735                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15736                             structExtension));
15737                     break;
15738                 }
15739             }
15740             break;
15741         }
15742         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
15743             switch (rootType) {
15744                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
15745                     marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
15746                         vkStream, rootType,
15747                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
15748                             structExtension));
15749                     break;
15750                 }
15751                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15752                     marshal_VkCreateBlobGOOGLE(
15753                         vkStream, rootType,
15754                         reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension));
15755                     break;
15756                 }
15757                 default: {
15758                     marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
15759                         vkStream, rootType,
15760                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
15761                             structExtension));
15762                     break;
15763                 }
15764             }
15765             break;
15766         }
15767         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
15768             switch (rootType) {
15769                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
15770                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15771                         vkStream, rootType,
15772                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15773                             structExtension));
15774                     break;
15775                 }
15776                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
15777                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15778                         vkStream, rootType,
15779                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15780                             structExtension));
15781                     break;
15782                 }
15783                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15784                     marshal_VkImportBufferGOOGLE(
15785                         vkStream, rootType,
15786                         reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension));
15787                     break;
15788                 }
15789                 default: {
15790                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15791                         vkStream, rootType,
15792                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15793                             structExtension));
15794                     break;
15795                 }
15796             }
15797             break;
15798         }
15799         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
15800             marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
15801                 vkStream, rootType,
15802                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
15803                     structExtension));
15804             break;
15805         }
15806 #endif
15807 #ifdef VK_EXT_provoking_vertex
15808         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
15809             marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
15810                 vkStream, rootType,
15811                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
15812                     structExtension));
15813             break;
15814         }
15815         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
15816             marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
15817                 vkStream, rootType,
15818                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
15819                     structExtension));
15820             break;
15821         }
15822         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
15823             marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
15824                 vkStream, rootType,
15825                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
15826                     structExtension));
15827             break;
15828         }
15829 #endif
15830 #ifdef VK_EXT_extended_dynamic_state
15831         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
15832             marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
15833                 vkStream, rootType,
15834                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
15835                     structExtension));
15836             break;
15837         }
15838 #endif
15839 #ifdef VK_EXT_texel_buffer_alignment
15840         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
15841             marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
15842                 vkStream, rootType,
15843                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
15844                     structExtension));
15845             break;
15846         }
15847 #endif
15848 #ifdef VK_EXT_device_memory_report
15849         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
15850             marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
15851                 vkStream, rootType,
15852                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
15853                     structExtension));
15854             break;
15855         }
15856         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
15857             marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
15858                 vkStream, rootType,
15859                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension));
15860             break;
15861         }
15862 #endif
15863 #ifdef VK_EXT_robustness2
15864         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
15865             marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
15866                 vkStream, rootType,
15867                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension));
15868             break;
15869         }
15870         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
15871             marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
15872                 vkStream, rootType,
15873                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension));
15874             break;
15875         }
15876 #endif
15877 #ifdef VK_EXT_custom_border_color
15878         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
15879             marshal_VkSamplerCustomBorderColorCreateInfoEXT(
15880                 vkStream, rootType,
15881                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension));
15882             break;
15883         }
15884         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
15885             marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
15886                 vkStream, rootType,
15887                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
15888                     structExtension));
15889             break;
15890         }
15891         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
15892             marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
15893                 vkStream, rootType,
15894                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
15895                     structExtension));
15896             break;
15897         }
15898 #endif
15899 #ifdef VK_EXT_graphics_pipeline_library
15900         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
15901             marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
15902                 vkStream, rootType,
15903                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
15904                     structExtension));
15905             break;
15906         }
15907         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
15908             marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
15909                 vkStream, rootType,
15910                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
15911                     structExtension));
15912             break;
15913         }
15914         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
15915             marshal_VkGraphicsPipelineLibraryCreateInfoEXT(
15916                 vkStream, rootType,
15917                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension));
15918             break;
15919         }
15920 #endif
15921 #ifdef VK_EXT_ycbcr_2plane_444_formats
15922         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
15923             marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
15924                 vkStream, rootType,
15925                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
15926                     structExtension));
15927             break;
15928         }
15929 #endif
15930 #ifdef VK_EXT_image_compression_control
15931         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
15932             marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
15933                 vkStream, rootType,
15934                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
15935                     structExtension));
15936             break;
15937         }
15938         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
15939             marshal_VkImageCompressionControlEXT(
15940                 vkStream, rootType,
15941                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension));
15942             break;
15943         }
15944         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
15945             marshal_VkImageCompressionPropertiesEXT(
15946                 vkStream, rootType,
15947                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension));
15948             break;
15949         }
15950 #endif
15951 #ifdef VK_EXT_4444_formats
15952         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
15953             marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
15954                 vkStream, rootType,
15955                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension));
15956             break;
15957         }
15958 #endif
15959 #ifdef VK_EXT_primitive_topology_list_restart
15960         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
15961             marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
15962                 vkStream, rootType,
15963                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
15964                     structExtension));
15965             break;
15966         }
15967 #endif
15968 #ifdef VK_EXT_extended_dynamic_state2
15969         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
15970             marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
15971                 vkStream, rootType,
15972                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
15973                     structExtension));
15974             break;
15975         }
15976 #endif
15977 #ifdef VK_EXT_color_write_enable
15978         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
15979             marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
15980                 vkStream, rootType,
15981                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
15982                     structExtension));
15983             break;
15984         }
15985         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
15986             marshal_VkPipelineColorWriteCreateInfoEXT(
15987                 vkStream, rootType,
15988                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension));
15989             break;
15990         }
15991 #endif
15992 #ifdef VK_GOOGLE_gfxstream
15993         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
15994             marshal_VkImportColorBufferGOOGLE(
15995                 vkStream, rootType,
15996                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
15997             break;
15998         }
15999         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
16000             marshal_VkImportBufferGOOGLE(
16001                 vkStream, rootType, reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension));
16002             break;
16003         }
16004         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
16005             marshal_VkCreateBlobGOOGLE(
16006                 vkStream, rootType, reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension));
16007             break;
16008         }
16009 #endif
16010 #ifdef VK_EXT_image_compression_control_swapchain
16011         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
16012             marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
16013                 vkStream, rootType,
16014                 reinterpret_cast<
16015                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
16016                     structExtension));
16017             break;
16018         }
16019 #endif
16020         default: {
16021             // fatal; the switch is only taken if the extension struct is known
16022             abort();
16023         }
16024     }
16025 }
16026 
unmarshal_extension_struct(VulkanStreamGuest * vkStream,VkStructureType rootType,void * structExtension_out)16027 void unmarshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
16028                                 void* structExtension_out) {
16029     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension_out);
16030     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
16031         vkStream->getFeatureBits(), rootType, structExtension_out);
16032     if (!currExtSize && structExtension_out) {
16033         // unknown struct extension; skip and call on its pNext field
16034         unmarshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext);
16035         return;
16036     } else {
16037         // known or null extension struct
16038         vkStream->getBe32();
16039         if (!currExtSize) {
16040             // exit if this was a null extension struct (size == 0 in this branch)
16041             return;
16042         }
16043     }
16044     uint64_t pNext_placeholder;
16045     vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
16046     (void)pNext_placeholder;
16047     if (!structExtension_out) {
16048         return;
16049     }
16050     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
16051     switch (structType) {
16052 #ifdef VK_VERSION_1_0
16053         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
16054             unmarshal_VkShaderModuleCreateInfo(
16055                 vkStream, rootType,
16056                 reinterpret_cast<VkShaderModuleCreateInfo*>(structExtension_out));
16057             break;
16058         }
16059         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
16060             unmarshal_VkPipelineLayoutCreateInfo(
16061                 vkStream, rootType,
16062                 reinterpret_cast<VkPipelineLayoutCreateInfo*>(structExtension_out));
16063             break;
16064         }
16065 #endif
16066 #ifdef VK_VERSION_1_1
16067         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
16068             unmarshal_VkPhysicalDeviceSubgroupProperties(
16069                 vkStream, rootType,
16070                 reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
16071             break;
16072         }
16073         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
16074             unmarshal_VkPhysicalDevice16BitStorageFeatures(
16075                 vkStream, rootType,
16076                 reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
16077             break;
16078         }
16079         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
16080             unmarshal_VkMemoryDedicatedRequirements(
16081                 vkStream, rootType,
16082                 reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
16083             break;
16084         }
16085         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
16086             unmarshal_VkMemoryDedicatedAllocateInfo(
16087                 vkStream, rootType,
16088                 reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
16089             break;
16090         }
16091         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
16092             unmarshal_VkMemoryAllocateFlagsInfo(
16093                 vkStream, rootType,
16094                 reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
16095             break;
16096         }
16097         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
16098             unmarshal_VkDeviceGroupRenderPassBeginInfo(
16099                 vkStream, rootType,
16100                 reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
16101             break;
16102         }
16103         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
16104             unmarshal_VkDeviceGroupCommandBufferBeginInfo(
16105                 vkStream, rootType,
16106                 reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
16107             break;
16108         }
16109         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
16110             unmarshal_VkDeviceGroupSubmitInfo(
16111                 vkStream, rootType,
16112                 reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
16113             break;
16114         }
16115         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
16116             unmarshal_VkDeviceGroupBindSparseInfo(
16117                 vkStream, rootType,
16118                 reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
16119             break;
16120         }
16121         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
16122             unmarshal_VkBindBufferMemoryDeviceGroupInfo(
16123                 vkStream, rootType,
16124                 reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
16125             break;
16126         }
16127         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
16128             unmarshal_VkBindImageMemoryDeviceGroupInfo(
16129                 vkStream, rootType,
16130                 reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
16131             break;
16132         }
16133         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
16134             unmarshal_VkDeviceGroupDeviceCreateInfo(
16135                 vkStream, rootType,
16136                 reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
16137             break;
16138         }
16139         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
16140             unmarshal_VkPhysicalDeviceFeatures2(
16141                 vkStream, rootType,
16142                 reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
16143             break;
16144         }
16145         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
16146             unmarshal_VkPhysicalDevicePointClippingProperties(
16147                 vkStream, rootType,
16148                 reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
16149             break;
16150         }
16151         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
16152             unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
16153                 vkStream, rootType,
16154                 reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(
16155                     structExtension_out));
16156             break;
16157         }
16158         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
16159             unmarshal_VkImageViewUsageCreateInfo(
16160                 vkStream, rootType,
16161                 reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
16162             break;
16163         }
16164         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
16165             unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
16166                 vkStream, rootType,
16167                 reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(
16168                     structExtension_out));
16169             break;
16170         }
16171         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
16172             unmarshal_VkRenderPassMultiviewCreateInfo(
16173                 vkStream, rootType,
16174                 reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
16175             break;
16176         }
16177         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
16178             unmarshal_VkPhysicalDeviceMultiviewFeatures(
16179                 vkStream, rootType,
16180                 reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
16181             break;
16182         }
16183         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
16184             unmarshal_VkPhysicalDeviceMultiviewProperties(
16185                 vkStream, rootType,
16186                 reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
16187             break;
16188         }
16189         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
16190             unmarshal_VkPhysicalDeviceVariablePointersFeatures(
16191                 vkStream, rootType,
16192                 reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
16193             break;
16194         }
16195         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
16196             unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
16197                 vkStream, rootType,
16198                 reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
16199             break;
16200         }
16201         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
16202             unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
16203                 vkStream, rootType,
16204                 reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
16205             break;
16206         }
16207         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
16208             unmarshal_VkProtectedSubmitInfo(
16209                 vkStream, rootType, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
16210             break;
16211         }
16212         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
16213             unmarshal_VkSamplerYcbcrConversionInfo(
16214                 vkStream, rootType,
16215                 reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
16216             break;
16217         }
16218         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
16219             unmarshal_VkBindImagePlaneMemoryInfo(
16220                 vkStream, rootType,
16221                 reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
16222             break;
16223         }
16224         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
16225             unmarshal_VkImagePlaneMemoryRequirementsInfo(
16226                 vkStream, rootType,
16227                 reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
16228             break;
16229         }
16230         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
16231             unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
16232                 vkStream, rootType,
16233                 reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
16234                     structExtension_out));
16235             break;
16236         }
16237         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
16238             unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
16239                 vkStream, rootType,
16240                 reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(
16241                     structExtension_out));
16242             break;
16243         }
16244         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
16245             unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
16246                 vkStream, rootType,
16247                 reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
16248             break;
16249         }
16250         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
16251             unmarshal_VkExternalImageFormatProperties(
16252                 vkStream, rootType,
16253                 reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
16254             break;
16255         }
16256         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
16257             unmarshal_VkPhysicalDeviceIDProperties(
16258                 vkStream, rootType,
16259                 reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
16260             break;
16261         }
16262         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
16263             unmarshal_VkExternalMemoryImageCreateInfo(
16264                 vkStream, rootType,
16265                 reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
16266             break;
16267         }
16268         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
16269             unmarshal_VkExternalMemoryBufferCreateInfo(
16270                 vkStream, rootType,
16271                 reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
16272             break;
16273         }
16274         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
16275             unmarshal_VkExportMemoryAllocateInfo(
16276                 vkStream, rootType,
16277                 reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
16278             break;
16279         }
16280         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
16281             unmarshal_VkExportFenceCreateInfo(
16282                 vkStream, rootType,
16283                 reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
16284             break;
16285         }
16286         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
16287             unmarshal_VkExportSemaphoreCreateInfo(
16288                 vkStream, rootType,
16289                 reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
16290             break;
16291         }
16292         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
16293             unmarshal_VkPhysicalDeviceMaintenance3Properties(
16294                 vkStream, rootType,
16295                 reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
16296             break;
16297         }
16298         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
16299             unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
16300                 vkStream, rootType,
16301                 reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(
16302                     structExtension_out));
16303             break;
16304         }
16305 #endif
16306 #ifdef VK_VERSION_1_2
16307         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
16308             unmarshal_VkPhysicalDeviceVulkan11Features(
16309                 vkStream, rootType,
16310                 reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
16311             break;
16312         }
16313         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
16314             unmarshal_VkPhysicalDeviceVulkan11Properties(
16315                 vkStream, rootType,
16316                 reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
16317             break;
16318         }
16319         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
16320             unmarshal_VkPhysicalDeviceVulkan12Features(
16321                 vkStream, rootType,
16322                 reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
16323             break;
16324         }
16325         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
16326             unmarshal_VkPhysicalDeviceVulkan12Properties(
16327                 vkStream, rootType,
16328                 reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
16329             break;
16330         }
16331         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
16332             unmarshal_VkImageFormatListCreateInfo(
16333                 vkStream, rootType,
16334                 reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
16335             break;
16336         }
16337         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
16338             unmarshal_VkPhysicalDevice8BitStorageFeatures(
16339                 vkStream, rootType,
16340                 reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
16341             break;
16342         }
16343         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
16344             unmarshal_VkPhysicalDeviceDriverProperties(
16345                 vkStream, rootType,
16346                 reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
16347             break;
16348         }
16349         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
16350             unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
16351                 vkStream, rootType,
16352                 reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
16353             break;
16354         }
16355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
16356             unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
16357                 vkStream, rootType,
16358                 reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
16359             break;
16360         }
16361         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
16362             unmarshal_VkPhysicalDeviceFloatControlsProperties(
16363                 vkStream, rootType,
16364                 reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
16365             break;
16366         }
16367         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
16368             unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
16369                 vkStream, rootType,
16370                 reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
16371                     structExtension_out));
16372             break;
16373         }
16374         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
16375             unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
16376                 vkStream, rootType,
16377                 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
16378             break;
16379         }
16380         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
16381             unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
16382                 vkStream, rootType,
16383                 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(
16384                     structExtension_out));
16385             break;
16386         }
16387         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
16388             unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
16389                 vkStream, rootType,
16390                 reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
16391                     structExtension_out));
16392             break;
16393         }
16394         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
16395             unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
16396                 vkStream, rootType,
16397                 reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
16398                     structExtension_out));
16399             break;
16400         }
16401         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
16402             unmarshal_VkSubpassDescriptionDepthStencilResolve(
16403                 vkStream, rootType,
16404                 reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
16405             break;
16406         }
16407         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
16408             unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
16409                 vkStream, rootType,
16410                 reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(
16411                     structExtension_out));
16412             break;
16413         }
16414         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
16415             unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
16416                 vkStream, rootType,
16417                 reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
16418             break;
16419         }
16420         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
16421             unmarshal_VkImageStencilUsageCreateInfo(
16422                 vkStream, rootType,
16423                 reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
16424             break;
16425         }
16426         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
16427             unmarshal_VkSamplerReductionModeCreateInfo(
16428                 vkStream, rootType,
16429                 reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
16430             break;
16431         }
16432         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
16433             unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
16434                 vkStream, rootType,
16435                 reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
16436                     structExtension_out));
16437             break;
16438         }
16439         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
16440             unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
16441                 vkStream, rootType,
16442                 reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
16443             break;
16444         }
16445         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
16446             unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
16447                 vkStream, rootType,
16448                 reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(
16449                     structExtension_out));
16450             break;
16451         }
16452         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
16453             unmarshal_VkFramebufferAttachmentsCreateInfo(
16454                 vkStream, rootType,
16455                 reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
16456             break;
16457         }
16458         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
16459             unmarshal_VkRenderPassAttachmentBeginInfo(
16460                 vkStream, rootType,
16461                 reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
16462             break;
16463         }
16464         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
16465             unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
16466                 vkStream, rootType,
16467                 reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
16468                     structExtension_out));
16469             break;
16470         }
16471         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
16472             unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
16473                 vkStream, rootType,
16474                 reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
16475                     structExtension_out));
16476             break;
16477         }
16478         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
16479             unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
16480                 vkStream, rootType,
16481                 reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
16482                     structExtension_out));
16483             break;
16484         }
16485         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
16486             unmarshal_VkAttachmentReferenceStencilLayout(
16487                 vkStream, rootType,
16488                 reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
16489             break;
16490         }
16491         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
16492             unmarshal_VkAttachmentDescriptionStencilLayout(
16493                 vkStream, rootType,
16494                 reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
16495             break;
16496         }
16497         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
16498             unmarshal_VkPhysicalDeviceHostQueryResetFeatures(
16499                 vkStream, rootType,
16500                 reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
16501             break;
16502         }
16503         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
16504             unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
16505                 vkStream, rootType,
16506                 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
16507             break;
16508         }
16509         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
16510             unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
16511                 vkStream, rootType,
16512                 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(
16513                     structExtension_out));
16514             break;
16515         }
16516         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
16517             unmarshal_VkSemaphoreTypeCreateInfo(
16518                 vkStream, rootType,
16519                 reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
16520             break;
16521         }
16522         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
16523             unmarshal_VkTimelineSemaphoreSubmitInfo(
16524                 vkStream, rootType,
16525                 reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
16526             break;
16527         }
16528         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
16529             unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
16530                 vkStream, rootType,
16531                 reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(
16532                     structExtension_out));
16533             break;
16534         }
16535         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
16536             unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
16537                 vkStream, rootType,
16538                 reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
16539             break;
16540         }
16541         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
16542             unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
16543                 vkStream, rootType,
16544                 reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
16545             break;
16546         }
16547 #endif
16548 #ifdef VK_VERSION_1_3
16549         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
16550             unmarshal_VkPhysicalDeviceVulkan13Features(
16551                 vkStream, rootType,
16552                 reinterpret_cast<VkPhysicalDeviceVulkan13Features*>(structExtension_out));
16553             break;
16554         }
16555         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
16556             unmarshal_VkPhysicalDeviceVulkan13Properties(
16557                 vkStream, rootType,
16558                 reinterpret_cast<VkPhysicalDeviceVulkan13Properties*>(structExtension_out));
16559             break;
16560         }
16561         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
16562             unmarshal_VkPipelineCreationFeedbackCreateInfo(
16563                 vkStream, rootType,
16564                 reinterpret_cast<VkPipelineCreationFeedbackCreateInfo*>(structExtension_out));
16565             break;
16566         }
16567         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
16568             unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
16569                 vkStream, rootType,
16570                 reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
16571                     structExtension_out));
16572             break;
16573         }
16574         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
16575             unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
16576                 vkStream, rootType,
16577                 reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
16578                     structExtension_out));
16579             break;
16580         }
16581         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
16582             unmarshal_VkPhysicalDevicePrivateDataFeatures(
16583                 vkStream, rootType,
16584                 reinterpret_cast<VkPhysicalDevicePrivateDataFeatures*>(structExtension_out));
16585             break;
16586         }
16587         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
16588             unmarshal_VkDevicePrivateDataCreateInfo(
16589                 vkStream, rootType,
16590                 reinterpret_cast<VkDevicePrivateDataCreateInfo*>(structExtension_out));
16591             break;
16592         }
16593         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
16594             unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
16595                 vkStream, rootType,
16596                 reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
16597                     structExtension_out));
16598             break;
16599         }
16600         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
16601             unmarshal_VkMemoryBarrier2(vkStream, rootType,
16602                                        reinterpret_cast<VkMemoryBarrier2*>(structExtension_out));
16603             break;
16604         }
16605         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
16606             unmarshal_VkPhysicalDeviceSynchronization2Features(
16607                 vkStream, rootType,
16608                 reinterpret_cast<VkPhysicalDeviceSynchronization2Features*>(structExtension_out));
16609             break;
16610         }
16611         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
16612             unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
16613                 vkStream, rootType,
16614                 reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
16615                     structExtension_out));
16616             break;
16617         }
16618         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
16619             unmarshal_VkPhysicalDeviceImageRobustnessFeatures(
16620                 vkStream, rootType,
16621                 reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures*>(structExtension_out));
16622             break;
16623         }
16624         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
16625             unmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
16626                 vkStream, rootType,
16627                 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures*>(
16628                     structExtension_out));
16629             break;
16630         }
16631         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
16632             unmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
16633                 vkStream, rootType,
16634                 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties*>(
16635                     structExtension_out));
16636             break;
16637         }
16638         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
16639             unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
16640                 vkStream, rootType,
16641                 reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
16642                     structExtension_out));
16643             break;
16644         }
16645         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
16646             unmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
16647                 vkStream, rootType,
16648                 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures*>(structExtension_out));
16649             break;
16650         }
16651         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
16652             unmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
16653                 vkStream, rootType,
16654                 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties*>(
16655                     structExtension_out));
16656             break;
16657         }
16658         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
16659             unmarshal_VkWriteDescriptorSetInlineUniformBlock(
16660                 vkStream, rootType,
16661                 reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock*>(structExtension_out));
16662             break;
16663         }
16664         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
16665             unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
16666                 vkStream, rootType,
16667                 reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo*>(
16668                     structExtension_out));
16669             break;
16670         }
16671         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
16672             unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
16673                 vkStream, rootType,
16674                 reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
16675                     structExtension_out));
16676             break;
16677         }
16678         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
16679             unmarshal_VkPipelineRenderingCreateInfo(
16680                 vkStream, rootType,
16681                 reinterpret_cast<VkPipelineRenderingCreateInfo*>(structExtension_out));
16682             break;
16683         }
16684         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
16685             unmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
16686                 vkStream, rootType,
16687                 reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension_out));
16688             break;
16689         }
16690         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
16691             unmarshal_VkCommandBufferInheritanceRenderingInfo(
16692                 vkStream, rootType,
16693                 reinterpret_cast<VkCommandBufferInheritanceRenderingInfo*>(structExtension_out));
16694             break;
16695         }
16696         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
16697             unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
16698                 vkStream, rootType,
16699                 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
16700                     structExtension_out));
16701             break;
16702         }
16703         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
16704             unmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
16705                 vkStream, rootType,
16706                 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties*>(
16707                     structExtension_out));
16708             break;
16709         }
16710         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
16711             unmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
16712                 vkStream, rootType,
16713                 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties*>(
16714                     structExtension_out));
16715             break;
16716         }
16717         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
16718             unmarshal_VkFormatProperties3(
16719                 vkStream, rootType, reinterpret_cast<VkFormatProperties3*>(structExtension_out));
16720             break;
16721         }
16722         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
16723             unmarshal_VkPhysicalDeviceMaintenance4Features(
16724                 vkStream, rootType,
16725                 reinterpret_cast<VkPhysicalDeviceMaintenance4Features*>(structExtension_out));
16726             break;
16727         }
16728         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
16729             unmarshal_VkPhysicalDeviceMaintenance4Properties(
16730                 vkStream, rootType,
16731                 reinterpret_cast<VkPhysicalDeviceMaintenance4Properties*>(structExtension_out));
16732             break;
16733         }
16734 #endif
16735 #ifdef VK_VERSION_1_4
16736         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES: {
16737             unmarshal_VkPhysicalDeviceVulkan14Features(
16738                 vkStream, rootType,
16739                 reinterpret_cast<VkPhysicalDeviceVulkan14Features*>(structExtension_out));
16740             break;
16741         }
16742         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES: {
16743             unmarshal_VkPhysicalDeviceVulkan14Properties(
16744                 vkStream, rootType,
16745                 reinterpret_cast<VkPhysicalDeviceVulkan14Properties*>(structExtension_out));
16746             break;
16747         }
16748         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO: {
16749             unmarshal_VkDeviceQueueGlobalPriorityCreateInfo(
16750                 vkStream, rootType,
16751                 reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfo*>(structExtension_out));
16752             break;
16753         }
16754         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES: {
16755             unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeatures(
16756                 vkStream, rootType,
16757                 reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeatures*>(
16758                     structExtension_out));
16759             break;
16760         }
16761         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES: {
16762             unmarshal_VkQueueFamilyGlobalPriorityProperties(
16763                 vkStream, rootType,
16764                 reinterpret_cast<VkQueueFamilyGlobalPriorityProperties*>(structExtension_out));
16765             break;
16766         }
16767         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES: {
16768             unmarshal_VkPhysicalDeviceShaderSubgroupRotateFeatures(
16769                 vkStream, rootType,
16770                 reinterpret_cast<VkPhysicalDeviceShaderSubgroupRotateFeatures*>(
16771                     structExtension_out));
16772             break;
16773         }
16774         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES: {
16775             unmarshal_VkPhysicalDeviceShaderFloatControls2Features(
16776                 vkStream, rootType,
16777                 reinterpret_cast<VkPhysicalDeviceShaderFloatControls2Features*>(
16778                     structExtension_out));
16779             break;
16780         }
16781         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES: {
16782             unmarshal_VkPhysicalDeviceShaderExpectAssumeFeatures(
16783                 vkStream, rootType,
16784                 reinterpret_cast<VkPhysicalDeviceShaderExpectAssumeFeatures*>(structExtension_out));
16785             break;
16786         }
16787         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES: {
16788             unmarshal_VkPhysicalDeviceLineRasterizationFeatures(
16789                 vkStream, rootType,
16790                 reinterpret_cast<VkPhysicalDeviceLineRasterizationFeatures*>(structExtension_out));
16791             break;
16792         }
16793         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES: {
16794             unmarshal_VkPhysicalDeviceLineRasterizationProperties(
16795                 vkStream, rootType,
16796                 reinterpret_cast<VkPhysicalDeviceLineRasterizationProperties*>(
16797                     structExtension_out));
16798             break;
16799         }
16800         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO: {
16801             unmarshal_VkPipelineRasterizationLineStateCreateInfo(
16802                 vkStream, rootType,
16803                 reinterpret_cast<VkPipelineRasterizationLineStateCreateInfo*>(structExtension_out));
16804             break;
16805         }
16806         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES: {
16807             unmarshal_VkPhysicalDeviceVertexAttributeDivisorProperties(
16808                 vkStream, rootType,
16809                 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorProperties*>(
16810                     structExtension_out));
16811             break;
16812         }
16813         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO: {
16814             unmarshal_VkPipelineVertexInputDivisorStateCreateInfo(
16815                 vkStream, rootType,
16816                 reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfo*>(
16817                     structExtension_out));
16818             break;
16819         }
16820         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES: {
16821             unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeatures(
16822                 vkStream, rootType,
16823                 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeatures*>(
16824                     structExtension_out));
16825             break;
16826         }
16827         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES: {
16828             unmarshal_VkPhysicalDeviceIndexTypeUint8Features(
16829                 vkStream, rootType,
16830                 reinterpret_cast<VkPhysicalDeviceIndexTypeUint8Features*>(structExtension_out));
16831             break;
16832         }
16833         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES: {
16834             unmarshal_VkPhysicalDeviceMaintenance5Features(
16835                 vkStream, rootType,
16836                 reinterpret_cast<VkPhysicalDeviceMaintenance5Features*>(structExtension_out));
16837             break;
16838         }
16839         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES: {
16840             unmarshal_VkPhysicalDeviceMaintenance5Properties(
16841                 vkStream, rootType,
16842                 reinterpret_cast<VkPhysicalDeviceMaintenance5Properties*>(structExtension_out));
16843             break;
16844         }
16845         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO: {
16846             unmarshal_VkPipelineCreateFlags2CreateInfo(
16847                 vkStream, rootType,
16848                 reinterpret_cast<VkPipelineCreateFlags2CreateInfo*>(structExtension_out));
16849             break;
16850         }
16851         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO: {
16852             unmarshal_VkBufferUsageFlags2CreateInfo(
16853                 vkStream, rootType,
16854                 reinterpret_cast<VkBufferUsageFlags2CreateInfo*>(structExtension_out));
16855             break;
16856         }
16857         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES: {
16858             unmarshal_VkPhysicalDevicePushDescriptorProperties(
16859                 vkStream, rootType,
16860                 reinterpret_cast<VkPhysicalDevicePushDescriptorProperties*>(structExtension_out));
16861             break;
16862         }
16863         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES: {
16864             unmarshal_VkPhysicalDeviceDynamicRenderingLocalReadFeatures(
16865                 vkStream, rootType,
16866                 reinterpret_cast<VkPhysicalDeviceDynamicRenderingLocalReadFeatures*>(
16867                     structExtension_out));
16868             break;
16869         }
16870         case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO: {
16871             unmarshal_VkRenderingAttachmentLocationInfo(
16872                 vkStream, rootType,
16873                 reinterpret_cast<VkRenderingAttachmentLocationInfo*>(structExtension_out));
16874             break;
16875         }
16876         case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO: {
16877             unmarshal_VkRenderingInputAttachmentIndexInfo(
16878                 vkStream, rootType,
16879                 reinterpret_cast<VkRenderingInputAttachmentIndexInfo*>(structExtension_out));
16880             break;
16881         }
16882         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES: {
16883             unmarshal_VkPhysicalDeviceMaintenance6Features(
16884                 vkStream, rootType,
16885                 reinterpret_cast<VkPhysicalDeviceMaintenance6Features*>(structExtension_out));
16886             break;
16887         }
16888         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES: {
16889             unmarshal_VkPhysicalDeviceMaintenance6Properties(
16890                 vkStream, rootType,
16891                 reinterpret_cast<VkPhysicalDeviceMaintenance6Properties*>(structExtension_out));
16892             break;
16893         }
16894         case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS: {
16895             unmarshal_VkBindMemoryStatus(
16896                 vkStream, rootType, reinterpret_cast<VkBindMemoryStatus*>(structExtension_out));
16897             break;
16898         }
16899         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES: {
16900             unmarshal_VkPhysicalDevicePipelineProtectedAccessFeatures(
16901                 vkStream, rootType,
16902                 reinterpret_cast<VkPhysicalDevicePipelineProtectedAccessFeatures*>(
16903                     structExtension_out));
16904             break;
16905         }
16906         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES: {
16907             unmarshal_VkPhysicalDevicePipelineRobustnessFeatures(
16908                 vkStream, rootType,
16909                 reinterpret_cast<VkPhysicalDevicePipelineRobustnessFeatures*>(structExtension_out));
16910             break;
16911         }
16912         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES: {
16913             unmarshal_VkPhysicalDevicePipelineRobustnessProperties(
16914                 vkStream, rootType,
16915                 reinterpret_cast<VkPhysicalDevicePipelineRobustnessProperties*>(
16916                     structExtension_out));
16917             break;
16918         }
16919         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO: {
16920             unmarshal_VkPipelineRobustnessCreateInfo(
16921                 vkStream, rootType,
16922                 reinterpret_cast<VkPipelineRobustnessCreateInfo*>(structExtension_out));
16923             break;
16924         }
16925         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES: {
16926             unmarshal_VkPhysicalDeviceHostImageCopyFeatures(
16927                 vkStream, rootType,
16928                 reinterpret_cast<VkPhysicalDeviceHostImageCopyFeatures*>(structExtension_out));
16929             break;
16930         }
16931         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES: {
16932             unmarshal_VkPhysicalDeviceHostImageCopyProperties(
16933                 vkStream, rootType,
16934                 reinterpret_cast<VkPhysicalDeviceHostImageCopyProperties*>(structExtension_out));
16935             break;
16936         }
16937         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE: {
16938             unmarshal_VkSubresourceHostMemcpySize(
16939                 vkStream, rootType,
16940                 reinterpret_cast<VkSubresourceHostMemcpySize*>(structExtension_out));
16941             break;
16942         }
16943         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY: {
16944             unmarshal_VkHostImageCopyDevicePerformanceQuery(
16945                 vkStream, rootType,
16946                 reinterpret_cast<VkHostImageCopyDevicePerformanceQuery*>(structExtension_out));
16947             break;
16948         }
16949 #endif
16950 #ifdef VK_KHR_incremental_present
16951         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
16952             unmarshal_VkPresentRegionsKHR(
16953                 vkStream, rootType, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
16954             break;
16955         }
16956 #endif
16957 #ifdef VK_KHR_pipeline_executable_properties
16958         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
16959             unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
16960                 vkStream, rootType,
16961                 reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
16962                     structExtension_out));
16963             break;
16964         }
16965 #endif
16966 #ifdef VK_ANDROID_native_buffer
16967         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
16968             unmarshal_VkNativeBufferANDROID(
16969                 vkStream, rootType, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
16970             break;
16971         }
16972 #endif
16973 #ifdef VK_EXT_transform_feedback
16974         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
16975             unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
16976                 vkStream, rootType,
16977                 reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
16978                     structExtension_out));
16979             break;
16980         }
16981         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
16982             unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
16983                 vkStream, rootType,
16984                 reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
16985                     structExtension_out));
16986             break;
16987         }
16988         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
16989             unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
16990                 vkStream, rootType,
16991                 reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(
16992                     structExtension_out));
16993             break;
16994         }
16995 #endif
16996 #ifdef VK_EXT_depth_clip_enable
16997         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
16998             unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
16999                 vkStream, rootType,
17000                 reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
17001             break;
17002         }
17003         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
17004             unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
17005                 vkStream, rootType,
17006                 reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
17007                     structExtension_out));
17008             break;
17009         }
17010 #endif
17011 #ifdef VK_EXT_image_drm_format_modifier
17012         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
17013             unmarshal_VkDrmFormatModifierPropertiesListEXT(
17014                 vkStream, rootType,
17015                 reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
17016             break;
17017         }
17018         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
17019             unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
17020                 vkStream, rootType,
17021                 reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
17022                     structExtension_out));
17023             break;
17024         }
17025         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
17026             unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
17027                 vkStream, rootType,
17028                 reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
17029             break;
17030         }
17031         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
17032             unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
17033                 vkStream, rootType,
17034                 reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
17035                     structExtension_out));
17036             break;
17037         }
17038         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
17039             unmarshal_VkDrmFormatModifierPropertiesList2EXT(
17040                 vkStream, rootType,
17041                 reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
17042             break;
17043         }
17044 #endif
17045 #ifdef VK_EXT_vertex_attribute_divisor
17046         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
17047             unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
17048                 vkStream, rootType,
17049                 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
17050                     structExtension_out));
17051             break;
17052         }
17053 #endif
17054 #ifdef VK_EXT_fragment_density_map
17055         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
17056             switch (rootType) {
17057                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
17058                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
17059                         vkStream, rootType,
17060                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
17061                             structExtension_out));
17062                     break;
17063                 }
17064                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
17065                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
17066                         vkStream, rootType,
17067                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
17068                             structExtension_out));
17069                     break;
17070                 }
17071                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
17072                     unmarshal_VkImportColorBufferGOOGLE(
17073                         vkStream, rootType,
17074                         reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
17075                     break;
17076                 }
17077                 default: {
17078                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
17079                         vkStream, rootType,
17080                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
17081                             structExtension_out));
17082                     break;
17083                 }
17084             }
17085             break;
17086         }
17087         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
17088             switch (rootType) {
17089                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
17090                     unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
17091                         vkStream, rootType,
17092                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
17093                             structExtension_out));
17094                     break;
17095                 }
17096                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
17097                     unmarshal_VkCreateBlobGOOGLE(
17098                         vkStream, rootType,
17099                         reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out));
17100                     break;
17101                 }
17102                 default: {
17103                     unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
17104                         vkStream, rootType,
17105                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
17106                             structExtension_out));
17107                     break;
17108                 }
17109             }
17110             break;
17111         }
17112         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
17113             switch (rootType) {
17114                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
17115                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
17116                         vkStream, rootType,
17117                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
17118                             structExtension_out));
17119                     break;
17120                 }
17121                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
17122                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
17123                         vkStream, rootType,
17124                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
17125                             structExtension_out));
17126                     break;
17127                 }
17128                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
17129                     unmarshal_VkImportBufferGOOGLE(
17130                         vkStream, rootType,
17131                         reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
17132                     break;
17133                 }
17134                 default: {
17135                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
17136                         vkStream, rootType,
17137                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
17138                             structExtension_out));
17139                     break;
17140                 }
17141             }
17142             break;
17143         }
17144         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
17145             unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
17146                 vkStream, rootType,
17147                 reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
17148                     structExtension_out));
17149             break;
17150         }
17151 #endif
17152 #ifdef VK_EXT_provoking_vertex
17153         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
17154             unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
17155                 vkStream, rootType,
17156                 reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
17157             break;
17158         }
17159         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
17160             unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
17161                 vkStream, rootType,
17162                 reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
17163                     structExtension_out));
17164             break;
17165         }
17166         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
17167             unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
17168                 vkStream, rootType,
17169                 reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
17170                     structExtension_out));
17171             break;
17172         }
17173 #endif
17174 #ifdef VK_EXT_extended_dynamic_state
17175         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
17176             unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
17177                 vkStream, rootType,
17178                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
17179                     structExtension_out));
17180             break;
17181         }
17182 #endif
17183 #ifdef VK_EXT_texel_buffer_alignment
17184         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
17185             unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
17186                 vkStream, rootType,
17187                 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
17188                     structExtension_out));
17189             break;
17190         }
17191 #endif
17192 #ifdef VK_EXT_device_memory_report
17193         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
17194             unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
17195                 vkStream, rootType,
17196                 reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
17197                     structExtension_out));
17198             break;
17199         }
17200         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
17201             unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
17202                 vkStream, rootType,
17203                 reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
17204             break;
17205         }
17206 #endif
17207 #ifdef VK_EXT_robustness2
17208         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
17209             unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
17210                 vkStream, rootType,
17211                 reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
17212             break;
17213         }
17214         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
17215             unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
17216                 vkStream, rootType,
17217                 reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
17218             break;
17219         }
17220 #endif
17221 #ifdef VK_EXT_custom_border_color
17222         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
17223             unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
17224                 vkStream, rootType,
17225                 reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
17226             break;
17227         }
17228         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
17229             unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
17230                 vkStream, rootType,
17231                 reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
17232                     structExtension_out));
17233             break;
17234         }
17235         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
17236             unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
17237                 vkStream, rootType,
17238                 reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
17239                     structExtension_out));
17240             break;
17241         }
17242 #endif
17243 #ifdef VK_EXT_graphics_pipeline_library
17244         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
17245             unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
17246                 vkStream, rootType,
17247                 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
17248                     structExtension_out));
17249             break;
17250         }
17251         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
17252             unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
17253                 vkStream, rootType,
17254                 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
17255                     structExtension_out));
17256             break;
17257         }
17258         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
17259             unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
17260                 vkStream, rootType,
17261                 reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension_out));
17262             break;
17263         }
17264 #endif
17265 #ifdef VK_EXT_ycbcr_2plane_444_formats
17266         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
17267             unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
17268                 vkStream, rootType,
17269                 reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
17270                     structExtension_out));
17271             break;
17272         }
17273 #endif
17274 #ifdef VK_EXT_image_compression_control
17275         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
17276             unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
17277                 vkStream, rootType,
17278                 reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
17279                     structExtension_out));
17280             break;
17281         }
17282         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
17283             unmarshal_VkImageCompressionControlEXT(
17284                 vkStream, rootType,
17285                 reinterpret_cast<VkImageCompressionControlEXT*>(structExtension_out));
17286             break;
17287         }
17288         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
17289             unmarshal_VkImageCompressionPropertiesEXT(
17290                 vkStream, rootType,
17291                 reinterpret_cast<VkImageCompressionPropertiesEXT*>(structExtension_out));
17292             break;
17293         }
17294 #endif
17295 #ifdef VK_EXT_4444_formats
17296         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
17297             unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
17298                 vkStream, rootType,
17299                 reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
17300             break;
17301         }
17302 #endif
17303 #ifdef VK_EXT_primitive_topology_list_restart
17304         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
17305             unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
17306                 vkStream, rootType,
17307                 reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
17308                     structExtension_out));
17309             break;
17310         }
17311 #endif
17312 #ifdef VK_EXT_extended_dynamic_state2
17313         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
17314             unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
17315                 vkStream, rootType,
17316                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
17317                     structExtension_out));
17318             break;
17319         }
17320 #endif
17321 #ifdef VK_EXT_color_write_enable
17322         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
17323             unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
17324                 vkStream, rootType,
17325                 reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
17326                     structExtension_out));
17327             break;
17328         }
17329         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
17330             unmarshal_VkPipelineColorWriteCreateInfoEXT(
17331                 vkStream, rootType,
17332                 reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
17333             break;
17334         }
17335 #endif
17336 #ifdef VK_GOOGLE_gfxstream
17337         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
17338             unmarshal_VkImportColorBufferGOOGLE(
17339                 vkStream, rootType,
17340                 reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
17341             break;
17342         }
17343         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
17344             unmarshal_VkImportBufferGOOGLE(
17345                 vkStream, rootType, reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
17346             break;
17347         }
17348         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
17349             unmarshal_VkCreateBlobGOOGLE(
17350                 vkStream, rootType, reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out));
17351             break;
17352         }
17353 #endif
17354 #ifdef VK_EXT_image_compression_control_swapchain
17355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
17356             unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
17357                 vkStream, rootType,
17358                 reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
17359                     structExtension_out));
17360             break;
17361         }
17362 #endif
17363         default: {
17364             // fatal; the switch is only taken if the extension struct is known
17365             abort();
17366         }
17367     }
17368 }
17369 
api_opcode_to_string(const uint32_t opcode)17370 const char* api_opcode_to_string(const uint32_t opcode) {
17371     switch (opcode) {
17372 #ifdef VK_VERSION_1_0
17373         case OP_vkCreateInstance: {
17374             return "OP_vkCreateInstance";
17375         }
17376         case OP_vkDestroyInstance: {
17377             return "OP_vkDestroyInstance";
17378         }
17379         case OP_vkEnumeratePhysicalDevices: {
17380             return "OP_vkEnumeratePhysicalDevices";
17381         }
17382         case OP_vkGetPhysicalDeviceFeatures: {
17383             return "OP_vkGetPhysicalDeviceFeatures";
17384         }
17385         case OP_vkGetPhysicalDeviceFormatProperties: {
17386             return "OP_vkGetPhysicalDeviceFormatProperties";
17387         }
17388         case OP_vkGetPhysicalDeviceImageFormatProperties: {
17389             return "OP_vkGetPhysicalDeviceImageFormatProperties";
17390         }
17391         case OP_vkGetPhysicalDeviceProperties: {
17392             return "OP_vkGetPhysicalDeviceProperties";
17393         }
17394         case OP_vkGetPhysicalDeviceQueueFamilyProperties: {
17395             return "OP_vkGetPhysicalDeviceQueueFamilyProperties";
17396         }
17397         case OP_vkGetPhysicalDeviceMemoryProperties: {
17398             return "OP_vkGetPhysicalDeviceMemoryProperties";
17399         }
17400         case OP_vkGetInstanceProcAddr: {
17401             return "OP_vkGetInstanceProcAddr";
17402         }
17403         case OP_vkGetDeviceProcAddr: {
17404             return "OP_vkGetDeviceProcAddr";
17405         }
17406         case OP_vkCreateDevice: {
17407             return "OP_vkCreateDevice";
17408         }
17409         case OP_vkDestroyDevice: {
17410             return "OP_vkDestroyDevice";
17411         }
17412         case OP_vkEnumerateInstanceExtensionProperties: {
17413             return "OP_vkEnumerateInstanceExtensionProperties";
17414         }
17415         case OP_vkEnumerateDeviceExtensionProperties: {
17416             return "OP_vkEnumerateDeviceExtensionProperties";
17417         }
17418         case OP_vkEnumerateInstanceLayerProperties: {
17419             return "OP_vkEnumerateInstanceLayerProperties";
17420         }
17421         case OP_vkEnumerateDeviceLayerProperties: {
17422             return "OP_vkEnumerateDeviceLayerProperties";
17423         }
17424         case OP_vkGetDeviceQueue: {
17425             return "OP_vkGetDeviceQueue";
17426         }
17427         case OP_vkQueueSubmit: {
17428             return "OP_vkQueueSubmit";
17429         }
17430         case OP_vkQueueWaitIdle: {
17431             return "OP_vkQueueWaitIdle";
17432         }
17433         case OP_vkDeviceWaitIdle: {
17434             return "OP_vkDeviceWaitIdle";
17435         }
17436         case OP_vkAllocateMemory: {
17437             return "OP_vkAllocateMemory";
17438         }
17439         case OP_vkFreeMemory: {
17440             return "OP_vkFreeMemory";
17441         }
17442         case OP_vkMapMemory: {
17443             return "OP_vkMapMemory";
17444         }
17445         case OP_vkUnmapMemory: {
17446             return "OP_vkUnmapMemory";
17447         }
17448         case OP_vkFlushMappedMemoryRanges: {
17449             return "OP_vkFlushMappedMemoryRanges";
17450         }
17451         case OP_vkInvalidateMappedMemoryRanges: {
17452             return "OP_vkInvalidateMappedMemoryRanges";
17453         }
17454         case OP_vkGetDeviceMemoryCommitment: {
17455             return "OP_vkGetDeviceMemoryCommitment";
17456         }
17457         case OP_vkBindBufferMemory: {
17458             return "OP_vkBindBufferMemory";
17459         }
17460         case OP_vkBindImageMemory: {
17461             return "OP_vkBindImageMemory";
17462         }
17463         case OP_vkGetBufferMemoryRequirements: {
17464             return "OP_vkGetBufferMemoryRequirements";
17465         }
17466         case OP_vkGetImageMemoryRequirements: {
17467             return "OP_vkGetImageMemoryRequirements";
17468         }
17469         case OP_vkGetImageSparseMemoryRequirements: {
17470             return "OP_vkGetImageSparseMemoryRequirements";
17471         }
17472         case OP_vkGetPhysicalDeviceSparseImageFormatProperties: {
17473             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties";
17474         }
17475         case OP_vkQueueBindSparse: {
17476             return "OP_vkQueueBindSparse";
17477         }
17478         case OP_vkCreateFence: {
17479             return "OP_vkCreateFence";
17480         }
17481         case OP_vkDestroyFence: {
17482             return "OP_vkDestroyFence";
17483         }
17484         case OP_vkResetFences: {
17485             return "OP_vkResetFences";
17486         }
17487         case OP_vkGetFenceStatus: {
17488             return "OP_vkGetFenceStatus";
17489         }
17490         case OP_vkWaitForFences: {
17491             return "OP_vkWaitForFences";
17492         }
17493         case OP_vkCreateSemaphore: {
17494             return "OP_vkCreateSemaphore";
17495         }
17496         case OP_vkDestroySemaphore: {
17497             return "OP_vkDestroySemaphore";
17498         }
17499         case OP_vkCreateEvent: {
17500             return "OP_vkCreateEvent";
17501         }
17502         case OP_vkDestroyEvent: {
17503             return "OP_vkDestroyEvent";
17504         }
17505         case OP_vkGetEventStatus: {
17506             return "OP_vkGetEventStatus";
17507         }
17508         case OP_vkSetEvent: {
17509             return "OP_vkSetEvent";
17510         }
17511         case OP_vkResetEvent: {
17512             return "OP_vkResetEvent";
17513         }
17514         case OP_vkCreateQueryPool: {
17515             return "OP_vkCreateQueryPool";
17516         }
17517         case OP_vkDestroyQueryPool: {
17518             return "OP_vkDestroyQueryPool";
17519         }
17520         case OP_vkGetQueryPoolResults: {
17521             return "OP_vkGetQueryPoolResults";
17522         }
17523         case OP_vkCreateBuffer: {
17524             return "OP_vkCreateBuffer";
17525         }
17526         case OP_vkDestroyBuffer: {
17527             return "OP_vkDestroyBuffer";
17528         }
17529         case OP_vkCreateBufferView: {
17530             return "OP_vkCreateBufferView";
17531         }
17532         case OP_vkDestroyBufferView: {
17533             return "OP_vkDestroyBufferView";
17534         }
17535         case OP_vkCreateImage: {
17536             return "OP_vkCreateImage";
17537         }
17538         case OP_vkDestroyImage: {
17539             return "OP_vkDestroyImage";
17540         }
17541         case OP_vkGetImageSubresourceLayout: {
17542             return "OP_vkGetImageSubresourceLayout";
17543         }
17544         case OP_vkCreateImageView: {
17545             return "OP_vkCreateImageView";
17546         }
17547         case OP_vkDestroyImageView: {
17548             return "OP_vkDestroyImageView";
17549         }
17550         case OP_vkCreateShaderModule: {
17551             return "OP_vkCreateShaderModule";
17552         }
17553         case OP_vkDestroyShaderModule: {
17554             return "OP_vkDestroyShaderModule";
17555         }
17556         case OP_vkCreatePipelineCache: {
17557             return "OP_vkCreatePipelineCache";
17558         }
17559         case OP_vkDestroyPipelineCache: {
17560             return "OP_vkDestroyPipelineCache";
17561         }
17562         case OP_vkGetPipelineCacheData: {
17563             return "OP_vkGetPipelineCacheData";
17564         }
17565         case OP_vkMergePipelineCaches: {
17566             return "OP_vkMergePipelineCaches";
17567         }
17568         case OP_vkCreateGraphicsPipelines: {
17569             return "OP_vkCreateGraphicsPipelines";
17570         }
17571         case OP_vkCreateComputePipelines: {
17572             return "OP_vkCreateComputePipelines";
17573         }
17574         case OP_vkDestroyPipeline: {
17575             return "OP_vkDestroyPipeline";
17576         }
17577         case OP_vkCreatePipelineLayout: {
17578             return "OP_vkCreatePipelineLayout";
17579         }
17580         case OP_vkDestroyPipelineLayout: {
17581             return "OP_vkDestroyPipelineLayout";
17582         }
17583         case OP_vkCreateSampler: {
17584             return "OP_vkCreateSampler";
17585         }
17586         case OP_vkDestroySampler: {
17587             return "OP_vkDestroySampler";
17588         }
17589         case OP_vkCreateDescriptorSetLayout: {
17590             return "OP_vkCreateDescriptorSetLayout";
17591         }
17592         case OP_vkDestroyDescriptorSetLayout: {
17593             return "OP_vkDestroyDescriptorSetLayout";
17594         }
17595         case OP_vkCreateDescriptorPool: {
17596             return "OP_vkCreateDescriptorPool";
17597         }
17598         case OP_vkDestroyDescriptorPool: {
17599             return "OP_vkDestroyDescriptorPool";
17600         }
17601         case OP_vkResetDescriptorPool: {
17602             return "OP_vkResetDescriptorPool";
17603         }
17604         case OP_vkAllocateDescriptorSets: {
17605             return "OP_vkAllocateDescriptorSets";
17606         }
17607         case OP_vkFreeDescriptorSets: {
17608             return "OP_vkFreeDescriptorSets";
17609         }
17610         case OP_vkUpdateDescriptorSets: {
17611             return "OP_vkUpdateDescriptorSets";
17612         }
17613         case OP_vkCreateFramebuffer: {
17614             return "OP_vkCreateFramebuffer";
17615         }
17616         case OP_vkDestroyFramebuffer: {
17617             return "OP_vkDestroyFramebuffer";
17618         }
17619         case OP_vkCreateRenderPass: {
17620             return "OP_vkCreateRenderPass";
17621         }
17622         case OP_vkDestroyRenderPass: {
17623             return "OP_vkDestroyRenderPass";
17624         }
17625         case OP_vkGetRenderAreaGranularity: {
17626             return "OP_vkGetRenderAreaGranularity";
17627         }
17628         case OP_vkCreateCommandPool: {
17629             return "OP_vkCreateCommandPool";
17630         }
17631         case OP_vkDestroyCommandPool: {
17632             return "OP_vkDestroyCommandPool";
17633         }
17634         case OP_vkResetCommandPool: {
17635             return "OP_vkResetCommandPool";
17636         }
17637         case OP_vkAllocateCommandBuffers: {
17638             return "OP_vkAllocateCommandBuffers";
17639         }
17640         case OP_vkFreeCommandBuffers: {
17641             return "OP_vkFreeCommandBuffers";
17642         }
17643         case OP_vkBeginCommandBuffer: {
17644             return "OP_vkBeginCommandBuffer";
17645         }
17646         case OP_vkEndCommandBuffer: {
17647             return "OP_vkEndCommandBuffer";
17648         }
17649         case OP_vkResetCommandBuffer: {
17650             return "OP_vkResetCommandBuffer";
17651         }
17652         case OP_vkCmdBindPipeline: {
17653             return "OP_vkCmdBindPipeline";
17654         }
17655         case OP_vkCmdSetViewport: {
17656             return "OP_vkCmdSetViewport";
17657         }
17658         case OP_vkCmdSetScissor: {
17659             return "OP_vkCmdSetScissor";
17660         }
17661         case OP_vkCmdSetLineWidth: {
17662             return "OP_vkCmdSetLineWidth";
17663         }
17664         case OP_vkCmdSetDepthBias: {
17665             return "OP_vkCmdSetDepthBias";
17666         }
17667         case OP_vkCmdSetBlendConstants: {
17668             return "OP_vkCmdSetBlendConstants";
17669         }
17670         case OP_vkCmdSetDepthBounds: {
17671             return "OP_vkCmdSetDepthBounds";
17672         }
17673         case OP_vkCmdSetStencilCompareMask: {
17674             return "OP_vkCmdSetStencilCompareMask";
17675         }
17676         case OP_vkCmdSetStencilWriteMask: {
17677             return "OP_vkCmdSetStencilWriteMask";
17678         }
17679         case OP_vkCmdSetStencilReference: {
17680             return "OP_vkCmdSetStencilReference";
17681         }
17682         case OP_vkCmdBindDescriptorSets: {
17683             return "OP_vkCmdBindDescriptorSets";
17684         }
17685         case OP_vkCmdBindIndexBuffer: {
17686             return "OP_vkCmdBindIndexBuffer";
17687         }
17688         case OP_vkCmdBindVertexBuffers: {
17689             return "OP_vkCmdBindVertexBuffers";
17690         }
17691         case OP_vkCmdDraw: {
17692             return "OP_vkCmdDraw";
17693         }
17694         case OP_vkCmdDrawIndexed: {
17695             return "OP_vkCmdDrawIndexed";
17696         }
17697         case OP_vkCmdDrawIndirect: {
17698             return "OP_vkCmdDrawIndirect";
17699         }
17700         case OP_vkCmdDrawIndexedIndirect: {
17701             return "OP_vkCmdDrawIndexedIndirect";
17702         }
17703         case OP_vkCmdDispatch: {
17704             return "OP_vkCmdDispatch";
17705         }
17706         case OP_vkCmdDispatchIndirect: {
17707             return "OP_vkCmdDispatchIndirect";
17708         }
17709         case OP_vkCmdCopyBuffer: {
17710             return "OP_vkCmdCopyBuffer";
17711         }
17712         case OP_vkCmdCopyImage: {
17713             return "OP_vkCmdCopyImage";
17714         }
17715         case OP_vkCmdBlitImage: {
17716             return "OP_vkCmdBlitImage";
17717         }
17718         case OP_vkCmdCopyBufferToImage: {
17719             return "OP_vkCmdCopyBufferToImage";
17720         }
17721         case OP_vkCmdCopyImageToBuffer: {
17722             return "OP_vkCmdCopyImageToBuffer";
17723         }
17724         case OP_vkCmdUpdateBuffer: {
17725             return "OP_vkCmdUpdateBuffer";
17726         }
17727         case OP_vkCmdFillBuffer: {
17728             return "OP_vkCmdFillBuffer";
17729         }
17730         case OP_vkCmdClearColorImage: {
17731             return "OP_vkCmdClearColorImage";
17732         }
17733         case OP_vkCmdClearDepthStencilImage: {
17734             return "OP_vkCmdClearDepthStencilImage";
17735         }
17736         case OP_vkCmdClearAttachments: {
17737             return "OP_vkCmdClearAttachments";
17738         }
17739         case OP_vkCmdResolveImage: {
17740             return "OP_vkCmdResolveImage";
17741         }
17742         case OP_vkCmdSetEvent: {
17743             return "OP_vkCmdSetEvent";
17744         }
17745         case OP_vkCmdResetEvent: {
17746             return "OP_vkCmdResetEvent";
17747         }
17748         case OP_vkCmdWaitEvents: {
17749             return "OP_vkCmdWaitEvents";
17750         }
17751         case OP_vkCmdPipelineBarrier: {
17752             return "OP_vkCmdPipelineBarrier";
17753         }
17754         case OP_vkCmdBeginQuery: {
17755             return "OP_vkCmdBeginQuery";
17756         }
17757         case OP_vkCmdEndQuery: {
17758             return "OP_vkCmdEndQuery";
17759         }
17760         case OP_vkCmdResetQueryPool: {
17761             return "OP_vkCmdResetQueryPool";
17762         }
17763         case OP_vkCmdWriteTimestamp: {
17764             return "OP_vkCmdWriteTimestamp";
17765         }
17766         case OP_vkCmdCopyQueryPoolResults: {
17767             return "OP_vkCmdCopyQueryPoolResults";
17768         }
17769         case OP_vkCmdPushConstants: {
17770             return "OP_vkCmdPushConstants";
17771         }
17772         case OP_vkCmdBeginRenderPass: {
17773             return "OP_vkCmdBeginRenderPass";
17774         }
17775         case OP_vkCmdNextSubpass: {
17776             return "OP_vkCmdNextSubpass";
17777         }
17778         case OP_vkCmdEndRenderPass: {
17779             return "OP_vkCmdEndRenderPass";
17780         }
17781         case OP_vkCmdExecuteCommands: {
17782             return "OP_vkCmdExecuteCommands";
17783         }
17784 #endif
17785 #ifdef VK_VERSION_1_1
17786         case OP_vkEnumerateInstanceVersion: {
17787             return "OP_vkEnumerateInstanceVersion";
17788         }
17789         case OP_vkBindBufferMemory2: {
17790             return "OP_vkBindBufferMemory2";
17791         }
17792         case OP_vkBindImageMemory2: {
17793             return "OP_vkBindImageMemory2";
17794         }
17795         case OP_vkGetDeviceGroupPeerMemoryFeatures: {
17796             return "OP_vkGetDeviceGroupPeerMemoryFeatures";
17797         }
17798         case OP_vkCmdSetDeviceMask: {
17799             return "OP_vkCmdSetDeviceMask";
17800         }
17801         case OP_vkCmdDispatchBase: {
17802             return "OP_vkCmdDispatchBase";
17803         }
17804         case OP_vkEnumeratePhysicalDeviceGroups: {
17805             return "OP_vkEnumeratePhysicalDeviceGroups";
17806         }
17807         case OP_vkGetImageMemoryRequirements2: {
17808             return "OP_vkGetImageMemoryRequirements2";
17809         }
17810         case OP_vkGetBufferMemoryRequirements2: {
17811             return "OP_vkGetBufferMemoryRequirements2";
17812         }
17813         case OP_vkGetImageSparseMemoryRequirements2: {
17814             return "OP_vkGetImageSparseMemoryRequirements2";
17815         }
17816         case OP_vkGetPhysicalDeviceFeatures2: {
17817             return "OP_vkGetPhysicalDeviceFeatures2";
17818         }
17819         case OP_vkGetPhysicalDeviceProperties2: {
17820             return "OP_vkGetPhysicalDeviceProperties2";
17821         }
17822         case OP_vkGetPhysicalDeviceFormatProperties2: {
17823             return "OP_vkGetPhysicalDeviceFormatProperties2";
17824         }
17825         case OP_vkGetPhysicalDeviceImageFormatProperties2: {
17826             return "OP_vkGetPhysicalDeviceImageFormatProperties2";
17827         }
17828         case OP_vkGetPhysicalDeviceQueueFamilyProperties2: {
17829             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2";
17830         }
17831         case OP_vkGetPhysicalDeviceMemoryProperties2: {
17832             return "OP_vkGetPhysicalDeviceMemoryProperties2";
17833         }
17834         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2: {
17835             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2";
17836         }
17837         case OP_vkTrimCommandPool: {
17838             return "OP_vkTrimCommandPool";
17839         }
17840         case OP_vkGetDeviceQueue2: {
17841             return "OP_vkGetDeviceQueue2";
17842         }
17843         case OP_vkCreateSamplerYcbcrConversion: {
17844             return "OP_vkCreateSamplerYcbcrConversion";
17845         }
17846         case OP_vkDestroySamplerYcbcrConversion: {
17847             return "OP_vkDestroySamplerYcbcrConversion";
17848         }
17849         case OP_vkCreateDescriptorUpdateTemplate: {
17850             return "OP_vkCreateDescriptorUpdateTemplate";
17851         }
17852         case OP_vkDestroyDescriptorUpdateTemplate: {
17853             return "OP_vkDestroyDescriptorUpdateTemplate";
17854         }
17855         case OP_vkUpdateDescriptorSetWithTemplate: {
17856             return "OP_vkUpdateDescriptorSetWithTemplate";
17857         }
17858         case OP_vkGetPhysicalDeviceExternalBufferProperties: {
17859             return "OP_vkGetPhysicalDeviceExternalBufferProperties";
17860         }
17861         case OP_vkGetPhysicalDeviceExternalFenceProperties: {
17862             return "OP_vkGetPhysicalDeviceExternalFenceProperties";
17863         }
17864         case OP_vkGetPhysicalDeviceExternalSemaphoreProperties: {
17865             return "OP_vkGetPhysicalDeviceExternalSemaphoreProperties";
17866         }
17867         case OP_vkGetDescriptorSetLayoutSupport: {
17868             return "OP_vkGetDescriptorSetLayoutSupport";
17869         }
17870 #endif
17871 #ifdef VK_KHR_get_physical_device_properties2
17872         case OP_vkGetPhysicalDeviceFeatures2KHR: {
17873             return "OP_vkGetPhysicalDeviceFeatures2KHR";
17874         }
17875         case OP_vkGetPhysicalDeviceProperties2KHR: {
17876             return "OP_vkGetPhysicalDeviceProperties2KHR";
17877         }
17878         case OP_vkGetPhysicalDeviceFormatProperties2KHR: {
17879             return "OP_vkGetPhysicalDeviceFormatProperties2KHR";
17880         }
17881         case OP_vkGetPhysicalDeviceImageFormatProperties2KHR: {
17882             return "OP_vkGetPhysicalDeviceImageFormatProperties2KHR";
17883         }
17884         case OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR: {
17885             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR";
17886         }
17887         case OP_vkGetPhysicalDeviceMemoryProperties2KHR: {
17888             return "OP_vkGetPhysicalDeviceMemoryProperties2KHR";
17889         }
17890         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR: {
17891             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR";
17892         }
17893 #endif
17894 #ifdef VK_KHR_maintenance1
17895         case OP_vkTrimCommandPoolKHR: {
17896             return "OP_vkTrimCommandPoolKHR";
17897         }
17898 #endif
17899 #ifdef VK_KHR_external_memory_capabilities
17900         case OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR: {
17901             return "OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR";
17902         }
17903 #endif
17904 #ifdef VK_KHR_external_semaphore_capabilities
17905         case OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR: {
17906             return "OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR";
17907         }
17908 #endif
17909 #ifdef VK_KHR_external_semaphore_fd
17910         case OP_vkImportSemaphoreFdKHR: {
17911             return "OP_vkImportSemaphoreFdKHR";
17912         }
17913         case OP_vkGetSemaphoreFdKHR: {
17914             return "OP_vkGetSemaphoreFdKHR";
17915         }
17916 #endif
17917 #ifdef VK_KHR_descriptor_update_template
17918         case OP_vkCreateDescriptorUpdateTemplateKHR: {
17919             return "OP_vkCreateDescriptorUpdateTemplateKHR";
17920         }
17921         case OP_vkDestroyDescriptorUpdateTemplateKHR: {
17922             return "OP_vkDestroyDescriptorUpdateTemplateKHR";
17923         }
17924         case OP_vkUpdateDescriptorSetWithTemplateKHR: {
17925             return "OP_vkUpdateDescriptorSetWithTemplateKHR";
17926         }
17927 #endif
17928 #ifdef VK_KHR_create_renderpass2
17929         case OP_vkCreateRenderPass2KHR: {
17930             return "OP_vkCreateRenderPass2KHR";
17931         }
17932         case OP_vkCmdBeginRenderPass2KHR: {
17933             return "OP_vkCmdBeginRenderPass2KHR";
17934         }
17935         case OP_vkCmdNextSubpass2KHR: {
17936             return "OP_vkCmdNextSubpass2KHR";
17937         }
17938         case OP_vkCmdEndRenderPass2KHR: {
17939             return "OP_vkCmdEndRenderPass2KHR";
17940         }
17941 #endif
17942 #ifdef VK_KHR_external_fence_capabilities
17943         case OP_vkGetPhysicalDeviceExternalFencePropertiesKHR: {
17944             return "OP_vkGetPhysicalDeviceExternalFencePropertiesKHR";
17945         }
17946 #endif
17947 #ifdef VK_KHR_external_fence_fd
17948         case OP_vkImportFenceFdKHR: {
17949             return "OP_vkImportFenceFdKHR";
17950         }
17951         case OP_vkGetFenceFdKHR: {
17952             return "OP_vkGetFenceFdKHR";
17953         }
17954 #endif
17955 #ifdef VK_KHR_get_memory_requirements2
17956         case OP_vkGetImageMemoryRequirements2KHR: {
17957             return "OP_vkGetImageMemoryRequirements2KHR";
17958         }
17959         case OP_vkGetBufferMemoryRequirements2KHR: {
17960             return "OP_vkGetBufferMemoryRequirements2KHR";
17961         }
17962         case OP_vkGetImageSparseMemoryRequirements2KHR: {
17963             return "OP_vkGetImageSparseMemoryRequirements2KHR";
17964         }
17965 #endif
17966 #ifdef VK_KHR_sampler_ycbcr_conversion
17967         case OP_vkCreateSamplerYcbcrConversionKHR: {
17968             return "OP_vkCreateSamplerYcbcrConversionKHR";
17969         }
17970         case OP_vkDestroySamplerYcbcrConversionKHR: {
17971             return "OP_vkDestroySamplerYcbcrConversionKHR";
17972         }
17973 #endif
17974 #ifdef VK_KHR_bind_memory2
17975         case OP_vkBindBufferMemory2KHR: {
17976             return "OP_vkBindBufferMemory2KHR";
17977         }
17978         case OP_vkBindImageMemory2KHR: {
17979             return "OP_vkBindImageMemory2KHR";
17980         }
17981 #endif
17982 #ifdef VK_KHR_maintenance3
17983         case OP_vkGetDescriptorSetLayoutSupportKHR: {
17984             return "OP_vkGetDescriptorSetLayoutSupportKHR";
17985         }
17986 #endif
17987 #ifdef VK_ANDROID_native_buffer
17988         case OP_vkGetSwapchainGrallocUsageANDROID: {
17989             return "OP_vkGetSwapchainGrallocUsageANDROID";
17990         }
17991         case OP_vkAcquireImageANDROID: {
17992             return "OP_vkAcquireImageANDROID";
17993         }
17994         case OP_vkQueueSignalReleaseImageANDROID: {
17995             return "OP_vkQueueSignalReleaseImageANDROID";
17996         }
17997 #endif
17998 #ifdef VK_GOOGLE_gfxstream
17999         case OP_vkMapMemoryIntoAddressSpaceGOOGLE: {
18000             return "OP_vkMapMemoryIntoAddressSpaceGOOGLE";
18001         }
18002         case OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE: {
18003             return "OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE";
18004         }
18005         case OP_vkBeginCommandBufferAsyncGOOGLE: {
18006             return "OP_vkBeginCommandBufferAsyncGOOGLE";
18007         }
18008         case OP_vkEndCommandBufferAsyncGOOGLE: {
18009             return "OP_vkEndCommandBufferAsyncGOOGLE";
18010         }
18011         case OP_vkResetCommandBufferAsyncGOOGLE: {
18012             return "OP_vkResetCommandBufferAsyncGOOGLE";
18013         }
18014         case OP_vkCommandBufferHostSyncGOOGLE: {
18015             return "OP_vkCommandBufferHostSyncGOOGLE";
18016         }
18017         case OP_vkCreateImageWithRequirementsGOOGLE: {
18018             return "OP_vkCreateImageWithRequirementsGOOGLE";
18019         }
18020         case OP_vkCreateBufferWithRequirementsGOOGLE: {
18021             return "OP_vkCreateBufferWithRequirementsGOOGLE";
18022         }
18023         case OP_vkGetMemoryHostAddressInfoGOOGLE: {
18024             return "OP_vkGetMemoryHostAddressInfoGOOGLE";
18025         }
18026         case OP_vkFreeMemorySyncGOOGLE: {
18027             return "OP_vkFreeMemorySyncGOOGLE";
18028         }
18029         case OP_vkQueueHostSyncGOOGLE: {
18030             return "OP_vkQueueHostSyncGOOGLE";
18031         }
18032         case OP_vkQueueSubmitAsyncGOOGLE: {
18033             return "OP_vkQueueSubmitAsyncGOOGLE";
18034         }
18035         case OP_vkQueueWaitIdleAsyncGOOGLE: {
18036             return "OP_vkQueueWaitIdleAsyncGOOGLE";
18037         }
18038         case OP_vkQueueBindSparseAsyncGOOGLE: {
18039             return "OP_vkQueueBindSparseAsyncGOOGLE";
18040         }
18041         case OP_vkGetLinearImageLayoutGOOGLE: {
18042             return "OP_vkGetLinearImageLayoutGOOGLE";
18043         }
18044         case OP_vkQueueFlushCommandsGOOGLE: {
18045             return "OP_vkQueueFlushCommandsGOOGLE";
18046         }
18047         case OP_vkGetBlobGOOGLE: {
18048             return "OP_vkGetBlobGOOGLE";
18049         }
18050         case OP_vkGetSemaphoreGOOGLE: {
18051             return "OP_vkGetSemaphoreGOOGLE";
18052         }
18053 #endif
18054 #ifdef VK_KHR_dynamic_rendering
18055         case OP_vkCmdEndRenderingKHR: {
18056             return "OP_vkCmdEndRenderingKHR";
18057         }
18058 #endif
18059 #ifdef VK_KHR_synchronization2
18060         case OP_vkCmdPipelineBarrier2KHR: {
18061             return "OP_vkCmdPipelineBarrier2KHR";
18062         }
18063 #endif
18064 #ifdef VK_KHR_maintenance4
18065         case OP_vkGetDeviceBufferMemoryRequirementsKHR: {
18066             return "OP_vkGetDeviceBufferMemoryRequirementsKHR";
18067         }
18068 #endif
18069 #ifdef VK_EXT_color_write_enable
18070         case OP_vkCmdSetColorWriteEnableEXT: {
18071             return "OP_vkCmdSetColorWriteEnableEXT";
18072         }
18073 #endif
18074 #ifdef VK_KHR_maintenance5
18075         case OP_vkCmdBindIndexBuffer2KHR: {
18076             return "OP_vkCmdBindIndexBuffer2KHR";
18077         }
18078 #endif
18079 #ifdef VK_EXT_extended_dynamic_state
18080         case OP_vkCmdSetScissorWithCountEXT: {
18081             return "OP_vkCmdSetScissorWithCountEXT";
18082         }
18083 #endif
18084 #ifdef VK_EXT_host_image_copy
18085         case OP_vkCopyImageToMemoryEXT: {
18086             return "OP_vkCopyImageToMemoryEXT";
18087         }
18088 #endif
18089 #ifdef VK_VERSION_1_4
18090         case OP_vkCmdSetRenderingAttachmentLocations: {
18091             return "OP_vkCmdSetRenderingAttachmentLocations";
18092         }
18093         case OP_vkCopyImageToMemory: {
18094             return "OP_vkCopyImageToMemory";
18095         }
18096         case OP_vkCmdBindIndexBuffer2: {
18097             return "OP_vkCmdBindIndexBuffer2";
18098         }
18099 #endif
18100 #ifdef VK_EXT_extended_dynamic_state2
18101         case OP_vkCmdSetPatchControlPointsEXT: {
18102             return "OP_vkCmdSetPatchControlPointsEXT";
18103         }
18104 #endif
18105 #ifdef VK_EXT_private_data
18106         case OP_vkDestroyPrivateDataSlotEXT: {
18107             return "OP_vkDestroyPrivateDataSlotEXT";
18108         }
18109 #endif
18110 #ifdef VK_VERSION_1_3
18111         case OP_vkCmdSetDepthTestEnable: {
18112             return "OP_vkCmdSetDepthTestEnable";
18113         }
18114 #endif
18115 #ifdef VK_EXT_extended_dynamic_state
18116         case OP_vkCmdSetFrontFaceEXT: {
18117             return "OP_vkCmdSetFrontFaceEXT";
18118         }
18119 #endif
18120 #ifdef VK_GOOGLE_gfxstream
18121         case OP_vkCollectDescriptorPoolIdsGOOGLE: {
18122             return "OP_vkCollectDescriptorPoolIdsGOOGLE";
18123         }
18124 #endif
18125 #ifdef VK_VERSION_1_4
18126         case OP_vkGetRenderingAreaGranularity: {
18127             return "OP_vkGetRenderingAreaGranularity";
18128         }
18129 #endif
18130 #ifdef VK_VERSION_1_3
18131         case OP_vkCmdCopyImageToBuffer2: {
18132             return "OP_vkCmdCopyImageToBuffer2";
18133         }
18134 #endif
18135 #ifdef VK_VERSION_1_4
18136         case OP_vkGetDeviceImageSubresourceLayout: {
18137             return "OP_vkGetDeviceImageSubresourceLayout";
18138         }
18139 #endif
18140 #ifdef VK_EXT_extended_dynamic_state
18141         case OP_vkCmdSetDepthWriteEnableEXT: {
18142             return "OP_vkCmdSetDepthWriteEnableEXT";
18143         }
18144 #endif
18145 #ifdef VK_EXT_host_image_copy
18146         case OP_vkCopyMemoryToImageEXT: {
18147             return "OP_vkCopyMemoryToImageEXT";
18148         }
18149 #endif
18150 #ifdef VK_KHR_buffer_device_address
18151         case OP_vkGetBufferDeviceAddressKHR: {
18152             return "OP_vkGetBufferDeviceAddressKHR";
18153         }
18154 #endif
18155 #ifdef VK_VERSION_1_3
18156         case OP_vkCmdSetDepthBoundsTestEnable: {
18157             return "OP_vkCmdSetDepthBoundsTestEnable";
18158         }
18159 #endif
18160 #ifdef VK_KHR_line_rasterization
18161         case OP_vkCmdSetLineStippleKHR: {
18162             return "OP_vkCmdSetLineStippleKHR";
18163         }
18164 #endif
18165 #ifdef VK_VERSION_1_3
18166         case OP_vkCmdSetScissorWithCount: {
18167             return "OP_vkCmdSetScissorWithCount";
18168         }
18169         case OP_vkCmdEndRendering: {
18170             return "OP_vkCmdEndRendering";
18171         }
18172 #endif
18173 #ifdef VK_VERSION_1_2
18174         case OP_vkCmdEndRenderPass2: {
18175             return "OP_vkCmdEndRenderPass2";
18176         }
18177         case OP_vkGetBufferDeviceAddress: {
18178             return "OP_vkGetBufferDeviceAddress";
18179         }
18180 #endif
18181 #ifdef VK_VERSION_1_3
18182         case OP_vkCmdSetFrontFace: {
18183             return "OP_vkCmdSetFrontFace";
18184         }
18185 #endif
18186 #ifdef VK_EXT_extended_dynamic_state
18187         case OP_vkCmdSetDepthBoundsTestEnableEXT: {
18188             return "OP_vkCmdSetDepthBoundsTestEnableEXT";
18189         }
18190 #endif
18191 #ifdef VK_VERSION_1_4
18192         case OP_vkCopyImageToImage: {
18193             return "OP_vkCopyImageToImage";
18194         }
18195 #endif
18196 #ifdef VK_EXT_host_image_copy
18197         case OP_vkCopyImageToImageEXT: {
18198             return "OP_vkCopyImageToImageEXT";
18199         }
18200 #endif
18201 #ifdef VK_VERSION_1_3
18202         case OP_vkDestroyPrivateDataSlot: {
18203             return "OP_vkDestroyPrivateDataSlot";
18204         }
18205         case OP_vkCmdSetCullMode: {
18206             return "OP_vkCmdSetCullMode";
18207         }
18208 #endif
18209 #ifdef VK_VERSION_1_2
18210         case OP_vkWaitSemaphores: {
18211             return "OP_vkWaitSemaphores";
18212         }
18213 #endif
18214 #ifdef VK_EXT_private_data
18215         case OP_vkSetPrivateDataEXT: {
18216             return "OP_vkSetPrivateDataEXT";
18217         }
18218 #endif
18219 #ifdef VK_KHR_copy_commands2
18220         case OP_vkCmdCopyImage2KHR: {
18221             return "OP_vkCmdCopyImage2KHR";
18222         }
18223 #endif
18224 #ifdef VK_VERSION_1_4
18225         case OP_vkUnmapMemory2: {
18226             return "OP_vkUnmapMemory2";
18227         }
18228         case OP_vkCmdPushDescriptorSetWithTemplate: {
18229             return "OP_vkCmdPushDescriptorSetWithTemplate";
18230         }
18231 #endif
18232 #ifdef VK_VERSION_1_2
18233         case OP_vkGetBufferOpaqueCaptureAddress: {
18234             return "OP_vkGetBufferOpaqueCaptureAddress";
18235         }
18236 #endif
18237 #ifdef VK_VERSION_1_3
18238         case OP_vkCmdSetPrimitiveRestartEnable: {
18239             return "OP_vkCmdSetPrimitiveRestartEnable";
18240         }
18241         case OP_vkCmdSetEvent2: {
18242             return "OP_vkCmdSetEvent2";
18243         }
18244         case OP_vkGetDeviceImageSparseMemoryRequirements: {
18245             return "OP_vkGetDeviceImageSparseMemoryRequirements";
18246         }
18247 #endif
18248 #ifdef VK_EXT_extended_dynamic_state
18249         case OP_vkCmdSetDepthTestEnableEXT: {
18250             return "OP_vkCmdSetDepthTestEnableEXT";
18251         }
18252 #endif
18253 #ifdef VK_VERSION_1_2
18254         case OP_vkCmdBeginRenderPass2: {
18255             return "OP_vkCmdBeginRenderPass2";
18256         }
18257 #endif
18258 #ifdef VK_VERSION_1_4
18259         case OP_vkCmdSetLineStipple: {
18260             return "OP_vkCmdSetLineStipple";
18261         }
18262 #endif
18263 #ifdef VK_VERSION_1_3
18264         case OP_vkCmdSetStencilOp: {
18265             return "OP_vkCmdSetStencilOp";
18266         }
18267 #endif
18268 #ifdef VK_EXT_private_data
18269         case OP_vkCreatePrivateDataSlotEXT: {
18270             return "OP_vkCreatePrivateDataSlotEXT";
18271         }
18272 #endif
18273 #ifdef VK_VERSION_1_3
18274         case OP_vkCmdCopyBuffer2: {
18275             return "OP_vkCmdCopyBuffer2";
18276         }
18277         case OP_vkGetPrivateData: {
18278             return "OP_vkGetPrivateData";
18279         }
18280 #endif
18281 #ifdef VK_KHR_maintenance5
18282         case OP_vkGetRenderingAreaGranularityKHR: {
18283             return "OP_vkGetRenderingAreaGranularityKHR";
18284         }
18285 #endif
18286 #ifdef VK_VERSION_1_3
18287         case OP_vkCmdSetDepthWriteEnable: {
18288             return "OP_vkCmdSetDepthWriteEnable";
18289         }
18290         case OP_vkSetPrivateData: {
18291             return "OP_vkSetPrivateData";
18292         }
18293 #endif
18294 #ifdef VK_EXT_host_image_copy
18295         case OP_vkTransitionImageLayoutEXT: {
18296             return "OP_vkTransitionImageLayoutEXT";
18297         }
18298 #endif
18299 #ifdef VK_KHR_maintenance4
18300         case OP_vkGetDeviceImageMemoryRequirementsKHR: {
18301             return "OP_vkGetDeviceImageMemoryRequirementsKHR";
18302         }
18303 #endif
18304 #ifdef VK_KHR_maintenance5
18305         case OP_vkGetImageSubresourceLayout2KHR: {
18306             return "OP_vkGetImageSubresourceLayout2KHR";
18307         }
18308 #endif
18309 #ifdef VK_EXT_extended_dynamic_state
18310         case OP_vkCmdBindVertexBuffers2EXT: {
18311             return "OP_vkCmdBindVertexBuffers2EXT";
18312         }
18313 #endif
18314 #ifdef VK_GOOGLE_gfxstream
18315         case OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE: {
18316             return "OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE";
18317         }
18318 #endif
18319 #ifdef VK_VERSION_1_3
18320         case OP_vkCmdWaitEvents2: {
18321             return "OP_vkCmdWaitEvents2";
18322         }
18323 #endif
18324 #ifdef VK_GOOGLE_gfxstream
18325         case OP_vkUpdateDescriptorSetWithTemplateSized2GOOGLE: {
18326             return "OP_vkUpdateDescriptorSetWithTemplateSized2GOOGLE";
18327         }
18328 #endif
18329 #ifdef VK_VERSION_1_2
18330         case OP_vkCmdNextSubpass2: {
18331             return "OP_vkCmdNextSubpass2";
18332         }
18333 #endif
18334 #ifdef VK_KHR_synchronization2
18335         case OP_vkCmdWaitEvents2KHR: {
18336             return "OP_vkCmdWaitEvents2KHR";
18337         }
18338 #endif
18339 #ifdef VK_VERSION_1_2
18340         case OP_vkCmdDrawIndexedIndirectCount: {
18341             return "OP_vkCmdDrawIndexedIndirectCount";
18342         }
18343 #endif
18344 #ifdef VK_EXT_extended_dynamic_state2
18345         case OP_vkCmdSetRasterizerDiscardEnableEXT: {
18346             return "OP_vkCmdSetRasterizerDiscardEnableEXT";
18347         }
18348 #endif
18349 #ifdef VK_VERSION_1_3
18350         case OP_vkCmdSetDepthCompareOp: {
18351             return "OP_vkCmdSetDepthCompareOp";
18352         }
18353         case OP_vkCmdWriteTimestamp2: {
18354             return "OP_vkCmdWriteTimestamp2";
18355         }
18356 #endif
18357 #ifdef VK_VERSION_1_4
18358         case OP_vkCmdPushDescriptorSet: {
18359             return "OP_vkCmdPushDescriptorSet";
18360         }
18361 #endif
18362 #ifdef VK_VERSION_1_3
18363         case OP_vkCmdCopyImage2: {
18364             return "OP_vkCmdCopyImage2";
18365         }
18366 #endif
18367 #ifdef VK_EXT_extended_dynamic_state
18368         case OP_vkCmdSetDepthCompareOpEXT: {
18369             return "OP_vkCmdSetDepthCompareOpEXT";
18370         }
18371 #endif
18372 #ifdef VK_KHR_copy_commands2
18373         case OP_vkCmdCopyBuffer2KHR: {
18374             return "OP_vkCmdCopyBuffer2KHR";
18375         }
18376         case OP_vkCmdCopyBufferToImage2KHR: {
18377             return "OP_vkCmdCopyBufferToImage2KHR";
18378         }
18379 #endif
18380 #ifdef VK_EXT_image_drm_format_modifier
18381         case OP_vkGetImageDrmFormatModifierPropertiesEXT: {
18382             return "OP_vkGetImageDrmFormatModifierPropertiesEXT";
18383         }
18384 #endif
18385 #ifdef VK_VERSION_1_2
18386         case OP_vkResetQueryPool: {
18387             return "OP_vkResetQueryPool";
18388         }
18389 #endif
18390 #ifdef VK_VERSION_1_4
18391         case OP_vkTransitionImageLayout: {
18392             return "OP_vkTransitionImageLayout";
18393         }
18394 #endif
18395 #ifdef VK_KHR_copy_commands2
18396         case OP_vkCmdCopyImageToBuffer2KHR: {
18397             return "OP_vkCmdCopyImageToBuffer2KHR";
18398         }
18399 #endif
18400 #ifdef VK_KHR_synchronization2
18401         case OP_vkCmdWriteTimestamp2KHR: {
18402             return "OP_vkCmdWriteTimestamp2KHR";
18403         }
18404 #endif
18405 #ifdef VK_KHR_maintenance5
18406         case OP_vkGetDeviceImageSubresourceLayoutKHR: {
18407             return "OP_vkGetDeviceImageSubresourceLayoutKHR";
18408         }
18409 #endif
18410 #ifdef VK_KHR_copy_commands2
18411         case OP_vkCmdResolveImage2KHR: {
18412             return "OP_vkCmdResolveImage2KHR";
18413         }
18414 #endif
18415 #ifdef VK_EXT_extended_dynamic_state
18416         case OP_vkCmdSetViewportWithCountEXT: {
18417             return "OP_vkCmdSetViewportWithCountEXT";
18418         }
18419 #endif
18420 #ifdef VK_VERSION_1_3
18421         case OP_vkCmdBindVertexBuffers2: {
18422             return "OP_vkCmdBindVertexBuffers2";
18423         }
18424 #endif
18425 #ifdef VK_EXT_extended_dynamic_state2
18426         case OP_vkCmdSetDepthBiasEnableEXT: {
18427             return "OP_vkCmdSetDepthBiasEnableEXT";
18428         }
18429 #endif
18430 #ifdef VK_KHR_copy_commands2
18431         case OP_vkCmdBlitImage2KHR: {
18432             return "OP_vkCmdBlitImage2KHR";
18433         }
18434 #endif
18435 #ifdef VK_VERSION_1_2
18436         case OP_vkGetDeviceMemoryOpaqueCaptureAddress: {
18437             return "OP_vkGetDeviceMemoryOpaqueCaptureAddress";
18438         }
18439 #endif
18440 #ifdef VK_EXT_extended_dynamic_state
18441         case OP_vkCmdSetPrimitiveTopologyEXT: {
18442             return "OP_vkCmdSetPrimitiveTopologyEXT";
18443         }
18444 #endif
18445 #ifdef VK_VERSION_1_3
18446         case OP_vkCreatePrivateDataSlot: {
18447             return "OP_vkCreatePrivateDataSlot";
18448         }
18449 #endif
18450 #ifdef VK_VERSION_1_4
18451         case OP_vkCopyMemoryToImage: {
18452             return "OP_vkCopyMemoryToImage";
18453         }
18454 #endif
18455 #ifdef VK_VERSION_1_3
18456         case OP_vkCmdSetPrimitiveTopology: {
18457             return "OP_vkCmdSetPrimitiveTopology";
18458         }
18459 #endif
18460 #ifdef VK_EXT_line_rasterization
18461         case OP_vkCmdSetLineStippleEXT: {
18462             return "OP_vkCmdSetLineStippleEXT";
18463         }
18464 #endif
18465 #ifdef VK_EXT_extended_dynamic_state
18466         case OP_vkCmdSetCullModeEXT: {
18467             return "OP_vkCmdSetCullModeEXT";
18468         }
18469 #endif
18470 #ifdef VK_VERSION_1_2
18471         case OP_vkGetSemaphoreCounterValue: {
18472             return "OP_vkGetSemaphoreCounterValue";
18473         }
18474 #endif
18475 #ifdef VK_VERSION_1_3
18476         case OP_vkCmdSetDepthBiasEnable: {
18477             return "OP_vkCmdSetDepthBiasEnable";
18478         }
18479         case OP_vkCmdSetViewportWithCount: {
18480             return "OP_vkCmdSetViewportWithCount";
18481         }
18482 #endif
18483 #ifdef VK_EXT_extended_dynamic_state2
18484         case OP_vkCmdSetLogicOpEXT: {
18485             return "OP_vkCmdSetLogicOpEXT";
18486         }
18487 #endif
18488 #ifdef VK_EXT_transform_feedback
18489         case OP_vkCmdBindTransformFeedbackBuffersEXT: {
18490             return "OP_vkCmdBindTransformFeedbackBuffersEXT";
18491         }
18492 #endif
18493 #ifdef VK_GOOGLE_gfxstream
18494         case OP_vkQueueCommitDescriptorSetUpdatesGOOGLE: {
18495             return "OP_vkQueueCommitDescriptorSetUpdatesGOOGLE";
18496         }
18497 #endif
18498 #ifdef VK_VERSION_1_3
18499         case OP_vkCmdCopyBufferToImage2: {
18500             return "OP_vkCmdCopyBufferToImage2";
18501         }
18502 #endif
18503 #ifdef VK_KHR_pipeline_executable_properties
18504         case OP_vkGetPipelineExecutablePropertiesKHR: {
18505             return "OP_vkGetPipelineExecutablePropertiesKHR";
18506         }
18507 #endif
18508 #ifdef VK_VERSION_1_4
18509         case OP_vkGetImageSubresourceLayout2: {
18510             return "OP_vkGetImageSubresourceLayout2";
18511         }
18512         case OP_vkCmdPushDescriptorSet2: {
18513             return "OP_vkCmdPushDescriptorSet2";
18514         }
18515         case OP_vkMapMemory2: {
18516             return "OP_vkMapMemory2";
18517         }
18518 #endif
18519 #ifdef VK_KHR_synchronization2
18520         case OP_vkCmdSetEvent2KHR: {
18521             return "OP_vkCmdSetEvent2KHR";
18522         }
18523 #endif
18524 #ifdef VK_VERSION_1_2
18525         case OP_vkSignalSemaphore: {
18526             return "OP_vkSignalSemaphore";
18527         }
18528 #endif
18529 #ifdef VK_KHR_pipeline_executable_properties
18530         case OP_vkGetPipelineExecutableStatisticsKHR: {
18531             return "OP_vkGetPipelineExecutableStatisticsKHR";
18532         }
18533 #endif
18534 #ifdef VK_VERSION_1_3
18535         case OP_vkCmdResetEvent2: {
18536             return "OP_vkCmdResetEvent2";
18537         }
18538 #endif
18539 #ifdef VK_EXT_transform_feedback
18540         case OP_vkCmdEndTransformFeedbackEXT: {
18541             return "OP_vkCmdEndTransformFeedbackEXT";
18542         }
18543 #endif
18544 #ifdef VK_KHR_pipeline_executable_properties
18545         case OP_vkGetPipelineExecutableInternalRepresentationsKHR: {
18546             return "OP_vkGetPipelineExecutableInternalRepresentationsKHR";
18547         }
18548 #endif
18549 #ifdef VK_VERSION_1_3
18550         case OP_vkCmdBlitImage2: {
18551             return "OP_vkCmdBlitImage2";
18552         }
18553         case OP_vkQueueSubmit2: {
18554             return "OP_vkQueueSubmit2";
18555         }
18556 #endif
18557 #ifdef VK_KHR_maintenance4
18558         case OP_vkGetDeviceImageSparseMemoryRequirementsKHR: {
18559             return "OP_vkGetDeviceImageSparseMemoryRequirementsKHR";
18560         }
18561 #endif
18562 #ifdef VK_EXT_transform_feedback
18563         case OP_vkCmdBeginQueryIndexedEXT: {
18564             return "OP_vkCmdBeginQueryIndexedEXT";
18565         }
18566 #endif
18567 #ifdef VK_VERSION_1_4
18568         case OP_vkCmdPushConstants2: {
18569             return "OP_vkCmdPushConstants2";
18570         }
18571 #endif
18572 #ifdef VK_VERSION_1_3
18573         case OP_vkCmdSetRasterizerDiscardEnable: {
18574             return "OP_vkCmdSetRasterizerDiscardEnable";
18575         }
18576 #endif
18577 #ifdef VK_EXT_extended_dynamic_state
18578         case OP_vkCmdSetStencilOpEXT: {
18579             return "OP_vkCmdSetStencilOpEXT";
18580         }
18581 #endif
18582 #ifdef VK_VERSION_1_2
18583         case OP_vkCreateRenderPass2: {
18584             return "OP_vkCreateRenderPass2";
18585         }
18586 #endif
18587 #ifdef VK_EXT_transform_feedback
18588         case OP_vkCmdEndQueryIndexedEXT: {
18589             return "OP_vkCmdEndQueryIndexedEXT";
18590         }
18591 #endif
18592 #ifdef VK_VERSION_1_4
18593         case OP_vkCmdBindDescriptorSets2: {
18594             return "OP_vkCmdBindDescriptorSets2";
18595         }
18596 #endif
18597 #ifdef VK_EXT_tooling_info
18598         case OP_vkGetPhysicalDeviceToolPropertiesEXT: {
18599             return "OP_vkGetPhysicalDeviceToolPropertiesEXT";
18600         }
18601 #endif
18602 #ifdef VK_GOOGLE_gfxstream
18603         case OP_vkGetLinearImageLayout2GOOGLE: {
18604             return "OP_vkGetLinearImageLayout2GOOGLE";
18605         }
18606 #endif
18607 #ifdef VK_VERSION_1_3
18608         case OP_vkCmdResolveImage2: {
18609             return "OP_vkCmdResolveImage2";
18610         }
18611         case OP_vkGetDeviceImageMemoryRequirements: {
18612             return "OP_vkGetDeviceImageMemoryRequirements";
18613         }
18614 #endif
18615 #ifdef VK_VERSION_1_2
18616         case OP_vkCmdDrawIndirectCount: {
18617             return "OP_vkCmdDrawIndirectCount";
18618         }
18619 #endif
18620 #ifdef VK_KHR_synchronization2
18621         case OP_vkCmdResetEvent2KHR: {
18622             return "OP_vkCmdResetEvent2KHR";
18623         }
18624 #endif
18625 #ifdef VK_VERSION_1_4
18626         case OP_vkCmdPushDescriptorSetWithTemplate2: {
18627             return "OP_vkCmdPushDescriptorSetWithTemplate2";
18628         }
18629 #endif
18630 #ifdef VK_EXT_transform_feedback
18631         case OP_vkCmdDrawIndirectByteCountEXT: {
18632             return "OP_vkCmdDrawIndirectByteCountEXT";
18633         }
18634 #endif
18635 #ifdef VK_VERSION_1_4
18636         case OP_vkCmdSetRenderingInputAttachmentIndices: {
18637             return "OP_vkCmdSetRenderingInputAttachmentIndices";
18638         }
18639 #endif
18640 #ifdef VK_KHR_buffer_device_address
18641         case OP_vkGetBufferOpaqueCaptureAddressKHR: {
18642             return "OP_vkGetBufferOpaqueCaptureAddressKHR";
18643         }
18644 #endif
18645 #ifdef VK_EXT_extended_dynamic_state
18646         case OP_vkCmdSetStencilTestEnableEXT: {
18647             return "OP_vkCmdSetStencilTestEnableEXT";
18648         }
18649 #endif
18650 #ifdef VK_VERSION_1_3
18651         case OP_vkCmdSetStencilTestEnable: {
18652             return "OP_vkCmdSetStencilTestEnable";
18653         }
18654         case OP_vkGetPhysicalDeviceToolProperties: {
18655             return "OP_vkGetPhysicalDeviceToolProperties";
18656         }
18657 #endif
18658 #ifdef VK_ANDROID_native_buffer
18659         case OP_vkGetSwapchainGrallocUsage2ANDROID: {
18660             return "OP_vkGetSwapchainGrallocUsage2ANDROID";
18661         }
18662 #endif
18663 #ifdef VK_GOOGLE_gfxstream
18664         case OP_vkQueueFlushCommandsFromAuxMemoryGOOGLE: {
18665             return "OP_vkQueueFlushCommandsFromAuxMemoryGOOGLE";
18666         }
18667 #endif
18668 #ifdef VK_EXT_private_data
18669         case OP_vkGetPrivateDataEXT: {
18670             return "OP_vkGetPrivateDataEXT";
18671         }
18672 #endif
18673 #ifdef VK_GOOGLE_gfxstream
18674         case OP_vkQueueSubmitAsync2GOOGLE: {
18675             return "OP_vkQueueSubmitAsync2GOOGLE";
18676         }
18677 #endif
18678 #ifdef VK_KHR_synchronization2
18679         case OP_vkQueueSubmit2KHR: {
18680             return "OP_vkQueueSubmit2KHR";
18681         }
18682 #endif
18683 #ifdef VK_VERSION_1_3
18684         case OP_vkGetDeviceBufferMemoryRequirements: {
18685             return "OP_vkGetDeviceBufferMemoryRequirements";
18686         }
18687 #endif
18688 #ifdef VK_EXT_transform_feedback
18689         case OP_vkCmdBeginTransformFeedbackEXT: {
18690             return "OP_vkCmdBeginTransformFeedbackEXT";
18691         }
18692 #endif
18693 #ifdef VK_VERSION_1_3
18694         case OP_vkCmdBeginRendering: {
18695             return "OP_vkCmdBeginRendering";
18696         }
18697 #endif
18698 #ifdef VK_KHR_buffer_device_address
18699         case OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR: {
18700             return "OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR";
18701         }
18702 #endif
18703 #ifdef VK_EXT_host_image_copy
18704         case OP_vkGetImageSubresourceLayout2EXT: {
18705             return "OP_vkGetImageSubresourceLayout2EXT";
18706         }
18707 #endif
18708 #ifdef VK_VERSION_1_3
18709         case OP_vkCmdPipelineBarrier2: {
18710             return "OP_vkCmdPipelineBarrier2";
18711         }
18712 #endif
18713 #ifdef VK_KHR_dynamic_rendering
18714         case OP_vkCmdBeginRenderingKHR: {
18715             return "OP_vkCmdBeginRenderingKHR";
18716         }
18717 #endif
18718 #ifdef VK_EXT_extended_dynamic_state2
18719         case OP_vkCmdSetPrimitiveRestartEnableEXT: {
18720             return "OP_vkCmdSetPrimitiveRestartEnableEXT";
18721         }
18722 #endif
18723         default: {
18724             return "OP_UNKNOWN_API_CALL";
18725         }
18726     }
18727 }
18728 
18729 }  // namespace vk
18730 }  // namespace gfxstream
18731