xref: /aosp_15_r20/external/mesa3d/src/gfxstream/guest/vulkan_enc/goldfish_vk_marshaling_guest.cpp (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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_KHR_dynamic_rendering
marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingFragmentShadingRateAttachmentInfoKHR * forMarshaling)10810 void marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
10811     VulkanStreamGuest* vkStream, VkStructureType rootType,
10812     const VkRenderingFragmentShadingRateAttachmentInfoKHR* 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     uint64_t cgen_var_0;
10820     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
10821                                                           1);
10822     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
10823     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
10824     marshal_VkExtent2D(vkStream, rootType,
10825                        (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize));
10826 }
10827 
unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingFragmentShadingRateAttachmentInfoKHR * forUnmarshaling)10828 void unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
10829     VulkanStreamGuest* vkStream, VkStructureType rootType,
10830     VkRenderingFragmentShadingRateAttachmentInfoKHR* forUnmarshaling) {
10831     (void)rootType;
10832     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10833     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10834         rootType = forUnmarshaling->sType;
10835     }
10836     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10837     uint64_t cgen_var_0;
10838     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
10839     vkStream->handleMapping()->mapHandles_u64_VkImageView(
10840         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
10841     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
10842     unmarshal_VkExtent2D(vkStream, rootType,
10843                          (VkExtent2D*)(&forUnmarshaling->shadingRateAttachmentTexelSize));
10844 }
10845 
marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingFragmentDensityMapAttachmentInfoEXT * forMarshaling)10846 void marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
10847     VulkanStreamGuest* vkStream, VkStructureType rootType,
10848     const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling) {
10849     (void)rootType;
10850     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10851     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10852         rootType = forMarshaling->sType;
10853     }
10854     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10855     uint64_t cgen_var_0;
10856     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0,
10857                                                           1);
10858     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
10859     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
10860 }
10861 
unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingFragmentDensityMapAttachmentInfoEXT * forUnmarshaling)10862 void unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
10863     VulkanStreamGuest* vkStream, VkStructureType rootType,
10864     VkRenderingFragmentDensityMapAttachmentInfoEXT* forUnmarshaling) {
10865     (void)rootType;
10866     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10867     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10868         rootType = forUnmarshaling->sType;
10869     }
10870     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10871     uint64_t cgen_var_0;
10872     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
10873     vkStream->handleMapping()->mapHandles_u64_VkImageView(
10874         &cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
10875     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
10876 }
10877 
marshal_VkAttachmentSampleCountInfoAMD(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentSampleCountInfoAMD * forMarshaling)10878 void marshal_VkAttachmentSampleCountInfoAMD(VulkanStreamGuest* vkStream, VkStructureType rootType,
10879                                             const VkAttachmentSampleCountInfoAMD* forMarshaling) {
10880     (void)rootType;
10881     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10882     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10883         rootType = forMarshaling->sType;
10884     }
10885     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10886     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
10887     // WARNING PTR CHECK
10888     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentSamples;
10889     vkStream->putBe64(cgen_var_0);
10890     if (forMarshaling->pColorAttachmentSamples) {
10891         vkStream->write((const VkSampleCountFlagBits*)forMarshaling->pColorAttachmentSamples,
10892                         forMarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
10893     }
10894     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->depthStencilAttachmentSamples,
10895                     sizeof(VkSampleCountFlagBits));
10896 }
10897 
unmarshal_VkAttachmentSampleCountInfoAMD(VulkanStreamGuest * vkStream,VkStructureType rootType,VkAttachmentSampleCountInfoAMD * forUnmarshaling)10898 void unmarshal_VkAttachmentSampleCountInfoAMD(VulkanStreamGuest* vkStream, VkStructureType rootType,
10899                                               VkAttachmentSampleCountInfoAMD* forUnmarshaling) {
10900     (void)rootType;
10901     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10902     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10903         rootType = forUnmarshaling->sType;
10904     }
10905     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10906     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
10907     // WARNING PTR CHECK
10908     const VkSampleCountFlagBits* check_pColorAttachmentSamples;
10909     check_pColorAttachmentSamples = (const VkSampleCountFlagBits*)(uintptr_t)vkStream->getBe64();
10910     if (forUnmarshaling->pColorAttachmentSamples) {
10911         if (!(check_pColorAttachmentSamples)) {
10912             fprintf(stderr,
10913                     "fatal: forUnmarshaling->pColorAttachmentSamples inconsistent between guest "
10914                     "and host\n");
10915         }
10916         vkStream->read((VkSampleCountFlagBits*)forUnmarshaling->pColorAttachmentSamples,
10917                        forUnmarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
10918     }
10919     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->depthStencilAttachmentSamples,
10920                    sizeof(VkSampleCountFlagBits));
10921 }
10922 
marshal_VkMultiviewPerViewAttributesInfoNVX(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMultiviewPerViewAttributesInfoNVX * forMarshaling)10923 void marshal_VkMultiviewPerViewAttributesInfoNVX(
10924     VulkanStreamGuest* vkStream, VkStructureType rootType,
10925     const VkMultiviewPerViewAttributesInfoNVX* forMarshaling) {
10926     (void)rootType;
10927     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10928     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10929         rootType = forMarshaling->sType;
10930     }
10931     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10932     vkStream->write((VkBool32*)&forMarshaling->perViewAttributes, sizeof(VkBool32));
10933     vkStream->write((VkBool32*)&forMarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
10934 }
10935 
unmarshal_VkMultiviewPerViewAttributesInfoNVX(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMultiviewPerViewAttributesInfoNVX * forUnmarshaling)10936 void unmarshal_VkMultiviewPerViewAttributesInfoNVX(
10937     VulkanStreamGuest* vkStream, VkStructureType rootType,
10938     VkMultiviewPerViewAttributesInfoNVX* forUnmarshaling) {
10939     (void)rootType;
10940     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10941     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10942         rootType = forUnmarshaling->sType;
10943     }
10944     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10945     vkStream->read((VkBool32*)&forUnmarshaling->perViewAttributes, sizeof(VkBool32));
10946     vkStream->read((VkBool32*)&forUnmarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
10947 }
10948 
10949 #endif
10950 #ifdef VK_KHR_external_semaphore_fd
marshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportSemaphoreFdInfoKHR * forMarshaling)10951 void marshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
10952                                         const VkImportSemaphoreFdInfoKHR* forMarshaling) {
10953     (void)rootType;
10954     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10955     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10956         rootType = forMarshaling->sType;
10957     }
10958     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10959     uint64_t cgen_var_0;
10960     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
10961                                                           1);
10962     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
10963     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
10964     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
10965                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
10966     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
10967 }
10968 
unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportSemaphoreFdInfoKHR * forUnmarshaling)10969 void unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
10970                                           VkImportSemaphoreFdInfoKHR* forUnmarshaling) {
10971     (void)rootType;
10972     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10973     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10974         rootType = forUnmarshaling->sType;
10975     }
10976     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
10977     uint64_t cgen_var_0;
10978     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
10979     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
10980         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
10981     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags,
10982                    sizeof(VkSemaphoreImportFlags));
10983     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
10984                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
10985     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
10986 }
10987 
marshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreGetFdInfoKHR * forMarshaling)10988 void marshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
10989                                      const VkSemaphoreGetFdInfoKHR* forMarshaling) {
10990     (void)rootType;
10991     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10992     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10993         rootType = forMarshaling->sType;
10994     }
10995     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
10996     uint64_t cgen_var_0;
10997     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0,
10998                                                           1);
10999     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11000     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
11001                     sizeof(VkExternalSemaphoreHandleTypeFlagBits));
11002 }
11003 
unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSemaphoreGetFdInfoKHR * forUnmarshaling)11004 void unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11005                                        VkSemaphoreGetFdInfoKHR* forUnmarshaling) {
11006     (void)rootType;
11007     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11008     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11009         rootType = forUnmarshaling->sType;
11010     }
11011     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11012     uint64_t cgen_var_0;
11013     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11014     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
11015         &cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
11016     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType,
11017                    sizeof(VkExternalSemaphoreHandleTypeFlagBits));
11018 }
11019 
11020 #endif
11021 #ifdef VK_KHR_incremental_present
marshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRectLayerKHR * forMarshaling)11022 void marshal_VkRectLayerKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11023                             const VkRectLayerKHR* forMarshaling) {
11024     (void)rootType;
11025     marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->offset));
11026     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->extent));
11027     vkStream->write((uint32_t*)&forMarshaling->layer, sizeof(uint32_t));
11028 }
11029 
unmarshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRectLayerKHR * forUnmarshaling)11030 void unmarshal_VkRectLayerKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11031                               VkRectLayerKHR* forUnmarshaling) {
11032     (void)rootType;
11033     unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->offset));
11034     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->extent));
11035     vkStream->read((uint32_t*)&forUnmarshaling->layer, sizeof(uint32_t));
11036 }
11037 
marshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPresentRegionKHR * forMarshaling)11038 void marshal_VkPresentRegionKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11039                                 const VkPresentRegionKHR* forMarshaling) {
11040     (void)rootType;
11041     vkStream->write((uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
11042     // WARNING PTR CHECK
11043     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
11044     vkStream->putBe64(cgen_var_0);
11045     if (forMarshaling->pRectangles) {
11046         if (forMarshaling) {
11047             for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i) {
11048                 marshal_VkRectLayerKHR(vkStream, rootType,
11049                                        (const VkRectLayerKHR*)(forMarshaling->pRectangles + i));
11050             }
11051         }
11052     }
11053 }
11054 
unmarshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPresentRegionKHR * forUnmarshaling)11055 void unmarshal_VkPresentRegionKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11056                                   VkPresentRegionKHR* forUnmarshaling) {
11057     (void)rootType;
11058     vkStream->read((uint32_t*)&forUnmarshaling->rectangleCount, sizeof(uint32_t));
11059     // WARNING PTR CHECK
11060     const VkRectLayerKHR* check_pRectangles;
11061     check_pRectangles = (const VkRectLayerKHR*)(uintptr_t)vkStream->getBe64();
11062     if (forUnmarshaling->pRectangles) {
11063         if (!(check_pRectangles)) {
11064             fprintf(stderr,
11065                     "fatal: forUnmarshaling->pRectangles inconsistent between guest and host\n");
11066         }
11067         if (forUnmarshaling) {
11068             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i) {
11069                 unmarshal_VkRectLayerKHR(vkStream, rootType,
11070                                          (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i));
11071             }
11072         }
11073     }
11074 }
11075 
marshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPresentRegionsKHR * forMarshaling)11076 void marshal_VkPresentRegionsKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11077                                  const VkPresentRegionsKHR* forMarshaling) {
11078     (void)rootType;
11079     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11080     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11081         rootType = forMarshaling->sType;
11082     }
11083     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11084     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
11085     // WARNING PTR CHECK
11086     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
11087     vkStream->putBe64(cgen_var_0);
11088     if (forMarshaling->pRegions) {
11089         if (forMarshaling) {
11090             for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i) {
11091                 marshal_VkPresentRegionKHR(
11092                     vkStream, rootType, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i));
11093             }
11094         }
11095     }
11096 }
11097 
unmarshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPresentRegionsKHR * forUnmarshaling)11098 void unmarshal_VkPresentRegionsKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11099                                    VkPresentRegionsKHR* forUnmarshaling) {
11100     (void)rootType;
11101     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11102     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11103         rootType = forUnmarshaling->sType;
11104     }
11105     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11106     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
11107     // WARNING PTR CHECK
11108     const VkPresentRegionKHR* check_pRegions;
11109     check_pRegions = (const VkPresentRegionKHR*)(uintptr_t)vkStream->getBe64();
11110     if (forUnmarshaling->pRegions) {
11111         if (!(check_pRegions)) {
11112             fprintf(stderr,
11113                     "fatal: forUnmarshaling->pRegions inconsistent between guest and host\n");
11114         }
11115         if (forUnmarshaling) {
11116             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i) {
11117                 unmarshal_VkPresentRegionKHR(vkStream, rootType,
11118                                              (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i));
11119             }
11120         }
11121     }
11122 }
11123 
11124 #endif
11125 #ifdef VK_KHR_external_fence_fd
marshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportFenceFdInfoKHR * forMarshaling)11126 void marshal_VkImportFenceFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11127                                     const VkImportFenceFdInfoKHR* forMarshaling) {
11128     (void)rootType;
11129     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11130     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11131         rootType = forMarshaling->sType;
11132     }
11133     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11134     uint64_t cgen_var_0;
11135     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
11136     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11137     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
11138     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
11139                     sizeof(VkExternalFenceHandleTypeFlagBits));
11140     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
11141 }
11142 
unmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportFenceFdInfoKHR * forUnmarshaling)11143 void unmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11144                                       VkImportFenceFdInfoKHR* forUnmarshaling) {
11145     (void)rootType;
11146     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11147     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11148         rootType = forUnmarshaling->sType;
11149     }
11150     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11151     uint64_t cgen_var_0;
11152     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11153     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
11154                                                       (VkFence*)&forUnmarshaling->fence, 1);
11155     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
11156     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
11157                    sizeof(VkExternalFenceHandleTypeFlagBits));
11158     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
11159 }
11160 
marshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFenceGetFdInfoKHR * forMarshaling)11161 void marshal_VkFenceGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11162                                  const VkFenceGetFdInfoKHR* forMarshaling) {
11163     (void)rootType;
11164     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11165     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11166         rootType = forMarshaling->sType;
11167     }
11168     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11169     uint64_t cgen_var_0;
11170     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
11171     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11172     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
11173                     sizeof(VkExternalFenceHandleTypeFlagBits));
11174 }
11175 
unmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkFenceGetFdInfoKHR * forUnmarshaling)11176 void unmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11177                                    VkFenceGetFdInfoKHR* forUnmarshaling) {
11178     (void)rootType;
11179     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11180     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11181         rootType = forUnmarshaling->sType;
11182     }
11183     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11184     uint64_t cgen_var_0;
11185     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11186     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0,
11187                                                       (VkFence*)&forUnmarshaling->fence, 1);
11188     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType,
11189                    sizeof(VkExternalFenceHandleTypeFlagBits));
11190 }
11191 
11192 #endif
11193 #ifdef VK_KHR_pipeline_executable_properties
marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forMarshaling)11194 void marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
11195     VulkanStreamGuest* vkStream, VkStructureType rootType,
11196     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling) {
11197     (void)rootType;
11198     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11199     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11200         rootType = forMarshaling->sType;
11201     }
11202     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11203     vkStream->write((VkBool32*)&forMarshaling->pipelineExecutableInfo, sizeof(VkBool32));
11204 }
11205 
unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forUnmarshaling)11206 void unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
11207     VulkanStreamGuest* vkStream, VkStructureType rootType,
11208     VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forUnmarshaling) {
11209     (void)rootType;
11210     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11211     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11212         rootType = forUnmarshaling->sType;
11213     }
11214     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11215     vkStream->read((VkBool32*)&forUnmarshaling->pipelineExecutableInfo, sizeof(VkBool32));
11216 }
11217 
marshal_VkPipelineInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineInfoKHR * forMarshaling)11218 void marshal_VkPipelineInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11219                                const VkPipelineInfoKHR* forMarshaling) {
11220     (void)rootType;
11221     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11222     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11223         rootType = forMarshaling->sType;
11224     }
11225     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11226     uint64_t cgen_var_0;
11227     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
11228     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11229 }
11230 
unmarshal_VkPipelineInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineInfoKHR * forUnmarshaling)11231 void unmarshal_VkPipelineInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11232                                  VkPipelineInfoKHR* forUnmarshaling) {
11233     (void)rootType;
11234     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11235     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11236         rootType = forUnmarshaling->sType;
11237     }
11238     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11239     uint64_t cgen_var_0;
11240     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11241     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
11242         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
11243 }
11244 
marshal_VkPipelineExecutablePropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutablePropertiesKHR * forMarshaling)11245 void marshal_VkPipelineExecutablePropertiesKHR(
11246     VulkanStreamGuest* vkStream, VkStructureType rootType,
11247     const VkPipelineExecutablePropertiesKHR* forMarshaling) {
11248     (void)rootType;
11249     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11250     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11251         rootType = forMarshaling->sType;
11252     }
11253     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11254     vkStream->write((VkShaderStageFlags*)&forMarshaling->stages, sizeof(VkShaderStageFlags));
11255     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11256     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11257     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
11258 }
11259 
unmarshal_VkPipelineExecutablePropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutablePropertiesKHR * forUnmarshaling)11260 void unmarshal_VkPipelineExecutablePropertiesKHR(
11261     VulkanStreamGuest* vkStream, VkStructureType rootType,
11262     VkPipelineExecutablePropertiesKHR* forUnmarshaling) {
11263     (void)rootType;
11264     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11265     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11266         rootType = forUnmarshaling->sType;
11267     }
11268     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11269     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stages, sizeof(VkShaderStageFlags));
11270     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11271     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11272     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
11273 }
11274 
marshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableInfoKHR * forMarshaling)11275 void marshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11276                                          const VkPipelineExecutableInfoKHR* forMarshaling) {
11277     (void)rootType;
11278     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11279     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11280         rootType = forMarshaling->sType;
11281     }
11282     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11283     uint64_t cgen_var_0;
11284     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
11285     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
11286     vkStream->write((uint32_t*)&forMarshaling->executableIndex, sizeof(uint32_t));
11287 }
11288 
unmarshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableInfoKHR * forUnmarshaling)11289 void unmarshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11290                                            VkPipelineExecutableInfoKHR* forUnmarshaling) {
11291     (void)rootType;
11292     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11293     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11294         rootType = forUnmarshaling->sType;
11295     }
11296     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11297     uint64_t cgen_var_0;
11298     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
11299     vkStream->handleMapping()->mapHandles_u64_VkPipeline(
11300         &cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
11301     vkStream->read((uint32_t*)&forUnmarshaling->executableIndex, sizeof(uint32_t));
11302 }
11303 
marshal_VkPipelineExecutableStatisticValueKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticValueKHR * forMarshaling)11304 void marshal_VkPipelineExecutableStatisticValueKHR(
11305     VulkanStreamGuest* vkStream, VkStructureType rootType,
11306     const VkPipelineExecutableStatisticValueKHR* forMarshaling) {
11307     (void)rootType;
11308     vkStream->write((VkBool32*)&forMarshaling->b32, sizeof(VkBool32));
11309 }
11310 
unmarshal_VkPipelineExecutableStatisticValueKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticValueKHR * forUnmarshaling)11311 void unmarshal_VkPipelineExecutableStatisticValueKHR(
11312     VulkanStreamGuest* vkStream, VkStructureType rootType,
11313     VkPipelineExecutableStatisticValueKHR* forUnmarshaling) {
11314     (void)rootType;
11315     vkStream->read((VkBool32*)&forUnmarshaling->b32, sizeof(VkBool32));
11316 }
11317 
marshal_VkPipelineExecutableStatisticKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticKHR * forMarshaling)11318 void marshal_VkPipelineExecutableStatisticKHR(
11319     VulkanStreamGuest* vkStream, VkStructureType rootType,
11320     const VkPipelineExecutableStatisticKHR* forMarshaling) {
11321     (void)rootType;
11322     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11323     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11324         rootType = forMarshaling->sType;
11325     }
11326     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11327     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11328     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11329     vkStream->write((VkPipelineExecutableStatisticFormatKHR*)&forMarshaling->format,
11330                     sizeof(VkPipelineExecutableStatisticFormatKHR));
11331     marshal_VkPipelineExecutableStatisticValueKHR(
11332         vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forMarshaling->value));
11333 }
11334 
unmarshal_VkPipelineExecutableStatisticKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticKHR * forUnmarshaling)11335 void unmarshal_VkPipelineExecutableStatisticKHR(VulkanStreamGuest* vkStream,
11336                                                 VkStructureType rootType,
11337                                                 VkPipelineExecutableStatisticKHR* forUnmarshaling) {
11338     (void)rootType;
11339     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11340     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11341         rootType = forUnmarshaling->sType;
11342     }
11343     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11344     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11345     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11346     vkStream->read((VkPipelineExecutableStatisticFormatKHR*)&forUnmarshaling->format,
11347                    sizeof(VkPipelineExecutableStatisticFormatKHR));
11348     unmarshal_VkPipelineExecutableStatisticValueKHR(
11349         vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forUnmarshaling->value));
11350 }
11351 
marshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableInternalRepresentationKHR * forMarshaling)11352 void marshal_VkPipelineExecutableInternalRepresentationKHR(
11353     VulkanStreamGuest* vkStream, VkStructureType rootType,
11354     const VkPipelineExecutableInternalRepresentationKHR* forMarshaling) {
11355     (void)rootType;
11356     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11357     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11358         rootType = forMarshaling->sType;
11359     }
11360     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11361     vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11362     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11363     vkStream->write((VkBool32*)&forMarshaling->isText, sizeof(VkBool32));
11364     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
11365     vkStream->putBe64(cgen_var_0);
11366     // WARNING PTR CHECK
11367     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pData;
11368     vkStream->putBe64(cgen_var_1);
11369     if (forMarshaling->pData) {
11370         vkStream->write((void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(uint8_t));
11371     }
11372 }
11373 
unmarshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineExecutableInternalRepresentationKHR * forUnmarshaling)11374 void unmarshal_VkPipelineExecutableInternalRepresentationKHR(
11375     VulkanStreamGuest* vkStream, VkStructureType rootType,
11376     VkPipelineExecutableInternalRepresentationKHR* forUnmarshaling) {
11377     (void)rootType;
11378     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11380         rootType = forUnmarshaling->sType;
11381     }
11382     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11383     vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11384     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11385     vkStream->read((VkBool32*)&forUnmarshaling->isText, sizeof(VkBool32));
11386     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
11387     // WARNING PTR CHECK
11388     void* check_pData;
11389     check_pData = (void*)(uintptr_t)vkStream->getBe64();
11390     if (forUnmarshaling->pData) {
11391         if (!(check_pData)) {
11392             fprintf(stderr, "fatal: forUnmarshaling->pData inconsistent between guest and host\n");
11393         }
11394         vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(uint8_t));
11395     }
11396 }
11397 
11398 #endif
11399 #ifdef VK_KHR_synchronization2
marshal_VkQueueFamilyCheckpointProperties2NV(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueueFamilyCheckpointProperties2NV * forMarshaling)11400 void marshal_VkQueueFamilyCheckpointProperties2NV(
11401     VulkanStreamGuest* vkStream, VkStructureType rootType,
11402     const VkQueueFamilyCheckpointProperties2NV* forMarshaling) {
11403     (void)rootType;
11404     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11405     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11406         rootType = forMarshaling->sType;
11407     }
11408     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11409     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->checkpointExecutionStageMask,
11410                     sizeof(VkPipelineStageFlags2));
11411 }
11412 
unmarshal_VkQueueFamilyCheckpointProperties2NV(VulkanStreamGuest * vkStream,VkStructureType rootType,VkQueueFamilyCheckpointProperties2NV * forUnmarshaling)11413 void unmarshal_VkQueueFamilyCheckpointProperties2NV(
11414     VulkanStreamGuest* vkStream, VkStructureType rootType,
11415     VkQueueFamilyCheckpointProperties2NV* 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((VkPipelineStageFlags2*)&forUnmarshaling->checkpointExecutionStageMask,
11423                    sizeof(VkPipelineStageFlags2));
11424 }
11425 
marshal_VkCheckpointData2NV(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCheckpointData2NV * forMarshaling)11426 void marshal_VkCheckpointData2NV(VulkanStreamGuest* vkStream, VkStructureType rootType,
11427                                  const VkCheckpointData2NV* forMarshaling) {
11428     (void)rootType;
11429     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11430     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11431         rootType = forMarshaling->sType;
11432     }
11433     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11434     vkStream->write((VkPipelineStageFlags2*)&forMarshaling->stage, sizeof(VkPipelineStageFlags2));
11435     // WARNING PTR CHECK
11436     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
11437     vkStream->putBe64(cgen_var_0);
11438     if (forMarshaling->pCheckpointMarker) {
11439         vkStream->write((void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
11440     }
11441 }
11442 
unmarshal_VkCheckpointData2NV(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCheckpointData2NV * forUnmarshaling)11443 void unmarshal_VkCheckpointData2NV(VulkanStreamGuest* vkStream, VkStructureType rootType,
11444                                    VkCheckpointData2NV* forUnmarshaling) {
11445     (void)rootType;
11446     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11447     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11448         rootType = forUnmarshaling->sType;
11449     }
11450     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11451     vkStream->read((VkPipelineStageFlags2*)&forUnmarshaling->stage, sizeof(VkPipelineStageFlags2));
11452     // WARNING PTR CHECK
11453     void* check_pCheckpointMarker;
11454     check_pCheckpointMarker = (void*)(uintptr_t)vkStream->getBe64();
11455     if (forUnmarshaling->pCheckpointMarker) {
11456         if (!(check_pCheckpointMarker)) {
11457             fprintf(
11458                 stderr,
11459                 "fatal: forUnmarshaling->pCheckpointMarker inconsistent between guest and host\n");
11460         }
11461         vkStream->read((void*)forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
11462     }
11463 }
11464 
11465 #endif
11466 #ifdef VK_KHR_maintenance5
marshal_VkPhysicalDeviceMaintenance5FeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance5FeaturesKHR * forMarshaling)11467 void marshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
11468     VulkanStreamGuest* vkStream, VkStructureType rootType,
11469     const VkPhysicalDeviceMaintenance5FeaturesKHR* forMarshaling) {
11470     (void)rootType;
11471     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11472     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11473         rootType = forMarshaling->sType;
11474     }
11475     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11476     vkStream->write((VkBool32*)&forMarshaling->maintenance5, sizeof(VkBool32));
11477 }
11478 
unmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance5FeaturesKHR * forUnmarshaling)11479 void unmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
11480     VulkanStreamGuest* vkStream, VkStructureType rootType,
11481     VkPhysicalDeviceMaintenance5FeaturesKHR* forUnmarshaling) {
11482     (void)rootType;
11483     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11484     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11485         rootType = forUnmarshaling->sType;
11486     }
11487     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11488     vkStream->read((VkBool32*)&forUnmarshaling->maintenance5, sizeof(VkBool32));
11489 }
11490 
marshal_VkPhysicalDeviceMaintenance5PropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance5PropertiesKHR * forMarshaling)11491 void marshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
11492     VulkanStreamGuest* vkStream, VkStructureType rootType,
11493     const VkPhysicalDeviceMaintenance5PropertiesKHR* forMarshaling) {
11494     (void)rootType;
11495     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11496     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11497         rootType = forMarshaling->sType;
11498     }
11499     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11500     vkStream->write((VkBool32*)&forMarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting,
11501                     sizeof(VkBool32));
11502     vkStream->write((VkBool32*)&forMarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting,
11503                     sizeof(VkBool32));
11504     vkStream->write((VkBool32*)&forMarshaling->depthStencilSwizzleOneSupport, sizeof(VkBool32));
11505     vkStream->write((VkBool32*)&forMarshaling->polygonModePointSize, sizeof(VkBool32));
11506     vkStream->write((VkBool32*)&forMarshaling->nonStrictSinglePixelWideLinesUseParallelogram,
11507                     sizeof(VkBool32));
11508     vkStream->write((VkBool32*)&forMarshaling->nonStrictWideLinesUseParallelogram,
11509                     sizeof(VkBool32));
11510 }
11511 
unmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance5PropertiesKHR * forUnmarshaling)11512 void unmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
11513     VulkanStreamGuest* vkStream, VkStructureType rootType,
11514     VkPhysicalDeviceMaintenance5PropertiesKHR* forUnmarshaling) {
11515     (void)rootType;
11516     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11517     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11518         rootType = forUnmarshaling->sType;
11519     }
11520     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11521     vkStream->read((VkBool32*)&forUnmarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting,
11522                    sizeof(VkBool32));
11523     vkStream->read((VkBool32*)&forUnmarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting,
11524                    sizeof(VkBool32));
11525     vkStream->read((VkBool32*)&forUnmarshaling->depthStencilSwizzleOneSupport, sizeof(VkBool32));
11526     vkStream->read((VkBool32*)&forUnmarshaling->polygonModePointSize, sizeof(VkBool32));
11527     vkStream->read((VkBool32*)&forUnmarshaling->nonStrictSinglePixelWideLinesUseParallelogram,
11528                    sizeof(VkBool32));
11529     vkStream->read((VkBool32*)&forUnmarshaling->nonStrictWideLinesUseParallelogram,
11530                    sizeof(VkBool32));
11531 }
11532 
marshal_VkRenderingAreaInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingAreaInfoKHR * forMarshaling)11533 void marshal_VkRenderingAreaInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11534                                     const VkRenderingAreaInfoKHR* forMarshaling) {
11535     (void)rootType;
11536     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11537     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11538         rootType = forMarshaling->sType;
11539     }
11540     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11541     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
11542     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
11543     // WARNING PTR CHECK
11544     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentFormats;
11545     vkStream->putBe64(cgen_var_0);
11546     if (forMarshaling->pColorAttachmentFormats) {
11547         vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats,
11548                         forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
11549     }
11550     vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
11551     vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
11552 }
11553 
unmarshal_VkRenderingAreaInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderingAreaInfoKHR * forUnmarshaling)11554 void unmarshal_VkRenderingAreaInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11555                                       VkRenderingAreaInfoKHR* forUnmarshaling) {
11556     (void)rootType;
11557     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11558     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11559         rootType = forUnmarshaling->sType;
11560     }
11561     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11562     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
11563     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
11564     // WARNING PTR CHECK
11565     const VkFormat* check_pColorAttachmentFormats;
11566     check_pColorAttachmentFormats = (const VkFormat*)(uintptr_t)vkStream->getBe64();
11567     if (forUnmarshaling->pColorAttachmentFormats) {
11568         if (!(check_pColorAttachmentFormats)) {
11569             fprintf(stderr,
11570                     "fatal: forUnmarshaling->pColorAttachmentFormats inconsistent between guest "
11571                     "and host\n");
11572         }
11573         vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats,
11574                        forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
11575     }
11576     vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
11577     vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
11578 }
11579 
marshal_VkImageSubresource2KHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresource2KHR * forMarshaling)11580 void marshal_VkImageSubresource2KHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11581                                     const VkImageSubresource2KHR* forMarshaling) {
11582     (void)rootType;
11583     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11584     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11585         rootType = forMarshaling->sType;
11586     }
11587     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11588     marshal_VkImageSubresource(vkStream, rootType,
11589                                (VkImageSubresource*)(&forMarshaling->imageSubresource));
11590 }
11591 
unmarshal_VkImageSubresource2KHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageSubresource2KHR * forUnmarshaling)11592 void unmarshal_VkImageSubresource2KHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11593                                       VkImageSubresource2KHR* forUnmarshaling) {
11594     (void)rootType;
11595     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11596     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11597         rootType = forUnmarshaling->sType;
11598     }
11599     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11600     unmarshal_VkImageSubresource(vkStream, rootType,
11601                                  (VkImageSubresource*)(&forUnmarshaling->imageSubresource));
11602 }
11603 
marshal_VkDeviceImageSubresourceInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceImageSubresourceInfoKHR * forMarshaling)11604 void marshal_VkDeviceImageSubresourceInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11605                                              const VkDeviceImageSubresourceInfoKHR* forMarshaling) {
11606     (void)rootType;
11607     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11608     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11609         rootType = forMarshaling->sType;
11610     }
11611     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11612     marshal_VkImageCreateInfo(vkStream, rootType,
11613                               (const VkImageCreateInfo*)(forMarshaling->pCreateInfo));
11614     marshal_VkImageSubresource2KHR(vkStream, rootType,
11615                                    (const VkImageSubresource2KHR*)(forMarshaling->pSubresource));
11616 }
11617 
unmarshal_VkDeviceImageSubresourceInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceImageSubresourceInfoKHR * forUnmarshaling)11618 void unmarshal_VkDeviceImageSubresourceInfoKHR(VulkanStreamGuest* vkStream,
11619                                                VkStructureType rootType,
11620                                                VkDeviceImageSubresourceInfoKHR* forUnmarshaling) {
11621     (void)rootType;
11622     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11623     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11624         rootType = forUnmarshaling->sType;
11625     }
11626     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11627     unmarshal_VkImageCreateInfo(vkStream, rootType,
11628                                 (VkImageCreateInfo*)(forUnmarshaling->pCreateInfo));
11629     unmarshal_VkImageSubresource2KHR(vkStream, rootType,
11630                                      (VkImageSubresource2KHR*)(forUnmarshaling->pSubresource));
11631 }
11632 
marshal_VkSubresourceLayout2KHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceLayout2KHR * forMarshaling)11633 void marshal_VkSubresourceLayout2KHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11634                                      const VkSubresourceLayout2KHR* forMarshaling) {
11635     (void)rootType;
11636     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11637     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11638         rootType = forMarshaling->sType;
11639     }
11640     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11641     marshal_VkSubresourceLayout(vkStream, rootType,
11642                                 (VkSubresourceLayout*)(&forMarshaling->subresourceLayout));
11643 }
11644 
unmarshal_VkSubresourceLayout2KHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubresourceLayout2KHR * forUnmarshaling)11645 void unmarshal_VkSubresourceLayout2KHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
11646                                        VkSubresourceLayout2KHR* forUnmarshaling) {
11647     (void)rootType;
11648     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11649     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11650         rootType = forUnmarshaling->sType;
11651     }
11652     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11653     unmarshal_VkSubresourceLayout(vkStream, rootType,
11654                                   (VkSubresourceLayout*)(&forUnmarshaling->subresourceLayout));
11655 }
11656 
marshal_VkPipelineCreateFlags2CreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCreateFlags2CreateInfoKHR * forMarshaling)11657 void marshal_VkPipelineCreateFlags2CreateInfoKHR(
11658     VulkanStreamGuest* vkStream, VkStructureType rootType,
11659     const VkPipelineCreateFlags2CreateInfoKHR* forMarshaling) {
11660     (void)rootType;
11661     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11662     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11663         rootType = forMarshaling->sType;
11664     }
11665     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11666     vkStream->write((VkPipelineCreateFlags2KHR*)&forMarshaling->flags,
11667                     sizeof(VkPipelineCreateFlags2KHR));
11668 }
11669 
unmarshal_VkPipelineCreateFlags2CreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineCreateFlags2CreateInfoKHR * forUnmarshaling)11670 void unmarshal_VkPipelineCreateFlags2CreateInfoKHR(
11671     VulkanStreamGuest* vkStream, VkStructureType rootType,
11672     VkPipelineCreateFlags2CreateInfoKHR* forUnmarshaling) {
11673     (void)rootType;
11674     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11675     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11676         rootType = forUnmarshaling->sType;
11677     }
11678     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11679     vkStream->read((VkPipelineCreateFlags2KHR*)&forUnmarshaling->flags,
11680                    sizeof(VkPipelineCreateFlags2KHR));
11681 }
11682 
marshal_VkBufferUsageFlags2CreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferUsageFlags2CreateInfoKHR * forMarshaling)11683 void marshal_VkBufferUsageFlags2CreateInfoKHR(
11684     VulkanStreamGuest* vkStream, VkStructureType rootType,
11685     const VkBufferUsageFlags2CreateInfoKHR* forMarshaling) {
11686     (void)rootType;
11687     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11688     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11689         rootType = forMarshaling->sType;
11690     }
11691     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11692     vkStream->write((VkBufferUsageFlags2KHR*)&forMarshaling->usage, sizeof(VkBufferUsageFlags2KHR));
11693 }
11694 
unmarshal_VkBufferUsageFlags2CreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkBufferUsageFlags2CreateInfoKHR * forUnmarshaling)11695 void unmarshal_VkBufferUsageFlags2CreateInfoKHR(VulkanStreamGuest* vkStream,
11696                                                 VkStructureType rootType,
11697                                                 VkBufferUsageFlags2CreateInfoKHR* forUnmarshaling) {
11698     (void)rootType;
11699     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11700     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11701         rootType = forUnmarshaling->sType;
11702     }
11703     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11704     vkStream->read((VkBufferUsageFlags2KHR*)&forUnmarshaling->usage,
11705                    sizeof(VkBufferUsageFlags2KHR));
11706 }
11707 
11708 #endif
11709 #ifdef VK_KHR_line_rasterization
marshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationFeaturesKHR * forMarshaling)11710 void marshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
11711     VulkanStreamGuest* vkStream, VkStructureType rootType,
11712     const VkPhysicalDeviceLineRasterizationFeaturesKHR* forMarshaling) {
11713     (void)rootType;
11714     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11715     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11716         rootType = forMarshaling->sType;
11717     }
11718     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11719     vkStream->write((VkBool32*)&forMarshaling->rectangularLines, sizeof(VkBool32));
11720     vkStream->write((VkBool32*)&forMarshaling->bresenhamLines, sizeof(VkBool32));
11721     vkStream->write((VkBool32*)&forMarshaling->smoothLines, sizeof(VkBool32));
11722     vkStream->write((VkBool32*)&forMarshaling->stippledRectangularLines, sizeof(VkBool32));
11723     vkStream->write((VkBool32*)&forMarshaling->stippledBresenhamLines, sizeof(VkBool32));
11724     vkStream->write((VkBool32*)&forMarshaling->stippledSmoothLines, sizeof(VkBool32));
11725 }
11726 
unmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationFeaturesKHR * forUnmarshaling)11727 void unmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
11728     VulkanStreamGuest* vkStream, VkStructureType rootType,
11729     VkPhysicalDeviceLineRasterizationFeaturesKHR* forUnmarshaling) {
11730     (void)rootType;
11731     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11732     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11733         rootType = forUnmarshaling->sType;
11734     }
11735     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11736     vkStream->read((VkBool32*)&forUnmarshaling->rectangularLines, sizeof(VkBool32));
11737     vkStream->read((VkBool32*)&forUnmarshaling->bresenhamLines, sizeof(VkBool32));
11738     vkStream->read((VkBool32*)&forUnmarshaling->smoothLines, sizeof(VkBool32));
11739     vkStream->read((VkBool32*)&forUnmarshaling->stippledRectangularLines, sizeof(VkBool32));
11740     vkStream->read((VkBool32*)&forUnmarshaling->stippledBresenhamLines, sizeof(VkBool32));
11741     vkStream->read((VkBool32*)&forUnmarshaling->stippledSmoothLines, sizeof(VkBool32));
11742 }
11743 
marshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationPropertiesKHR * forMarshaling)11744 void marshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
11745     VulkanStreamGuest* vkStream, VkStructureType rootType,
11746     const VkPhysicalDeviceLineRasterizationPropertiesKHR* forMarshaling) {
11747     (void)rootType;
11748     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11749     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11750         rootType = forMarshaling->sType;
11751     }
11752     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11753     vkStream->write((uint32_t*)&forMarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
11754 }
11755 
unmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationPropertiesKHR * forUnmarshaling)11756 void unmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
11757     VulkanStreamGuest* vkStream, VkStructureType rootType,
11758     VkPhysicalDeviceLineRasterizationPropertiesKHR* forUnmarshaling) {
11759     (void)rootType;
11760     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11761     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11762         rootType = forUnmarshaling->sType;
11763     }
11764     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11765     vkStream->read((uint32_t*)&forUnmarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
11766 }
11767 
marshal_VkPipelineRasterizationLineStateCreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationLineStateCreateInfoKHR * forMarshaling)11768 void marshal_VkPipelineRasterizationLineStateCreateInfoKHR(
11769     VulkanStreamGuest* vkStream, VkStructureType rootType,
11770     const VkPipelineRasterizationLineStateCreateInfoKHR* forMarshaling) {
11771     (void)rootType;
11772     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11773     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11774         rootType = forMarshaling->sType;
11775     }
11776     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11777     vkStream->write((VkLineRasterizationModeKHR*)&forMarshaling->lineRasterizationMode,
11778                     sizeof(VkLineRasterizationModeKHR));
11779     vkStream->write((VkBool32*)&forMarshaling->stippledLineEnable, sizeof(VkBool32));
11780     vkStream->write((uint32_t*)&forMarshaling->lineStippleFactor, sizeof(uint32_t));
11781     vkStream->write((uint16_t*)&forMarshaling->lineStipplePattern, sizeof(uint16_t));
11782 }
11783 
unmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationLineStateCreateInfoKHR * forUnmarshaling)11784 void unmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(
11785     VulkanStreamGuest* vkStream, VkStructureType rootType,
11786     VkPipelineRasterizationLineStateCreateInfoKHR* forUnmarshaling) {
11787     (void)rootType;
11788     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11789     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11790         rootType = forUnmarshaling->sType;
11791     }
11792     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11793     vkStream->read((VkLineRasterizationModeKHR*)&forUnmarshaling->lineRasterizationMode,
11794                    sizeof(VkLineRasterizationModeKHR));
11795     vkStream->read((VkBool32*)&forUnmarshaling->stippledLineEnable, sizeof(VkBool32));
11796     vkStream->read((uint32_t*)&forUnmarshaling->lineStippleFactor, sizeof(uint32_t));
11797     vkStream->read((uint16_t*)&forUnmarshaling->lineStipplePattern, sizeof(uint16_t));
11798 }
11799 
11800 #endif
11801 #ifdef VK_ANDROID_native_buffer
marshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkNativeBufferUsage2ANDROID * forMarshaling)11802 void marshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
11803                                          const VkNativeBufferUsage2ANDROID* forMarshaling) {
11804     (void)rootType;
11805     vkStream->write((uint64_t*)&forMarshaling->consumer, sizeof(uint64_t));
11806     vkStream->write((uint64_t*)&forMarshaling->producer, sizeof(uint64_t));
11807 }
11808 
unmarshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkNativeBufferUsage2ANDROID * forUnmarshaling)11809 void unmarshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
11810                                            VkNativeBufferUsage2ANDROID* forUnmarshaling) {
11811     (void)rootType;
11812     vkStream->read((uint64_t*)&forUnmarshaling->consumer, sizeof(uint64_t));
11813     vkStream->read((uint64_t*)&forUnmarshaling->producer, sizeof(uint64_t));
11814 }
11815 
marshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkNativeBufferANDROID * forMarshaling)11816 void marshal_VkNativeBufferANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
11817                                    const VkNativeBufferANDROID* forMarshaling) {
11818     (void)rootType;
11819     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11820     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11821         rootType = forMarshaling->sType;
11822     }
11823     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11824     // WARNING PTR CHECK
11825     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->handle;
11826     vkStream->putBe64(cgen_var_0);
11827     if (forMarshaling->handle) {
11828         vkStream->write((const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
11829     }
11830     vkStream->write((int*)&forMarshaling->stride, sizeof(int));
11831     vkStream->write((int*)&forMarshaling->format, sizeof(int));
11832     vkStream->write((int*)&forMarshaling->usage, sizeof(int));
11833     marshal_VkNativeBufferUsage2ANDROID(vkStream, rootType,
11834                                         (VkNativeBufferUsage2ANDROID*)(&forMarshaling->usage2));
11835 }
11836 
unmarshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkNativeBufferANDROID * forUnmarshaling)11837 void unmarshal_VkNativeBufferANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
11838                                      VkNativeBufferANDROID* forUnmarshaling) {
11839     (void)rootType;
11840     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11841     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11842         rootType = forUnmarshaling->sType;
11843     }
11844     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11845     // WARNING PTR CHECK
11846     const uint32_t* check_handle;
11847     check_handle = (const uint32_t*)(uintptr_t)vkStream->getBe64();
11848     if (forUnmarshaling->handle) {
11849         if (!(check_handle)) {
11850             fprintf(stderr, "fatal: forUnmarshaling->handle inconsistent between guest and host\n");
11851         }
11852         vkStream->read((uint32_t*)forUnmarshaling->handle, sizeof(const uint32_t));
11853     }
11854     vkStream->read((int*)&forUnmarshaling->stride, sizeof(int));
11855     vkStream->read((int*)&forUnmarshaling->format, sizeof(int));
11856     vkStream->read((int*)&forUnmarshaling->usage, sizeof(int));
11857     unmarshal_VkNativeBufferUsage2ANDROID(vkStream, rootType,
11858                                           (VkNativeBufferUsage2ANDROID*)(&forUnmarshaling->usage2));
11859 }
11860 
marshal_VkSwapchainImageCreateInfoANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSwapchainImageCreateInfoANDROID * forMarshaling)11861 void marshal_VkSwapchainImageCreateInfoANDROID(
11862     VulkanStreamGuest* vkStream, VkStructureType rootType,
11863     const VkSwapchainImageCreateInfoANDROID* forMarshaling) {
11864     (void)rootType;
11865     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11866     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11867         rootType = forMarshaling->sType;
11868     }
11869     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11870     vkStream->write((VkSwapchainImageUsageFlagsANDROID*)&forMarshaling->usage,
11871                     sizeof(VkSwapchainImageUsageFlagsANDROID));
11872 }
11873 
unmarshal_VkSwapchainImageCreateInfoANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSwapchainImageCreateInfoANDROID * forUnmarshaling)11874 void unmarshal_VkSwapchainImageCreateInfoANDROID(
11875     VulkanStreamGuest* vkStream, VkStructureType rootType,
11876     VkSwapchainImageCreateInfoANDROID* forUnmarshaling) {
11877     (void)rootType;
11878     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11879     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11880         rootType = forUnmarshaling->sType;
11881     }
11882     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11883     vkStream->read((VkSwapchainImageUsageFlagsANDROID*)&forUnmarshaling->usage,
11884                    sizeof(VkSwapchainImageUsageFlagsANDROID));
11885 }
11886 
marshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePresentationPropertiesANDROID * forMarshaling)11887 void marshal_VkPhysicalDevicePresentationPropertiesANDROID(
11888     VulkanStreamGuest* vkStream, VkStructureType rootType,
11889     const VkPhysicalDevicePresentationPropertiesANDROID* forMarshaling) {
11890     (void)rootType;
11891     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11892     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11893         rootType = forMarshaling->sType;
11894     }
11895     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11896     vkStream->write((VkBool32*)&forMarshaling->sharedImage, sizeof(VkBool32));
11897 }
11898 
unmarshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePresentationPropertiesANDROID * forUnmarshaling)11899 void unmarshal_VkPhysicalDevicePresentationPropertiesANDROID(
11900     VulkanStreamGuest* vkStream, VkStructureType rootType,
11901     VkPhysicalDevicePresentationPropertiesANDROID* forUnmarshaling) {
11902     (void)rootType;
11903     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11904     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11905         rootType = forUnmarshaling->sType;
11906     }
11907     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11908     vkStream->read((VkBool32*)&forUnmarshaling->sharedImage, sizeof(VkBool32));
11909 }
11910 
11911 #endif
11912 #ifdef VK_EXT_transform_feedback
marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * forMarshaling)11913 void marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
11914     VulkanStreamGuest* vkStream, VkStructureType rootType,
11915     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling) {
11916     (void)rootType;
11917     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11918     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11919         rootType = forMarshaling->sType;
11920     }
11921     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11922     vkStream->write((VkBool32*)&forMarshaling->transformFeedback, sizeof(VkBool32));
11923     vkStream->write((VkBool32*)&forMarshaling->geometryStreams, sizeof(VkBool32));
11924 }
11925 
unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackFeaturesEXT * forUnmarshaling)11926 void unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
11927     VulkanStreamGuest* vkStream, VkStructureType rootType,
11928     VkPhysicalDeviceTransformFeedbackFeaturesEXT* forUnmarshaling) {
11929     (void)rootType;
11930     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11931     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11932         rootType = forUnmarshaling->sType;
11933     }
11934     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11935     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedback, sizeof(VkBool32));
11936     vkStream->read((VkBool32*)&forUnmarshaling->geometryStreams, sizeof(VkBool32));
11937 }
11938 
marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * forMarshaling)11939 void marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
11940     VulkanStreamGuest* vkStream, VkStructureType rootType,
11941     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling) {
11942     (void)rootType;
11943     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11944     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11945         rootType = forMarshaling->sType;
11946     }
11947     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
11948     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
11949     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
11950     vkStream->write((VkDeviceSize*)&forMarshaling->maxTransformFeedbackBufferSize,
11951                     sizeof(VkDeviceSize));
11952     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreamDataSize,
11953                     sizeof(uint32_t));
11954     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataSize,
11955                     sizeof(uint32_t));
11956     vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataStride,
11957                     sizeof(uint32_t));
11958     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackQueries, sizeof(VkBool32));
11959     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackStreamsLinesTriangles,
11960                     sizeof(VkBool32));
11961     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackRasterizationStreamSelect,
11962                     sizeof(VkBool32));
11963     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackDraw, sizeof(VkBool32));
11964 }
11965 
unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackPropertiesEXT * forUnmarshaling)11966 void unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
11967     VulkanStreamGuest* vkStream, VkStructureType rootType,
11968     VkPhysicalDeviceTransformFeedbackPropertiesEXT* forUnmarshaling) {
11969     (void)rootType;
11970     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11971     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11972         rootType = forUnmarshaling->sType;
11973     }
11974     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
11975     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
11976     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
11977     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxTransformFeedbackBufferSize,
11978                    sizeof(VkDeviceSize));
11979     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreamDataSize,
11980                    sizeof(uint32_t));
11981     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataSize,
11982                    sizeof(uint32_t));
11983     vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataStride,
11984                    sizeof(uint32_t));
11985     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackQueries, sizeof(VkBool32));
11986     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackStreamsLinesTriangles,
11987                    sizeof(VkBool32));
11988     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackRasterizationStreamSelect,
11989                    sizeof(VkBool32));
11990     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackDraw, sizeof(VkBool32));
11991 }
11992 
marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateStreamCreateInfoEXT * forMarshaling)11993 void marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
11994     VulkanStreamGuest* vkStream, VkStructureType rootType,
11995     const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling) {
11996     (void)rootType;
11997     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11998     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11999         rootType = forMarshaling->sType;
12000     }
12001     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12002     vkStream->write((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forMarshaling->flags,
12003                     sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
12004     vkStream->write((uint32_t*)&forMarshaling->rasterizationStream, sizeof(uint32_t));
12005 }
12006 
unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationStateStreamCreateInfoEXT * forUnmarshaling)12007 void unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
12008     VulkanStreamGuest* vkStream, VkStructureType rootType,
12009     VkPipelineRasterizationStateStreamCreateInfoEXT* forUnmarshaling) {
12010     (void)rootType;
12011     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12012     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12013         rootType = forUnmarshaling->sType;
12014     }
12015     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12016     vkStream->read((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forUnmarshaling->flags,
12017                    sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
12018     vkStream->read((uint32_t*)&forUnmarshaling->rasterizationStream, sizeof(uint32_t));
12019 }
12020 
12021 #endif
12022 #ifdef VK_EXT_depth_clip_enable
marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * forMarshaling)12023 void marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
12024     VulkanStreamGuest* vkStream, VkStructureType rootType,
12025     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling) {
12026     (void)rootType;
12027     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12028     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12029         rootType = forMarshaling->sType;
12030     }
12031     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12032     vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
12033 }
12034 
unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthClipEnableFeaturesEXT * forUnmarshaling)12035 void unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
12036     VulkanStreamGuest* vkStream, VkStructureType rootType,
12037     VkPhysicalDeviceDepthClipEnableFeaturesEXT* forUnmarshaling) {
12038     (void)rootType;
12039     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12040     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12041         rootType = forUnmarshaling->sType;
12042     }
12043     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12044     vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
12045 }
12046 
marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationDepthClipStateCreateInfoEXT * forMarshaling)12047 void marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
12048     VulkanStreamGuest* vkStream, VkStructureType rootType,
12049     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling) {
12050     (void)rootType;
12051     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12052     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12053         rootType = forMarshaling->sType;
12054     }
12055     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12056     vkStream->write((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forMarshaling->flags,
12057                     sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
12058     vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
12059 }
12060 
unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationDepthClipStateCreateInfoEXT * forUnmarshaling)12061 void unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
12062     VulkanStreamGuest* vkStream, VkStructureType rootType,
12063     VkPipelineRasterizationDepthClipStateCreateInfoEXT* forUnmarshaling) {
12064     (void)rootType;
12065     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12066     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12067         rootType = forUnmarshaling->sType;
12068     }
12069     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12070     vkStream->read((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forUnmarshaling->flags,
12071                    sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
12072     vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
12073 }
12074 
12075 #endif
12076 #ifdef VK_EXT_image_drm_format_modifier
marshal_VkDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesEXT * forMarshaling)12077 void marshal_VkDrmFormatModifierPropertiesEXT(
12078     VulkanStreamGuest* vkStream, VkStructureType rootType,
12079     const VkDrmFormatModifierPropertiesEXT* forMarshaling) {
12080     (void)rootType;
12081     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
12082     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
12083     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->drmFormatModifierTilingFeatures,
12084                     sizeof(VkFormatFeatureFlags));
12085 }
12086 
unmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesEXT * forUnmarshaling)12087 void unmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStreamGuest* vkStream,
12088                                                 VkStructureType rootType,
12089                                                 VkDrmFormatModifierPropertiesEXT* forUnmarshaling) {
12090     (void)rootType;
12091     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
12092     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
12093     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->drmFormatModifierTilingFeatures,
12094                    sizeof(VkFormatFeatureFlags));
12095 }
12096 
marshal_VkDrmFormatModifierPropertiesListEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesListEXT * forMarshaling)12097 void marshal_VkDrmFormatModifierPropertiesListEXT(
12098     VulkanStreamGuest* vkStream, VkStructureType rootType,
12099     const VkDrmFormatModifierPropertiesListEXT* forMarshaling) {
12100     (void)rootType;
12101     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12102     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12103         rootType = forMarshaling->sType;
12104     }
12105     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12106     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
12107     // WARNING PTR CHECK
12108     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
12109     vkStream->putBe64(cgen_var_0);
12110     if (forMarshaling->pDrmFormatModifierProperties) {
12111         if (forMarshaling) {
12112             for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
12113                 marshal_VkDrmFormatModifierPropertiesEXT(
12114                     vkStream, rootType,
12115                     (VkDrmFormatModifierPropertiesEXT*)(forMarshaling
12116                                                             ->pDrmFormatModifierProperties +
12117                                                         i));
12118             }
12119         }
12120     }
12121 }
12122 
unmarshal_VkDrmFormatModifierPropertiesListEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesListEXT * forUnmarshaling)12123 void unmarshal_VkDrmFormatModifierPropertiesListEXT(
12124     VulkanStreamGuest* vkStream, VkStructureType rootType,
12125     VkDrmFormatModifierPropertiesListEXT* forUnmarshaling) {
12126     (void)rootType;
12127     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12128     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12129         rootType = forUnmarshaling->sType;
12130     }
12131     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12132     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
12133     // WARNING PTR CHECK
12134     VkDrmFormatModifierPropertiesEXT* check_pDrmFormatModifierProperties;
12135     check_pDrmFormatModifierProperties =
12136         (VkDrmFormatModifierPropertiesEXT*)(uintptr_t)vkStream->getBe64();
12137     if (forUnmarshaling->pDrmFormatModifierProperties) {
12138         if (!(check_pDrmFormatModifierProperties)) {
12139             fprintf(stderr,
12140                     "fatal: forUnmarshaling->pDrmFormatModifierProperties inconsistent between "
12141                     "guest and host\n");
12142         }
12143         if (forUnmarshaling) {
12144             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
12145                 unmarshal_VkDrmFormatModifierPropertiesEXT(
12146                     vkStream, rootType,
12147                     (VkDrmFormatModifierPropertiesEXT*)(forUnmarshaling
12148                                                             ->pDrmFormatModifierProperties +
12149                                                         i));
12150             }
12151         }
12152     }
12153 }
12154 
marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forMarshaling)12155 void marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
12156     VulkanStreamGuest* vkStream, VkStructureType rootType,
12157     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling) {
12158     (void)rootType;
12159     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12160     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12161         rootType = forMarshaling->sType;
12162     }
12163     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12164     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
12165     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
12166     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
12167     // WARNING PTR CHECK
12168     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
12169     vkStream->putBe64(cgen_var_0);
12170     if (forMarshaling->pQueueFamilyIndices) {
12171         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
12172                         forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
12173     }
12174 }
12175 
unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forUnmarshaling)12176 void unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
12177     VulkanStreamGuest* vkStream, VkStructureType rootType,
12178     VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forUnmarshaling) {
12179     (void)rootType;
12180     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12181     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12182         rootType = forUnmarshaling->sType;
12183     }
12184     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12185     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
12186     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
12187     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
12188     // WARNING PTR CHECK
12189     const uint32_t* check_pQueueFamilyIndices;
12190     check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
12191     if (forUnmarshaling->pQueueFamilyIndices) {
12192         if (!(check_pQueueFamilyIndices)) {
12193             fprintf(stderr,
12194                     "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and "
12195                     "host\n");
12196         }
12197         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
12198                        forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
12199     }
12200 }
12201 
marshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierListCreateInfoEXT * forMarshaling)12202 void marshal_VkImageDrmFormatModifierListCreateInfoEXT(
12203     VulkanStreamGuest* vkStream, VkStructureType rootType,
12204     const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling) {
12205     (void)rootType;
12206     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12207     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12208         rootType = forMarshaling->sType;
12209     }
12210     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12211     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
12212     vkStream->write((const uint64_t*)forMarshaling->pDrmFormatModifiers,
12213                     forMarshaling->drmFormatModifierCount * sizeof(const uint64_t));
12214 }
12215 
unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageDrmFormatModifierListCreateInfoEXT * forUnmarshaling)12216 void unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
12217     VulkanStreamGuest* vkStream, VkStructureType rootType,
12218     VkImageDrmFormatModifierListCreateInfoEXT* 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((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
12226     vkStream->read((uint64_t*)forUnmarshaling->pDrmFormatModifiers,
12227                    forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t));
12228 }
12229 
marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierExplicitCreateInfoEXT * forMarshaling)12230 void marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
12231     VulkanStreamGuest* vkStream, VkStructureType rootType,
12232     const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling) {
12233     (void)rootType;
12234     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12235     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12236         rootType = forMarshaling->sType;
12237     }
12238     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12239     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
12240     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
12241     if (forMarshaling) {
12242         for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierPlaneCount; ++i) {
12243             marshal_VkSubresourceLayout(
12244                 vkStream, rootType, (const VkSubresourceLayout*)(forMarshaling->pPlaneLayouts + i));
12245         }
12246     }
12247 }
12248 
unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageDrmFormatModifierExplicitCreateInfoEXT * forUnmarshaling)12249 void unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
12250     VulkanStreamGuest* vkStream, VkStructureType rootType,
12251     VkImageDrmFormatModifierExplicitCreateInfoEXT* forUnmarshaling) {
12252     (void)rootType;
12253     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12254     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12255         rootType = forUnmarshaling->sType;
12256     }
12257     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12258     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
12259     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
12260     if (forUnmarshaling) {
12261         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierPlaneCount; ++i) {
12262             unmarshal_VkSubresourceLayout(
12263                 vkStream, rootType, (VkSubresourceLayout*)(forUnmarshaling->pPlaneLayouts + i));
12264         }
12265     }
12266 }
12267 
marshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierPropertiesEXT * forMarshaling)12268 void marshal_VkImageDrmFormatModifierPropertiesEXT(
12269     VulkanStreamGuest* vkStream, VkStructureType rootType,
12270     const VkImageDrmFormatModifierPropertiesEXT* forMarshaling) {
12271     (void)rootType;
12272     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12273     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12274         rootType = forMarshaling->sType;
12275     }
12276     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12277     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
12278 }
12279 
unmarshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageDrmFormatModifierPropertiesEXT * forUnmarshaling)12280 void unmarshal_VkImageDrmFormatModifierPropertiesEXT(
12281     VulkanStreamGuest* vkStream, VkStructureType rootType,
12282     VkImageDrmFormatModifierPropertiesEXT* forUnmarshaling) {
12283     (void)rootType;
12284     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12285     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12286         rootType = forUnmarshaling->sType;
12287     }
12288     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12289     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
12290 }
12291 
marshal_VkDrmFormatModifierProperties2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierProperties2EXT * forMarshaling)12292 void marshal_VkDrmFormatModifierProperties2EXT(
12293     VulkanStreamGuest* vkStream, VkStructureType rootType,
12294     const VkDrmFormatModifierProperties2EXT* forMarshaling) {
12295     (void)rootType;
12296     vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
12297     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
12298     vkStream->write((VkFormatFeatureFlags2*)&forMarshaling->drmFormatModifierTilingFeatures,
12299                     sizeof(VkFormatFeatureFlags2));
12300 }
12301 
unmarshal_VkDrmFormatModifierProperties2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierProperties2EXT * forUnmarshaling)12302 void unmarshal_VkDrmFormatModifierProperties2EXT(
12303     VulkanStreamGuest* vkStream, VkStructureType rootType,
12304     VkDrmFormatModifierProperties2EXT* forUnmarshaling) {
12305     (void)rootType;
12306     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
12307     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
12308     vkStream->read((VkFormatFeatureFlags2*)&forUnmarshaling->drmFormatModifierTilingFeatures,
12309                    sizeof(VkFormatFeatureFlags2));
12310 }
12311 
marshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesList2EXT * forMarshaling)12312 void marshal_VkDrmFormatModifierPropertiesList2EXT(
12313     VulkanStreamGuest* vkStream, VkStructureType rootType,
12314     const VkDrmFormatModifierPropertiesList2EXT* forMarshaling) {
12315     (void)rootType;
12316     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12317     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12318         rootType = forMarshaling->sType;
12319     }
12320     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12321     vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
12322     // WARNING PTR CHECK
12323     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
12324     vkStream->putBe64(cgen_var_0);
12325     if (forMarshaling->pDrmFormatModifierProperties) {
12326         if (forMarshaling) {
12327             for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
12328                 marshal_VkDrmFormatModifierProperties2EXT(
12329                     vkStream, rootType,
12330                     (VkDrmFormatModifierProperties2EXT*)(forMarshaling
12331                                                              ->pDrmFormatModifierProperties +
12332                                                          i));
12333             }
12334         }
12335     }
12336 }
12337 
unmarshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesList2EXT * forUnmarshaling)12338 void unmarshal_VkDrmFormatModifierPropertiesList2EXT(
12339     VulkanStreamGuest* vkStream, VkStructureType rootType,
12340     VkDrmFormatModifierPropertiesList2EXT* forUnmarshaling) {
12341     (void)rootType;
12342     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12343     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12344         rootType = forUnmarshaling->sType;
12345     }
12346     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12347     vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
12348     // WARNING PTR CHECK
12349     VkDrmFormatModifierProperties2EXT* check_pDrmFormatModifierProperties;
12350     check_pDrmFormatModifierProperties =
12351         (VkDrmFormatModifierProperties2EXT*)(uintptr_t)vkStream->getBe64();
12352     if (forUnmarshaling->pDrmFormatModifierProperties) {
12353         if (!(check_pDrmFormatModifierProperties)) {
12354             fprintf(stderr,
12355                     "fatal: forUnmarshaling->pDrmFormatModifierProperties inconsistent between "
12356                     "guest and host\n");
12357         }
12358         if (forUnmarshaling) {
12359             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
12360                 unmarshal_VkDrmFormatModifierProperties2EXT(
12361                     vkStream, rootType,
12362                     (VkDrmFormatModifierProperties2EXT*)(forUnmarshaling
12363                                                              ->pDrmFormatModifierProperties +
12364                                                          i));
12365             }
12366         }
12367     }
12368 }
12369 
12370 #endif
12371 #ifdef VK_EXT_vertex_attribute_divisor
marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forMarshaling)12372 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
12373     VulkanStreamGuest* vkStream, VkStructureType rootType,
12374     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling) {
12375     (void)rootType;
12376     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12377     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12378         rootType = forMarshaling->sType;
12379     }
12380     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12381     vkStream->write((uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
12382 }
12383 
unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forUnmarshaling)12384 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
12385     VulkanStreamGuest* vkStream, VkStructureType rootType,
12386     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* 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((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
12394 }
12395 
12396 #endif
12397 #ifdef VK_EXT_fragment_density_map
marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forMarshaling)12398 void marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
12399     VulkanStreamGuest* vkStream, VkStructureType rootType,
12400     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forMarshaling) {
12401     (void)rootType;
12402     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12403     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12404         rootType = forMarshaling->sType;
12405     }
12406     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12407     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMap, sizeof(VkBool32));
12408     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapDynamic, sizeof(VkBool32));
12409     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapNonSubsampledImages,
12410                     sizeof(VkBool32));
12411 }
12412 
unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forUnmarshaling)12413 void unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
12414     VulkanStreamGuest* vkStream, VkStructureType rootType,
12415     VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forUnmarshaling) {
12416     (void)rootType;
12417     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12418     forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
12419     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12420         rootType = forUnmarshaling->sType;
12421     }
12422     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12423     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMap, sizeof(VkBool32));
12424     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapDynamic, sizeof(VkBool32));
12425     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapNonSubsampledImages,
12426                    sizeof(VkBool32));
12427 }
12428 
marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forMarshaling)12429 void marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
12430     VulkanStreamGuest* vkStream, VkStructureType rootType,
12431     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forMarshaling) {
12432     (void)rootType;
12433     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12434     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12435         rootType = forMarshaling->sType;
12436     }
12437     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12438     marshal_VkExtent2D(vkStream, rootType,
12439                        (VkExtent2D*)(&forMarshaling->minFragmentDensityTexelSize));
12440     marshal_VkExtent2D(vkStream, rootType,
12441                        (VkExtent2D*)(&forMarshaling->maxFragmentDensityTexelSize));
12442     vkStream->write((VkBool32*)&forMarshaling->fragmentDensityInvocations, sizeof(VkBool32));
12443 }
12444 
unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forUnmarshaling)12445 void unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
12446     VulkanStreamGuest* vkStream, VkStructureType rootType,
12447     VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forUnmarshaling) {
12448     (void)rootType;
12449     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12450     forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
12451     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12452         rootType = forUnmarshaling->sType;
12453     }
12454     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12455     unmarshal_VkExtent2D(vkStream, rootType,
12456                          (VkExtent2D*)(&forUnmarshaling->minFragmentDensityTexelSize));
12457     unmarshal_VkExtent2D(vkStream, rootType,
12458                          (VkExtent2D*)(&forUnmarshaling->maxFragmentDensityTexelSize));
12459     vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityInvocations, sizeof(VkBool32));
12460 }
12461 
marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassFragmentDensityMapCreateInfoEXT * forMarshaling)12462 void marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
12463     VulkanStreamGuest* vkStream, VkStructureType rootType,
12464     const VkRenderPassFragmentDensityMapCreateInfoEXT* forMarshaling) {
12465     (void)rootType;
12466     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12467     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12468         rootType = forMarshaling->sType;
12469     }
12470     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12471     marshal_VkAttachmentReference(
12472         vkStream, rootType, (VkAttachmentReference*)(&forMarshaling->fragmentDensityMapAttachment));
12473 }
12474 
unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkRenderPassFragmentDensityMapCreateInfoEXT * forUnmarshaling)12475 void unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
12476     VulkanStreamGuest* vkStream, VkStructureType rootType,
12477     VkRenderPassFragmentDensityMapCreateInfoEXT* forUnmarshaling) {
12478     (void)rootType;
12479     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12480     forUnmarshaling->sType = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
12481     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12482         rootType = forUnmarshaling->sType;
12483     }
12484     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12485     unmarshal_VkAttachmentReference(
12486         vkStream, rootType,
12487         (VkAttachmentReference*)(&forUnmarshaling->fragmentDensityMapAttachment));
12488 }
12489 
12490 #endif
12491 #ifdef VK_EXT_provoking_vertex
marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexFeaturesEXT * forMarshaling)12492 void marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
12493     VulkanStreamGuest* vkStream, VkStructureType rootType,
12494     const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling) {
12495     (void)rootType;
12496     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12497     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12498         rootType = forMarshaling->sType;
12499     }
12500     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12501     vkStream->write((VkBool32*)&forMarshaling->provokingVertexLast, sizeof(VkBool32));
12502     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesProvokingVertex,
12503                     sizeof(VkBool32));
12504 }
12505 
unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexFeaturesEXT * forUnmarshaling)12506 void unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
12507     VulkanStreamGuest* vkStream, VkStructureType rootType,
12508     VkPhysicalDeviceProvokingVertexFeaturesEXT* forUnmarshaling) {
12509     (void)rootType;
12510     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12511     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12512         rootType = forUnmarshaling->sType;
12513     }
12514     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12515     vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexLast, sizeof(VkBool32));
12516     vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackPreservesProvokingVertex,
12517                    sizeof(VkBool32));
12518 }
12519 
marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexPropertiesEXT * forMarshaling)12520 void marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
12521     VulkanStreamGuest* vkStream, VkStructureType rootType,
12522     const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling) {
12523     (void)rootType;
12524     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12525     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12526         rootType = forMarshaling->sType;
12527     }
12528     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12529     vkStream->write((VkBool32*)&forMarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
12530     vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesTriangleFanProvokingVertex,
12531                     sizeof(VkBool32));
12532 }
12533 
unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexPropertiesEXT * forUnmarshaling)12534 void unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
12535     VulkanStreamGuest* vkStream, VkStructureType rootType,
12536     VkPhysicalDeviceProvokingVertexPropertiesEXT* forUnmarshaling) {
12537     (void)rootType;
12538     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12539     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12540         rootType = forUnmarshaling->sType;
12541     }
12542     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12543     vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
12544     vkStream->read(
12545         (VkBool32*)&forUnmarshaling->transformFeedbackPreservesTriangleFanProvokingVertex,
12546         sizeof(VkBool32));
12547 }
12548 
marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forMarshaling)12549 void marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
12550     VulkanStreamGuest* vkStream, VkStructureType rootType,
12551     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forMarshaling) {
12552     (void)rootType;
12553     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12554     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12555         rootType = forMarshaling->sType;
12556     }
12557     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12558     vkStream->write((VkProvokingVertexModeEXT*)&forMarshaling->provokingVertexMode,
12559                     sizeof(VkProvokingVertexModeEXT));
12560 }
12561 
unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forUnmarshaling)12562 void unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
12563     VulkanStreamGuest* vkStream, VkStructureType rootType,
12564     VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forUnmarshaling) {
12565     (void)rootType;
12566     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12567     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12568         rootType = forUnmarshaling->sType;
12569     }
12570     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12571     vkStream->read((VkProvokingVertexModeEXT*)&forUnmarshaling->provokingVertexMode,
12572                    sizeof(VkProvokingVertexModeEXT));
12573 }
12574 
12575 #endif
12576 #ifdef VK_EXT_extended_dynamic_state
marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forMarshaling)12577 void marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
12578     VulkanStreamGuest* vkStream, VkStructureType rootType,
12579     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling) {
12580     (void)rootType;
12581     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12582     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12583         rootType = forMarshaling->sType;
12584     }
12585     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12586     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState, sizeof(VkBool32));
12587 }
12588 
unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forUnmarshaling)12589 void unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
12590     VulkanStreamGuest* vkStream, VkStructureType rootType,
12591     VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forUnmarshaling) {
12592     (void)rootType;
12593     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12594     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12595         rootType = forUnmarshaling->sType;
12596     }
12597     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12598     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState, sizeof(VkBool32));
12599 }
12600 
12601 #endif
12602 #ifdef VK_EXT_host_image_copy
marshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyFeaturesEXT * forMarshaling)12603 void marshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
12604     VulkanStreamGuest* vkStream, VkStructureType rootType,
12605     const VkPhysicalDeviceHostImageCopyFeaturesEXT* forMarshaling) {
12606     (void)rootType;
12607     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12608     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12609         rootType = forMarshaling->sType;
12610     }
12611     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12612     vkStream->write((VkBool32*)&forMarshaling->hostImageCopy, sizeof(VkBool32));
12613 }
12614 
unmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceHostImageCopyFeaturesEXT * forUnmarshaling)12615 void unmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
12616     VulkanStreamGuest* vkStream, VkStructureType rootType,
12617     VkPhysicalDeviceHostImageCopyFeaturesEXT* forUnmarshaling) {
12618     (void)rootType;
12619     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12620     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12621         rootType = forUnmarshaling->sType;
12622     }
12623     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12624     vkStream->read((VkBool32*)&forUnmarshaling->hostImageCopy, sizeof(VkBool32));
12625 }
12626 
marshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyPropertiesEXT * forMarshaling)12627 void marshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
12628     VulkanStreamGuest* vkStream, VkStructureType rootType,
12629     const VkPhysicalDeviceHostImageCopyPropertiesEXT* forMarshaling) {
12630     (void)rootType;
12631     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12632     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12633         rootType = forMarshaling->sType;
12634     }
12635     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12636     vkStream->write((uint32_t*)&forMarshaling->copySrcLayoutCount, sizeof(uint32_t));
12637     // WARNING PTR CHECK
12638     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCopySrcLayouts;
12639     vkStream->putBe64(cgen_var_0);
12640     if (forMarshaling->pCopySrcLayouts) {
12641         vkStream->write((VkImageLayout*)forMarshaling->pCopySrcLayouts,
12642                         forMarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
12643     }
12644     vkStream->write((uint32_t*)&forMarshaling->copyDstLayoutCount, sizeof(uint32_t));
12645     // WARNING PTR CHECK
12646     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pCopyDstLayouts;
12647     vkStream->putBe64(cgen_var_1);
12648     if (forMarshaling->pCopyDstLayouts) {
12649         vkStream->write((VkImageLayout*)forMarshaling->pCopyDstLayouts,
12650                         forMarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
12651     }
12652     vkStream->write((uint8_t*)forMarshaling->optimalTilingLayoutUUID,
12653                     VK_UUID_SIZE * sizeof(uint8_t));
12654     vkStream->write((VkBool32*)&forMarshaling->identicalMemoryTypeRequirements, sizeof(VkBool32));
12655 }
12656 
unmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceHostImageCopyPropertiesEXT * forUnmarshaling)12657 void unmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
12658     VulkanStreamGuest* vkStream, VkStructureType rootType,
12659     VkPhysicalDeviceHostImageCopyPropertiesEXT* forUnmarshaling) {
12660     (void)rootType;
12661     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12662     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12663         rootType = forUnmarshaling->sType;
12664     }
12665     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12666     vkStream->read((uint32_t*)&forUnmarshaling->copySrcLayoutCount, sizeof(uint32_t));
12667     // WARNING PTR CHECK
12668     VkImageLayout* check_pCopySrcLayouts;
12669     check_pCopySrcLayouts = (VkImageLayout*)(uintptr_t)vkStream->getBe64();
12670     if (forUnmarshaling->pCopySrcLayouts) {
12671         if (!(check_pCopySrcLayouts)) {
12672             fprintf(
12673                 stderr,
12674                 "fatal: forUnmarshaling->pCopySrcLayouts inconsistent between guest and host\n");
12675         }
12676         vkStream->read((VkImageLayout*)forUnmarshaling->pCopySrcLayouts,
12677                        forUnmarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
12678     }
12679     vkStream->read((uint32_t*)&forUnmarshaling->copyDstLayoutCount, sizeof(uint32_t));
12680     // WARNING PTR CHECK
12681     VkImageLayout* check_pCopyDstLayouts;
12682     check_pCopyDstLayouts = (VkImageLayout*)(uintptr_t)vkStream->getBe64();
12683     if (forUnmarshaling->pCopyDstLayouts) {
12684         if (!(check_pCopyDstLayouts)) {
12685             fprintf(
12686                 stderr,
12687                 "fatal: forUnmarshaling->pCopyDstLayouts inconsistent between guest and host\n");
12688         }
12689         vkStream->read((VkImageLayout*)forUnmarshaling->pCopyDstLayouts,
12690                        forUnmarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
12691     }
12692     vkStream->read((uint8_t*)forUnmarshaling->optimalTilingLayoutUUID,
12693                    VK_UUID_SIZE * sizeof(uint8_t));
12694     vkStream->read((VkBool32*)&forUnmarshaling->identicalMemoryTypeRequirements, sizeof(VkBool32));
12695 }
12696 
marshal_VkMemoryToImageCopyEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryToImageCopyEXT * forMarshaling)12697 void marshal_VkMemoryToImageCopyEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12698                                     const VkMemoryToImageCopyEXT* forMarshaling) {
12699     (void)rootType;
12700     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12701     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12702         rootType = forMarshaling->sType;
12703     }
12704     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12705     vkStream->write((const void*)forMarshaling->pHostPointer, sizeof(const uint8_t));
12706     vkStream->write((uint32_t*)&forMarshaling->memoryRowLength, sizeof(uint32_t));
12707     vkStream->write((uint32_t*)&forMarshaling->memoryImageHeight, sizeof(uint32_t));
12708     marshal_VkImageSubresourceLayers(vkStream, rootType,
12709                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
12710     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
12711     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
12712 }
12713 
unmarshal_VkMemoryToImageCopyEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkMemoryToImageCopyEXT * forUnmarshaling)12714 void unmarshal_VkMemoryToImageCopyEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12715                                       VkMemoryToImageCopyEXT* forUnmarshaling) {
12716     (void)rootType;
12717     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12718     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12719         rootType = forUnmarshaling->sType;
12720     }
12721     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12722     vkStream->read((void*)forUnmarshaling->pHostPointer, sizeof(const uint8_t));
12723     vkStream->read((uint32_t*)&forUnmarshaling->memoryRowLength, sizeof(uint32_t));
12724     vkStream->read((uint32_t*)&forUnmarshaling->memoryImageHeight, sizeof(uint32_t));
12725     unmarshal_VkImageSubresourceLayers(
12726         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
12727     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
12728     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
12729 }
12730 
marshal_VkImageToMemoryCopyEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageToMemoryCopyEXT * forMarshaling)12731 void marshal_VkImageToMemoryCopyEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12732                                     const VkImageToMemoryCopyEXT* forMarshaling) {
12733     (void)rootType;
12734     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12735     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12736         rootType = forMarshaling->sType;
12737     }
12738     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12739     vkStream->write((void*)forMarshaling->pHostPointer, sizeof(uint8_t));
12740     vkStream->write((uint32_t*)&forMarshaling->memoryRowLength, sizeof(uint32_t));
12741     vkStream->write((uint32_t*)&forMarshaling->memoryImageHeight, sizeof(uint32_t));
12742     marshal_VkImageSubresourceLayers(vkStream, rootType,
12743                                      (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
12744     marshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset));
12745     marshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent));
12746 }
12747 
unmarshal_VkImageToMemoryCopyEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageToMemoryCopyEXT * forUnmarshaling)12748 void unmarshal_VkImageToMemoryCopyEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12749                                       VkImageToMemoryCopyEXT* forUnmarshaling) {
12750     (void)rootType;
12751     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12752     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12753         rootType = forUnmarshaling->sType;
12754     }
12755     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12756     vkStream->read((void*)forUnmarshaling->pHostPointer, sizeof(uint8_t));
12757     vkStream->read((uint32_t*)&forUnmarshaling->memoryRowLength, sizeof(uint32_t));
12758     vkStream->read((uint32_t*)&forUnmarshaling->memoryImageHeight, sizeof(uint32_t));
12759     unmarshal_VkImageSubresourceLayers(
12760         vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
12761     unmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset));
12762     unmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent));
12763 }
12764 
marshal_VkCopyMemoryToImageInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyMemoryToImageInfoEXT * forMarshaling)12765 void marshal_VkCopyMemoryToImageInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12766                                         const VkCopyMemoryToImageInfoEXT* forMarshaling) {
12767     (void)rootType;
12768     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12769     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12770         rootType = forMarshaling->sType;
12771     }
12772     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12773     vkStream->write((VkHostImageCopyFlagsEXT*)&forMarshaling->flags,
12774                     sizeof(VkHostImageCopyFlagsEXT));
12775     uint64_t cgen_var_0;
12776     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_0, 1);
12777     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12778     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
12779     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12780     if (forMarshaling) {
12781         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12782             marshal_VkMemoryToImageCopyEXT(
12783                 vkStream, rootType, (const VkMemoryToImageCopyEXT*)(forMarshaling->pRegions + i));
12784         }
12785     }
12786 }
12787 
unmarshal_VkCopyMemoryToImageInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyMemoryToImageInfoEXT * forUnmarshaling)12788 void unmarshal_VkCopyMemoryToImageInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12789                                           VkCopyMemoryToImageInfoEXT* forUnmarshaling) {
12790     (void)rootType;
12791     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12792     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12793         rootType = forUnmarshaling->sType;
12794     }
12795     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12796     vkStream->read((VkHostImageCopyFlagsEXT*)&forUnmarshaling->flags,
12797                    sizeof(VkHostImageCopyFlagsEXT));
12798     uint64_t cgen_var_0;
12799     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12800     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12801                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
12802     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
12803     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12804     if (forUnmarshaling) {
12805         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12806             unmarshal_VkMemoryToImageCopyEXT(
12807                 vkStream, rootType, (VkMemoryToImageCopyEXT*)(forUnmarshaling->pRegions + i));
12808         }
12809     }
12810 }
12811 
marshal_VkCopyImageToMemoryInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToMemoryInfoEXT * forMarshaling)12812 void marshal_VkCopyImageToMemoryInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12813                                         const VkCopyImageToMemoryInfoEXT* forMarshaling) {
12814     (void)rootType;
12815     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12816     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12817         rootType = forMarshaling->sType;
12818     }
12819     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12820     vkStream->write((VkHostImageCopyFlagsEXT*)&forMarshaling->flags,
12821                     sizeof(VkHostImageCopyFlagsEXT));
12822     uint64_t cgen_var_0;
12823     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
12824     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12825     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
12826     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12827     if (forMarshaling) {
12828         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12829             marshal_VkImageToMemoryCopyEXT(
12830                 vkStream, rootType, (const VkImageToMemoryCopyEXT*)(forMarshaling->pRegions + i));
12831         }
12832     }
12833 }
12834 
unmarshal_VkCopyImageToMemoryInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyImageToMemoryInfoEXT * forUnmarshaling)12835 void unmarshal_VkCopyImageToMemoryInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12836                                           VkCopyImageToMemoryInfoEXT* forUnmarshaling) {
12837     (void)rootType;
12838     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12839     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12840         rootType = forUnmarshaling->sType;
12841     }
12842     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12843     vkStream->read((VkHostImageCopyFlagsEXT*)&forUnmarshaling->flags,
12844                    sizeof(VkHostImageCopyFlagsEXT));
12845     uint64_t cgen_var_0;
12846     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12847     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12848                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
12849     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
12850     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12851     if (forUnmarshaling) {
12852         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12853             unmarshal_VkImageToMemoryCopyEXT(
12854                 vkStream, rootType, (VkImageToMemoryCopyEXT*)(forUnmarshaling->pRegions + i));
12855         }
12856     }
12857 }
12858 
marshal_VkCopyImageToImageInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToImageInfoEXT * forMarshaling)12859 void marshal_VkCopyImageToImageInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12860                                        const VkCopyImageToImageInfoEXT* forMarshaling) {
12861     (void)rootType;
12862     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12863     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12864         rootType = forMarshaling->sType;
12865     }
12866     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12867     vkStream->write((VkHostImageCopyFlagsEXT*)&forMarshaling->flags,
12868                     sizeof(VkHostImageCopyFlagsEXT));
12869     uint64_t cgen_var_0;
12870     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
12871     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12872     vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
12873     uint64_t cgen_var_1;
12874     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
12875     vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
12876     vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
12877     vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
12878     if (forMarshaling) {
12879         for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
12880             marshal_VkImageCopy2(vkStream, rootType,
12881                                  (const VkImageCopy2*)(forMarshaling->pRegions + i));
12882         }
12883     }
12884 }
12885 
unmarshal_VkCopyImageToImageInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCopyImageToImageInfoEXT * forUnmarshaling)12886 void unmarshal_VkCopyImageToImageInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12887                                          VkCopyImageToImageInfoEXT* forUnmarshaling) {
12888     (void)rootType;
12889     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12890     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12891         rootType = forUnmarshaling->sType;
12892     }
12893     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12894     vkStream->read((VkHostImageCopyFlagsEXT*)&forUnmarshaling->flags,
12895                    sizeof(VkHostImageCopyFlagsEXT));
12896     uint64_t cgen_var_0;
12897     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12898     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12899                                                       (VkImage*)&forUnmarshaling->srcImage, 1);
12900     vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
12901     uint64_t cgen_var_1;
12902     vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
12903     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1,
12904                                                       (VkImage*)&forUnmarshaling->dstImage, 1);
12905     vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
12906     vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
12907     if (forUnmarshaling) {
12908         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
12909             unmarshal_VkImageCopy2(vkStream, rootType,
12910                                    (VkImageCopy2*)(forUnmarshaling->pRegions + i));
12911         }
12912     }
12913 }
12914 
marshal_VkHostImageLayoutTransitionInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkHostImageLayoutTransitionInfoEXT * forMarshaling)12915 void marshal_VkHostImageLayoutTransitionInfoEXT(
12916     VulkanStreamGuest* vkStream, VkStructureType rootType,
12917     const VkHostImageLayoutTransitionInfoEXT* forMarshaling) {
12918     (void)rootType;
12919     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12920     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12921         rootType = forMarshaling->sType;
12922     }
12923     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12924     uint64_t cgen_var_0;
12925     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
12926     vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
12927     vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
12928     vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
12929     marshal_VkImageSubresourceRange(vkStream, rootType,
12930                                     (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
12931 }
12932 
unmarshal_VkHostImageLayoutTransitionInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkHostImageLayoutTransitionInfoEXT * forUnmarshaling)12933 void unmarshal_VkHostImageLayoutTransitionInfoEXT(
12934     VulkanStreamGuest* vkStream, VkStructureType rootType,
12935     VkHostImageLayoutTransitionInfoEXT* forUnmarshaling) {
12936     (void)rootType;
12937     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12938     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12939         rootType = forUnmarshaling->sType;
12940     }
12941     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12942     uint64_t cgen_var_0;
12943     vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
12944     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0,
12945                                                       (VkImage*)&forUnmarshaling->image, 1);
12946     vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
12947     vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
12948     unmarshal_VkImageSubresourceRange(
12949         vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
12950 }
12951 
marshal_VkSubresourceHostMemcpySizeEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceHostMemcpySizeEXT * forMarshaling)12952 void marshal_VkSubresourceHostMemcpySizeEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12953                                             const VkSubresourceHostMemcpySizeEXT* forMarshaling) {
12954     (void)rootType;
12955     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12956     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12957         rootType = forMarshaling->sType;
12958     }
12959     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12960     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
12961 }
12962 
unmarshal_VkSubresourceHostMemcpySizeEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSubresourceHostMemcpySizeEXT * forUnmarshaling)12963 void unmarshal_VkSubresourceHostMemcpySizeEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
12964                                               VkSubresourceHostMemcpySizeEXT* forUnmarshaling) {
12965     (void)rootType;
12966     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12967     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12968         rootType = forUnmarshaling->sType;
12969     }
12970     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12971     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
12972 }
12973 
marshal_VkHostImageCopyDevicePerformanceQueryEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkHostImageCopyDevicePerformanceQueryEXT * forMarshaling)12974 void marshal_VkHostImageCopyDevicePerformanceQueryEXT(
12975     VulkanStreamGuest* vkStream, VkStructureType rootType,
12976     const VkHostImageCopyDevicePerformanceQueryEXT* forMarshaling) {
12977     (void)rootType;
12978     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12979     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12980         rootType = forMarshaling->sType;
12981     }
12982     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
12983     vkStream->write((VkBool32*)&forMarshaling->optimalDeviceAccess, sizeof(VkBool32));
12984     vkStream->write((VkBool32*)&forMarshaling->identicalMemoryLayout, sizeof(VkBool32));
12985 }
12986 
unmarshal_VkHostImageCopyDevicePerformanceQueryEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkHostImageCopyDevicePerformanceQueryEXT * forUnmarshaling)12987 void unmarshal_VkHostImageCopyDevicePerformanceQueryEXT(
12988     VulkanStreamGuest* vkStream, VkStructureType rootType,
12989     VkHostImageCopyDevicePerformanceQueryEXT* forUnmarshaling) {
12990     (void)rootType;
12991     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12992     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12993         rootType = forUnmarshaling->sType;
12994     }
12995     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
12996     vkStream->read((VkBool32*)&forUnmarshaling->optimalDeviceAccess, sizeof(VkBool32));
12997     vkStream->read((VkBool32*)&forUnmarshaling->identicalMemoryLayout, sizeof(VkBool32));
12998 }
12999 
13000 #endif
13001 #ifdef VK_EXT_texel_buffer_alignment
marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forMarshaling)13002 void marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
13003     VulkanStreamGuest* vkStream, VkStructureType rootType,
13004     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling) {
13005     (void)rootType;
13006     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13007     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13008         rootType = forMarshaling->sType;
13009     }
13010     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13011     vkStream->write((VkBool32*)&forMarshaling->texelBufferAlignment, sizeof(VkBool32));
13012 }
13013 
unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forUnmarshaling)13014 void unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
13015     VulkanStreamGuest* vkStream, VkStructureType rootType,
13016     VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forUnmarshaling) {
13017     (void)rootType;
13018     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13019     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13020         rootType = forUnmarshaling->sType;
13021     }
13022     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13023     vkStream->read((VkBool32*)&forUnmarshaling->texelBufferAlignment, sizeof(VkBool32));
13024 }
13025 
13026 #endif
13027 #ifdef VK_EXT_device_memory_report
marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forMarshaling)13028 void marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
13029     VulkanStreamGuest* vkStream, VkStructureType rootType,
13030     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling) {
13031     (void)rootType;
13032     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13033     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13034         rootType = forMarshaling->sType;
13035     }
13036     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13037     vkStream->write((VkBool32*)&forMarshaling->deviceMemoryReport, sizeof(VkBool32));
13038 }
13039 
unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forUnmarshaling)13040 void unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
13041     VulkanStreamGuest* vkStream, VkStructureType rootType,
13042     VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forUnmarshaling) {
13043     (void)rootType;
13044     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13045     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13046         rootType = forUnmarshaling->sType;
13047     }
13048     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13049     vkStream->read((VkBool32*)&forUnmarshaling->deviceMemoryReport, sizeof(VkBool32));
13050 }
13051 
marshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceMemoryReportCallbackDataEXT * forMarshaling)13052 void marshal_VkDeviceMemoryReportCallbackDataEXT(
13053     VulkanStreamGuest* vkStream, VkStructureType rootType,
13054     const VkDeviceMemoryReportCallbackDataEXT* forMarshaling) {
13055     (void)rootType;
13056     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13057     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13058         rootType = forMarshaling->sType;
13059     }
13060     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13061     vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
13062                     sizeof(VkDeviceMemoryReportFlagsEXT));
13063     vkStream->write((VkDeviceMemoryReportEventTypeEXT*)&forMarshaling->type,
13064                     sizeof(VkDeviceMemoryReportEventTypeEXT));
13065     vkStream->write((uint64_t*)&forMarshaling->memoryObjectId, sizeof(uint64_t));
13066     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
13067     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
13068     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
13069     vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
13070 }
13071 
unmarshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceMemoryReportCallbackDataEXT * forUnmarshaling)13072 void unmarshal_VkDeviceMemoryReportCallbackDataEXT(
13073     VulkanStreamGuest* vkStream, VkStructureType rootType,
13074     VkDeviceMemoryReportCallbackDataEXT* forUnmarshaling) {
13075     (void)rootType;
13076     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13077     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13078         rootType = forUnmarshaling->sType;
13079     }
13080     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13081     vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags,
13082                    sizeof(VkDeviceMemoryReportFlagsEXT));
13083     vkStream->read((VkDeviceMemoryReportEventTypeEXT*)&forUnmarshaling->type,
13084                    sizeof(VkDeviceMemoryReportEventTypeEXT));
13085     vkStream->read((uint64_t*)&forUnmarshaling->memoryObjectId, sizeof(uint64_t));
13086     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
13087     vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
13088     vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
13089     vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
13090 }
13091 
marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceDeviceMemoryReportCreateInfoEXT * forMarshaling)13092 void marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
13093     VulkanStreamGuest* vkStream, VkStructureType rootType,
13094     const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling) {
13095     (void)rootType;
13096     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13097     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13098         rootType = forMarshaling->sType;
13099     }
13100     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13101     vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
13102                     sizeof(VkDeviceMemoryReportFlagsEXT));
13103     uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
13104     vkStream->putBe64(cgen_var_0);
13105     vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
13106 }
13107 
unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkDeviceDeviceMemoryReportCreateInfoEXT * forUnmarshaling)13108 void unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
13109     VulkanStreamGuest* vkStream, VkStructureType rootType,
13110     VkDeviceDeviceMemoryReportCreateInfoEXT* forUnmarshaling) {
13111     (void)rootType;
13112     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13113     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13114         rootType = forUnmarshaling->sType;
13115     }
13116     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13117     vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags,
13118                    sizeof(VkDeviceMemoryReportFlagsEXT));
13119     forUnmarshaling->pfnUserCallback = (PFN_vkDeviceMemoryReportCallbackEXT)vkStream->getBe64();
13120     vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
13121 }
13122 
13123 #endif
13124 #ifdef VK_EXT_robustness2
marshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2FeaturesEXT * forMarshaling)13125 void marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
13126     VulkanStreamGuest* vkStream, VkStructureType rootType,
13127     const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling) {
13128     (void)rootType;
13129     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13130     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13131         rootType = forMarshaling->sType;
13132     }
13133     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13134     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess2, sizeof(VkBool32));
13135     vkStream->write((VkBool32*)&forMarshaling->robustImageAccess2, sizeof(VkBool32));
13136     vkStream->write((VkBool32*)&forMarshaling->nullDescriptor, sizeof(VkBool32));
13137 }
13138 
unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2FeaturesEXT * forUnmarshaling)13139 void unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
13140     VulkanStreamGuest* vkStream, VkStructureType rootType,
13141     VkPhysicalDeviceRobustness2FeaturesEXT* forUnmarshaling) {
13142     (void)rootType;
13143     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13144     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13145         rootType = forUnmarshaling->sType;
13146     }
13147     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13148     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess2, sizeof(VkBool32));
13149     vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess2, sizeof(VkBool32));
13150     vkStream->read((VkBool32*)&forUnmarshaling->nullDescriptor, sizeof(VkBool32));
13151 }
13152 
marshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2PropertiesEXT * forMarshaling)13153 void marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
13154     VulkanStreamGuest* vkStream, VkStructureType rootType,
13155     const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling) {
13156     (void)rootType;
13157     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13158     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13159         rootType = forMarshaling->sType;
13160     }
13161     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13162     vkStream->write((VkDeviceSize*)&forMarshaling->robustStorageBufferAccessSizeAlignment,
13163                     sizeof(VkDeviceSize));
13164     vkStream->write((VkDeviceSize*)&forMarshaling->robustUniformBufferAccessSizeAlignment,
13165                     sizeof(VkDeviceSize));
13166 }
13167 
unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2PropertiesEXT * forUnmarshaling)13168 void unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
13169     VulkanStreamGuest* vkStream, VkStructureType rootType,
13170     VkPhysicalDeviceRobustness2PropertiesEXT* forUnmarshaling) {
13171     (void)rootType;
13172     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13173     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13174         rootType = forUnmarshaling->sType;
13175     }
13176     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13177     vkStream->read((VkDeviceSize*)&forUnmarshaling->robustStorageBufferAccessSizeAlignment,
13178                    sizeof(VkDeviceSize));
13179     vkStream->read((VkDeviceSize*)&forUnmarshaling->robustUniformBufferAccessSizeAlignment,
13180                    sizeof(VkDeviceSize));
13181 }
13182 
13183 #endif
13184 #ifdef VK_EXT_custom_border_color
marshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerCustomBorderColorCreateInfoEXT * forMarshaling)13185 void marshal_VkSamplerCustomBorderColorCreateInfoEXT(
13186     VulkanStreamGuest* vkStream, VkStructureType rootType,
13187     const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling) {
13188     (void)rootType;
13189     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13190     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13191         rootType = forMarshaling->sType;
13192     }
13193     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13194     marshal_VkClearColorValue(vkStream, rootType,
13195                               (VkClearColorValue*)(&forMarshaling->customBorderColor));
13196     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
13197 }
13198 
unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkSamplerCustomBorderColorCreateInfoEXT * forUnmarshaling)13199 void unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
13200     VulkanStreamGuest* vkStream, VkStructureType rootType,
13201     VkSamplerCustomBorderColorCreateInfoEXT* forUnmarshaling) {
13202     (void)rootType;
13203     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13204     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13205         rootType = forUnmarshaling->sType;
13206     }
13207     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13208     unmarshal_VkClearColorValue(vkStream, rootType,
13209                                 (VkClearColorValue*)(&forUnmarshaling->customBorderColor));
13210     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
13211 }
13212 
marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * forMarshaling)13213 void marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
13214     VulkanStreamGuest* vkStream, VkStructureType rootType,
13215     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling) {
13216     (void)rootType;
13217     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13218     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13219         rootType = forMarshaling->sType;
13220     }
13221     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13222     vkStream->write((uint32_t*)&forMarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
13223 }
13224 
unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorPropertiesEXT * forUnmarshaling)13225 void unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
13226     VulkanStreamGuest* vkStream, VkStructureType rootType,
13227     VkPhysicalDeviceCustomBorderColorPropertiesEXT* forUnmarshaling) {
13228     (void)rootType;
13229     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13230     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13231         rootType = forUnmarshaling->sType;
13232     }
13233     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13234     vkStream->read((uint32_t*)&forUnmarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
13235 }
13236 
marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * forMarshaling)13237 void marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
13238     VulkanStreamGuest* vkStream, VkStructureType rootType,
13239     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling) {
13240     (void)rootType;
13241     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13242     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13243         rootType = forMarshaling->sType;
13244     }
13245     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13246     vkStream->write((VkBool32*)&forMarshaling->customBorderColors, sizeof(VkBool32));
13247     vkStream->write((VkBool32*)&forMarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
13248 }
13249 
unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorFeaturesEXT * forUnmarshaling)13250 void unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
13251     VulkanStreamGuest* vkStream, VkStructureType rootType,
13252     VkPhysicalDeviceCustomBorderColorFeaturesEXT* forUnmarshaling) {
13253     (void)rootType;
13254     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13255     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13256         rootType = forUnmarshaling->sType;
13257     }
13258     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13259     vkStream->read((VkBool32*)&forUnmarshaling->customBorderColors, sizeof(VkBool32));
13260     vkStream->read((VkBool32*)&forUnmarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
13261 }
13262 
13263 #endif
13264 #ifdef VK_EXT_graphics_pipeline_library
marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forMarshaling)13265 void marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
13266     VulkanStreamGuest* vkStream, VkStructureType rootType,
13267     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forMarshaling) {
13268     (void)rootType;
13269     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13270     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13271         rootType = forMarshaling->sType;
13272     }
13273     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13274     vkStream->write((VkBool32*)&forMarshaling->graphicsPipelineLibrary, sizeof(VkBool32));
13275 }
13276 
unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forUnmarshaling)13277 void unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
13278     VulkanStreamGuest* vkStream, VkStructureType rootType,
13279     VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forUnmarshaling) {
13280     (void)rootType;
13281     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13282     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13283         rootType = forUnmarshaling->sType;
13284     }
13285     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13286     vkStream->read((VkBool32*)&forUnmarshaling->graphicsPipelineLibrary, sizeof(VkBool32));
13287 }
13288 
marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forMarshaling)13289 void marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
13290     VulkanStreamGuest* vkStream, VkStructureType rootType,
13291     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forMarshaling) {
13292     (void)rootType;
13293     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13294     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13295         rootType = forMarshaling->sType;
13296     }
13297     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13298     vkStream->write((VkBool32*)&forMarshaling->graphicsPipelineLibraryFastLinking,
13299                     sizeof(VkBool32));
13300     vkStream->write(
13301         (VkBool32*)&forMarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
13302         sizeof(VkBool32));
13303 }
13304 
unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forUnmarshaling)13305 void unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
13306     VulkanStreamGuest* vkStream, VkStructureType rootType,
13307     VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forUnmarshaling) {
13308     (void)rootType;
13309     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13310     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13311         rootType = forUnmarshaling->sType;
13312     }
13313     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13314     vkStream->read((VkBool32*)&forUnmarshaling->graphicsPipelineLibraryFastLinking,
13315                    sizeof(VkBool32));
13316     vkStream->read(
13317         (VkBool32*)&forUnmarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
13318         sizeof(VkBool32));
13319 }
13320 
marshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkGraphicsPipelineLibraryCreateInfoEXT * forMarshaling)13321 void marshal_VkGraphicsPipelineLibraryCreateInfoEXT(
13322     VulkanStreamGuest* vkStream, VkStructureType rootType,
13323     const VkGraphicsPipelineLibraryCreateInfoEXT* forMarshaling) {
13324     (void)rootType;
13325     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13326     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13327         rootType = forMarshaling->sType;
13328     }
13329     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13330     vkStream->write((VkGraphicsPipelineLibraryFlagsEXT*)&forMarshaling->flags,
13331                     sizeof(VkGraphicsPipelineLibraryFlagsEXT));
13332 }
13333 
unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkGraphicsPipelineLibraryCreateInfoEXT * forUnmarshaling)13334 void unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
13335     VulkanStreamGuest* vkStream, VkStructureType rootType,
13336     VkGraphicsPipelineLibraryCreateInfoEXT* forUnmarshaling) {
13337     (void)rootType;
13338     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13339     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13340         rootType = forUnmarshaling->sType;
13341     }
13342     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13343     vkStream->read((VkGraphicsPipelineLibraryFlagsEXT*)&forUnmarshaling->flags,
13344                    sizeof(VkGraphicsPipelineLibraryFlagsEXT));
13345 }
13346 
13347 #endif
13348 #ifdef VK_EXT_ycbcr_2plane_444_formats
marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forMarshaling)13349 void marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
13350     VulkanStreamGuest* vkStream, VkStructureType rootType,
13351     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling) {
13352     (void)rootType;
13353     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13354     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13355         rootType = forMarshaling->sType;
13356     }
13357     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13358     vkStream->write((VkBool32*)&forMarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
13359 }
13360 
unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forUnmarshaling)13361 void unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
13362     VulkanStreamGuest* vkStream, VkStructureType rootType,
13363     VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forUnmarshaling) {
13364     (void)rootType;
13365     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13366     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13367         rootType = forUnmarshaling->sType;
13368     }
13369     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13370     vkStream->read((VkBool32*)&forUnmarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
13371 }
13372 
13373 #endif
13374 #ifdef VK_EXT_image_compression_control
marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlFeaturesEXT * forMarshaling)13375 void marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
13376     VulkanStreamGuest* vkStream, VkStructureType rootType,
13377     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* forMarshaling) {
13378     (void)rootType;
13379     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13380     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13381         rootType = forMarshaling->sType;
13382     }
13383     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13384     vkStream->write((VkBool32*)&forMarshaling->imageCompressionControl, sizeof(VkBool32));
13385 }
13386 
unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlFeaturesEXT * forUnmarshaling)13387 void unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
13388     VulkanStreamGuest* vkStream, VkStructureType rootType,
13389     VkPhysicalDeviceImageCompressionControlFeaturesEXT* forUnmarshaling) {
13390     (void)rootType;
13391     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13392     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13393         rootType = forUnmarshaling->sType;
13394     }
13395     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13396     vkStream->read((VkBool32*)&forUnmarshaling->imageCompressionControl, sizeof(VkBool32));
13397 }
13398 
marshal_VkImageCompressionControlEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCompressionControlEXT * forMarshaling)13399 void marshal_VkImageCompressionControlEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
13400                                           const VkImageCompressionControlEXT* forMarshaling) {
13401     (void)rootType;
13402     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13403     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13404         rootType = forMarshaling->sType;
13405     }
13406     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13407     vkStream->write((VkImageCompressionFlagsEXT*)&forMarshaling->flags,
13408                     sizeof(VkImageCompressionFlagsEXT));
13409     vkStream->write((uint32_t*)&forMarshaling->compressionControlPlaneCount, sizeof(uint32_t));
13410     // WARNING PTR CHECK
13411     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pFixedRateFlags;
13412     vkStream->putBe64(cgen_var_0);
13413     if (forMarshaling->pFixedRateFlags) {
13414         vkStream->write((VkImageCompressionFixedRateFlagsEXT*)forMarshaling->pFixedRateFlags,
13415                         forMarshaling->compressionControlPlaneCount *
13416                             sizeof(VkImageCompressionFixedRateFlagsEXT));
13417     }
13418 }
13419 
unmarshal_VkImageCompressionControlEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageCompressionControlEXT * forUnmarshaling)13420 void unmarshal_VkImageCompressionControlEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
13421                                             VkImageCompressionControlEXT* forUnmarshaling) {
13422     (void)rootType;
13423     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13424     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13425         rootType = forUnmarshaling->sType;
13426     }
13427     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13428     vkStream->read((VkImageCompressionFlagsEXT*)&forUnmarshaling->flags,
13429                    sizeof(VkImageCompressionFlagsEXT));
13430     vkStream->read((uint32_t*)&forUnmarshaling->compressionControlPlaneCount, sizeof(uint32_t));
13431     // WARNING PTR CHECK
13432     VkImageCompressionFixedRateFlagsEXT* check_pFixedRateFlags;
13433     check_pFixedRateFlags = (VkImageCompressionFixedRateFlagsEXT*)(uintptr_t)vkStream->getBe64();
13434     if (forUnmarshaling->pFixedRateFlags) {
13435         if (!(check_pFixedRateFlags)) {
13436             fprintf(
13437                 stderr,
13438                 "fatal: forUnmarshaling->pFixedRateFlags inconsistent between guest and host\n");
13439         }
13440         vkStream->read((VkImageCompressionFixedRateFlagsEXT*)forUnmarshaling->pFixedRateFlags,
13441                        forUnmarshaling->compressionControlPlaneCount *
13442                            sizeof(VkImageCompressionFixedRateFlagsEXT));
13443     }
13444 }
13445 
marshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCompressionPropertiesEXT * forMarshaling)13446 void marshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
13447                                              const VkImageCompressionPropertiesEXT* forMarshaling) {
13448     (void)rootType;
13449     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13450     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13451         rootType = forMarshaling->sType;
13452     }
13453     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13454     vkStream->write((VkImageCompressionFlagsEXT*)&forMarshaling->imageCompressionFlags,
13455                     sizeof(VkImageCompressionFlagsEXT));
13456     vkStream->write(
13457         (VkImageCompressionFixedRateFlagsEXT*)&forMarshaling->imageCompressionFixedRateFlags,
13458         sizeof(VkImageCompressionFixedRateFlagsEXT));
13459 }
13460 
unmarshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImageCompressionPropertiesEXT * forUnmarshaling)13461 void unmarshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest* vkStream,
13462                                                VkStructureType rootType,
13463                                                VkImageCompressionPropertiesEXT* forUnmarshaling) {
13464     (void)rootType;
13465     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13466     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13467         rootType = forUnmarshaling->sType;
13468     }
13469     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13470     vkStream->read((VkImageCompressionFlagsEXT*)&forUnmarshaling->imageCompressionFlags,
13471                    sizeof(VkImageCompressionFlagsEXT));
13472     vkStream->read(
13473         (VkImageCompressionFixedRateFlagsEXT*)&forUnmarshaling->imageCompressionFixedRateFlags,
13474         sizeof(VkImageCompressionFixedRateFlagsEXT));
13475 }
13476 
13477 #endif
13478 #ifdef VK_EXT_4444_formats
marshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevice4444FormatsFeaturesEXT * forMarshaling)13479 void marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
13480     VulkanStreamGuest* vkStream, VkStructureType rootType,
13481     const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling) {
13482     (void)rootType;
13483     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13484     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13485         rootType = forMarshaling->sType;
13486     }
13487     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13488     vkStream->write((VkBool32*)&forMarshaling->formatA4R4G4B4, sizeof(VkBool32));
13489     vkStream->write((VkBool32*)&forMarshaling->formatA4B4G4R4, sizeof(VkBool32));
13490 }
13491 
unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevice4444FormatsFeaturesEXT * forUnmarshaling)13492 void unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
13493     VulkanStreamGuest* vkStream, VkStructureType rootType,
13494     VkPhysicalDevice4444FormatsFeaturesEXT* forUnmarshaling) {
13495     (void)rootType;
13496     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13497     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13498         rootType = forUnmarshaling->sType;
13499     }
13500     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13501     vkStream->read((VkBool32*)&forUnmarshaling->formatA4R4G4B4, sizeof(VkBool32));
13502     vkStream->read((VkBool32*)&forUnmarshaling->formatA4B4G4R4, sizeof(VkBool32));
13503 }
13504 
13505 #endif
13506 #ifdef VK_EXT_primitive_topology_list_restart
marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forMarshaling)13507 void marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
13508     VulkanStreamGuest* vkStream, VkStructureType rootType,
13509     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling) {
13510     (void)rootType;
13511     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13512     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13513         rootType = forMarshaling->sType;
13514     }
13515     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13516     vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
13517     vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyPatchListRestart, sizeof(VkBool32));
13518 }
13519 
unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forUnmarshaling)13520 void unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
13521     VulkanStreamGuest* vkStream, VkStructureType rootType,
13522     VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forUnmarshaling) {
13523     (void)rootType;
13524     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13525     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13526         rootType = forUnmarshaling->sType;
13527     }
13528     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13529     vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
13530     vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyPatchListRestart,
13531                    sizeof(VkBool32));
13532 }
13533 
13534 #endif
13535 #ifdef VK_EXT_extended_dynamic_state2
marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forMarshaling)13536 void marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
13537     VulkanStreamGuest* vkStream, VkStructureType rootType,
13538     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling) {
13539     (void)rootType;
13540     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13541     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13542         rootType = forMarshaling->sType;
13543     }
13544     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13545     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2, sizeof(VkBool32));
13546     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
13547     vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2PatchControlPoints,
13548                     sizeof(VkBool32));
13549 }
13550 
unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forUnmarshaling)13551 void unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
13552     VulkanStreamGuest* vkStream, VkStructureType rootType,
13553     VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forUnmarshaling) {
13554     (void)rootType;
13555     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13556     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13557         rootType = forUnmarshaling->sType;
13558     }
13559     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13560     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2, sizeof(VkBool32));
13561     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
13562     vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2PatchControlPoints,
13563                    sizeof(VkBool32));
13564 }
13565 
13566 #endif
13567 #ifdef VK_EXT_color_write_enable
marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceColorWriteEnableFeaturesEXT * forMarshaling)13568 void marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
13569     VulkanStreamGuest* vkStream, VkStructureType rootType,
13570     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling) {
13571     (void)rootType;
13572     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13573     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13574         rootType = forMarshaling->sType;
13575     }
13576     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13577     vkStream->write((VkBool32*)&forMarshaling->colorWriteEnable, sizeof(VkBool32));
13578 }
13579 
unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceColorWriteEnableFeaturesEXT * forUnmarshaling)13580 void unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
13581     VulkanStreamGuest* vkStream, VkStructureType rootType,
13582     VkPhysicalDeviceColorWriteEnableFeaturesEXT* forUnmarshaling) {
13583     (void)rootType;
13584     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13585     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13586         rootType = forUnmarshaling->sType;
13587     }
13588     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13589     vkStream->read((VkBool32*)&forUnmarshaling->colorWriteEnable, sizeof(VkBool32));
13590 }
13591 
marshal_VkPipelineColorWriteCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineColorWriteCreateInfoEXT * forMarshaling)13592 void marshal_VkPipelineColorWriteCreateInfoEXT(
13593     VulkanStreamGuest* vkStream, VkStructureType rootType,
13594     const VkPipelineColorWriteCreateInfoEXT* forMarshaling) {
13595     (void)rootType;
13596     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13597     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13598         rootType = forMarshaling->sType;
13599     }
13600     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13601     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
13602     vkStream->write((const VkBool32*)forMarshaling->pColorWriteEnables,
13603                     forMarshaling->attachmentCount * sizeof(const VkBool32));
13604 }
13605 
unmarshal_VkPipelineColorWriteCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPipelineColorWriteCreateInfoEXT * forUnmarshaling)13606 void unmarshal_VkPipelineColorWriteCreateInfoEXT(
13607     VulkanStreamGuest* vkStream, VkStructureType rootType,
13608     VkPipelineColorWriteCreateInfoEXT* forUnmarshaling) {
13609     (void)rootType;
13610     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13611     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13612         rootType = forUnmarshaling->sType;
13613     }
13614     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13615     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
13616     vkStream->read((VkBool32*)forUnmarshaling->pColorWriteEnables,
13617                    forUnmarshaling->attachmentCount * sizeof(const VkBool32));
13618 }
13619 
13620 #endif
13621 #ifdef VK_GOOGLE_gfxstream
marshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportColorBufferGOOGLE * forMarshaling)13622 void marshal_VkImportColorBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
13623                                        const VkImportColorBufferGOOGLE* forMarshaling) {
13624     (void)rootType;
13625     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13626     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13627         rootType = forMarshaling->sType;
13628     }
13629     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13630     vkStream->write((uint32_t*)&forMarshaling->colorBuffer, sizeof(uint32_t));
13631 }
13632 
unmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportColorBufferGOOGLE * forUnmarshaling)13633 void unmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
13634                                          VkImportColorBufferGOOGLE* forUnmarshaling) {
13635     (void)rootType;
13636     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13637     forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE;
13638     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13639         rootType = forUnmarshaling->sType;
13640     }
13641     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13642     vkStream->read((uint32_t*)&forUnmarshaling->colorBuffer, sizeof(uint32_t));
13643 }
13644 
marshal_VkImportBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportBufferGOOGLE * forMarshaling)13645 void marshal_VkImportBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
13646                                   const VkImportBufferGOOGLE* forMarshaling) {
13647     (void)rootType;
13648     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13649     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13650         rootType = forMarshaling->sType;
13651     }
13652     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13653     vkStream->write((uint32_t*)&forMarshaling->buffer, sizeof(uint32_t));
13654 }
13655 
unmarshal_VkImportBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,VkImportBufferGOOGLE * forUnmarshaling)13656 void unmarshal_VkImportBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
13657                                     VkImportBufferGOOGLE* forUnmarshaling) {
13658     (void)rootType;
13659     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13660     forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE;
13661     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13662         rootType = forUnmarshaling->sType;
13663     }
13664     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13665     vkStream->read((uint32_t*)&forUnmarshaling->buffer, sizeof(uint32_t));
13666 }
13667 
marshal_VkCreateBlobGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCreateBlobGOOGLE * forMarshaling)13668 void marshal_VkCreateBlobGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
13669                                 const VkCreateBlobGOOGLE* forMarshaling) {
13670     (void)rootType;
13671     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13672     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13673         rootType = forMarshaling->sType;
13674     }
13675     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13676     vkStream->write((uint32_t*)&forMarshaling->blobMem, sizeof(uint32_t));
13677     vkStream->write((uint32_t*)&forMarshaling->blobFlags, sizeof(uint32_t));
13678     vkStream->write((uint64_t*)&forMarshaling->blobId, sizeof(uint64_t));
13679 }
13680 
unmarshal_VkCreateBlobGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,VkCreateBlobGOOGLE * forUnmarshaling)13681 void unmarshal_VkCreateBlobGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
13682                                   VkCreateBlobGOOGLE* forUnmarshaling) {
13683     (void)rootType;
13684     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13685     forUnmarshaling->sType = VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE;
13686     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13687         rootType = forUnmarshaling->sType;
13688     }
13689     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13690     vkStream->read((uint32_t*)&forUnmarshaling->blobMem, sizeof(uint32_t));
13691     vkStream->read((uint32_t*)&forUnmarshaling->blobFlags, sizeof(uint32_t));
13692     vkStream->read((uint64_t*)&forUnmarshaling->blobId, sizeof(uint64_t));
13693 }
13694 
13695 #endif
13696 #ifdef VK_EXT_image_compression_control_swapchain
marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forMarshaling)13697 void marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
13698     VulkanStreamGuest* vkStream, VkStructureType rootType,
13699     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forMarshaling) {
13700     (void)rootType;
13701     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13702     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13703         rootType = forMarshaling->sType;
13704     }
13705     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
13706     vkStream->write((VkBool32*)&forMarshaling->imageCompressionControlSwapchain, sizeof(VkBool32));
13707 }
13708 
unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forUnmarshaling)13709 void unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
13710     VulkanStreamGuest* vkStream, VkStructureType rootType,
13711     VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forUnmarshaling) {
13712     (void)rootType;
13713     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13714     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13715         rootType = forUnmarshaling->sType;
13716     }
13717     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
13718     vkStream->read((VkBool32*)&forUnmarshaling->imageCompressionControlSwapchain, sizeof(VkBool32));
13719 }
13720 
13721 #endif
marshal_extension_struct(VulkanStreamGuest * vkStream,VkStructureType rootType,const void * structExtension)13722 void marshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
13723                               const void* structExtension) {
13724     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension);
13725     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
13726         vkStream->getFeatureBits(), rootType, structExtension);
13727     if (!currExtSize && structExtension) {
13728         // unknown struct extension; skip and call on its pNext field
13729         marshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext);
13730         return;
13731     } else {
13732         // known or null extension struct
13733         vkStream->putBe32(currExtSize);
13734         if (!currExtSize) {
13735             // exit if this was a null extension struct (size == 0 in this branch)
13736             return;
13737         }
13738     }
13739     vkStream->write(structExtension, sizeof(VkStructureType));
13740     if (!structExtension) {
13741         return;
13742     }
13743     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
13744     switch (structType) {
13745 #ifdef VK_VERSION_1_0
13746         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
13747             marshal_VkShaderModuleCreateInfo(
13748                 vkStream, rootType,
13749                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension));
13750             break;
13751         }
13752         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
13753             marshal_VkPipelineLayoutCreateInfo(
13754                 vkStream, rootType,
13755                 reinterpret_cast<const VkPipelineLayoutCreateInfo*>(structExtension));
13756             break;
13757         }
13758 #endif
13759 #ifdef VK_VERSION_1_1
13760         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
13761             marshal_VkPhysicalDeviceSubgroupProperties(
13762                 vkStream, rootType,
13763                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension));
13764             break;
13765         }
13766         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
13767             marshal_VkPhysicalDevice16BitStorageFeatures(
13768                 vkStream, rootType,
13769                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension));
13770             break;
13771         }
13772         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
13773             marshal_VkMemoryDedicatedRequirements(
13774                 vkStream, rootType,
13775                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension));
13776             break;
13777         }
13778         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
13779             marshal_VkMemoryDedicatedAllocateInfo(
13780                 vkStream, rootType,
13781                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension));
13782             break;
13783         }
13784         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
13785             marshal_VkMemoryAllocateFlagsInfo(
13786                 vkStream, rootType,
13787                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension));
13788             break;
13789         }
13790         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
13791             marshal_VkDeviceGroupRenderPassBeginInfo(
13792                 vkStream, rootType,
13793                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension));
13794             break;
13795         }
13796         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
13797             marshal_VkDeviceGroupCommandBufferBeginInfo(
13798                 vkStream, rootType,
13799                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension));
13800             break;
13801         }
13802         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
13803             marshal_VkDeviceGroupSubmitInfo(
13804                 vkStream, rootType,
13805                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension));
13806             break;
13807         }
13808         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
13809             marshal_VkDeviceGroupBindSparseInfo(
13810                 vkStream, rootType,
13811                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension));
13812             break;
13813         }
13814         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
13815             marshal_VkBindBufferMemoryDeviceGroupInfo(
13816                 vkStream, rootType,
13817                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension));
13818             break;
13819         }
13820         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
13821             marshal_VkBindImageMemoryDeviceGroupInfo(
13822                 vkStream, rootType,
13823                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension));
13824             break;
13825         }
13826         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
13827             marshal_VkDeviceGroupDeviceCreateInfo(
13828                 vkStream, rootType,
13829                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension));
13830             break;
13831         }
13832         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
13833             marshal_VkPhysicalDeviceFeatures2(
13834                 vkStream, rootType,
13835                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension));
13836             break;
13837         }
13838         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
13839             marshal_VkPhysicalDevicePointClippingProperties(
13840                 vkStream, rootType,
13841                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension));
13842             break;
13843         }
13844         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
13845             marshal_VkRenderPassInputAttachmentAspectCreateInfo(
13846                 vkStream, rootType,
13847                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
13848                     structExtension));
13849             break;
13850         }
13851         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
13852             marshal_VkImageViewUsageCreateInfo(
13853                 vkStream, rootType,
13854                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension));
13855             break;
13856         }
13857         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
13858             marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
13859                 vkStream, rootType,
13860                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
13861                     structExtension));
13862             break;
13863         }
13864         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
13865             marshal_VkRenderPassMultiviewCreateInfo(
13866                 vkStream, rootType,
13867                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension));
13868             break;
13869         }
13870         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
13871             marshal_VkPhysicalDeviceMultiviewFeatures(
13872                 vkStream, rootType,
13873                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension));
13874             break;
13875         }
13876         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
13877             marshal_VkPhysicalDeviceMultiviewProperties(
13878                 vkStream, rootType,
13879                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension));
13880             break;
13881         }
13882         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
13883             marshal_VkPhysicalDeviceVariablePointersFeatures(
13884                 vkStream, rootType,
13885                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension));
13886             break;
13887         }
13888         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
13889             marshal_VkPhysicalDeviceProtectedMemoryFeatures(
13890                 vkStream, rootType,
13891                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension));
13892             break;
13893         }
13894         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
13895             marshal_VkPhysicalDeviceProtectedMemoryProperties(
13896                 vkStream, rootType,
13897                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(
13898                     structExtension));
13899             break;
13900         }
13901         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
13902             marshal_VkProtectedSubmitInfo(
13903                 vkStream, rootType,
13904                 reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension));
13905             break;
13906         }
13907         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
13908             marshal_VkSamplerYcbcrConversionInfo(
13909                 vkStream, rootType,
13910                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension));
13911             break;
13912         }
13913         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
13914             marshal_VkBindImagePlaneMemoryInfo(
13915                 vkStream, rootType,
13916                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension));
13917             break;
13918         }
13919         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
13920             marshal_VkImagePlaneMemoryRequirementsInfo(
13921                 vkStream, rootType,
13922                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension));
13923             break;
13924         }
13925         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
13926             marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
13927                 vkStream, rootType,
13928                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
13929                     structExtension));
13930             break;
13931         }
13932         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
13933             marshal_VkSamplerYcbcrConversionImageFormatProperties(
13934                 vkStream, rootType,
13935                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
13936                     structExtension));
13937             break;
13938         }
13939         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
13940             marshal_VkPhysicalDeviceExternalImageFormatInfo(
13941                 vkStream, rootType,
13942                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension));
13943             break;
13944         }
13945         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
13946             marshal_VkExternalImageFormatProperties(
13947                 vkStream, rootType,
13948                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension));
13949             break;
13950         }
13951         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
13952             marshal_VkPhysicalDeviceIDProperties(
13953                 vkStream, rootType,
13954                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension));
13955             break;
13956         }
13957         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
13958             marshal_VkExternalMemoryImageCreateInfo(
13959                 vkStream, rootType,
13960                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension));
13961             break;
13962         }
13963         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
13964             marshal_VkExternalMemoryBufferCreateInfo(
13965                 vkStream, rootType,
13966                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension));
13967             break;
13968         }
13969         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
13970             marshal_VkExportMemoryAllocateInfo(
13971                 vkStream, rootType,
13972                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension));
13973             break;
13974         }
13975         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
13976             marshal_VkExportFenceCreateInfo(
13977                 vkStream, rootType,
13978                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension));
13979             break;
13980         }
13981         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
13982             marshal_VkExportSemaphoreCreateInfo(
13983                 vkStream, rootType,
13984                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension));
13985             break;
13986         }
13987         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
13988             marshal_VkPhysicalDeviceMaintenance3Properties(
13989                 vkStream, rootType,
13990                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension));
13991             break;
13992         }
13993         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
13994             marshal_VkPhysicalDeviceShaderDrawParametersFeatures(
13995                 vkStream, rootType,
13996                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
13997                     structExtension));
13998             break;
13999         }
14000 #endif
14001 #ifdef VK_VERSION_1_2
14002         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
14003             marshal_VkPhysicalDeviceVulkan11Features(
14004                 vkStream, rootType,
14005                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension));
14006             break;
14007         }
14008         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
14009             marshal_VkPhysicalDeviceVulkan11Properties(
14010                 vkStream, rootType,
14011                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension));
14012             break;
14013         }
14014         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
14015             marshal_VkPhysicalDeviceVulkan12Features(
14016                 vkStream, rootType,
14017                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension));
14018             break;
14019         }
14020         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
14021             marshal_VkPhysicalDeviceVulkan12Properties(
14022                 vkStream, rootType,
14023                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension));
14024             break;
14025         }
14026         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
14027             marshal_VkImageFormatListCreateInfo(
14028                 vkStream, rootType,
14029                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension));
14030             break;
14031         }
14032         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
14033             marshal_VkPhysicalDevice8BitStorageFeatures(
14034                 vkStream, rootType,
14035                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension));
14036             break;
14037         }
14038         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
14039             marshal_VkPhysicalDeviceDriverProperties(
14040                 vkStream, rootType,
14041                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension));
14042             break;
14043         }
14044         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
14045             marshal_VkPhysicalDeviceShaderAtomicInt64Features(
14046                 vkStream, rootType,
14047                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(
14048                     structExtension));
14049             break;
14050         }
14051         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
14052             marshal_VkPhysicalDeviceShaderFloat16Int8Features(
14053                 vkStream, rootType,
14054                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(
14055                     structExtension));
14056             break;
14057         }
14058         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
14059             marshal_VkPhysicalDeviceFloatControlsProperties(
14060                 vkStream, rootType,
14061                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension));
14062             break;
14063         }
14064         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
14065             marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
14066                 vkStream, rootType,
14067                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
14068                     structExtension));
14069             break;
14070         }
14071         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
14072             marshal_VkPhysicalDeviceDescriptorIndexingFeatures(
14073                 vkStream, rootType,
14074                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
14075                     structExtension));
14076             break;
14077         }
14078         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
14079             marshal_VkPhysicalDeviceDescriptorIndexingProperties(
14080                 vkStream, rootType,
14081                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
14082                     structExtension));
14083             break;
14084         }
14085         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
14086             marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
14087                 vkStream, rootType,
14088                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
14089                     structExtension));
14090             break;
14091         }
14092         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
14093             marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
14094                 vkStream, rootType,
14095                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
14096                     structExtension));
14097             break;
14098         }
14099         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
14100             marshal_VkSubpassDescriptionDepthStencilResolve(
14101                 vkStream, rootType,
14102                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension));
14103             break;
14104         }
14105         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
14106             marshal_VkPhysicalDeviceDepthStencilResolveProperties(
14107                 vkStream, rootType,
14108                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
14109                     structExtension));
14110             break;
14111         }
14112         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
14113             marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
14114                 vkStream, rootType,
14115                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(
14116                     structExtension));
14117             break;
14118         }
14119         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
14120             marshal_VkImageStencilUsageCreateInfo(
14121                 vkStream, rootType,
14122                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension));
14123             break;
14124         }
14125         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
14126             marshal_VkSamplerReductionModeCreateInfo(
14127                 vkStream, rootType,
14128                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension));
14129             break;
14130         }
14131         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
14132             marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
14133                 vkStream, rootType,
14134                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
14135                     structExtension));
14136             break;
14137         }
14138         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
14139             marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
14140                 vkStream, rootType,
14141                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(
14142                     structExtension));
14143             break;
14144         }
14145         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
14146             marshal_VkPhysicalDeviceImagelessFramebufferFeatures(
14147                 vkStream, rootType,
14148                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
14149                     structExtension));
14150             break;
14151         }
14152         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
14153             marshal_VkFramebufferAttachmentsCreateInfo(
14154                 vkStream, rootType,
14155                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension));
14156             break;
14157         }
14158         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
14159             marshal_VkRenderPassAttachmentBeginInfo(
14160                 vkStream, rootType,
14161                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension));
14162             break;
14163         }
14164         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
14165             marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
14166                 vkStream, rootType,
14167                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
14168                     structExtension));
14169             break;
14170         }
14171         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
14172             marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
14173                 vkStream, rootType,
14174                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
14175                     structExtension));
14176             break;
14177         }
14178         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
14179             marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
14180                 vkStream, rootType,
14181                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
14182                     structExtension));
14183             break;
14184         }
14185         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
14186             marshal_VkAttachmentReferenceStencilLayout(
14187                 vkStream, rootType,
14188                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension));
14189             break;
14190         }
14191         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
14192             marshal_VkAttachmentDescriptionStencilLayout(
14193                 vkStream, rootType,
14194                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension));
14195             break;
14196         }
14197         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
14198             marshal_VkPhysicalDeviceHostQueryResetFeatures(
14199                 vkStream, rootType,
14200                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension));
14201             break;
14202         }
14203         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
14204             marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
14205                 vkStream, rootType,
14206                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(
14207                     structExtension));
14208             break;
14209         }
14210         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
14211             marshal_VkPhysicalDeviceTimelineSemaphoreProperties(
14212                 vkStream, rootType,
14213                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
14214                     structExtension));
14215             break;
14216         }
14217         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
14218             marshal_VkSemaphoreTypeCreateInfo(
14219                 vkStream, rootType,
14220                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension));
14221             break;
14222         }
14223         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
14224             marshal_VkTimelineSemaphoreSubmitInfo(
14225                 vkStream, rootType,
14226                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension));
14227             break;
14228         }
14229         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
14230             marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
14231                 vkStream, rootType,
14232                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
14233                     structExtension));
14234             break;
14235         }
14236         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
14237             marshal_VkBufferOpaqueCaptureAddressCreateInfo(
14238                 vkStream, rootType,
14239                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension));
14240             break;
14241         }
14242         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
14243             marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
14244                 vkStream, rootType,
14245                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension));
14246             break;
14247         }
14248 #endif
14249 #ifdef VK_VERSION_1_3
14250         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
14251             marshal_VkPhysicalDeviceVulkan13Features(
14252                 vkStream, rootType,
14253                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension));
14254             break;
14255         }
14256         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
14257             marshal_VkPhysicalDeviceVulkan13Properties(
14258                 vkStream, rootType,
14259                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension));
14260             break;
14261         }
14262         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
14263             marshal_VkPipelineCreationFeedbackCreateInfo(
14264                 vkStream, rootType,
14265                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension));
14266             break;
14267         }
14268         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
14269             marshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
14270                 vkStream, rootType,
14271                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
14272                     structExtension));
14273             break;
14274         }
14275         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
14276             marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
14277                 vkStream, rootType,
14278                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
14279                     structExtension));
14280             break;
14281         }
14282         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
14283             marshal_VkPhysicalDevicePrivateDataFeatures(
14284                 vkStream, rootType,
14285                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension));
14286             break;
14287         }
14288         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
14289             marshal_VkDevicePrivateDataCreateInfo(
14290                 vkStream, rootType,
14291                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension));
14292             break;
14293         }
14294         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
14295             marshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
14296                 vkStream, rootType,
14297                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
14298                     structExtension));
14299             break;
14300         }
14301         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
14302             marshal_VkMemoryBarrier2(vkStream, rootType,
14303                                      reinterpret_cast<const VkMemoryBarrier2*>(structExtension));
14304             break;
14305         }
14306         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
14307             marshal_VkPhysicalDeviceSynchronization2Features(
14308                 vkStream, rootType,
14309                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension));
14310             break;
14311         }
14312         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
14313             marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
14314                 vkStream, rootType,
14315                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
14316                     structExtension));
14317             break;
14318         }
14319         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
14320             marshal_VkPhysicalDeviceImageRobustnessFeatures(
14321                 vkStream, rootType,
14322                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension));
14323             break;
14324         }
14325         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
14326             marshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
14327                 vkStream, rootType,
14328                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
14329                     structExtension));
14330             break;
14331         }
14332         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
14333             marshal_VkPhysicalDeviceSubgroupSizeControlProperties(
14334                 vkStream, rootType,
14335                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
14336                     structExtension));
14337             break;
14338         }
14339         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
14340             marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
14341                 vkStream, rootType,
14342                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
14343                     structExtension));
14344             break;
14345         }
14346         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
14347             marshal_VkPhysicalDeviceInlineUniformBlockFeatures(
14348                 vkStream, rootType,
14349                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
14350                     structExtension));
14351             break;
14352         }
14353         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
14354             marshal_VkPhysicalDeviceInlineUniformBlockProperties(
14355                 vkStream, rootType,
14356                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
14357                     structExtension));
14358             break;
14359         }
14360         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
14361             marshal_VkWriteDescriptorSetInlineUniformBlock(
14362                 vkStream, rootType,
14363                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension));
14364             break;
14365         }
14366         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
14367             marshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
14368                 vkStream, rootType,
14369                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
14370                     structExtension));
14371             break;
14372         }
14373         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
14374             marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
14375                 vkStream, rootType,
14376                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
14377                     structExtension));
14378             break;
14379         }
14380         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
14381             marshal_VkPipelineRenderingCreateInfo(
14382                 vkStream, rootType,
14383                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension));
14384             break;
14385         }
14386         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
14387             marshal_VkPhysicalDeviceDynamicRenderingFeatures(
14388                 vkStream, rootType,
14389                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension));
14390             break;
14391         }
14392         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
14393             marshal_VkCommandBufferInheritanceRenderingInfo(
14394                 vkStream, rootType,
14395                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension));
14396             break;
14397         }
14398         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
14399             marshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
14400                 vkStream, rootType,
14401                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
14402                     structExtension));
14403             break;
14404         }
14405         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
14406             marshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
14407                 vkStream, rootType,
14408                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
14409                     structExtension));
14410             break;
14411         }
14412         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
14413             marshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
14414                 vkStream, rootType,
14415                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
14416                     structExtension));
14417             break;
14418         }
14419         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
14420             marshal_VkFormatProperties3(
14421                 vkStream, rootType, reinterpret_cast<const VkFormatProperties3*>(structExtension));
14422             break;
14423         }
14424         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
14425             marshal_VkPhysicalDeviceMaintenance4Features(
14426                 vkStream, rootType,
14427                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension));
14428             break;
14429         }
14430         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
14431             marshal_VkPhysicalDeviceMaintenance4Properties(
14432                 vkStream, rootType,
14433                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension));
14434             break;
14435         }
14436 #endif
14437 #ifdef VK_KHR_dynamic_rendering
14438         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
14439             marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
14440                 vkStream, rootType,
14441                 reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
14442                     structExtension));
14443             break;
14444         }
14445         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
14446             marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
14447                 vkStream, rootType,
14448                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
14449                     structExtension));
14450             break;
14451         }
14452         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
14453             marshal_VkAttachmentSampleCountInfoAMD(
14454                 vkStream, rootType,
14455                 reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension));
14456             break;
14457         }
14458         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
14459             marshal_VkMultiviewPerViewAttributesInfoNVX(
14460                 vkStream, rootType,
14461                 reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension));
14462             break;
14463         }
14464 #endif
14465 #ifdef VK_KHR_incremental_present
14466         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
14467             marshal_VkPresentRegionsKHR(
14468                 vkStream, rootType, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension));
14469             break;
14470         }
14471 #endif
14472 #ifdef VK_KHR_pipeline_executable_properties
14473         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
14474             marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
14475                 vkStream, rootType,
14476                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
14477                     structExtension));
14478             break;
14479         }
14480 #endif
14481 #ifdef VK_KHR_synchronization2
14482         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
14483             marshal_VkQueueFamilyCheckpointProperties2NV(
14484                 vkStream, rootType,
14485                 reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension));
14486             break;
14487         }
14488 #endif
14489 #ifdef VK_KHR_maintenance5
14490         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
14491             marshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
14492                 vkStream, rootType,
14493                 reinterpret_cast<const VkPhysicalDeviceMaintenance5FeaturesKHR*>(structExtension));
14494             break;
14495         }
14496         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
14497             marshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
14498                 vkStream, rootType,
14499                 reinterpret_cast<const VkPhysicalDeviceMaintenance5PropertiesKHR*>(
14500                     structExtension));
14501             break;
14502         }
14503         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
14504             marshal_VkPipelineCreateFlags2CreateInfoKHR(
14505                 vkStream, rootType,
14506                 reinterpret_cast<const VkPipelineCreateFlags2CreateInfoKHR*>(structExtension));
14507             break;
14508         }
14509         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
14510             marshal_VkBufferUsageFlags2CreateInfoKHR(
14511                 vkStream, rootType,
14512                 reinterpret_cast<const VkBufferUsageFlags2CreateInfoKHR*>(structExtension));
14513             break;
14514         }
14515 #endif
14516 #ifdef VK_KHR_line_rasterization
14517         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
14518             marshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
14519                 vkStream, rootType,
14520                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesKHR*>(
14521                     structExtension));
14522             break;
14523         }
14524         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
14525             marshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
14526                 vkStream, rootType,
14527                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesKHR*>(
14528                     structExtension));
14529             break;
14530         }
14531         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
14532             marshal_VkPipelineRasterizationLineStateCreateInfoKHR(
14533                 vkStream, rootType,
14534                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoKHR*>(
14535                     structExtension));
14536             break;
14537         }
14538 #endif
14539 #ifdef VK_ANDROID_native_buffer
14540         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
14541             marshal_VkNativeBufferANDROID(
14542                 vkStream, rootType,
14543                 reinterpret_cast<const VkNativeBufferANDROID*>(structExtension));
14544             break;
14545         }
14546 #endif
14547 #ifdef VK_EXT_transform_feedback
14548         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
14549             marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
14550                 vkStream, rootType,
14551                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
14552                     structExtension));
14553             break;
14554         }
14555         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
14556             marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
14557                 vkStream, rootType,
14558                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
14559                     structExtension));
14560             break;
14561         }
14562         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
14563             marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
14564                 vkStream, rootType,
14565                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
14566                     structExtension));
14567             break;
14568         }
14569 #endif
14570 #ifdef VK_EXT_depth_clip_enable
14571         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
14572             marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
14573                 vkStream, rootType,
14574                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
14575                     structExtension));
14576             break;
14577         }
14578         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
14579             marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
14580                 vkStream, rootType,
14581                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
14582                     structExtension));
14583             break;
14584         }
14585 #endif
14586 #ifdef VK_EXT_image_drm_format_modifier
14587         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
14588             marshal_VkDrmFormatModifierPropertiesListEXT(
14589                 vkStream, rootType,
14590                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension));
14591             break;
14592         }
14593         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
14594             marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
14595                 vkStream, rootType,
14596                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
14597                     structExtension));
14598             break;
14599         }
14600         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
14601             marshal_VkImageDrmFormatModifierListCreateInfoEXT(
14602                 vkStream, rootType,
14603                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(
14604                     structExtension));
14605             break;
14606         }
14607         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
14608             marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
14609                 vkStream, rootType,
14610                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
14611                     structExtension));
14612             break;
14613         }
14614         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
14615             marshal_VkDrmFormatModifierPropertiesList2EXT(
14616                 vkStream, rootType,
14617                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension));
14618             break;
14619         }
14620 #endif
14621 #ifdef VK_EXT_vertex_attribute_divisor
14622         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
14623             marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
14624                 vkStream, rootType,
14625                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
14626                     structExtension));
14627             break;
14628         }
14629 #endif
14630 #ifdef VK_EXT_fragment_density_map
14631         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
14632             switch (rootType) {
14633                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
14634                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
14635                         vkStream, rootType,
14636                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
14637                             structExtension));
14638                     break;
14639                 }
14640                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
14641                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
14642                         vkStream, rootType,
14643                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
14644                             structExtension));
14645                     break;
14646                 }
14647                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
14648                     marshal_VkImportColorBufferGOOGLE(
14649                         vkStream, rootType,
14650                         reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
14651                     break;
14652                 }
14653                 default: {
14654                     marshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
14655                         vkStream, rootType,
14656                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
14657                             structExtension));
14658                     break;
14659                 }
14660             }
14661             break;
14662         }
14663         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
14664             switch (rootType) {
14665                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
14666                     marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
14667                         vkStream, rootType,
14668                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
14669                             structExtension));
14670                     break;
14671                 }
14672                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
14673                     marshal_VkCreateBlobGOOGLE(
14674                         vkStream, rootType,
14675                         reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension));
14676                     break;
14677                 }
14678                 default: {
14679                     marshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
14680                         vkStream, rootType,
14681                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
14682                             structExtension));
14683                     break;
14684                 }
14685             }
14686             break;
14687         }
14688         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
14689             switch (rootType) {
14690                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
14691                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
14692                         vkStream, rootType,
14693                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
14694                             structExtension));
14695                     break;
14696                 }
14697                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
14698                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
14699                         vkStream, rootType,
14700                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
14701                             structExtension));
14702                     break;
14703                 }
14704                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
14705                     marshal_VkImportBufferGOOGLE(
14706                         vkStream, rootType,
14707                         reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension));
14708                     break;
14709                 }
14710                 default: {
14711                     marshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
14712                         vkStream, rootType,
14713                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
14714                             structExtension));
14715                     break;
14716                 }
14717             }
14718             break;
14719         }
14720 #endif
14721 #ifdef VK_EXT_provoking_vertex
14722         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
14723             marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
14724                 vkStream, rootType,
14725                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
14726                     structExtension));
14727             break;
14728         }
14729         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
14730             marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
14731                 vkStream, rootType,
14732                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
14733                     structExtension));
14734             break;
14735         }
14736         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
14737             marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
14738                 vkStream, rootType,
14739                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
14740                     structExtension));
14741             break;
14742         }
14743 #endif
14744 #ifdef VK_EXT_extended_dynamic_state
14745         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
14746             marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
14747                 vkStream, rootType,
14748                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
14749                     structExtension));
14750             break;
14751         }
14752 #endif
14753 #ifdef VK_EXT_host_image_copy
14754         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
14755             marshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
14756                 vkStream, rootType,
14757                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT*>(structExtension));
14758             break;
14759         }
14760         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
14761             marshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
14762                 vkStream, rootType,
14763                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT*>(
14764                     structExtension));
14765             break;
14766         }
14767         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
14768             marshal_VkSubresourceHostMemcpySizeEXT(
14769                 vkStream, rootType,
14770                 reinterpret_cast<const VkSubresourceHostMemcpySizeEXT*>(structExtension));
14771             break;
14772         }
14773         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
14774             marshal_VkHostImageCopyDevicePerformanceQueryEXT(
14775                 vkStream, rootType,
14776                 reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT*>(structExtension));
14777             break;
14778         }
14779 #endif
14780 #ifdef VK_EXT_texel_buffer_alignment
14781         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
14782             marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
14783                 vkStream, rootType,
14784                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
14785                     structExtension));
14786             break;
14787         }
14788 #endif
14789 #ifdef VK_EXT_device_memory_report
14790         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
14791             marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
14792                 vkStream, rootType,
14793                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
14794                     structExtension));
14795             break;
14796         }
14797         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
14798             marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
14799                 vkStream, rootType,
14800                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension));
14801             break;
14802         }
14803 #endif
14804 #ifdef VK_EXT_robustness2
14805         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
14806             marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
14807                 vkStream, rootType,
14808                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension));
14809             break;
14810         }
14811         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
14812             marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
14813                 vkStream, rootType,
14814                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension));
14815             break;
14816         }
14817 #endif
14818 #ifdef VK_EXT_custom_border_color
14819         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
14820             marshal_VkSamplerCustomBorderColorCreateInfoEXT(
14821                 vkStream, rootType,
14822                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension));
14823             break;
14824         }
14825         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
14826             marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
14827                 vkStream, rootType,
14828                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
14829                     structExtension));
14830             break;
14831         }
14832         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
14833             marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
14834                 vkStream, rootType,
14835                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
14836                     structExtension));
14837             break;
14838         }
14839 #endif
14840 #ifdef VK_EXT_graphics_pipeline_library
14841         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
14842             marshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
14843                 vkStream, rootType,
14844                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
14845                     structExtension));
14846             break;
14847         }
14848         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
14849             marshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
14850                 vkStream, rootType,
14851                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
14852                     structExtension));
14853             break;
14854         }
14855         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
14856             marshal_VkGraphicsPipelineLibraryCreateInfoEXT(
14857                 vkStream, rootType,
14858                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension));
14859             break;
14860         }
14861 #endif
14862 #ifdef VK_EXT_ycbcr_2plane_444_formats
14863         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
14864             marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
14865                 vkStream, rootType,
14866                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
14867                     structExtension));
14868             break;
14869         }
14870 #endif
14871 #ifdef VK_EXT_image_compression_control
14872         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
14873             marshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
14874                 vkStream, rootType,
14875                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
14876                     structExtension));
14877             break;
14878         }
14879         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
14880             marshal_VkImageCompressionControlEXT(
14881                 vkStream, rootType,
14882                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension));
14883             break;
14884         }
14885         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
14886             marshal_VkImageCompressionPropertiesEXT(
14887                 vkStream, rootType,
14888                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension));
14889             break;
14890         }
14891 #endif
14892 #ifdef VK_EXT_4444_formats
14893         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
14894             marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
14895                 vkStream, rootType,
14896                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension));
14897             break;
14898         }
14899 #endif
14900 #ifdef VK_EXT_primitive_topology_list_restart
14901         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
14902             marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
14903                 vkStream, rootType,
14904                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
14905                     structExtension));
14906             break;
14907         }
14908 #endif
14909 #ifdef VK_EXT_extended_dynamic_state2
14910         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
14911             marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
14912                 vkStream, rootType,
14913                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
14914                     structExtension));
14915             break;
14916         }
14917 #endif
14918 #ifdef VK_EXT_color_write_enable
14919         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
14920             marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
14921                 vkStream, rootType,
14922                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
14923                     structExtension));
14924             break;
14925         }
14926         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
14927             marshal_VkPipelineColorWriteCreateInfoEXT(
14928                 vkStream, rootType,
14929                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension));
14930             break;
14931         }
14932 #endif
14933 #ifdef VK_GOOGLE_gfxstream
14934         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
14935             marshal_VkImportColorBufferGOOGLE(
14936                 vkStream, rootType,
14937                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
14938             break;
14939         }
14940         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
14941             marshal_VkImportBufferGOOGLE(
14942                 vkStream, rootType, reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension));
14943             break;
14944         }
14945         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
14946             marshal_VkCreateBlobGOOGLE(
14947                 vkStream, rootType, reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension));
14948             break;
14949         }
14950 #endif
14951 #ifdef VK_EXT_image_compression_control_swapchain
14952         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
14953             marshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
14954                 vkStream, rootType,
14955                 reinterpret_cast<
14956                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
14957                     structExtension));
14958             break;
14959         }
14960 #endif
14961         default: {
14962             // fatal; the switch is only taken if the extension struct is known
14963             abort();
14964         }
14965     }
14966 }
14967 
unmarshal_extension_struct(VulkanStreamGuest * vkStream,VkStructureType rootType,void * structExtension_out)14968 void unmarshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
14969                                 void* structExtension_out) {
14970     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension_out);
14971     size_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
14972         vkStream->getFeatureBits(), rootType, structExtension_out);
14973     if (!currExtSize && structExtension_out) {
14974         // unknown struct extension; skip and call on its pNext field
14975         unmarshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext);
14976         return;
14977     } else {
14978         // known or null extension struct
14979         vkStream->getBe32();
14980         if (!currExtSize) {
14981             // exit if this was a null extension struct (size == 0 in this branch)
14982             return;
14983         }
14984     }
14985     uint64_t pNext_placeholder;
14986     vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
14987     (void)pNext_placeholder;
14988     if (!structExtension_out) {
14989         return;
14990     }
14991     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
14992     switch (structType) {
14993 #ifdef VK_VERSION_1_0
14994         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
14995             unmarshal_VkShaderModuleCreateInfo(
14996                 vkStream, rootType,
14997                 reinterpret_cast<VkShaderModuleCreateInfo*>(structExtension_out));
14998             break;
14999         }
15000         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
15001             unmarshal_VkPipelineLayoutCreateInfo(
15002                 vkStream, rootType,
15003                 reinterpret_cast<VkPipelineLayoutCreateInfo*>(structExtension_out));
15004             break;
15005         }
15006 #endif
15007 #ifdef VK_VERSION_1_1
15008         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
15009             unmarshal_VkPhysicalDeviceSubgroupProperties(
15010                 vkStream, rootType,
15011                 reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
15012             break;
15013         }
15014         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
15015             unmarshal_VkPhysicalDevice16BitStorageFeatures(
15016                 vkStream, rootType,
15017                 reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
15018             break;
15019         }
15020         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
15021             unmarshal_VkMemoryDedicatedRequirements(
15022                 vkStream, rootType,
15023                 reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
15024             break;
15025         }
15026         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
15027             unmarshal_VkMemoryDedicatedAllocateInfo(
15028                 vkStream, rootType,
15029                 reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
15030             break;
15031         }
15032         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
15033             unmarshal_VkMemoryAllocateFlagsInfo(
15034                 vkStream, rootType,
15035                 reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
15036             break;
15037         }
15038         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
15039             unmarshal_VkDeviceGroupRenderPassBeginInfo(
15040                 vkStream, rootType,
15041                 reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
15042             break;
15043         }
15044         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
15045             unmarshal_VkDeviceGroupCommandBufferBeginInfo(
15046                 vkStream, rootType,
15047                 reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
15048             break;
15049         }
15050         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
15051             unmarshal_VkDeviceGroupSubmitInfo(
15052                 vkStream, rootType,
15053                 reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
15054             break;
15055         }
15056         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
15057             unmarshal_VkDeviceGroupBindSparseInfo(
15058                 vkStream, rootType,
15059                 reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
15060             break;
15061         }
15062         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
15063             unmarshal_VkBindBufferMemoryDeviceGroupInfo(
15064                 vkStream, rootType,
15065                 reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
15066             break;
15067         }
15068         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
15069             unmarshal_VkBindImageMemoryDeviceGroupInfo(
15070                 vkStream, rootType,
15071                 reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
15072             break;
15073         }
15074         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
15075             unmarshal_VkDeviceGroupDeviceCreateInfo(
15076                 vkStream, rootType,
15077                 reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
15078             break;
15079         }
15080         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
15081             unmarshal_VkPhysicalDeviceFeatures2(
15082                 vkStream, rootType,
15083                 reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
15084             break;
15085         }
15086         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
15087             unmarshal_VkPhysicalDevicePointClippingProperties(
15088                 vkStream, rootType,
15089                 reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
15090             break;
15091         }
15092         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
15093             unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
15094                 vkStream, rootType,
15095                 reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(
15096                     structExtension_out));
15097             break;
15098         }
15099         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
15100             unmarshal_VkImageViewUsageCreateInfo(
15101                 vkStream, rootType,
15102                 reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
15103             break;
15104         }
15105         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
15106             unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
15107                 vkStream, rootType,
15108                 reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(
15109                     structExtension_out));
15110             break;
15111         }
15112         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
15113             unmarshal_VkRenderPassMultiviewCreateInfo(
15114                 vkStream, rootType,
15115                 reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
15116             break;
15117         }
15118         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
15119             unmarshal_VkPhysicalDeviceMultiviewFeatures(
15120                 vkStream, rootType,
15121                 reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
15122             break;
15123         }
15124         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
15125             unmarshal_VkPhysicalDeviceMultiviewProperties(
15126                 vkStream, rootType,
15127                 reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
15128             break;
15129         }
15130         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
15131             unmarshal_VkPhysicalDeviceVariablePointersFeatures(
15132                 vkStream, rootType,
15133                 reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
15134             break;
15135         }
15136         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
15137             unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
15138                 vkStream, rootType,
15139                 reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
15140             break;
15141         }
15142         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
15143             unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
15144                 vkStream, rootType,
15145                 reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
15146             break;
15147         }
15148         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
15149             unmarshal_VkProtectedSubmitInfo(
15150                 vkStream, rootType, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
15151             break;
15152         }
15153         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
15154             unmarshal_VkSamplerYcbcrConversionInfo(
15155                 vkStream, rootType,
15156                 reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
15157             break;
15158         }
15159         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
15160             unmarshal_VkBindImagePlaneMemoryInfo(
15161                 vkStream, rootType,
15162                 reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
15163             break;
15164         }
15165         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
15166             unmarshal_VkImagePlaneMemoryRequirementsInfo(
15167                 vkStream, rootType,
15168                 reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
15169             break;
15170         }
15171         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
15172             unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
15173                 vkStream, rootType,
15174                 reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
15175                     structExtension_out));
15176             break;
15177         }
15178         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
15179             unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
15180                 vkStream, rootType,
15181                 reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(
15182                     structExtension_out));
15183             break;
15184         }
15185         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
15186             unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
15187                 vkStream, rootType,
15188                 reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
15189             break;
15190         }
15191         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
15192             unmarshal_VkExternalImageFormatProperties(
15193                 vkStream, rootType,
15194                 reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
15195             break;
15196         }
15197         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
15198             unmarshal_VkPhysicalDeviceIDProperties(
15199                 vkStream, rootType,
15200                 reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
15201             break;
15202         }
15203         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
15204             unmarshal_VkExternalMemoryImageCreateInfo(
15205                 vkStream, rootType,
15206                 reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
15207             break;
15208         }
15209         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
15210             unmarshal_VkExternalMemoryBufferCreateInfo(
15211                 vkStream, rootType,
15212                 reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
15213             break;
15214         }
15215         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
15216             unmarshal_VkExportMemoryAllocateInfo(
15217                 vkStream, rootType,
15218                 reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
15219             break;
15220         }
15221         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
15222             unmarshal_VkExportFenceCreateInfo(
15223                 vkStream, rootType,
15224                 reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
15225             break;
15226         }
15227         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
15228             unmarshal_VkExportSemaphoreCreateInfo(
15229                 vkStream, rootType,
15230                 reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
15231             break;
15232         }
15233         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
15234             unmarshal_VkPhysicalDeviceMaintenance3Properties(
15235                 vkStream, rootType,
15236                 reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
15237             break;
15238         }
15239         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
15240             unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
15241                 vkStream, rootType,
15242                 reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(
15243                     structExtension_out));
15244             break;
15245         }
15246 #endif
15247 #ifdef VK_VERSION_1_2
15248         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
15249             unmarshal_VkPhysicalDeviceVulkan11Features(
15250                 vkStream, rootType,
15251                 reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
15252             break;
15253         }
15254         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
15255             unmarshal_VkPhysicalDeviceVulkan11Properties(
15256                 vkStream, rootType,
15257                 reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
15258             break;
15259         }
15260         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
15261             unmarshal_VkPhysicalDeviceVulkan12Features(
15262                 vkStream, rootType,
15263                 reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
15264             break;
15265         }
15266         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
15267             unmarshal_VkPhysicalDeviceVulkan12Properties(
15268                 vkStream, rootType,
15269                 reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
15270             break;
15271         }
15272         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
15273             unmarshal_VkImageFormatListCreateInfo(
15274                 vkStream, rootType,
15275                 reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
15276             break;
15277         }
15278         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
15279             unmarshal_VkPhysicalDevice8BitStorageFeatures(
15280                 vkStream, rootType,
15281                 reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
15282             break;
15283         }
15284         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
15285             unmarshal_VkPhysicalDeviceDriverProperties(
15286                 vkStream, rootType,
15287                 reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
15288             break;
15289         }
15290         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
15291             unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
15292                 vkStream, rootType,
15293                 reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
15294             break;
15295         }
15296         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
15297             unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
15298                 vkStream, rootType,
15299                 reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
15300             break;
15301         }
15302         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
15303             unmarshal_VkPhysicalDeviceFloatControlsProperties(
15304                 vkStream, rootType,
15305                 reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
15306             break;
15307         }
15308         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
15309             unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
15310                 vkStream, rootType,
15311                 reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
15312                     structExtension_out));
15313             break;
15314         }
15315         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
15316             unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
15317                 vkStream, rootType,
15318                 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
15319             break;
15320         }
15321         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
15322             unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
15323                 vkStream, rootType,
15324                 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(
15325                     structExtension_out));
15326             break;
15327         }
15328         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
15329             unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
15330                 vkStream, rootType,
15331                 reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
15332                     structExtension_out));
15333             break;
15334         }
15335         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
15336             unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
15337                 vkStream, rootType,
15338                 reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
15339                     structExtension_out));
15340             break;
15341         }
15342         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
15343             unmarshal_VkSubpassDescriptionDepthStencilResolve(
15344                 vkStream, rootType,
15345                 reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
15346             break;
15347         }
15348         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
15349             unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
15350                 vkStream, rootType,
15351                 reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(
15352                     structExtension_out));
15353             break;
15354         }
15355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
15356             unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
15357                 vkStream, rootType,
15358                 reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
15359             break;
15360         }
15361         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
15362             unmarshal_VkImageStencilUsageCreateInfo(
15363                 vkStream, rootType,
15364                 reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
15365             break;
15366         }
15367         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
15368             unmarshal_VkSamplerReductionModeCreateInfo(
15369                 vkStream, rootType,
15370                 reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
15371             break;
15372         }
15373         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
15374             unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
15375                 vkStream, rootType,
15376                 reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
15377                     structExtension_out));
15378             break;
15379         }
15380         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
15381             unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
15382                 vkStream, rootType,
15383                 reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
15384             break;
15385         }
15386         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
15387             unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
15388                 vkStream, rootType,
15389                 reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(
15390                     structExtension_out));
15391             break;
15392         }
15393         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
15394             unmarshal_VkFramebufferAttachmentsCreateInfo(
15395                 vkStream, rootType,
15396                 reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
15397             break;
15398         }
15399         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
15400             unmarshal_VkRenderPassAttachmentBeginInfo(
15401                 vkStream, rootType,
15402                 reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
15403             break;
15404         }
15405         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
15406             unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
15407                 vkStream, rootType,
15408                 reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
15409                     structExtension_out));
15410             break;
15411         }
15412         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
15413             unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
15414                 vkStream, rootType,
15415                 reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
15416                     structExtension_out));
15417             break;
15418         }
15419         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
15420             unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
15421                 vkStream, rootType,
15422                 reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
15423                     structExtension_out));
15424             break;
15425         }
15426         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
15427             unmarshal_VkAttachmentReferenceStencilLayout(
15428                 vkStream, rootType,
15429                 reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
15430             break;
15431         }
15432         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
15433             unmarshal_VkAttachmentDescriptionStencilLayout(
15434                 vkStream, rootType,
15435                 reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
15436             break;
15437         }
15438         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
15439             unmarshal_VkPhysicalDeviceHostQueryResetFeatures(
15440                 vkStream, rootType,
15441                 reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
15442             break;
15443         }
15444         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
15445             unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
15446                 vkStream, rootType,
15447                 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
15448             break;
15449         }
15450         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
15451             unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
15452                 vkStream, rootType,
15453                 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(
15454                     structExtension_out));
15455             break;
15456         }
15457         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
15458             unmarshal_VkSemaphoreTypeCreateInfo(
15459                 vkStream, rootType,
15460                 reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
15461             break;
15462         }
15463         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
15464             unmarshal_VkTimelineSemaphoreSubmitInfo(
15465                 vkStream, rootType,
15466                 reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
15467             break;
15468         }
15469         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
15470             unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
15471                 vkStream, rootType,
15472                 reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(
15473                     structExtension_out));
15474             break;
15475         }
15476         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
15477             unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
15478                 vkStream, rootType,
15479                 reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
15480             break;
15481         }
15482         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
15483             unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
15484                 vkStream, rootType,
15485                 reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
15486             break;
15487         }
15488 #endif
15489 #ifdef VK_VERSION_1_3
15490         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
15491             unmarshal_VkPhysicalDeviceVulkan13Features(
15492                 vkStream, rootType,
15493                 reinterpret_cast<VkPhysicalDeviceVulkan13Features*>(structExtension_out));
15494             break;
15495         }
15496         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
15497             unmarshal_VkPhysicalDeviceVulkan13Properties(
15498                 vkStream, rootType,
15499                 reinterpret_cast<VkPhysicalDeviceVulkan13Properties*>(structExtension_out));
15500             break;
15501         }
15502         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
15503             unmarshal_VkPipelineCreationFeedbackCreateInfo(
15504                 vkStream, rootType,
15505                 reinterpret_cast<VkPipelineCreationFeedbackCreateInfo*>(structExtension_out));
15506             break;
15507         }
15508         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
15509             unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
15510                 vkStream, rootType,
15511                 reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
15512                     structExtension_out));
15513             break;
15514         }
15515         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
15516             unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
15517                 vkStream, rootType,
15518                 reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
15519                     structExtension_out));
15520             break;
15521         }
15522         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
15523             unmarshal_VkPhysicalDevicePrivateDataFeatures(
15524                 vkStream, rootType,
15525                 reinterpret_cast<VkPhysicalDevicePrivateDataFeatures*>(structExtension_out));
15526             break;
15527         }
15528         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
15529             unmarshal_VkDevicePrivateDataCreateInfo(
15530                 vkStream, rootType,
15531                 reinterpret_cast<VkDevicePrivateDataCreateInfo*>(structExtension_out));
15532             break;
15533         }
15534         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
15535             unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
15536                 vkStream, rootType,
15537                 reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
15538                     structExtension_out));
15539             break;
15540         }
15541         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
15542             unmarshal_VkMemoryBarrier2(vkStream, rootType,
15543                                        reinterpret_cast<VkMemoryBarrier2*>(structExtension_out));
15544             break;
15545         }
15546         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
15547             unmarshal_VkPhysicalDeviceSynchronization2Features(
15548                 vkStream, rootType,
15549                 reinterpret_cast<VkPhysicalDeviceSynchronization2Features*>(structExtension_out));
15550             break;
15551         }
15552         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
15553             unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
15554                 vkStream, rootType,
15555                 reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
15556                     structExtension_out));
15557             break;
15558         }
15559         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
15560             unmarshal_VkPhysicalDeviceImageRobustnessFeatures(
15561                 vkStream, rootType,
15562                 reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures*>(structExtension_out));
15563             break;
15564         }
15565         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
15566             unmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
15567                 vkStream, rootType,
15568                 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures*>(
15569                     structExtension_out));
15570             break;
15571         }
15572         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
15573             unmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
15574                 vkStream, rootType,
15575                 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties*>(
15576                     structExtension_out));
15577             break;
15578         }
15579         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
15580             unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
15581                 vkStream, rootType,
15582                 reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
15583                     structExtension_out));
15584             break;
15585         }
15586         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
15587             unmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
15588                 vkStream, rootType,
15589                 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures*>(structExtension_out));
15590             break;
15591         }
15592         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
15593             unmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
15594                 vkStream, rootType,
15595                 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties*>(
15596                     structExtension_out));
15597             break;
15598         }
15599         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
15600             unmarshal_VkWriteDescriptorSetInlineUniformBlock(
15601                 vkStream, rootType,
15602                 reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock*>(structExtension_out));
15603             break;
15604         }
15605         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
15606             unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
15607                 vkStream, rootType,
15608                 reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo*>(
15609                     structExtension_out));
15610             break;
15611         }
15612         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
15613             unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
15614                 vkStream, rootType,
15615                 reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
15616                     structExtension_out));
15617             break;
15618         }
15619         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
15620             unmarshal_VkPipelineRenderingCreateInfo(
15621                 vkStream, rootType,
15622                 reinterpret_cast<VkPipelineRenderingCreateInfo*>(structExtension_out));
15623             break;
15624         }
15625         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
15626             unmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
15627                 vkStream, rootType,
15628                 reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension_out));
15629             break;
15630         }
15631         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
15632             unmarshal_VkCommandBufferInheritanceRenderingInfo(
15633                 vkStream, rootType,
15634                 reinterpret_cast<VkCommandBufferInheritanceRenderingInfo*>(structExtension_out));
15635             break;
15636         }
15637         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
15638             unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
15639                 vkStream, rootType,
15640                 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
15641                     structExtension_out));
15642             break;
15643         }
15644         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
15645             unmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
15646                 vkStream, rootType,
15647                 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties*>(
15648                     structExtension_out));
15649             break;
15650         }
15651         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
15652             unmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
15653                 vkStream, rootType,
15654                 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties*>(
15655                     structExtension_out));
15656             break;
15657         }
15658         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
15659             unmarshal_VkFormatProperties3(
15660                 vkStream, rootType, reinterpret_cast<VkFormatProperties3*>(structExtension_out));
15661             break;
15662         }
15663         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
15664             unmarshal_VkPhysicalDeviceMaintenance4Features(
15665                 vkStream, rootType,
15666                 reinterpret_cast<VkPhysicalDeviceMaintenance4Features*>(structExtension_out));
15667             break;
15668         }
15669         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
15670             unmarshal_VkPhysicalDeviceMaintenance4Properties(
15671                 vkStream, rootType,
15672                 reinterpret_cast<VkPhysicalDeviceMaintenance4Properties*>(structExtension_out));
15673             break;
15674         }
15675 #endif
15676 #ifdef VK_KHR_dynamic_rendering
15677         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
15678             unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
15679                 vkStream, rootType,
15680                 reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
15681                     structExtension_out));
15682             break;
15683         }
15684         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
15685             unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
15686                 vkStream, rootType,
15687                 reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
15688                     structExtension_out));
15689             break;
15690         }
15691         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
15692             unmarshal_VkAttachmentSampleCountInfoAMD(
15693                 vkStream, rootType,
15694                 reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
15695             break;
15696         }
15697         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
15698             unmarshal_VkMultiviewPerViewAttributesInfoNVX(
15699                 vkStream, rootType,
15700                 reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
15701             break;
15702         }
15703 #endif
15704 #ifdef VK_KHR_incremental_present
15705         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
15706             unmarshal_VkPresentRegionsKHR(
15707                 vkStream, rootType, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
15708             break;
15709         }
15710 #endif
15711 #ifdef VK_KHR_pipeline_executable_properties
15712         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
15713             unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
15714                 vkStream, rootType,
15715                 reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
15716                     structExtension_out));
15717             break;
15718         }
15719 #endif
15720 #ifdef VK_KHR_synchronization2
15721         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
15722             unmarshal_VkQueueFamilyCheckpointProperties2NV(
15723                 vkStream, rootType,
15724                 reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
15725             break;
15726         }
15727 #endif
15728 #ifdef VK_KHR_maintenance5
15729         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
15730             unmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
15731                 vkStream, rootType,
15732                 reinterpret_cast<VkPhysicalDeviceMaintenance5FeaturesKHR*>(structExtension_out));
15733             break;
15734         }
15735         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
15736             unmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
15737                 vkStream, rootType,
15738                 reinterpret_cast<VkPhysicalDeviceMaintenance5PropertiesKHR*>(structExtension_out));
15739             break;
15740         }
15741         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
15742             unmarshal_VkPipelineCreateFlags2CreateInfoKHR(
15743                 vkStream, rootType,
15744                 reinterpret_cast<VkPipelineCreateFlags2CreateInfoKHR*>(structExtension_out));
15745             break;
15746         }
15747         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
15748             unmarshal_VkBufferUsageFlags2CreateInfoKHR(
15749                 vkStream, rootType,
15750                 reinterpret_cast<VkBufferUsageFlags2CreateInfoKHR*>(structExtension_out));
15751             break;
15752         }
15753 #endif
15754 #ifdef VK_KHR_line_rasterization
15755         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
15756             unmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
15757                 vkStream, rootType,
15758                 reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR*>(
15759                     structExtension_out));
15760             break;
15761         }
15762         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
15763             unmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
15764                 vkStream, rootType,
15765                 reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesKHR*>(
15766                     structExtension_out));
15767             break;
15768         }
15769         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
15770             unmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(
15771                 vkStream, rootType,
15772                 reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoKHR*>(
15773                     structExtension_out));
15774             break;
15775         }
15776 #endif
15777 #ifdef VK_ANDROID_native_buffer
15778         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
15779             unmarshal_VkNativeBufferANDROID(
15780                 vkStream, rootType, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
15781             break;
15782         }
15783 #endif
15784 #ifdef VK_EXT_transform_feedback
15785         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
15786             unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
15787                 vkStream, rootType,
15788                 reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
15789                     structExtension_out));
15790             break;
15791         }
15792         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
15793             unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
15794                 vkStream, rootType,
15795                 reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
15796                     structExtension_out));
15797             break;
15798         }
15799         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
15800             unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
15801                 vkStream, rootType,
15802                 reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(
15803                     structExtension_out));
15804             break;
15805         }
15806 #endif
15807 #ifdef VK_EXT_depth_clip_enable
15808         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
15809             unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
15810                 vkStream, rootType,
15811                 reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
15812             break;
15813         }
15814         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
15815             unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
15816                 vkStream, rootType,
15817                 reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
15818                     structExtension_out));
15819             break;
15820         }
15821 #endif
15822 #ifdef VK_EXT_image_drm_format_modifier
15823         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
15824             unmarshal_VkDrmFormatModifierPropertiesListEXT(
15825                 vkStream, rootType,
15826                 reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
15827             break;
15828         }
15829         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
15830             unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
15831                 vkStream, rootType,
15832                 reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
15833                     structExtension_out));
15834             break;
15835         }
15836         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
15837             unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
15838                 vkStream, rootType,
15839                 reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
15840             break;
15841         }
15842         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
15843             unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
15844                 vkStream, rootType,
15845                 reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
15846                     structExtension_out));
15847             break;
15848         }
15849         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
15850             unmarshal_VkDrmFormatModifierPropertiesList2EXT(
15851                 vkStream, rootType,
15852                 reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
15853             break;
15854         }
15855 #endif
15856 #ifdef VK_EXT_vertex_attribute_divisor
15857         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
15858             unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
15859                 vkStream, rootType,
15860                 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
15861                     structExtension_out));
15862             break;
15863         }
15864 #endif
15865 #ifdef VK_EXT_fragment_density_map
15866         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
15867             switch (rootType) {
15868                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
15869                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15870                         vkStream, rootType,
15871                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15872                             structExtension_out));
15873                     break;
15874                 }
15875                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
15876                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15877                         vkStream, rootType,
15878                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15879                             structExtension_out));
15880                     break;
15881                 }
15882                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15883                     unmarshal_VkImportColorBufferGOOGLE(
15884                         vkStream, rootType,
15885                         reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
15886                     break;
15887                 }
15888                 default: {
15889                     unmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15890                         vkStream, rootType,
15891                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15892                             structExtension_out));
15893                     break;
15894                 }
15895             }
15896             break;
15897         }
15898         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
15899             switch (rootType) {
15900                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
15901                     unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
15902                         vkStream, rootType,
15903                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
15904                             structExtension_out));
15905                     break;
15906                 }
15907                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15908                     unmarshal_VkCreateBlobGOOGLE(
15909                         vkStream, rootType,
15910                         reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out));
15911                     break;
15912                 }
15913                 default: {
15914                     unmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
15915                         vkStream, rootType,
15916                         reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
15917                             structExtension_out));
15918                     break;
15919                 }
15920             }
15921             break;
15922         }
15923         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
15924             switch (rootType) {
15925                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
15926                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15927                         vkStream, rootType,
15928                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15929                             structExtension_out));
15930                     break;
15931                 }
15932                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
15933                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15934                         vkStream, rootType,
15935                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15936                             structExtension_out));
15937                     break;
15938                 }
15939                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15940                     unmarshal_VkImportBufferGOOGLE(
15941                         vkStream, rootType,
15942                         reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
15943                     break;
15944                 }
15945                 default: {
15946                     unmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15947                         vkStream, rootType,
15948                         reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15949                             structExtension_out));
15950                     break;
15951                 }
15952             }
15953             break;
15954         }
15955 #endif
15956 #ifdef VK_EXT_provoking_vertex
15957         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
15958             unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
15959                 vkStream, rootType,
15960                 reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
15961             break;
15962         }
15963         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
15964             unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
15965                 vkStream, rootType,
15966                 reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
15967                     structExtension_out));
15968             break;
15969         }
15970         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
15971             unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
15972                 vkStream, rootType,
15973                 reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
15974                     structExtension_out));
15975             break;
15976         }
15977 #endif
15978 #ifdef VK_EXT_extended_dynamic_state
15979         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
15980             unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
15981                 vkStream, rootType,
15982                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
15983                     structExtension_out));
15984             break;
15985         }
15986 #endif
15987 #ifdef VK_EXT_host_image_copy
15988         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
15989             unmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
15990                 vkStream, rootType,
15991                 reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT*>(structExtension_out));
15992             break;
15993         }
15994         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
15995             unmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
15996                 vkStream, rootType,
15997                 reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT*>(structExtension_out));
15998             break;
15999         }
16000         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
16001             unmarshal_VkSubresourceHostMemcpySizeEXT(
16002                 vkStream, rootType,
16003                 reinterpret_cast<VkSubresourceHostMemcpySizeEXT*>(structExtension_out));
16004             break;
16005         }
16006         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
16007             unmarshal_VkHostImageCopyDevicePerformanceQueryEXT(
16008                 vkStream, rootType,
16009                 reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT*>(structExtension_out));
16010             break;
16011         }
16012 #endif
16013 #ifdef VK_EXT_texel_buffer_alignment
16014         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
16015             unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
16016                 vkStream, rootType,
16017                 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
16018                     structExtension_out));
16019             break;
16020         }
16021 #endif
16022 #ifdef VK_EXT_device_memory_report
16023         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
16024             unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
16025                 vkStream, rootType,
16026                 reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
16027                     structExtension_out));
16028             break;
16029         }
16030         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
16031             unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
16032                 vkStream, rootType,
16033                 reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
16034             break;
16035         }
16036 #endif
16037 #ifdef VK_EXT_robustness2
16038         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
16039             unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
16040                 vkStream, rootType,
16041                 reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
16042             break;
16043         }
16044         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
16045             unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
16046                 vkStream, rootType,
16047                 reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
16048             break;
16049         }
16050 #endif
16051 #ifdef VK_EXT_custom_border_color
16052         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
16053             unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
16054                 vkStream, rootType,
16055                 reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
16056             break;
16057         }
16058         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
16059             unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
16060                 vkStream, rootType,
16061                 reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
16062                     structExtension_out));
16063             break;
16064         }
16065         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
16066             unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
16067                 vkStream, rootType,
16068                 reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
16069                     structExtension_out));
16070             break;
16071         }
16072 #endif
16073 #ifdef VK_EXT_graphics_pipeline_library
16074         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
16075             unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
16076                 vkStream, rootType,
16077                 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
16078                     structExtension_out));
16079             break;
16080         }
16081         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
16082             unmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
16083                 vkStream, rootType,
16084                 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
16085                     structExtension_out));
16086             break;
16087         }
16088         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
16089             unmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
16090                 vkStream, rootType,
16091                 reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension_out));
16092             break;
16093         }
16094 #endif
16095 #ifdef VK_EXT_ycbcr_2plane_444_formats
16096         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
16097             unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
16098                 vkStream, rootType,
16099                 reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
16100                     structExtension_out));
16101             break;
16102         }
16103 #endif
16104 #ifdef VK_EXT_image_compression_control
16105         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
16106             unmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
16107                 vkStream, rootType,
16108                 reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
16109                     structExtension_out));
16110             break;
16111         }
16112         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
16113             unmarshal_VkImageCompressionControlEXT(
16114                 vkStream, rootType,
16115                 reinterpret_cast<VkImageCompressionControlEXT*>(structExtension_out));
16116             break;
16117         }
16118         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
16119             unmarshal_VkImageCompressionPropertiesEXT(
16120                 vkStream, rootType,
16121                 reinterpret_cast<VkImageCompressionPropertiesEXT*>(structExtension_out));
16122             break;
16123         }
16124 #endif
16125 #ifdef VK_EXT_4444_formats
16126         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
16127             unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
16128                 vkStream, rootType,
16129                 reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
16130             break;
16131         }
16132 #endif
16133 #ifdef VK_EXT_primitive_topology_list_restart
16134         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
16135             unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
16136                 vkStream, rootType,
16137                 reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
16138                     structExtension_out));
16139             break;
16140         }
16141 #endif
16142 #ifdef VK_EXT_extended_dynamic_state2
16143         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
16144             unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
16145                 vkStream, rootType,
16146                 reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
16147                     structExtension_out));
16148             break;
16149         }
16150 #endif
16151 #ifdef VK_EXT_color_write_enable
16152         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
16153             unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
16154                 vkStream, rootType,
16155                 reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
16156                     structExtension_out));
16157             break;
16158         }
16159         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
16160             unmarshal_VkPipelineColorWriteCreateInfoEXT(
16161                 vkStream, rootType,
16162                 reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
16163             break;
16164         }
16165 #endif
16166 #ifdef VK_GOOGLE_gfxstream
16167         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
16168             unmarshal_VkImportColorBufferGOOGLE(
16169                 vkStream, rootType,
16170                 reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
16171             break;
16172         }
16173         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
16174             unmarshal_VkImportBufferGOOGLE(
16175                 vkStream, rootType, reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
16176             break;
16177         }
16178         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
16179             unmarshal_VkCreateBlobGOOGLE(
16180                 vkStream, rootType, reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out));
16181             break;
16182         }
16183 #endif
16184 #ifdef VK_EXT_image_compression_control_swapchain
16185         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
16186             unmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
16187                 vkStream, rootType,
16188                 reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
16189                     structExtension_out));
16190             break;
16191         }
16192 #endif
16193         default: {
16194             // fatal; the switch is only taken if the extension struct is known
16195             abort();
16196         }
16197     }
16198 }
16199 
api_opcode_to_string(const uint32_t opcode)16200 const char* api_opcode_to_string(const uint32_t opcode) {
16201     switch (opcode) {
16202 #ifdef VK_VERSION_1_0
16203         case OP_vkCreateInstance: {
16204             return "OP_vkCreateInstance";
16205         }
16206         case OP_vkDestroyInstance: {
16207             return "OP_vkDestroyInstance";
16208         }
16209         case OP_vkEnumeratePhysicalDevices: {
16210             return "OP_vkEnumeratePhysicalDevices";
16211         }
16212         case OP_vkGetPhysicalDeviceFeatures: {
16213             return "OP_vkGetPhysicalDeviceFeatures";
16214         }
16215         case OP_vkGetPhysicalDeviceFormatProperties: {
16216             return "OP_vkGetPhysicalDeviceFormatProperties";
16217         }
16218         case OP_vkGetPhysicalDeviceImageFormatProperties: {
16219             return "OP_vkGetPhysicalDeviceImageFormatProperties";
16220         }
16221         case OP_vkGetPhysicalDeviceProperties: {
16222             return "OP_vkGetPhysicalDeviceProperties";
16223         }
16224         case OP_vkGetPhysicalDeviceQueueFamilyProperties: {
16225             return "OP_vkGetPhysicalDeviceQueueFamilyProperties";
16226         }
16227         case OP_vkGetPhysicalDeviceMemoryProperties: {
16228             return "OP_vkGetPhysicalDeviceMemoryProperties";
16229         }
16230         case OP_vkGetInstanceProcAddr: {
16231             return "OP_vkGetInstanceProcAddr";
16232         }
16233         case OP_vkGetDeviceProcAddr: {
16234             return "OP_vkGetDeviceProcAddr";
16235         }
16236         case OP_vkCreateDevice: {
16237             return "OP_vkCreateDevice";
16238         }
16239         case OP_vkDestroyDevice: {
16240             return "OP_vkDestroyDevice";
16241         }
16242         case OP_vkEnumerateInstanceExtensionProperties: {
16243             return "OP_vkEnumerateInstanceExtensionProperties";
16244         }
16245         case OP_vkEnumerateDeviceExtensionProperties: {
16246             return "OP_vkEnumerateDeviceExtensionProperties";
16247         }
16248         case OP_vkEnumerateInstanceLayerProperties: {
16249             return "OP_vkEnumerateInstanceLayerProperties";
16250         }
16251         case OP_vkEnumerateDeviceLayerProperties: {
16252             return "OP_vkEnumerateDeviceLayerProperties";
16253         }
16254         case OP_vkGetDeviceQueue: {
16255             return "OP_vkGetDeviceQueue";
16256         }
16257         case OP_vkQueueSubmit: {
16258             return "OP_vkQueueSubmit";
16259         }
16260         case OP_vkQueueWaitIdle: {
16261             return "OP_vkQueueWaitIdle";
16262         }
16263         case OP_vkDeviceWaitIdle: {
16264             return "OP_vkDeviceWaitIdle";
16265         }
16266         case OP_vkAllocateMemory: {
16267             return "OP_vkAllocateMemory";
16268         }
16269         case OP_vkFreeMemory: {
16270             return "OP_vkFreeMemory";
16271         }
16272         case OP_vkMapMemory: {
16273             return "OP_vkMapMemory";
16274         }
16275         case OP_vkUnmapMemory: {
16276             return "OP_vkUnmapMemory";
16277         }
16278         case OP_vkFlushMappedMemoryRanges: {
16279             return "OP_vkFlushMappedMemoryRanges";
16280         }
16281         case OP_vkInvalidateMappedMemoryRanges: {
16282             return "OP_vkInvalidateMappedMemoryRanges";
16283         }
16284         case OP_vkGetDeviceMemoryCommitment: {
16285             return "OP_vkGetDeviceMemoryCommitment";
16286         }
16287         case OP_vkBindBufferMemory: {
16288             return "OP_vkBindBufferMemory";
16289         }
16290         case OP_vkBindImageMemory: {
16291             return "OP_vkBindImageMemory";
16292         }
16293         case OP_vkGetBufferMemoryRequirements: {
16294             return "OP_vkGetBufferMemoryRequirements";
16295         }
16296         case OP_vkGetImageMemoryRequirements: {
16297             return "OP_vkGetImageMemoryRequirements";
16298         }
16299         case OP_vkGetImageSparseMemoryRequirements: {
16300             return "OP_vkGetImageSparseMemoryRequirements";
16301         }
16302         case OP_vkGetPhysicalDeviceSparseImageFormatProperties: {
16303             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties";
16304         }
16305         case OP_vkQueueBindSparse: {
16306             return "OP_vkQueueBindSparse";
16307         }
16308         case OP_vkCreateFence: {
16309             return "OP_vkCreateFence";
16310         }
16311         case OP_vkDestroyFence: {
16312             return "OP_vkDestroyFence";
16313         }
16314         case OP_vkResetFences: {
16315             return "OP_vkResetFences";
16316         }
16317         case OP_vkGetFenceStatus: {
16318             return "OP_vkGetFenceStatus";
16319         }
16320         case OP_vkWaitForFences: {
16321             return "OP_vkWaitForFences";
16322         }
16323         case OP_vkCreateSemaphore: {
16324             return "OP_vkCreateSemaphore";
16325         }
16326         case OP_vkDestroySemaphore: {
16327             return "OP_vkDestroySemaphore";
16328         }
16329         case OP_vkCreateEvent: {
16330             return "OP_vkCreateEvent";
16331         }
16332         case OP_vkDestroyEvent: {
16333             return "OP_vkDestroyEvent";
16334         }
16335         case OP_vkGetEventStatus: {
16336             return "OP_vkGetEventStatus";
16337         }
16338         case OP_vkSetEvent: {
16339             return "OP_vkSetEvent";
16340         }
16341         case OP_vkResetEvent: {
16342             return "OP_vkResetEvent";
16343         }
16344         case OP_vkCreateQueryPool: {
16345             return "OP_vkCreateQueryPool";
16346         }
16347         case OP_vkDestroyQueryPool: {
16348             return "OP_vkDestroyQueryPool";
16349         }
16350         case OP_vkGetQueryPoolResults: {
16351             return "OP_vkGetQueryPoolResults";
16352         }
16353         case OP_vkCreateBuffer: {
16354             return "OP_vkCreateBuffer";
16355         }
16356         case OP_vkDestroyBuffer: {
16357             return "OP_vkDestroyBuffer";
16358         }
16359         case OP_vkCreateBufferView: {
16360             return "OP_vkCreateBufferView";
16361         }
16362         case OP_vkDestroyBufferView: {
16363             return "OP_vkDestroyBufferView";
16364         }
16365         case OP_vkCreateImage: {
16366             return "OP_vkCreateImage";
16367         }
16368         case OP_vkDestroyImage: {
16369             return "OP_vkDestroyImage";
16370         }
16371         case OP_vkGetImageSubresourceLayout: {
16372             return "OP_vkGetImageSubresourceLayout";
16373         }
16374         case OP_vkCreateImageView: {
16375             return "OP_vkCreateImageView";
16376         }
16377         case OP_vkDestroyImageView: {
16378             return "OP_vkDestroyImageView";
16379         }
16380         case OP_vkCreateShaderModule: {
16381             return "OP_vkCreateShaderModule";
16382         }
16383         case OP_vkDestroyShaderModule: {
16384             return "OP_vkDestroyShaderModule";
16385         }
16386         case OP_vkCreatePipelineCache: {
16387             return "OP_vkCreatePipelineCache";
16388         }
16389         case OP_vkDestroyPipelineCache: {
16390             return "OP_vkDestroyPipelineCache";
16391         }
16392         case OP_vkGetPipelineCacheData: {
16393             return "OP_vkGetPipelineCacheData";
16394         }
16395         case OP_vkMergePipelineCaches: {
16396             return "OP_vkMergePipelineCaches";
16397         }
16398         case OP_vkCreateGraphicsPipelines: {
16399             return "OP_vkCreateGraphicsPipelines";
16400         }
16401         case OP_vkCreateComputePipelines: {
16402             return "OP_vkCreateComputePipelines";
16403         }
16404         case OP_vkDestroyPipeline: {
16405             return "OP_vkDestroyPipeline";
16406         }
16407         case OP_vkCreatePipelineLayout: {
16408             return "OP_vkCreatePipelineLayout";
16409         }
16410         case OP_vkDestroyPipelineLayout: {
16411             return "OP_vkDestroyPipelineLayout";
16412         }
16413         case OP_vkCreateSampler: {
16414             return "OP_vkCreateSampler";
16415         }
16416         case OP_vkDestroySampler: {
16417             return "OP_vkDestroySampler";
16418         }
16419         case OP_vkCreateDescriptorSetLayout: {
16420             return "OP_vkCreateDescriptorSetLayout";
16421         }
16422         case OP_vkDestroyDescriptorSetLayout: {
16423             return "OP_vkDestroyDescriptorSetLayout";
16424         }
16425         case OP_vkCreateDescriptorPool: {
16426             return "OP_vkCreateDescriptorPool";
16427         }
16428         case OP_vkDestroyDescriptorPool: {
16429             return "OP_vkDestroyDescriptorPool";
16430         }
16431         case OP_vkResetDescriptorPool: {
16432             return "OP_vkResetDescriptorPool";
16433         }
16434         case OP_vkAllocateDescriptorSets: {
16435             return "OP_vkAllocateDescriptorSets";
16436         }
16437         case OP_vkFreeDescriptorSets: {
16438             return "OP_vkFreeDescriptorSets";
16439         }
16440         case OP_vkUpdateDescriptorSets: {
16441             return "OP_vkUpdateDescriptorSets";
16442         }
16443         case OP_vkCreateFramebuffer: {
16444             return "OP_vkCreateFramebuffer";
16445         }
16446         case OP_vkDestroyFramebuffer: {
16447             return "OP_vkDestroyFramebuffer";
16448         }
16449         case OP_vkCreateRenderPass: {
16450             return "OP_vkCreateRenderPass";
16451         }
16452         case OP_vkDestroyRenderPass: {
16453             return "OP_vkDestroyRenderPass";
16454         }
16455         case OP_vkGetRenderAreaGranularity: {
16456             return "OP_vkGetRenderAreaGranularity";
16457         }
16458         case OP_vkCreateCommandPool: {
16459             return "OP_vkCreateCommandPool";
16460         }
16461         case OP_vkDestroyCommandPool: {
16462             return "OP_vkDestroyCommandPool";
16463         }
16464         case OP_vkResetCommandPool: {
16465             return "OP_vkResetCommandPool";
16466         }
16467         case OP_vkAllocateCommandBuffers: {
16468             return "OP_vkAllocateCommandBuffers";
16469         }
16470         case OP_vkFreeCommandBuffers: {
16471             return "OP_vkFreeCommandBuffers";
16472         }
16473         case OP_vkBeginCommandBuffer: {
16474             return "OP_vkBeginCommandBuffer";
16475         }
16476         case OP_vkEndCommandBuffer: {
16477             return "OP_vkEndCommandBuffer";
16478         }
16479         case OP_vkResetCommandBuffer: {
16480             return "OP_vkResetCommandBuffer";
16481         }
16482         case OP_vkCmdBindPipeline: {
16483             return "OP_vkCmdBindPipeline";
16484         }
16485         case OP_vkCmdSetViewport: {
16486             return "OP_vkCmdSetViewport";
16487         }
16488         case OP_vkCmdSetScissor: {
16489             return "OP_vkCmdSetScissor";
16490         }
16491         case OP_vkCmdSetLineWidth: {
16492             return "OP_vkCmdSetLineWidth";
16493         }
16494         case OP_vkCmdSetDepthBias: {
16495             return "OP_vkCmdSetDepthBias";
16496         }
16497         case OP_vkCmdSetBlendConstants: {
16498             return "OP_vkCmdSetBlendConstants";
16499         }
16500         case OP_vkCmdSetDepthBounds: {
16501             return "OP_vkCmdSetDepthBounds";
16502         }
16503         case OP_vkCmdSetStencilCompareMask: {
16504             return "OP_vkCmdSetStencilCompareMask";
16505         }
16506         case OP_vkCmdSetStencilWriteMask: {
16507             return "OP_vkCmdSetStencilWriteMask";
16508         }
16509         case OP_vkCmdSetStencilReference: {
16510             return "OP_vkCmdSetStencilReference";
16511         }
16512         case OP_vkCmdBindDescriptorSets: {
16513             return "OP_vkCmdBindDescriptorSets";
16514         }
16515         case OP_vkCmdBindIndexBuffer: {
16516             return "OP_vkCmdBindIndexBuffer";
16517         }
16518         case OP_vkCmdBindVertexBuffers: {
16519             return "OP_vkCmdBindVertexBuffers";
16520         }
16521         case OP_vkCmdDraw: {
16522             return "OP_vkCmdDraw";
16523         }
16524         case OP_vkCmdDrawIndexed: {
16525             return "OP_vkCmdDrawIndexed";
16526         }
16527         case OP_vkCmdDrawIndirect: {
16528             return "OP_vkCmdDrawIndirect";
16529         }
16530         case OP_vkCmdDrawIndexedIndirect: {
16531             return "OP_vkCmdDrawIndexedIndirect";
16532         }
16533         case OP_vkCmdDispatch: {
16534             return "OP_vkCmdDispatch";
16535         }
16536         case OP_vkCmdDispatchIndirect: {
16537             return "OP_vkCmdDispatchIndirect";
16538         }
16539         case OP_vkCmdCopyBuffer: {
16540             return "OP_vkCmdCopyBuffer";
16541         }
16542         case OP_vkCmdCopyImage: {
16543             return "OP_vkCmdCopyImage";
16544         }
16545         case OP_vkCmdBlitImage: {
16546             return "OP_vkCmdBlitImage";
16547         }
16548         case OP_vkCmdCopyBufferToImage: {
16549             return "OP_vkCmdCopyBufferToImage";
16550         }
16551         case OP_vkCmdCopyImageToBuffer: {
16552             return "OP_vkCmdCopyImageToBuffer";
16553         }
16554         case OP_vkCmdUpdateBuffer: {
16555             return "OP_vkCmdUpdateBuffer";
16556         }
16557         case OP_vkCmdFillBuffer: {
16558             return "OP_vkCmdFillBuffer";
16559         }
16560         case OP_vkCmdClearColorImage: {
16561             return "OP_vkCmdClearColorImage";
16562         }
16563         case OP_vkCmdClearDepthStencilImage: {
16564             return "OP_vkCmdClearDepthStencilImage";
16565         }
16566         case OP_vkCmdClearAttachments: {
16567             return "OP_vkCmdClearAttachments";
16568         }
16569         case OP_vkCmdResolveImage: {
16570             return "OP_vkCmdResolveImage";
16571         }
16572         case OP_vkCmdSetEvent: {
16573             return "OP_vkCmdSetEvent";
16574         }
16575         case OP_vkCmdResetEvent: {
16576             return "OP_vkCmdResetEvent";
16577         }
16578         case OP_vkCmdWaitEvents: {
16579             return "OP_vkCmdWaitEvents";
16580         }
16581         case OP_vkCmdPipelineBarrier: {
16582             return "OP_vkCmdPipelineBarrier";
16583         }
16584         case OP_vkCmdBeginQuery: {
16585             return "OP_vkCmdBeginQuery";
16586         }
16587         case OP_vkCmdEndQuery: {
16588             return "OP_vkCmdEndQuery";
16589         }
16590         case OP_vkCmdResetQueryPool: {
16591             return "OP_vkCmdResetQueryPool";
16592         }
16593         case OP_vkCmdWriteTimestamp: {
16594             return "OP_vkCmdWriteTimestamp";
16595         }
16596         case OP_vkCmdCopyQueryPoolResults: {
16597             return "OP_vkCmdCopyQueryPoolResults";
16598         }
16599         case OP_vkCmdPushConstants: {
16600             return "OP_vkCmdPushConstants";
16601         }
16602         case OP_vkCmdBeginRenderPass: {
16603             return "OP_vkCmdBeginRenderPass";
16604         }
16605         case OP_vkCmdNextSubpass: {
16606             return "OP_vkCmdNextSubpass";
16607         }
16608         case OP_vkCmdEndRenderPass: {
16609             return "OP_vkCmdEndRenderPass";
16610         }
16611         case OP_vkCmdExecuteCommands: {
16612             return "OP_vkCmdExecuteCommands";
16613         }
16614 #endif
16615 #ifdef VK_VERSION_1_1
16616         case OP_vkEnumerateInstanceVersion: {
16617             return "OP_vkEnumerateInstanceVersion";
16618         }
16619         case OP_vkBindBufferMemory2: {
16620             return "OP_vkBindBufferMemory2";
16621         }
16622         case OP_vkBindImageMemory2: {
16623             return "OP_vkBindImageMemory2";
16624         }
16625         case OP_vkGetDeviceGroupPeerMemoryFeatures: {
16626             return "OP_vkGetDeviceGroupPeerMemoryFeatures";
16627         }
16628         case OP_vkCmdSetDeviceMask: {
16629             return "OP_vkCmdSetDeviceMask";
16630         }
16631         case OP_vkCmdDispatchBase: {
16632             return "OP_vkCmdDispatchBase";
16633         }
16634         case OP_vkEnumeratePhysicalDeviceGroups: {
16635             return "OP_vkEnumeratePhysicalDeviceGroups";
16636         }
16637         case OP_vkGetImageMemoryRequirements2: {
16638             return "OP_vkGetImageMemoryRequirements2";
16639         }
16640         case OP_vkGetBufferMemoryRequirements2: {
16641             return "OP_vkGetBufferMemoryRequirements2";
16642         }
16643         case OP_vkGetImageSparseMemoryRequirements2: {
16644             return "OP_vkGetImageSparseMemoryRequirements2";
16645         }
16646         case OP_vkGetPhysicalDeviceFeatures2: {
16647             return "OP_vkGetPhysicalDeviceFeatures2";
16648         }
16649         case OP_vkGetPhysicalDeviceProperties2: {
16650             return "OP_vkGetPhysicalDeviceProperties2";
16651         }
16652         case OP_vkGetPhysicalDeviceFormatProperties2: {
16653             return "OP_vkGetPhysicalDeviceFormatProperties2";
16654         }
16655         case OP_vkGetPhysicalDeviceImageFormatProperties2: {
16656             return "OP_vkGetPhysicalDeviceImageFormatProperties2";
16657         }
16658         case OP_vkGetPhysicalDeviceQueueFamilyProperties2: {
16659             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2";
16660         }
16661         case OP_vkGetPhysicalDeviceMemoryProperties2: {
16662             return "OP_vkGetPhysicalDeviceMemoryProperties2";
16663         }
16664         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2: {
16665             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2";
16666         }
16667         case OP_vkTrimCommandPool: {
16668             return "OP_vkTrimCommandPool";
16669         }
16670         case OP_vkGetDeviceQueue2: {
16671             return "OP_vkGetDeviceQueue2";
16672         }
16673         case OP_vkCreateSamplerYcbcrConversion: {
16674             return "OP_vkCreateSamplerYcbcrConversion";
16675         }
16676         case OP_vkDestroySamplerYcbcrConversion: {
16677             return "OP_vkDestroySamplerYcbcrConversion";
16678         }
16679         case OP_vkCreateDescriptorUpdateTemplate: {
16680             return "OP_vkCreateDescriptorUpdateTemplate";
16681         }
16682         case OP_vkDestroyDescriptorUpdateTemplate: {
16683             return "OP_vkDestroyDescriptorUpdateTemplate";
16684         }
16685         case OP_vkUpdateDescriptorSetWithTemplate: {
16686             return "OP_vkUpdateDescriptorSetWithTemplate";
16687         }
16688         case OP_vkGetPhysicalDeviceExternalBufferProperties: {
16689             return "OP_vkGetPhysicalDeviceExternalBufferProperties";
16690         }
16691         case OP_vkGetPhysicalDeviceExternalFenceProperties: {
16692             return "OP_vkGetPhysicalDeviceExternalFenceProperties";
16693         }
16694         case OP_vkGetPhysicalDeviceExternalSemaphoreProperties: {
16695             return "OP_vkGetPhysicalDeviceExternalSemaphoreProperties";
16696         }
16697         case OP_vkGetDescriptorSetLayoutSupport: {
16698             return "OP_vkGetDescriptorSetLayoutSupport";
16699         }
16700 #endif
16701 #ifdef VK_KHR_get_physical_device_properties2
16702         case OP_vkGetPhysicalDeviceFeatures2KHR: {
16703             return "OP_vkGetPhysicalDeviceFeatures2KHR";
16704         }
16705         case OP_vkGetPhysicalDeviceProperties2KHR: {
16706             return "OP_vkGetPhysicalDeviceProperties2KHR";
16707         }
16708         case OP_vkGetPhysicalDeviceFormatProperties2KHR: {
16709             return "OP_vkGetPhysicalDeviceFormatProperties2KHR";
16710         }
16711         case OP_vkGetPhysicalDeviceImageFormatProperties2KHR: {
16712             return "OP_vkGetPhysicalDeviceImageFormatProperties2KHR";
16713         }
16714         case OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR: {
16715             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR";
16716         }
16717         case OP_vkGetPhysicalDeviceMemoryProperties2KHR: {
16718             return "OP_vkGetPhysicalDeviceMemoryProperties2KHR";
16719         }
16720         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR: {
16721             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR";
16722         }
16723 #endif
16724 #ifdef VK_KHR_maintenance1
16725         case OP_vkTrimCommandPoolKHR: {
16726             return "OP_vkTrimCommandPoolKHR";
16727         }
16728 #endif
16729 #ifdef VK_KHR_external_memory_capabilities
16730         case OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR: {
16731             return "OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR";
16732         }
16733 #endif
16734 #ifdef VK_KHR_external_semaphore_capabilities
16735         case OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR: {
16736             return "OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR";
16737         }
16738 #endif
16739 #ifdef VK_KHR_external_semaphore_fd
16740         case OP_vkImportSemaphoreFdKHR: {
16741             return "OP_vkImportSemaphoreFdKHR";
16742         }
16743         case OP_vkGetSemaphoreFdKHR: {
16744             return "OP_vkGetSemaphoreFdKHR";
16745         }
16746 #endif
16747 #ifdef VK_KHR_descriptor_update_template
16748         case OP_vkCreateDescriptorUpdateTemplateKHR: {
16749             return "OP_vkCreateDescriptorUpdateTemplateKHR";
16750         }
16751         case OP_vkDestroyDescriptorUpdateTemplateKHR: {
16752             return "OP_vkDestroyDescriptorUpdateTemplateKHR";
16753         }
16754         case OP_vkUpdateDescriptorSetWithTemplateKHR: {
16755             return "OP_vkUpdateDescriptorSetWithTemplateKHR";
16756         }
16757 #endif
16758 #ifdef VK_KHR_create_renderpass2
16759         case OP_vkCreateRenderPass2KHR: {
16760             return "OP_vkCreateRenderPass2KHR";
16761         }
16762         case OP_vkCmdBeginRenderPass2KHR: {
16763             return "OP_vkCmdBeginRenderPass2KHR";
16764         }
16765         case OP_vkCmdNextSubpass2KHR: {
16766             return "OP_vkCmdNextSubpass2KHR";
16767         }
16768         case OP_vkCmdEndRenderPass2KHR: {
16769             return "OP_vkCmdEndRenderPass2KHR";
16770         }
16771 #endif
16772 #ifdef VK_KHR_external_fence_capabilities
16773         case OP_vkGetPhysicalDeviceExternalFencePropertiesKHR: {
16774             return "OP_vkGetPhysicalDeviceExternalFencePropertiesKHR";
16775         }
16776 #endif
16777 #ifdef VK_KHR_external_fence_fd
16778         case OP_vkImportFenceFdKHR: {
16779             return "OP_vkImportFenceFdKHR";
16780         }
16781         case OP_vkGetFenceFdKHR: {
16782             return "OP_vkGetFenceFdKHR";
16783         }
16784 #endif
16785 #ifdef VK_KHR_get_memory_requirements2
16786         case OP_vkGetImageMemoryRequirements2KHR: {
16787             return "OP_vkGetImageMemoryRequirements2KHR";
16788         }
16789         case OP_vkGetBufferMemoryRequirements2KHR: {
16790             return "OP_vkGetBufferMemoryRequirements2KHR";
16791         }
16792         case OP_vkGetImageSparseMemoryRequirements2KHR: {
16793             return "OP_vkGetImageSparseMemoryRequirements2KHR";
16794         }
16795 #endif
16796 #ifdef VK_KHR_sampler_ycbcr_conversion
16797         case OP_vkCreateSamplerYcbcrConversionKHR: {
16798             return "OP_vkCreateSamplerYcbcrConversionKHR";
16799         }
16800         case OP_vkDestroySamplerYcbcrConversionKHR: {
16801             return "OP_vkDestroySamplerYcbcrConversionKHR";
16802         }
16803 #endif
16804 #ifdef VK_KHR_bind_memory2
16805         case OP_vkBindBufferMemory2KHR: {
16806             return "OP_vkBindBufferMemory2KHR";
16807         }
16808         case OP_vkBindImageMemory2KHR: {
16809             return "OP_vkBindImageMemory2KHR";
16810         }
16811 #endif
16812 #ifdef VK_KHR_maintenance3
16813         case OP_vkGetDescriptorSetLayoutSupportKHR: {
16814             return "OP_vkGetDescriptorSetLayoutSupportKHR";
16815         }
16816 #endif
16817 #ifdef VK_ANDROID_native_buffer
16818         case OP_vkGetSwapchainGrallocUsageANDROID: {
16819             return "OP_vkGetSwapchainGrallocUsageANDROID";
16820         }
16821         case OP_vkAcquireImageANDROID: {
16822             return "OP_vkAcquireImageANDROID";
16823         }
16824         case OP_vkQueueSignalReleaseImageANDROID: {
16825             return "OP_vkQueueSignalReleaseImageANDROID";
16826         }
16827 #endif
16828 #ifdef VK_GOOGLE_gfxstream
16829         case OP_vkMapMemoryIntoAddressSpaceGOOGLE: {
16830             return "OP_vkMapMemoryIntoAddressSpaceGOOGLE";
16831         }
16832         case OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE: {
16833             return "OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE";
16834         }
16835         case OP_vkBeginCommandBufferAsyncGOOGLE: {
16836             return "OP_vkBeginCommandBufferAsyncGOOGLE";
16837         }
16838         case OP_vkEndCommandBufferAsyncGOOGLE: {
16839             return "OP_vkEndCommandBufferAsyncGOOGLE";
16840         }
16841         case OP_vkResetCommandBufferAsyncGOOGLE: {
16842             return "OP_vkResetCommandBufferAsyncGOOGLE";
16843         }
16844         case OP_vkCommandBufferHostSyncGOOGLE: {
16845             return "OP_vkCommandBufferHostSyncGOOGLE";
16846         }
16847         case OP_vkCreateImageWithRequirementsGOOGLE: {
16848             return "OP_vkCreateImageWithRequirementsGOOGLE";
16849         }
16850         case OP_vkCreateBufferWithRequirementsGOOGLE: {
16851             return "OP_vkCreateBufferWithRequirementsGOOGLE";
16852         }
16853         case OP_vkGetMemoryHostAddressInfoGOOGLE: {
16854             return "OP_vkGetMemoryHostAddressInfoGOOGLE";
16855         }
16856         case OP_vkFreeMemorySyncGOOGLE: {
16857             return "OP_vkFreeMemorySyncGOOGLE";
16858         }
16859         case OP_vkQueueHostSyncGOOGLE: {
16860             return "OP_vkQueueHostSyncGOOGLE";
16861         }
16862         case OP_vkQueueSubmitAsyncGOOGLE: {
16863             return "OP_vkQueueSubmitAsyncGOOGLE";
16864         }
16865         case OP_vkQueueWaitIdleAsyncGOOGLE: {
16866             return "OP_vkQueueWaitIdleAsyncGOOGLE";
16867         }
16868         case OP_vkQueueBindSparseAsyncGOOGLE: {
16869             return "OP_vkQueueBindSparseAsyncGOOGLE";
16870         }
16871         case OP_vkGetLinearImageLayoutGOOGLE: {
16872             return "OP_vkGetLinearImageLayoutGOOGLE";
16873         }
16874         case OP_vkQueueFlushCommandsGOOGLE: {
16875             return "OP_vkQueueFlushCommandsGOOGLE";
16876         }
16877         case OP_vkGetBlobGOOGLE: {
16878             return "OP_vkGetBlobGOOGLE";
16879         }
16880         case OP_vkGetSemaphoreGOOGLE: {
16881             return "OP_vkGetSemaphoreGOOGLE";
16882         }
16883 #endif
16884 #ifdef VK_KHR_dynamic_rendering
16885         case OP_vkCmdEndRenderingKHR: {
16886             return "OP_vkCmdEndRenderingKHR";
16887         }
16888 #endif
16889 #ifdef VK_KHR_synchronization2
16890         case OP_vkCmdPipelineBarrier2KHR: {
16891             return "OP_vkCmdPipelineBarrier2KHR";
16892         }
16893 #endif
16894 #ifdef VK_KHR_maintenance4
16895         case OP_vkGetDeviceBufferMemoryRequirementsKHR: {
16896             return "OP_vkGetDeviceBufferMemoryRequirementsKHR";
16897         }
16898 #endif
16899 #ifdef VK_EXT_color_write_enable
16900         case OP_vkCmdSetColorWriteEnableEXT: {
16901             return "OP_vkCmdSetColorWriteEnableEXT";
16902         }
16903 #endif
16904 #ifdef VK_KHR_maintenance5
16905         case OP_vkCmdBindIndexBuffer2KHR: {
16906             return "OP_vkCmdBindIndexBuffer2KHR";
16907         }
16908 #endif
16909 #ifdef VK_EXT_extended_dynamic_state
16910         case OP_vkCmdSetScissorWithCountEXT: {
16911             return "OP_vkCmdSetScissorWithCountEXT";
16912         }
16913 #endif
16914 #ifdef VK_EXT_host_image_copy
16915         case OP_vkCopyImageToMemoryEXT: {
16916             return "OP_vkCopyImageToMemoryEXT";
16917         }
16918 #endif
16919 #ifdef VK_EXT_extended_dynamic_state2
16920         case OP_vkCmdSetPatchControlPointsEXT: {
16921             return "OP_vkCmdSetPatchControlPointsEXT";
16922         }
16923 #endif
16924 #ifdef VK_EXT_private_data
16925         case OP_vkDestroyPrivateDataSlotEXT: {
16926             return "OP_vkDestroyPrivateDataSlotEXT";
16927         }
16928 #endif
16929 #ifdef VK_VERSION_1_3
16930         case OP_vkCmdSetDepthTestEnable: {
16931             return "OP_vkCmdSetDepthTestEnable";
16932         }
16933 #endif
16934 #ifdef VK_EXT_extended_dynamic_state
16935         case OP_vkCmdSetFrontFaceEXT: {
16936             return "OP_vkCmdSetFrontFaceEXT";
16937         }
16938 #endif
16939 #ifdef VK_GOOGLE_gfxstream
16940         case OP_vkCollectDescriptorPoolIdsGOOGLE: {
16941             return "OP_vkCollectDescriptorPoolIdsGOOGLE";
16942         }
16943 #endif
16944 #ifdef VK_VERSION_1_3
16945         case OP_vkCmdCopyImageToBuffer2: {
16946             return "OP_vkCmdCopyImageToBuffer2";
16947         }
16948 #endif
16949 #ifdef VK_EXT_extended_dynamic_state
16950         case OP_vkCmdSetDepthWriteEnableEXT: {
16951             return "OP_vkCmdSetDepthWriteEnableEXT";
16952         }
16953 #endif
16954 #ifdef VK_EXT_host_image_copy
16955         case OP_vkCopyMemoryToImageEXT: {
16956             return "OP_vkCopyMemoryToImageEXT";
16957         }
16958 #endif
16959 #ifdef VK_KHR_buffer_device_address
16960         case OP_vkGetBufferDeviceAddressKHR: {
16961             return "OP_vkGetBufferDeviceAddressKHR";
16962         }
16963 #endif
16964 #ifdef VK_VERSION_1_3
16965         case OP_vkCmdSetDepthBoundsTestEnable: {
16966             return "OP_vkCmdSetDepthBoundsTestEnable";
16967         }
16968 #endif
16969 #ifdef VK_KHR_line_rasterization
16970         case OP_vkCmdSetLineStippleKHR: {
16971             return "OP_vkCmdSetLineStippleKHR";
16972         }
16973 #endif
16974 #ifdef VK_VERSION_1_3
16975         case OP_vkCmdSetScissorWithCount: {
16976             return "OP_vkCmdSetScissorWithCount";
16977         }
16978         case OP_vkCmdEndRendering: {
16979             return "OP_vkCmdEndRendering";
16980         }
16981 #endif
16982 #ifdef VK_VERSION_1_2
16983         case OP_vkCmdEndRenderPass2: {
16984             return "OP_vkCmdEndRenderPass2";
16985         }
16986         case OP_vkGetBufferDeviceAddress: {
16987             return "OP_vkGetBufferDeviceAddress";
16988         }
16989 #endif
16990 #ifdef VK_VERSION_1_3
16991         case OP_vkCmdSetFrontFace: {
16992             return "OP_vkCmdSetFrontFace";
16993         }
16994 #endif
16995 #ifdef VK_EXT_extended_dynamic_state
16996         case OP_vkCmdSetDepthBoundsTestEnableEXT: {
16997             return "OP_vkCmdSetDepthBoundsTestEnableEXT";
16998         }
16999 #endif
17000 #ifdef VK_EXT_host_image_copy
17001         case OP_vkCopyImageToImageEXT: {
17002             return "OP_vkCopyImageToImageEXT";
17003         }
17004 #endif
17005 #ifdef VK_VERSION_1_3
17006         case OP_vkDestroyPrivateDataSlot: {
17007             return "OP_vkDestroyPrivateDataSlot";
17008         }
17009         case OP_vkCmdSetCullMode: {
17010             return "OP_vkCmdSetCullMode";
17011         }
17012 #endif
17013 #ifdef VK_KHR_synchronization2
17014         case OP_vkCmdWriteBufferMarker2AMD: {
17015             return "OP_vkCmdWriteBufferMarker2AMD";
17016         }
17017 #endif
17018 #ifdef VK_VERSION_1_2
17019         case OP_vkWaitSemaphores: {
17020             return "OP_vkWaitSemaphores";
17021         }
17022 #endif
17023 #ifdef VK_EXT_private_data
17024         case OP_vkSetPrivateDataEXT: {
17025             return "OP_vkSetPrivateDataEXT";
17026         }
17027 #endif
17028 #ifdef VK_KHR_copy_commands2
17029         case OP_vkCmdCopyImage2KHR: {
17030             return "OP_vkCmdCopyImage2KHR";
17031         }
17032 #endif
17033 #ifdef VK_VERSION_1_2
17034         case OP_vkGetBufferOpaqueCaptureAddress: {
17035             return "OP_vkGetBufferOpaqueCaptureAddress";
17036         }
17037 #endif
17038 #ifdef VK_VERSION_1_3
17039         case OP_vkCmdSetPrimitiveRestartEnable: {
17040             return "OP_vkCmdSetPrimitiveRestartEnable";
17041         }
17042         case OP_vkCmdSetEvent2: {
17043             return "OP_vkCmdSetEvent2";
17044         }
17045         case OP_vkGetDeviceImageSparseMemoryRequirements: {
17046             return "OP_vkGetDeviceImageSparseMemoryRequirements";
17047         }
17048 #endif
17049 #ifdef VK_EXT_extended_dynamic_state
17050         case OP_vkCmdSetDepthTestEnableEXT: {
17051             return "OP_vkCmdSetDepthTestEnableEXT";
17052         }
17053 #endif
17054 #ifdef VK_VERSION_1_2
17055         case OP_vkCmdBeginRenderPass2: {
17056             return "OP_vkCmdBeginRenderPass2";
17057         }
17058 #endif
17059 #ifdef VK_VERSION_1_3
17060         case OP_vkCmdSetStencilOp: {
17061             return "OP_vkCmdSetStencilOp";
17062         }
17063 #endif
17064 #ifdef VK_EXT_private_data
17065         case OP_vkCreatePrivateDataSlotEXT: {
17066             return "OP_vkCreatePrivateDataSlotEXT";
17067         }
17068 #endif
17069 #ifdef VK_VERSION_1_3
17070         case OP_vkCmdCopyBuffer2: {
17071             return "OP_vkCmdCopyBuffer2";
17072         }
17073         case OP_vkGetPrivateData: {
17074             return "OP_vkGetPrivateData";
17075         }
17076 #endif
17077 #ifdef VK_KHR_maintenance5
17078         case OP_vkGetRenderingAreaGranularityKHR: {
17079             return "OP_vkGetRenderingAreaGranularityKHR";
17080         }
17081 #endif
17082 #ifdef VK_VERSION_1_3
17083         case OP_vkCmdSetDepthWriteEnable: {
17084             return "OP_vkCmdSetDepthWriteEnable";
17085         }
17086         case OP_vkSetPrivateData: {
17087             return "OP_vkSetPrivateData";
17088         }
17089 #endif
17090 #ifdef VK_EXT_host_image_copy
17091         case OP_vkTransitionImageLayoutEXT: {
17092             return "OP_vkTransitionImageLayoutEXT";
17093         }
17094 #endif
17095 #ifdef VK_KHR_maintenance4
17096         case OP_vkGetDeviceImageMemoryRequirementsKHR: {
17097             return "OP_vkGetDeviceImageMemoryRequirementsKHR";
17098         }
17099 #endif
17100 #ifdef VK_KHR_maintenance5
17101         case OP_vkGetImageSubresourceLayout2KHR: {
17102             return "OP_vkGetImageSubresourceLayout2KHR";
17103         }
17104 #endif
17105 #ifdef VK_EXT_extended_dynamic_state
17106         case OP_vkCmdBindVertexBuffers2EXT: {
17107             return "OP_vkCmdBindVertexBuffers2EXT";
17108         }
17109 #endif
17110 #ifdef VK_GOOGLE_gfxstream
17111         case OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE: {
17112             return "OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE";
17113         }
17114 #endif
17115 #ifdef VK_VERSION_1_3
17116         case OP_vkCmdWaitEvents2: {
17117             return "OP_vkCmdWaitEvents2";
17118         }
17119 #endif
17120 #ifdef VK_GOOGLE_gfxstream
17121         case OP_vkUpdateDescriptorSetWithTemplateSized2GOOGLE: {
17122             return "OP_vkUpdateDescriptorSetWithTemplateSized2GOOGLE";
17123         }
17124 #endif
17125 #ifdef VK_VERSION_1_2
17126         case OP_vkCmdNextSubpass2: {
17127             return "OP_vkCmdNextSubpass2";
17128         }
17129 #endif
17130 #ifdef VK_KHR_synchronization2
17131         case OP_vkCmdWaitEvents2KHR: {
17132             return "OP_vkCmdWaitEvents2KHR";
17133         }
17134 #endif
17135 #ifdef VK_VERSION_1_2
17136         case OP_vkCmdDrawIndexedIndirectCount: {
17137             return "OP_vkCmdDrawIndexedIndirectCount";
17138         }
17139 #endif
17140 #ifdef VK_EXT_extended_dynamic_state2
17141         case OP_vkCmdSetRasterizerDiscardEnableEXT: {
17142             return "OP_vkCmdSetRasterizerDiscardEnableEXT";
17143         }
17144 #endif
17145 #ifdef VK_VERSION_1_3
17146         case OP_vkCmdSetDepthCompareOp: {
17147             return "OP_vkCmdSetDepthCompareOp";
17148         }
17149         case OP_vkCmdWriteTimestamp2: {
17150             return "OP_vkCmdWriteTimestamp2";
17151         }
17152         case OP_vkCmdCopyImage2: {
17153             return "OP_vkCmdCopyImage2";
17154         }
17155 #endif
17156 #ifdef VK_EXT_extended_dynamic_state
17157         case OP_vkCmdSetDepthCompareOpEXT: {
17158             return "OP_vkCmdSetDepthCompareOpEXT";
17159         }
17160 #endif
17161 #ifdef VK_KHR_copy_commands2
17162         case OP_vkCmdCopyBuffer2KHR: {
17163             return "OP_vkCmdCopyBuffer2KHR";
17164         }
17165         case OP_vkCmdCopyBufferToImage2KHR: {
17166             return "OP_vkCmdCopyBufferToImage2KHR";
17167         }
17168 #endif
17169 #ifdef VK_EXT_image_drm_format_modifier
17170         case OP_vkGetImageDrmFormatModifierPropertiesEXT: {
17171             return "OP_vkGetImageDrmFormatModifierPropertiesEXT";
17172         }
17173 #endif
17174 #ifdef VK_VERSION_1_2
17175         case OP_vkResetQueryPool: {
17176             return "OP_vkResetQueryPool";
17177         }
17178 #endif
17179 #ifdef VK_KHR_copy_commands2
17180         case OP_vkCmdCopyImageToBuffer2KHR: {
17181             return "OP_vkCmdCopyImageToBuffer2KHR";
17182         }
17183 #endif
17184 #ifdef VK_KHR_synchronization2
17185         case OP_vkCmdWriteTimestamp2KHR: {
17186             return "OP_vkCmdWriteTimestamp2KHR";
17187         }
17188 #endif
17189 #ifdef VK_KHR_maintenance5
17190         case OP_vkGetDeviceImageSubresourceLayoutKHR: {
17191             return "OP_vkGetDeviceImageSubresourceLayoutKHR";
17192         }
17193 #endif
17194 #ifdef VK_KHR_copy_commands2
17195         case OP_vkCmdResolveImage2KHR: {
17196             return "OP_vkCmdResolveImage2KHR";
17197         }
17198 #endif
17199 #ifdef VK_EXT_extended_dynamic_state
17200         case OP_vkCmdSetViewportWithCountEXT: {
17201             return "OP_vkCmdSetViewportWithCountEXT";
17202         }
17203 #endif
17204 #ifdef VK_VERSION_1_3
17205         case OP_vkCmdBindVertexBuffers2: {
17206             return "OP_vkCmdBindVertexBuffers2";
17207         }
17208 #endif
17209 #ifdef VK_EXT_extended_dynamic_state2
17210         case OP_vkCmdSetDepthBiasEnableEXT: {
17211             return "OP_vkCmdSetDepthBiasEnableEXT";
17212         }
17213 #endif
17214 #ifdef VK_KHR_copy_commands2
17215         case OP_vkCmdBlitImage2KHR: {
17216             return "OP_vkCmdBlitImage2KHR";
17217         }
17218 #endif
17219 #ifdef VK_VERSION_1_2
17220         case OP_vkGetDeviceMemoryOpaqueCaptureAddress: {
17221             return "OP_vkGetDeviceMemoryOpaqueCaptureAddress";
17222         }
17223 #endif
17224 #ifdef VK_EXT_extended_dynamic_state
17225         case OP_vkCmdSetPrimitiveTopologyEXT: {
17226             return "OP_vkCmdSetPrimitiveTopologyEXT";
17227         }
17228 #endif
17229 #ifdef VK_VERSION_1_3
17230         case OP_vkCreatePrivateDataSlot: {
17231             return "OP_vkCreatePrivateDataSlot";
17232         }
17233         case OP_vkCmdSetPrimitiveTopology: {
17234             return "OP_vkCmdSetPrimitiveTopology";
17235         }
17236 #endif
17237 #ifdef VK_EXT_line_rasterization
17238         case OP_vkCmdSetLineStippleEXT: {
17239             return "OP_vkCmdSetLineStippleEXT";
17240         }
17241 #endif
17242 #ifdef VK_EXT_extended_dynamic_state
17243         case OP_vkCmdSetCullModeEXT: {
17244             return "OP_vkCmdSetCullModeEXT";
17245         }
17246 #endif
17247 #ifdef VK_VERSION_1_2
17248         case OP_vkGetSemaphoreCounterValue: {
17249             return "OP_vkGetSemaphoreCounterValue";
17250         }
17251 #endif
17252 #ifdef VK_VERSION_1_3
17253         case OP_vkCmdSetDepthBiasEnable: {
17254             return "OP_vkCmdSetDepthBiasEnable";
17255         }
17256         case OP_vkCmdSetViewportWithCount: {
17257             return "OP_vkCmdSetViewportWithCount";
17258         }
17259 #endif
17260 #ifdef VK_EXT_extended_dynamic_state2
17261         case OP_vkCmdSetLogicOpEXT: {
17262             return "OP_vkCmdSetLogicOpEXT";
17263         }
17264 #endif
17265 #ifdef VK_EXT_transform_feedback
17266         case OP_vkCmdBindTransformFeedbackBuffersEXT: {
17267             return "OP_vkCmdBindTransformFeedbackBuffersEXT";
17268         }
17269 #endif
17270 #ifdef VK_GOOGLE_gfxstream
17271         case OP_vkQueueCommitDescriptorSetUpdatesGOOGLE: {
17272             return "OP_vkQueueCommitDescriptorSetUpdatesGOOGLE";
17273         }
17274 #endif
17275 #ifdef VK_VERSION_1_3
17276         case OP_vkCmdCopyBufferToImage2: {
17277             return "OP_vkCmdCopyBufferToImage2";
17278         }
17279 #endif
17280 #ifdef VK_KHR_pipeline_executable_properties
17281         case OP_vkGetPipelineExecutablePropertiesKHR: {
17282             return "OP_vkGetPipelineExecutablePropertiesKHR";
17283         }
17284 #endif
17285 #ifdef VK_KHR_synchronization2
17286         case OP_vkCmdSetEvent2KHR: {
17287             return "OP_vkCmdSetEvent2KHR";
17288         }
17289 #endif
17290 #ifdef VK_VERSION_1_2
17291         case OP_vkSignalSemaphore: {
17292             return "OP_vkSignalSemaphore";
17293         }
17294 #endif
17295 #ifdef VK_KHR_pipeline_executable_properties
17296         case OP_vkGetPipelineExecutableStatisticsKHR: {
17297             return "OP_vkGetPipelineExecutableStatisticsKHR";
17298         }
17299 #endif
17300 #ifdef VK_VERSION_1_3
17301         case OP_vkCmdResetEvent2: {
17302             return "OP_vkCmdResetEvent2";
17303         }
17304 #endif
17305 #ifdef VK_EXT_transform_feedback
17306         case OP_vkCmdEndTransformFeedbackEXT: {
17307             return "OP_vkCmdEndTransformFeedbackEXT";
17308         }
17309 #endif
17310 #ifdef VK_KHR_pipeline_executable_properties
17311         case OP_vkGetPipelineExecutableInternalRepresentationsKHR: {
17312             return "OP_vkGetPipelineExecutableInternalRepresentationsKHR";
17313         }
17314 #endif
17315 #ifdef VK_VERSION_1_3
17316         case OP_vkCmdBlitImage2: {
17317             return "OP_vkCmdBlitImage2";
17318         }
17319         case OP_vkQueueSubmit2: {
17320             return "OP_vkQueueSubmit2";
17321         }
17322 #endif
17323 #ifdef VK_KHR_maintenance4
17324         case OP_vkGetDeviceImageSparseMemoryRequirementsKHR: {
17325             return "OP_vkGetDeviceImageSparseMemoryRequirementsKHR";
17326         }
17327 #endif
17328 #ifdef VK_EXT_transform_feedback
17329         case OP_vkCmdBeginQueryIndexedEXT: {
17330             return "OP_vkCmdBeginQueryIndexedEXT";
17331         }
17332 #endif
17333 #ifdef VK_VERSION_1_3
17334         case OP_vkCmdSetRasterizerDiscardEnable: {
17335             return "OP_vkCmdSetRasterizerDiscardEnable";
17336         }
17337 #endif
17338 #ifdef VK_EXT_extended_dynamic_state
17339         case OP_vkCmdSetStencilOpEXT: {
17340             return "OP_vkCmdSetStencilOpEXT";
17341         }
17342 #endif
17343 #ifdef VK_VERSION_1_2
17344         case OP_vkCreateRenderPass2: {
17345             return "OP_vkCreateRenderPass2";
17346         }
17347 #endif
17348 #ifdef VK_EXT_transform_feedback
17349         case OP_vkCmdEndQueryIndexedEXT: {
17350             return "OP_vkCmdEndQueryIndexedEXT";
17351         }
17352 #endif
17353 #ifdef VK_EXT_tooling_info
17354         case OP_vkGetPhysicalDeviceToolPropertiesEXT: {
17355             return "OP_vkGetPhysicalDeviceToolPropertiesEXT";
17356         }
17357 #endif
17358 #ifdef VK_GOOGLE_gfxstream
17359         case OP_vkGetLinearImageLayout2GOOGLE: {
17360             return "OP_vkGetLinearImageLayout2GOOGLE";
17361         }
17362 #endif
17363 #ifdef VK_VERSION_1_3
17364         case OP_vkCmdResolveImage2: {
17365             return "OP_vkCmdResolveImage2";
17366         }
17367         case OP_vkGetDeviceImageMemoryRequirements: {
17368             return "OP_vkGetDeviceImageMemoryRequirements";
17369         }
17370 #endif
17371 #ifdef VK_VERSION_1_2
17372         case OP_vkCmdDrawIndirectCount: {
17373             return "OP_vkCmdDrawIndirectCount";
17374         }
17375 #endif
17376 #ifdef VK_KHR_synchronization2
17377         case OP_vkCmdResetEvent2KHR: {
17378             return "OP_vkCmdResetEvent2KHR";
17379         }
17380 #endif
17381 #ifdef VK_EXT_transform_feedback
17382         case OP_vkCmdDrawIndirectByteCountEXT: {
17383             return "OP_vkCmdDrawIndirectByteCountEXT";
17384         }
17385 #endif
17386 #ifdef VK_KHR_buffer_device_address
17387         case OP_vkGetBufferOpaqueCaptureAddressKHR: {
17388             return "OP_vkGetBufferOpaqueCaptureAddressKHR";
17389         }
17390 #endif
17391 #ifdef VK_EXT_extended_dynamic_state
17392         case OP_vkCmdSetStencilTestEnableEXT: {
17393             return "OP_vkCmdSetStencilTestEnableEXT";
17394         }
17395 #endif
17396 #ifdef VK_VERSION_1_3
17397         case OP_vkCmdSetStencilTestEnable: {
17398             return "OP_vkCmdSetStencilTestEnable";
17399         }
17400         case OP_vkGetPhysicalDeviceToolProperties: {
17401             return "OP_vkGetPhysicalDeviceToolProperties";
17402         }
17403 #endif
17404 #ifdef VK_ANDROID_native_buffer
17405         case OP_vkGetSwapchainGrallocUsage2ANDROID: {
17406             return "OP_vkGetSwapchainGrallocUsage2ANDROID";
17407         }
17408 #endif
17409 #ifdef VK_GOOGLE_gfxstream
17410         case OP_vkQueueFlushCommandsFromAuxMemoryGOOGLE: {
17411             return "OP_vkQueueFlushCommandsFromAuxMemoryGOOGLE";
17412         }
17413 #endif
17414 #ifdef VK_EXT_private_data
17415         case OP_vkGetPrivateDataEXT: {
17416             return "OP_vkGetPrivateDataEXT";
17417         }
17418 #endif
17419 #ifdef VK_KHR_synchronization2
17420         case OP_vkGetQueueCheckpointData2NV: {
17421             return "OP_vkGetQueueCheckpointData2NV";
17422         }
17423 #endif
17424 #ifdef VK_GOOGLE_gfxstream
17425         case OP_vkQueueSubmitAsync2GOOGLE: {
17426             return "OP_vkQueueSubmitAsync2GOOGLE";
17427         }
17428 #endif
17429 #ifdef VK_KHR_synchronization2
17430         case OP_vkQueueSubmit2KHR: {
17431             return "OP_vkQueueSubmit2KHR";
17432         }
17433 #endif
17434 #ifdef VK_VERSION_1_3
17435         case OP_vkGetDeviceBufferMemoryRequirements: {
17436             return "OP_vkGetDeviceBufferMemoryRequirements";
17437         }
17438 #endif
17439 #ifdef VK_EXT_transform_feedback
17440         case OP_vkCmdBeginTransformFeedbackEXT: {
17441             return "OP_vkCmdBeginTransformFeedbackEXT";
17442         }
17443 #endif
17444 #ifdef VK_VERSION_1_3
17445         case OP_vkCmdBeginRendering: {
17446             return "OP_vkCmdBeginRendering";
17447         }
17448 #endif
17449 #ifdef VK_KHR_buffer_device_address
17450         case OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR: {
17451             return "OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR";
17452         }
17453 #endif
17454 #ifdef VK_EXT_host_image_copy
17455         case OP_vkGetImageSubresourceLayout2EXT: {
17456             return "OP_vkGetImageSubresourceLayout2EXT";
17457         }
17458 #endif
17459 #ifdef VK_VERSION_1_3
17460         case OP_vkCmdPipelineBarrier2: {
17461             return "OP_vkCmdPipelineBarrier2";
17462         }
17463 #endif
17464 #ifdef VK_KHR_dynamic_rendering
17465         case OP_vkCmdBeginRenderingKHR: {
17466             return "OP_vkCmdBeginRenderingKHR";
17467         }
17468 #endif
17469 #ifdef VK_EXT_extended_dynamic_state2
17470         case OP_vkCmdSetPrimitiveRestartEnableEXT: {
17471             return "OP_vkCmdSetPrimitiveRestartEnableEXT";
17472         }
17473 #endif
17474         default: {
17475             return "OP_UNKNOWN_API_CALL";
17476         }
17477     }
17478 }
17479 
17480 }  // namespace vk
17481 }  // namespace gfxstream
17482