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_reserved_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_reserved_marshaling_guest.h"
33 
34 #include <cstring>
35 
36 #include "Resources.h"
37 #include "goldfish_vk_extension_structs_guest.h"
38 #include "goldfish_vk_private_defs.h"
39 
40 namespace gfxstream {
41 namespace vk {
42 
43 void reservedmarshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
44                                       const void* structExtension, uint8_t** ptr);
45 
46 void reservedunmarshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
47                                         void* structExtension_out, uint8_t** ptr);
48 
49 #ifdef VK_VERSION_1_0
reservedmarshal_VkExtent2D(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExtent2D * forMarshaling,uint8_t ** ptr)50 void reservedmarshal_VkExtent2D(VulkanStreamGuest* vkStream, VkStructureType rootType,
51                                 const VkExtent2D* forMarshaling, uint8_t** ptr) {
52     (void)vkStream;
53     (void)rootType;
54     memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
55     *ptr += sizeof(uint32_t);
56     memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
57     *ptr += sizeof(uint32_t);
58 }
59 
reservedmarshal_VkExtent3D(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExtent3D * forMarshaling,uint8_t ** ptr)60 void reservedmarshal_VkExtent3D(VulkanStreamGuest* vkStream, VkStructureType rootType,
61                                 const VkExtent3D* forMarshaling, uint8_t** ptr) {
62     (void)vkStream;
63     (void)rootType;
64     memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
65     *ptr += sizeof(uint32_t);
66     memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
67     *ptr += sizeof(uint32_t);
68     memcpy(*ptr, (uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
69     *ptr += sizeof(uint32_t);
70 }
71 
reservedmarshal_VkOffset2D(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkOffset2D * forMarshaling,uint8_t ** ptr)72 void reservedmarshal_VkOffset2D(VulkanStreamGuest* vkStream, VkStructureType rootType,
73                                 const VkOffset2D* forMarshaling, uint8_t** ptr) {
74     (void)vkStream;
75     (void)rootType;
76     memcpy(*ptr, (int32_t*)&forMarshaling->x, sizeof(int32_t));
77     *ptr += sizeof(int32_t);
78     memcpy(*ptr, (int32_t*)&forMarshaling->y, sizeof(int32_t));
79     *ptr += sizeof(int32_t);
80 }
81 
reservedmarshal_VkOffset3D(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkOffset3D * forMarshaling,uint8_t ** ptr)82 void reservedmarshal_VkOffset3D(VulkanStreamGuest* vkStream, VkStructureType rootType,
83                                 const VkOffset3D* forMarshaling, uint8_t** ptr) {
84     (void)vkStream;
85     (void)rootType;
86     memcpy(*ptr, (int32_t*)&forMarshaling->x, sizeof(int32_t));
87     *ptr += sizeof(int32_t);
88     memcpy(*ptr, (int32_t*)&forMarshaling->y, sizeof(int32_t));
89     *ptr += sizeof(int32_t);
90     memcpy(*ptr, (int32_t*)&forMarshaling->z, sizeof(int32_t));
91     *ptr += sizeof(int32_t);
92 }
93 
reservedmarshal_VkRect2D(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRect2D * forMarshaling,uint8_t ** ptr)94 void reservedmarshal_VkRect2D(VulkanStreamGuest* vkStream, VkStructureType rootType,
95                               const VkRect2D* forMarshaling, uint8_t** ptr) {
96     (void)vkStream;
97     (void)rootType;
98     reservedmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->offset), ptr);
99     reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->extent), ptr);
100 }
101 
reservedmarshal_VkBaseInStructure(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBaseInStructure * forMarshaling,uint8_t ** ptr)102 void reservedmarshal_VkBaseInStructure(VulkanStreamGuest* vkStream, VkStructureType rootType,
103                                        const VkBaseInStructure* forMarshaling, uint8_t** ptr) {
104     (void)vkStream;
105     (void)rootType;
106     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
107     *ptr += sizeof(VkStructureType);
108     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
109         rootType = forMarshaling->sType;
110     }
111     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
112 }
113 
reservedmarshal_VkBaseOutStructure(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBaseOutStructure * forMarshaling,uint8_t ** ptr)114 void reservedmarshal_VkBaseOutStructure(VulkanStreamGuest* vkStream, VkStructureType rootType,
115                                         const VkBaseOutStructure* forMarshaling, uint8_t** ptr) {
116     (void)vkStream;
117     (void)rootType;
118     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
119     *ptr += sizeof(VkStructureType);
120     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
121         rootType = forMarshaling->sType;
122     }
123     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
124 }
125 
reservedmarshal_VkBufferMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferMemoryBarrier * forMarshaling,uint8_t ** ptr)126 void reservedmarshal_VkBufferMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
127                                            const VkBufferMemoryBarrier* forMarshaling,
128                                            uint8_t** ptr) {
129     (void)vkStream;
130     (void)rootType;
131     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
132     *ptr += sizeof(VkStructureType);
133     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
134         rootType = forMarshaling->sType;
135     }
136     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
137     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
138     *ptr += sizeof(VkAccessFlags);
139     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
140     *ptr += sizeof(VkAccessFlags);
141     memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
142     *ptr += sizeof(uint32_t);
143     memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
144     *ptr += sizeof(uint32_t);
145     uint64_t cgen_var_0;
146     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
147     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
148     *ptr += 1 * 8;
149     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
150     *ptr += sizeof(VkDeviceSize);
151     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
152     *ptr += sizeof(VkDeviceSize);
153 }
154 
reservedmarshal_VkDispatchIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDispatchIndirectCommand * forMarshaling,uint8_t ** ptr)155 void reservedmarshal_VkDispatchIndirectCommand(VulkanStreamGuest* vkStream,
156                                                VkStructureType rootType,
157                                                const VkDispatchIndirectCommand* forMarshaling,
158                                                uint8_t** ptr) {
159     (void)vkStream;
160     (void)rootType;
161     memcpy(*ptr, (uint32_t*)&forMarshaling->x, sizeof(uint32_t));
162     *ptr += sizeof(uint32_t);
163     memcpy(*ptr, (uint32_t*)&forMarshaling->y, sizeof(uint32_t));
164     *ptr += sizeof(uint32_t);
165     memcpy(*ptr, (uint32_t*)&forMarshaling->z, sizeof(uint32_t));
166     *ptr += sizeof(uint32_t);
167 }
168 
reservedmarshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrawIndexedIndirectCommand * forMarshaling,uint8_t ** ptr)169 void reservedmarshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest* vkStream,
170                                                   VkStructureType rootType,
171                                                   const VkDrawIndexedIndirectCommand* forMarshaling,
172                                                   uint8_t** ptr) {
173     (void)vkStream;
174     (void)rootType;
175     memcpy(*ptr, (uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
176     *ptr += sizeof(uint32_t);
177     memcpy(*ptr, (uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
178     *ptr += sizeof(uint32_t);
179     memcpy(*ptr, (uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
180     *ptr += sizeof(uint32_t);
181     memcpy(*ptr, (int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
182     *ptr += sizeof(int32_t);
183     memcpy(*ptr, (uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
184     *ptr += sizeof(uint32_t);
185 }
186 
reservedmarshal_VkDrawIndirectCommand(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrawIndirectCommand * forMarshaling,uint8_t ** ptr)187 void reservedmarshal_VkDrawIndirectCommand(VulkanStreamGuest* vkStream, VkStructureType rootType,
188                                            const VkDrawIndirectCommand* forMarshaling,
189                                            uint8_t** ptr) {
190     (void)vkStream;
191     (void)rootType;
192     memcpy(*ptr, (uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
193     *ptr += sizeof(uint32_t);
194     memcpy(*ptr, (uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
195     *ptr += sizeof(uint32_t);
196     memcpy(*ptr, (uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
197     *ptr += sizeof(uint32_t);
198     memcpy(*ptr, (uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
199     *ptr += sizeof(uint32_t);
200 }
201 
reservedmarshal_VkImageSubresourceRange(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresourceRange * forMarshaling,uint8_t ** ptr)202 void reservedmarshal_VkImageSubresourceRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
203                                              const VkImageSubresourceRange* forMarshaling,
204                                              uint8_t** ptr) {
205     (void)vkStream;
206     (void)rootType;
207     memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
208     *ptr += sizeof(VkImageAspectFlags);
209     memcpy(*ptr, (uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
210     *ptr += sizeof(uint32_t);
211     memcpy(*ptr, (uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
212     *ptr += sizeof(uint32_t);
213     memcpy(*ptr, (uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
214     *ptr += sizeof(uint32_t);
215     memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
216     *ptr += sizeof(uint32_t);
217 }
218 
reservedmarshal_VkImageMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageMemoryBarrier * forMarshaling,uint8_t ** ptr)219 void reservedmarshal_VkImageMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
220                                           const VkImageMemoryBarrier* forMarshaling,
221                                           uint8_t** ptr) {
222     (void)vkStream;
223     (void)rootType;
224     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
225     *ptr += sizeof(VkStructureType);
226     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
227         rootType = forMarshaling->sType;
228     }
229     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
230     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
231     *ptr += sizeof(VkAccessFlags);
232     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
233     *ptr += sizeof(VkAccessFlags);
234     memcpy(*ptr, (VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
235     *ptr += sizeof(VkImageLayout);
236     memcpy(*ptr, (VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
237     *ptr += sizeof(VkImageLayout);
238     memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
239     *ptr += sizeof(uint32_t);
240     memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
241     *ptr += sizeof(uint32_t);
242     uint64_t cgen_var_0;
243     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
244     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
245     *ptr += 1 * 8;
246     reservedmarshal_VkImageSubresourceRange(
247         vkStream, rootType, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange), ptr);
248 }
249 
reservedmarshal_VkMemoryBarrier(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryBarrier * forMarshaling,uint8_t ** ptr)250 void reservedmarshal_VkMemoryBarrier(VulkanStreamGuest* vkStream, VkStructureType rootType,
251                                      const VkMemoryBarrier* forMarshaling, uint8_t** ptr) {
252     (void)vkStream;
253     (void)rootType;
254     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
255     *ptr += sizeof(VkStructureType);
256     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
257         rootType = forMarshaling->sType;
258     }
259     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
260     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
261     *ptr += sizeof(VkAccessFlags);
262     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
263     *ptr += sizeof(VkAccessFlags);
264 }
265 
reservedmarshal_VkPipelineCacheHeaderVersionOne(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCacheHeaderVersionOne * forMarshaling,uint8_t ** ptr)266 void reservedmarshal_VkPipelineCacheHeaderVersionOne(
267     VulkanStreamGuest* vkStream, VkStructureType rootType,
268     const VkPipelineCacheHeaderVersionOne* forMarshaling, uint8_t** ptr) {
269     (void)vkStream;
270     (void)rootType;
271     memcpy(*ptr, (uint32_t*)&forMarshaling->headerSize, sizeof(uint32_t));
272     *ptr += sizeof(uint32_t);
273     memcpy(*ptr, (VkPipelineCacheHeaderVersion*)&forMarshaling->headerVersion,
274            sizeof(VkPipelineCacheHeaderVersion));
275     *ptr += sizeof(VkPipelineCacheHeaderVersion);
276     memcpy(*ptr, (uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
277     *ptr += sizeof(uint32_t);
278     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
279     *ptr += sizeof(uint32_t);
280     memcpy(*ptr, (uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
281     *ptr += VK_UUID_SIZE * sizeof(uint8_t);
282 }
283 
reservedmarshal_VkAllocationCallbacks(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAllocationCallbacks * forMarshaling,uint8_t ** ptr)284 void reservedmarshal_VkAllocationCallbacks(VulkanStreamGuest* vkStream, VkStructureType rootType,
285                                            const VkAllocationCallbacks* forMarshaling,
286                                            uint8_t** ptr) {
287     (void)vkStream;
288     (void)rootType;
289     // WARNING PTR CHECK
290     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
291     memcpy((*ptr), &cgen_var_0, 8);
292     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
293     *ptr += 8;
294     if (forMarshaling->pUserData) {
295         memcpy(*ptr, (void*)forMarshaling->pUserData, sizeof(uint8_t));
296         *ptr += sizeof(uint8_t);
297     }
298     uint64_t cgen_var_1 = (uint64_t)forMarshaling->pfnAllocation;
299     memcpy((*ptr), &cgen_var_1, 8);
300     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
301     *ptr += 8;
302     uint64_t cgen_var_2 = (uint64_t)forMarshaling->pfnReallocation;
303     memcpy((*ptr), &cgen_var_2, 8);
304     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
305     *ptr += 8;
306     uint64_t cgen_var_3 = (uint64_t)forMarshaling->pfnFree;
307     memcpy((*ptr), &cgen_var_3, 8);
308     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
309     *ptr += 8;
310     uint64_t cgen_var_4 = (uint64_t)forMarshaling->pfnInternalAllocation;
311     memcpy((*ptr), &cgen_var_4, 8);
312     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
313     *ptr += 8;
314     uint64_t cgen_var_5 = (uint64_t)forMarshaling->pfnInternalFree;
315     memcpy((*ptr), &cgen_var_5, 8);
316     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
317     *ptr += 8;
318 }
319 
reservedmarshal_VkApplicationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkApplicationInfo * forMarshaling,uint8_t ** ptr)320 void reservedmarshal_VkApplicationInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
321                                        const VkApplicationInfo* forMarshaling, uint8_t** ptr) {
322     (void)vkStream;
323     (void)rootType;
324     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
325     *ptr += sizeof(VkStructureType);
326     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
327         rootType = forMarshaling->sType;
328     }
329     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
330     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
331         // WARNING PTR CHECK
332         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationName;
333         memcpy((*ptr), &cgen_var_0, 8);
334         gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
335         *ptr += 8;
336         if (forMarshaling->pApplicationName) {
337             {
338                 uint32_t l =
339                     forMarshaling->pApplicationName ? strlen(forMarshaling->pApplicationName) : 0;
340                 memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
341                 gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
342                 *ptr += sizeof(uint32_t);
343                 memcpy(*ptr, (char*)forMarshaling->pApplicationName, l);
344                 *ptr += l;
345             }
346         }
347     } else {
348         {
349             uint32_t l =
350                 forMarshaling->pApplicationName ? strlen(forMarshaling->pApplicationName) : 0;
351             memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
352             gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
353             *ptr += sizeof(uint32_t);
354             memcpy(*ptr, (char*)forMarshaling->pApplicationName, l);
355             *ptr += l;
356         }
357     }
358     memcpy(*ptr, (uint32_t*)&forMarshaling->applicationVersion, sizeof(uint32_t));
359     *ptr += sizeof(uint32_t);
360     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
361         // WARNING PTR CHECK
362         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
363         memcpy((*ptr), &cgen_var_0, 8);
364         gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
365         *ptr += 8;
366         if (forMarshaling->pEngineName) {
367             {
368                 uint32_t l = forMarshaling->pEngineName ? strlen(forMarshaling->pEngineName) : 0;
369                 memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
370                 gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
371                 *ptr += sizeof(uint32_t);
372                 memcpy(*ptr, (char*)forMarshaling->pEngineName, l);
373                 *ptr += l;
374             }
375         }
376     } else {
377         {
378             uint32_t l = forMarshaling->pEngineName ? strlen(forMarshaling->pEngineName) : 0;
379             memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
380             gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
381             *ptr += sizeof(uint32_t);
382             memcpy(*ptr, (char*)forMarshaling->pEngineName, l);
383             *ptr += l;
384         }
385     }
386     memcpy(*ptr, (uint32_t*)&forMarshaling->engineVersion, sizeof(uint32_t));
387     *ptr += sizeof(uint32_t);
388     memcpy(*ptr, (uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
389     *ptr += sizeof(uint32_t);
390 }
391 
reservedmarshal_VkFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFormatProperties * forMarshaling,uint8_t ** ptr)392 void reservedmarshal_VkFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
393                                         const VkFormatProperties* forMarshaling, uint8_t** ptr) {
394     (void)vkStream;
395     (void)rootType;
396     memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures,
397            sizeof(VkFormatFeatureFlags));
398     *ptr += sizeof(VkFormatFeatureFlags);
399     memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures,
400            sizeof(VkFormatFeatureFlags));
401     *ptr += sizeof(VkFormatFeatureFlags);
402     memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->bufferFeatures,
403            sizeof(VkFormatFeatureFlags));
404     *ptr += sizeof(VkFormatFeatureFlags);
405 }
406 
reservedmarshal_VkImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageFormatProperties * forMarshaling,uint8_t ** ptr)407 void reservedmarshal_VkImageFormatProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
408                                              const VkImageFormatProperties* forMarshaling,
409                                              uint8_t** ptr) {
410     (void)vkStream;
411     (void)rootType;
412     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->maxExtent), ptr);
413     memcpy(*ptr, (uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
414     *ptr += sizeof(uint32_t);
415     memcpy(*ptr, (uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
416     *ptr += sizeof(uint32_t);
417     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
418     *ptr += sizeof(VkSampleCountFlags);
419     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
420     *ptr += sizeof(VkDeviceSize);
421 }
422 
reservedmarshal_VkInstanceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkInstanceCreateInfo * forMarshaling,uint8_t ** ptr)423 void reservedmarshal_VkInstanceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
424                                           const VkInstanceCreateInfo* forMarshaling,
425                                           uint8_t** ptr) {
426     (void)vkStream;
427     (void)rootType;
428     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
429     *ptr += sizeof(VkStructureType);
430     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
431         rootType = forMarshaling->sType;
432     }
433     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
434     memcpy(*ptr, (VkInstanceCreateFlags*)&forMarshaling->flags, sizeof(VkInstanceCreateFlags));
435     *ptr += sizeof(VkInstanceCreateFlags);
436     // WARNING PTR CHECK
437     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
438     memcpy((*ptr), &cgen_var_0, 8);
439     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
440     *ptr += 8;
441     if (forMarshaling->pApplicationInfo) {
442         reservedmarshal_VkApplicationInfo(
443             vkStream, rootType, (const VkApplicationInfo*)(forMarshaling->pApplicationInfo), ptr);
444     }
445     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
446     *ptr += sizeof(uint32_t);
447     {
448         uint32_t c = 0;
449         if (forMarshaling) {
450             c = forMarshaling->enabledLayerCount;
451         }
452         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
453         gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
454         *ptr += sizeof(uint32_t);
455         for (uint32_t i = 0; i < c; ++i) {
456             uint32_t l = forMarshaling->ppEnabledLayerNames
457                              ? strlen(forMarshaling->ppEnabledLayerNames[i])
458                              : 0;
459             memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
460             gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
461             *ptr += sizeof(uint32_t);
462             if (l) {
463                 memcpy(*ptr, (char*)(forMarshaling->ppEnabledLayerNames[i]), l);
464                 *ptr += l;
465             }
466         }
467     }
468     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
469     *ptr += sizeof(uint32_t);
470     {
471         uint32_t c = 0;
472         if (forMarshaling) {
473             c = forMarshaling->enabledExtensionCount;
474         }
475         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
476         gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
477         *ptr += sizeof(uint32_t);
478         for (uint32_t i = 0; i < c; ++i) {
479             uint32_t l = forMarshaling->ppEnabledExtensionNames
480                              ? strlen(forMarshaling->ppEnabledExtensionNames[i])
481                              : 0;
482             memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
483             gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
484             *ptr += sizeof(uint32_t);
485             if (l) {
486                 memcpy(*ptr, (char*)(forMarshaling->ppEnabledExtensionNames[i]), l);
487                 *ptr += l;
488             }
489         }
490     }
491 }
492 
reservedmarshal_VkMemoryHeap(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryHeap * forMarshaling,uint8_t ** ptr)493 void reservedmarshal_VkMemoryHeap(VulkanStreamGuest* vkStream, VkStructureType rootType,
494                                   const VkMemoryHeap* forMarshaling, uint8_t** ptr) {
495     (void)vkStream;
496     (void)rootType;
497     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
498     *ptr += sizeof(VkDeviceSize);
499     memcpy(*ptr, (VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
500     *ptr += sizeof(VkMemoryHeapFlags);
501 }
502 
reservedmarshal_VkMemoryType(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryType * forMarshaling,uint8_t ** ptr)503 void reservedmarshal_VkMemoryType(VulkanStreamGuest* vkStream, VkStructureType rootType,
504                                   const VkMemoryType* forMarshaling, uint8_t** ptr) {
505     (void)vkStream;
506     (void)rootType;
507     memcpy(*ptr, (VkMemoryPropertyFlags*)&forMarshaling->propertyFlags,
508            sizeof(VkMemoryPropertyFlags));
509     *ptr += sizeof(VkMemoryPropertyFlags);
510     memcpy(*ptr, (uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
511     *ptr += sizeof(uint32_t);
512 }
513 
reservedmarshal_VkPhysicalDeviceFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFeatures * forMarshaling,uint8_t ** ptr)514 void reservedmarshal_VkPhysicalDeviceFeatures(VulkanStreamGuest* vkStream, VkStructureType rootType,
515                                               const VkPhysicalDeviceFeatures* forMarshaling,
516                                               uint8_t** ptr) {
517     (void)vkStream;
518     (void)rootType;
519     memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccess, sizeof(VkBool32));
520     *ptr += sizeof(VkBool32);
521     memcpy(*ptr, (VkBool32*)&forMarshaling->fullDrawIndexUint32, sizeof(VkBool32));
522     *ptr += sizeof(VkBool32);
523     memcpy(*ptr, (VkBool32*)&forMarshaling->imageCubeArray, sizeof(VkBool32));
524     *ptr += sizeof(VkBool32);
525     memcpy(*ptr, (VkBool32*)&forMarshaling->independentBlend, sizeof(VkBool32));
526     *ptr += sizeof(VkBool32);
527     memcpy(*ptr, (VkBool32*)&forMarshaling->geometryShader, sizeof(VkBool32));
528     *ptr += sizeof(VkBool32);
529     memcpy(*ptr, (VkBool32*)&forMarshaling->tessellationShader, sizeof(VkBool32));
530     *ptr += sizeof(VkBool32);
531     memcpy(*ptr, (VkBool32*)&forMarshaling->sampleRateShading, sizeof(VkBool32));
532     *ptr += sizeof(VkBool32);
533     memcpy(*ptr, (VkBool32*)&forMarshaling->dualSrcBlend, sizeof(VkBool32));
534     *ptr += sizeof(VkBool32);
535     memcpy(*ptr, (VkBool32*)&forMarshaling->logicOp, sizeof(VkBool32));
536     *ptr += sizeof(VkBool32);
537     memcpy(*ptr, (VkBool32*)&forMarshaling->multiDrawIndirect, sizeof(VkBool32));
538     *ptr += sizeof(VkBool32);
539     memcpy(*ptr, (VkBool32*)&forMarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
540     *ptr += sizeof(VkBool32);
541     memcpy(*ptr, (VkBool32*)&forMarshaling->depthClamp, sizeof(VkBool32));
542     *ptr += sizeof(VkBool32);
543     memcpy(*ptr, (VkBool32*)&forMarshaling->depthBiasClamp, sizeof(VkBool32));
544     *ptr += sizeof(VkBool32);
545     memcpy(*ptr, (VkBool32*)&forMarshaling->fillModeNonSolid, sizeof(VkBool32));
546     *ptr += sizeof(VkBool32);
547     memcpy(*ptr, (VkBool32*)&forMarshaling->depthBounds, sizeof(VkBool32));
548     *ptr += sizeof(VkBool32);
549     memcpy(*ptr, (VkBool32*)&forMarshaling->wideLines, sizeof(VkBool32));
550     *ptr += sizeof(VkBool32);
551     memcpy(*ptr, (VkBool32*)&forMarshaling->largePoints, sizeof(VkBool32));
552     *ptr += sizeof(VkBool32);
553     memcpy(*ptr, (VkBool32*)&forMarshaling->alphaToOne, sizeof(VkBool32));
554     *ptr += sizeof(VkBool32);
555     memcpy(*ptr, (VkBool32*)&forMarshaling->multiViewport, sizeof(VkBool32));
556     *ptr += sizeof(VkBool32);
557     memcpy(*ptr, (VkBool32*)&forMarshaling->samplerAnisotropy, sizeof(VkBool32));
558     *ptr += sizeof(VkBool32);
559     memcpy(*ptr, (VkBool32*)&forMarshaling->textureCompressionETC2, sizeof(VkBool32));
560     *ptr += sizeof(VkBool32);
561     memcpy(*ptr, (VkBool32*)&forMarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
562     *ptr += sizeof(VkBool32);
563     memcpy(*ptr, (VkBool32*)&forMarshaling->textureCompressionBC, sizeof(VkBool32));
564     *ptr += sizeof(VkBool32);
565     memcpy(*ptr, (VkBool32*)&forMarshaling->occlusionQueryPrecise, sizeof(VkBool32));
566     *ptr += sizeof(VkBool32);
567     memcpy(*ptr, (VkBool32*)&forMarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
568     *ptr += sizeof(VkBool32);
569     memcpy(*ptr, (VkBool32*)&forMarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
570     *ptr += sizeof(VkBool32);
571     memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
572     *ptr += sizeof(VkBool32);
573     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderTessellationAndGeometryPointSize,
574            sizeof(VkBool32));
575     *ptr += sizeof(VkBool32);
576     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderImageGatherExtended, sizeof(VkBool32));
577     *ptr += sizeof(VkBool32);
578     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageExtendedFormats, sizeof(VkBool32));
579     *ptr += sizeof(VkBool32);
580     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
581     *ptr += sizeof(VkBool32);
582     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageReadWithoutFormat, sizeof(VkBool32));
583     *ptr += sizeof(VkBool32);
584     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageWriteWithoutFormat, sizeof(VkBool32));
585     *ptr += sizeof(VkBool32);
586     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayDynamicIndexing,
587            sizeof(VkBool32));
588     *ptr += sizeof(VkBool32);
589     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayDynamicIndexing,
590            sizeof(VkBool32));
591     *ptr += sizeof(VkBool32);
592     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayDynamicIndexing,
593            sizeof(VkBool32));
594     *ptr += sizeof(VkBool32);
595     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayDynamicIndexing,
596            sizeof(VkBool32));
597     *ptr += sizeof(VkBool32);
598     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderClipDistance, sizeof(VkBool32));
599     *ptr += sizeof(VkBool32);
600     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderCullDistance, sizeof(VkBool32));
601     *ptr += sizeof(VkBool32);
602     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderFloat64, sizeof(VkBool32));
603     *ptr += sizeof(VkBool32);
604     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInt64, sizeof(VkBool32));
605     *ptr += sizeof(VkBool32);
606     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInt16, sizeof(VkBool32));
607     *ptr += sizeof(VkBool32);
608     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderResourceResidency, sizeof(VkBool32));
609     *ptr += sizeof(VkBool32);
610     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderResourceMinLod, sizeof(VkBool32));
611     *ptr += sizeof(VkBool32);
612     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseBinding, sizeof(VkBool32));
613     *ptr += sizeof(VkBool32);
614     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidencyBuffer, sizeof(VkBool32));
615     *ptr += sizeof(VkBool32);
616     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidencyImage2D, sizeof(VkBool32));
617     *ptr += sizeof(VkBool32);
618     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidencyImage3D, sizeof(VkBool32));
619     *ptr += sizeof(VkBool32);
620     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidency2Samples, sizeof(VkBool32));
621     *ptr += sizeof(VkBool32);
622     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidency4Samples, sizeof(VkBool32));
623     *ptr += sizeof(VkBool32);
624     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidency8Samples, sizeof(VkBool32));
625     *ptr += sizeof(VkBool32);
626     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidency16Samples, sizeof(VkBool32));
627     *ptr += sizeof(VkBool32);
628     memcpy(*ptr, (VkBool32*)&forMarshaling->sparseResidencyAliased, sizeof(VkBool32));
629     *ptr += sizeof(VkBool32);
630     memcpy(*ptr, (VkBool32*)&forMarshaling->variableMultisampleRate, sizeof(VkBool32));
631     *ptr += sizeof(VkBool32);
632     memcpy(*ptr, (VkBool32*)&forMarshaling->inheritedQueries, sizeof(VkBool32));
633     *ptr += sizeof(VkBool32);
634 }
635 
reservedmarshal_VkPhysicalDeviceLimits(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLimits * forMarshaling,uint8_t ** ptr)636 void reservedmarshal_VkPhysicalDeviceLimits(VulkanStreamGuest* vkStream, VkStructureType rootType,
637                                             const VkPhysicalDeviceLimits* forMarshaling,
638                                             uint8_t** ptr) {
639     (void)vkStream;
640     (void)rootType;
641     memcpy(*ptr, (uint32_t*)&forMarshaling->maxImageDimension1D, sizeof(uint32_t));
642     *ptr += sizeof(uint32_t);
643     memcpy(*ptr, (uint32_t*)&forMarshaling->maxImageDimension2D, sizeof(uint32_t));
644     *ptr += sizeof(uint32_t);
645     memcpy(*ptr, (uint32_t*)&forMarshaling->maxImageDimension3D, sizeof(uint32_t));
646     *ptr += sizeof(uint32_t);
647     memcpy(*ptr, (uint32_t*)&forMarshaling->maxImageDimensionCube, sizeof(uint32_t));
648     *ptr += sizeof(uint32_t);
649     memcpy(*ptr, (uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
650     *ptr += sizeof(uint32_t);
651     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTexelBufferElements, sizeof(uint32_t));
652     *ptr += sizeof(uint32_t);
653     memcpy(*ptr, (uint32_t*)&forMarshaling->maxUniformBufferRange, sizeof(uint32_t));
654     *ptr += sizeof(uint32_t);
655     memcpy(*ptr, (uint32_t*)&forMarshaling->maxStorageBufferRange, sizeof(uint32_t));
656     *ptr += sizeof(uint32_t);
657     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPushConstantsSize, sizeof(uint32_t));
658     *ptr += sizeof(uint32_t);
659     memcpy(*ptr, (uint32_t*)&forMarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
660     *ptr += sizeof(uint32_t);
661     memcpy(*ptr, (uint32_t*)&forMarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
662     *ptr += sizeof(uint32_t);
663     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
664     *ptr += sizeof(VkDeviceSize);
665     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
666     *ptr += sizeof(VkDeviceSize);
667     memcpy(*ptr, (uint32_t*)&forMarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
668     *ptr += sizeof(uint32_t);
669     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
670     *ptr += sizeof(uint32_t);
671     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUniformBuffers, sizeof(uint32_t));
672     *ptr += sizeof(uint32_t);
673     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorStorageBuffers, sizeof(uint32_t));
674     *ptr += sizeof(uint32_t);
675     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorSampledImages, sizeof(uint32_t));
676     *ptr += sizeof(uint32_t);
677     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorStorageImages, sizeof(uint32_t));
678     *ptr += sizeof(uint32_t);
679     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorInputAttachments,
680            sizeof(uint32_t));
681     *ptr += sizeof(uint32_t);
682     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageResources, sizeof(uint32_t));
683     *ptr += sizeof(uint32_t);
684     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
685     *ptr += sizeof(uint32_t);
686     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
687     *ptr += sizeof(uint32_t);
688     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffersDynamic,
689            sizeof(uint32_t));
690     *ptr += sizeof(uint32_t);
691     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
692     *ptr += sizeof(uint32_t);
693     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffersDynamic,
694            sizeof(uint32_t));
695     *ptr += sizeof(uint32_t);
696     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
697     *ptr += sizeof(uint32_t);
698     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
699     *ptr += sizeof(uint32_t);
700     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
701     *ptr += sizeof(uint32_t);
702     memcpy(*ptr, (uint32_t*)&forMarshaling->maxVertexInputAttributes, sizeof(uint32_t));
703     *ptr += sizeof(uint32_t);
704     memcpy(*ptr, (uint32_t*)&forMarshaling->maxVertexInputBindings, sizeof(uint32_t));
705     *ptr += sizeof(uint32_t);
706     memcpy(*ptr, (uint32_t*)&forMarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
707     *ptr += sizeof(uint32_t);
708     memcpy(*ptr, (uint32_t*)&forMarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
709     *ptr += sizeof(uint32_t);
710     memcpy(*ptr, (uint32_t*)&forMarshaling->maxVertexOutputComponents, sizeof(uint32_t));
711     *ptr += sizeof(uint32_t);
712     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
713     *ptr += sizeof(uint32_t);
714     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationPatchSize, sizeof(uint32_t));
715     *ptr += sizeof(uint32_t);
716     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationControlPerVertexInputComponents,
717            sizeof(uint32_t));
718     *ptr += sizeof(uint32_t);
719     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationControlPerVertexOutputComponents,
720            sizeof(uint32_t));
721     *ptr += sizeof(uint32_t);
722     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationControlPerPatchOutputComponents,
723            sizeof(uint32_t));
724     *ptr += sizeof(uint32_t);
725     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationControlTotalOutputComponents,
726            sizeof(uint32_t));
727     *ptr += sizeof(uint32_t);
728     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationEvaluationInputComponents,
729            sizeof(uint32_t));
730     *ptr += sizeof(uint32_t);
731     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTessellationEvaluationOutputComponents,
732            sizeof(uint32_t));
733     *ptr += sizeof(uint32_t);
734     memcpy(*ptr, (uint32_t*)&forMarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
735     *ptr += sizeof(uint32_t);
736     memcpy(*ptr, (uint32_t*)&forMarshaling->maxGeometryInputComponents, sizeof(uint32_t));
737     *ptr += sizeof(uint32_t);
738     memcpy(*ptr, (uint32_t*)&forMarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
739     *ptr += sizeof(uint32_t);
740     memcpy(*ptr, (uint32_t*)&forMarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
741     *ptr += sizeof(uint32_t);
742     memcpy(*ptr, (uint32_t*)&forMarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
743     *ptr += sizeof(uint32_t);
744     memcpy(*ptr, (uint32_t*)&forMarshaling->maxFragmentInputComponents, sizeof(uint32_t));
745     *ptr += sizeof(uint32_t);
746     memcpy(*ptr, (uint32_t*)&forMarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
747     *ptr += sizeof(uint32_t);
748     memcpy(*ptr, (uint32_t*)&forMarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
749     *ptr += sizeof(uint32_t);
750     memcpy(*ptr, (uint32_t*)&forMarshaling->maxFragmentCombinedOutputResources, sizeof(uint32_t));
751     *ptr += sizeof(uint32_t);
752     memcpy(*ptr, (uint32_t*)&forMarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
753     *ptr += sizeof(uint32_t);
754     memcpy(*ptr, (uint32_t*)forMarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
755     *ptr += 3 * sizeof(uint32_t);
756     memcpy(*ptr, (uint32_t*)&forMarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
757     *ptr += sizeof(uint32_t);
758     memcpy(*ptr, (uint32_t*)forMarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
759     *ptr += 3 * sizeof(uint32_t);
760     memcpy(*ptr, (uint32_t*)&forMarshaling->subPixelPrecisionBits, sizeof(uint32_t));
761     *ptr += sizeof(uint32_t);
762     memcpy(*ptr, (uint32_t*)&forMarshaling->subTexelPrecisionBits, sizeof(uint32_t));
763     *ptr += sizeof(uint32_t);
764     memcpy(*ptr, (uint32_t*)&forMarshaling->mipmapPrecisionBits, sizeof(uint32_t));
765     *ptr += sizeof(uint32_t);
766     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
767     *ptr += sizeof(uint32_t);
768     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDrawIndirectCount, sizeof(uint32_t));
769     *ptr += sizeof(uint32_t);
770     memcpy(*ptr, (float*)&forMarshaling->maxSamplerLodBias, sizeof(float));
771     *ptr += sizeof(float);
772     memcpy(*ptr, (float*)&forMarshaling->maxSamplerAnisotropy, sizeof(float));
773     *ptr += sizeof(float);
774     memcpy(*ptr, (uint32_t*)&forMarshaling->maxViewports, sizeof(uint32_t));
775     *ptr += sizeof(uint32_t);
776     memcpy(*ptr, (uint32_t*)forMarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
777     *ptr += 2 * sizeof(uint32_t);
778     memcpy(*ptr, (float*)forMarshaling->viewportBoundsRange, 2 * sizeof(float));
779     *ptr += 2 * sizeof(float);
780     memcpy(*ptr, (uint32_t*)&forMarshaling->viewportSubPixelBits, sizeof(uint32_t));
781     *ptr += sizeof(uint32_t);
782     uint64_t cgen_var_0 = (uint64_t)forMarshaling->minMemoryMapAlignment;
783     memcpy((*ptr), &cgen_var_0, 8);
784     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
785     *ptr += 8;
786     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->minTexelBufferOffsetAlignment,
787            sizeof(VkDeviceSize));
788     *ptr += sizeof(VkDeviceSize);
789     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->minUniformBufferOffsetAlignment,
790            sizeof(VkDeviceSize));
791     *ptr += sizeof(VkDeviceSize);
792     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->minStorageBufferOffsetAlignment,
793            sizeof(VkDeviceSize));
794     *ptr += sizeof(VkDeviceSize);
795     memcpy(*ptr, (int32_t*)&forMarshaling->minTexelOffset, sizeof(int32_t));
796     *ptr += sizeof(int32_t);
797     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTexelOffset, sizeof(uint32_t));
798     *ptr += sizeof(uint32_t);
799     memcpy(*ptr, (int32_t*)&forMarshaling->minTexelGatherOffset, sizeof(int32_t));
800     *ptr += sizeof(int32_t);
801     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTexelGatherOffset, sizeof(uint32_t));
802     *ptr += sizeof(uint32_t);
803     memcpy(*ptr, (float*)&forMarshaling->minInterpolationOffset, sizeof(float));
804     *ptr += sizeof(float);
805     memcpy(*ptr, (float*)&forMarshaling->maxInterpolationOffset, sizeof(float));
806     *ptr += sizeof(float);
807     memcpy(*ptr, (uint32_t*)&forMarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
808     *ptr += sizeof(uint32_t);
809     memcpy(*ptr, (uint32_t*)&forMarshaling->maxFramebufferWidth, sizeof(uint32_t));
810     *ptr += sizeof(uint32_t);
811     memcpy(*ptr, (uint32_t*)&forMarshaling->maxFramebufferHeight, sizeof(uint32_t));
812     *ptr += sizeof(uint32_t);
813     memcpy(*ptr, (uint32_t*)&forMarshaling->maxFramebufferLayers, sizeof(uint32_t));
814     *ptr += sizeof(uint32_t);
815     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->framebufferColorSampleCounts,
816            sizeof(VkSampleCountFlags));
817     *ptr += sizeof(VkSampleCountFlags);
818     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->framebufferDepthSampleCounts,
819            sizeof(VkSampleCountFlags));
820     *ptr += sizeof(VkSampleCountFlags);
821     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->framebufferStencilSampleCounts,
822            sizeof(VkSampleCountFlags));
823     *ptr += sizeof(VkSampleCountFlags);
824     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->framebufferNoAttachmentsSampleCounts,
825            sizeof(VkSampleCountFlags));
826     *ptr += sizeof(VkSampleCountFlags);
827     memcpy(*ptr, (uint32_t*)&forMarshaling->maxColorAttachments, sizeof(uint32_t));
828     *ptr += sizeof(uint32_t);
829     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampledImageColorSampleCounts,
830            sizeof(VkSampleCountFlags));
831     *ptr += sizeof(VkSampleCountFlags);
832     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampledImageIntegerSampleCounts,
833            sizeof(VkSampleCountFlags));
834     *ptr += sizeof(VkSampleCountFlags);
835     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampledImageDepthSampleCounts,
836            sizeof(VkSampleCountFlags));
837     *ptr += sizeof(VkSampleCountFlags);
838     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampledImageStencilSampleCounts,
839            sizeof(VkSampleCountFlags));
840     *ptr += sizeof(VkSampleCountFlags);
841     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->storageImageSampleCounts,
842            sizeof(VkSampleCountFlags));
843     *ptr += sizeof(VkSampleCountFlags);
844     memcpy(*ptr, (uint32_t*)&forMarshaling->maxSampleMaskWords, sizeof(uint32_t));
845     *ptr += sizeof(uint32_t);
846     memcpy(*ptr, (VkBool32*)&forMarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
847     *ptr += sizeof(VkBool32);
848     memcpy(*ptr, (float*)&forMarshaling->timestampPeriod, sizeof(float));
849     *ptr += sizeof(float);
850     memcpy(*ptr, (uint32_t*)&forMarshaling->maxClipDistances, sizeof(uint32_t));
851     *ptr += sizeof(uint32_t);
852     memcpy(*ptr, (uint32_t*)&forMarshaling->maxCullDistances, sizeof(uint32_t));
853     *ptr += sizeof(uint32_t);
854     memcpy(*ptr, (uint32_t*)&forMarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
855     *ptr += sizeof(uint32_t);
856     memcpy(*ptr, (uint32_t*)&forMarshaling->discreteQueuePriorities, sizeof(uint32_t));
857     *ptr += sizeof(uint32_t);
858     memcpy(*ptr, (float*)forMarshaling->pointSizeRange, 2 * sizeof(float));
859     *ptr += 2 * sizeof(float);
860     memcpy(*ptr, (float*)forMarshaling->lineWidthRange, 2 * sizeof(float));
861     *ptr += 2 * sizeof(float);
862     memcpy(*ptr, (float*)&forMarshaling->pointSizeGranularity, sizeof(float));
863     *ptr += sizeof(float);
864     memcpy(*ptr, (float*)&forMarshaling->lineWidthGranularity, sizeof(float));
865     *ptr += sizeof(float);
866     memcpy(*ptr, (VkBool32*)&forMarshaling->strictLines, sizeof(VkBool32));
867     *ptr += sizeof(VkBool32);
868     memcpy(*ptr, (VkBool32*)&forMarshaling->standardSampleLocations, sizeof(VkBool32));
869     *ptr += sizeof(VkBool32);
870     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->optimalBufferCopyOffsetAlignment,
871            sizeof(VkDeviceSize));
872     *ptr += sizeof(VkDeviceSize);
873     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->optimalBufferCopyRowPitchAlignment,
874            sizeof(VkDeviceSize));
875     *ptr += sizeof(VkDeviceSize);
876     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
877     *ptr += sizeof(VkDeviceSize);
878 }
879 
reservedmarshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties * forMarshaling,uint8_t ** ptr)880 void reservedmarshal_VkPhysicalDeviceMemoryProperties(
881     VulkanStreamGuest* vkStream, VkStructureType rootType,
882     const VkPhysicalDeviceMemoryProperties* forMarshaling, uint8_t** ptr) {
883     (void)vkStream;
884     (void)rootType;
885     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
886     *ptr += sizeof(uint32_t);
887     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
888         reservedmarshal_VkMemoryType(vkStream, rootType,
889                                      (VkMemoryType*)(forMarshaling->memoryTypes + i), ptr);
890     }
891     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
892     *ptr += sizeof(uint32_t);
893     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
894         reservedmarshal_VkMemoryHeap(vkStream, rootType,
895                                      (VkMemoryHeap*)(forMarshaling->memoryHeaps + i), ptr);
896     }
897 }
898 
reservedmarshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSparseProperties * forMarshaling,uint8_t ** ptr)899 void reservedmarshal_VkPhysicalDeviceSparseProperties(
900     VulkanStreamGuest* vkStream, VkStructureType rootType,
901     const VkPhysicalDeviceSparseProperties* forMarshaling, uint8_t** ptr) {
902     (void)vkStream;
903     (void)rootType;
904     memcpy(*ptr, (VkBool32*)&forMarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
905     *ptr += sizeof(VkBool32);
906     memcpy(*ptr, (VkBool32*)&forMarshaling->residencyStandard2DMultisampleBlockShape,
907            sizeof(VkBool32));
908     *ptr += sizeof(VkBool32);
909     memcpy(*ptr, (VkBool32*)&forMarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
910     *ptr += sizeof(VkBool32);
911     memcpy(*ptr, (VkBool32*)&forMarshaling->residencyAlignedMipSize, sizeof(VkBool32));
912     *ptr += sizeof(VkBool32);
913     memcpy(*ptr, (VkBool32*)&forMarshaling->residencyNonResidentStrict, sizeof(VkBool32));
914     *ptr += sizeof(VkBool32);
915 }
916 
reservedmarshal_VkPhysicalDeviceProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProperties * forMarshaling,uint8_t ** ptr)917 void reservedmarshal_VkPhysicalDeviceProperties(VulkanStreamGuest* vkStream,
918                                                 VkStructureType rootType,
919                                                 const VkPhysicalDeviceProperties* forMarshaling,
920                                                 uint8_t** ptr) {
921     (void)vkStream;
922     (void)rootType;
923     memcpy(*ptr, (uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
924     *ptr += sizeof(uint32_t);
925     memcpy(*ptr, (uint32_t*)&forMarshaling->driverVersion, sizeof(uint32_t));
926     *ptr += sizeof(uint32_t);
927     memcpy(*ptr, (uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
928     *ptr += sizeof(uint32_t);
929     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
930     *ptr += sizeof(uint32_t);
931     memcpy(*ptr, (VkPhysicalDeviceType*)&forMarshaling->deviceType, sizeof(VkPhysicalDeviceType));
932     *ptr += sizeof(VkPhysicalDeviceType);
933     memcpy(*ptr, (char*)forMarshaling->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
934     *ptr += VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char);
935     memcpy(*ptr, (uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
936     *ptr += VK_UUID_SIZE * sizeof(uint8_t);
937     reservedmarshal_VkPhysicalDeviceLimits(vkStream, rootType,
938                                            (VkPhysicalDeviceLimits*)(&forMarshaling->limits), ptr);
939     reservedmarshal_VkPhysicalDeviceSparseProperties(
940         vkStream, rootType, (VkPhysicalDeviceSparseProperties*)(&forMarshaling->sparseProperties),
941         ptr);
942 }
943 
reservedmarshal_VkQueueFamilyProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueueFamilyProperties * forMarshaling,uint8_t ** ptr)944 void reservedmarshal_VkQueueFamilyProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
945                                              const VkQueueFamilyProperties* forMarshaling,
946                                              uint8_t** ptr) {
947     (void)vkStream;
948     (void)rootType;
949     memcpy(*ptr, (VkQueueFlags*)&forMarshaling->queueFlags, sizeof(VkQueueFlags));
950     *ptr += sizeof(VkQueueFlags);
951     memcpy(*ptr, (uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
952     *ptr += sizeof(uint32_t);
953     memcpy(*ptr, (uint32_t*)&forMarshaling->timestampValidBits, sizeof(uint32_t));
954     *ptr += sizeof(uint32_t);
955     reservedmarshal_VkExtent3D(vkStream, rootType,
956                                (VkExtent3D*)(&forMarshaling->minImageTransferGranularity), ptr);
957 }
958 
reservedmarshal_VkDeviceQueueCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceQueueCreateInfo * forMarshaling,uint8_t ** ptr)959 void reservedmarshal_VkDeviceQueueCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
960                                              const VkDeviceQueueCreateInfo* forMarshaling,
961                                              uint8_t** ptr) {
962     (void)vkStream;
963     (void)rootType;
964     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
965     *ptr += sizeof(VkStructureType);
966     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
967         rootType = forMarshaling->sType;
968     }
969     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
970     memcpy(*ptr, (VkDeviceQueueCreateFlags*)&forMarshaling->flags,
971            sizeof(VkDeviceQueueCreateFlags));
972     *ptr += sizeof(VkDeviceQueueCreateFlags);
973     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
974     *ptr += sizeof(uint32_t);
975     memcpy(*ptr, (uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
976     *ptr += sizeof(uint32_t);
977     memcpy(*ptr, (const float*)forMarshaling->pQueuePriorities,
978            forMarshaling->queueCount * sizeof(const float));
979     *ptr += forMarshaling->queueCount * sizeof(const float);
980 }
981 
reservedmarshal_VkDeviceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceCreateInfo * forMarshaling,uint8_t ** ptr)982 void reservedmarshal_VkDeviceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
983                                         const VkDeviceCreateInfo* forMarshaling, uint8_t** ptr) {
984     (void)vkStream;
985     (void)rootType;
986     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
987     *ptr += sizeof(VkStructureType);
988     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
989         rootType = forMarshaling->sType;
990     }
991     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
992     memcpy(*ptr, (VkDeviceCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceCreateFlags));
993     *ptr += sizeof(VkDeviceCreateFlags);
994     memcpy(*ptr, (uint32_t*)&forMarshaling->queueCreateInfoCount, sizeof(uint32_t));
995     *ptr += sizeof(uint32_t);
996     for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueCreateInfoCount; ++i) {
997         reservedmarshal_VkDeviceQueueCreateInfo(
998             vkStream, rootType,
999             (const VkDeviceQueueCreateInfo*)(forMarshaling->pQueueCreateInfos + i), ptr);
1000     }
1001     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
1002     *ptr += sizeof(uint32_t);
1003     {
1004         uint32_t c = 0;
1005         if (forMarshaling) {
1006             c = forMarshaling->enabledLayerCount;
1007         }
1008         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
1009         gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
1010         *ptr += sizeof(uint32_t);
1011         for (uint32_t i = 0; i < c; ++i) {
1012             uint32_t l = forMarshaling->ppEnabledLayerNames
1013                              ? strlen(forMarshaling->ppEnabledLayerNames[i])
1014                              : 0;
1015             memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
1016             gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
1017             *ptr += sizeof(uint32_t);
1018             if (l) {
1019                 memcpy(*ptr, (char*)(forMarshaling->ppEnabledLayerNames[i]), l);
1020                 *ptr += l;
1021             }
1022         }
1023     }
1024     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
1025     *ptr += sizeof(uint32_t);
1026     {
1027         uint32_t c = 0;
1028         if (forMarshaling) {
1029             c = forMarshaling->enabledExtensionCount;
1030         }
1031         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
1032         gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
1033         *ptr += sizeof(uint32_t);
1034         for (uint32_t i = 0; i < c; ++i) {
1035             uint32_t l = forMarshaling->ppEnabledExtensionNames
1036                              ? strlen(forMarshaling->ppEnabledExtensionNames[i])
1037                              : 0;
1038             memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
1039             gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
1040             *ptr += sizeof(uint32_t);
1041             if (l) {
1042                 memcpy(*ptr, (char*)(forMarshaling->ppEnabledExtensionNames[i]), l);
1043                 *ptr += l;
1044             }
1045         }
1046     }
1047     // WARNING PTR CHECK
1048     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
1049     memcpy((*ptr), &cgen_var_0, 8);
1050     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1051     *ptr += 8;
1052     if (forMarshaling->pEnabledFeatures) {
1053         reservedmarshal_VkPhysicalDeviceFeatures(
1054             vkStream, rootType, (const VkPhysicalDeviceFeatures*)(forMarshaling->pEnabledFeatures),
1055             ptr);
1056     }
1057 }
1058 
reservedmarshal_VkExtensionProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExtensionProperties * forMarshaling,uint8_t ** ptr)1059 void reservedmarshal_VkExtensionProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1060                                            const VkExtensionProperties* forMarshaling,
1061                                            uint8_t** ptr) {
1062     (void)vkStream;
1063     (void)rootType;
1064     memcpy(*ptr, (char*)forMarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1065     *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
1066     memcpy(*ptr, (uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
1067     *ptr += sizeof(uint32_t);
1068 }
1069 
reservedmarshal_VkLayerProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkLayerProperties * forMarshaling,uint8_t ** ptr)1070 void reservedmarshal_VkLayerProperties(VulkanStreamGuest* vkStream, VkStructureType rootType,
1071                                        const VkLayerProperties* forMarshaling, uint8_t** ptr) {
1072     (void)vkStream;
1073     (void)rootType;
1074     memcpy(*ptr, (char*)forMarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1075     *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
1076     memcpy(*ptr, (uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
1077     *ptr += sizeof(uint32_t);
1078     memcpy(*ptr, (uint32_t*)&forMarshaling->implementationVersion, sizeof(uint32_t));
1079     *ptr += sizeof(uint32_t);
1080     memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
1081     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
1082 }
1083 
reservedmarshal_VkSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubmitInfo * forMarshaling,uint8_t ** ptr)1084 void reservedmarshal_VkSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1085                                   const VkSubmitInfo* forMarshaling, uint8_t** ptr) {
1086     (void)vkStream;
1087     (void)rootType;
1088     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1089     *ptr += sizeof(VkStructureType);
1090     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1091         rootType = forMarshaling->sType;
1092     }
1093     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1094     memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1095     *ptr += sizeof(uint32_t);
1096     if (forMarshaling->waitSemaphoreCount) {
1097         uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
1098         if (forMarshaling) {
1099             for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k) {
1100                 uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
1101                 memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
1102             }
1103         }
1104         *ptr += 8 * forMarshaling->waitSemaphoreCount;
1105     }
1106     memcpy(*ptr, (const VkPipelineStageFlags*)forMarshaling->pWaitDstStageMask,
1107            forMarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1108     *ptr += forMarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags);
1109     memcpy(*ptr, (uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
1110     *ptr += sizeof(uint32_t);
1111     if (forMarshaling->commandBufferCount) {
1112         uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
1113         if (forMarshaling) {
1114             for (uint32_t k = 0; k < forMarshaling->commandBufferCount; ++k) {
1115                 uint64_t tmpval = get_host_u64_VkCommandBuffer(forMarshaling->pCommandBuffers[k]);
1116                 memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
1117             }
1118         }
1119         *ptr += 8 * forMarshaling->commandBufferCount;
1120     }
1121     memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1122     *ptr += sizeof(uint32_t);
1123     if (forMarshaling->signalSemaphoreCount) {
1124         uint8_t* cgen_var_2_ptr = (uint8_t*)(*ptr);
1125         if (forMarshaling) {
1126             for (uint32_t k = 0; k < forMarshaling->signalSemaphoreCount; ++k) {
1127                 uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSignalSemaphores[k]);
1128                 memcpy(cgen_var_2_ptr + k * 8, &tmpval, sizeof(uint64_t));
1129             }
1130         }
1131         *ptr += 8 * forMarshaling->signalSemaphoreCount;
1132     }
1133 }
1134 
reservedmarshal_VkMappedMemoryRange(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMappedMemoryRange * forMarshaling,uint8_t ** ptr)1135 void reservedmarshal_VkMappedMemoryRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
1136                                          const VkMappedMemoryRange* forMarshaling, uint8_t** ptr) {
1137     (void)vkStream;
1138     (void)rootType;
1139     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1140     *ptr += sizeof(VkStructureType);
1141     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1142         rootType = forMarshaling->sType;
1143     }
1144     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1145     uint64_t cgen_var_0;
1146     *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
1147     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1148     *ptr += 1 * 8;
1149     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1150     *ptr += sizeof(VkDeviceSize);
1151     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1152     *ptr += sizeof(VkDeviceSize);
1153 }
1154 
reservedmarshal_VkMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryAllocateInfo * forMarshaling,uint8_t ** ptr)1155 void reservedmarshal_VkMemoryAllocateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1156                                           const VkMemoryAllocateInfo* forMarshaling,
1157                                           uint8_t** ptr) {
1158     (void)vkStream;
1159     (void)rootType;
1160     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1161     *ptr += sizeof(VkStructureType);
1162     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1163         rootType = forMarshaling->sType;
1164     }
1165     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1166     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
1167     *ptr += sizeof(VkDeviceSize);
1168     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryTypeIndex, sizeof(uint32_t));
1169     *ptr += sizeof(uint32_t);
1170 }
1171 
reservedmarshal_VkMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryRequirements * forMarshaling,uint8_t ** ptr)1172 void reservedmarshal_VkMemoryRequirements(VulkanStreamGuest* vkStream, VkStructureType rootType,
1173                                           const VkMemoryRequirements* forMarshaling,
1174                                           uint8_t** ptr) {
1175     (void)vkStream;
1176     (void)rootType;
1177     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1178     *ptr += sizeof(VkDeviceSize);
1179     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->alignment, sizeof(VkDeviceSize));
1180     *ptr += sizeof(VkDeviceSize);
1181     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
1182     *ptr += sizeof(uint32_t);
1183 }
1184 
reservedmarshal_VkSparseMemoryBind(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseMemoryBind * forMarshaling,uint8_t ** ptr)1185 void reservedmarshal_VkSparseMemoryBind(VulkanStreamGuest* vkStream, VkStructureType rootType,
1186                                         const VkSparseMemoryBind* forMarshaling, uint8_t** ptr) {
1187     (void)vkStream;
1188     (void)rootType;
1189     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
1190     *ptr += sizeof(VkDeviceSize);
1191     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1192     *ptr += sizeof(VkDeviceSize);
1193     uint64_t cgen_var_0;
1194     *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
1195     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1196     *ptr += 1 * 8;
1197     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1198     *ptr += sizeof(VkDeviceSize);
1199     memcpy(*ptr, (VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1200     *ptr += sizeof(VkSparseMemoryBindFlags);
1201 }
1202 
reservedmarshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseBufferMemoryBindInfo * forMarshaling,uint8_t ** ptr)1203 void reservedmarshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest* vkStream,
1204                                                   VkStructureType rootType,
1205                                                   const VkSparseBufferMemoryBindInfo* forMarshaling,
1206                                                   uint8_t** ptr) {
1207     (void)vkStream;
1208     (void)rootType;
1209     uint64_t cgen_var_0;
1210     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
1211     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1212     *ptr += 1 * 8;
1213     memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1214     *ptr += sizeof(uint32_t);
1215     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1216         reservedmarshal_VkSparseMemoryBind(
1217             vkStream, rootType, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i), ptr);
1218     }
1219 }
1220 
reservedmarshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageOpaqueMemoryBindInfo * forMarshaling,uint8_t ** ptr)1221 void reservedmarshal_VkSparseImageOpaqueMemoryBindInfo(
1222     VulkanStreamGuest* vkStream, VkStructureType rootType,
1223     const VkSparseImageOpaqueMemoryBindInfo* forMarshaling, uint8_t** ptr) {
1224     (void)vkStream;
1225     (void)rootType;
1226     uint64_t cgen_var_0;
1227     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
1228     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1229     *ptr += 1 * 8;
1230     memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1231     *ptr += sizeof(uint32_t);
1232     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1233         reservedmarshal_VkSparseMemoryBind(
1234             vkStream, rootType, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i), ptr);
1235     }
1236 }
1237 
reservedmarshal_VkImageSubresource(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresource * forMarshaling,uint8_t ** ptr)1238 void reservedmarshal_VkImageSubresource(VulkanStreamGuest* vkStream, VkStructureType rootType,
1239                                         const VkImageSubresource* forMarshaling, uint8_t** ptr) {
1240     (void)vkStream;
1241     (void)rootType;
1242     memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1243     *ptr += sizeof(VkImageAspectFlags);
1244     memcpy(*ptr, (uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
1245     *ptr += sizeof(uint32_t);
1246     memcpy(*ptr, (uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
1247     *ptr += sizeof(uint32_t);
1248 }
1249 
reservedmarshal_VkSparseImageMemoryBind(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryBind * forMarshaling,uint8_t ** ptr)1250 void reservedmarshal_VkSparseImageMemoryBind(VulkanStreamGuest* vkStream, VkStructureType rootType,
1251                                              const VkSparseImageMemoryBind* forMarshaling,
1252                                              uint8_t** ptr) {
1253     (void)vkStream;
1254     (void)rootType;
1255     reservedmarshal_VkImageSubresource(vkStream, rootType,
1256                                        (VkImageSubresource*)(&forMarshaling->subresource), ptr);
1257     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->offset), ptr);
1258     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent), ptr);
1259     uint64_t cgen_var_0;
1260     *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
1261     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1262     *ptr += 1 * 8;
1263     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1264     *ptr += sizeof(VkDeviceSize);
1265     memcpy(*ptr, (VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1266     *ptr += sizeof(VkSparseMemoryBindFlags);
1267 }
1268 
reservedmarshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryBindInfo * forMarshaling,uint8_t ** ptr)1269 void reservedmarshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest* vkStream,
1270                                                  VkStructureType rootType,
1271                                                  const VkSparseImageMemoryBindInfo* forMarshaling,
1272                                                  uint8_t** ptr) {
1273     (void)vkStream;
1274     (void)rootType;
1275     uint64_t cgen_var_0;
1276     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
1277     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1278     *ptr += 1 * 8;
1279     memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1280     *ptr += sizeof(uint32_t);
1281     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i) {
1282         reservedmarshal_VkSparseImageMemoryBind(
1283             vkStream, rootType, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i), ptr);
1284     }
1285 }
1286 
reservedmarshal_VkBindSparseInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindSparseInfo * forMarshaling,uint8_t ** ptr)1287 void reservedmarshal_VkBindSparseInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1288                                       const VkBindSparseInfo* forMarshaling, uint8_t** ptr) {
1289     (void)vkStream;
1290     (void)rootType;
1291     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1292     *ptr += sizeof(VkStructureType);
1293     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1294         rootType = forMarshaling->sType;
1295     }
1296     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1297     memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1298     *ptr += sizeof(uint32_t);
1299     if (forMarshaling->waitSemaphoreCount) {
1300         uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
1301         if (forMarshaling) {
1302             for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k) {
1303                 uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
1304                 memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
1305             }
1306         }
1307         *ptr += 8 * forMarshaling->waitSemaphoreCount;
1308     }
1309     memcpy(*ptr, (uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
1310     *ptr += sizeof(uint32_t);
1311     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i) {
1312         reservedmarshal_VkSparseBufferMemoryBindInfo(
1313             vkStream, rootType,
1314             (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i), ptr);
1315     }
1316     memcpy(*ptr, (uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1317     *ptr += sizeof(uint32_t);
1318     for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i) {
1319         reservedmarshal_VkSparseImageOpaqueMemoryBindInfo(
1320             vkStream, rootType,
1321             (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i), ptr);
1322     }
1323     memcpy(*ptr, (uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
1324     *ptr += sizeof(uint32_t);
1325     for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i) {
1326         reservedmarshal_VkSparseImageMemoryBindInfo(
1327             vkStream, rootType,
1328             (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i), ptr);
1329     }
1330     memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1331     *ptr += sizeof(uint32_t);
1332     if (forMarshaling->signalSemaphoreCount) {
1333         uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
1334         if (forMarshaling) {
1335             for (uint32_t k = 0; k < forMarshaling->signalSemaphoreCount; ++k) {
1336                 uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSignalSemaphores[k]);
1337                 memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
1338             }
1339         }
1340         *ptr += 8 * forMarshaling->signalSemaphoreCount;
1341     }
1342 }
1343 
reservedmarshal_VkSparseImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageFormatProperties * forMarshaling,uint8_t ** ptr)1344 void reservedmarshal_VkSparseImageFormatProperties(
1345     VulkanStreamGuest* vkStream, VkStructureType rootType,
1346     const VkSparseImageFormatProperties* forMarshaling, uint8_t** ptr) {
1347     (void)vkStream;
1348     (void)rootType;
1349     memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1350     *ptr += sizeof(VkImageAspectFlags);
1351     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageGranularity),
1352                                ptr);
1353     memcpy(*ptr, (VkSparseImageFormatFlags*)&forMarshaling->flags,
1354            sizeof(VkSparseImageFormatFlags));
1355     *ptr += sizeof(VkSparseImageFormatFlags);
1356 }
1357 
reservedmarshal_VkSparseImageMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryRequirements * forMarshaling,uint8_t ** ptr)1358 void reservedmarshal_VkSparseImageMemoryRequirements(
1359     VulkanStreamGuest* vkStream, VkStructureType rootType,
1360     const VkSparseImageMemoryRequirements* forMarshaling, uint8_t** ptr) {
1361     (void)vkStream;
1362     (void)rootType;
1363     reservedmarshal_VkSparseImageFormatProperties(
1364         vkStream, rootType, (VkSparseImageFormatProperties*)(&forMarshaling->formatProperties),
1365         ptr);
1366     memcpy(*ptr, (uint32_t*)&forMarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1367     *ptr += sizeof(uint32_t);
1368     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1369     *ptr += sizeof(VkDeviceSize);
1370     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1371     *ptr += sizeof(VkDeviceSize);
1372     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1373     *ptr += sizeof(VkDeviceSize);
1374 }
1375 
reservedmarshal_VkFenceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFenceCreateInfo * forMarshaling,uint8_t ** ptr)1376 void reservedmarshal_VkFenceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1377                                        const VkFenceCreateInfo* forMarshaling, uint8_t** ptr) {
1378     (void)vkStream;
1379     (void)rootType;
1380     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1381     *ptr += sizeof(VkStructureType);
1382     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1383         rootType = forMarshaling->sType;
1384     }
1385     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1386     memcpy(*ptr, (VkFenceCreateFlags*)&forMarshaling->flags, sizeof(VkFenceCreateFlags));
1387     *ptr += sizeof(VkFenceCreateFlags);
1388 }
1389 
reservedmarshal_VkSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreCreateInfo * forMarshaling,uint8_t ** ptr)1390 void reservedmarshal_VkSemaphoreCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1391                                            const VkSemaphoreCreateInfo* forMarshaling,
1392                                            uint8_t** ptr) {
1393     (void)vkStream;
1394     (void)rootType;
1395     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1396     *ptr += sizeof(VkStructureType);
1397     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1398         rootType = forMarshaling->sType;
1399     }
1400     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1401     memcpy(*ptr, (VkSemaphoreCreateFlags*)&forMarshaling->flags, sizeof(VkSemaphoreCreateFlags));
1402     *ptr += sizeof(VkSemaphoreCreateFlags);
1403 }
1404 
reservedmarshal_VkEventCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkEventCreateInfo * forMarshaling,uint8_t ** ptr)1405 void reservedmarshal_VkEventCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1406                                        const VkEventCreateInfo* forMarshaling, uint8_t** ptr) {
1407     (void)vkStream;
1408     (void)rootType;
1409     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1410     *ptr += sizeof(VkStructureType);
1411     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1412         rootType = forMarshaling->sType;
1413     }
1414     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1415     memcpy(*ptr, (VkEventCreateFlags*)&forMarshaling->flags, sizeof(VkEventCreateFlags));
1416     *ptr += sizeof(VkEventCreateFlags);
1417 }
1418 
reservedmarshal_VkQueryPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueryPoolCreateInfo * forMarshaling,uint8_t ** ptr)1419 void reservedmarshal_VkQueryPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1420                                            const VkQueryPoolCreateInfo* forMarshaling,
1421                                            uint8_t** ptr) {
1422     (void)vkStream;
1423     (void)rootType;
1424     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1425     *ptr += sizeof(VkStructureType);
1426     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1427         rootType = forMarshaling->sType;
1428     }
1429     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1430     memcpy(*ptr, (VkQueryPoolCreateFlags*)&forMarshaling->flags, sizeof(VkQueryPoolCreateFlags));
1431     *ptr += sizeof(VkQueryPoolCreateFlags);
1432     memcpy(*ptr, (VkQueryType*)&forMarshaling->queryType, sizeof(VkQueryType));
1433     *ptr += sizeof(VkQueryType);
1434     memcpy(*ptr, (uint32_t*)&forMarshaling->queryCount, sizeof(uint32_t));
1435     *ptr += sizeof(uint32_t);
1436     memcpy(*ptr, (VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics,
1437            sizeof(VkQueryPipelineStatisticFlags));
1438     *ptr += sizeof(VkQueryPipelineStatisticFlags);
1439 }
1440 
reservedmarshal_VkBufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferCreateInfo * forMarshaling,uint8_t ** ptr)1441 void reservedmarshal_VkBufferCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1442                                         const VkBufferCreateInfo* forMarshaling, uint8_t** ptr) {
1443     (void)vkStream;
1444     (void)rootType;
1445     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1446     *ptr += sizeof(VkStructureType);
1447     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1448         rootType = forMarshaling->sType;
1449     }
1450     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1451     memcpy(*ptr, (VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
1452     *ptr += sizeof(VkBufferCreateFlags);
1453     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1454     *ptr += sizeof(VkDeviceSize);
1455     memcpy(*ptr, (VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
1456     *ptr += sizeof(VkBufferUsageFlags);
1457     memcpy(*ptr, (VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1458     *ptr += sizeof(VkSharingMode);
1459     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1460     *ptr += sizeof(uint32_t);
1461     // WARNING PTR CHECK
1462     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1463     memcpy((*ptr), &cgen_var_0, 8);
1464     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1465     *ptr += 8;
1466     if (forMarshaling->pQueueFamilyIndices) {
1467         memcpy(*ptr, (const uint32_t*)forMarshaling->pQueueFamilyIndices,
1468                forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1469         *ptr += forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
1470     }
1471 }
1472 
reservedmarshal_VkBufferViewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferViewCreateInfo * forMarshaling,uint8_t ** ptr)1473 void reservedmarshal_VkBufferViewCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1474                                             const VkBufferViewCreateInfo* forMarshaling,
1475                                             uint8_t** ptr) {
1476     (void)vkStream;
1477     (void)rootType;
1478     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1479     *ptr += sizeof(VkStructureType);
1480     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1481         rootType = forMarshaling->sType;
1482     }
1483     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1484     memcpy(*ptr, (VkBufferViewCreateFlags*)&forMarshaling->flags, sizeof(VkBufferViewCreateFlags));
1485     *ptr += sizeof(VkBufferViewCreateFlags);
1486     uint64_t cgen_var_0;
1487     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
1488     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1489     *ptr += 1 * 8;
1490     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1491     *ptr += sizeof(VkFormat);
1492     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1493     *ptr += sizeof(VkDeviceSize);
1494     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
1495     *ptr += sizeof(VkDeviceSize);
1496 }
1497 
reservedmarshal_VkImageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCreateInfo * forMarshaling,uint8_t ** ptr)1498 void reservedmarshal_VkImageCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1499                                        const VkImageCreateInfo* forMarshaling, uint8_t** ptr) {
1500     (void)vkStream;
1501     (void)rootType;
1502     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1503     *ptr += sizeof(VkStructureType);
1504     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1505         rootType = forMarshaling->sType;
1506     }
1507     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1508     memcpy(*ptr, (VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
1509     *ptr += sizeof(VkImageCreateFlags);
1510     memcpy(*ptr, (VkImageType*)&forMarshaling->imageType, sizeof(VkImageType));
1511     *ptr += sizeof(VkImageType);
1512     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1513     *ptr += sizeof(VkFormat);
1514     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent), ptr);
1515     memcpy(*ptr, (uint32_t*)&forMarshaling->mipLevels, sizeof(uint32_t));
1516     *ptr += sizeof(uint32_t);
1517     memcpy(*ptr, (uint32_t*)&forMarshaling->arrayLayers, sizeof(uint32_t));
1518     *ptr += sizeof(uint32_t);
1519     memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
1520     *ptr += sizeof(VkSampleCountFlagBits);
1521     memcpy(*ptr, (VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
1522     *ptr += sizeof(VkImageTiling);
1523     memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
1524     *ptr += sizeof(VkImageUsageFlags);
1525     memcpy(*ptr, (VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1526     *ptr += sizeof(VkSharingMode);
1527     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1528     *ptr += sizeof(uint32_t);
1529     // WARNING PTR CHECK
1530     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1531     memcpy((*ptr), &cgen_var_0, 8);
1532     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1533     *ptr += 8;
1534     if (forMarshaling->pQueueFamilyIndices) {
1535         memcpy(*ptr, (const uint32_t*)forMarshaling->pQueueFamilyIndices,
1536                forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1537         *ptr += forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
1538     }
1539     memcpy(*ptr, (VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
1540     *ptr += sizeof(VkImageLayout);
1541 }
1542 
reservedmarshal_VkSubresourceLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceLayout * forMarshaling,uint8_t ** ptr)1543 void reservedmarshal_VkSubresourceLayout(VulkanStreamGuest* vkStream, VkStructureType rootType,
1544                                          const VkSubresourceLayout* forMarshaling, uint8_t** ptr) {
1545     (void)vkStream;
1546     (void)rootType;
1547     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1548     *ptr += sizeof(VkDeviceSize);
1549     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1550     *ptr += sizeof(VkDeviceSize);
1551     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->rowPitch, sizeof(VkDeviceSize));
1552     *ptr += sizeof(VkDeviceSize);
1553     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->arrayPitch, sizeof(VkDeviceSize));
1554     *ptr += sizeof(VkDeviceSize);
1555     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->depthPitch, sizeof(VkDeviceSize));
1556     *ptr += sizeof(VkDeviceSize);
1557 }
1558 
reservedmarshal_VkComponentMapping(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkComponentMapping * forMarshaling,uint8_t ** ptr)1559 void reservedmarshal_VkComponentMapping(VulkanStreamGuest* vkStream, VkStructureType rootType,
1560                                         const VkComponentMapping* forMarshaling, uint8_t** ptr) {
1561     (void)vkStream;
1562     (void)rootType;
1563     memcpy(*ptr, (VkComponentSwizzle*)&forMarshaling->r, sizeof(VkComponentSwizzle));
1564     *ptr += sizeof(VkComponentSwizzle);
1565     memcpy(*ptr, (VkComponentSwizzle*)&forMarshaling->g, sizeof(VkComponentSwizzle));
1566     *ptr += sizeof(VkComponentSwizzle);
1567     memcpy(*ptr, (VkComponentSwizzle*)&forMarshaling->b, sizeof(VkComponentSwizzle));
1568     *ptr += sizeof(VkComponentSwizzle);
1569     memcpy(*ptr, (VkComponentSwizzle*)&forMarshaling->a, sizeof(VkComponentSwizzle));
1570     *ptr += sizeof(VkComponentSwizzle);
1571 }
1572 
reservedmarshal_VkImageViewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageViewCreateInfo * forMarshaling,uint8_t ** ptr)1573 void reservedmarshal_VkImageViewCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1574                                            const VkImageViewCreateInfo* forMarshaling,
1575                                            uint8_t** ptr) {
1576     (void)vkStream;
1577     (void)rootType;
1578     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1579     *ptr += sizeof(VkStructureType);
1580     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1581         rootType = forMarshaling->sType;
1582     }
1583     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1584     memcpy(*ptr, (VkImageViewCreateFlags*)&forMarshaling->flags, sizeof(VkImageViewCreateFlags));
1585     *ptr += sizeof(VkImageViewCreateFlags);
1586     uint64_t cgen_var_0;
1587     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
1588     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1589     *ptr += 1 * 8;
1590     memcpy(*ptr, (VkImageViewType*)&forMarshaling->viewType, sizeof(VkImageViewType));
1591     *ptr += sizeof(VkImageViewType);
1592     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1593     *ptr += sizeof(VkFormat);
1594     reservedmarshal_VkComponentMapping(vkStream, rootType,
1595                                        (VkComponentMapping*)(&forMarshaling->components), ptr);
1596     reservedmarshal_VkImageSubresourceRange(
1597         vkStream, rootType, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange), ptr);
1598 }
1599 
reservedmarshal_VkShaderModuleCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkShaderModuleCreateInfo * forMarshaling,uint8_t ** ptr)1600 void reservedmarshal_VkShaderModuleCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1601                                               const VkShaderModuleCreateInfo* forMarshaling,
1602                                               uint8_t** ptr) {
1603     (void)vkStream;
1604     (void)rootType;
1605     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1606     *ptr += sizeof(VkStructureType);
1607     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1608         rootType = forMarshaling->sType;
1609     }
1610     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1611     memcpy(*ptr, (VkShaderModuleCreateFlags*)&forMarshaling->flags,
1612            sizeof(VkShaderModuleCreateFlags));
1613     *ptr += sizeof(VkShaderModuleCreateFlags);
1614     uint64_t cgen_var_0 = (uint64_t)forMarshaling->codeSize;
1615     memcpy((*ptr), &cgen_var_0, 8);
1616     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1617     *ptr += 8;
1618     memcpy(*ptr, (const uint32_t*)forMarshaling->pCode,
1619            (forMarshaling->codeSize / 4) * sizeof(const uint32_t));
1620     *ptr += (forMarshaling->codeSize / 4) * sizeof(const uint32_t);
1621 }
1622 
reservedmarshal_VkPipelineCacheCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCacheCreateInfo * forMarshaling,uint8_t ** ptr)1623 void reservedmarshal_VkPipelineCacheCreateInfo(VulkanStreamGuest* vkStream,
1624                                                VkStructureType rootType,
1625                                                const VkPipelineCacheCreateInfo* forMarshaling,
1626                                                uint8_t** ptr) {
1627     (void)vkStream;
1628     (void)rootType;
1629     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1630     *ptr += sizeof(VkStructureType);
1631     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1632         rootType = forMarshaling->sType;
1633     }
1634     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1635     memcpy(*ptr, (VkPipelineCacheCreateFlags*)&forMarshaling->flags,
1636            sizeof(VkPipelineCacheCreateFlags));
1637     *ptr += sizeof(VkPipelineCacheCreateFlags);
1638     uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
1639     memcpy((*ptr), &cgen_var_0, 8);
1640     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1641     *ptr += 8;
1642     memcpy(*ptr, (const void*)forMarshaling->pInitialData,
1643            forMarshaling->initialDataSize * sizeof(const uint8_t));
1644     *ptr += forMarshaling->initialDataSize * sizeof(const uint8_t);
1645 }
1646 
reservedmarshal_VkSpecializationMapEntry(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSpecializationMapEntry * forMarshaling,uint8_t ** ptr)1647 void reservedmarshal_VkSpecializationMapEntry(VulkanStreamGuest* vkStream, VkStructureType rootType,
1648                                               const VkSpecializationMapEntry* forMarshaling,
1649                                               uint8_t** ptr) {
1650     (void)vkStream;
1651     (void)rootType;
1652     memcpy(*ptr, (uint32_t*)&forMarshaling->constantID, sizeof(uint32_t));
1653     *ptr += sizeof(uint32_t);
1654     memcpy(*ptr, (uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
1655     *ptr += sizeof(uint32_t);
1656     uint64_t cgen_var_0 = (uint64_t)forMarshaling->size;
1657     memcpy((*ptr), &cgen_var_0, 8);
1658     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1659     *ptr += 8;
1660 }
1661 
reservedmarshal_VkSpecializationInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSpecializationInfo * forMarshaling,uint8_t ** ptr)1662 void reservedmarshal_VkSpecializationInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
1663                                           const VkSpecializationInfo* forMarshaling,
1664                                           uint8_t** ptr) {
1665     (void)vkStream;
1666     (void)rootType;
1667     memcpy(*ptr, (uint32_t*)&forMarshaling->mapEntryCount, sizeof(uint32_t));
1668     *ptr += sizeof(uint32_t);
1669     for (uint32_t i = 0; i < (uint32_t)forMarshaling->mapEntryCount; ++i) {
1670         reservedmarshal_VkSpecializationMapEntry(
1671             vkStream, rootType, (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i),
1672             ptr);
1673     }
1674     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
1675     memcpy((*ptr), &cgen_var_0, 8);
1676     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1677     *ptr += 8;
1678     memcpy(*ptr, (const void*)forMarshaling->pData,
1679            forMarshaling->dataSize * sizeof(const uint8_t));
1680     *ptr += forMarshaling->dataSize * sizeof(const uint8_t);
1681 }
1682 
reservedmarshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineShaderStageCreateInfo * forMarshaling,uint8_t ** ptr)1683 void reservedmarshal_VkPipelineShaderStageCreateInfo(
1684     VulkanStreamGuest* vkStream, VkStructureType rootType,
1685     const VkPipelineShaderStageCreateInfo* forMarshaling, uint8_t** ptr) {
1686     (void)vkStream;
1687     (void)rootType;
1688     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1689     *ptr += sizeof(VkStructureType);
1690     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1691         rootType = forMarshaling->sType;
1692     }
1693     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1694     memcpy(*ptr, (VkPipelineShaderStageCreateFlags*)&forMarshaling->flags,
1695            sizeof(VkPipelineShaderStageCreateFlags));
1696     *ptr += sizeof(VkPipelineShaderStageCreateFlags);
1697     memcpy(*ptr, (VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
1698     *ptr += sizeof(VkShaderStageFlagBits);
1699     uint64_t cgen_var_0;
1700     *&cgen_var_0 = get_host_u64_VkShaderModule((*&forMarshaling->module));
1701     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1702     *ptr += 1 * 8;
1703     {
1704         uint32_t l = forMarshaling->pName ? strlen(forMarshaling->pName) : 0;
1705         memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
1706         gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
1707         *ptr += sizeof(uint32_t);
1708         memcpy(*ptr, (char*)forMarshaling->pName, l);
1709         *ptr += l;
1710     }
1711     // WARNING PTR CHECK
1712     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
1713     memcpy((*ptr), &cgen_var_1, 8);
1714     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1715     *ptr += 8;
1716     if (forMarshaling->pSpecializationInfo) {
1717         reservedmarshal_VkSpecializationInfo(
1718             vkStream, rootType, (const VkSpecializationInfo*)(forMarshaling->pSpecializationInfo),
1719             ptr);
1720     }
1721 }
1722 
reservedmarshal_VkComputePipelineCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkComputePipelineCreateInfo * forMarshaling,uint8_t ** ptr)1723 void reservedmarshal_VkComputePipelineCreateInfo(VulkanStreamGuest* vkStream,
1724                                                  VkStructureType rootType,
1725                                                  const VkComputePipelineCreateInfo* forMarshaling,
1726                                                  uint8_t** ptr) {
1727     (void)vkStream;
1728     (void)rootType;
1729     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1730     *ptr += sizeof(VkStructureType);
1731     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1732         rootType = forMarshaling->sType;
1733     }
1734     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1735     memcpy(*ptr, (VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
1736     *ptr += sizeof(VkPipelineCreateFlags);
1737     reservedmarshal_VkPipelineShaderStageCreateInfo(
1738         vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage), ptr);
1739     uint64_t cgen_var_0;
1740     *&cgen_var_0 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
1741     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
1742     *ptr += 1 * 8;
1743     uint64_t cgen_var_1;
1744     *&cgen_var_1 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
1745     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
1746     *ptr += 1 * 8;
1747     memcpy(*ptr, (int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
1748     *ptr += sizeof(int32_t);
1749 }
1750 
reservedmarshal_VkVertexInputBindingDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkVertexInputBindingDescription * forMarshaling,uint8_t ** ptr)1751 void reservedmarshal_VkVertexInputBindingDescription(
1752     VulkanStreamGuest* vkStream, VkStructureType rootType,
1753     const VkVertexInputBindingDescription* forMarshaling, uint8_t** ptr) {
1754     (void)vkStream;
1755     (void)rootType;
1756     memcpy(*ptr, (uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
1757     *ptr += sizeof(uint32_t);
1758     memcpy(*ptr, (uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
1759     *ptr += sizeof(uint32_t);
1760     memcpy(*ptr, (VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
1761     *ptr += sizeof(VkVertexInputRate);
1762 }
1763 
reservedmarshal_VkVertexInputAttributeDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkVertexInputAttributeDescription * forMarshaling,uint8_t ** ptr)1764 void reservedmarshal_VkVertexInputAttributeDescription(
1765     VulkanStreamGuest* vkStream, VkStructureType rootType,
1766     const VkVertexInputAttributeDescription* forMarshaling, uint8_t** ptr) {
1767     (void)vkStream;
1768     (void)rootType;
1769     memcpy(*ptr, (uint32_t*)&forMarshaling->location, sizeof(uint32_t));
1770     *ptr += sizeof(uint32_t);
1771     memcpy(*ptr, (uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
1772     *ptr += sizeof(uint32_t);
1773     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1774     *ptr += sizeof(VkFormat);
1775     memcpy(*ptr, (uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
1776     *ptr += sizeof(uint32_t);
1777 }
1778 
reservedmarshal_VkPipelineVertexInputStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineVertexInputStateCreateInfo * forMarshaling,uint8_t ** ptr)1779 void reservedmarshal_VkPipelineVertexInputStateCreateInfo(
1780     VulkanStreamGuest* vkStream, VkStructureType rootType,
1781     const VkPipelineVertexInputStateCreateInfo* forMarshaling, uint8_t** ptr) {
1782     (void)vkStream;
1783     (void)rootType;
1784     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1785     *ptr += sizeof(VkStructureType);
1786     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1787         rootType = forMarshaling->sType;
1788     }
1789     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1790     memcpy(*ptr, (VkPipelineVertexInputStateCreateFlags*)&forMarshaling->flags,
1791            sizeof(VkPipelineVertexInputStateCreateFlags));
1792     *ptr += sizeof(VkPipelineVertexInputStateCreateFlags);
1793     memcpy(*ptr, (uint32_t*)&forMarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
1794     *ptr += sizeof(uint32_t);
1795     for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDescriptionCount; ++i) {
1796         reservedmarshal_VkVertexInputBindingDescription(
1797             vkStream, rootType,
1798             (const VkVertexInputBindingDescription*)(forMarshaling->pVertexBindingDescriptions + i),
1799             ptr);
1800     }
1801     memcpy(*ptr, (uint32_t*)&forMarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
1802     *ptr += sizeof(uint32_t);
1803     for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexAttributeDescriptionCount; ++i) {
1804         reservedmarshal_VkVertexInputAttributeDescription(
1805             vkStream, rootType,
1806             (const VkVertexInputAttributeDescription*)(forMarshaling->pVertexAttributeDescriptions +
1807                                                        i),
1808             ptr);
1809     }
1810 }
1811 
reservedmarshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineInputAssemblyStateCreateInfo * forMarshaling,uint8_t ** ptr)1812 void reservedmarshal_VkPipelineInputAssemblyStateCreateInfo(
1813     VulkanStreamGuest* vkStream, VkStructureType rootType,
1814     const VkPipelineInputAssemblyStateCreateInfo* forMarshaling, uint8_t** ptr) {
1815     (void)vkStream;
1816     (void)rootType;
1817     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1818     *ptr += sizeof(VkStructureType);
1819     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1820         rootType = forMarshaling->sType;
1821     }
1822     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1823     memcpy(*ptr, (VkPipelineInputAssemblyStateCreateFlags*)&forMarshaling->flags,
1824            sizeof(VkPipelineInputAssemblyStateCreateFlags));
1825     *ptr += sizeof(VkPipelineInputAssemblyStateCreateFlags);
1826     memcpy(*ptr, (VkPrimitiveTopology*)&forMarshaling->topology, sizeof(VkPrimitiveTopology));
1827     *ptr += sizeof(VkPrimitiveTopology);
1828     memcpy(*ptr, (VkBool32*)&forMarshaling->primitiveRestartEnable, sizeof(VkBool32));
1829     *ptr += sizeof(VkBool32);
1830 }
1831 
reservedmarshal_VkPipelineTessellationStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineTessellationStateCreateInfo * forMarshaling,uint8_t ** ptr)1832 void reservedmarshal_VkPipelineTessellationStateCreateInfo(
1833     VulkanStreamGuest* vkStream, VkStructureType rootType,
1834     const VkPipelineTessellationStateCreateInfo* forMarshaling, uint8_t** ptr) {
1835     (void)vkStream;
1836     (void)rootType;
1837     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1838     *ptr += sizeof(VkStructureType);
1839     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1840         rootType = forMarshaling->sType;
1841     }
1842     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1843     memcpy(*ptr, (VkPipelineTessellationStateCreateFlags*)&forMarshaling->flags,
1844            sizeof(VkPipelineTessellationStateCreateFlags));
1845     *ptr += sizeof(VkPipelineTessellationStateCreateFlags);
1846     memcpy(*ptr, (uint32_t*)&forMarshaling->patchControlPoints, sizeof(uint32_t));
1847     *ptr += sizeof(uint32_t);
1848 }
1849 
reservedmarshal_VkViewport(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkViewport * forMarshaling,uint8_t ** ptr)1850 void reservedmarshal_VkViewport(VulkanStreamGuest* vkStream, VkStructureType rootType,
1851                                 const VkViewport* forMarshaling, uint8_t** ptr) {
1852     (void)vkStream;
1853     (void)rootType;
1854     memcpy(*ptr, (float*)&forMarshaling->x, sizeof(float));
1855     *ptr += sizeof(float);
1856     memcpy(*ptr, (float*)&forMarshaling->y, sizeof(float));
1857     *ptr += sizeof(float);
1858     memcpy(*ptr, (float*)&forMarshaling->width, sizeof(float));
1859     *ptr += sizeof(float);
1860     memcpy(*ptr, (float*)&forMarshaling->height, sizeof(float));
1861     *ptr += sizeof(float);
1862     memcpy(*ptr, (float*)&forMarshaling->minDepth, sizeof(float));
1863     *ptr += sizeof(float);
1864     memcpy(*ptr, (float*)&forMarshaling->maxDepth, sizeof(float));
1865     *ptr += sizeof(float);
1866 }
1867 
reservedmarshal_VkPipelineViewportStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineViewportStateCreateInfo * forMarshaling,uint8_t ** ptr)1868 void reservedmarshal_VkPipelineViewportStateCreateInfo(
1869     VulkanStreamGuest* vkStream, VkStructureType rootType,
1870     const VkPipelineViewportStateCreateInfo* forMarshaling, uint8_t** ptr) {
1871     (void)vkStream;
1872     (void)rootType;
1873     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1874     *ptr += sizeof(VkStructureType);
1875     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1876         rootType = forMarshaling->sType;
1877     }
1878     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1879     memcpy(*ptr, (VkPipelineViewportStateCreateFlags*)&forMarshaling->flags,
1880            sizeof(VkPipelineViewportStateCreateFlags));
1881     *ptr += sizeof(VkPipelineViewportStateCreateFlags);
1882     memcpy(*ptr, (uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
1883     *ptr += sizeof(uint32_t);
1884     // WARNING PTR CHECK
1885     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
1886     memcpy((*ptr), &cgen_var_0, 8);
1887     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1888     *ptr += 8;
1889     if (forMarshaling->pViewports) {
1890         for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i) {
1891             reservedmarshal_VkViewport(vkStream, rootType,
1892                                        (const VkViewport*)(forMarshaling->pViewports + i), ptr);
1893         }
1894     }
1895     memcpy(*ptr, (uint32_t*)&forMarshaling->scissorCount, sizeof(uint32_t));
1896     *ptr += sizeof(uint32_t);
1897     // WARNING PTR CHECK
1898     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
1899     memcpy((*ptr), &cgen_var_1, 8);
1900     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1901     *ptr += 8;
1902     if (forMarshaling->pScissors) {
1903         for (uint32_t i = 0; i < (uint32_t)forMarshaling->scissorCount; ++i) {
1904             reservedmarshal_VkRect2D(vkStream, rootType,
1905                                      (const VkRect2D*)(forMarshaling->pScissors + i), ptr);
1906         }
1907     }
1908 }
1909 
reservedmarshal_VkPipelineRasterizationStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateCreateInfo * forMarshaling,uint8_t ** ptr)1910 void reservedmarshal_VkPipelineRasterizationStateCreateInfo(
1911     VulkanStreamGuest* vkStream, VkStructureType rootType,
1912     const VkPipelineRasterizationStateCreateInfo* forMarshaling, uint8_t** ptr) {
1913     (void)vkStream;
1914     (void)rootType;
1915     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1916     *ptr += sizeof(VkStructureType);
1917     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1918         rootType = forMarshaling->sType;
1919     }
1920     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1921     memcpy(*ptr, (VkPipelineRasterizationStateCreateFlags*)&forMarshaling->flags,
1922            sizeof(VkPipelineRasterizationStateCreateFlags));
1923     *ptr += sizeof(VkPipelineRasterizationStateCreateFlags);
1924     memcpy(*ptr, (VkBool32*)&forMarshaling->depthClampEnable, sizeof(VkBool32));
1925     *ptr += sizeof(VkBool32);
1926     memcpy(*ptr, (VkBool32*)&forMarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
1927     *ptr += sizeof(VkBool32);
1928     memcpy(*ptr, (VkPolygonMode*)&forMarshaling->polygonMode, sizeof(VkPolygonMode));
1929     *ptr += sizeof(VkPolygonMode);
1930     memcpy(*ptr, (VkCullModeFlags*)&forMarshaling->cullMode, sizeof(VkCullModeFlags));
1931     *ptr += sizeof(VkCullModeFlags);
1932     memcpy(*ptr, (VkFrontFace*)&forMarshaling->frontFace, sizeof(VkFrontFace));
1933     *ptr += sizeof(VkFrontFace);
1934     memcpy(*ptr, (VkBool32*)&forMarshaling->depthBiasEnable, sizeof(VkBool32));
1935     *ptr += sizeof(VkBool32);
1936     memcpy(*ptr, (float*)&forMarshaling->depthBiasConstantFactor, sizeof(float));
1937     *ptr += sizeof(float);
1938     memcpy(*ptr, (float*)&forMarshaling->depthBiasClamp, sizeof(float));
1939     *ptr += sizeof(float);
1940     memcpy(*ptr, (float*)&forMarshaling->depthBiasSlopeFactor, sizeof(float));
1941     *ptr += sizeof(float);
1942     memcpy(*ptr, (float*)&forMarshaling->lineWidth, sizeof(float));
1943     *ptr += sizeof(float);
1944 }
1945 
reservedmarshal_VkPipelineMultisampleStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineMultisampleStateCreateInfo * forMarshaling,uint8_t ** ptr)1946 void reservedmarshal_VkPipelineMultisampleStateCreateInfo(
1947     VulkanStreamGuest* vkStream, VkStructureType rootType,
1948     const VkPipelineMultisampleStateCreateInfo* forMarshaling, uint8_t** ptr) {
1949     (void)vkStream;
1950     (void)rootType;
1951     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1952     *ptr += sizeof(VkStructureType);
1953     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1954         rootType = forMarshaling->sType;
1955     }
1956     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
1957     memcpy(*ptr, (VkPipelineMultisampleStateCreateFlags*)&forMarshaling->flags,
1958            sizeof(VkPipelineMultisampleStateCreateFlags));
1959     *ptr += sizeof(VkPipelineMultisampleStateCreateFlags);
1960     memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
1961            sizeof(VkSampleCountFlagBits));
1962     *ptr += sizeof(VkSampleCountFlagBits);
1963     memcpy(*ptr, (VkBool32*)&forMarshaling->sampleShadingEnable, sizeof(VkBool32));
1964     *ptr += sizeof(VkBool32);
1965     memcpy(*ptr, (float*)&forMarshaling->minSampleShading, sizeof(float));
1966     *ptr += sizeof(float);
1967     // WARNING PTR CHECK
1968     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
1969     memcpy((*ptr), &cgen_var_0, 8);
1970     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
1971     *ptr += 8;
1972     if (forMarshaling->pSampleMask) {
1973         memcpy(*ptr, (const VkSampleMask*)forMarshaling->pSampleMask,
1974                (((forMarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
1975         *ptr += (((forMarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask);
1976     }
1977     memcpy(*ptr, (VkBool32*)&forMarshaling->alphaToCoverageEnable, sizeof(VkBool32));
1978     *ptr += sizeof(VkBool32);
1979     memcpy(*ptr, (VkBool32*)&forMarshaling->alphaToOneEnable, sizeof(VkBool32));
1980     *ptr += sizeof(VkBool32);
1981 }
1982 
reservedmarshal_VkStencilOpState(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkStencilOpState * forMarshaling,uint8_t ** ptr)1983 void reservedmarshal_VkStencilOpState(VulkanStreamGuest* vkStream, VkStructureType rootType,
1984                                       const VkStencilOpState* forMarshaling, uint8_t** ptr) {
1985     (void)vkStream;
1986     (void)rootType;
1987     memcpy(*ptr, (VkStencilOp*)&forMarshaling->failOp, sizeof(VkStencilOp));
1988     *ptr += sizeof(VkStencilOp);
1989     memcpy(*ptr, (VkStencilOp*)&forMarshaling->passOp, sizeof(VkStencilOp));
1990     *ptr += sizeof(VkStencilOp);
1991     memcpy(*ptr, (VkStencilOp*)&forMarshaling->depthFailOp, sizeof(VkStencilOp));
1992     *ptr += sizeof(VkStencilOp);
1993     memcpy(*ptr, (VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
1994     *ptr += sizeof(VkCompareOp);
1995     memcpy(*ptr, (uint32_t*)&forMarshaling->compareMask, sizeof(uint32_t));
1996     *ptr += sizeof(uint32_t);
1997     memcpy(*ptr, (uint32_t*)&forMarshaling->writeMask, sizeof(uint32_t));
1998     *ptr += sizeof(uint32_t);
1999     memcpy(*ptr, (uint32_t*)&forMarshaling->reference, sizeof(uint32_t));
2000     *ptr += sizeof(uint32_t);
2001 }
2002 
reservedmarshal_VkPipelineDepthStencilStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineDepthStencilStateCreateInfo * forMarshaling,uint8_t ** ptr)2003 void reservedmarshal_VkPipelineDepthStencilStateCreateInfo(
2004     VulkanStreamGuest* vkStream, VkStructureType rootType,
2005     const VkPipelineDepthStencilStateCreateInfo* forMarshaling, uint8_t** ptr) {
2006     (void)vkStream;
2007     (void)rootType;
2008     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2009     *ptr += sizeof(VkStructureType);
2010     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2011         rootType = forMarshaling->sType;
2012     }
2013     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2014     memcpy(*ptr, (VkPipelineDepthStencilStateCreateFlags*)&forMarshaling->flags,
2015            sizeof(VkPipelineDepthStencilStateCreateFlags));
2016     *ptr += sizeof(VkPipelineDepthStencilStateCreateFlags);
2017     memcpy(*ptr, (VkBool32*)&forMarshaling->depthTestEnable, sizeof(VkBool32));
2018     *ptr += sizeof(VkBool32);
2019     memcpy(*ptr, (VkBool32*)&forMarshaling->depthWriteEnable, sizeof(VkBool32));
2020     *ptr += sizeof(VkBool32);
2021     memcpy(*ptr, (VkCompareOp*)&forMarshaling->depthCompareOp, sizeof(VkCompareOp));
2022     *ptr += sizeof(VkCompareOp);
2023     memcpy(*ptr, (VkBool32*)&forMarshaling->depthBoundsTestEnable, sizeof(VkBool32));
2024     *ptr += sizeof(VkBool32);
2025     memcpy(*ptr, (VkBool32*)&forMarshaling->stencilTestEnable, sizeof(VkBool32));
2026     *ptr += sizeof(VkBool32);
2027     reservedmarshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forMarshaling->front),
2028                                      ptr);
2029     reservedmarshal_VkStencilOpState(vkStream, rootType, (VkStencilOpState*)(&forMarshaling->back),
2030                                      ptr);
2031     memcpy(*ptr, (float*)&forMarshaling->minDepthBounds, sizeof(float));
2032     *ptr += sizeof(float);
2033     memcpy(*ptr, (float*)&forMarshaling->maxDepthBounds, sizeof(float));
2034     *ptr += sizeof(float);
2035 }
2036 
reservedmarshal_VkPipelineColorBlendAttachmentState(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineColorBlendAttachmentState * forMarshaling,uint8_t ** ptr)2037 void reservedmarshal_VkPipelineColorBlendAttachmentState(
2038     VulkanStreamGuest* vkStream, VkStructureType rootType,
2039     const VkPipelineColorBlendAttachmentState* forMarshaling, uint8_t** ptr) {
2040     (void)vkStream;
2041     (void)rootType;
2042     memcpy(*ptr, (VkBool32*)&forMarshaling->blendEnable, sizeof(VkBool32));
2043     *ptr += sizeof(VkBool32);
2044     memcpy(*ptr, (VkBlendFactor*)&forMarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
2045     *ptr += sizeof(VkBlendFactor);
2046     memcpy(*ptr, (VkBlendFactor*)&forMarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
2047     *ptr += sizeof(VkBlendFactor);
2048     memcpy(*ptr, (VkBlendOp*)&forMarshaling->colorBlendOp, sizeof(VkBlendOp));
2049     *ptr += sizeof(VkBlendOp);
2050     memcpy(*ptr, (VkBlendFactor*)&forMarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
2051     *ptr += sizeof(VkBlendFactor);
2052     memcpy(*ptr, (VkBlendFactor*)&forMarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
2053     *ptr += sizeof(VkBlendFactor);
2054     memcpy(*ptr, (VkBlendOp*)&forMarshaling->alphaBlendOp, sizeof(VkBlendOp));
2055     *ptr += sizeof(VkBlendOp);
2056     memcpy(*ptr, (VkColorComponentFlags*)&forMarshaling->colorWriteMask,
2057            sizeof(VkColorComponentFlags));
2058     *ptr += sizeof(VkColorComponentFlags);
2059 }
2060 
reservedmarshal_VkPipelineColorBlendStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineColorBlendStateCreateInfo * forMarshaling,uint8_t ** ptr)2061 void reservedmarshal_VkPipelineColorBlendStateCreateInfo(
2062     VulkanStreamGuest* vkStream, VkStructureType rootType,
2063     const VkPipelineColorBlendStateCreateInfo* forMarshaling, uint8_t** ptr) {
2064     (void)vkStream;
2065     (void)rootType;
2066     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2067     *ptr += sizeof(VkStructureType);
2068     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2069         rootType = forMarshaling->sType;
2070     }
2071     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2072     memcpy(*ptr, (VkPipelineColorBlendStateCreateFlags*)&forMarshaling->flags,
2073            sizeof(VkPipelineColorBlendStateCreateFlags));
2074     *ptr += sizeof(VkPipelineColorBlendStateCreateFlags);
2075     memcpy(*ptr, (VkBool32*)&forMarshaling->logicOpEnable, sizeof(VkBool32));
2076     *ptr += sizeof(VkBool32);
2077     memcpy(*ptr, (VkLogicOp*)&forMarshaling->logicOp, sizeof(VkLogicOp));
2078     *ptr += sizeof(VkLogicOp);
2079     memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
2080     *ptr += sizeof(uint32_t);
2081     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
2082         reservedmarshal_VkPipelineColorBlendAttachmentState(
2083             vkStream, rootType,
2084             (const VkPipelineColorBlendAttachmentState*)(forMarshaling->pAttachments + i), ptr);
2085     }
2086     memcpy(*ptr, (float*)forMarshaling->blendConstants, 4 * sizeof(float));
2087     *ptr += 4 * sizeof(float);
2088 }
2089 
reservedmarshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineDynamicStateCreateInfo * forMarshaling,uint8_t ** ptr)2090 void reservedmarshal_VkPipelineDynamicStateCreateInfo(
2091     VulkanStreamGuest* vkStream, VkStructureType rootType,
2092     const VkPipelineDynamicStateCreateInfo* forMarshaling, uint8_t** ptr) {
2093     (void)vkStream;
2094     (void)rootType;
2095     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2096     *ptr += sizeof(VkStructureType);
2097     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2098         rootType = forMarshaling->sType;
2099     }
2100     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2101     memcpy(*ptr, (VkPipelineDynamicStateCreateFlags*)&forMarshaling->flags,
2102            sizeof(VkPipelineDynamicStateCreateFlags));
2103     *ptr += sizeof(VkPipelineDynamicStateCreateFlags);
2104     memcpy(*ptr, (uint32_t*)&forMarshaling->dynamicStateCount, sizeof(uint32_t));
2105     *ptr += sizeof(uint32_t);
2106     memcpy(*ptr, (const VkDynamicState*)forMarshaling->pDynamicStates,
2107            forMarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2108     *ptr += forMarshaling->dynamicStateCount * sizeof(const VkDynamicState);
2109 }
2110 
reservedmarshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkGraphicsPipelineCreateInfo * forMarshaling,uint8_t ** ptr)2111 void reservedmarshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest* vkStream,
2112                                                   VkStructureType rootType,
2113                                                   const VkGraphicsPipelineCreateInfo* forMarshaling,
2114                                                   uint8_t** ptr) {
2115     (void)vkStream;
2116     (void)rootType;
2117     uint32_t hasRasterization = 1;
2118     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2119         hasRasterization =
2120             ((((0 == forMarshaling->pRasterizationState))
2121                   ? (0)
2122                   : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable))) ||
2123              (((0 == forMarshaling->pDynamicState))
2124                   ? (0)
2125                   : (arrayany((*(forMarshaling->pDynamicState)).pDynamicStates, 0,
2126                               (*(forMarshaling->pDynamicState)).dynamicStateCount,
2127                               [](VkDynamicState s) {
2128                                   return (s == VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE);
2129                               }))));
2130         uint32_t cgen_var_0 = (uint32_t)hasRasterization;
2131         memcpy((*ptr), &cgen_var_0, 4);
2132         gfxstream::aemu::Stream::toBe32((uint8_t*)(*ptr));
2133         *ptr += 4;
2134     }
2135     uint32_t hasTessellation = 1;
2136     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2137         hasTessellation =
2138             arrayany(forMarshaling->pStages, 0, forMarshaling->stageCount,
2139                      [](VkPipelineShaderStageCreateInfo s) {
2140                          return ((s.stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ||
2141                                  (s.stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT));
2142                      });
2143         uint32_t cgen_var_0 = (uint32_t)hasTessellation;
2144         memcpy((*ptr), &cgen_var_0, 4);
2145         gfxstream::aemu::Stream::toBe32((uint8_t*)(*ptr));
2146         *ptr += 4;
2147     }
2148     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2149     *ptr += sizeof(VkStructureType);
2150     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2151         rootType = forMarshaling->sType;
2152     }
2153     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2154     memcpy(*ptr, (VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2155     *ptr += sizeof(VkPipelineCreateFlags);
2156     memcpy(*ptr, (uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
2157     *ptr += sizeof(uint32_t);
2158     for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i) {
2159         reservedmarshal_VkPipelineShaderStageCreateInfo(
2160             vkStream, rootType,
2161             (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i), ptr);
2162     }
2163     // WARNING PTR CHECK
2164     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2165         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
2166         memcpy((*ptr), &cgen_var_0, 8);
2167         gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2168         *ptr += 8;
2169     }
2170     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2171          forMarshaling->pVertexInputState)) {
2172         reservedmarshal_VkPipelineVertexInputStateCreateInfo(
2173             vkStream, rootType,
2174             (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState), ptr);
2175     }
2176     // WARNING PTR CHECK
2177     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2178         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
2179         memcpy((*ptr), &cgen_var_0, 8);
2180         gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2181         *ptr += 8;
2182     }
2183     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2184          forMarshaling->pInputAssemblyState)) {
2185         reservedmarshal_VkPipelineInputAssemblyStateCreateInfo(
2186             vkStream, rootType,
2187             (const VkPipelineInputAssemblyStateCreateInfo*)(forMarshaling->pInputAssemblyState),
2188             ptr);
2189     }
2190     // WARNING PTR CHECK
2191     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
2192     memcpy((*ptr), &cgen_var_0, 8);
2193     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2194     *ptr += 8;
2195     if (forMarshaling->pTessellationState) {
2196         if (hasTessellation) {
2197             reservedmarshal_VkPipelineTessellationStateCreateInfo(
2198                 vkStream, rootType,
2199                 (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState),
2200                 ptr);
2201         }
2202     }
2203     // WARNING PTR CHECK
2204     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
2205     memcpy((*ptr), &cgen_var_1, 8);
2206     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2207     *ptr += 8;
2208     if (forMarshaling->pViewportState) {
2209         if (hasRasterization) {
2210             reservedmarshal_VkPipelineViewportStateCreateInfo(
2211                 vkStream, rootType,
2212                 (const VkPipelineViewportStateCreateInfo*)(forMarshaling->pViewportState), ptr);
2213         }
2214     }
2215     // WARNING PTR CHECK
2216     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2217         uint64_t cgen_var_1_0 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
2218         memcpy((*ptr), &cgen_var_1_0, 8);
2219         gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2220         *ptr += 8;
2221     }
2222     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2223          forMarshaling->pRasterizationState)) {
2224         reservedmarshal_VkPipelineRasterizationStateCreateInfo(
2225             vkStream, rootType,
2226             (const VkPipelineRasterizationStateCreateInfo*)(forMarshaling->pRasterizationState),
2227             ptr);
2228     }
2229     // WARNING PTR CHECK
2230     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
2231     memcpy((*ptr), &cgen_var_2, 8);
2232     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2233     *ptr += 8;
2234     if (forMarshaling->pMultisampleState) {
2235         if (hasRasterization) {
2236             reservedmarshal_VkPipelineMultisampleStateCreateInfo(
2237                 vkStream, rootType,
2238                 (const VkPipelineMultisampleStateCreateInfo*)(forMarshaling->pMultisampleState),
2239                 ptr);
2240         }
2241     }
2242     // WARNING PTR CHECK
2243     uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
2244     memcpy((*ptr), &cgen_var_3, 8);
2245     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2246     *ptr += 8;
2247     if (forMarshaling->pDepthStencilState) {
2248         if (hasRasterization) {
2249             reservedmarshal_VkPipelineDepthStencilStateCreateInfo(
2250                 vkStream, rootType,
2251                 (const VkPipelineDepthStencilStateCreateInfo*)(forMarshaling->pDepthStencilState),
2252                 ptr);
2253         }
2254     }
2255     // WARNING PTR CHECK
2256     uint64_t cgen_var_4 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
2257     memcpy((*ptr), &cgen_var_4, 8);
2258     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2259     *ptr += 8;
2260     if (forMarshaling->pColorBlendState) {
2261         if (hasRasterization) {
2262             reservedmarshal_VkPipelineColorBlendStateCreateInfo(
2263                 vkStream, rootType,
2264                 (const VkPipelineColorBlendStateCreateInfo*)(forMarshaling->pColorBlendState), ptr);
2265         }
2266     }
2267     // WARNING PTR CHECK
2268     uint64_t cgen_var_5 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
2269     memcpy((*ptr), &cgen_var_5, 8);
2270     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2271     *ptr += 8;
2272     if (forMarshaling->pDynamicState) {
2273         reservedmarshal_VkPipelineDynamicStateCreateInfo(
2274             vkStream, rootType,
2275             (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState), ptr);
2276     }
2277     uint64_t cgen_var_6;
2278     *&cgen_var_6 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
2279     memcpy(*ptr, (uint64_t*)&cgen_var_6, 1 * 8);
2280     *ptr += 1 * 8;
2281     uint64_t cgen_var_7;
2282     *&cgen_var_7 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
2283     memcpy(*ptr, (uint64_t*)&cgen_var_7, 1 * 8);
2284     *ptr += 1 * 8;
2285     memcpy(*ptr, (uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
2286     *ptr += sizeof(uint32_t);
2287     uint64_t cgen_var_8;
2288     *&cgen_var_8 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
2289     memcpy(*ptr, (uint64_t*)&cgen_var_8, 1 * 8);
2290     *ptr += 1 * 8;
2291     memcpy(*ptr, (int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2292     *ptr += sizeof(int32_t);
2293 }
2294 
reservedmarshal_VkPushConstantRange(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPushConstantRange * forMarshaling,uint8_t ** ptr)2295 void reservedmarshal_VkPushConstantRange(VulkanStreamGuest* vkStream, VkStructureType rootType,
2296                                          const VkPushConstantRange* forMarshaling, uint8_t** ptr) {
2297     (void)vkStream;
2298     (void)rootType;
2299     memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
2300     *ptr += sizeof(VkShaderStageFlags);
2301     memcpy(*ptr, (uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2302     *ptr += sizeof(uint32_t);
2303     memcpy(*ptr, (uint32_t*)&forMarshaling->size, sizeof(uint32_t));
2304     *ptr += sizeof(uint32_t);
2305 }
2306 
reservedmarshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineLayoutCreateInfo * forMarshaling,uint8_t ** ptr)2307 void reservedmarshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest* vkStream,
2308                                                 VkStructureType rootType,
2309                                                 const VkPipelineLayoutCreateInfo* forMarshaling,
2310                                                 uint8_t** ptr) {
2311     (void)vkStream;
2312     (void)rootType;
2313     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2314     *ptr += sizeof(VkStructureType);
2315     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2316         rootType = forMarshaling->sType;
2317     }
2318     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2319     memcpy(*ptr, (VkPipelineLayoutCreateFlags*)&forMarshaling->flags,
2320            sizeof(VkPipelineLayoutCreateFlags));
2321     *ptr += sizeof(VkPipelineLayoutCreateFlags);
2322     memcpy(*ptr, (uint32_t*)&forMarshaling->setLayoutCount, sizeof(uint32_t));
2323     *ptr += sizeof(uint32_t);
2324     if (forMarshaling->setLayoutCount) {
2325         uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
2326         if (forMarshaling) {
2327             for (uint32_t k = 0; k < forMarshaling->setLayoutCount; ++k) {
2328                 uint64_t tmpval = get_host_u64_VkDescriptorSetLayout(forMarshaling->pSetLayouts[k]);
2329                 memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
2330             }
2331         }
2332         *ptr += 8 * forMarshaling->setLayoutCount;
2333     }
2334     memcpy(*ptr, (uint32_t*)&forMarshaling->pushConstantRangeCount, sizeof(uint32_t));
2335     *ptr += sizeof(uint32_t);
2336     for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i) {
2337         reservedmarshal_VkPushConstantRange(
2338             vkStream, rootType,
2339             (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i), ptr);
2340     }
2341 }
2342 
reservedmarshal_VkSamplerCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerCreateInfo * forMarshaling,uint8_t ** ptr)2343 void reservedmarshal_VkSamplerCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2344                                          const VkSamplerCreateInfo* forMarshaling, uint8_t** ptr) {
2345     (void)vkStream;
2346     (void)rootType;
2347     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2348     *ptr += sizeof(VkStructureType);
2349     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2350         rootType = forMarshaling->sType;
2351     }
2352     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2353     memcpy(*ptr, (VkSamplerCreateFlags*)&forMarshaling->flags, sizeof(VkSamplerCreateFlags));
2354     *ptr += sizeof(VkSamplerCreateFlags);
2355     memcpy(*ptr, (VkFilter*)&forMarshaling->magFilter, sizeof(VkFilter));
2356     *ptr += sizeof(VkFilter);
2357     memcpy(*ptr, (VkFilter*)&forMarshaling->minFilter, sizeof(VkFilter));
2358     *ptr += sizeof(VkFilter);
2359     memcpy(*ptr, (VkSamplerMipmapMode*)&forMarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
2360     *ptr += sizeof(VkSamplerMipmapMode);
2361     memcpy(*ptr, (VkSamplerAddressMode*)&forMarshaling->addressModeU, sizeof(VkSamplerAddressMode));
2362     *ptr += sizeof(VkSamplerAddressMode);
2363     memcpy(*ptr, (VkSamplerAddressMode*)&forMarshaling->addressModeV, sizeof(VkSamplerAddressMode));
2364     *ptr += sizeof(VkSamplerAddressMode);
2365     memcpy(*ptr, (VkSamplerAddressMode*)&forMarshaling->addressModeW, sizeof(VkSamplerAddressMode));
2366     *ptr += sizeof(VkSamplerAddressMode);
2367     memcpy(*ptr, (float*)&forMarshaling->mipLodBias, sizeof(float));
2368     *ptr += sizeof(float);
2369     memcpy(*ptr, (VkBool32*)&forMarshaling->anisotropyEnable, sizeof(VkBool32));
2370     *ptr += sizeof(VkBool32);
2371     memcpy(*ptr, (float*)&forMarshaling->maxAnisotropy, sizeof(float));
2372     *ptr += sizeof(float);
2373     memcpy(*ptr, (VkBool32*)&forMarshaling->compareEnable, sizeof(VkBool32));
2374     *ptr += sizeof(VkBool32);
2375     memcpy(*ptr, (VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
2376     *ptr += sizeof(VkCompareOp);
2377     memcpy(*ptr, (float*)&forMarshaling->minLod, sizeof(float));
2378     *ptr += sizeof(float);
2379     memcpy(*ptr, (float*)&forMarshaling->maxLod, sizeof(float));
2380     *ptr += sizeof(float);
2381     memcpy(*ptr, (VkBorderColor*)&forMarshaling->borderColor, sizeof(VkBorderColor));
2382     *ptr += sizeof(VkBorderColor);
2383     memcpy(*ptr, (VkBool32*)&forMarshaling->unnormalizedCoordinates, sizeof(VkBool32));
2384     *ptr += sizeof(VkBool32);
2385 }
2386 
reservedmarshal_VkCopyDescriptorSet(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyDescriptorSet * forMarshaling,uint8_t ** ptr)2387 void reservedmarshal_VkCopyDescriptorSet(VulkanStreamGuest* vkStream, VkStructureType rootType,
2388                                          const VkCopyDescriptorSet* forMarshaling, uint8_t** ptr) {
2389     (void)vkStream;
2390     (void)rootType;
2391     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2392     *ptr += sizeof(VkStructureType);
2393     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2394         rootType = forMarshaling->sType;
2395     }
2396     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2397     uint64_t cgen_var_0;
2398     *&cgen_var_0 = get_host_u64_VkDescriptorSet((*&forMarshaling->srcSet));
2399     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2400     *ptr += 1 * 8;
2401     memcpy(*ptr, (uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
2402     *ptr += sizeof(uint32_t);
2403     memcpy(*ptr, (uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
2404     *ptr += sizeof(uint32_t);
2405     uint64_t cgen_var_1;
2406     *&cgen_var_1 = get_host_u64_VkDescriptorSet((*&forMarshaling->dstSet));
2407     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
2408     *ptr += 1 * 8;
2409     memcpy(*ptr, (uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
2410     *ptr += sizeof(uint32_t);
2411     memcpy(*ptr, (uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
2412     *ptr += sizeof(uint32_t);
2413     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
2414     *ptr += sizeof(uint32_t);
2415 }
2416 
reservedmarshal_VkDescriptorBufferInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorBufferInfo * forMarshaling,uint8_t ** ptr)2417 void reservedmarshal_VkDescriptorBufferInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2418                                             const VkDescriptorBufferInfo* forMarshaling,
2419                                             uint8_t** ptr) {
2420     (void)vkStream;
2421     (void)rootType;
2422     uint64_t cgen_var_0;
2423     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
2424     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2425     *ptr += 1 * 8;
2426     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
2427     *ptr += sizeof(VkDeviceSize);
2428     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
2429     *ptr += sizeof(VkDeviceSize);
2430 }
2431 
reservedmarshal_VkDescriptorImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorImageInfo * forMarshaling,uint8_t ** ptr)2432 void reservedmarshal_VkDescriptorImageInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2433                                            const VkDescriptorImageInfo* forMarshaling,
2434                                            uint8_t** ptr) {
2435     (void)vkStream;
2436     (void)rootType;
2437     uint64_t cgen_var_0;
2438     *&cgen_var_0 = get_host_u64_VkSampler((*&forMarshaling->sampler));
2439     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2440     *ptr += 1 * 8;
2441     uint64_t cgen_var_1;
2442     *&cgen_var_1 = get_host_u64_VkImageView((*&forMarshaling->imageView));
2443     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
2444     *ptr += 1 * 8;
2445     memcpy(*ptr, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
2446     *ptr += sizeof(VkImageLayout);
2447 }
2448 
reservedmarshal_VkDescriptorPoolSize(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorPoolSize * forMarshaling,uint8_t ** ptr)2449 void reservedmarshal_VkDescriptorPoolSize(VulkanStreamGuest* vkStream, VkStructureType rootType,
2450                                           const VkDescriptorPoolSize* forMarshaling,
2451                                           uint8_t** ptr) {
2452     (void)vkStream;
2453     (void)rootType;
2454     memcpy(*ptr, (VkDescriptorType*)&forMarshaling->type, sizeof(VkDescriptorType));
2455     *ptr += sizeof(VkDescriptorType);
2456     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
2457     *ptr += sizeof(uint32_t);
2458 }
2459 
reservedmarshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorPoolCreateInfo * forMarshaling,uint8_t ** ptr)2460 void reservedmarshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest* vkStream,
2461                                                 VkStructureType rootType,
2462                                                 const VkDescriptorPoolCreateInfo* forMarshaling,
2463                                                 uint8_t** ptr) {
2464     (void)vkStream;
2465     (void)rootType;
2466     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2467     *ptr += sizeof(VkStructureType);
2468     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2469         rootType = forMarshaling->sType;
2470     }
2471     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2472     memcpy(*ptr, (VkDescriptorPoolCreateFlags*)&forMarshaling->flags,
2473            sizeof(VkDescriptorPoolCreateFlags));
2474     *ptr += sizeof(VkDescriptorPoolCreateFlags);
2475     memcpy(*ptr, (uint32_t*)&forMarshaling->maxSets, sizeof(uint32_t));
2476     *ptr += sizeof(uint32_t);
2477     memcpy(*ptr, (uint32_t*)&forMarshaling->poolSizeCount, sizeof(uint32_t));
2478     *ptr += sizeof(uint32_t);
2479     for (uint32_t i = 0; i < (uint32_t)forMarshaling->poolSizeCount; ++i) {
2480         reservedmarshal_VkDescriptorPoolSize(
2481             vkStream, rootType, (const VkDescriptorPoolSize*)(forMarshaling->pPoolSizes + i), ptr);
2482     }
2483 }
2484 
reservedmarshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetAllocateInfo * forMarshaling,uint8_t ** ptr)2485 void reservedmarshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest* vkStream,
2486                                                  VkStructureType rootType,
2487                                                  const VkDescriptorSetAllocateInfo* forMarshaling,
2488                                                  uint8_t** ptr) {
2489     (void)vkStream;
2490     (void)rootType;
2491     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2492     *ptr += sizeof(VkStructureType);
2493     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2494         rootType = forMarshaling->sType;
2495     }
2496     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2497     uint64_t cgen_var_0;
2498     *&cgen_var_0 = get_host_u64_VkDescriptorPool((*&forMarshaling->descriptorPool));
2499     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2500     *ptr += 1 * 8;
2501     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
2502     *ptr += sizeof(uint32_t);
2503     if (forMarshaling->descriptorSetCount) {
2504         uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
2505         if (forMarshaling) {
2506             for (uint32_t k = 0; k < forMarshaling->descriptorSetCount; ++k) {
2507                 uint64_t tmpval = get_host_u64_VkDescriptorSetLayout(forMarshaling->pSetLayouts[k]);
2508                 memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
2509             }
2510         }
2511         *ptr += 8 * forMarshaling->descriptorSetCount;
2512     }
2513 }
2514 
reservedmarshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutBinding * forMarshaling,uint8_t ** ptr)2515 void reservedmarshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest* vkStream,
2516                                                   VkStructureType rootType,
2517                                                   const VkDescriptorSetLayoutBinding* forMarshaling,
2518                                                   uint8_t** ptr) {
2519     (void)vkStream;
2520     (void)rootType;
2521     memcpy(*ptr, (uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
2522     *ptr += sizeof(uint32_t);
2523     memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
2524     *ptr += sizeof(VkDescriptorType);
2525     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
2526     *ptr += sizeof(uint32_t);
2527     memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
2528     *ptr += sizeof(VkShaderStageFlags);
2529     // WARNING PTR CHECK
2530     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
2531     memcpy((*ptr), &cgen_var_0, 8);
2532     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2533     *ptr += 8;
2534     if (forMarshaling->pImmutableSamplers) {
2535         if (forMarshaling->descriptorCount) {
2536             uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*ptr);
2537             if (forMarshaling) {
2538                 for (uint32_t k = 0; k < forMarshaling->descriptorCount; ++k) {
2539                     uint64_t tmpval = get_host_u64_VkSampler(forMarshaling->pImmutableSamplers[k]);
2540                     memcpy(cgen_var_0_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
2541                 }
2542             }
2543             *ptr += 8 * forMarshaling->descriptorCount;
2544         }
2545     }
2546 }
2547 
reservedmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutCreateInfo * forMarshaling,uint8_t ** ptr)2548 void reservedmarshal_VkDescriptorSetLayoutCreateInfo(
2549     VulkanStreamGuest* vkStream, VkStructureType rootType,
2550     const VkDescriptorSetLayoutCreateInfo* forMarshaling, uint8_t** ptr) {
2551     (void)vkStream;
2552     (void)rootType;
2553     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2554     *ptr += sizeof(VkStructureType);
2555     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2556         rootType = forMarshaling->sType;
2557     }
2558     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2559     memcpy(*ptr, (VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags,
2560            sizeof(VkDescriptorSetLayoutCreateFlags));
2561     *ptr += sizeof(VkDescriptorSetLayoutCreateFlags);
2562     memcpy(*ptr, (uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
2563     *ptr += sizeof(uint32_t);
2564     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i) {
2565         reservedmarshal_VkDescriptorSetLayoutBinding(
2566             vkStream, rootType, (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i),
2567             ptr);
2568     }
2569 }
2570 
reservedmarshal_VkWriteDescriptorSet(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkWriteDescriptorSet * forMarshaling,uint8_t ** ptr)2571 void reservedmarshal_VkWriteDescriptorSet(VulkanStreamGuest* vkStream, VkStructureType rootType,
2572                                           const VkWriteDescriptorSet* forMarshaling,
2573                                           uint8_t** ptr) {
2574     (void)vkStream;
2575     (void)rootType;
2576     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2577     *ptr += sizeof(VkStructureType);
2578     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2579         rootType = forMarshaling->sType;
2580     }
2581     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2582     uint64_t cgen_var_0;
2583     *&cgen_var_0 = get_host_u64_VkDescriptorSet((*&forMarshaling->dstSet));
2584     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2585     *ptr += 1 * 8;
2586     memcpy(*ptr, (uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
2587     *ptr += sizeof(uint32_t);
2588     memcpy(*ptr, (uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
2589     *ptr += sizeof(uint32_t);
2590     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
2591     *ptr += sizeof(uint32_t);
2592     memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
2593     *ptr += sizeof(VkDescriptorType);
2594     // WARNING PTR CHECK
2595     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
2596     memcpy((*ptr), &cgen_var_1, 8);
2597     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2598     *ptr += 8;
2599     if (forMarshaling->pImageInfo) {
2600         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2601              ((VK_DESCRIPTOR_TYPE_SAMPLER == forMarshaling->descriptorType) ||
2602               (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forMarshaling->descriptorType) ||
2603               (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forMarshaling->descriptorType) ||
2604               (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forMarshaling->descriptorType) ||
2605               (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forMarshaling->descriptorType)))) {
2606             for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i) {
2607                 reservedmarshal_VkDescriptorImageInfo(
2608                     vkStream, rootType,
2609                     (const VkDescriptorImageInfo*)(forMarshaling->pImageInfo + i), ptr);
2610             }
2611         }
2612     }
2613     // WARNING PTR CHECK
2614     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
2615     memcpy((*ptr), &cgen_var_2, 8);
2616     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2617     *ptr += 8;
2618     if (forMarshaling->pBufferInfo) {
2619         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2620              ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forMarshaling->descriptorType) ||
2621               (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forMarshaling->descriptorType) ||
2622               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forMarshaling->descriptorType) ||
2623               (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forMarshaling->descriptorType)))) {
2624             for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i) {
2625                 reservedmarshal_VkDescriptorBufferInfo(
2626                     vkStream, rootType,
2627                     (const VkDescriptorBufferInfo*)(forMarshaling->pBufferInfo + i), ptr);
2628             }
2629         }
2630     }
2631     // WARNING PTR CHECK
2632     uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
2633     memcpy((*ptr), &cgen_var_3, 8);
2634     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2635     *ptr += 8;
2636     if (forMarshaling->pTexelBufferView) {
2637         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2638              ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forMarshaling->descriptorType) ||
2639               (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forMarshaling->descriptorType)))) {
2640             if (forMarshaling->descriptorCount) {
2641                 uint8_t* cgen_var_3_0_ptr = (uint8_t*)(*ptr);
2642                 if (forMarshaling) {
2643                     for (uint32_t k = 0; k < forMarshaling->descriptorCount; ++k) {
2644                         uint64_t tmpval =
2645                             get_host_u64_VkBufferView(forMarshaling->pTexelBufferView[k]);
2646                         memcpy(cgen_var_3_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
2647                     }
2648                 }
2649                 *ptr += 8 * forMarshaling->descriptorCount;
2650             }
2651         }
2652     }
2653 }
2654 
reservedmarshal_VkAttachmentDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentDescription * forMarshaling,uint8_t ** ptr)2655 void reservedmarshal_VkAttachmentDescription(VulkanStreamGuest* vkStream, VkStructureType rootType,
2656                                              const VkAttachmentDescription* forMarshaling,
2657                                              uint8_t** ptr) {
2658     (void)vkStream;
2659     (void)rootType;
2660     memcpy(*ptr, (VkAttachmentDescriptionFlags*)&forMarshaling->flags,
2661            sizeof(VkAttachmentDescriptionFlags));
2662     *ptr += sizeof(VkAttachmentDescriptionFlags);
2663     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2664     *ptr += sizeof(VkFormat);
2665     memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
2666     *ptr += sizeof(VkSampleCountFlagBits);
2667     memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
2668     *ptr += sizeof(VkAttachmentLoadOp);
2669     memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
2670     *ptr += sizeof(VkAttachmentStoreOp);
2671     memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
2672     *ptr += sizeof(VkAttachmentLoadOp);
2673     memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
2674     *ptr += sizeof(VkAttachmentStoreOp);
2675     memcpy(*ptr, (VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
2676     *ptr += sizeof(VkImageLayout);
2677     memcpy(*ptr, (VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
2678     *ptr += sizeof(VkImageLayout);
2679 }
2680 
reservedmarshal_VkAttachmentReference(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentReference * forMarshaling,uint8_t ** ptr)2681 void reservedmarshal_VkAttachmentReference(VulkanStreamGuest* vkStream, VkStructureType rootType,
2682                                            const VkAttachmentReference* forMarshaling,
2683                                            uint8_t** ptr) {
2684     (void)vkStream;
2685     (void)rootType;
2686     memcpy(*ptr, (uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
2687     *ptr += sizeof(uint32_t);
2688     memcpy(*ptr, (VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
2689     *ptr += sizeof(VkImageLayout);
2690 }
2691 
reservedmarshal_VkFramebufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFramebufferCreateInfo * forMarshaling,uint8_t ** ptr)2692 void reservedmarshal_VkFramebufferCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2693                                              const VkFramebufferCreateInfo* forMarshaling,
2694                                              uint8_t** ptr) {
2695     (void)vkStream;
2696     (void)rootType;
2697     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2698     *ptr += sizeof(VkStructureType);
2699     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2700         rootType = forMarshaling->sType;
2701     }
2702     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2703     memcpy(*ptr, (VkFramebufferCreateFlags*)&forMarshaling->flags,
2704            sizeof(VkFramebufferCreateFlags));
2705     *ptr += sizeof(VkFramebufferCreateFlags);
2706     uint64_t cgen_var_0;
2707     *&cgen_var_0 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
2708     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2709     *ptr += 1 * 8;
2710     memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
2711     *ptr += sizeof(uint32_t);
2712     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2713          (((forMarshaling->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0)))) {
2714         if (forMarshaling->attachmentCount) {
2715             uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*ptr);
2716             if (forMarshaling) {
2717                 for (uint32_t k = 0; k < forMarshaling->attachmentCount; ++k) {
2718                     uint64_t tmpval = get_host_u64_VkImageView(forMarshaling->pAttachments[k]);
2719                     memcpy(cgen_var_0_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
2720                 }
2721             }
2722             *ptr += 8 * forMarshaling->attachmentCount;
2723         }
2724     }
2725     memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
2726     *ptr += sizeof(uint32_t);
2727     memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
2728     *ptr += sizeof(uint32_t);
2729     memcpy(*ptr, (uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
2730     *ptr += sizeof(uint32_t);
2731 }
2732 
reservedmarshal_VkSubpassDescription(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDescription * forMarshaling,uint8_t ** ptr)2733 void reservedmarshal_VkSubpassDescription(VulkanStreamGuest* vkStream, VkStructureType rootType,
2734                                           const VkSubpassDescription* forMarshaling,
2735                                           uint8_t** ptr) {
2736     (void)vkStream;
2737     (void)rootType;
2738     memcpy(*ptr, (VkSubpassDescriptionFlags*)&forMarshaling->flags,
2739            sizeof(VkSubpassDescriptionFlags));
2740     *ptr += sizeof(VkSubpassDescriptionFlags);
2741     memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
2742            sizeof(VkPipelineBindPoint));
2743     *ptr += sizeof(VkPipelineBindPoint);
2744     memcpy(*ptr, (uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
2745     *ptr += sizeof(uint32_t);
2746     for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i) {
2747         reservedmarshal_VkAttachmentReference(
2748             vkStream, rootType,
2749             (const VkAttachmentReference*)(forMarshaling->pInputAttachments + i), ptr);
2750     }
2751     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
2752     *ptr += sizeof(uint32_t);
2753     for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
2754         reservedmarshal_VkAttachmentReference(
2755             vkStream, rootType,
2756             (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i), ptr);
2757     }
2758     // WARNING PTR CHECK
2759     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
2760     memcpy((*ptr), &cgen_var_0, 8);
2761     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2762     *ptr += 8;
2763     if (forMarshaling->pResolveAttachments) {
2764         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
2765             reservedmarshal_VkAttachmentReference(
2766                 vkStream, rootType,
2767                 (const VkAttachmentReference*)(forMarshaling->pResolveAttachments + i), ptr);
2768         }
2769     }
2770     // WARNING PTR CHECK
2771     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
2772     memcpy((*ptr), &cgen_var_1, 8);
2773     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2774     *ptr += 8;
2775     if (forMarshaling->pDepthStencilAttachment) {
2776         reservedmarshal_VkAttachmentReference(
2777             vkStream, rootType,
2778             (const VkAttachmentReference*)(forMarshaling->pDepthStencilAttachment), ptr);
2779     }
2780     memcpy(*ptr, (uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
2781     *ptr += sizeof(uint32_t);
2782     memcpy(*ptr, (const uint32_t*)forMarshaling->pPreserveAttachments,
2783            forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
2784     *ptr += forMarshaling->preserveAttachmentCount * sizeof(const uint32_t);
2785 }
2786 
reservedmarshal_VkSubpassDependency(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDependency * forMarshaling,uint8_t ** ptr)2787 void reservedmarshal_VkSubpassDependency(VulkanStreamGuest* vkStream, VkStructureType rootType,
2788                                          const VkSubpassDependency* forMarshaling, uint8_t** ptr) {
2789     (void)vkStream;
2790     (void)rootType;
2791     memcpy(*ptr, (uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
2792     *ptr += sizeof(uint32_t);
2793     memcpy(*ptr, (uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
2794     *ptr += sizeof(uint32_t);
2795     memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
2796     *ptr += sizeof(VkPipelineStageFlags);
2797     memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
2798     *ptr += sizeof(VkPipelineStageFlags);
2799     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
2800     *ptr += sizeof(VkAccessFlags);
2801     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
2802     *ptr += sizeof(VkAccessFlags);
2803     memcpy(*ptr, (VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
2804     *ptr += sizeof(VkDependencyFlags);
2805 }
2806 
reservedmarshal_VkRenderPassCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassCreateInfo * forMarshaling,uint8_t ** ptr)2807 void reservedmarshal_VkRenderPassCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2808                                             const VkRenderPassCreateInfo* forMarshaling,
2809                                             uint8_t** ptr) {
2810     (void)vkStream;
2811     (void)rootType;
2812     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2813     *ptr += sizeof(VkStructureType);
2814     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2815         rootType = forMarshaling->sType;
2816     }
2817     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2818     memcpy(*ptr, (VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
2819     *ptr += sizeof(VkRenderPassCreateFlags);
2820     memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
2821     *ptr += sizeof(uint32_t);
2822     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
2823         reservedmarshal_VkAttachmentDescription(
2824             vkStream, rootType, (const VkAttachmentDescription*)(forMarshaling->pAttachments + i),
2825             ptr);
2826     }
2827     memcpy(*ptr, (uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
2828     *ptr += sizeof(uint32_t);
2829     for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i) {
2830         reservedmarshal_VkSubpassDescription(
2831             vkStream, rootType, (const VkSubpassDescription*)(forMarshaling->pSubpasses + i), ptr);
2832     }
2833     memcpy(*ptr, (uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
2834     *ptr += sizeof(uint32_t);
2835     for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i) {
2836         reservedmarshal_VkSubpassDependency(
2837             vkStream, rootType, (const VkSubpassDependency*)(forMarshaling->pDependencies + i),
2838             ptr);
2839     }
2840 }
2841 
reservedmarshal_VkCommandPoolCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandPoolCreateInfo * forMarshaling,uint8_t ** ptr)2842 void reservedmarshal_VkCommandPoolCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2843                                              const VkCommandPoolCreateInfo* forMarshaling,
2844                                              uint8_t** ptr) {
2845     (void)vkStream;
2846     (void)rootType;
2847     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2848     *ptr += sizeof(VkStructureType);
2849     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2850         rootType = forMarshaling->sType;
2851     }
2852     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2853     memcpy(*ptr, (VkCommandPoolCreateFlags*)&forMarshaling->flags,
2854            sizeof(VkCommandPoolCreateFlags));
2855     *ptr += sizeof(VkCommandPoolCreateFlags);
2856     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
2857     *ptr += sizeof(uint32_t);
2858 }
2859 
reservedmarshal_VkCommandBufferAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferAllocateInfo * forMarshaling,uint8_t ** ptr)2860 void reservedmarshal_VkCommandBufferAllocateInfo(VulkanStreamGuest* vkStream,
2861                                                  VkStructureType rootType,
2862                                                  const VkCommandBufferAllocateInfo* forMarshaling,
2863                                                  uint8_t** ptr) {
2864     (void)vkStream;
2865     (void)rootType;
2866     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2867     *ptr += sizeof(VkStructureType);
2868     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2869         rootType = forMarshaling->sType;
2870     }
2871     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2872     uint64_t cgen_var_0;
2873     *&cgen_var_0 = get_host_u64_VkCommandPool((*&forMarshaling->commandPool));
2874     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2875     *ptr += 1 * 8;
2876     memcpy(*ptr, (VkCommandBufferLevel*)&forMarshaling->level, sizeof(VkCommandBufferLevel));
2877     *ptr += sizeof(VkCommandBufferLevel);
2878     memcpy(*ptr, (uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
2879     *ptr += sizeof(uint32_t);
2880 }
2881 
reservedmarshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceInfo * forMarshaling,uint8_t ** ptr)2882 void reservedmarshal_VkCommandBufferInheritanceInfo(
2883     VulkanStreamGuest* vkStream, VkStructureType rootType,
2884     const VkCommandBufferInheritanceInfo* forMarshaling, uint8_t** ptr) {
2885     (void)vkStream;
2886     (void)rootType;
2887     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2888     *ptr += sizeof(VkStructureType);
2889     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2890         rootType = forMarshaling->sType;
2891     }
2892     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2893     uint64_t cgen_var_0;
2894     *&cgen_var_0 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
2895     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
2896     *ptr += 1 * 8;
2897     memcpy(*ptr, (uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
2898     *ptr += sizeof(uint32_t);
2899     uint64_t cgen_var_1;
2900     *&cgen_var_1 = get_host_u64_VkFramebuffer((*&forMarshaling->framebuffer));
2901     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
2902     *ptr += 1 * 8;
2903     memcpy(*ptr, (VkBool32*)&forMarshaling->occlusionQueryEnable, sizeof(VkBool32));
2904     *ptr += sizeof(VkBool32);
2905     memcpy(*ptr, (VkQueryControlFlags*)&forMarshaling->queryFlags, sizeof(VkQueryControlFlags));
2906     *ptr += sizeof(VkQueryControlFlags);
2907     memcpy(*ptr, (VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics,
2908            sizeof(VkQueryPipelineStatisticFlags));
2909     *ptr += sizeof(VkQueryPipelineStatisticFlags);
2910 }
2911 
reservedmarshal_VkCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferBeginInfo * forMarshaling,uint8_t ** ptr)2912 void reservedmarshal_VkCommandBufferBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
2913                                               const VkCommandBufferBeginInfo* forMarshaling,
2914                                               uint8_t** ptr) {
2915     (void)vkStream;
2916     (void)rootType;
2917     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2918     *ptr += sizeof(VkStructureType);
2919     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2920         rootType = forMarshaling->sType;
2921     }
2922     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
2923     memcpy(*ptr, (VkCommandBufferUsageFlags*)&forMarshaling->flags,
2924            sizeof(VkCommandBufferUsageFlags));
2925     *ptr += sizeof(VkCommandBufferUsageFlags);
2926     // WARNING PTR CHECK
2927     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
2928     memcpy((*ptr), &cgen_var_0, 8);
2929     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
2930     *ptr += 8;
2931     if (forMarshaling->pInheritanceInfo) {
2932         reservedmarshal_VkCommandBufferInheritanceInfo(
2933             vkStream, rootType,
2934             (const VkCommandBufferInheritanceInfo*)(forMarshaling->pInheritanceInfo), ptr);
2935     }
2936 }
2937 
reservedmarshal_VkBufferCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferCopy * forMarshaling,uint8_t ** ptr)2938 void reservedmarshal_VkBufferCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
2939                                   const VkBufferCopy* forMarshaling, uint8_t** ptr) {
2940     (void)vkStream;
2941     (void)rootType;
2942     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
2943     *ptr += sizeof(VkDeviceSize);
2944     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
2945     *ptr += sizeof(VkDeviceSize);
2946     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
2947     *ptr += sizeof(VkDeviceSize);
2948 }
2949 
reservedmarshal_VkImageSubresourceLayers(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresourceLayers * forMarshaling,uint8_t ** ptr)2950 void reservedmarshal_VkImageSubresourceLayers(VulkanStreamGuest* vkStream, VkStructureType rootType,
2951                                               const VkImageSubresourceLayers* forMarshaling,
2952                                               uint8_t** ptr) {
2953     (void)vkStream;
2954     (void)rootType;
2955     memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
2956     *ptr += sizeof(VkImageAspectFlags);
2957     memcpy(*ptr, (uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
2958     *ptr += sizeof(uint32_t);
2959     memcpy(*ptr, (uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
2960     *ptr += sizeof(uint32_t);
2961     memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
2962     *ptr += sizeof(uint32_t);
2963 }
2964 
reservedmarshal_VkBufferImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferImageCopy * forMarshaling,uint8_t ** ptr)2965 void reservedmarshal_VkBufferImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
2966                                        const VkBufferImageCopy* forMarshaling, uint8_t** ptr) {
2967     (void)vkStream;
2968     (void)rootType;
2969     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
2970     *ptr += sizeof(VkDeviceSize);
2971     memcpy(*ptr, (uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
2972     *ptr += sizeof(uint32_t);
2973     memcpy(*ptr, (uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
2974     *ptr += sizeof(uint32_t);
2975     reservedmarshal_VkImageSubresourceLayers(
2976         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource), ptr);
2977     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset), ptr);
2978     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent), ptr);
2979 }
2980 
reservedmarshal_VkClearColorValue(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearColorValue * forMarshaling,uint8_t ** ptr)2981 void reservedmarshal_VkClearColorValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
2982                                        const VkClearColorValue* forMarshaling, uint8_t** ptr) {
2983     (void)vkStream;
2984     (void)rootType;
2985     memcpy(*ptr, (float*)forMarshaling->float32, 4 * sizeof(float));
2986     *ptr += 4 * sizeof(float);
2987 }
2988 
reservedmarshal_VkClearDepthStencilValue(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearDepthStencilValue * forMarshaling,uint8_t ** ptr)2989 void reservedmarshal_VkClearDepthStencilValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
2990                                               const VkClearDepthStencilValue* forMarshaling,
2991                                               uint8_t** ptr) {
2992     (void)vkStream;
2993     (void)rootType;
2994     memcpy(*ptr, (float*)&forMarshaling->depth, sizeof(float));
2995     *ptr += sizeof(float);
2996     memcpy(*ptr, (uint32_t*)&forMarshaling->stencil, sizeof(uint32_t));
2997     *ptr += sizeof(uint32_t);
2998 }
2999 
reservedmarshal_VkClearValue(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearValue * forMarshaling,uint8_t ** ptr)3000 void reservedmarshal_VkClearValue(VulkanStreamGuest* vkStream, VkStructureType rootType,
3001                                   const VkClearValue* forMarshaling, uint8_t** ptr) {
3002     (void)vkStream;
3003     (void)rootType;
3004     reservedmarshal_VkClearColorValue(vkStream, rootType,
3005                                       (VkClearColorValue*)(&forMarshaling->color), ptr);
3006 }
3007 
reservedmarshal_VkClearAttachment(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearAttachment * forMarshaling,uint8_t ** ptr)3008 void reservedmarshal_VkClearAttachment(VulkanStreamGuest* vkStream, VkStructureType rootType,
3009                                        const VkClearAttachment* forMarshaling, uint8_t** ptr) {
3010     (void)vkStream;
3011     (void)rootType;
3012     memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
3013     *ptr += sizeof(VkImageAspectFlags);
3014     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachment, sizeof(uint32_t));
3015     *ptr += sizeof(uint32_t);
3016     reservedmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue),
3017                                  ptr);
3018 }
3019 
reservedmarshal_VkClearRect(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkClearRect * forMarshaling,uint8_t ** ptr)3020 void reservedmarshal_VkClearRect(VulkanStreamGuest* vkStream, VkStructureType rootType,
3021                                  const VkClearRect* forMarshaling, uint8_t** ptr) {
3022     (void)vkStream;
3023     (void)rootType;
3024     reservedmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->rect), ptr);
3025     memcpy(*ptr, (uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
3026     *ptr += sizeof(uint32_t);
3027     memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
3028     *ptr += sizeof(uint32_t);
3029 }
3030 
reservedmarshal_VkImageBlit(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageBlit * forMarshaling,uint8_t ** ptr)3031 void reservedmarshal_VkImageBlit(VulkanStreamGuest* vkStream, VkStructureType rootType,
3032                                  const VkImageBlit* forMarshaling, uint8_t** ptr) {
3033     (void)vkStream;
3034     (void)rootType;
3035     reservedmarshal_VkImageSubresourceLayers(
3036         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
3037     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
3038         reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->srcOffsets + i),
3039                                    ptr);
3040     }
3041     reservedmarshal_VkImageSubresourceLayers(
3042         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
3043     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
3044         reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->dstOffsets + i),
3045                                    ptr);
3046     }
3047 }
3048 
reservedmarshal_VkImageCopy(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCopy * forMarshaling,uint8_t ** ptr)3049 void reservedmarshal_VkImageCopy(VulkanStreamGuest* vkStream, VkStructureType rootType,
3050                                  const VkImageCopy* forMarshaling, uint8_t** ptr) {
3051     (void)vkStream;
3052     (void)rootType;
3053     reservedmarshal_VkImageSubresourceLayers(
3054         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
3055     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
3056     reservedmarshal_VkImageSubresourceLayers(
3057         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
3058     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
3059     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent), ptr);
3060 }
3061 
reservedmarshal_VkImageResolve(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageResolve * forMarshaling,uint8_t ** ptr)3062 void reservedmarshal_VkImageResolve(VulkanStreamGuest* vkStream, VkStructureType rootType,
3063                                     const VkImageResolve* forMarshaling, uint8_t** ptr) {
3064     (void)vkStream;
3065     (void)rootType;
3066     reservedmarshal_VkImageSubresourceLayers(
3067         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
3068     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
3069     reservedmarshal_VkImageSubresourceLayers(
3070         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
3071     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
3072     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent), ptr);
3073 }
3074 
reservedmarshal_VkRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassBeginInfo * forMarshaling,uint8_t ** ptr)3075 void reservedmarshal_VkRenderPassBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3076                                            const VkRenderPassBeginInfo* forMarshaling,
3077                                            uint8_t** ptr) {
3078     (void)vkStream;
3079     (void)rootType;
3080     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3081     *ptr += sizeof(VkStructureType);
3082     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3083         rootType = forMarshaling->sType;
3084     }
3085     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3086     uint64_t cgen_var_0;
3087     *&cgen_var_0 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
3088     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3089     *ptr += 1 * 8;
3090     uint64_t cgen_var_1;
3091     *&cgen_var_1 = get_host_u64_VkFramebuffer((*&forMarshaling->framebuffer));
3092     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
3093     *ptr += 1 * 8;
3094     reservedmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea), ptr);
3095     memcpy(*ptr, (uint32_t*)&forMarshaling->clearValueCount, sizeof(uint32_t));
3096     *ptr += sizeof(uint32_t);
3097     // WARNING PTR CHECK
3098     uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
3099     memcpy((*ptr), &cgen_var_2, 8);
3100     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
3101     *ptr += 8;
3102     if (forMarshaling->pClearValues) {
3103         for (uint32_t i = 0; i < (uint32_t)forMarshaling->clearValueCount; ++i) {
3104             reservedmarshal_VkClearValue(
3105                 vkStream, rootType, (const VkClearValue*)(forMarshaling->pClearValues + i), ptr);
3106         }
3107     }
3108 }
3109 
3110 #endif
3111 #ifdef VK_VERSION_1_1
reservedmarshal_VkPhysicalDeviceSubgroupProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupProperties * forMarshaling,uint8_t ** ptr)3112 void reservedmarshal_VkPhysicalDeviceSubgroupProperties(
3113     VulkanStreamGuest* vkStream, VkStructureType rootType,
3114     const VkPhysicalDeviceSubgroupProperties* forMarshaling, uint8_t** ptr) {
3115     (void)vkStream;
3116     (void)rootType;
3117     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3118     *ptr += sizeof(VkStructureType);
3119     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3120         rootType = forMarshaling->sType;
3121     }
3122     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3123     memcpy(*ptr, (uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
3124     *ptr += sizeof(uint32_t);
3125     memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->supportedStages, sizeof(VkShaderStageFlags));
3126     *ptr += sizeof(VkShaderStageFlags);
3127     memcpy(*ptr, (VkSubgroupFeatureFlags*)&forMarshaling->supportedOperations,
3128            sizeof(VkSubgroupFeatureFlags));
3129     *ptr += sizeof(VkSubgroupFeatureFlags);
3130     memcpy(*ptr, (VkBool32*)&forMarshaling->quadOperationsInAllStages, sizeof(VkBool32));
3131     *ptr += sizeof(VkBool32);
3132 }
3133 
reservedmarshal_VkBindBufferMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindBufferMemoryInfo * forMarshaling,uint8_t ** ptr)3134 void reservedmarshal_VkBindBufferMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3135                                             const VkBindBufferMemoryInfo* forMarshaling,
3136                                             uint8_t** ptr) {
3137     (void)vkStream;
3138     (void)rootType;
3139     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3140     *ptr += sizeof(VkStructureType);
3141     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3142         rootType = forMarshaling->sType;
3143     }
3144     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3145     uint64_t cgen_var_0;
3146     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
3147     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3148     *ptr += 1 * 8;
3149     uint64_t cgen_var_1;
3150     *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
3151     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
3152     *ptr += 1 * 8;
3153     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
3154     *ptr += sizeof(VkDeviceSize);
3155 }
3156 
reservedmarshal_VkBindImageMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindImageMemoryInfo * forMarshaling,uint8_t ** ptr)3157 void reservedmarshal_VkBindImageMemoryInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3158                                            const VkBindImageMemoryInfo* forMarshaling,
3159                                            uint8_t** ptr) {
3160     (void)vkStream;
3161     (void)rootType;
3162     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3163     *ptr += sizeof(VkStructureType);
3164     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3165         rootType = forMarshaling->sType;
3166     }
3167     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3168     uint64_t cgen_var_0;
3169     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
3170     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3171     *ptr += 1 * 8;
3172     uint64_t cgen_var_1;
3173     *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
3174     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
3175     *ptr += 1 * 8;
3176     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
3177     *ptr += sizeof(VkDeviceSize);
3178 }
3179 
reservedmarshal_VkPhysicalDevice16BitStorageFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevice16BitStorageFeatures * forMarshaling,uint8_t ** ptr)3180 void reservedmarshal_VkPhysicalDevice16BitStorageFeatures(
3181     VulkanStreamGuest* vkStream, VkStructureType rootType,
3182     const VkPhysicalDevice16BitStorageFeatures* forMarshaling, uint8_t** ptr) {
3183     (void)vkStream;
3184     (void)rootType;
3185     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3186     *ptr += sizeof(VkStructureType);
3187     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3188         rootType = forMarshaling->sType;
3189     }
3190     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3191     memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
3192     *ptr += sizeof(VkBool32);
3193     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
3194     *ptr += sizeof(VkBool32);
3195     memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
3196     *ptr += sizeof(VkBool32);
3197     memcpy(*ptr, (VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
3198     *ptr += sizeof(VkBool32);
3199 }
3200 
reservedmarshal_VkMemoryDedicatedRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryDedicatedRequirements * forMarshaling,uint8_t ** ptr)3201 void reservedmarshal_VkMemoryDedicatedRequirements(
3202     VulkanStreamGuest* vkStream, VkStructureType rootType,
3203     const VkMemoryDedicatedRequirements* forMarshaling, uint8_t** ptr) {
3204     (void)vkStream;
3205     (void)rootType;
3206     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3207     *ptr += sizeof(VkStructureType);
3208     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3209         rootType = forMarshaling->sType;
3210     }
3211     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3212     memcpy(*ptr, (VkBool32*)&forMarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
3213     *ptr += sizeof(VkBool32);
3214     memcpy(*ptr, (VkBool32*)&forMarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
3215     *ptr += sizeof(VkBool32);
3216 }
3217 
reservedmarshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryDedicatedAllocateInfo * forMarshaling,uint8_t ** ptr)3218 void reservedmarshal_VkMemoryDedicatedAllocateInfo(
3219     VulkanStreamGuest* vkStream, VkStructureType rootType,
3220     const VkMemoryDedicatedAllocateInfo* forMarshaling, uint8_t** ptr) {
3221     (void)vkStream;
3222     (void)rootType;
3223     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3224     *ptr += sizeof(VkStructureType);
3225     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3226         rootType = forMarshaling->sType;
3227     }
3228     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3229     uint64_t cgen_var_0;
3230     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
3231     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3232     *ptr += 1 * 8;
3233     uint64_t cgen_var_1;
3234     *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
3235     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
3236     *ptr += 1 * 8;
3237 }
3238 
reservedmarshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryAllocateFlagsInfo * forMarshaling,uint8_t ** ptr)3239 void reservedmarshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest* vkStream,
3240                                                VkStructureType rootType,
3241                                                const VkMemoryAllocateFlagsInfo* forMarshaling,
3242                                                uint8_t** ptr) {
3243     (void)vkStream;
3244     (void)rootType;
3245     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3246     *ptr += sizeof(VkStructureType);
3247     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3248         rootType = forMarshaling->sType;
3249     }
3250     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3251     memcpy(*ptr, (VkMemoryAllocateFlags*)&forMarshaling->flags, sizeof(VkMemoryAllocateFlags));
3252     *ptr += sizeof(VkMemoryAllocateFlags);
3253     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
3254     *ptr += sizeof(uint32_t);
3255 }
3256 
reservedmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupRenderPassBeginInfo * forMarshaling,uint8_t ** ptr)3257 void reservedmarshal_VkDeviceGroupRenderPassBeginInfo(
3258     VulkanStreamGuest* vkStream, VkStructureType rootType,
3259     const VkDeviceGroupRenderPassBeginInfo* forMarshaling, uint8_t** ptr) {
3260     (void)vkStream;
3261     (void)rootType;
3262     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3263     *ptr += sizeof(VkStructureType);
3264     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3265         rootType = forMarshaling->sType;
3266     }
3267     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3268     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
3269     *ptr += sizeof(uint32_t);
3270     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceRenderAreaCount, sizeof(uint32_t));
3271     *ptr += sizeof(uint32_t);
3272     for (uint32_t i = 0; i < (uint32_t)forMarshaling->deviceRenderAreaCount; ++i) {
3273         reservedmarshal_VkRect2D(vkStream, rootType,
3274                                  (const VkRect2D*)(forMarshaling->pDeviceRenderAreas + i), ptr);
3275     }
3276 }
3277 
reservedmarshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupCommandBufferBeginInfo * forMarshaling,uint8_t ** ptr)3278 void reservedmarshal_VkDeviceGroupCommandBufferBeginInfo(
3279     VulkanStreamGuest* vkStream, VkStructureType rootType,
3280     const VkDeviceGroupCommandBufferBeginInfo* forMarshaling, uint8_t** ptr) {
3281     (void)vkStream;
3282     (void)rootType;
3283     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3284     *ptr += sizeof(VkStructureType);
3285     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3286         rootType = forMarshaling->sType;
3287     }
3288     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3289     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
3290     *ptr += sizeof(uint32_t);
3291 }
3292 
reservedmarshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupSubmitInfo * forMarshaling,uint8_t ** ptr)3293 void reservedmarshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3294                                              const VkDeviceGroupSubmitInfo* forMarshaling,
3295                                              uint8_t** ptr) {
3296     (void)vkStream;
3297     (void)rootType;
3298     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3299     *ptr += sizeof(VkStructureType);
3300     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3301         rootType = forMarshaling->sType;
3302     }
3303     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3304     memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
3305     *ptr += sizeof(uint32_t);
3306     memcpy(*ptr, (const uint32_t*)forMarshaling->pWaitSemaphoreDeviceIndices,
3307            forMarshaling->waitSemaphoreCount * sizeof(const uint32_t));
3308     *ptr += forMarshaling->waitSemaphoreCount * sizeof(const uint32_t);
3309     memcpy(*ptr, (uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
3310     *ptr += sizeof(uint32_t);
3311     memcpy(*ptr, (const uint32_t*)forMarshaling->pCommandBufferDeviceMasks,
3312            forMarshaling->commandBufferCount * sizeof(const uint32_t));
3313     *ptr += forMarshaling->commandBufferCount * sizeof(const uint32_t);
3314     memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
3315     *ptr += sizeof(uint32_t);
3316     memcpy(*ptr, (const uint32_t*)forMarshaling->pSignalSemaphoreDeviceIndices,
3317            forMarshaling->signalSemaphoreCount * sizeof(const uint32_t));
3318     *ptr += forMarshaling->signalSemaphoreCount * sizeof(const uint32_t);
3319 }
3320 
reservedmarshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupBindSparseInfo * forMarshaling,uint8_t ** ptr)3321 void reservedmarshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest* vkStream,
3322                                                  VkStructureType rootType,
3323                                                  const VkDeviceGroupBindSparseInfo* forMarshaling,
3324                                                  uint8_t** ptr) {
3325     (void)vkStream;
3326     (void)rootType;
3327     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3328     *ptr += sizeof(VkStructureType);
3329     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3330         rootType = forMarshaling->sType;
3331     }
3332     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3333     memcpy(*ptr, (uint32_t*)&forMarshaling->resourceDeviceIndex, sizeof(uint32_t));
3334     *ptr += sizeof(uint32_t);
3335     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryDeviceIndex, sizeof(uint32_t));
3336     *ptr += sizeof(uint32_t);
3337 }
3338 
reservedmarshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindBufferMemoryDeviceGroupInfo * forMarshaling,uint8_t ** ptr)3339 void reservedmarshal_VkBindBufferMemoryDeviceGroupInfo(
3340     VulkanStreamGuest* vkStream, VkStructureType rootType,
3341     const VkBindBufferMemoryDeviceGroupInfo* forMarshaling, uint8_t** ptr) {
3342     (void)vkStream;
3343     (void)rootType;
3344     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3345     *ptr += sizeof(VkStructureType);
3346     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3347         rootType = forMarshaling->sType;
3348     }
3349     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3350     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
3351     *ptr += sizeof(uint32_t);
3352     memcpy(*ptr, (const uint32_t*)forMarshaling->pDeviceIndices,
3353            forMarshaling->deviceIndexCount * sizeof(const uint32_t));
3354     *ptr += forMarshaling->deviceIndexCount * sizeof(const uint32_t);
3355 }
3356 
reservedmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindImageMemoryDeviceGroupInfo * forMarshaling,uint8_t ** ptr)3357 void reservedmarshal_VkBindImageMemoryDeviceGroupInfo(
3358     VulkanStreamGuest* vkStream, VkStructureType rootType,
3359     const VkBindImageMemoryDeviceGroupInfo* forMarshaling, uint8_t** ptr) {
3360     (void)vkStream;
3361     (void)rootType;
3362     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3363     *ptr += sizeof(VkStructureType);
3364     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3365         rootType = forMarshaling->sType;
3366     }
3367     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3368     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
3369     *ptr += sizeof(uint32_t);
3370     memcpy(*ptr, (const uint32_t*)forMarshaling->pDeviceIndices,
3371            forMarshaling->deviceIndexCount * sizeof(const uint32_t));
3372     *ptr += forMarshaling->deviceIndexCount * sizeof(const uint32_t);
3373     memcpy(*ptr, (uint32_t*)&forMarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
3374     *ptr += sizeof(uint32_t);
3375     for (uint32_t i = 0; i < (uint32_t)forMarshaling->splitInstanceBindRegionCount; ++i) {
3376         reservedmarshal_VkRect2D(vkStream, rootType,
3377                                  (const VkRect2D*)(forMarshaling->pSplitInstanceBindRegions + i),
3378                                  ptr);
3379     }
3380 }
3381 
reservedmarshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGroupProperties * forMarshaling,uint8_t ** ptr)3382 void reservedmarshal_VkPhysicalDeviceGroupProperties(
3383     VulkanStreamGuest* vkStream, VkStructureType rootType,
3384     const VkPhysicalDeviceGroupProperties* forMarshaling, uint8_t** ptr) {
3385     (void)vkStream;
3386     (void)rootType;
3387     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3388     *ptr += sizeof(VkStructureType);
3389     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3390         rootType = forMarshaling->sType;
3391     }
3392     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3393     memcpy(*ptr, (uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
3394     *ptr += sizeof(uint32_t);
3395     memcpy(*ptr, (VkPhysicalDevice*)forMarshaling->physicalDevices,
3396            VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
3397     *ptr += VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice);
3398     memcpy(*ptr, (VkBool32*)&forMarshaling->subsetAllocation, sizeof(VkBool32));
3399     *ptr += sizeof(VkBool32);
3400 }
3401 
reservedmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceGroupDeviceCreateInfo * forMarshaling,uint8_t ** ptr)3402 void reservedmarshal_VkDeviceGroupDeviceCreateInfo(
3403     VulkanStreamGuest* vkStream, VkStructureType rootType,
3404     const VkDeviceGroupDeviceCreateInfo* forMarshaling, uint8_t** ptr) {
3405     (void)vkStream;
3406     (void)rootType;
3407     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3408     *ptr += sizeof(VkStructureType);
3409     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3410         rootType = forMarshaling->sType;
3411     }
3412     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3413     memcpy(*ptr, (uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
3414     *ptr += sizeof(uint32_t);
3415     if (forMarshaling->physicalDeviceCount) {
3416         uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
3417         if (forMarshaling) {
3418             for (uint32_t k = 0; k < forMarshaling->physicalDeviceCount; ++k) {
3419                 uint64_t tmpval = get_host_u64_VkPhysicalDevice(forMarshaling->pPhysicalDevices[k]);
3420                 memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
3421             }
3422         }
3423         *ptr += 8 * forMarshaling->physicalDeviceCount;
3424     }
3425 }
3426 
reservedmarshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferMemoryRequirementsInfo2 * forMarshaling,uint8_t ** ptr)3427 void reservedmarshal_VkBufferMemoryRequirementsInfo2(
3428     VulkanStreamGuest* vkStream, VkStructureType rootType,
3429     const VkBufferMemoryRequirementsInfo2* forMarshaling, uint8_t** ptr) {
3430     (void)vkStream;
3431     (void)rootType;
3432     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3433     *ptr += sizeof(VkStructureType);
3434     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3435         rootType = forMarshaling->sType;
3436     }
3437     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3438     uint64_t cgen_var_0;
3439     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
3440     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3441     *ptr += 1 * 8;
3442 }
3443 
reservedmarshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageMemoryRequirementsInfo2 * forMarshaling,uint8_t ** ptr)3444 void reservedmarshal_VkImageMemoryRequirementsInfo2(
3445     VulkanStreamGuest* vkStream, VkStructureType rootType,
3446     const VkImageMemoryRequirementsInfo2* forMarshaling, uint8_t** ptr) {
3447     (void)vkStream;
3448     (void)rootType;
3449     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3450     *ptr += sizeof(VkStructureType);
3451     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3452         rootType = forMarshaling->sType;
3453     }
3454     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3455     uint64_t cgen_var_0;
3456     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
3457     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3458     *ptr += 1 * 8;
3459 }
3460 
reservedmarshal_VkImageSparseMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSparseMemoryRequirementsInfo2 * forMarshaling,uint8_t ** ptr)3461 void reservedmarshal_VkImageSparseMemoryRequirementsInfo2(
3462     VulkanStreamGuest* vkStream, VkStructureType rootType,
3463     const VkImageSparseMemoryRequirementsInfo2* forMarshaling, uint8_t** ptr) {
3464     (void)vkStream;
3465     (void)rootType;
3466     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3467     *ptr += sizeof(VkStructureType);
3468     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3469         rootType = forMarshaling->sType;
3470     }
3471     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3472     uint64_t cgen_var_0;
3473     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
3474     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3475     *ptr += 1 * 8;
3476 }
3477 
reservedmarshal_VkMemoryRequirements2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryRequirements2 * forMarshaling,uint8_t ** ptr)3478 void reservedmarshal_VkMemoryRequirements2(VulkanStreamGuest* vkStream, VkStructureType rootType,
3479                                            const VkMemoryRequirements2* forMarshaling,
3480                                            uint8_t** ptr) {
3481     (void)vkStream;
3482     (void)rootType;
3483     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3484     *ptr += sizeof(VkStructureType);
3485     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3486         rootType = forMarshaling->sType;
3487     }
3488     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3489     reservedmarshal_VkMemoryRequirements(
3490         vkStream, rootType, (VkMemoryRequirements*)(&forMarshaling->memoryRequirements), ptr);
3491 }
3492 
reservedmarshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageMemoryRequirements2 * forMarshaling,uint8_t ** ptr)3493 void reservedmarshal_VkSparseImageMemoryRequirements2(
3494     VulkanStreamGuest* vkStream, VkStructureType rootType,
3495     const VkSparseImageMemoryRequirements2* forMarshaling, uint8_t** ptr) {
3496     (void)vkStream;
3497     (void)rootType;
3498     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3499     *ptr += sizeof(VkStructureType);
3500     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3501         rootType = forMarshaling->sType;
3502     }
3503     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3504     reservedmarshal_VkSparseImageMemoryRequirements(
3505         vkStream, rootType, (VkSparseImageMemoryRequirements*)(&forMarshaling->memoryRequirements),
3506         ptr);
3507 }
3508 
reservedmarshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFeatures2 * forMarshaling,uint8_t ** ptr)3509 void reservedmarshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest* vkStream,
3510                                                VkStructureType rootType,
3511                                                const VkPhysicalDeviceFeatures2* forMarshaling,
3512                                                uint8_t** ptr) {
3513     (void)vkStream;
3514     (void)rootType;
3515     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3516     *ptr += sizeof(VkStructureType);
3517     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3518         rootType = forMarshaling->sType;
3519     }
3520     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3521     reservedmarshal_VkPhysicalDeviceFeatures(
3522         vkStream, rootType, (VkPhysicalDeviceFeatures*)(&forMarshaling->features), ptr);
3523 }
3524 
reservedmarshal_VkPhysicalDeviceProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProperties2 * forMarshaling,uint8_t ** ptr)3525 void reservedmarshal_VkPhysicalDeviceProperties2(VulkanStreamGuest* vkStream,
3526                                                  VkStructureType rootType,
3527                                                  const VkPhysicalDeviceProperties2* forMarshaling,
3528                                                  uint8_t** ptr) {
3529     (void)vkStream;
3530     (void)rootType;
3531     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3532     *ptr += sizeof(VkStructureType);
3533     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3534         rootType = forMarshaling->sType;
3535     }
3536     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3537     reservedmarshal_VkPhysicalDeviceProperties(
3538         vkStream, rootType, (VkPhysicalDeviceProperties*)(&forMarshaling->properties), ptr);
3539 }
3540 
reservedmarshal_VkFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFormatProperties2 * forMarshaling,uint8_t ** ptr)3541 void reservedmarshal_VkFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
3542                                          const VkFormatProperties2* forMarshaling, uint8_t** ptr) {
3543     (void)vkStream;
3544     (void)rootType;
3545     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3546     *ptr += sizeof(VkStructureType);
3547     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3548         rootType = forMarshaling->sType;
3549     }
3550     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3551     reservedmarshal_VkFormatProperties(
3552         vkStream, rootType, (VkFormatProperties*)(&forMarshaling->formatProperties), ptr);
3553 }
3554 
reservedmarshal_VkImageFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageFormatProperties2 * forMarshaling,uint8_t ** ptr)3555 void reservedmarshal_VkImageFormatProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
3556                                               const VkImageFormatProperties2* forMarshaling,
3557                                               uint8_t** ptr) {
3558     (void)vkStream;
3559     (void)rootType;
3560     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3561     *ptr += sizeof(VkStructureType);
3562     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3563         rootType = forMarshaling->sType;
3564     }
3565     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3566     reservedmarshal_VkImageFormatProperties(
3567         vkStream, rootType, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties), ptr);
3568 }
3569 
reservedmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageFormatInfo2 * forMarshaling,uint8_t ** ptr)3570 void reservedmarshal_VkPhysicalDeviceImageFormatInfo2(
3571     VulkanStreamGuest* vkStream, VkStructureType rootType,
3572     const VkPhysicalDeviceImageFormatInfo2* forMarshaling, uint8_t** ptr) {
3573     (void)vkStream;
3574     (void)rootType;
3575     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3576     *ptr += sizeof(VkStructureType);
3577     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3578         rootType = forMarshaling->sType;
3579     }
3580     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3581     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
3582     *ptr += sizeof(VkFormat);
3583     memcpy(*ptr, (VkImageType*)&forMarshaling->type, sizeof(VkImageType));
3584     *ptr += sizeof(VkImageType);
3585     memcpy(*ptr, (VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
3586     *ptr += sizeof(VkImageTiling);
3587     memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
3588     *ptr += sizeof(VkImageUsageFlags);
3589     memcpy(*ptr, (VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
3590     *ptr += sizeof(VkImageCreateFlags);
3591 }
3592 
reservedmarshal_VkQueueFamilyProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueueFamilyProperties2 * forMarshaling,uint8_t ** ptr)3593 void reservedmarshal_VkQueueFamilyProperties2(VulkanStreamGuest* vkStream, VkStructureType rootType,
3594                                               const VkQueueFamilyProperties2* forMarshaling,
3595                                               uint8_t** ptr) {
3596     (void)vkStream;
3597     (void)rootType;
3598     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3599     *ptr += sizeof(VkStructureType);
3600     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3601         rootType = forMarshaling->sType;
3602     }
3603     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3604     reservedmarshal_VkQueueFamilyProperties(
3605         vkStream, rootType, (VkQueueFamilyProperties*)(&forMarshaling->queueFamilyProperties), ptr);
3606 }
3607 
reservedmarshal_VkPhysicalDeviceMemoryProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMemoryProperties2 * forMarshaling,uint8_t ** ptr)3608 void reservedmarshal_VkPhysicalDeviceMemoryProperties2(
3609     VulkanStreamGuest* vkStream, VkStructureType rootType,
3610     const VkPhysicalDeviceMemoryProperties2* forMarshaling, uint8_t** ptr) {
3611     (void)vkStream;
3612     (void)rootType;
3613     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3614     *ptr += sizeof(VkStructureType);
3615     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3616         rootType = forMarshaling->sType;
3617     }
3618     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3619     reservedmarshal_VkPhysicalDeviceMemoryProperties(
3620         vkStream, rootType, (VkPhysicalDeviceMemoryProperties*)(&forMarshaling->memoryProperties),
3621         ptr);
3622 }
3623 
reservedmarshal_VkSparseImageFormatProperties2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSparseImageFormatProperties2 * forMarshaling,uint8_t ** ptr)3624 void reservedmarshal_VkSparseImageFormatProperties2(
3625     VulkanStreamGuest* vkStream, VkStructureType rootType,
3626     const VkSparseImageFormatProperties2* forMarshaling, uint8_t** ptr) {
3627     (void)vkStream;
3628     (void)rootType;
3629     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3630     *ptr += sizeof(VkStructureType);
3631     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3632         rootType = forMarshaling->sType;
3633     }
3634     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3635     reservedmarshal_VkSparseImageFormatProperties(
3636         vkStream, rootType, (VkSparseImageFormatProperties*)(&forMarshaling->properties), ptr);
3637 }
3638 
reservedmarshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSparseImageFormatInfo2 * forMarshaling,uint8_t ** ptr)3639 void reservedmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
3640     VulkanStreamGuest* vkStream, VkStructureType rootType,
3641     const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling, uint8_t** ptr) {
3642     (void)vkStream;
3643     (void)rootType;
3644     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3645     *ptr += sizeof(VkStructureType);
3646     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3647         rootType = forMarshaling->sType;
3648     }
3649     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3650     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
3651     *ptr += sizeof(VkFormat);
3652     memcpy(*ptr, (VkImageType*)&forMarshaling->type, sizeof(VkImageType));
3653     *ptr += sizeof(VkImageType);
3654     memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
3655     *ptr += sizeof(VkSampleCountFlagBits);
3656     memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
3657     *ptr += sizeof(VkImageUsageFlags);
3658     memcpy(*ptr, (VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
3659     *ptr += sizeof(VkImageTiling);
3660 }
3661 
reservedmarshal_VkPhysicalDevicePointClippingProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePointClippingProperties * forMarshaling,uint8_t ** ptr)3662 void reservedmarshal_VkPhysicalDevicePointClippingProperties(
3663     VulkanStreamGuest* vkStream, VkStructureType rootType,
3664     const VkPhysicalDevicePointClippingProperties* forMarshaling, uint8_t** ptr) {
3665     (void)vkStream;
3666     (void)rootType;
3667     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3668     *ptr += sizeof(VkStructureType);
3669     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3670         rootType = forMarshaling->sType;
3671     }
3672     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3673     memcpy(*ptr, (VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior,
3674            sizeof(VkPointClippingBehavior));
3675     *ptr += sizeof(VkPointClippingBehavior);
3676 }
3677 
reservedmarshal_VkInputAttachmentAspectReference(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkInputAttachmentAspectReference * forMarshaling,uint8_t ** ptr)3678 void reservedmarshal_VkInputAttachmentAspectReference(
3679     VulkanStreamGuest* vkStream, VkStructureType rootType,
3680     const VkInputAttachmentAspectReference* forMarshaling, uint8_t** ptr) {
3681     (void)vkStream;
3682     (void)rootType;
3683     memcpy(*ptr, (uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
3684     *ptr += sizeof(uint32_t);
3685     memcpy(*ptr, (uint32_t*)&forMarshaling->inputAttachmentIndex, sizeof(uint32_t));
3686     *ptr += sizeof(uint32_t);
3687     memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
3688     *ptr += sizeof(VkImageAspectFlags);
3689 }
3690 
reservedmarshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassInputAttachmentAspectCreateInfo * forMarshaling,uint8_t ** ptr)3691 void reservedmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
3692     VulkanStreamGuest* vkStream, VkStructureType rootType,
3693     const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling, uint8_t** ptr) {
3694     (void)vkStream;
3695     (void)rootType;
3696     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3697     *ptr += sizeof(VkStructureType);
3698     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3699         rootType = forMarshaling->sType;
3700     }
3701     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3702     memcpy(*ptr, (uint32_t*)&forMarshaling->aspectReferenceCount, sizeof(uint32_t));
3703     *ptr += sizeof(uint32_t);
3704     for (uint32_t i = 0; i < (uint32_t)forMarshaling->aspectReferenceCount; ++i) {
3705         reservedmarshal_VkInputAttachmentAspectReference(
3706             vkStream, rootType,
3707             (const VkInputAttachmentAspectReference*)(forMarshaling->pAspectReferences + i), ptr);
3708     }
3709 }
3710 
reservedmarshal_VkImageViewUsageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageViewUsageCreateInfo * forMarshaling,uint8_t ** ptr)3711 void reservedmarshal_VkImageViewUsageCreateInfo(VulkanStreamGuest* vkStream,
3712                                                 VkStructureType rootType,
3713                                                 const VkImageViewUsageCreateInfo* forMarshaling,
3714                                                 uint8_t** ptr) {
3715     (void)vkStream;
3716     (void)rootType;
3717     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3718     *ptr += sizeof(VkStructureType);
3719     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3720         rootType = forMarshaling->sType;
3721     }
3722     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3723     memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
3724     *ptr += sizeof(VkImageUsageFlags);
3725 }
3726 
reservedmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineTessellationDomainOriginStateCreateInfo * forMarshaling,uint8_t ** ptr)3727 void reservedmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
3728     VulkanStreamGuest* vkStream, VkStructureType rootType,
3729     const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling, uint8_t** ptr) {
3730     (void)vkStream;
3731     (void)rootType;
3732     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3733     *ptr += sizeof(VkStructureType);
3734     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3735         rootType = forMarshaling->sType;
3736     }
3737     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3738     memcpy(*ptr, (VkTessellationDomainOrigin*)&forMarshaling->domainOrigin,
3739            sizeof(VkTessellationDomainOrigin));
3740     *ptr += sizeof(VkTessellationDomainOrigin);
3741 }
3742 
reservedmarshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassMultiviewCreateInfo * forMarshaling,uint8_t ** ptr)3743 void reservedmarshal_VkRenderPassMultiviewCreateInfo(
3744     VulkanStreamGuest* vkStream, VkStructureType rootType,
3745     const VkRenderPassMultiviewCreateInfo* forMarshaling, uint8_t** ptr) {
3746     (void)vkStream;
3747     (void)rootType;
3748     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3749     *ptr += sizeof(VkStructureType);
3750     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3751         rootType = forMarshaling->sType;
3752     }
3753     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3754     memcpy(*ptr, (uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
3755     *ptr += sizeof(uint32_t);
3756     memcpy(*ptr, (const uint32_t*)forMarshaling->pViewMasks,
3757            forMarshaling->subpassCount * sizeof(const uint32_t));
3758     *ptr += forMarshaling->subpassCount * sizeof(const uint32_t);
3759     memcpy(*ptr, (uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
3760     *ptr += sizeof(uint32_t);
3761     memcpy(*ptr, (const int32_t*)forMarshaling->pViewOffsets,
3762            forMarshaling->dependencyCount * sizeof(const int32_t));
3763     *ptr += forMarshaling->dependencyCount * sizeof(const int32_t);
3764     memcpy(*ptr, (uint32_t*)&forMarshaling->correlationMaskCount, sizeof(uint32_t));
3765     *ptr += sizeof(uint32_t);
3766     memcpy(*ptr, (const uint32_t*)forMarshaling->pCorrelationMasks,
3767            forMarshaling->correlationMaskCount * sizeof(const uint32_t));
3768     *ptr += forMarshaling->correlationMaskCount * sizeof(const uint32_t);
3769 }
3770 
reservedmarshal_VkPhysicalDeviceMultiviewFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewFeatures * forMarshaling,uint8_t ** ptr)3771 void reservedmarshal_VkPhysicalDeviceMultiviewFeatures(
3772     VulkanStreamGuest* vkStream, VkStructureType rootType,
3773     const VkPhysicalDeviceMultiviewFeatures* forMarshaling, uint8_t** ptr) {
3774     (void)vkStream;
3775     (void)rootType;
3776     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3777     *ptr += sizeof(VkStructureType);
3778     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3779         rootType = forMarshaling->sType;
3780     }
3781     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3782     memcpy(*ptr, (VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
3783     *ptr += sizeof(VkBool32);
3784     memcpy(*ptr, (VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
3785     *ptr += sizeof(VkBool32);
3786     memcpy(*ptr, (VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
3787     *ptr += sizeof(VkBool32);
3788 }
3789 
reservedmarshal_VkPhysicalDeviceMultiviewProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMultiviewProperties * forMarshaling,uint8_t ** ptr)3790 void reservedmarshal_VkPhysicalDeviceMultiviewProperties(
3791     VulkanStreamGuest* vkStream, VkStructureType rootType,
3792     const VkPhysicalDeviceMultiviewProperties* forMarshaling, uint8_t** ptr) {
3793     (void)vkStream;
3794     (void)rootType;
3795     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3796     *ptr += sizeof(VkStructureType);
3797     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3798         rootType = forMarshaling->sType;
3799     }
3800     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3801     memcpy(*ptr, (uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
3802     *ptr += sizeof(uint32_t);
3803     memcpy(*ptr, (uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
3804     *ptr += sizeof(uint32_t);
3805 }
3806 
reservedmarshal_VkPhysicalDeviceVariablePointersFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVariablePointersFeatures * forMarshaling,uint8_t ** ptr)3807 void reservedmarshal_VkPhysicalDeviceVariablePointersFeatures(
3808     VulkanStreamGuest* vkStream, VkStructureType rootType,
3809     const VkPhysicalDeviceVariablePointersFeatures* forMarshaling, uint8_t** ptr) {
3810     (void)vkStream;
3811     (void)rootType;
3812     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3813     *ptr += sizeof(VkStructureType);
3814     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3815         rootType = forMarshaling->sType;
3816     }
3817     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3818     memcpy(*ptr, (VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
3819     *ptr += sizeof(VkBool32);
3820     memcpy(*ptr, (VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
3821     *ptr += sizeof(VkBool32);
3822 }
3823 
reservedmarshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryFeatures * forMarshaling,uint8_t ** ptr)3824 void reservedmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
3825     VulkanStreamGuest* vkStream, VkStructureType rootType,
3826     const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling, uint8_t** ptr) {
3827     (void)vkStream;
3828     (void)rootType;
3829     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3830     *ptr += sizeof(VkStructureType);
3831     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3832         rootType = forMarshaling->sType;
3833     }
3834     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3835     memcpy(*ptr, (VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
3836     *ptr += sizeof(VkBool32);
3837 }
3838 
reservedmarshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProtectedMemoryProperties * forMarshaling,uint8_t ** ptr)3839 void reservedmarshal_VkPhysicalDeviceProtectedMemoryProperties(
3840     VulkanStreamGuest* vkStream, VkStructureType rootType,
3841     const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling, uint8_t** ptr) {
3842     (void)vkStream;
3843     (void)rootType;
3844     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3845     *ptr += sizeof(VkStructureType);
3846     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3847         rootType = forMarshaling->sType;
3848     }
3849     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3850     memcpy(*ptr, (VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
3851     *ptr += sizeof(VkBool32);
3852 }
3853 
reservedmarshal_VkDeviceQueueInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceQueueInfo2 * forMarshaling,uint8_t ** ptr)3854 void reservedmarshal_VkDeviceQueueInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
3855                                         const VkDeviceQueueInfo2* forMarshaling, uint8_t** ptr) {
3856     (void)vkStream;
3857     (void)rootType;
3858     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3859     *ptr += sizeof(VkStructureType);
3860     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3861         rootType = forMarshaling->sType;
3862     }
3863     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3864     memcpy(*ptr, (VkDeviceQueueCreateFlags*)&forMarshaling->flags,
3865            sizeof(VkDeviceQueueCreateFlags));
3866     *ptr += sizeof(VkDeviceQueueCreateFlags);
3867     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
3868     *ptr += sizeof(uint32_t);
3869     memcpy(*ptr, (uint32_t*)&forMarshaling->queueIndex, sizeof(uint32_t));
3870     *ptr += sizeof(uint32_t);
3871 }
3872 
reservedmarshal_VkProtectedSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkProtectedSubmitInfo * forMarshaling,uint8_t ** ptr)3873 void reservedmarshal_VkProtectedSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
3874                                            const VkProtectedSubmitInfo* forMarshaling,
3875                                            uint8_t** ptr) {
3876     (void)vkStream;
3877     (void)rootType;
3878     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3879     *ptr += sizeof(VkStructureType);
3880     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3881         rootType = forMarshaling->sType;
3882     }
3883     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3884     memcpy(*ptr, (VkBool32*)&forMarshaling->protectedSubmit, sizeof(VkBool32));
3885     *ptr += sizeof(VkBool32);
3886 }
3887 
reservedmarshal_VkSamplerYcbcrConversionCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionCreateInfo * forMarshaling,uint8_t ** ptr)3888 void reservedmarshal_VkSamplerYcbcrConversionCreateInfo(
3889     VulkanStreamGuest* vkStream, VkStructureType rootType,
3890     const VkSamplerYcbcrConversionCreateInfo* forMarshaling, uint8_t** ptr) {
3891     (void)vkStream;
3892     (void)rootType;
3893     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3894     *ptr += sizeof(VkStructureType);
3895     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3896         rootType = forMarshaling->sType;
3897     }
3898     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3899     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
3900     *ptr += sizeof(VkFormat);
3901     memcpy(*ptr, (VkSamplerYcbcrModelConversion*)&forMarshaling->ycbcrModel,
3902            sizeof(VkSamplerYcbcrModelConversion));
3903     *ptr += sizeof(VkSamplerYcbcrModelConversion);
3904     memcpy(*ptr, (VkSamplerYcbcrRange*)&forMarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
3905     *ptr += sizeof(VkSamplerYcbcrRange);
3906     reservedmarshal_VkComponentMapping(vkStream, rootType,
3907                                        (VkComponentMapping*)(&forMarshaling->components), ptr);
3908     memcpy(*ptr, (VkChromaLocation*)&forMarshaling->xChromaOffset, sizeof(VkChromaLocation));
3909     *ptr += sizeof(VkChromaLocation);
3910     memcpy(*ptr, (VkChromaLocation*)&forMarshaling->yChromaOffset, sizeof(VkChromaLocation));
3911     *ptr += sizeof(VkChromaLocation);
3912     memcpy(*ptr, (VkFilter*)&forMarshaling->chromaFilter, sizeof(VkFilter));
3913     *ptr += sizeof(VkFilter);
3914     memcpy(*ptr, (VkBool32*)&forMarshaling->forceExplicitReconstruction, sizeof(VkBool32));
3915     *ptr += sizeof(VkBool32);
3916 }
3917 
reservedmarshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionInfo * forMarshaling,uint8_t ** ptr)3918 void reservedmarshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest* vkStream,
3919                                                   VkStructureType rootType,
3920                                                   const VkSamplerYcbcrConversionInfo* forMarshaling,
3921                                                   uint8_t** ptr) {
3922     (void)vkStream;
3923     (void)rootType;
3924     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3925     *ptr += sizeof(VkStructureType);
3926     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3927         rootType = forMarshaling->sType;
3928     }
3929     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3930     uint64_t cgen_var_0;
3931     *&cgen_var_0 = get_host_u64_VkSamplerYcbcrConversion((*&forMarshaling->conversion));
3932     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
3933     *ptr += 1 * 8;
3934 }
3935 
reservedmarshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBindImagePlaneMemoryInfo * forMarshaling,uint8_t ** ptr)3936 void reservedmarshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest* vkStream,
3937                                                 VkStructureType rootType,
3938                                                 const VkBindImagePlaneMemoryInfo* forMarshaling,
3939                                                 uint8_t** ptr) {
3940     (void)vkStream;
3941     (void)rootType;
3942     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3943     *ptr += sizeof(VkStructureType);
3944     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3945         rootType = forMarshaling->sType;
3946     }
3947     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3948     memcpy(*ptr, (VkImageAspectFlagBits*)&forMarshaling->planeAspect,
3949            sizeof(VkImageAspectFlagBits));
3950     *ptr += sizeof(VkImageAspectFlagBits);
3951 }
3952 
reservedmarshal_VkImagePlaneMemoryRequirementsInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImagePlaneMemoryRequirementsInfo * forMarshaling,uint8_t ** ptr)3953 void reservedmarshal_VkImagePlaneMemoryRequirementsInfo(
3954     VulkanStreamGuest* vkStream, VkStructureType rootType,
3955     const VkImagePlaneMemoryRequirementsInfo* forMarshaling, uint8_t** ptr) {
3956     (void)vkStream;
3957     (void)rootType;
3958     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3959     *ptr += sizeof(VkStructureType);
3960     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3961         rootType = forMarshaling->sType;
3962     }
3963     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3964     memcpy(*ptr, (VkImageAspectFlagBits*)&forMarshaling->planeAspect,
3965            sizeof(VkImageAspectFlagBits));
3966     *ptr += sizeof(VkImageAspectFlagBits);
3967 }
3968 
reservedmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * forMarshaling,uint8_t ** ptr)3969 void reservedmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
3970     VulkanStreamGuest* vkStream, VkStructureType rootType,
3971     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling, uint8_t** ptr) {
3972     (void)vkStream;
3973     (void)rootType;
3974     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3975     *ptr += sizeof(VkStructureType);
3976     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3977         rootType = forMarshaling->sType;
3978     }
3979     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3980     memcpy(*ptr, (VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
3981     *ptr += sizeof(VkBool32);
3982 }
3983 
reservedmarshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerYcbcrConversionImageFormatProperties * forMarshaling,uint8_t ** ptr)3984 void reservedmarshal_VkSamplerYcbcrConversionImageFormatProperties(
3985     VulkanStreamGuest* vkStream, VkStructureType rootType,
3986     const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling, uint8_t** ptr) {
3987     (void)vkStream;
3988     (void)rootType;
3989     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3990     *ptr += sizeof(VkStructureType);
3991     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3992         rootType = forMarshaling->sType;
3993     }
3994     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
3995     memcpy(*ptr, (uint32_t*)&forMarshaling->combinedImageSamplerDescriptorCount, sizeof(uint32_t));
3996     *ptr += sizeof(uint32_t);
3997 }
3998 
reservedmarshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorUpdateTemplateEntry * forMarshaling,uint8_t ** ptr)3999 void reservedmarshal_VkDescriptorUpdateTemplateEntry(
4000     VulkanStreamGuest* vkStream, VkStructureType rootType,
4001     const VkDescriptorUpdateTemplateEntry* forMarshaling, uint8_t** ptr) {
4002     (void)vkStream;
4003     (void)rootType;
4004     memcpy(*ptr, (uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
4005     *ptr += sizeof(uint32_t);
4006     memcpy(*ptr, (uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
4007     *ptr += sizeof(uint32_t);
4008     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
4009     *ptr += sizeof(uint32_t);
4010     memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
4011     *ptr += sizeof(VkDescriptorType);
4012     uint64_t cgen_var_0 = (uint64_t)forMarshaling->offset;
4013     memcpy((*ptr), &cgen_var_0, 8);
4014     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
4015     *ptr += 8;
4016     uint64_t cgen_var_1 = (uint64_t)forMarshaling->stride;
4017     memcpy((*ptr), &cgen_var_1, 8);
4018     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
4019     *ptr += 8;
4020 }
4021 
reservedmarshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorUpdateTemplateCreateInfo * forMarshaling,uint8_t ** ptr)4022 void reservedmarshal_VkDescriptorUpdateTemplateCreateInfo(
4023     VulkanStreamGuest* vkStream, VkStructureType rootType,
4024     const VkDescriptorUpdateTemplateCreateInfo* forMarshaling, uint8_t** ptr) {
4025     (void)vkStream;
4026     (void)rootType;
4027     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4028     *ptr += sizeof(VkStructureType);
4029     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4030         rootType = forMarshaling->sType;
4031     }
4032     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4033     memcpy(*ptr, (VkDescriptorUpdateTemplateCreateFlags*)&forMarshaling->flags,
4034            sizeof(VkDescriptorUpdateTemplateCreateFlags));
4035     *ptr += sizeof(VkDescriptorUpdateTemplateCreateFlags);
4036     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
4037     *ptr += sizeof(uint32_t);
4038     for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorUpdateEntryCount; ++i) {
4039         reservedmarshal_VkDescriptorUpdateTemplateEntry(
4040             vkStream, rootType,
4041             (const VkDescriptorUpdateTemplateEntry*)(forMarshaling->pDescriptorUpdateEntries + i),
4042             ptr);
4043     }
4044     memcpy(*ptr, (VkDescriptorUpdateTemplateType*)&forMarshaling->templateType,
4045            sizeof(VkDescriptorUpdateTemplateType));
4046     *ptr += sizeof(VkDescriptorUpdateTemplateType);
4047     uint64_t cgen_var_0;
4048     *&cgen_var_0 = get_host_u64_VkDescriptorSetLayout((*&forMarshaling->descriptorSetLayout));
4049     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
4050     *ptr += 1 * 8;
4051     memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
4052            sizeof(VkPipelineBindPoint));
4053     *ptr += sizeof(VkPipelineBindPoint);
4054     uint64_t cgen_var_1;
4055     *&cgen_var_1 = get_host_u64_VkPipelineLayout((*&forMarshaling->pipelineLayout));
4056     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
4057     *ptr += 1 * 8;
4058     memcpy(*ptr, (uint32_t*)&forMarshaling->set, sizeof(uint32_t));
4059     *ptr += sizeof(uint32_t);
4060 }
4061 
reservedmarshal_VkExternalMemoryProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalMemoryProperties * forMarshaling,uint8_t ** ptr)4062 void reservedmarshal_VkExternalMemoryProperties(VulkanStreamGuest* vkStream,
4063                                                 VkStructureType rootType,
4064                                                 const VkExternalMemoryProperties* forMarshaling,
4065                                                 uint8_t** ptr) {
4066     (void)vkStream;
4067     (void)rootType;
4068     memcpy(*ptr, (VkExternalMemoryFeatureFlags*)&forMarshaling->externalMemoryFeatures,
4069            sizeof(VkExternalMemoryFeatureFlags));
4070     *ptr += sizeof(VkExternalMemoryFeatureFlags);
4071     memcpy(*ptr, (VkExternalMemoryHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
4072            sizeof(VkExternalMemoryHandleTypeFlags));
4073     *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
4074     memcpy(*ptr, (VkExternalMemoryHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
4075            sizeof(VkExternalMemoryHandleTypeFlags));
4076     *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
4077 }
4078 
reservedmarshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalImageFormatInfo * forMarshaling,uint8_t ** ptr)4079 void reservedmarshal_VkPhysicalDeviceExternalImageFormatInfo(
4080     VulkanStreamGuest* vkStream, VkStructureType rootType,
4081     const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling, uint8_t** ptr) {
4082     (void)vkStream;
4083     (void)rootType;
4084     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4085     *ptr += sizeof(VkStructureType);
4086     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4087         rootType = forMarshaling->sType;
4088     }
4089     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4090     memcpy(*ptr, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
4091            sizeof(VkExternalMemoryHandleTypeFlagBits));
4092     *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
4093 }
4094 
reservedmarshal_VkExternalImageFormatProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalImageFormatProperties * forMarshaling,uint8_t ** ptr)4095 void reservedmarshal_VkExternalImageFormatProperties(
4096     VulkanStreamGuest* vkStream, VkStructureType rootType,
4097     const VkExternalImageFormatProperties* forMarshaling, uint8_t** ptr) {
4098     (void)vkStream;
4099     (void)rootType;
4100     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4101     *ptr += sizeof(VkStructureType);
4102     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4103         rootType = forMarshaling->sType;
4104     }
4105     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4106     reservedmarshal_VkExternalMemoryProperties(
4107         vkStream, rootType, (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties),
4108         ptr);
4109 }
4110 
reservedmarshal_VkPhysicalDeviceExternalBufferInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalBufferInfo * forMarshaling,uint8_t ** ptr)4111 void reservedmarshal_VkPhysicalDeviceExternalBufferInfo(
4112     VulkanStreamGuest* vkStream, VkStructureType rootType,
4113     const VkPhysicalDeviceExternalBufferInfo* forMarshaling, uint8_t** ptr) {
4114     (void)vkStream;
4115     (void)rootType;
4116     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4117     *ptr += sizeof(VkStructureType);
4118     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4119         rootType = forMarshaling->sType;
4120     }
4121     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4122     memcpy(*ptr, (VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
4123     *ptr += sizeof(VkBufferCreateFlags);
4124     memcpy(*ptr, (VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
4125     *ptr += sizeof(VkBufferUsageFlags);
4126     memcpy(*ptr, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType,
4127            sizeof(VkExternalMemoryHandleTypeFlagBits));
4128     *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
4129 }
4130 
reservedmarshal_VkExternalBufferProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalBufferProperties * forMarshaling,uint8_t ** ptr)4131 void reservedmarshal_VkExternalBufferProperties(VulkanStreamGuest* vkStream,
4132                                                 VkStructureType rootType,
4133                                                 const VkExternalBufferProperties* forMarshaling,
4134                                                 uint8_t** ptr) {
4135     (void)vkStream;
4136     (void)rootType;
4137     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4138     *ptr += sizeof(VkStructureType);
4139     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4140         rootType = forMarshaling->sType;
4141     }
4142     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4143     reservedmarshal_VkExternalMemoryProperties(
4144         vkStream, rootType, (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties),
4145         ptr);
4146 }
4147 
reservedmarshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceIDProperties * forMarshaling,uint8_t ** ptr)4148 void reservedmarshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest* vkStream,
4149                                                   VkStructureType rootType,
4150                                                   const VkPhysicalDeviceIDProperties* forMarshaling,
4151                                                   uint8_t** ptr) {
4152     (void)vkStream;
4153     (void)rootType;
4154     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4155     *ptr += sizeof(VkStructureType);
4156     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4157         rootType = forMarshaling->sType;
4158     }
4159     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4160     memcpy(*ptr, (uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
4161     *ptr += VK_UUID_SIZE * sizeof(uint8_t);
4162     memcpy(*ptr, (uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
4163     *ptr += VK_UUID_SIZE * sizeof(uint8_t);
4164     memcpy(*ptr, (uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
4165     *ptr += VK_LUID_SIZE * sizeof(uint8_t);
4166     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
4167     *ptr += sizeof(uint32_t);
4168     memcpy(*ptr, (VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
4169     *ptr += sizeof(VkBool32);
4170 }
4171 
reservedmarshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalMemoryImageCreateInfo * forMarshaling,uint8_t ** ptr)4172 void reservedmarshal_VkExternalMemoryImageCreateInfo(
4173     VulkanStreamGuest* vkStream, VkStructureType rootType,
4174     const VkExternalMemoryImageCreateInfo* forMarshaling, uint8_t** ptr) {
4175     (void)vkStream;
4176     (void)rootType;
4177     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4178     *ptr += sizeof(VkStructureType);
4179     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4180         rootType = forMarshaling->sType;
4181     }
4182     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4183     memcpy(*ptr, (VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
4184            sizeof(VkExternalMemoryHandleTypeFlags));
4185     *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
4186 }
4187 
reservedmarshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalMemoryBufferCreateInfo * forMarshaling,uint8_t ** ptr)4188 void reservedmarshal_VkExternalMemoryBufferCreateInfo(
4189     VulkanStreamGuest* vkStream, VkStructureType rootType,
4190     const VkExternalMemoryBufferCreateInfo* forMarshaling, uint8_t** ptr) {
4191     (void)vkStream;
4192     (void)rootType;
4193     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4194     *ptr += sizeof(VkStructureType);
4195     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4196         rootType = forMarshaling->sType;
4197     }
4198     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4199     memcpy(*ptr, (VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
4200            sizeof(VkExternalMemoryHandleTypeFlags));
4201     *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
4202 }
4203 
reservedmarshal_VkExportMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExportMemoryAllocateInfo * forMarshaling,uint8_t ** ptr)4204 void reservedmarshal_VkExportMemoryAllocateInfo(VulkanStreamGuest* vkStream,
4205                                                 VkStructureType rootType,
4206                                                 const VkExportMemoryAllocateInfo* forMarshaling,
4207                                                 uint8_t** ptr) {
4208     (void)vkStream;
4209     (void)rootType;
4210     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4211     *ptr += sizeof(VkStructureType);
4212     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4213         rootType = forMarshaling->sType;
4214     }
4215     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4216     memcpy(*ptr, (VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes,
4217            sizeof(VkExternalMemoryHandleTypeFlags));
4218     *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
4219 }
4220 
reservedmarshal_VkPhysicalDeviceExternalFenceInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalFenceInfo * forMarshaling,uint8_t ** ptr)4221 void reservedmarshal_VkPhysicalDeviceExternalFenceInfo(
4222     VulkanStreamGuest* vkStream, VkStructureType rootType,
4223     const VkPhysicalDeviceExternalFenceInfo* forMarshaling, uint8_t** ptr) {
4224     (void)vkStream;
4225     (void)rootType;
4226     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4227     *ptr += sizeof(VkStructureType);
4228     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4229         rootType = forMarshaling->sType;
4230     }
4231     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4232     memcpy(*ptr, (VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
4233            sizeof(VkExternalFenceHandleTypeFlagBits));
4234     *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
4235 }
4236 
reservedmarshal_VkExternalFenceProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalFenceProperties * forMarshaling,uint8_t ** ptr)4237 void reservedmarshal_VkExternalFenceProperties(VulkanStreamGuest* vkStream,
4238                                                VkStructureType rootType,
4239                                                const VkExternalFenceProperties* forMarshaling,
4240                                                uint8_t** ptr) {
4241     (void)vkStream;
4242     (void)rootType;
4243     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4244     *ptr += sizeof(VkStructureType);
4245     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4246         rootType = forMarshaling->sType;
4247     }
4248     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4249     memcpy(*ptr, (VkExternalFenceHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
4250            sizeof(VkExternalFenceHandleTypeFlags));
4251     *ptr += sizeof(VkExternalFenceHandleTypeFlags);
4252     memcpy(*ptr, (VkExternalFenceHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
4253            sizeof(VkExternalFenceHandleTypeFlags));
4254     *ptr += sizeof(VkExternalFenceHandleTypeFlags);
4255     memcpy(*ptr, (VkExternalFenceFeatureFlags*)&forMarshaling->externalFenceFeatures,
4256            sizeof(VkExternalFenceFeatureFlags));
4257     *ptr += sizeof(VkExternalFenceFeatureFlags);
4258 }
4259 
reservedmarshal_VkExportFenceCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExportFenceCreateInfo * forMarshaling,uint8_t ** ptr)4260 void reservedmarshal_VkExportFenceCreateInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4261                                              const VkExportFenceCreateInfo* forMarshaling,
4262                                              uint8_t** ptr) {
4263     (void)vkStream;
4264     (void)rootType;
4265     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4266     *ptr += sizeof(VkStructureType);
4267     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4268         rootType = forMarshaling->sType;
4269     }
4270     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4271     memcpy(*ptr, (VkExternalFenceHandleTypeFlags*)&forMarshaling->handleTypes,
4272            sizeof(VkExternalFenceHandleTypeFlags));
4273     *ptr += sizeof(VkExternalFenceHandleTypeFlags);
4274 }
4275 
reservedmarshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExportSemaphoreCreateInfo * forMarshaling,uint8_t ** ptr)4276 void reservedmarshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest* vkStream,
4277                                                  VkStructureType rootType,
4278                                                  const VkExportSemaphoreCreateInfo* forMarshaling,
4279                                                  uint8_t** ptr) {
4280     (void)vkStream;
4281     (void)rootType;
4282     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4283     *ptr += sizeof(VkStructureType);
4284     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4285         rootType = forMarshaling->sType;
4286     }
4287     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4288     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->handleTypes,
4289            sizeof(VkExternalSemaphoreHandleTypeFlags));
4290     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlags);
4291 }
4292 
reservedmarshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExternalSemaphoreInfo * forMarshaling,uint8_t ** ptr)4293 void reservedmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
4294     VulkanStreamGuest* vkStream, VkStructureType rootType,
4295     const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling, uint8_t** ptr) {
4296     (void)vkStream;
4297     (void)rootType;
4298     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4299     *ptr += sizeof(VkStructureType);
4300     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4301         rootType = forMarshaling->sType;
4302     }
4303     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4304     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
4305            sizeof(VkExternalSemaphoreHandleTypeFlagBits));
4306     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
4307 }
4308 
reservedmarshal_VkExternalSemaphoreProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkExternalSemaphoreProperties * forMarshaling,uint8_t ** ptr)4309 void reservedmarshal_VkExternalSemaphoreProperties(
4310     VulkanStreamGuest* vkStream, VkStructureType rootType,
4311     const VkExternalSemaphoreProperties* forMarshaling, uint8_t** ptr) {
4312     (void)vkStream;
4313     (void)rootType;
4314     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4315     *ptr += sizeof(VkStructureType);
4316     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4317         rootType = forMarshaling->sType;
4318     }
4319     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4320     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes,
4321            sizeof(VkExternalSemaphoreHandleTypeFlags));
4322     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlags);
4323     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->compatibleHandleTypes,
4324            sizeof(VkExternalSemaphoreHandleTypeFlags));
4325     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlags);
4326     memcpy(*ptr, (VkExternalSemaphoreFeatureFlags*)&forMarshaling->externalSemaphoreFeatures,
4327            sizeof(VkExternalSemaphoreFeatureFlags));
4328     *ptr += sizeof(VkExternalSemaphoreFeatureFlags);
4329 }
4330 
reservedmarshal_VkPhysicalDeviceMaintenance3Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance3Properties * forMarshaling,uint8_t ** ptr)4331 void reservedmarshal_VkPhysicalDeviceMaintenance3Properties(
4332     VulkanStreamGuest* vkStream, VkStructureType rootType,
4333     const VkPhysicalDeviceMaintenance3Properties* forMarshaling, uint8_t** ptr) {
4334     (void)vkStream;
4335     (void)rootType;
4336     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4337     *ptr += sizeof(VkStructureType);
4338     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4339         rootType = forMarshaling->sType;
4340     }
4341     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4342     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
4343     *ptr += sizeof(uint32_t);
4344     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
4345     *ptr += sizeof(VkDeviceSize);
4346 }
4347 
reservedmarshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutSupport * forMarshaling,uint8_t ** ptr)4348 void reservedmarshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest* vkStream,
4349                                                   VkStructureType rootType,
4350                                                   const VkDescriptorSetLayoutSupport* forMarshaling,
4351                                                   uint8_t** ptr) {
4352     (void)vkStream;
4353     (void)rootType;
4354     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4355     *ptr += sizeof(VkStructureType);
4356     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4357         rootType = forMarshaling->sType;
4358     }
4359     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4360     memcpy(*ptr, (VkBool32*)&forMarshaling->supported, sizeof(VkBool32));
4361     *ptr += sizeof(VkBool32);
4362 }
4363 
reservedmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderDrawParametersFeatures * forMarshaling,uint8_t ** ptr)4364 void reservedmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
4365     VulkanStreamGuest* vkStream, VkStructureType rootType,
4366     const VkPhysicalDeviceShaderDrawParametersFeatures* forMarshaling, uint8_t** ptr) {
4367     (void)vkStream;
4368     (void)rootType;
4369     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4370     *ptr += sizeof(VkStructureType);
4371     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4372         rootType = forMarshaling->sType;
4373     }
4374     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4375     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
4376     *ptr += sizeof(VkBool32);
4377 }
4378 
4379 #endif
4380 #ifdef VK_VERSION_1_2
reservedmarshal_VkPhysicalDeviceVulkan11Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan11Features * forMarshaling,uint8_t ** ptr)4381 void reservedmarshal_VkPhysicalDeviceVulkan11Features(
4382     VulkanStreamGuest* vkStream, VkStructureType rootType,
4383     const VkPhysicalDeviceVulkan11Features* forMarshaling, uint8_t** ptr) {
4384     (void)vkStream;
4385     (void)rootType;
4386     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4387     *ptr += sizeof(VkStructureType);
4388     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4389         rootType = forMarshaling->sType;
4390     }
4391     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4392     memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
4393     *ptr += sizeof(VkBool32);
4394     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
4395     *ptr += sizeof(VkBool32);
4396     memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
4397     *ptr += sizeof(VkBool32);
4398     memcpy(*ptr, (VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
4399     *ptr += sizeof(VkBool32);
4400     memcpy(*ptr, (VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
4401     *ptr += sizeof(VkBool32);
4402     memcpy(*ptr, (VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
4403     *ptr += sizeof(VkBool32);
4404     memcpy(*ptr, (VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
4405     *ptr += sizeof(VkBool32);
4406     memcpy(*ptr, (VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
4407     *ptr += sizeof(VkBool32);
4408     memcpy(*ptr, (VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
4409     *ptr += sizeof(VkBool32);
4410     memcpy(*ptr, (VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
4411     *ptr += sizeof(VkBool32);
4412     memcpy(*ptr, (VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
4413     *ptr += sizeof(VkBool32);
4414     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
4415     *ptr += sizeof(VkBool32);
4416 }
4417 
reservedmarshal_VkPhysicalDeviceVulkan11Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan11Properties * forMarshaling,uint8_t ** ptr)4418 void reservedmarshal_VkPhysicalDeviceVulkan11Properties(
4419     VulkanStreamGuest* vkStream, VkStructureType rootType,
4420     const VkPhysicalDeviceVulkan11Properties* forMarshaling, uint8_t** ptr) {
4421     (void)vkStream;
4422     (void)rootType;
4423     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4424     *ptr += sizeof(VkStructureType);
4425     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4426         rootType = forMarshaling->sType;
4427     }
4428     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4429     memcpy(*ptr, (uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
4430     *ptr += VK_UUID_SIZE * sizeof(uint8_t);
4431     memcpy(*ptr, (uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
4432     *ptr += VK_UUID_SIZE * sizeof(uint8_t);
4433     memcpy(*ptr, (uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
4434     *ptr += VK_LUID_SIZE * sizeof(uint8_t);
4435     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
4436     *ptr += sizeof(uint32_t);
4437     memcpy(*ptr, (VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
4438     *ptr += sizeof(VkBool32);
4439     memcpy(*ptr, (uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
4440     *ptr += sizeof(uint32_t);
4441     memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->subgroupSupportedStages,
4442            sizeof(VkShaderStageFlags));
4443     *ptr += sizeof(VkShaderStageFlags);
4444     memcpy(*ptr, (VkSubgroupFeatureFlags*)&forMarshaling->subgroupSupportedOperations,
4445            sizeof(VkSubgroupFeatureFlags));
4446     *ptr += sizeof(VkSubgroupFeatureFlags);
4447     memcpy(*ptr, (VkBool32*)&forMarshaling->subgroupQuadOperationsInAllStages, sizeof(VkBool32));
4448     *ptr += sizeof(VkBool32);
4449     memcpy(*ptr, (VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior,
4450            sizeof(VkPointClippingBehavior));
4451     *ptr += sizeof(VkPointClippingBehavior);
4452     memcpy(*ptr, (uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
4453     *ptr += sizeof(uint32_t);
4454     memcpy(*ptr, (uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
4455     *ptr += sizeof(uint32_t);
4456     memcpy(*ptr, (VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
4457     *ptr += sizeof(VkBool32);
4458     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
4459     *ptr += sizeof(uint32_t);
4460     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
4461     *ptr += sizeof(VkDeviceSize);
4462 }
4463 
reservedmarshal_VkPhysicalDeviceVulkan12Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan12Features * forMarshaling,uint8_t ** ptr)4464 void reservedmarshal_VkPhysicalDeviceVulkan12Features(
4465     VulkanStreamGuest* vkStream, VkStructureType rootType,
4466     const VkPhysicalDeviceVulkan12Features* forMarshaling, uint8_t** ptr) {
4467     (void)vkStream;
4468     (void)rootType;
4469     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4470     *ptr += sizeof(VkStructureType);
4471     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4472         rootType = forMarshaling->sType;
4473     }
4474     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4475     memcpy(*ptr, (VkBool32*)&forMarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
4476     *ptr += sizeof(VkBool32);
4477     memcpy(*ptr, (VkBool32*)&forMarshaling->drawIndirectCount, sizeof(VkBool32));
4478     *ptr += sizeof(VkBool32);
4479     memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
4480     *ptr += sizeof(VkBool32);
4481     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
4482     *ptr += sizeof(VkBool32);
4483     memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
4484     *ptr += sizeof(VkBool32);
4485     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
4486     *ptr += sizeof(VkBool32);
4487     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
4488     *ptr += sizeof(VkBool32);
4489     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
4490     *ptr += sizeof(VkBool32);
4491     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
4492     *ptr += sizeof(VkBool32);
4493     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorIndexing, sizeof(VkBool32));
4494     *ptr += sizeof(VkBool32);
4495     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing,
4496            sizeof(VkBool32));
4497     *ptr += sizeof(VkBool32);
4498     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
4499            sizeof(VkBool32));
4500     *ptr += sizeof(VkBool32);
4501     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
4502            sizeof(VkBool32));
4503     *ptr += sizeof(VkBool32);
4504     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing,
4505            sizeof(VkBool32));
4506     *ptr += sizeof(VkBool32);
4507     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing,
4508            sizeof(VkBool32));
4509     *ptr += sizeof(VkBool32);
4510     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing,
4511            sizeof(VkBool32));
4512     *ptr += sizeof(VkBool32);
4513     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing,
4514            sizeof(VkBool32));
4515     *ptr += sizeof(VkBool32);
4516     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing,
4517            sizeof(VkBool32));
4518     *ptr += sizeof(VkBool32);
4519     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
4520            sizeof(VkBool32));
4521     *ptr += sizeof(VkBool32);
4522     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
4523            sizeof(VkBool32));
4524     *ptr += sizeof(VkBool32);
4525     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind,
4526            sizeof(VkBool32));
4527     *ptr += sizeof(VkBool32);
4528     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind,
4529            sizeof(VkBool32));
4530     *ptr += sizeof(VkBool32);
4531     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind,
4532            sizeof(VkBool32));
4533     *ptr += sizeof(VkBool32);
4534     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind,
4535            sizeof(VkBool32));
4536     *ptr += sizeof(VkBool32);
4537     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
4538            sizeof(VkBool32));
4539     *ptr += sizeof(VkBool32);
4540     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
4541            sizeof(VkBool32));
4542     *ptr += sizeof(VkBool32);
4543     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending,
4544            sizeof(VkBool32));
4545     *ptr += sizeof(VkBool32);
4546     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
4547     *ptr += sizeof(VkBool32);
4548     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount,
4549            sizeof(VkBool32));
4550     *ptr += sizeof(VkBool32);
4551     memcpy(*ptr, (VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
4552     *ptr += sizeof(VkBool32);
4553     memcpy(*ptr, (VkBool32*)&forMarshaling->samplerFilterMinmax, sizeof(VkBool32));
4554     *ptr += sizeof(VkBool32);
4555     memcpy(*ptr, (VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
4556     *ptr += sizeof(VkBool32);
4557     memcpy(*ptr, (VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
4558     *ptr += sizeof(VkBool32);
4559     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
4560     *ptr += sizeof(VkBool32);
4561     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
4562     *ptr += sizeof(VkBool32);
4563     memcpy(*ptr, (VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
4564     *ptr += sizeof(VkBool32);
4565     memcpy(*ptr, (VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
4566     *ptr += sizeof(VkBool32);
4567     memcpy(*ptr, (VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
4568     *ptr += sizeof(VkBool32);
4569     memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
4570     *ptr += sizeof(VkBool32);
4571     memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
4572     *ptr += sizeof(VkBool32);
4573     memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
4574     *ptr += sizeof(VkBool32);
4575     memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
4576     *ptr += sizeof(VkBool32);
4577     memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
4578     *ptr += sizeof(VkBool32);
4579     memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
4580            sizeof(VkBool32));
4581     *ptr += sizeof(VkBool32);
4582     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
4583     *ptr += sizeof(VkBool32);
4584     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderOutputLayer, sizeof(VkBool32));
4585     *ptr += sizeof(VkBool32);
4586     memcpy(*ptr, (VkBool32*)&forMarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
4587     *ptr += sizeof(VkBool32);
4588 }
4589 
reservedmarshal_VkConformanceVersion(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkConformanceVersion * forMarshaling,uint8_t ** ptr)4590 void reservedmarshal_VkConformanceVersion(VulkanStreamGuest* vkStream, VkStructureType rootType,
4591                                           const VkConformanceVersion* forMarshaling,
4592                                           uint8_t** ptr) {
4593     (void)vkStream;
4594     (void)rootType;
4595     memcpy(*ptr, (uint8_t*)&forMarshaling->major, sizeof(uint8_t));
4596     *ptr += sizeof(uint8_t);
4597     memcpy(*ptr, (uint8_t*)&forMarshaling->minor, sizeof(uint8_t));
4598     *ptr += sizeof(uint8_t);
4599     memcpy(*ptr, (uint8_t*)&forMarshaling->subminor, sizeof(uint8_t));
4600     *ptr += sizeof(uint8_t);
4601     memcpy(*ptr, (uint8_t*)&forMarshaling->patch, sizeof(uint8_t));
4602     *ptr += sizeof(uint8_t);
4603 }
4604 
reservedmarshal_VkPhysicalDeviceVulkan12Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan12Properties * forMarshaling,uint8_t ** ptr)4605 void reservedmarshal_VkPhysicalDeviceVulkan12Properties(
4606     VulkanStreamGuest* vkStream, VkStructureType rootType,
4607     const VkPhysicalDeviceVulkan12Properties* forMarshaling, uint8_t** ptr) {
4608     (void)vkStream;
4609     (void)rootType;
4610     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4611     *ptr += sizeof(VkStructureType);
4612     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4613         rootType = forMarshaling->sType;
4614     }
4615     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4616     memcpy(*ptr, (VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
4617     *ptr += sizeof(VkDriverId);
4618     memcpy(*ptr, (char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
4619     *ptr += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
4620     memcpy(*ptr, (char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
4621     *ptr += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
4622     reservedmarshal_VkConformanceVersion(
4623         vkStream, rootType, (VkConformanceVersion*)(&forMarshaling->conformanceVersion), ptr);
4624     memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence,
4625            sizeof(VkShaderFloatControlsIndependence));
4626     *ptr += sizeof(VkShaderFloatControlsIndependence);
4627     memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence,
4628            sizeof(VkShaderFloatControlsIndependence));
4629     *ptr += sizeof(VkShaderFloatControlsIndependence);
4630     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16,
4631            sizeof(VkBool32));
4632     *ptr += sizeof(VkBool32);
4633     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32,
4634            sizeof(VkBool32));
4635     *ptr += sizeof(VkBool32);
4636     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64,
4637            sizeof(VkBool32));
4638     *ptr += sizeof(VkBool32);
4639     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
4640     *ptr += sizeof(VkBool32);
4641     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
4642     *ptr += sizeof(VkBool32);
4643     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
4644     *ptr += sizeof(VkBool32);
4645     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
4646     *ptr += sizeof(VkBool32);
4647     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
4648     *ptr += sizeof(VkBool32);
4649     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
4650     *ptr += sizeof(VkBool32);
4651     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
4652     *ptr += sizeof(VkBool32);
4653     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
4654     *ptr += sizeof(VkBool32);
4655     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
4656     *ptr += sizeof(VkBool32);
4657     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
4658     *ptr += sizeof(VkBool32);
4659     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
4660     *ptr += sizeof(VkBool32);
4661     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
4662     *ptr += sizeof(VkBool32);
4663     memcpy(*ptr, (uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools,
4664            sizeof(uint32_t));
4665     *ptr += sizeof(uint32_t);
4666     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
4667            sizeof(VkBool32));
4668     *ptr += sizeof(VkBool32);
4669     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative,
4670            sizeof(VkBool32));
4671     *ptr += sizeof(VkBool32);
4672     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
4673            sizeof(VkBool32));
4674     *ptr += sizeof(VkBool32);
4675     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative,
4676            sizeof(VkBool32));
4677     *ptr += sizeof(VkBool32);
4678     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
4679            sizeof(VkBool32));
4680     *ptr += sizeof(VkBool32);
4681     memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
4682     *ptr += sizeof(VkBool32);
4683     memcpy(*ptr, (VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
4684     *ptr += sizeof(VkBool32);
4685     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
4686            sizeof(uint32_t));
4687     *ptr += sizeof(uint32_t);
4688     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
4689            sizeof(uint32_t));
4690     *ptr += sizeof(uint32_t);
4691     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
4692            sizeof(uint32_t));
4693     *ptr += sizeof(uint32_t);
4694     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
4695            sizeof(uint32_t));
4696     *ptr += sizeof(uint32_t);
4697     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
4698            sizeof(uint32_t));
4699     *ptr += sizeof(uint32_t);
4700     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
4701            sizeof(uint32_t));
4702     *ptr += sizeof(uint32_t);
4703     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
4704     *ptr += sizeof(uint32_t);
4705     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers,
4706            sizeof(uint32_t));
4707     *ptr += sizeof(uint32_t);
4708     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
4709            sizeof(uint32_t));
4710     *ptr += sizeof(uint32_t);
4711     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
4712            sizeof(uint32_t));
4713     *ptr += sizeof(uint32_t);
4714     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
4715            sizeof(uint32_t));
4716     *ptr += sizeof(uint32_t);
4717     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
4718            sizeof(uint32_t));
4719     *ptr += sizeof(uint32_t);
4720     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
4721            sizeof(uint32_t));
4722     *ptr += sizeof(uint32_t);
4723     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
4724            sizeof(uint32_t));
4725     *ptr += sizeof(uint32_t);
4726     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
4727            sizeof(uint32_t));
4728     *ptr += sizeof(uint32_t);
4729     memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes,
4730            sizeof(VkResolveModeFlags));
4731     *ptr += sizeof(VkResolveModeFlags);
4732     memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes,
4733            sizeof(VkResolveModeFlags));
4734     *ptr += sizeof(VkResolveModeFlags);
4735     memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
4736     *ptr += sizeof(VkBool32);
4737     memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
4738     *ptr += sizeof(VkBool32);
4739     memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
4740     *ptr += sizeof(VkBool32);
4741     memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
4742     *ptr += sizeof(VkBool32);
4743     memcpy(*ptr, (uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
4744     *ptr += sizeof(uint64_t);
4745     memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->framebufferIntegerColorSampleCounts,
4746            sizeof(VkSampleCountFlags));
4747     *ptr += sizeof(VkSampleCountFlags);
4748 }
4749 
reservedmarshal_VkImageFormatListCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageFormatListCreateInfo * forMarshaling,uint8_t ** ptr)4750 void reservedmarshal_VkImageFormatListCreateInfo(VulkanStreamGuest* vkStream,
4751                                                  VkStructureType rootType,
4752                                                  const VkImageFormatListCreateInfo* forMarshaling,
4753                                                  uint8_t** ptr) {
4754     (void)vkStream;
4755     (void)rootType;
4756     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4757     *ptr += sizeof(VkStructureType);
4758     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4759         rootType = forMarshaling->sType;
4760     }
4761     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4762     memcpy(*ptr, (uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
4763     *ptr += sizeof(uint32_t);
4764     memcpy(*ptr, (const VkFormat*)forMarshaling->pViewFormats,
4765            forMarshaling->viewFormatCount * sizeof(const VkFormat));
4766     *ptr += forMarshaling->viewFormatCount * sizeof(const VkFormat);
4767 }
4768 
reservedmarshal_VkAttachmentDescription2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentDescription2 * forMarshaling,uint8_t ** ptr)4769 void reservedmarshal_VkAttachmentDescription2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4770                                               const VkAttachmentDescription2* forMarshaling,
4771                                               uint8_t** ptr) {
4772     (void)vkStream;
4773     (void)rootType;
4774     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4775     *ptr += sizeof(VkStructureType);
4776     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4777         rootType = forMarshaling->sType;
4778     }
4779     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4780     memcpy(*ptr, (VkAttachmentDescriptionFlags*)&forMarshaling->flags,
4781            sizeof(VkAttachmentDescriptionFlags));
4782     *ptr += sizeof(VkAttachmentDescriptionFlags);
4783     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
4784     *ptr += sizeof(VkFormat);
4785     memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
4786     *ptr += sizeof(VkSampleCountFlagBits);
4787     memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
4788     *ptr += sizeof(VkAttachmentLoadOp);
4789     memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
4790     *ptr += sizeof(VkAttachmentStoreOp);
4791     memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
4792     *ptr += sizeof(VkAttachmentLoadOp);
4793     memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
4794     *ptr += sizeof(VkAttachmentStoreOp);
4795     memcpy(*ptr, (VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
4796     *ptr += sizeof(VkImageLayout);
4797     memcpy(*ptr, (VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
4798     *ptr += sizeof(VkImageLayout);
4799 }
4800 
reservedmarshal_VkAttachmentReference2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentReference2 * forMarshaling,uint8_t ** ptr)4801 void reservedmarshal_VkAttachmentReference2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4802                                             const VkAttachmentReference2* forMarshaling,
4803                                             uint8_t** ptr) {
4804     (void)vkStream;
4805     (void)rootType;
4806     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4807     *ptr += sizeof(VkStructureType);
4808     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4809         rootType = forMarshaling->sType;
4810     }
4811     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4812     memcpy(*ptr, (uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
4813     *ptr += sizeof(uint32_t);
4814     memcpy(*ptr, (VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
4815     *ptr += sizeof(VkImageLayout);
4816     memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
4817     *ptr += sizeof(VkImageAspectFlags);
4818 }
4819 
reservedmarshal_VkSubpassDescription2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDescription2 * forMarshaling,uint8_t ** ptr)4820 void reservedmarshal_VkSubpassDescription2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4821                                            const VkSubpassDescription2* forMarshaling,
4822                                            uint8_t** ptr) {
4823     (void)vkStream;
4824     (void)rootType;
4825     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4826     *ptr += sizeof(VkStructureType);
4827     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4828         rootType = forMarshaling->sType;
4829     }
4830     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4831     memcpy(*ptr, (VkSubpassDescriptionFlags*)&forMarshaling->flags,
4832            sizeof(VkSubpassDescriptionFlags));
4833     *ptr += sizeof(VkSubpassDescriptionFlags);
4834     memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint,
4835            sizeof(VkPipelineBindPoint));
4836     *ptr += sizeof(VkPipelineBindPoint);
4837     memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
4838     *ptr += sizeof(uint32_t);
4839     memcpy(*ptr, (uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
4840     *ptr += sizeof(uint32_t);
4841     for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i) {
4842         reservedmarshal_VkAttachmentReference2(
4843             vkStream, rootType,
4844             (const VkAttachmentReference2*)(forMarshaling->pInputAttachments + i), ptr);
4845     }
4846     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
4847     *ptr += sizeof(uint32_t);
4848     for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
4849         reservedmarshal_VkAttachmentReference2(
4850             vkStream, rootType,
4851             (const VkAttachmentReference2*)(forMarshaling->pColorAttachments + i), ptr);
4852     }
4853     // WARNING PTR CHECK
4854     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
4855     memcpy((*ptr), &cgen_var_0, 8);
4856     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
4857     *ptr += 8;
4858     if (forMarshaling->pResolveAttachments) {
4859         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
4860             reservedmarshal_VkAttachmentReference2(
4861                 vkStream, rootType,
4862                 (const VkAttachmentReference2*)(forMarshaling->pResolveAttachments + i), ptr);
4863         }
4864     }
4865     // WARNING PTR CHECK
4866     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
4867     memcpy((*ptr), &cgen_var_1, 8);
4868     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
4869     *ptr += 8;
4870     if (forMarshaling->pDepthStencilAttachment) {
4871         reservedmarshal_VkAttachmentReference2(
4872             vkStream, rootType,
4873             (const VkAttachmentReference2*)(forMarshaling->pDepthStencilAttachment), ptr);
4874     }
4875     memcpy(*ptr, (uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
4876     *ptr += sizeof(uint32_t);
4877     memcpy(*ptr, (const uint32_t*)forMarshaling->pPreserveAttachments,
4878            forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
4879     *ptr += forMarshaling->preserveAttachmentCount * sizeof(const uint32_t);
4880 }
4881 
reservedmarshal_VkSubpassDependency2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDependency2 * forMarshaling,uint8_t ** ptr)4882 void reservedmarshal_VkSubpassDependency2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4883                                           const VkSubpassDependency2* forMarshaling,
4884                                           uint8_t** ptr) {
4885     (void)vkStream;
4886     (void)rootType;
4887     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4888     *ptr += sizeof(VkStructureType);
4889     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4890         rootType = forMarshaling->sType;
4891     }
4892     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4893     memcpy(*ptr, (uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
4894     *ptr += sizeof(uint32_t);
4895     memcpy(*ptr, (uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
4896     *ptr += sizeof(uint32_t);
4897     memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
4898     *ptr += sizeof(VkPipelineStageFlags);
4899     memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
4900     *ptr += sizeof(VkPipelineStageFlags);
4901     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
4902     *ptr += sizeof(VkAccessFlags);
4903     memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
4904     *ptr += sizeof(VkAccessFlags);
4905     memcpy(*ptr, (VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
4906     *ptr += sizeof(VkDependencyFlags);
4907     memcpy(*ptr, (int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
4908     *ptr += sizeof(int32_t);
4909 }
4910 
reservedmarshal_VkRenderPassCreateInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassCreateInfo2 * forMarshaling,uint8_t ** ptr)4911 void reservedmarshal_VkRenderPassCreateInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
4912                                              const VkRenderPassCreateInfo2* forMarshaling,
4913                                              uint8_t** ptr) {
4914     (void)vkStream;
4915     (void)rootType;
4916     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4917     *ptr += sizeof(VkStructureType);
4918     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4919         rootType = forMarshaling->sType;
4920     }
4921     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4922     memcpy(*ptr, (VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
4923     *ptr += sizeof(VkRenderPassCreateFlags);
4924     memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
4925     *ptr += sizeof(uint32_t);
4926     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i) {
4927         reservedmarshal_VkAttachmentDescription2(
4928             vkStream, rootType, (const VkAttachmentDescription2*)(forMarshaling->pAttachments + i),
4929             ptr);
4930     }
4931     memcpy(*ptr, (uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
4932     *ptr += sizeof(uint32_t);
4933     for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i) {
4934         reservedmarshal_VkSubpassDescription2(
4935             vkStream, rootType, (const VkSubpassDescription2*)(forMarshaling->pSubpasses + i), ptr);
4936     }
4937     memcpy(*ptr, (uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
4938     *ptr += sizeof(uint32_t);
4939     for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i) {
4940         reservedmarshal_VkSubpassDependency2(
4941             vkStream, rootType, (const VkSubpassDependency2*)(forMarshaling->pDependencies + i),
4942             ptr);
4943     }
4944     memcpy(*ptr, (uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
4945     *ptr += sizeof(uint32_t);
4946     memcpy(*ptr, (const uint32_t*)forMarshaling->pCorrelatedViewMasks,
4947            forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
4948     *ptr += forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t);
4949 }
4950 
reservedmarshal_VkSubpassBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassBeginInfo * forMarshaling,uint8_t ** ptr)4951 void reservedmarshal_VkSubpassBeginInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4952                                         const VkSubpassBeginInfo* forMarshaling, uint8_t** ptr) {
4953     (void)vkStream;
4954     (void)rootType;
4955     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4956     *ptr += sizeof(VkStructureType);
4957     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4958         rootType = forMarshaling->sType;
4959     }
4960     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4961     memcpy(*ptr, (VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
4962     *ptr += sizeof(VkSubpassContents);
4963 }
4964 
reservedmarshal_VkSubpassEndInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassEndInfo * forMarshaling,uint8_t ** ptr)4965 void reservedmarshal_VkSubpassEndInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
4966                                       const VkSubpassEndInfo* forMarshaling, uint8_t** ptr) {
4967     (void)vkStream;
4968     (void)rootType;
4969     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4970     *ptr += sizeof(VkStructureType);
4971     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4972         rootType = forMarshaling->sType;
4973     }
4974     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4975 }
4976 
reservedmarshal_VkPhysicalDevice8BitStorageFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevice8BitStorageFeatures * forMarshaling,uint8_t ** ptr)4977 void reservedmarshal_VkPhysicalDevice8BitStorageFeatures(
4978     VulkanStreamGuest* vkStream, VkStructureType rootType,
4979     const VkPhysicalDevice8BitStorageFeatures* forMarshaling, uint8_t** ptr) {
4980     (void)vkStream;
4981     (void)rootType;
4982     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4983     *ptr += sizeof(VkStructureType);
4984     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4985         rootType = forMarshaling->sType;
4986     }
4987     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
4988     memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
4989     *ptr += sizeof(VkBool32);
4990     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
4991     *ptr += sizeof(VkBool32);
4992     memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
4993     *ptr += sizeof(VkBool32);
4994 }
4995 
reservedmarshal_VkPhysicalDeviceDriverProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDriverProperties * forMarshaling,uint8_t ** ptr)4996 void reservedmarshal_VkPhysicalDeviceDriverProperties(
4997     VulkanStreamGuest* vkStream, VkStructureType rootType,
4998     const VkPhysicalDeviceDriverProperties* forMarshaling, uint8_t** ptr) {
4999     (void)vkStream;
5000     (void)rootType;
5001     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5002     *ptr += sizeof(VkStructureType);
5003     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5004         rootType = forMarshaling->sType;
5005     }
5006     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5007     memcpy(*ptr, (VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
5008     *ptr += sizeof(VkDriverId);
5009     memcpy(*ptr, (char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
5010     *ptr += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
5011     memcpy(*ptr, (char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
5012     *ptr += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
5013     reservedmarshal_VkConformanceVersion(
5014         vkStream, rootType, (VkConformanceVersion*)(&forMarshaling->conformanceVersion), ptr);
5015 }
5016 
reservedmarshal_VkPhysicalDeviceShaderAtomicInt64Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderAtomicInt64Features * forMarshaling,uint8_t ** ptr)5017 void reservedmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
5018     VulkanStreamGuest* vkStream, VkStructureType rootType,
5019     const VkPhysicalDeviceShaderAtomicInt64Features* forMarshaling, uint8_t** ptr) {
5020     (void)vkStream;
5021     (void)rootType;
5022     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5023     *ptr += sizeof(VkStructureType);
5024     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5025         rootType = forMarshaling->sType;
5026     }
5027     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5028     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
5029     *ptr += sizeof(VkBool32);
5030     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
5031     *ptr += sizeof(VkBool32);
5032 }
5033 
reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderFloat16Int8Features * forMarshaling,uint8_t ** ptr)5034 void reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
5035     VulkanStreamGuest* vkStream, VkStructureType rootType,
5036     const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling, uint8_t** ptr) {
5037     (void)vkStream;
5038     (void)rootType;
5039     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5040     *ptr += sizeof(VkStructureType);
5041     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5042         rootType = forMarshaling->sType;
5043     }
5044     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5045     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
5046     *ptr += sizeof(VkBool32);
5047     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
5048     *ptr += sizeof(VkBool32);
5049 }
5050 
reservedmarshal_VkPhysicalDeviceFloatControlsProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFloatControlsProperties * forMarshaling,uint8_t ** ptr)5051 void reservedmarshal_VkPhysicalDeviceFloatControlsProperties(
5052     VulkanStreamGuest* vkStream, VkStructureType rootType,
5053     const VkPhysicalDeviceFloatControlsProperties* forMarshaling, uint8_t** ptr) {
5054     (void)vkStream;
5055     (void)rootType;
5056     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5057     *ptr += sizeof(VkStructureType);
5058     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5059         rootType = forMarshaling->sType;
5060     }
5061     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5062     memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence,
5063            sizeof(VkShaderFloatControlsIndependence));
5064     *ptr += sizeof(VkShaderFloatControlsIndependence);
5065     memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence,
5066            sizeof(VkShaderFloatControlsIndependence));
5067     *ptr += sizeof(VkShaderFloatControlsIndependence);
5068     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16,
5069            sizeof(VkBool32));
5070     *ptr += sizeof(VkBool32);
5071     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32,
5072            sizeof(VkBool32));
5073     *ptr += sizeof(VkBool32);
5074     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64,
5075            sizeof(VkBool32));
5076     *ptr += sizeof(VkBool32);
5077     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
5078     *ptr += sizeof(VkBool32);
5079     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
5080     *ptr += sizeof(VkBool32);
5081     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
5082     *ptr += sizeof(VkBool32);
5083     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
5084     *ptr += sizeof(VkBool32);
5085     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
5086     *ptr += sizeof(VkBool32);
5087     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
5088     *ptr += sizeof(VkBool32);
5089     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
5090     *ptr += sizeof(VkBool32);
5091     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
5092     *ptr += sizeof(VkBool32);
5093     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
5094     *ptr += sizeof(VkBool32);
5095     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
5096     *ptr += sizeof(VkBool32);
5097     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
5098     *ptr += sizeof(VkBool32);
5099     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
5100     *ptr += sizeof(VkBool32);
5101 }
5102 
reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetLayoutBindingFlagsCreateInfo * forMarshaling,uint8_t ** ptr)5103 void reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
5104     VulkanStreamGuest* vkStream, VkStructureType rootType,
5105     const VkDescriptorSetLayoutBindingFlagsCreateInfo* forMarshaling, uint8_t** ptr) {
5106     (void)vkStream;
5107     (void)rootType;
5108     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5109     *ptr += sizeof(VkStructureType);
5110     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5111         rootType = forMarshaling->sType;
5112     }
5113     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5114     memcpy(*ptr, (uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
5115     *ptr += sizeof(uint32_t);
5116     // WARNING PTR CHECK
5117     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pBindingFlags;
5118     memcpy((*ptr), &cgen_var_0, 8);
5119     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
5120     *ptr += 8;
5121     if (forMarshaling->pBindingFlags) {
5122         memcpy(*ptr, (const VkDescriptorBindingFlags*)forMarshaling->pBindingFlags,
5123                forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
5124         *ptr += forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags);
5125     }
5126 }
5127 
reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingFeatures * forMarshaling,uint8_t ** ptr)5128 void reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
5129     VulkanStreamGuest* vkStream, VkStructureType rootType,
5130     const VkPhysicalDeviceDescriptorIndexingFeatures* forMarshaling, uint8_t** ptr) {
5131     (void)vkStream;
5132     (void)rootType;
5133     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5134     *ptr += sizeof(VkStructureType);
5135     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5136         rootType = forMarshaling->sType;
5137     }
5138     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5139     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing,
5140            sizeof(VkBool32));
5141     *ptr += sizeof(VkBool32);
5142     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing,
5143            sizeof(VkBool32));
5144     *ptr += sizeof(VkBool32);
5145     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing,
5146            sizeof(VkBool32));
5147     *ptr += sizeof(VkBool32);
5148     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing,
5149            sizeof(VkBool32));
5150     *ptr += sizeof(VkBool32);
5151     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing,
5152            sizeof(VkBool32));
5153     *ptr += sizeof(VkBool32);
5154     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing,
5155            sizeof(VkBool32));
5156     *ptr += sizeof(VkBool32);
5157     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing,
5158            sizeof(VkBool32));
5159     *ptr += sizeof(VkBool32);
5160     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing,
5161            sizeof(VkBool32));
5162     *ptr += sizeof(VkBool32);
5163     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing,
5164            sizeof(VkBool32));
5165     *ptr += sizeof(VkBool32);
5166     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing,
5167            sizeof(VkBool32));
5168     *ptr += sizeof(VkBool32);
5169     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind,
5170            sizeof(VkBool32));
5171     *ptr += sizeof(VkBool32);
5172     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind,
5173            sizeof(VkBool32));
5174     *ptr += sizeof(VkBool32);
5175     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind,
5176            sizeof(VkBool32));
5177     *ptr += sizeof(VkBool32);
5178     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind,
5179            sizeof(VkBool32));
5180     *ptr += sizeof(VkBool32);
5181     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind,
5182            sizeof(VkBool32));
5183     *ptr += sizeof(VkBool32);
5184     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind,
5185            sizeof(VkBool32));
5186     *ptr += sizeof(VkBool32);
5187     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending,
5188            sizeof(VkBool32));
5189     *ptr += sizeof(VkBool32);
5190     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
5191     *ptr += sizeof(VkBool32);
5192     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount,
5193            sizeof(VkBool32));
5194     *ptr += sizeof(VkBool32);
5195     memcpy(*ptr, (VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
5196     *ptr += sizeof(VkBool32);
5197 }
5198 
reservedmarshal_VkPhysicalDeviceDescriptorIndexingProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDescriptorIndexingProperties * forMarshaling,uint8_t ** ptr)5199 void reservedmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
5200     VulkanStreamGuest* vkStream, VkStructureType rootType,
5201     const VkPhysicalDeviceDescriptorIndexingProperties* forMarshaling, uint8_t** ptr) {
5202     (void)vkStream;
5203     (void)rootType;
5204     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5205     *ptr += sizeof(VkStructureType);
5206     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5207         rootType = forMarshaling->sType;
5208     }
5209     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5210     memcpy(*ptr, (uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools,
5211            sizeof(uint32_t));
5212     *ptr += sizeof(uint32_t);
5213     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative,
5214            sizeof(VkBool32));
5215     *ptr += sizeof(VkBool32);
5216     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative,
5217            sizeof(VkBool32));
5218     *ptr += sizeof(VkBool32);
5219     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative,
5220            sizeof(VkBool32));
5221     *ptr += sizeof(VkBool32);
5222     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative,
5223            sizeof(VkBool32));
5224     *ptr += sizeof(VkBool32);
5225     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative,
5226            sizeof(VkBool32));
5227     *ptr += sizeof(VkBool32);
5228     memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
5229     *ptr += sizeof(VkBool32);
5230     memcpy(*ptr, (VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
5231     *ptr += sizeof(VkBool32);
5232     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers,
5233            sizeof(uint32_t));
5234     *ptr += sizeof(uint32_t);
5235     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers,
5236            sizeof(uint32_t));
5237     *ptr += sizeof(uint32_t);
5238     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers,
5239            sizeof(uint32_t));
5240     *ptr += sizeof(uint32_t);
5241     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages,
5242            sizeof(uint32_t));
5243     *ptr += sizeof(uint32_t);
5244     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages,
5245            sizeof(uint32_t));
5246     *ptr += sizeof(uint32_t);
5247     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments,
5248            sizeof(uint32_t));
5249     *ptr += sizeof(uint32_t);
5250     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
5251     *ptr += sizeof(uint32_t);
5252     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers,
5253            sizeof(uint32_t));
5254     *ptr += sizeof(uint32_t);
5255     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers,
5256            sizeof(uint32_t));
5257     *ptr += sizeof(uint32_t);
5258     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
5259            sizeof(uint32_t));
5260     *ptr += sizeof(uint32_t);
5261     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers,
5262            sizeof(uint32_t));
5263     *ptr += sizeof(uint32_t);
5264     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
5265            sizeof(uint32_t));
5266     *ptr += sizeof(uint32_t);
5267     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages,
5268            sizeof(uint32_t));
5269     *ptr += sizeof(uint32_t);
5270     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages,
5271            sizeof(uint32_t));
5272     *ptr += sizeof(uint32_t);
5273     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments,
5274            sizeof(uint32_t));
5275     *ptr += sizeof(uint32_t);
5276 }
5277 
reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountAllocateInfo * forMarshaling,uint8_t ** ptr)5278 void reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
5279     VulkanStreamGuest* vkStream, VkStructureType rootType,
5280     const VkDescriptorSetVariableDescriptorCountAllocateInfo* forMarshaling, uint8_t** ptr) {
5281     (void)vkStream;
5282     (void)rootType;
5283     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5284     *ptr += sizeof(VkStructureType);
5285     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5286         rootType = forMarshaling->sType;
5287     }
5288     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5289     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
5290     *ptr += sizeof(uint32_t);
5291     memcpy(*ptr, (const uint32_t*)forMarshaling->pDescriptorCounts,
5292            forMarshaling->descriptorSetCount * sizeof(const uint32_t));
5293     *ptr += forMarshaling->descriptorSetCount * sizeof(const uint32_t);
5294 }
5295 
reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorSetVariableDescriptorCountLayoutSupport * forMarshaling,uint8_t ** ptr)5296 void reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
5297     VulkanStreamGuest* vkStream, VkStructureType rootType,
5298     const VkDescriptorSetVariableDescriptorCountLayoutSupport* forMarshaling, uint8_t** ptr) {
5299     (void)vkStream;
5300     (void)rootType;
5301     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5302     *ptr += sizeof(VkStructureType);
5303     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5304         rootType = forMarshaling->sType;
5305     }
5306     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5307     memcpy(*ptr, (uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
5308     *ptr += sizeof(uint32_t);
5309 }
5310 
reservedmarshal_VkSubpassDescriptionDepthStencilResolve(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubpassDescriptionDepthStencilResolve * forMarshaling,uint8_t ** ptr)5311 void reservedmarshal_VkSubpassDescriptionDepthStencilResolve(
5312     VulkanStreamGuest* vkStream, VkStructureType rootType,
5313     const VkSubpassDescriptionDepthStencilResolve* forMarshaling, uint8_t** ptr) {
5314     (void)vkStream;
5315     (void)rootType;
5316     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5317     *ptr += sizeof(VkStructureType);
5318     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5319         rootType = forMarshaling->sType;
5320     }
5321     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5322     memcpy(*ptr, (VkResolveModeFlagBits*)&forMarshaling->depthResolveMode,
5323            sizeof(VkResolveModeFlagBits));
5324     *ptr += sizeof(VkResolveModeFlagBits);
5325     memcpy(*ptr, (VkResolveModeFlagBits*)&forMarshaling->stencilResolveMode,
5326            sizeof(VkResolveModeFlagBits));
5327     *ptr += sizeof(VkResolveModeFlagBits);
5328     // WARNING PTR CHECK
5329     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilResolveAttachment;
5330     memcpy((*ptr), &cgen_var_0, 8);
5331     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
5332     *ptr += 8;
5333     if (forMarshaling->pDepthStencilResolveAttachment) {
5334         reservedmarshal_VkAttachmentReference2(
5335             vkStream, rootType,
5336             (const VkAttachmentReference2*)(forMarshaling->pDepthStencilResolveAttachment), ptr);
5337     }
5338 }
5339 
reservedmarshal_VkPhysicalDeviceDepthStencilResolveProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthStencilResolveProperties * forMarshaling,uint8_t ** ptr)5340 void reservedmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
5341     VulkanStreamGuest* vkStream, VkStructureType rootType,
5342     const VkPhysicalDeviceDepthStencilResolveProperties* forMarshaling, uint8_t** ptr) {
5343     (void)vkStream;
5344     (void)rootType;
5345     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5346     *ptr += sizeof(VkStructureType);
5347     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5348         rootType = forMarshaling->sType;
5349     }
5350     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5351     memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes,
5352            sizeof(VkResolveModeFlags));
5353     *ptr += sizeof(VkResolveModeFlags);
5354     memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes,
5355            sizeof(VkResolveModeFlags));
5356     *ptr += sizeof(VkResolveModeFlags);
5357     memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
5358     *ptr += sizeof(VkBool32);
5359     memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
5360     *ptr += sizeof(VkBool32);
5361 }
5362 
reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceScalarBlockLayoutFeatures * forMarshaling,uint8_t ** ptr)5363 void reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
5364     VulkanStreamGuest* vkStream, VkStructureType rootType,
5365     const VkPhysicalDeviceScalarBlockLayoutFeatures* forMarshaling, uint8_t** ptr) {
5366     (void)vkStream;
5367     (void)rootType;
5368     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5369     *ptr += sizeof(VkStructureType);
5370     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5371         rootType = forMarshaling->sType;
5372     }
5373     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5374     memcpy(*ptr, (VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
5375     *ptr += sizeof(VkBool32);
5376 }
5377 
reservedmarshal_VkImageStencilUsageCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageStencilUsageCreateInfo * forMarshaling,uint8_t ** ptr)5378 void reservedmarshal_VkImageStencilUsageCreateInfo(
5379     VulkanStreamGuest* vkStream, VkStructureType rootType,
5380     const VkImageStencilUsageCreateInfo* forMarshaling, uint8_t** ptr) {
5381     (void)vkStream;
5382     (void)rootType;
5383     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5384     *ptr += sizeof(VkStructureType);
5385     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5386         rootType = forMarshaling->sType;
5387     }
5388     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5389     memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->stencilUsage, sizeof(VkImageUsageFlags));
5390     *ptr += sizeof(VkImageUsageFlags);
5391 }
5392 
reservedmarshal_VkSamplerReductionModeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerReductionModeCreateInfo * forMarshaling,uint8_t ** ptr)5393 void reservedmarshal_VkSamplerReductionModeCreateInfo(
5394     VulkanStreamGuest* vkStream, VkStructureType rootType,
5395     const VkSamplerReductionModeCreateInfo* forMarshaling, uint8_t** ptr) {
5396     (void)vkStream;
5397     (void)rootType;
5398     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5399     *ptr += sizeof(VkStructureType);
5400     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5401         rootType = forMarshaling->sType;
5402     }
5403     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5404     memcpy(*ptr, (VkSamplerReductionMode*)&forMarshaling->reductionMode,
5405            sizeof(VkSamplerReductionMode));
5406     *ptr += sizeof(VkSamplerReductionMode);
5407 }
5408 
reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSamplerFilterMinmaxProperties * forMarshaling,uint8_t ** ptr)5409 void reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
5410     VulkanStreamGuest* vkStream, VkStructureType rootType,
5411     const VkPhysicalDeviceSamplerFilterMinmaxProperties* forMarshaling, uint8_t** ptr) {
5412     (void)vkStream;
5413     (void)rootType;
5414     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5415     *ptr += sizeof(VkStructureType);
5416     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5417         rootType = forMarshaling->sType;
5418     }
5419     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5420     memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
5421     *ptr += sizeof(VkBool32);
5422     memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
5423     *ptr += sizeof(VkBool32);
5424 }
5425 
reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkanMemoryModelFeatures * forMarshaling,uint8_t ** ptr)5426 void reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
5427     VulkanStreamGuest* vkStream, VkStructureType rootType,
5428     const VkPhysicalDeviceVulkanMemoryModelFeatures* forMarshaling, uint8_t** ptr) {
5429     (void)vkStream;
5430     (void)rootType;
5431     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5432     *ptr += sizeof(VkStructureType);
5433     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5434         rootType = forMarshaling->sType;
5435     }
5436     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5437     memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
5438     *ptr += sizeof(VkBool32);
5439     memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
5440     *ptr += sizeof(VkBool32);
5441     memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains,
5442            sizeof(VkBool32));
5443     *ptr += sizeof(VkBool32);
5444 }
5445 
reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImagelessFramebufferFeatures * forMarshaling,uint8_t ** ptr)5446 void reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
5447     VulkanStreamGuest* vkStream, VkStructureType rootType,
5448     const VkPhysicalDeviceImagelessFramebufferFeatures* forMarshaling, uint8_t** ptr) {
5449     (void)vkStream;
5450     (void)rootType;
5451     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5452     *ptr += sizeof(VkStructureType);
5453     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5454         rootType = forMarshaling->sType;
5455     }
5456     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5457     memcpy(*ptr, (VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
5458     *ptr += sizeof(VkBool32);
5459 }
5460 
reservedmarshal_VkFramebufferAttachmentImageInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFramebufferAttachmentImageInfo * forMarshaling,uint8_t ** ptr)5461 void reservedmarshal_VkFramebufferAttachmentImageInfo(
5462     VulkanStreamGuest* vkStream, VkStructureType rootType,
5463     const VkFramebufferAttachmentImageInfo* forMarshaling, uint8_t** ptr) {
5464     (void)vkStream;
5465     (void)rootType;
5466     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5467     *ptr += sizeof(VkStructureType);
5468     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5469         rootType = forMarshaling->sType;
5470     }
5471     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5472     memcpy(*ptr, (VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
5473     *ptr += sizeof(VkImageCreateFlags);
5474     memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5475     *ptr += sizeof(VkImageUsageFlags);
5476     memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
5477     *ptr += sizeof(uint32_t);
5478     memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
5479     *ptr += sizeof(uint32_t);
5480     memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
5481     *ptr += sizeof(uint32_t);
5482     memcpy(*ptr, (uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
5483     *ptr += sizeof(uint32_t);
5484     memcpy(*ptr, (const VkFormat*)forMarshaling->pViewFormats,
5485            forMarshaling->viewFormatCount * sizeof(const VkFormat));
5486     *ptr += forMarshaling->viewFormatCount * sizeof(const VkFormat);
5487 }
5488 
reservedmarshal_VkFramebufferAttachmentsCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFramebufferAttachmentsCreateInfo * forMarshaling,uint8_t ** ptr)5489 void reservedmarshal_VkFramebufferAttachmentsCreateInfo(
5490     VulkanStreamGuest* vkStream, VkStructureType rootType,
5491     const VkFramebufferAttachmentsCreateInfo* forMarshaling, uint8_t** ptr) {
5492     (void)vkStream;
5493     (void)rootType;
5494     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5495     *ptr += sizeof(VkStructureType);
5496     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5497         rootType = forMarshaling->sType;
5498     }
5499     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5500     memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentImageInfoCount, sizeof(uint32_t));
5501     *ptr += sizeof(uint32_t);
5502     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentImageInfoCount; ++i) {
5503         reservedmarshal_VkFramebufferAttachmentImageInfo(
5504             vkStream, rootType,
5505             (const VkFramebufferAttachmentImageInfo*)(forMarshaling->pAttachmentImageInfos + i),
5506             ptr);
5507     }
5508 }
5509 
reservedmarshal_VkRenderPassAttachmentBeginInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassAttachmentBeginInfo * forMarshaling,uint8_t ** ptr)5510 void reservedmarshal_VkRenderPassAttachmentBeginInfo(
5511     VulkanStreamGuest* vkStream, VkStructureType rootType,
5512     const VkRenderPassAttachmentBeginInfo* forMarshaling, uint8_t** ptr) {
5513     (void)vkStream;
5514     (void)rootType;
5515     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5516     *ptr += sizeof(VkStructureType);
5517     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5518         rootType = forMarshaling->sType;
5519     }
5520     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5521     memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
5522     *ptr += sizeof(uint32_t);
5523     if (forMarshaling->attachmentCount) {
5524         uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
5525         if (forMarshaling) {
5526             for (uint32_t k = 0; k < forMarshaling->attachmentCount; ++k) {
5527                 uint64_t tmpval = get_host_u64_VkImageView(forMarshaling->pAttachments[k]);
5528                 memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
5529             }
5530         }
5531         *ptr += 8 * forMarshaling->attachmentCount;
5532     }
5533 }
5534 
reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceUniformBufferStandardLayoutFeatures * forMarshaling,uint8_t ** ptr)5535 void reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
5536     VulkanStreamGuest* vkStream, VkStructureType rootType,
5537     const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forMarshaling, uint8_t** ptr) {
5538     (void)vkStream;
5539     (void)rootType;
5540     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5541     *ptr += sizeof(VkStructureType);
5542     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5543         rootType = forMarshaling->sType;
5544     }
5545     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5546     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
5547     *ptr += sizeof(VkBool32);
5548 }
5549 
reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * forMarshaling,uint8_t ** ptr)5550 void reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
5551     VulkanStreamGuest* vkStream, VkStructureType rootType,
5552     const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forMarshaling, uint8_t** ptr) {
5553     (void)vkStream;
5554     (void)rootType;
5555     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5556     *ptr += sizeof(VkStructureType);
5557     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5558         rootType = forMarshaling->sType;
5559     }
5560     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5561     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
5562     *ptr += sizeof(VkBool32);
5563 }
5564 
reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * forMarshaling,uint8_t ** ptr)5565 void reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
5566     VulkanStreamGuest* vkStream, VkStructureType rootType,
5567     const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forMarshaling, uint8_t** ptr) {
5568     (void)vkStream;
5569     (void)rootType;
5570     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5571     *ptr += sizeof(VkStructureType);
5572     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5573         rootType = forMarshaling->sType;
5574     }
5575     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5576     memcpy(*ptr, (VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
5577     *ptr += sizeof(VkBool32);
5578 }
5579 
reservedmarshal_VkAttachmentReferenceStencilLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentReferenceStencilLayout * forMarshaling,uint8_t ** ptr)5580 void reservedmarshal_VkAttachmentReferenceStencilLayout(
5581     VulkanStreamGuest* vkStream, VkStructureType rootType,
5582     const VkAttachmentReferenceStencilLayout* forMarshaling, uint8_t** ptr) {
5583     (void)vkStream;
5584     (void)rootType;
5585     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5586     *ptr += sizeof(VkStructureType);
5587     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5588         rootType = forMarshaling->sType;
5589     }
5590     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5591     memcpy(*ptr, (VkImageLayout*)&forMarshaling->stencilLayout, sizeof(VkImageLayout));
5592     *ptr += sizeof(VkImageLayout);
5593 }
5594 
reservedmarshal_VkAttachmentDescriptionStencilLayout(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentDescriptionStencilLayout * forMarshaling,uint8_t ** ptr)5595 void reservedmarshal_VkAttachmentDescriptionStencilLayout(
5596     VulkanStreamGuest* vkStream, VkStructureType rootType,
5597     const VkAttachmentDescriptionStencilLayout* forMarshaling, uint8_t** ptr) {
5598     (void)vkStream;
5599     (void)rootType;
5600     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5601     *ptr += sizeof(VkStructureType);
5602     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5603         rootType = forMarshaling->sType;
5604     }
5605     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5606     memcpy(*ptr, (VkImageLayout*)&forMarshaling->stencilInitialLayout, sizeof(VkImageLayout));
5607     *ptr += sizeof(VkImageLayout);
5608     memcpy(*ptr, (VkImageLayout*)&forMarshaling->stencilFinalLayout, sizeof(VkImageLayout));
5609     *ptr += sizeof(VkImageLayout);
5610 }
5611 
reservedmarshal_VkPhysicalDeviceHostQueryResetFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostQueryResetFeatures * forMarshaling,uint8_t ** ptr)5612 void reservedmarshal_VkPhysicalDeviceHostQueryResetFeatures(
5613     VulkanStreamGuest* vkStream, VkStructureType rootType,
5614     const VkPhysicalDeviceHostQueryResetFeatures* forMarshaling, uint8_t** ptr) {
5615     (void)vkStream;
5616     (void)rootType;
5617     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5618     *ptr += sizeof(VkStructureType);
5619     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5620         rootType = forMarshaling->sType;
5621     }
5622     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5623     memcpy(*ptr, (VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
5624     *ptr += sizeof(VkBool32);
5625 }
5626 
reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreFeatures * forMarshaling,uint8_t ** ptr)5627 void reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
5628     VulkanStreamGuest* vkStream, VkStructureType rootType,
5629     const VkPhysicalDeviceTimelineSemaphoreFeatures* forMarshaling, uint8_t** ptr) {
5630     (void)vkStream;
5631     (void)rootType;
5632     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5633     *ptr += sizeof(VkStructureType);
5634     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5635         rootType = forMarshaling->sType;
5636     }
5637     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5638     memcpy(*ptr, (VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
5639     *ptr += sizeof(VkBool32);
5640 }
5641 
reservedmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTimelineSemaphoreProperties * forMarshaling,uint8_t ** ptr)5642 void reservedmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
5643     VulkanStreamGuest* vkStream, VkStructureType rootType,
5644     const VkPhysicalDeviceTimelineSemaphoreProperties* forMarshaling, uint8_t** ptr) {
5645     (void)vkStream;
5646     (void)rootType;
5647     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5648     *ptr += sizeof(VkStructureType);
5649     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5650         rootType = forMarshaling->sType;
5651     }
5652     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5653     memcpy(*ptr, (uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
5654     *ptr += sizeof(uint64_t);
5655 }
5656 
reservedmarshal_VkSemaphoreTypeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreTypeCreateInfo * forMarshaling,uint8_t ** ptr)5657 void reservedmarshal_VkSemaphoreTypeCreateInfo(VulkanStreamGuest* vkStream,
5658                                                VkStructureType rootType,
5659                                                const VkSemaphoreTypeCreateInfo* forMarshaling,
5660                                                uint8_t** ptr) {
5661     (void)vkStream;
5662     (void)rootType;
5663     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5664     *ptr += sizeof(VkStructureType);
5665     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5666         rootType = forMarshaling->sType;
5667     }
5668     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5669     memcpy(*ptr, (VkSemaphoreType*)&forMarshaling->semaphoreType, sizeof(VkSemaphoreType));
5670     *ptr += sizeof(VkSemaphoreType);
5671     memcpy(*ptr, (uint64_t*)&forMarshaling->initialValue, sizeof(uint64_t));
5672     *ptr += sizeof(uint64_t);
5673 }
5674 
reservedmarshal_VkTimelineSemaphoreSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkTimelineSemaphoreSubmitInfo * forMarshaling,uint8_t ** ptr)5675 void reservedmarshal_VkTimelineSemaphoreSubmitInfo(
5676     VulkanStreamGuest* vkStream, VkStructureType rootType,
5677     const VkTimelineSemaphoreSubmitInfo* forMarshaling, uint8_t** ptr) {
5678     (void)vkStream;
5679     (void)rootType;
5680     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5681     *ptr += sizeof(VkStructureType);
5682     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5683         rootType = forMarshaling->sType;
5684     }
5685     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5686     memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
5687     *ptr += sizeof(uint32_t);
5688     // WARNING PTR CHECK
5689     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
5690     memcpy((*ptr), &cgen_var_0, 8);
5691     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
5692     *ptr += 8;
5693     if (forMarshaling->pWaitSemaphoreValues) {
5694         memcpy(*ptr, (const uint64_t*)forMarshaling->pWaitSemaphoreValues,
5695                forMarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
5696         *ptr += forMarshaling->waitSemaphoreValueCount * sizeof(const uint64_t);
5697     }
5698     memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
5699     *ptr += sizeof(uint32_t);
5700     // WARNING PTR CHECK
5701     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
5702     memcpy((*ptr), &cgen_var_1, 8);
5703     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
5704     *ptr += 8;
5705     if (forMarshaling->pSignalSemaphoreValues) {
5706         memcpy(*ptr, (const uint64_t*)forMarshaling->pSignalSemaphoreValues,
5707                forMarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
5708         *ptr += forMarshaling->signalSemaphoreValueCount * sizeof(const uint64_t);
5709     }
5710 }
5711 
reservedmarshal_VkSemaphoreWaitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreWaitInfo * forMarshaling,uint8_t ** ptr)5712 void reservedmarshal_VkSemaphoreWaitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5713                                          const VkSemaphoreWaitInfo* forMarshaling, uint8_t** ptr) {
5714     (void)vkStream;
5715     (void)rootType;
5716     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5717     *ptr += sizeof(VkStructureType);
5718     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5719         rootType = forMarshaling->sType;
5720     }
5721     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5722     memcpy(*ptr, (VkSemaphoreWaitFlags*)&forMarshaling->flags, sizeof(VkSemaphoreWaitFlags));
5723     *ptr += sizeof(VkSemaphoreWaitFlags);
5724     memcpy(*ptr, (uint32_t*)&forMarshaling->semaphoreCount, sizeof(uint32_t));
5725     *ptr += sizeof(uint32_t);
5726     if (forMarshaling->semaphoreCount) {
5727         uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
5728         if (forMarshaling) {
5729             for (uint32_t k = 0; k < forMarshaling->semaphoreCount; ++k) {
5730                 uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSemaphores[k]);
5731                 memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
5732             }
5733         }
5734         *ptr += 8 * forMarshaling->semaphoreCount;
5735     }
5736     memcpy(*ptr, (const uint64_t*)forMarshaling->pValues,
5737            forMarshaling->semaphoreCount * sizeof(const uint64_t));
5738     *ptr += forMarshaling->semaphoreCount * sizeof(const uint64_t);
5739 }
5740 
reservedmarshal_VkSemaphoreSignalInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreSignalInfo * forMarshaling,uint8_t ** ptr)5741 void reservedmarshal_VkSemaphoreSignalInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
5742                                            const VkSemaphoreSignalInfo* forMarshaling,
5743                                            uint8_t** ptr) {
5744     (void)vkStream;
5745     (void)rootType;
5746     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5747     *ptr += sizeof(VkStructureType);
5748     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5749         rootType = forMarshaling->sType;
5750     }
5751     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5752     uint64_t cgen_var_0;
5753     *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
5754     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
5755     *ptr += 1 * 8;
5756     memcpy(*ptr, (uint64_t*)&forMarshaling->value, sizeof(uint64_t));
5757     *ptr += sizeof(uint64_t);
5758 }
5759 
reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceBufferDeviceAddressFeatures * forMarshaling,uint8_t ** ptr)5760 void reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
5761     VulkanStreamGuest* vkStream, VkStructureType rootType,
5762     const VkPhysicalDeviceBufferDeviceAddressFeatures* forMarshaling, uint8_t** ptr) {
5763     (void)vkStream;
5764     (void)rootType;
5765     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5766     *ptr += sizeof(VkStructureType);
5767     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5768         rootType = forMarshaling->sType;
5769     }
5770     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5771     memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
5772     *ptr += sizeof(VkBool32);
5773     memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
5774     *ptr += sizeof(VkBool32);
5775     memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
5776     *ptr += sizeof(VkBool32);
5777 }
5778 
reservedmarshal_VkBufferDeviceAddressInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferDeviceAddressInfo * forMarshaling,uint8_t ** ptr)5779 void reservedmarshal_VkBufferDeviceAddressInfo(VulkanStreamGuest* vkStream,
5780                                                VkStructureType rootType,
5781                                                const VkBufferDeviceAddressInfo* forMarshaling,
5782                                                uint8_t** ptr) {
5783     (void)vkStream;
5784     (void)rootType;
5785     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5786     *ptr += sizeof(VkStructureType);
5787     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5788         rootType = forMarshaling->sType;
5789     }
5790     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5791     uint64_t cgen_var_0;
5792     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
5793     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
5794     *ptr += 1 * 8;
5795 }
5796 
reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferOpaqueCaptureAddressCreateInfo * forMarshaling,uint8_t ** ptr)5797 void reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
5798     VulkanStreamGuest* vkStream, VkStructureType rootType,
5799     const VkBufferOpaqueCaptureAddressCreateInfo* forMarshaling, uint8_t** ptr) {
5800     (void)vkStream;
5801     (void)rootType;
5802     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5803     *ptr += sizeof(VkStructureType);
5804     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5805         rootType = forMarshaling->sType;
5806     }
5807     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5808     memcpy(*ptr, (uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
5809     *ptr += sizeof(uint64_t);
5810 }
5811 
reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryOpaqueCaptureAddressAllocateInfo * forMarshaling,uint8_t ** ptr)5812 void reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
5813     VulkanStreamGuest* vkStream, VkStructureType rootType,
5814     const VkMemoryOpaqueCaptureAddressAllocateInfo* forMarshaling, uint8_t** ptr) {
5815     (void)vkStream;
5816     (void)rootType;
5817     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5818     *ptr += sizeof(VkStructureType);
5819     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5820         rootType = forMarshaling->sType;
5821     }
5822     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5823     memcpy(*ptr, (uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
5824     *ptr += sizeof(uint64_t);
5825 }
5826 
reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceMemoryOpaqueCaptureAddressInfo * forMarshaling,uint8_t ** ptr)5827 void reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
5828     VulkanStreamGuest* vkStream, VkStructureType rootType,
5829     const VkDeviceMemoryOpaqueCaptureAddressInfo* forMarshaling, uint8_t** ptr) {
5830     (void)vkStream;
5831     (void)rootType;
5832     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5833     *ptr += sizeof(VkStructureType);
5834     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5835         rootType = forMarshaling->sType;
5836     }
5837     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5838     uint64_t cgen_var_0;
5839     *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
5840     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
5841     *ptr += 1 * 8;
5842 }
5843 
5844 #endif
5845 #ifdef VK_VERSION_1_3
reservedmarshal_VkPhysicalDeviceVulkan13Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan13Features * forMarshaling,uint8_t ** ptr)5846 void reservedmarshal_VkPhysicalDeviceVulkan13Features(
5847     VulkanStreamGuest* vkStream, VkStructureType rootType,
5848     const VkPhysicalDeviceVulkan13Features* forMarshaling, uint8_t** ptr) {
5849     (void)vkStream;
5850     (void)rootType;
5851     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5852     *ptr += sizeof(VkStructureType);
5853     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5854         rootType = forMarshaling->sType;
5855     }
5856     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5857     memcpy(*ptr, (VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
5858     *ptr += sizeof(VkBool32);
5859     memcpy(*ptr, (VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
5860     *ptr += sizeof(VkBool32);
5861     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
5862            sizeof(VkBool32));
5863     *ptr += sizeof(VkBool32);
5864     memcpy(*ptr, (VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
5865     *ptr += sizeof(VkBool32);
5866     memcpy(*ptr, (VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
5867     *ptr += sizeof(VkBool32);
5868     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
5869     *ptr += sizeof(VkBool32);
5870     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
5871     *ptr += sizeof(VkBool32);
5872     memcpy(*ptr, (VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
5873     *ptr += sizeof(VkBool32);
5874     memcpy(*ptr, (VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
5875     *ptr += sizeof(VkBool32);
5876     memcpy(*ptr, (VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
5877     *ptr += sizeof(VkBool32);
5878     memcpy(*ptr, (VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
5879     *ptr += sizeof(VkBool32);
5880     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory, sizeof(VkBool32));
5881     *ptr += sizeof(VkBool32);
5882     memcpy(*ptr, (VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
5883     *ptr += sizeof(VkBool32);
5884     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
5885     *ptr += sizeof(VkBool32);
5886     memcpy(*ptr, (VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
5887     *ptr += sizeof(VkBool32);
5888 }
5889 
reservedmarshal_VkPhysicalDeviceVulkan13Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVulkan13Properties * forMarshaling,uint8_t ** ptr)5890 void reservedmarshal_VkPhysicalDeviceVulkan13Properties(
5891     VulkanStreamGuest* vkStream, VkStructureType rootType,
5892     const VkPhysicalDeviceVulkan13Properties* forMarshaling, uint8_t** ptr) {
5893     (void)vkStream;
5894     (void)rootType;
5895     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5896     *ptr += sizeof(VkStructureType);
5897     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5898         rootType = forMarshaling->sType;
5899     }
5900     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
5901     memcpy(*ptr, (uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
5902     *ptr += sizeof(uint32_t);
5903     memcpy(*ptr, (uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
5904     *ptr += sizeof(uint32_t);
5905     memcpy(*ptr, (uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
5906     *ptr += sizeof(uint32_t);
5907     memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages,
5908            sizeof(VkShaderStageFlags));
5909     *ptr += sizeof(VkShaderStageFlags);
5910     memcpy(*ptr, (uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
5911     *ptr += sizeof(uint32_t);
5912     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks,
5913            sizeof(uint32_t));
5914     *ptr += sizeof(uint32_t);
5915     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
5916            sizeof(uint32_t));
5917     *ptr += sizeof(uint32_t);
5918     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks, sizeof(uint32_t));
5919     *ptr += sizeof(uint32_t);
5920     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
5921            sizeof(uint32_t));
5922     *ptr += sizeof(uint32_t);
5923     memcpy(*ptr, (uint32_t*)&forMarshaling->maxInlineUniformTotalSize, sizeof(uint32_t));
5924     *ptr += sizeof(uint32_t);
5925     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated,
5926            sizeof(VkBool32));
5927     *ptr += sizeof(VkBool32);
5928     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated,
5929            sizeof(VkBool32));
5930     *ptr += sizeof(VkBool32);
5931     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated,
5932            sizeof(VkBool32));
5933     *ptr += sizeof(VkBool32);
5934     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
5935            sizeof(VkBool32));
5936     *ptr += sizeof(VkBool32);
5937     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
5938            sizeof(VkBool32));
5939     *ptr += sizeof(VkBool32);
5940     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
5941            sizeof(VkBool32));
5942     *ptr += sizeof(VkBool32);
5943     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated,
5944            sizeof(VkBool32));
5945     *ptr += sizeof(VkBool32);
5946     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated,
5947            sizeof(VkBool32));
5948     *ptr += sizeof(VkBool32);
5949     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated,
5950            sizeof(VkBool32));
5951     *ptr += sizeof(VkBool32);
5952     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated,
5953            sizeof(VkBool32));
5954     *ptr += sizeof(VkBool32);
5955     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated,
5956            sizeof(VkBool32));
5957     *ptr += sizeof(VkBool32);
5958     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated,
5959            sizeof(VkBool32));
5960     *ptr += sizeof(VkBool32);
5961     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated,
5962            sizeof(VkBool32));
5963     *ptr += sizeof(VkBool32);
5964     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated,
5965            sizeof(VkBool32));
5966     *ptr += sizeof(VkBool32);
5967     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated,
5968            sizeof(VkBool32));
5969     *ptr += sizeof(VkBool32);
5970     memcpy(
5971         *ptr,
5972         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
5973         sizeof(VkBool32));
5974     *ptr += sizeof(VkBool32);
5975     memcpy(*ptr,
5976            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
5977            sizeof(VkBool32));
5978     *ptr += sizeof(VkBool32);
5979     memcpy(*ptr,
5980            (VkBool32*)&forMarshaling
5981                ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
5982            sizeof(VkBool32));
5983     *ptr += sizeof(VkBool32);
5984     memcpy(*ptr,
5985            (VkBool32*)&forMarshaling
5986                ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
5987            sizeof(VkBool32));
5988     *ptr += sizeof(VkBool32);
5989     memcpy(*ptr,
5990            (VkBool32*)&forMarshaling
5991                ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
5992            sizeof(VkBool32));
5993     *ptr += sizeof(VkBool32);
5994     memcpy(*ptr,
5995            (VkBool32*)&forMarshaling
5996                ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
5997            sizeof(VkBool32));
5998     *ptr += sizeof(VkBool32);
5999     memcpy(
6000         *ptr,
6001         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
6002         sizeof(VkBool32));
6003     *ptr += sizeof(VkBool32);
6004     memcpy(*ptr,
6005            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
6006            sizeof(VkBool32));
6007     *ptr += sizeof(VkBool32);
6008     memcpy(*ptr,
6009            (VkBool32*)&forMarshaling
6010                ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
6011            sizeof(VkBool32));
6012     *ptr += sizeof(VkBool32);
6013     memcpy(
6014         *ptr,
6015         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
6016         sizeof(VkBool32));
6017     *ptr += sizeof(VkBool32);
6018     memcpy(*ptr,
6019            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
6020            sizeof(VkBool32));
6021     *ptr += sizeof(VkBool32);
6022     memcpy(*ptr,
6023            (VkBool32*)&forMarshaling
6024                ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
6025            sizeof(VkBool32));
6026     *ptr += sizeof(VkBool32);
6027     memcpy(
6028         *ptr,
6029         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
6030         sizeof(VkBool32));
6031     *ptr += sizeof(VkBool32);
6032     memcpy(*ptr,
6033            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
6034            sizeof(VkBool32));
6035     *ptr += sizeof(VkBool32);
6036     memcpy(*ptr,
6037            (VkBool32*)&forMarshaling
6038                ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
6039            sizeof(VkBool32));
6040     *ptr += sizeof(VkBool32);
6041     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes,
6042            sizeof(VkDeviceSize));
6043     *ptr += sizeof(VkDeviceSize);
6044     memcpy(*ptr, (VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment,
6045            sizeof(VkBool32));
6046     *ptr += sizeof(VkBool32);
6047     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes,
6048            sizeof(VkDeviceSize));
6049     *ptr += sizeof(VkDeviceSize);
6050     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
6051            sizeof(VkBool32));
6052     *ptr += sizeof(VkBool32);
6053     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
6054     *ptr += sizeof(VkDeviceSize);
6055 }
6056 
reservedmarshal_VkPipelineCreationFeedback(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCreationFeedback * forMarshaling,uint8_t ** ptr)6057 void reservedmarshal_VkPipelineCreationFeedback(VulkanStreamGuest* vkStream,
6058                                                 VkStructureType rootType,
6059                                                 const VkPipelineCreationFeedback* forMarshaling,
6060                                                 uint8_t** ptr) {
6061     (void)vkStream;
6062     (void)rootType;
6063     memcpy(*ptr, (VkPipelineCreationFeedbackFlags*)&forMarshaling->flags,
6064            sizeof(VkPipelineCreationFeedbackFlags));
6065     *ptr += sizeof(VkPipelineCreationFeedbackFlags);
6066     memcpy(*ptr, (uint64_t*)&forMarshaling->duration, sizeof(uint64_t));
6067     *ptr += sizeof(uint64_t);
6068 }
6069 
reservedmarshal_VkPipelineCreationFeedbackCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCreationFeedbackCreateInfo * forMarshaling,uint8_t ** ptr)6070 void reservedmarshal_VkPipelineCreationFeedbackCreateInfo(
6071     VulkanStreamGuest* vkStream, VkStructureType rootType,
6072     const VkPipelineCreationFeedbackCreateInfo* forMarshaling, uint8_t** ptr) {
6073     (void)vkStream;
6074     (void)rootType;
6075     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6076     *ptr += sizeof(VkStructureType);
6077     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6078         rootType = forMarshaling->sType;
6079     }
6080     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6081     reservedmarshal_VkPipelineCreationFeedback(
6082         vkStream, rootType, (VkPipelineCreationFeedback*)(forMarshaling->pPipelineCreationFeedback),
6083         ptr);
6084     memcpy(*ptr, (uint32_t*)&forMarshaling->pipelineStageCreationFeedbackCount, sizeof(uint32_t));
6085     *ptr += sizeof(uint32_t);
6086     for (uint32_t i = 0; i < (uint32_t)forMarshaling->pipelineStageCreationFeedbackCount; ++i) {
6087         reservedmarshal_VkPipelineCreationFeedback(
6088             vkStream, rootType,
6089             (VkPipelineCreationFeedback*)(forMarshaling->pPipelineStageCreationFeedbacks + i), ptr);
6090     }
6091 }
6092 
reservedmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderTerminateInvocationFeatures * forMarshaling,uint8_t ** ptr)6093 void reservedmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
6094     VulkanStreamGuest* vkStream, VkStructureType rootType,
6095     const VkPhysicalDeviceShaderTerminateInvocationFeatures* forMarshaling, uint8_t** ptr) {
6096     (void)vkStream;
6097     (void)rootType;
6098     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6099     *ptr += sizeof(VkStructureType);
6100     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6101         rootType = forMarshaling->sType;
6102     }
6103     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6104     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
6105     *ptr += sizeof(VkBool32);
6106 }
6107 
reservedmarshal_VkPhysicalDeviceToolProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceToolProperties * forMarshaling,uint8_t ** ptr)6108 void reservedmarshal_VkPhysicalDeviceToolProperties(
6109     VulkanStreamGuest* vkStream, VkStructureType rootType,
6110     const VkPhysicalDeviceToolProperties* forMarshaling, uint8_t** ptr) {
6111     (void)vkStream;
6112     (void)rootType;
6113     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6114     *ptr += sizeof(VkStructureType);
6115     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6116         rootType = forMarshaling->sType;
6117     }
6118     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6119     memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
6120     *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
6121     memcpy(*ptr, (char*)forMarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
6122     *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
6123     memcpy(*ptr, (VkToolPurposeFlags*)&forMarshaling->purposes, sizeof(VkToolPurposeFlags));
6124     *ptr += sizeof(VkToolPurposeFlags);
6125     memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
6126     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
6127     memcpy(*ptr, (char*)forMarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
6128     *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
6129 }
6130 
reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * forMarshaling,uint8_t ** ptr)6131 void reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
6132     VulkanStreamGuest* vkStream, VkStructureType rootType,
6133     const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* forMarshaling, uint8_t** ptr) {
6134     (void)vkStream;
6135     (void)rootType;
6136     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6137     *ptr += sizeof(VkStructureType);
6138     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6139         rootType = forMarshaling->sType;
6140     }
6141     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6142     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
6143     *ptr += sizeof(VkBool32);
6144 }
6145 
reservedmarshal_VkPhysicalDevicePrivateDataFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePrivateDataFeatures * forMarshaling,uint8_t ** ptr)6146 void reservedmarshal_VkPhysicalDevicePrivateDataFeatures(
6147     VulkanStreamGuest* vkStream, VkStructureType rootType,
6148     const VkPhysicalDevicePrivateDataFeatures* forMarshaling, uint8_t** ptr) {
6149     (void)vkStream;
6150     (void)rootType;
6151     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6152     *ptr += sizeof(VkStructureType);
6153     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6154         rootType = forMarshaling->sType;
6155     }
6156     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6157     memcpy(*ptr, (VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
6158     *ptr += sizeof(VkBool32);
6159 }
6160 
reservedmarshal_VkDevicePrivateDataCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDevicePrivateDataCreateInfo * forMarshaling,uint8_t ** ptr)6161 void reservedmarshal_VkDevicePrivateDataCreateInfo(
6162     VulkanStreamGuest* vkStream, VkStructureType rootType,
6163     const VkDevicePrivateDataCreateInfo* forMarshaling, uint8_t** ptr) {
6164     (void)vkStream;
6165     (void)rootType;
6166     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6167     *ptr += sizeof(VkStructureType);
6168     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6169         rootType = forMarshaling->sType;
6170     }
6171     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6172     memcpy(*ptr, (uint32_t*)&forMarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
6173     *ptr += sizeof(uint32_t);
6174 }
6175 
reservedmarshal_VkPrivateDataSlotCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPrivateDataSlotCreateInfo * forMarshaling,uint8_t ** ptr)6176 void reservedmarshal_VkPrivateDataSlotCreateInfo(VulkanStreamGuest* vkStream,
6177                                                  VkStructureType rootType,
6178                                                  const VkPrivateDataSlotCreateInfo* forMarshaling,
6179                                                  uint8_t** ptr) {
6180     (void)vkStream;
6181     (void)rootType;
6182     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6183     *ptr += sizeof(VkStructureType);
6184     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6185         rootType = forMarshaling->sType;
6186     }
6187     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6188     memcpy(*ptr, (VkPrivateDataSlotCreateFlags*)&forMarshaling->flags,
6189            sizeof(VkPrivateDataSlotCreateFlags));
6190     *ptr += sizeof(VkPrivateDataSlotCreateFlags);
6191 }
6192 
reservedmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineCreationCacheControlFeatures * forMarshaling,uint8_t ** ptr)6193 void reservedmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
6194     VulkanStreamGuest* vkStream, VkStructureType rootType,
6195     const VkPhysicalDevicePipelineCreationCacheControlFeatures* forMarshaling, uint8_t** ptr) {
6196     (void)vkStream;
6197     (void)rootType;
6198     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6199     *ptr += sizeof(VkStructureType);
6200     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6201         rootType = forMarshaling->sType;
6202     }
6203     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6204     memcpy(*ptr, (VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
6205     *ptr += sizeof(VkBool32);
6206 }
6207 
reservedmarshal_VkMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryBarrier2 * forMarshaling,uint8_t ** ptr)6208 void reservedmarshal_VkMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6209                                       const VkMemoryBarrier2* forMarshaling, uint8_t** ptr) {
6210     (void)vkStream;
6211     (void)rootType;
6212     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6213     *ptr += sizeof(VkStructureType);
6214     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6215         rootType = forMarshaling->sType;
6216     }
6217     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6218     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
6219            sizeof(VkPipelineStageFlags2));
6220     *ptr += sizeof(VkPipelineStageFlags2);
6221     memcpy(*ptr, (VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
6222     *ptr += sizeof(VkAccessFlags2);
6223     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
6224            sizeof(VkPipelineStageFlags2));
6225     *ptr += sizeof(VkPipelineStageFlags2);
6226     memcpy(*ptr, (VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
6227     *ptr += sizeof(VkAccessFlags2);
6228 }
6229 
reservedmarshal_VkBufferMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferMemoryBarrier2 * forMarshaling,uint8_t ** ptr)6230 void reservedmarshal_VkBufferMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6231                                             const VkBufferMemoryBarrier2* forMarshaling,
6232                                             uint8_t** ptr) {
6233     (void)vkStream;
6234     (void)rootType;
6235     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6236     *ptr += sizeof(VkStructureType);
6237     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6238         rootType = forMarshaling->sType;
6239     }
6240     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6241     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
6242            sizeof(VkPipelineStageFlags2));
6243     *ptr += sizeof(VkPipelineStageFlags2);
6244     memcpy(*ptr, (VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
6245     *ptr += sizeof(VkAccessFlags2);
6246     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
6247            sizeof(VkPipelineStageFlags2));
6248     *ptr += sizeof(VkPipelineStageFlags2);
6249     memcpy(*ptr, (VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
6250     *ptr += sizeof(VkAccessFlags2);
6251     memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
6252     *ptr += sizeof(uint32_t);
6253     memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
6254     *ptr += sizeof(uint32_t);
6255     uint64_t cgen_var_0;
6256     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
6257     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6258     *ptr += 1 * 8;
6259     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
6260     *ptr += sizeof(VkDeviceSize);
6261     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
6262     *ptr += sizeof(VkDeviceSize);
6263 }
6264 
reservedmarshal_VkImageMemoryBarrier2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageMemoryBarrier2 * forMarshaling,uint8_t ** ptr)6265 void reservedmarshal_VkImageMemoryBarrier2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6266                                            const VkImageMemoryBarrier2* forMarshaling,
6267                                            uint8_t** ptr) {
6268     (void)vkStream;
6269     (void)rootType;
6270     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6271     *ptr += sizeof(VkStructureType);
6272     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6273         rootType = forMarshaling->sType;
6274     }
6275     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6276     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->srcStageMask,
6277            sizeof(VkPipelineStageFlags2));
6278     *ptr += sizeof(VkPipelineStageFlags2);
6279     memcpy(*ptr, (VkAccessFlags2*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2));
6280     *ptr += sizeof(VkAccessFlags2);
6281     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->dstStageMask,
6282            sizeof(VkPipelineStageFlags2));
6283     *ptr += sizeof(VkPipelineStageFlags2);
6284     memcpy(*ptr, (VkAccessFlags2*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2));
6285     *ptr += sizeof(VkAccessFlags2);
6286     memcpy(*ptr, (VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
6287     *ptr += sizeof(VkImageLayout);
6288     memcpy(*ptr, (VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
6289     *ptr += sizeof(VkImageLayout);
6290     memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
6291     *ptr += sizeof(uint32_t);
6292     memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
6293     *ptr += sizeof(uint32_t);
6294     uint64_t cgen_var_0;
6295     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
6296     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6297     *ptr += 1 * 8;
6298     reservedmarshal_VkImageSubresourceRange(
6299         vkStream, rootType, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange), ptr);
6300 }
6301 
reservedmarshal_VkDependencyInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDependencyInfo * forMarshaling,uint8_t ** ptr)6302 void reservedmarshal_VkDependencyInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6303                                       const VkDependencyInfo* forMarshaling, uint8_t** ptr) {
6304     (void)vkStream;
6305     (void)rootType;
6306     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6307     *ptr += sizeof(VkStructureType);
6308     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6309         rootType = forMarshaling->sType;
6310     }
6311     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6312     memcpy(*ptr, (VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
6313     *ptr += sizeof(VkDependencyFlags);
6314     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryBarrierCount, sizeof(uint32_t));
6315     *ptr += sizeof(uint32_t);
6316     for (uint32_t i = 0; i < (uint32_t)forMarshaling->memoryBarrierCount; ++i) {
6317         reservedmarshal_VkMemoryBarrier2(
6318             vkStream, rootType, (const VkMemoryBarrier2*)(forMarshaling->pMemoryBarriers + i), ptr);
6319     }
6320     memcpy(*ptr, (uint32_t*)&forMarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
6321     *ptr += sizeof(uint32_t);
6322     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferMemoryBarrierCount; ++i) {
6323         reservedmarshal_VkBufferMemoryBarrier2(
6324             vkStream, rootType,
6325             (const VkBufferMemoryBarrier2*)(forMarshaling->pBufferMemoryBarriers + i), ptr);
6326     }
6327     memcpy(*ptr, (uint32_t*)&forMarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
6328     *ptr += sizeof(uint32_t);
6329     for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageMemoryBarrierCount; ++i) {
6330         reservedmarshal_VkImageMemoryBarrier2(
6331             vkStream, rootType,
6332             (const VkImageMemoryBarrier2*)(forMarshaling->pImageMemoryBarriers + i), ptr);
6333     }
6334 }
6335 
reservedmarshal_VkSemaphoreSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreSubmitInfo * forMarshaling,uint8_t ** ptr)6336 void reservedmarshal_VkSemaphoreSubmitInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6337                                            const VkSemaphoreSubmitInfo* forMarshaling,
6338                                            uint8_t** ptr) {
6339     (void)vkStream;
6340     (void)rootType;
6341     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6342     *ptr += sizeof(VkStructureType);
6343     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6344         rootType = forMarshaling->sType;
6345     }
6346     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6347     uint64_t cgen_var_0;
6348     *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
6349     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6350     *ptr += 1 * 8;
6351     memcpy(*ptr, (uint64_t*)&forMarshaling->value, sizeof(uint64_t));
6352     *ptr += sizeof(uint64_t);
6353     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->stageMask, sizeof(VkPipelineStageFlags2));
6354     *ptr += sizeof(VkPipelineStageFlags2);
6355     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceIndex, sizeof(uint32_t));
6356     *ptr += sizeof(uint32_t);
6357 }
6358 
reservedmarshal_VkCommandBufferSubmitInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferSubmitInfo * forMarshaling,uint8_t ** ptr)6359 void reservedmarshal_VkCommandBufferSubmitInfo(VulkanStreamGuest* vkStream,
6360                                                VkStructureType rootType,
6361                                                const VkCommandBufferSubmitInfo* forMarshaling,
6362                                                uint8_t** ptr) {
6363     (void)vkStream;
6364     (void)rootType;
6365     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6366     *ptr += sizeof(VkStructureType);
6367     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6368         rootType = forMarshaling->sType;
6369     }
6370     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6371     uint64_t cgen_var_0;
6372     *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&forMarshaling->commandBuffer));
6373     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6374     *ptr += 1 * 8;
6375     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
6376     *ptr += sizeof(uint32_t);
6377 }
6378 
reservedmarshal_VkSubmitInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubmitInfo2 * forMarshaling,uint8_t ** ptr)6379 void reservedmarshal_VkSubmitInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6380                                    const VkSubmitInfo2* forMarshaling, uint8_t** ptr) {
6381     (void)vkStream;
6382     (void)rootType;
6383     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6384     *ptr += sizeof(VkStructureType);
6385     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6386         rootType = forMarshaling->sType;
6387     }
6388     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6389     memcpy(*ptr, (VkSubmitFlags*)&forMarshaling->flags, sizeof(VkSubmitFlags));
6390     *ptr += sizeof(VkSubmitFlags);
6391     memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
6392     *ptr += sizeof(uint32_t);
6393     for (uint32_t i = 0; i < (uint32_t)forMarshaling->waitSemaphoreInfoCount; ++i) {
6394         reservedmarshal_VkSemaphoreSubmitInfo(
6395             vkStream, rootType,
6396             (const VkSemaphoreSubmitInfo*)(forMarshaling->pWaitSemaphoreInfos + i), ptr);
6397     }
6398     memcpy(*ptr, (uint32_t*)&forMarshaling->commandBufferInfoCount, sizeof(uint32_t));
6399     *ptr += sizeof(uint32_t);
6400     for (uint32_t i = 0; i < (uint32_t)forMarshaling->commandBufferInfoCount; ++i) {
6401         reservedmarshal_VkCommandBufferSubmitInfo(
6402             vkStream, rootType,
6403             (const VkCommandBufferSubmitInfo*)(forMarshaling->pCommandBufferInfos + i), ptr);
6404     }
6405     memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
6406     *ptr += sizeof(uint32_t);
6407     for (uint32_t i = 0; i < (uint32_t)forMarshaling->signalSemaphoreInfoCount; ++i) {
6408         reservedmarshal_VkSemaphoreSubmitInfo(
6409             vkStream, rootType,
6410             (const VkSemaphoreSubmitInfo*)(forMarshaling->pSignalSemaphoreInfos + i), ptr);
6411     }
6412 }
6413 
reservedmarshal_VkPhysicalDeviceSynchronization2Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSynchronization2Features * forMarshaling,uint8_t ** ptr)6414 void reservedmarshal_VkPhysicalDeviceSynchronization2Features(
6415     VulkanStreamGuest* vkStream, VkStructureType rootType,
6416     const VkPhysicalDeviceSynchronization2Features* forMarshaling, uint8_t** ptr) {
6417     (void)vkStream;
6418     (void)rootType;
6419     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6420     *ptr += sizeof(VkStructureType);
6421     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6422         rootType = forMarshaling->sType;
6423     }
6424     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6425     memcpy(*ptr, (VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
6426     *ptr += sizeof(VkBool32);
6427 }
6428 
reservedmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * forMarshaling,uint8_t ** ptr)6429 void reservedmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
6430     VulkanStreamGuest* vkStream, VkStructureType rootType,
6431     const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* forMarshaling, uint8_t** ptr) {
6432     (void)vkStream;
6433     (void)rootType;
6434     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6435     *ptr += sizeof(VkStructureType);
6436     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6437         rootType = forMarshaling->sType;
6438     }
6439     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6440     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory, sizeof(VkBool32));
6441     *ptr += sizeof(VkBool32);
6442 }
6443 
reservedmarshal_VkPhysicalDeviceImageRobustnessFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageRobustnessFeatures * forMarshaling,uint8_t ** ptr)6444 void reservedmarshal_VkPhysicalDeviceImageRobustnessFeatures(
6445     VulkanStreamGuest* vkStream, VkStructureType rootType,
6446     const VkPhysicalDeviceImageRobustnessFeatures* forMarshaling, uint8_t** ptr) {
6447     (void)vkStream;
6448     (void)rootType;
6449     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6450     *ptr += sizeof(VkStructureType);
6451     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6452         rootType = forMarshaling->sType;
6453     }
6454     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6455     memcpy(*ptr, (VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
6456     *ptr += sizeof(VkBool32);
6457 }
6458 
reservedmarshal_VkBufferCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferCopy2 * forMarshaling,uint8_t ** ptr)6459 void reservedmarshal_VkBufferCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6460                                    const VkBufferCopy2* forMarshaling, uint8_t** ptr) {
6461     (void)vkStream;
6462     (void)rootType;
6463     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6464     *ptr += sizeof(VkStructureType);
6465     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6466         rootType = forMarshaling->sType;
6467     }
6468     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6469     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
6470     *ptr += sizeof(VkDeviceSize);
6471     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
6472     *ptr += sizeof(VkDeviceSize);
6473     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
6474     *ptr += sizeof(VkDeviceSize);
6475 }
6476 
reservedmarshal_VkCopyBufferInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyBufferInfo2 * forMarshaling,uint8_t ** ptr)6477 void reservedmarshal_VkCopyBufferInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6478                                        const VkCopyBufferInfo2* forMarshaling, uint8_t** ptr) {
6479     (void)vkStream;
6480     (void)rootType;
6481     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6482     *ptr += sizeof(VkStructureType);
6483     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6484         rootType = forMarshaling->sType;
6485     }
6486     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6487     uint64_t cgen_var_0;
6488     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->srcBuffer));
6489     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6490     *ptr += 1 * 8;
6491     uint64_t cgen_var_1;
6492     *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->dstBuffer));
6493     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
6494     *ptr += 1 * 8;
6495     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
6496     *ptr += sizeof(uint32_t);
6497     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
6498         reservedmarshal_VkBufferCopy2(vkStream, rootType,
6499                                       (const VkBufferCopy2*)(forMarshaling->pRegions + i), ptr);
6500     }
6501 }
6502 
reservedmarshal_VkImageCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCopy2 * forMarshaling,uint8_t ** ptr)6503 void reservedmarshal_VkImageCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6504                                   const VkImageCopy2* forMarshaling, uint8_t** ptr) {
6505     (void)vkStream;
6506     (void)rootType;
6507     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6508     *ptr += sizeof(VkStructureType);
6509     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6510         rootType = forMarshaling->sType;
6511     }
6512     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6513     reservedmarshal_VkImageSubresourceLayers(
6514         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
6515     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
6516     reservedmarshal_VkImageSubresourceLayers(
6517         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
6518     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
6519     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent), ptr);
6520 }
6521 
reservedmarshal_VkCopyImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageInfo2 * forMarshaling,uint8_t ** ptr)6522 void reservedmarshal_VkCopyImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6523                                       const VkCopyImageInfo2* forMarshaling, uint8_t** ptr) {
6524     (void)vkStream;
6525     (void)rootType;
6526     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6527     *ptr += sizeof(VkStructureType);
6528     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6529         rootType = forMarshaling->sType;
6530     }
6531     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6532     uint64_t cgen_var_0;
6533     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
6534     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6535     *ptr += 1 * 8;
6536     memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
6537     *ptr += sizeof(VkImageLayout);
6538     uint64_t cgen_var_1;
6539     *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
6540     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
6541     *ptr += 1 * 8;
6542     memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
6543     *ptr += sizeof(VkImageLayout);
6544     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
6545     *ptr += sizeof(uint32_t);
6546     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
6547         reservedmarshal_VkImageCopy2(vkStream, rootType,
6548                                      (const VkImageCopy2*)(forMarshaling->pRegions + i), ptr);
6549     }
6550 }
6551 
reservedmarshal_VkBufferImageCopy2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferImageCopy2 * forMarshaling,uint8_t ** ptr)6552 void reservedmarshal_VkBufferImageCopy2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6553                                         const VkBufferImageCopy2* forMarshaling, uint8_t** ptr) {
6554     (void)vkStream;
6555     (void)rootType;
6556     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6557     *ptr += sizeof(VkStructureType);
6558     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6559         rootType = forMarshaling->sType;
6560     }
6561     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6562     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
6563     *ptr += sizeof(VkDeviceSize);
6564     memcpy(*ptr, (uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
6565     *ptr += sizeof(uint32_t);
6566     memcpy(*ptr, (uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
6567     *ptr += sizeof(uint32_t);
6568     reservedmarshal_VkImageSubresourceLayers(
6569         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource), ptr);
6570     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset), ptr);
6571     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent), ptr);
6572 }
6573 
reservedmarshal_VkCopyBufferToImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyBufferToImageInfo2 * forMarshaling,uint8_t ** ptr)6574 void reservedmarshal_VkCopyBufferToImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6575                                               const VkCopyBufferToImageInfo2* forMarshaling,
6576                                               uint8_t** ptr) {
6577     (void)vkStream;
6578     (void)rootType;
6579     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6580     *ptr += sizeof(VkStructureType);
6581     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6582         rootType = forMarshaling->sType;
6583     }
6584     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6585     uint64_t cgen_var_0;
6586     *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->srcBuffer));
6587     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6588     *ptr += 1 * 8;
6589     uint64_t cgen_var_1;
6590     *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
6591     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
6592     *ptr += 1 * 8;
6593     memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
6594     *ptr += sizeof(VkImageLayout);
6595     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
6596     *ptr += sizeof(uint32_t);
6597     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
6598         reservedmarshal_VkBufferImageCopy2(
6599             vkStream, rootType, (const VkBufferImageCopy2*)(forMarshaling->pRegions + i), ptr);
6600     }
6601 }
6602 
reservedmarshal_VkCopyImageToBufferInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToBufferInfo2 * forMarshaling,uint8_t ** ptr)6603 void reservedmarshal_VkCopyImageToBufferInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6604                                               const VkCopyImageToBufferInfo2* forMarshaling,
6605                                               uint8_t** ptr) {
6606     (void)vkStream;
6607     (void)rootType;
6608     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6609     *ptr += sizeof(VkStructureType);
6610     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6611         rootType = forMarshaling->sType;
6612     }
6613     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6614     uint64_t cgen_var_0;
6615     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
6616     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6617     *ptr += 1 * 8;
6618     memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
6619     *ptr += sizeof(VkImageLayout);
6620     uint64_t cgen_var_1;
6621     *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->dstBuffer));
6622     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
6623     *ptr += 1 * 8;
6624     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
6625     *ptr += sizeof(uint32_t);
6626     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
6627         reservedmarshal_VkBufferImageCopy2(
6628             vkStream, rootType, (const VkBufferImageCopy2*)(forMarshaling->pRegions + i), ptr);
6629     }
6630 }
6631 
reservedmarshal_VkImageBlit2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageBlit2 * forMarshaling,uint8_t ** ptr)6632 void reservedmarshal_VkImageBlit2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6633                                   const VkImageBlit2* forMarshaling, uint8_t** ptr) {
6634     (void)vkStream;
6635     (void)rootType;
6636     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6637     *ptr += sizeof(VkStructureType);
6638     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6639         rootType = forMarshaling->sType;
6640     }
6641     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6642     reservedmarshal_VkImageSubresourceLayers(
6643         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
6644     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
6645         reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->srcOffsets + i),
6646                                    ptr);
6647     }
6648     reservedmarshal_VkImageSubresourceLayers(
6649         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
6650     for (uint32_t i = 0; i < (uint32_t)2; ++i) {
6651         reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(forMarshaling->dstOffsets + i),
6652                                    ptr);
6653     }
6654 }
6655 
reservedmarshal_VkBlitImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBlitImageInfo2 * forMarshaling,uint8_t ** ptr)6656 void reservedmarshal_VkBlitImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6657                                       const VkBlitImageInfo2* forMarshaling, uint8_t** ptr) {
6658     (void)vkStream;
6659     (void)rootType;
6660     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6661     *ptr += sizeof(VkStructureType);
6662     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6663         rootType = forMarshaling->sType;
6664     }
6665     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6666     uint64_t cgen_var_0;
6667     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
6668     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6669     *ptr += 1 * 8;
6670     memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
6671     *ptr += sizeof(VkImageLayout);
6672     uint64_t cgen_var_1;
6673     *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
6674     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
6675     *ptr += 1 * 8;
6676     memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
6677     *ptr += sizeof(VkImageLayout);
6678     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
6679     *ptr += sizeof(uint32_t);
6680     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
6681         reservedmarshal_VkImageBlit2(vkStream, rootType,
6682                                      (const VkImageBlit2*)(forMarshaling->pRegions + i), ptr);
6683     }
6684     memcpy(*ptr, (VkFilter*)&forMarshaling->filter, sizeof(VkFilter));
6685     *ptr += sizeof(VkFilter);
6686 }
6687 
reservedmarshal_VkImageResolve2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageResolve2 * forMarshaling,uint8_t ** ptr)6688 void reservedmarshal_VkImageResolve2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6689                                      const VkImageResolve2* forMarshaling, uint8_t** ptr) {
6690     (void)vkStream;
6691     (void)rootType;
6692     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6693     *ptr += sizeof(VkStructureType);
6694     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6695         rootType = forMarshaling->sType;
6696     }
6697     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6698     reservedmarshal_VkImageSubresourceLayers(
6699         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
6700     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
6701     reservedmarshal_VkImageSubresourceLayers(
6702         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
6703     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
6704     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->extent), ptr);
6705 }
6706 
reservedmarshal_VkResolveImageInfo2(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkResolveImageInfo2 * forMarshaling,uint8_t ** ptr)6707 void reservedmarshal_VkResolveImageInfo2(VulkanStreamGuest* vkStream, VkStructureType rootType,
6708                                          const VkResolveImageInfo2* forMarshaling, uint8_t** ptr) {
6709     (void)vkStream;
6710     (void)rootType;
6711     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6712     *ptr += sizeof(VkStructureType);
6713     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6714         rootType = forMarshaling->sType;
6715     }
6716     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6717     uint64_t cgen_var_0;
6718     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
6719     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6720     *ptr += 1 * 8;
6721     memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
6722     *ptr += sizeof(VkImageLayout);
6723     uint64_t cgen_var_1;
6724     *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
6725     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
6726     *ptr += 1 * 8;
6727     memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
6728     *ptr += sizeof(VkImageLayout);
6729     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
6730     *ptr += sizeof(uint32_t);
6731     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
6732         reservedmarshal_VkImageResolve2(vkStream, rootType,
6733                                         (const VkImageResolve2*)(forMarshaling->pRegions + i), ptr);
6734     }
6735 }
6736 
reservedmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlFeatures * forMarshaling,uint8_t ** ptr)6737 void reservedmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
6738     VulkanStreamGuest* vkStream, VkStructureType rootType,
6739     const VkPhysicalDeviceSubgroupSizeControlFeatures* forMarshaling, uint8_t** ptr) {
6740     (void)vkStream;
6741     (void)rootType;
6742     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6743     *ptr += sizeof(VkStructureType);
6744     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6745         rootType = forMarshaling->sType;
6746     }
6747     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6748     memcpy(*ptr, (VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
6749     *ptr += sizeof(VkBool32);
6750     memcpy(*ptr, (VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
6751     *ptr += sizeof(VkBool32);
6752 }
6753 
reservedmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceSubgroupSizeControlProperties * forMarshaling,uint8_t ** ptr)6754 void reservedmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
6755     VulkanStreamGuest* vkStream, VkStructureType rootType,
6756     const VkPhysicalDeviceSubgroupSizeControlProperties* forMarshaling, uint8_t** ptr) {
6757     (void)vkStream;
6758     (void)rootType;
6759     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6760     *ptr += sizeof(VkStructureType);
6761     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6762         rootType = forMarshaling->sType;
6763     }
6764     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6765     memcpy(*ptr, (uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
6766     *ptr += sizeof(uint32_t);
6767     memcpy(*ptr, (uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
6768     *ptr += sizeof(uint32_t);
6769     memcpy(*ptr, (uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
6770     *ptr += sizeof(uint32_t);
6771     memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages,
6772            sizeof(VkShaderStageFlags));
6773     *ptr += sizeof(VkShaderStageFlags);
6774 }
6775 
reservedmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * forMarshaling,uint8_t ** ptr)6776 void reservedmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
6777     VulkanStreamGuest* vkStream, VkStructureType rootType,
6778     const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* forMarshaling, uint8_t** ptr) {
6779     (void)vkStream;
6780     (void)rootType;
6781     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6782     *ptr += sizeof(VkStructureType);
6783     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6784         rootType = forMarshaling->sType;
6785     }
6786     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6787     memcpy(*ptr, (uint32_t*)&forMarshaling->requiredSubgroupSize, sizeof(uint32_t));
6788     *ptr += sizeof(uint32_t);
6789 }
6790 
reservedmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockFeatures * forMarshaling,uint8_t ** ptr)6791 void reservedmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
6792     VulkanStreamGuest* vkStream, VkStructureType rootType,
6793     const VkPhysicalDeviceInlineUniformBlockFeatures* forMarshaling, uint8_t** ptr) {
6794     (void)vkStream;
6795     (void)rootType;
6796     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6797     *ptr += sizeof(VkStructureType);
6798     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6799         rootType = forMarshaling->sType;
6800     }
6801     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6802     memcpy(*ptr, (VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
6803     *ptr += sizeof(VkBool32);
6804     memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind,
6805            sizeof(VkBool32));
6806     *ptr += sizeof(VkBool32);
6807 }
6808 
reservedmarshal_VkPhysicalDeviceInlineUniformBlockProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceInlineUniformBlockProperties * forMarshaling,uint8_t ** ptr)6809 void reservedmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
6810     VulkanStreamGuest* vkStream, VkStructureType rootType,
6811     const VkPhysicalDeviceInlineUniformBlockProperties* forMarshaling, uint8_t** ptr) {
6812     (void)vkStream;
6813     (void)rootType;
6814     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6815     *ptr += sizeof(VkStructureType);
6816     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6817         rootType = forMarshaling->sType;
6818     }
6819     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6820     memcpy(*ptr, (uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
6821     *ptr += sizeof(uint32_t);
6822     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks,
6823            sizeof(uint32_t));
6824     *ptr += sizeof(uint32_t);
6825     memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
6826            sizeof(uint32_t));
6827     *ptr += sizeof(uint32_t);
6828     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks, sizeof(uint32_t));
6829     *ptr += sizeof(uint32_t);
6830     memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
6831            sizeof(uint32_t));
6832     *ptr += sizeof(uint32_t);
6833 }
6834 
reservedmarshal_VkWriteDescriptorSetInlineUniformBlock(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkWriteDescriptorSetInlineUniformBlock * forMarshaling,uint8_t ** ptr)6835 void reservedmarshal_VkWriteDescriptorSetInlineUniformBlock(
6836     VulkanStreamGuest* vkStream, VkStructureType rootType,
6837     const VkWriteDescriptorSetInlineUniformBlock* forMarshaling, uint8_t** ptr) {
6838     (void)vkStream;
6839     (void)rootType;
6840     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6841     *ptr += sizeof(VkStructureType);
6842     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6843         rootType = forMarshaling->sType;
6844     }
6845     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6846     memcpy(*ptr, (uint32_t*)&forMarshaling->dataSize, sizeof(uint32_t));
6847     *ptr += sizeof(uint32_t);
6848     memcpy(*ptr, (const void*)forMarshaling->pData,
6849            forMarshaling->dataSize * sizeof(const uint8_t));
6850     *ptr += forMarshaling->dataSize * sizeof(const uint8_t);
6851 }
6852 
reservedmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDescriptorPoolInlineUniformBlockCreateInfo * forMarshaling,uint8_t ** ptr)6853 void reservedmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
6854     VulkanStreamGuest* vkStream, VkStructureType rootType,
6855     const VkDescriptorPoolInlineUniformBlockCreateInfo* forMarshaling, uint8_t** ptr) {
6856     (void)vkStream;
6857     (void)rootType;
6858     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6859     *ptr += sizeof(VkStructureType);
6860     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6861         rootType = forMarshaling->sType;
6862     }
6863     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6864     memcpy(*ptr, (uint32_t*)&forMarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
6865     *ptr += sizeof(uint32_t);
6866 }
6867 
reservedmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTextureCompressionASTCHDRFeatures * forMarshaling,uint8_t ** ptr)6868 void reservedmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
6869     VulkanStreamGuest* vkStream, VkStructureType rootType,
6870     const VkPhysicalDeviceTextureCompressionASTCHDRFeatures* forMarshaling, uint8_t** ptr) {
6871     (void)vkStream;
6872     (void)rootType;
6873     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6874     *ptr += sizeof(VkStructureType);
6875     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6876         rootType = forMarshaling->sType;
6877     }
6878     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6879     memcpy(*ptr, (VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
6880     *ptr += sizeof(VkBool32);
6881 }
6882 
reservedmarshal_VkRenderingAttachmentInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingAttachmentInfo * forMarshaling,uint8_t ** ptr)6883 void reservedmarshal_VkRenderingAttachmentInfo(VulkanStreamGuest* vkStream,
6884                                                VkStructureType rootType,
6885                                                const VkRenderingAttachmentInfo* forMarshaling,
6886                                                uint8_t** ptr) {
6887     (void)vkStream;
6888     (void)rootType;
6889     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6890     *ptr += sizeof(VkStructureType);
6891     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6892         rootType = forMarshaling->sType;
6893     }
6894     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6895     uint64_t cgen_var_0;
6896     *&cgen_var_0 = get_host_u64_VkImageView((*&forMarshaling->imageView));
6897     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
6898     *ptr += 1 * 8;
6899     memcpy(*ptr, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
6900     *ptr += sizeof(VkImageLayout);
6901     memcpy(*ptr, (VkResolveModeFlagBits*)&forMarshaling->resolveMode,
6902            sizeof(VkResolveModeFlagBits));
6903     *ptr += sizeof(VkResolveModeFlagBits);
6904     uint64_t cgen_var_1;
6905     *&cgen_var_1 = get_host_u64_VkImageView((*&forMarshaling->resolveImageView));
6906     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
6907     *ptr += 1 * 8;
6908     memcpy(*ptr, (VkImageLayout*)&forMarshaling->resolveImageLayout, sizeof(VkImageLayout));
6909     *ptr += sizeof(VkImageLayout);
6910     memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
6911     *ptr += sizeof(VkAttachmentLoadOp);
6912     memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
6913     *ptr += sizeof(VkAttachmentStoreOp);
6914     reservedmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue),
6915                                  ptr);
6916 }
6917 
reservedmarshal_VkRenderingInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingInfo * forMarshaling,uint8_t ** ptr)6918 void reservedmarshal_VkRenderingInfo(VulkanStreamGuest* vkStream, VkStructureType rootType,
6919                                      const VkRenderingInfo* forMarshaling, uint8_t** ptr) {
6920     (void)vkStream;
6921     (void)rootType;
6922     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6923     *ptr += sizeof(VkStructureType);
6924     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6925         rootType = forMarshaling->sType;
6926     }
6927     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6928     memcpy(*ptr, (VkRenderingFlags*)&forMarshaling->flags, sizeof(VkRenderingFlags));
6929     *ptr += sizeof(VkRenderingFlags);
6930     reservedmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea), ptr);
6931     memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
6932     *ptr += sizeof(uint32_t);
6933     memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
6934     *ptr += sizeof(uint32_t);
6935     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
6936     *ptr += sizeof(uint32_t);
6937     for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i) {
6938         reservedmarshal_VkRenderingAttachmentInfo(
6939             vkStream, rootType,
6940             (const VkRenderingAttachmentInfo*)(forMarshaling->pColorAttachments + i), ptr);
6941     }
6942     // WARNING PTR CHECK
6943     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthAttachment;
6944     memcpy((*ptr), &cgen_var_0, 8);
6945     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
6946     *ptr += 8;
6947     if (forMarshaling->pDepthAttachment) {
6948         reservedmarshal_VkRenderingAttachmentInfo(
6949             vkStream, rootType, (const VkRenderingAttachmentInfo*)(forMarshaling->pDepthAttachment),
6950             ptr);
6951     }
6952     // WARNING PTR CHECK
6953     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pStencilAttachment;
6954     memcpy((*ptr), &cgen_var_1, 8);
6955     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
6956     *ptr += 8;
6957     if (forMarshaling->pStencilAttachment) {
6958         reservedmarshal_VkRenderingAttachmentInfo(
6959             vkStream, rootType,
6960             (const VkRenderingAttachmentInfo*)(forMarshaling->pStencilAttachment), ptr);
6961     }
6962 }
6963 
reservedmarshal_VkPipelineRenderingCreateInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRenderingCreateInfo * forMarshaling,uint8_t ** ptr)6964 void reservedmarshal_VkPipelineRenderingCreateInfo(
6965     VulkanStreamGuest* vkStream, VkStructureType rootType,
6966     const VkPipelineRenderingCreateInfo* forMarshaling, uint8_t** ptr) {
6967     (void)vkStream;
6968     (void)rootType;
6969     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6970     *ptr += sizeof(VkStructureType);
6971     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6972         rootType = forMarshaling->sType;
6973     }
6974     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
6975     memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
6976     *ptr += sizeof(uint32_t);
6977     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
6978     *ptr += sizeof(uint32_t);
6979     // WARNING PTR CHECK
6980     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentFormats;
6981     memcpy((*ptr), &cgen_var_0, 8);
6982     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
6983     *ptr += 8;
6984     if (forMarshaling->pColorAttachmentFormats) {
6985         memcpy(*ptr, (const VkFormat*)forMarshaling->pColorAttachmentFormats,
6986                forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
6987         *ptr += forMarshaling->colorAttachmentCount * sizeof(const VkFormat);
6988     }
6989     memcpy(*ptr, (VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
6990     *ptr += sizeof(VkFormat);
6991     memcpy(*ptr, (VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
6992     *ptr += sizeof(VkFormat);
6993 }
6994 
reservedmarshal_VkPhysicalDeviceDynamicRenderingFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDynamicRenderingFeatures * forMarshaling,uint8_t ** ptr)6995 void reservedmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
6996     VulkanStreamGuest* vkStream, VkStructureType rootType,
6997     const VkPhysicalDeviceDynamicRenderingFeatures* forMarshaling, uint8_t** ptr) {
6998     (void)vkStream;
6999     (void)rootType;
7000     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7001     *ptr += sizeof(VkStructureType);
7002     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7003         rootType = forMarshaling->sType;
7004     }
7005     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7006     memcpy(*ptr, (VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
7007     *ptr += sizeof(VkBool32);
7008 }
7009 
reservedmarshal_VkCommandBufferInheritanceRenderingInfo(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCommandBufferInheritanceRenderingInfo * forMarshaling,uint8_t ** ptr)7010 void reservedmarshal_VkCommandBufferInheritanceRenderingInfo(
7011     VulkanStreamGuest* vkStream, VkStructureType rootType,
7012     const VkCommandBufferInheritanceRenderingInfo* forMarshaling, uint8_t** ptr) {
7013     (void)vkStream;
7014     (void)rootType;
7015     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7016     *ptr += sizeof(VkStructureType);
7017     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7018         rootType = forMarshaling->sType;
7019     }
7020     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7021     memcpy(*ptr, (VkRenderingFlags*)&forMarshaling->flags, sizeof(VkRenderingFlags));
7022     *ptr += sizeof(VkRenderingFlags);
7023     memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
7024     *ptr += sizeof(uint32_t);
7025     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
7026     *ptr += sizeof(uint32_t);
7027     memcpy(*ptr, (const VkFormat*)forMarshaling->pColorAttachmentFormats,
7028            forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
7029     *ptr += forMarshaling->colorAttachmentCount * sizeof(const VkFormat);
7030     memcpy(*ptr, (VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
7031     *ptr += sizeof(VkFormat);
7032     memcpy(*ptr, (VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
7033     *ptr += sizeof(VkFormat);
7034     memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples,
7035            sizeof(VkSampleCountFlagBits));
7036     *ptr += sizeof(VkSampleCountFlagBits);
7037 }
7038 
reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductFeatures * forMarshaling,uint8_t ** ptr)7039 void reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
7040     VulkanStreamGuest* vkStream, VkStructureType rootType,
7041     const VkPhysicalDeviceShaderIntegerDotProductFeatures* forMarshaling, uint8_t** ptr) {
7042     (void)vkStream;
7043     (void)rootType;
7044     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7045     *ptr += sizeof(VkStructureType);
7046     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7047         rootType = forMarshaling->sType;
7048     }
7049     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7050     memcpy(*ptr, (VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
7051     *ptr += sizeof(VkBool32);
7052 }
7053 
reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceShaderIntegerDotProductProperties * forMarshaling,uint8_t ** ptr)7054 void reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
7055     VulkanStreamGuest* vkStream, VkStructureType rootType,
7056     const VkPhysicalDeviceShaderIntegerDotProductProperties* forMarshaling, uint8_t** ptr) {
7057     (void)vkStream;
7058     (void)rootType;
7059     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7060     *ptr += sizeof(VkStructureType);
7061     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7062         rootType = forMarshaling->sType;
7063     }
7064     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7065     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated,
7066            sizeof(VkBool32));
7067     *ptr += sizeof(VkBool32);
7068     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated,
7069            sizeof(VkBool32));
7070     *ptr += sizeof(VkBool32);
7071     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated,
7072            sizeof(VkBool32));
7073     *ptr += sizeof(VkBool32);
7074     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated,
7075            sizeof(VkBool32));
7076     *ptr += sizeof(VkBool32);
7077     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated,
7078            sizeof(VkBool32));
7079     *ptr += sizeof(VkBool32);
7080     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
7081            sizeof(VkBool32));
7082     *ptr += sizeof(VkBool32);
7083     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated,
7084            sizeof(VkBool32));
7085     *ptr += sizeof(VkBool32);
7086     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated,
7087            sizeof(VkBool32));
7088     *ptr += sizeof(VkBool32);
7089     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated,
7090            sizeof(VkBool32));
7091     *ptr += sizeof(VkBool32);
7092     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated,
7093            sizeof(VkBool32));
7094     *ptr += sizeof(VkBool32);
7095     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated,
7096            sizeof(VkBool32));
7097     *ptr += sizeof(VkBool32);
7098     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated,
7099            sizeof(VkBool32));
7100     *ptr += sizeof(VkBool32);
7101     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated,
7102            sizeof(VkBool32));
7103     *ptr += sizeof(VkBool32);
7104     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated,
7105            sizeof(VkBool32));
7106     *ptr += sizeof(VkBool32);
7107     memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated,
7108            sizeof(VkBool32));
7109     *ptr += sizeof(VkBool32);
7110     memcpy(
7111         *ptr,
7112         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
7113         sizeof(VkBool32));
7114     *ptr += sizeof(VkBool32);
7115     memcpy(*ptr,
7116            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
7117            sizeof(VkBool32));
7118     *ptr += sizeof(VkBool32);
7119     memcpy(*ptr,
7120            (VkBool32*)&forMarshaling
7121                ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
7122            sizeof(VkBool32));
7123     *ptr += sizeof(VkBool32);
7124     memcpy(*ptr,
7125            (VkBool32*)&forMarshaling
7126                ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
7127            sizeof(VkBool32));
7128     *ptr += sizeof(VkBool32);
7129     memcpy(*ptr,
7130            (VkBool32*)&forMarshaling
7131                ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
7132            sizeof(VkBool32));
7133     *ptr += sizeof(VkBool32);
7134     memcpy(*ptr,
7135            (VkBool32*)&forMarshaling
7136                ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
7137            sizeof(VkBool32));
7138     *ptr += sizeof(VkBool32);
7139     memcpy(
7140         *ptr,
7141         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
7142         sizeof(VkBool32));
7143     *ptr += sizeof(VkBool32);
7144     memcpy(*ptr,
7145            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
7146            sizeof(VkBool32));
7147     *ptr += sizeof(VkBool32);
7148     memcpy(*ptr,
7149            (VkBool32*)&forMarshaling
7150                ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
7151            sizeof(VkBool32));
7152     *ptr += sizeof(VkBool32);
7153     memcpy(
7154         *ptr,
7155         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
7156         sizeof(VkBool32));
7157     *ptr += sizeof(VkBool32);
7158     memcpy(*ptr,
7159            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
7160            sizeof(VkBool32));
7161     *ptr += sizeof(VkBool32);
7162     memcpy(*ptr,
7163            (VkBool32*)&forMarshaling
7164                ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
7165            sizeof(VkBool32));
7166     *ptr += sizeof(VkBool32);
7167     memcpy(
7168         *ptr,
7169         (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
7170         sizeof(VkBool32));
7171     *ptr += sizeof(VkBool32);
7172     memcpy(*ptr,
7173            (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
7174            sizeof(VkBool32));
7175     *ptr += sizeof(VkBool32);
7176     memcpy(*ptr,
7177            (VkBool32*)&forMarshaling
7178                ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
7179            sizeof(VkBool32));
7180     *ptr += sizeof(VkBool32);
7181 }
7182 
reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentProperties * forMarshaling,uint8_t ** ptr)7183 void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
7184     VulkanStreamGuest* vkStream, VkStructureType rootType,
7185     const VkPhysicalDeviceTexelBufferAlignmentProperties* forMarshaling, uint8_t** ptr) {
7186     (void)vkStream;
7187     (void)rootType;
7188     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7189     *ptr += sizeof(VkStructureType);
7190     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7191         rootType = forMarshaling->sType;
7192     }
7193     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7194     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes,
7195            sizeof(VkDeviceSize));
7196     *ptr += sizeof(VkDeviceSize);
7197     memcpy(*ptr, (VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment,
7198            sizeof(VkBool32));
7199     *ptr += sizeof(VkBool32);
7200     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes,
7201            sizeof(VkDeviceSize));
7202     *ptr += sizeof(VkDeviceSize);
7203     memcpy(*ptr, (VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment,
7204            sizeof(VkBool32));
7205     *ptr += sizeof(VkBool32);
7206 }
7207 
reservedmarshal_VkFormatProperties3(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFormatProperties3 * forMarshaling,uint8_t ** ptr)7208 void reservedmarshal_VkFormatProperties3(VulkanStreamGuest* vkStream, VkStructureType rootType,
7209                                          const VkFormatProperties3* forMarshaling, uint8_t** ptr) {
7210     (void)vkStream;
7211     (void)rootType;
7212     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7213     *ptr += sizeof(VkStructureType);
7214     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7215         rootType = forMarshaling->sType;
7216     }
7217     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7218     memcpy(*ptr, (VkFormatFeatureFlags2*)&forMarshaling->linearTilingFeatures,
7219            sizeof(VkFormatFeatureFlags2));
7220     *ptr += sizeof(VkFormatFeatureFlags2);
7221     memcpy(*ptr, (VkFormatFeatureFlags2*)&forMarshaling->optimalTilingFeatures,
7222            sizeof(VkFormatFeatureFlags2));
7223     *ptr += sizeof(VkFormatFeatureFlags2);
7224     memcpy(*ptr, (VkFormatFeatureFlags2*)&forMarshaling->bufferFeatures,
7225            sizeof(VkFormatFeatureFlags2));
7226     *ptr += sizeof(VkFormatFeatureFlags2);
7227 }
7228 
reservedmarshal_VkPhysicalDeviceMaintenance4Features(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Features * forMarshaling,uint8_t ** ptr)7229 void reservedmarshal_VkPhysicalDeviceMaintenance4Features(
7230     VulkanStreamGuest* vkStream, VkStructureType rootType,
7231     const VkPhysicalDeviceMaintenance4Features* forMarshaling, uint8_t** ptr) {
7232     (void)vkStream;
7233     (void)rootType;
7234     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7235     *ptr += sizeof(VkStructureType);
7236     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7237         rootType = forMarshaling->sType;
7238     }
7239     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7240     memcpy(*ptr, (VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
7241     *ptr += sizeof(VkBool32);
7242 }
7243 
reservedmarshal_VkPhysicalDeviceMaintenance4Properties(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance4Properties * forMarshaling,uint8_t ** ptr)7244 void reservedmarshal_VkPhysicalDeviceMaintenance4Properties(
7245     VulkanStreamGuest* vkStream, VkStructureType rootType,
7246     const VkPhysicalDeviceMaintenance4Properties* forMarshaling, uint8_t** ptr) {
7247     (void)vkStream;
7248     (void)rootType;
7249     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7250     *ptr += sizeof(VkStructureType);
7251     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7252         rootType = forMarshaling->sType;
7253     }
7254     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7255     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
7256     *ptr += sizeof(VkDeviceSize);
7257 }
7258 
reservedmarshal_VkDeviceBufferMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceBufferMemoryRequirements * forMarshaling,uint8_t ** ptr)7259 void reservedmarshal_VkDeviceBufferMemoryRequirements(
7260     VulkanStreamGuest* vkStream, VkStructureType rootType,
7261     const VkDeviceBufferMemoryRequirements* forMarshaling, uint8_t** ptr) {
7262     (void)vkStream;
7263     (void)rootType;
7264     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7265     *ptr += sizeof(VkStructureType);
7266     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7267         rootType = forMarshaling->sType;
7268     }
7269     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7270     reservedmarshal_VkBufferCreateInfo(
7271         vkStream, rootType, (const VkBufferCreateInfo*)(forMarshaling->pCreateInfo), ptr);
7272 }
7273 
reservedmarshal_VkDeviceImageMemoryRequirements(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceImageMemoryRequirements * forMarshaling,uint8_t ** ptr)7274 void reservedmarshal_VkDeviceImageMemoryRequirements(
7275     VulkanStreamGuest* vkStream, VkStructureType rootType,
7276     const VkDeviceImageMemoryRequirements* forMarshaling, uint8_t** ptr) {
7277     (void)vkStream;
7278     (void)rootType;
7279     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7280     *ptr += sizeof(VkStructureType);
7281     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7282         rootType = forMarshaling->sType;
7283     }
7284     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7285     reservedmarshal_VkImageCreateInfo(vkStream, rootType,
7286                                       (const VkImageCreateInfo*)(forMarshaling->pCreateInfo), ptr);
7287     memcpy(*ptr, (VkImageAspectFlagBits*)&forMarshaling->planeAspect,
7288            sizeof(VkImageAspectFlagBits));
7289     *ptr += sizeof(VkImageAspectFlagBits);
7290 }
7291 
7292 #endif
7293 #ifdef VK_KHR_dynamic_rendering
reservedmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingFragmentShadingRateAttachmentInfoKHR * forMarshaling,uint8_t ** ptr)7294 void reservedmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
7295     VulkanStreamGuest* vkStream, VkStructureType rootType,
7296     const VkRenderingFragmentShadingRateAttachmentInfoKHR* forMarshaling, uint8_t** ptr) {
7297     (void)vkStream;
7298     (void)rootType;
7299     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7300     *ptr += sizeof(VkStructureType);
7301     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7302         rootType = forMarshaling->sType;
7303     }
7304     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7305     uint64_t cgen_var_0;
7306     *&cgen_var_0 = get_host_u64_VkImageView((*&forMarshaling->imageView));
7307     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7308     *ptr += 1 * 8;
7309     memcpy(*ptr, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
7310     *ptr += sizeof(VkImageLayout);
7311     reservedmarshal_VkExtent2D(vkStream, rootType,
7312                                (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize), ptr);
7313 }
7314 
reservedmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingFragmentDensityMapAttachmentInfoEXT * forMarshaling,uint8_t ** ptr)7315 void reservedmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
7316     VulkanStreamGuest* vkStream, VkStructureType rootType,
7317     const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling, uint8_t** ptr) {
7318     (void)vkStream;
7319     (void)rootType;
7320     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7321     *ptr += sizeof(VkStructureType);
7322     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7323         rootType = forMarshaling->sType;
7324     }
7325     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7326     uint64_t cgen_var_0;
7327     *&cgen_var_0 = get_host_u64_VkImageView((*&forMarshaling->imageView));
7328     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7329     *ptr += 1 * 8;
7330     memcpy(*ptr, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
7331     *ptr += sizeof(VkImageLayout);
7332 }
7333 
reservedmarshal_VkAttachmentSampleCountInfoAMD(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkAttachmentSampleCountInfoAMD * forMarshaling,uint8_t ** ptr)7334 void reservedmarshal_VkAttachmentSampleCountInfoAMD(
7335     VulkanStreamGuest* vkStream, VkStructureType rootType,
7336     const VkAttachmentSampleCountInfoAMD* forMarshaling, uint8_t** ptr) {
7337     (void)vkStream;
7338     (void)rootType;
7339     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7340     *ptr += sizeof(VkStructureType);
7341     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7342         rootType = forMarshaling->sType;
7343     }
7344     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7345     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
7346     *ptr += sizeof(uint32_t);
7347     // WARNING PTR CHECK
7348     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentSamples;
7349     memcpy((*ptr), &cgen_var_0, 8);
7350     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7351     *ptr += 8;
7352     if (forMarshaling->pColorAttachmentSamples) {
7353         memcpy(*ptr, (const VkSampleCountFlagBits*)forMarshaling->pColorAttachmentSamples,
7354                forMarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
7355         *ptr += forMarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits);
7356     }
7357     memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->depthStencilAttachmentSamples,
7358            sizeof(VkSampleCountFlagBits));
7359     *ptr += sizeof(VkSampleCountFlagBits);
7360 }
7361 
reservedmarshal_VkMultiviewPerViewAttributesInfoNVX(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMultiviewPerViewAttributesInfoNVX * forMarshaling,uint8_t ** ptr)7362 void reservedmarshal_VkMultiviewPerViewAttributesInfoNVX(
7363     VulkanStreamGuest* vkStream, VkStructureType rootType,
7364     const VkMultiviewPerViewAttributesInfoNVX* forMarshaling, uint8_t** ptr) {
7365     (void)vkStream;
7366     (void)rootType;
7367     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7368     *ptr += sizeof(VkStructureType);
7369     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7370         rootType = forMarshaling->sType;
7371     }
7372     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7373     memcpy(*ptr, (VkBool32*)&forMarshaling->perViewAttributes, sizeof(VkBool32));
7374     *ptr += sizeof(VkBool32);
7375     memcpy(*ptr, (VkBool32*)&forMarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
7376     *ptr += sizeof(VkBool32);
7377 }
7378 
7379 #endif
7380 #ifdef VK_KHR_external_semaphore_fd
reservedmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportSemaphoreFdInfoKHR * forMarshaling,uint8_t ** ptr)7381 void reservedmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest* vkStream,
7382                                                 VkStructureType rootType,
7383                                                 const VkImportSemaphoreFdInfoKHR* forMarshaling,
7384                                                 uint8_t** ptr) {
7385     (void)vkStream;
7386     (void)rootType;
7387     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7388     *ptr += sizeof(VkStructureType);
7389     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7390         rootType = forMarshaling->sType;
7391     }
7392     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7393     uint64_t cgen_var_0;
7394     *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
7395     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7396     *ptr += 1 * 8;
7397     memcpy(*ptr, (VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
7398     *ptr += sizeof(VkSemaphoreImportFlags);
7399     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
7400            sizeof(VkExternalSemaphoreHandleTypeFlagBits));
7401     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
7402     memcpy(*ptr, (int*)&forMarshaling->fd, sizeof(int));
7403     *ptr += sizeof(int);
7404 }
7405 
reservedmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSemaphoreGetFdInfoKHR * forMarshaling,uint8_t ** ptr)7406 void reservedmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7407                                              const VkSemaphoreGetFdInfoKHR* forMarshaling,
7408                                              uint8_t** ptr) {
7409     (void)vkStream;
7410     (void)rootType;
7411     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7412     *ptr += sizeof(VkStructureType);
7413     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7414         rootType = forMarshaling->sType;
7415     }
7416     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7417     uint64_t cgen_var_0;
7418     *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
7419     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7420     *ptr += 1 * 8;
7421     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType,
7422            sizeof(VkExternalSemaphoreHandleTypeFlagBits));
7423     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
7424 }
7425 
7426 #endif
7427 #ifdef VK_KHR_incremental_present
reservedmarshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRectLayerKHR * forMarshaling,uint8_t ** ptr)7428 void reservedmarshal_VkRectLayerKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7429                                     const VkRectLayerKHR* forMarshaling, uint8_t** ptr) {
7430     (void)vkStream;
7431     (void)rootType;
7432     reservedmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->offset), ptr);
7433     reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->extent), ptr);
7434     memcpy(*ptr, (uint32_t*)&forMarshaling->layer, sizeof(uint32_t));
7435     *ptr += sizeof(uint32_t);
7436 }
7437 
reservedmarshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPresentRegionKHR * forMarshaling,uint8_t ** ptr)7438 void reservedmarshal_VkPresentRegionKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7439                                         const VkPresentRegionKHR* forMarshaling, uint8_t** ptr) {
7440     (void)vkStream;
7441     (void)rootType;
7442     memcpy(*ptr, (uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
7443     *ptr += sizeof(uint32_t);
7444     // WARNING PTR CHECK
7445     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
7446     memcpy((*ptr), &cgen_var_0, 8);
7447     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7448     *ptr += 8;
7449     if (forMarshaling->pRectangles) {
7450         for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i) {
7451             reservedmarshal_VkRectLayerKHR(
7452                 vkStream, rootType, (const VkRectLayerKHR*)(forMarshaling->pRectangles + i), ptr);
7453         }
7454     }
7455 }
7456 
reservedmarshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPresentRegionsKHR * forMarshaling,uint8_t ** ptr)7457 void reservedmarshal_VkPresentRegionsKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7458                                          const VkPresentRegionsKHR* forMarshaling, uint8_t** ptr) {
7459     (void)vkStream;
7460     (void)rootType;
7461     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7462     *ptr += sizeof(VkStructureType);
7463     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7464         rootType = forMarshaling->sType;
7465     }
7466     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7467     memcpy(*ptr, (uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
7468     *ptr += sizeof(uint32_t);
7469     // WARNING PTR CHECK
7470     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
7471     memcpy((*ptr), &cgen_var_0, 8);
7472     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7473     *ptr += 8;
7474     if (forMarshaling->pRegions) {
7475         for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i) {
7476             reservedmarshal_VkPresentRegionKHR(
7477                 vkStream, rootType, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i), ptr);
7478         }
7479     }
7480 }
7481 
7482 #endif
7483 #ifdef VK_KHR_external_fence_fd
reservedmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportFenceFdInfoKHR * forMarshaling,uint8_t ** ptr)7484 void reservedmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7485                                             const VkImportFenceFdInfoKHR* forMarshaling,
7486                                             uint8_t** ptr) {
7487     (void)vkStream;
7488     (void)rootType;
7489     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7490     *ptr += sizeof(VkStructureType);
7491     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7492         rootType = forMarshaling->sType;
7493     }
7494     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7495     uint64_t cgen_var_0;
7496     *&cgen_var_0 = get_host_u64_VkFence((*&forMarshaling->fence));
7497     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7498     *ptr += 1 * 8;
7499     memcpy(*ptr, (VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
7500     *ptr += sizeof(VkFenceImportFlags);
7501     memcpy(*ptr, (VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
7502            sizeof(VkExternalFenceHandleTypeFlagBits));
7503     *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
7504     memcpy(*ptr, (int*)&forMarshaling->fd, sizeof(int));
7505     *ptr += sizeof(int);
7506 }
7507 
reservedmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkFenceGetFdInfoKHR * forMarshaling,uint8_t ** ptr)7508 void reservedmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7509                                          const VkFenceGetFdInfoKHR* forMarshaling, uint8_t** ptr) {
7510     (void)vkStream;
7511     (void)rootType;
7512     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7513     *ptr += sizeof(VkStructureType);
7514     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7515         rootType = forMarshaling->sType;
7516     }
7517     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7518     uint64_t cgen_var_0;
7519     *&cgen_var_0 = get_host_u64_VkFence((*&forMarshaling->fence));
7520     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7521     *ptr += 1 * 8;
7522     memcpy(*ptr, (VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType,
7523            sizeof(VkExternalFenceHandleTypeFlagBits));
7524     *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
7525 }
7526 
7527 #endif
7528 #ifdef VK_KHR_pipeline_executable_properties
reservedmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forMarshaling,uint8_t ** ptr)7529 void reservedmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
7530     VulkanStreamGuest* vkStream, VkStructureType rootType,
7531     const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling, uint8_t** ptr) {
7532     (void)vkStream;
7533     (void)rootType;
7534     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7535     *ptr += sizeof(VkStructureType);
7536     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7537         rootType = forMarshaling->sType;
7538     }
7539     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7540     memcpy(*ptr, (VkBool32*)&forMarshaling->pipelineExecutableInfo, sizeof(VkBool32));
7541     *ptr += sizeof(VkBool32);
7542 }
7543 
reservedmarshal_VkPipelineInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineInfoKHR * forMarshaling,uint8_t ** ptr)7544 void reservedmarshal_VkPipelineInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7545                                        const VkPipelineInfoKHR* forMarshaling, uint8_t** ptr) {
7546     (void)vkStream;
7547     (void)rootType;
7548     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7549     *ptr += sizeof(VkStructureType);
7550     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7551         rootType = forMarshaling->sType;
7552     }
7553     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7554     uint64_t cgen_var_0;
7555     *&cgen_var_0 = get_host_u64_VkPipeline((*&forMarshaling->pipeline));
7556     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7557     *ptr += 1 * 8;
7558 }
7559 
reservedmarshal_VkPipelineExecutablePropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutablePropertiesKHR * forMarshaling,uint8_t ** ptr)7560 void reservedmarshal_VkPipelineExecutablePropertiesKHR(
7561     VulkanStreamGuest* vkStream, VkStructureType rootType,
7562     const VkPipelineExecutablePropertiesKHR* forMarshaling, uint8_t** ptr) {
7563     (void)vkStream;
7564     (void)rootType;
7565     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7566     *ptr += sizeof(VkStructureType);
7567     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7568         rootType = forMarshaling->sType;
7569     }
7570     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7571     memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->stages, sizeof(VkShaderStageFlags));
7572     *ptr += sizeof(VkShaderStageFlags);
7573     memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
7574     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
7575     memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
7576     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
7577     memcpy(*ptr, (uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
7578     *ptr += sizeof(uint32_t);
7579 }
7580 
reservedmarshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableInfoKHR * forMarshaling,uint8_t ** ptr)7581 void reservedmarshal_VkPipelineExecutableInfoKHR(VulkanStreamGuest* vkStream,
7582                                                  VkStructureType rootType,
7583                                                  const VkPipelineExecutableInfoKHR* forMarshaling,
7584                                                  uint8_t** ptr) {
7585     (void)vkStream;
7586     (void)rootType;
7587     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7588     *ptr += sizeof(VkStructureType);
7589     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7590         rootType = forMarshaling->sType;
7591     }
7592     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7593     uint64_t cgen_var_0;
7594     *&cgen_var_0 = get_host_u64_VkPipeline((*&forMarshaling->pipeline));
7595     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
7596     *ptr += 1 * 8;
7597     memcpy(*ptr, (uint32_t*)&forMarshaling->executableIndex, sizeof(uint32_t));
7598     *ptr += sizeof(uint32_t);
7599 }
7600 
reservedmarshal_VkPipelineExecutableStatisticValueKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticValueKHR * forMarshaling,uint8_t ** ptr)7601 void reservedmarshal_VkPipelineExecutableStatisticValueKHR(
7602     VulkanStreamGuest* vkStream, VkStructureType rootType,
7603     const VkPipelineExecutableStatisticValueKHR* forMarshaling, uint8_t** ptr) {
7604     (void)vkStream;
7605     (void)rootType;
7606     memcpy(*ptr, (VkBool32*)&forMarshaling->b32, sizeof(VkBool32));
7607     *ptr += sizeof(VkBool32);
7608 }
7609 
reservedmarshal_VkPipelineExecutableStatisticKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableStatisticKHR * forMarshaling,uint8_t ** ptr)7610 void reservedmarshal_VkPipelineExecutableStatisticKHR(
7611     VulkanStreamGuest* vkStream, VkStructureType rootType,
7612     const VkPipelineExecutableStatisticKHR* forMarshaling, uint8_t** ptr) {
7613     (void)vkStream;
7614     (void)rootType;
7615     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7616     *ptr += sizeof(VkStructureType);
7617     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7618         rootType = forMarshaling->sType;
7619     }
7620     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7621     memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
7622     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
7623     memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
7624     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
7625     memcpy(*ptr, (VkPipelineExecutableStatisticFormatKHR*)&forMarshaling->format,
7626            sizeof(VkPipelineExecutableStatisticFormatKHR));
7627     *ptr += sizeof(VkPipelineExecutableStatisticFormatKHR);
7628     reservedmarshal_VkPipelineExecutableStatisticValueKHR(
7629         vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forMarshaling->value), ptr);
7630 }
7631 
reservedmarshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineExecutableInternalRepresentationKHR * forMarshaling,uint8_t ** ptr)7632 void reservedmarshal_VkPipelineExecutableInternalRepresentationKHR(
7633     VulkanStreamGuest* vkStream, VkStructureType rootType,
7634     const VkPipelineExecutableInternalRepresentationKHR* forMarshaling, uint8_t** ptr) {
7635     (void)vkStream;
7636     (void)rootType;
7637     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7638     *ptr += sizeof(VkStructureType);
7639     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7640         rootType = forMarshaling->sType;
7641     }
7642     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7643     memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
7644     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
7645     memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
7646     *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
7647     memcpy(*ptr, (VkBool32*)&forMarshaling->isText, sizeof(VkBool32));
7648     *ptr += sizeof(VkBool32);
7649     uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
7650     memcpy((*ptr), &cgen_var_0, 8);
7651     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7652     *ptr += 8;
7653     // WARNING PTR CHECK
7654     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pData;
7655     memcpy((*ptr), &cgen_var_1, 8);
7656     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7657     *ptr += 8;
7658     if (forMarshaling->pData) {
7659         memcpy(*ptr, (void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(uint8_t));
7660         *ptr += forMarshaling->dataSize * sizeof(uint8_t);
7661     }
7662 }
7663 
7664 #endif
7665 #ifdef VK_KHR_synchronization2
reservedmarshal_VkQueueFamilyCheckpointProperties2NV(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkQueueFamilyCheckpointProperties2NV * forMarshaling,uint8_t ** ptr)7666 void reservedmarshal_VkQueueFamilyCheckpointProperties2NV(
7667     VulkanStreamGuest* vkStream, VkStructureType rootType,
7668     const VkQueueFamilyCheckpointProperties2NV* forMarshaling, uint8_t** ptr) {
7669     (void)vkStream;
7670     (void)rootType;
7671     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7672     *ptr += sizeof(VkStructureType);
7673     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7674         rootType = forMarshaling->sType;
7675     }
7676     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7677     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->checkpointExecutionStageMask,
7678            sizeof(VkPipelineStageFlags2));
7679     *ptr += sizeof(VkPipelineStageFlags2);
7680 }
7681 
reservedmarshal_VkCheckpointData2NV(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCheckpointData2NV * forMarshaling,uint8_t ** ptr)7682 void reservedmarshal_VkCheckpointData2NV(VulkanStreamGuest* vkStream, VkStructureType rootType,
7683                                          const VkCheckpointData2NV* forMarshaling, uint8_t** ptr) {
7684     (void)vkStream;
7685     (void)rootType;
7686     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7687     *ptr += sizeof(VkStructureType);
7688     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7689         rootType = forMarshaling->sType;
7690     }
7691     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7692     memcpy(*ptr, (VkPipelineStageFlags2*)&forMarshaling->stage, sizeof(VkPipelineStageFlags2));
7693     *ptr += sizeof(VkPipelineStageFlags2);
7694     // WARNING PTR CHECK
7695     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
7696     memcpy((*ptr), &cgen_var_0, 8);
7697     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7698     *ptr += 8;
7699     if (forMarshaling->pCheckpointMarker) {
7700         memcpy(*ptr, (void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
7701         *ptr += sizeof(uint8_t);
7702     }
7703 }
7704 
7705 #endif
7706 #ifdef VK_KHR_maintenance5
reservedmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance5FeaturesKHR * forMarshaling,uint8_t ** ptr)7707 void reservedmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
7708     VulkanStreamGuest* vkStream, VkStructureType rootType,
7709     const VkPhysicalDeviceMaintenance5FeaturesKHR* forMarshaling, uint8_t** ptr) {
7710     (void)vkStream;
7711     (void)rootType;
7712     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7713     *ptr += sizeof(VkStructureType);
7714     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7715         rootType = forMarshaling->sType;
7716     }
7717     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7718     memcpy(*ptr, (VkBool32*)&forMarshaling->maintenance5, sizeof(VkBool32));
7719     *ptr += sizeof(VkBool32);
7720 }
7721 
reservedmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceMaintenance5PropertiesKHR * forMarshaling,uint8_t ** ptr)7722 void reservedmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
7723     VulkanStreamGuest* vkStream, VkStructureType rootType,
7724     const VkPhysicalDeviceMaintenance5PropertiesKHR* forMarshaling, uint8_t** ptr) {
7725     (void)vkStream;
7726     (void)rootType;
7727     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7728     *ptr += sizeof(VkStructureType);
7729     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7730         rootType = forMarshaling->sType;
7731     }
7732     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7733     memcpy(*ptr, (VkBool32*)&forMarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting,
7734            sizeof(VkBool32));
7735     *ptr += sizeof(VkBool32);
7736     memcpy(*ptr, (VkBool32*)&forMarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting,
7737            sizeof(VkBool32));
7738     *ptr += sizeof(VkBool32);
7739     memcpy(*ptr, (VkBool32*)&forMarshaling->depthStencilSwizzleOneSupport, sizeof(VkBool32));
7740     *ptr += sizeof(VkBool32);
7741     memcpy(*ptr, (VkBool32*)&forMarshaling->polygonModePointSize, sizeof(VkBool32));
7742     *ptr += sizeof(VkBool32);
7743     memcpy(*ptr, (VkBool32*)&forMarshaling->nonStrictSinglePixelWideLinesUseParallelogram,
7744            sizeof(VkBool32));
7745     *ptr += sizeof(VkBool32);
7746     memcpy(*ptr, (VkBool32*)&forMarshaling->nonStrictWideLinesUseParallelogram, sizeof(VkBool32));
7747     *ptr += sizeof(VkBool32);
7748 }
7749 
reservedmarshal_VkRenderingAreaInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderingAreaInfoKHR * forMarshaling,uint8_t ** ptr)7750 void reservedmarshal_VkRenderingAreaInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7751                                             const VkRenderingAreaInfoKHR* forMarshaling,
7752                                             uint8_t** ptr) {
7753     (void)vkStream;
7754     (void)rootType;
7755     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7756     *ptr += sizeof(VkStructureType);
7757     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7758         rootType = forMarshaling->sType;
7759     }
7760     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7761     memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
7762     *ptr += sizeof(uint32_t);
7763     memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
7764     *ptr += sizeof(uint32_t);
7765     // WARNING PTR CHECK
7766     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentFormats;
7767     memcpy((*ptr), &cgen_var_0, 8);
7768     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7769     *ptr += 8;
7770     if (forMarshaling->pColorAttachmentFormats) {
7771         memcpy(*ptr, (const VkFormat*)forMarshaling->pColorAttachmentFormats,
7772                forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
7773         *ptr += forMarshaling->colorAttachmentCount * sizeof(const VkFormat);
7774     }
7775     memcpy(*ptr, (VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
7776     *ptr += sizeof(VkFormat);
7777     memcpy(*ptr, (VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
7778     *ptr += sizeof(VkFormat);
7779 }
7780 
reservedmarshal_VkImageSubresource2KHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageSubresource2KHR * forMarshaling,uint8_t ** ptr)7781 void reservedmarshal_VkImageSubresource2KHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7782                                             const VkImageSubresource2KHR* forMarshaling,
7783                                             uint8_t** ptr) {
7784     (void)vkStream;
7785     (void)rootType;
7786     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7787     *ptr += sizeof(VkStructureType);
7788     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7789         rootType = forMarshaling->sType;
7790     }
7791     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7792     reservedmarshal_VkImageSubresource(
7793         vkStream, rootType, (VkImageSubresource*)(&forMarshaling->imageSubresource), ptr);
7794 }
7795 
reservedmarshal_VkDeviceImageSubresourceInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceImageSubresourceInfoKHR * forMarshaling,uint8_t ** ptr)7796 void reservedmarshal_VkDeviceImageSubresourceInfoKHR(
7797     VulkanStreamGuest* vkStream, VkStructureType rootType,
7798     const VkDeviceImageSubresourceInfoKHR* forMarshaling, uint8_t** ptr) {
7799     (void)vkStream;
7800     (void)rootType;
7801     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7802     *ptr += sizeof(VkStructureType);
7803     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7804         rootType = forMarshaling->sType;
7805     }
7806     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7807     reservedmarshal_VkImageCreateInfo(vkStream, rootType,
7808                                       (const VkImageCreateInfo*)(forMarshaling->pCreateInfo), ptr);
7809     reservedmarshal_VkImageSubresource2KHR(
7810         vkStream, rootType, (const VkImageSubresource2KHR*)(forMarshaling->pSubresource), ptr);
7811 }
7812 
reservedmarshal_VkSubresourceLayout2KHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceLayout2KHR * forMarshaling,uint8_t ** ptr)7813 void reservedmarshal_VkSubresourceLayout2KHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
7814                                              const VkSubresourceLayout2KHR* forMarshaling,
7815                                              uint8_t** ptr) {
7816     (void)vkStream;
7817     (void)rootType;
7818     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7819     *ptr += sizeof(VkStructureType);
7820     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7821         rootType = forMarshaling->sType;
7822     }
7823     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7824     reservedmarshal_VkSubresourceLayout(
7825         vkStream, rootType, (VkSubresourceLayout*)(&forMarshaling->subresourceLayout), ptr);
7826 }
7827 
reservedmarshal_VkPipelineCreateFlags2CreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineCreateFlags2CreateInfoKHR * forMarshaling,uint8_t ** ptr)7828 void reservedmarshal_VkPipelineCreateFlags2CreateInfoKHR(
7829     VulkanStreamGuest* vkStream, VkStructureType rootType,
7830     const VkPipelineCreateFlags2CreateInfoKHR* forMarshaling, uint8_t** ptr) {
7831     (void)vkStream;
7832     (void)rootType;
7833     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7834     *ptr += sizeof(VkStructureType);
7835     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7836         rootType = forMarshaling->sType;
7837     }
7838     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7839     memcpy(*ptr, (VkPipelineCreateFlags2KHR*)&forMarshaling->flags,
7840            sizeof(VkPipelineCreateFlags2KHR));
7841     *ptr += sizeof(VkPipelineCreateFlags2KHR);
7842 }
7843 
reservedmarshal_VkBufferUsageFlags2CreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkBufferUsageFlags2CreateInfoKHR * forMarshaling,uint8_t ** ptr)7844 void reservedmarshal_VkBufferUsageFlags2CreateInfoKHR(
7845     VulkanStreamGuest* vkStream, VkStructureType rootType,
7846     const VkBufferUsageFlags2CreateInfoKHR* forMarshaling, uint8_t** ptr) {
7847     (void)vkStream;
7848     (void)rootType;
7849     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7850     *ptr += sizeof(VkStructureType);
7851     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7852         rootType = forMarshaling->sType;
7853     }
7854     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7855     memcpy(*ptr, (VkBufferUsageFlags2KHR*)&forMarshaling->usage, sizeof(VkBufferUsageFlags2KHR));
7856     *ptr += sizeof(VkBufferUsageFlags2KHR);
7857 }
7858 
7859 #endif
7860 #ifdef VK_KHR_line_rasterization
reservedmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationFeaturesKHR * forMarshaling,uint8_t ** ptr)7861 void reservedmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
7862     VulkanStreamGuest* vkStream, VkStructureType rootType,
7863     const VkPhysicalDeviceLineRasterizationFeaturesKHR* forMarshaling, uint8_t** ptr) {
7864     (void)vkStream;
7865     (void)rootType;
7866     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7867     *ptr += sizeof(VkStructureType);
7868     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7869         rootType = forMarshaling->sType;
7870     }
7871     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7872     memcpy(*ptr, (VkBool32*)&forMarshaling->rectangularLines, sizeof(VkBool32));
7873     *ptr += sizeof(VkBool32);
7874     memcpy(*ptr, (VkBool32*)&forMarshaling->bresenhamLines, sizeof(VkBool32));
7875     *ptr += sizeof(VkBool32);
7876     memcpy(*ptr, (VkBool32*)&forMarshaling->smoothLines, sizeof(VkBool32));
7877     *ptr += sizeof(VkBool32);
7878     memcpy(*ptr, (VkBool32*)&forMarshaling->stippledRectangularLines, sizeof(VkBool32));
7879     *ptr += sizeof(VkBool32);
7880     memcpy(*ptr, (VkBool32*)&forMarshaling->stippledBresenhamLines, sizeof(VkBool32));
7881     *ptr += sizeof(VkBool32);
7882     memcpy(*ptr, (VkBool32*)&forMarshaling->stippledSmoothLines, sizeof(VkBool32));
7883     *ptr += sizeof(VkBool32);
7884 }
7885 
reservedmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceLineRasterizationPropertiesKHR * forMarshaling,uint8_t ** ptr)7886 void reservedmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
7887     VulkanStreamGuest* vkStream, VkStructureType rootType,
7888     const VkPhysicalDeviceLineRasterizationPropertiesKHR* forMarshaling, uint8_t** ptr) {
7889     (void)vkStream;
7890     (void)rootType;
7891     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7892     *ptr += sizeof(VkStructureType);
7893     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7894         rootType = forMarshaling->sType;
7895     }
7896     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7897     memcpy(*ptr, (uint32_t*)&forMarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
7898     *ptr += sizeof(uint32_t);
7899 }
7900 
reservedmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationLineStateCreateInfoKHR * forMarshaling,uint8_t ** ptr)7901 void reservedmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(
7902     VulkanStreamGuest* vkStream, VkStructureType rootType,
7903     const VkPipelineRasterizationLineStateCreateInfoKHR* forMarshaling, uint8_t** ptr) {
7904     (void)vkStream;
7905     (void)rootType;
7906     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7907     *ptr += sizeof(VkStructureType);
7908     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7909         rootType = forMarshaling->sType;
7910     }
7911     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7912     memcpy(*ptr, (VkLineRasterizationModeKHR*)&forMarshaling->lineRasterizationMode,
7913            sizeof(VkLineRasterizationModeKHR));
7914     *ptr += sizeof(VkLineRasterizationModeKHR);
7915     memcpy(*ptr, (VkBool32*)&forMarshaling->stippledLineEnable, sizeof(VkBool32));
7916     *ptr += sizeof(VkBool32);
7917     memcpy(*ptr, (uint32_t*)&forMarshaling->lineStippleFactor, sizeof(uint32_t));
7918     *ptr += sizeof(uint32_t);
7919     memcpy(*ptr, (uint16_t*)&forMarshaling->lineStipplePattern, sizeof(uint16_t));
7920     *ptr += sizeof(uint16_t);
7921 }
7922 
7923 #endif
7924 #ifdef VK_ANDROID_native_buffer
reservedmarshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkNativeBufferUsage2ANDROID * forMarshaling,uint8_t ** ptr)7925 void reservedmarshal_VkNativeBufferUsage2ANDROID(VulkanStreamGuest* vkStream,
7926                                                  VkStructureType rootType,
7927                                                  const VkNativeBufferUsage2ANDROID* forMarshaling,
7928                                                  uint8_t** ptr) {
7929     (void)vkStream;
7930     (void)rootType;
7931     memcpy(*ptr, (uint64_t*)&forMarshaling->consumer, sizeof(uint64_t));
7932     *ptr += sizeof(uint64_t);
7933     memcpy(*ptr, (uint64_t*)&forMarshaling->producer, sizeof(uint64_t));
7934     *ptr += sizeof(uint64_t);
7935 }
7936 
reservedmarshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkNativeBufferANDROID * forMarshaling,uint8_t ** ptr)7937 void reservedmarshal_VkNativeBufferANDROID(VulkanStreamGuest* vkStream, VkStructureType rootType,
7938                                            const VkNativeBufferANDROID* forMarshaling,
7939                                            uint8_t** ptr) {
7940     (void)vkStream;
7941     (void)rootType;
7942     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7943     *ptr += sizeof(VkStructureType);
7944     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7945         rootType = forMarshaling->sType;
7946     }
7947     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7948     // WARNING PTR CHECK
7949     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->handle;
7950     memcpy((*ptr), &cgen_var_0, 8);
7951     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
7952     *ptr += 8;
7953     if (forMarshaling->handle) {
7954         memcpy(*ptr, (const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
7955         *ptr += sizeof(const uint32_t);
7956     }
7957     memcpy(*ptr, (int*)&forMarshaling->stride, sizeof(int));
7958     *ptr += sizeof(int);
7959     memcpy(*ptr, (int*)&forMarshaling->format, sizeof(int));
7960     *ptr += sizeof(int);
7961     memcpy(*ptr, (int*)&forMarshaling->usage, sizeof(int));
7962     *ptr += sizeof(int);
7963     reservedmarshal_VkNativeBufferUsage2ANDROID(
7964         vkStream, rootType, (VkNativeBufferUsage2ANDROID*)(&forMarshaling->usage2), ptr);
7965 }
7966 
reservedmarshal_VkSwapchainImageCreateInfoANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSwapchainImageCreateInfoANDROID * forMarshaling,uint8_t ** ptr)7967 void reservedmarshal_VkSwapchainImageCreateInfoANDROID(
7968     VulkanStreamGuest* vkStream, VkStructureType rootType,
7969     const VkSwapchainImageCreateInfoANDROID* forMarshaling, uint8_t** ptr) {
7970     (void)vkStream;
7971     (void)rootType;
7972     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7973     *ptr += sizeof(VkStructureType);
7974     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7975         rootType = forMarshaling->sType;
7976     }
7977     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7978     memcpy(*ptr, (VkSwapchainImageUsageFlagsANDROID*)&forMarshaling->usage,
7979            sizeof(VkSwapchainImageUsageFlagsANDROID));
7980     *ptr += sizeof(VkSwapchainImageUsageFlagsANDROID);
7981 }
7982 
reservedmarshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePresentationPropertiesANDROID * forMarshaling,uint8_t ** ptr)7983 void reservedmarshal_VkPhysicalDevicePresentationPropertiesANDROID(
7984     VulkanStreamGuest* vkStream, VkStructureType rootType,
7985     const VkPhysicalDevicePresentationPropertiesANDROID* forMarshaling, uint8_t** ptr) {
7986     (void)vkStream;
7987     (void)rootType;
7988     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7989     *ptr += sizeof(VkStructureType);
7990     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7991         rootType = forMarshaling->sType;
7992     }
7993     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
7994     memcpy(*ptr, (VkBool32*)&forMarshaling->sharedImage, sizeof(VkBool32));
7995     *ptr += sizeof(VkBool32);
7996 }
7997 
7998 #endif
7999 #ifdef VK_EXT_transform_feedback
reservedmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackFeaturesEXT * forMarshaling,uint8_t ** ptr)8000 void reservedmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
8001     VulkanStreamGuest* vkStream, VkStructureType rootType,
8002     const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling, uint8_t** ptr) {
8003     (void)vkStream;
8004     (void)rootType;
8005     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8006     *ptr += sizeof(VkStructureType);
8007     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8008         rootType = forMarshaling->sType;
8009     }
8010     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8011     memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedback, sizeof(VkBool32));
8012     *ptr += sizeof(VkBool32);
8013     memcpy(*ptr, (VkBool32*)&forMarshaling->geometryStreams, sizeof(VkBool32));
8014     *ptr += sizeof(VkBool32);
8015 }
8016 
reservedmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTransformFeedbackPropertiesEXT * forMarshaling,uint8_t ** ptr)8017 void reservedmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
8018     VulkanStreamGuest* vkStream, VkStructureType rootType,
8019     const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling, uint8_t** ptr) {
8020     (void)vkStream;
8021     (void)rootType;
8022     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8023     *ptr += sizeof(VkStructureType);
8024     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8025         rootType = forMarshaling->sType;
8026     }
8027     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8028     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
8029     *ptr += sizeof(uint32_t);
8030     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
8031     *ptr += sizeof(uint32_t);
8032     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxTransformFeedbackBufferSize,
8033            sizeof(VkDeviceSize));
8034     *ptr += sizeof(VkDeviceSize);
8035     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackStreamDataSize, sizeof(uint32_t));
8036     *ptr += sizeof(uint32_t);
8037     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataSize, sizeof(uint32_t));
8038     *ptr += sizeof(uint32_t);
8039     memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataStride, sizeof(uint32_t));
8040     *ptr += sizeof(uint32_t);
8041     memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackQueries, sizeof(VkBool32));
8042     *ptr += sizeof(VkBool32);
8043     memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackStreamsLinesTriangles,
8044            sizeof(VkBool32));
8045     *ptr += sizeof(VkBool32);
8046     memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackRasterizationStreamSelect,
8047            sizeof(VkBool32));
8048     *ptr += sizeof(VkBool32);
8049     memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackDraw, sizeof(VkBool32));
8050     *ptr += sizeof(VkBool32);
8051 }
8052 
reservedmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationStateStreamCreateInfoEXT * forMarshaling,uint8_t ** ptr)8053 void reservedmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
8054     VulkanStreamGuest* vkStream, VkStructureType rootType,
8055     const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8056     (void)vkStream;
8057     (void)rootType;
8058     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8059     *ptr += sizeof(VkStructureType);
8060     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8061         rootType = forMarshaling->sType;
8062     }
8063     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8064     memcpy(*ptr, (VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forMarshaling->flags,
8065            sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
8066     *ptr += sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT);
8067     memcpy(*ptr, (uint32_t*)&forMarshaling->rasterizationStream, sizeof(uint32_t));
8068     *ptr += sizeof(uint32_t);
8069 }
8070 
8071 #endif
8072 #ifdef VK_EXT_depth_clip_enable
reservedmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDepthClipEnableFeaturesEXT * forMarshaling,uint8_t ** ptr)8073 void reservedmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
8074     VulkanStreamGuest* vkStream, VkStructureType rootType,
8075     const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling, uint8_t** ptr) {
8076     (void)vkStream;
8077     (void)rootType;
8078     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8079     *ptr += sizeof(VkStructureType);
8080     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8081         rootType = forMarshaling->sType;
8082     }
8083     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8084     memcpy(*ptr, (VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
8085     *ptr += sizeof(VkBool32);
8086 }
8087 
reservedmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationDepthClipStateCreateInfoEXT * forMarshaling,uint8_t ** ptr)8088 void reservedmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
8089     VulkanStreamGuest* vkStream, VkStructureType rootType,
8090     const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8091     (void)vkStream;
8092     (void)rootType;
8093     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8094     *ptr += sizeof(VkStructureType);
8095     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8096         rootType = forMarshaling->sType;
8097     }
8098     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8099     memcpy(*ptr, (VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forMarshaling->flags,
8100            sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
8101     *ptr += sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT);
8102     memcpy(*ptr, (VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
8103     *ptr += sizeof(VkBool32);
8104 }
8105 
8106 #endif
8107 #ifdef VK_EXT_image_drm_format_modifier
reservedmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesEXT * forMarshaling,uint8_t ** ptr)8108 void reservedmarshal_VkDrmFormatModifierPropertiesEXT(
8109     VulkanStreamGuest* vkStream, VkStructureType rootType,
8110     const VkDrmFormatModifierPropertiesEXT* forMarshaling, uint8_t** ptr) {
8111     (void)vkStream;
8112     (void)rootType;
8113     memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
8114     *ptr += sizeof(uint64_t);
8115     memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
8116     *ptr += sizeof(uint32_t);
8117     memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->drmFormatModifierTilingFeatures,
8118            sizeof(VkFormatFeatureFlags));
8119     *ptr += sizeof(VkFormatFeatureFlags);
8120 }
8121 
reservedmarshal_VkDrmFormatModifierPropertiesListEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesListEXT * forMarshaling,uint8_t ** ptr)8122 void reservedmarshal_VkDrmFormatModifierPropertiesListEXT(
8123     VulkanStreamGuest* vkStream, VkStructureType rootType,
8124     const VkDrmFormatModifierPropertiesListEXT* forMarshaling, uint8_t** ptr) {
8125     (void)vkStream;
8126     (void)rootType;
8127     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8128     *ptr += sizeof(VkStructureType);
8129     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8130         rootType = forMarshaling->sType;
8131     }
8132     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8133     memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
8134     *ptr += sizeof(uint32_t);
8135     // WARNING PTR CHECK
8136     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
8137     memcpy((*ptr), &cgen_var_0, 8);
8138     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
8139     *ptr += 8;
8140     if (forMarshaling->pDrmFormatModifierProperties) {
8141         for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
8142             reservedmarshal_VkDrmFormatModifierPropertiesEXT(
8143                 vkStream, rootType,
8144                 (VkDrmFormatModifierPropertiesEXT*)(forMarshaling->pDrmFormatModifierProperties +
8145                                                     i),
8146                 ptr);
8147         }
8148     }
8149 }
8150 
reservedmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forMarshaling,uint8_t ** ptr)8151 void reservedmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
8152     VulkanStreamGuest* vkStream, VkStructureType rootType,
8153     const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling, uint8_t** ptr) {
8154     (void)vkStream;
8155     (void)rootType;
8156     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8157     *ptr += sizeof(VkStructureType);
8158     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8159         rootType = forMarshaling->sType;
8160     }
8161     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8162     memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
8163     *ptr += sizeof(uint64_t);
8164     memcpy(*ptr, (VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
8165     *ptr += sizeof(VkSharingMode);
8166     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
8167     *ptr += sizeof(uint32_t);
8168     // WARNING PTR CHECK
8169     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
8170     memcpy((*ptr), &cgen_var_0, 8);
8171     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
8172     *ptr += 8;
8173     if (forMarshaling->pQueueFamilyIndices) {
8174         memcpy(*ptr, (const uint32_t*)forMarshaling->pQueueFamilyIndices,
8175                forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
8176         *ptr += forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
8177     }
8178 }
8179 
reservedmarshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierListCreateInfoEXT * forMarshaling,uint8_t ** ptr)8180 void reservedmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
8181     VulkanStreamGuest* vkStream, VkStructureType rootType,
8182     const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8183     (void)vkStream;
8184     (void)rootType;
8185     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8186     *ptr += sizeof(VkStructureType);
8187     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8188         rootType = forMarshaling->sType;
8189     }
8190     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8191     memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
8192     *ptr += sizeof(uint32_t);
8193     memcpy(*ptr, (const uint64_t*)forMarshaling->pDrmFormatModifiers,
8194            forMarshaling->drmFormatModifierCount * sizeof(const uint64_t));
8195     *ptr += forMarshaling->drmFormatModifierCount * sizeof(const uint64_t);
8196 }
8197 
reservedmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierExplicitCreateInfoEXT * forMarshaling,uint8_t ** ptr)8198 void reservedmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
8199     VulkanStreamGuest* vkStream, VkStructureType rootType,
8200     const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8201     (void)vkStream;
8202     (void)rootType;
8203     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8204     *ptr += sizeof(VkStructureType);
8205     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8206         rootType = forMarshaling->sType;
8207     }
8208     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8209     memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
8210     *ptr += sizeof(uint64_t);
8211     memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
8212     *ptr += sizeof(uint32_t);
8213     for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierPlaneCount; ++i) {
8214         reservedmarshal_VkSubresourceLayout(
8215             vkStream, rootType, (const VkSubresourceLayout*)(forMarshaling->pPlaneLayouts + i),
8216             ptr);
8217     }
8218 }
8219 
reservedmarshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageDrmFormatModifierPropertiesEXT * forMarshaling,uint8_t ** ptr)8220 void reservedmarshal_VkImageDrmFormatModifierPropertiesEXT(
8221     VulkanStreamGuest* vkStream, VkStructureType rootType,
8222     const VkImageDrmFormatModifierPropertiesEXT* forMarshaling, uint8_t** ptr) {
8223     (void)vkStream;
8224     (void)rootType;
8225     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8226     *ptr += sizeof(VkStructureType);
8227     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8228         rootType = forMarshaling->sType;
8229     }
8230     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8231     memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
8232     *ptr += sizeof(uint64_t);
8233 }
8234 
reservedmarshal_VkDrmFormatModifierProperties2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierProperties2EXT * forMarshaling,uint8_t ** ptr)8235 void reservedmarshal_VkDrmFormatModifierProperties2EXT(
8236     VulkanStreamGuest* vkStream, VkStructureType rootType,
8237     const VkDrmFormatModifierProperties2EXT* forMarshaling, uint8_t** ptr) {
8238     (void)vkStream;
8239     (void)rootType;
8240     memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
8241     *ptr += sizeof(uint64_t);
8242     memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
8243     *ptr += sizeof(uint32_t);
8244     memcpy(*ptr, (VkFormatFeatureFlags2*)&forMarshaling->drmFormatModifierTilingFeatures,
8245            sizeof(VkFormatFeatureFlags2));
8246     *ptr += sizeof(VkFormatFeatureFlags2);
8247 }
8248 
reservedmarshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDrmFormatModifierPropertiesList2EXT * forMarshaling,uint8_t ** ptr)8249 void reservedmarshal_VkDrmFormatModifierPropertiesList2EXT(
8250     VulkanStreamGuest* vkStream, VkStructureType rootType,
8251     const VkDrmFormatModifierPropertiesList2EXT* forMarshaling, uint8_t** ptr) {
8252     (void)vkStream;
8253     (void)rootType;
8254     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8255     *ptr += sizeof(VkStructureType);
8256     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8257         rootType = forMarshaling->sType;
8258     }
8259     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8260     memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
8261     *ptr += sizeof(uint32_t);
8262     // WARNING PTR CHECK
8263     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
8264     memcpy((*ptr), &cgen_var_0, 8);
8265     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
8266     *ptr += 8;
8267     if (forMarshaling->pDrmFormatModifierProperties) {
8268         for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i) {
8269             reservedmarshal_VkDrmFormatModifierProperties2EXT(
8270                 vkStream, rootType,
8271                 (VkDrmFormatModifierProperties2EXT*)(forMarshaling->pDrmFormatModifierProperties +
8272                                                      i),
8273                 ptr);
8274         }
8275     }
8276 }
8277 
8278 #endif
8279 #ifdef VK_EXT_vertex_attribute_divisor
reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forMarshaling,uint8_t ** ptr)8280 void reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
8281     VulkanStreamGuest* vkStream, VkStructureType rootType,
8282     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling, uint8_t** ptr) {
8283     (void)vkStream;
8284     (void)rootType;
8285     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8286     *ptr += sizeof(VkStructureType);
8287     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8288         rootType = forMarshaling->sType;
8289     }
8290     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8291     memcpy(*ptr, (uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
8292     *ptr += sizeof(uint32_t);
8293 }
8294 
8295 #endif
8296 #ifdef VK_EXT_fragment_density_map
reservedmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forMarshaling,uint8_t ** ptr)8297 void reservedmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
8298     VulkanStreamGuest* vkStream, VkStructureType rootType,
8299     const VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forMarshaling, uint8_t** ptr) {
8300     (void)vkStream;
8301     (void)rootType;
8302     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8303     *ptr += sizeof(VkStructureType);
8304     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8305         rootType = forMarshaling->sType;
8306     }
8307     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8308     memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentDensityMap, sizeof(VkBool32));
8309     *ptr += sizeof(VkBool32);
8310     memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentDensityMapDynamic, sizeof(VkBool32));
8311     *ptr += sizeof(VkBool32);
8312     memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentDensityMapNonSubsampledImages,
8313            sizeof(VkBool32));
8314     *ptr += sizeof(VkBool32);
8315 }
8316 
reservedmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forMarshaling,uint8_t ** ptr)8317 void reservedmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
8318     VulkanStreamGuest* vkStream, VkStructureType rootType,
8319     const VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forMarshaling, uint8_t** ptr) {
8320     (void)vkStream;
8321     (void)rootType;
8322     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8323     *ptr += sizeof(VkStructureType);
8324     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8325         rootType = forMarshaling->sType;
8326     }
8327     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8328     reservedmarshal_VkExtent2D(vkStream, rootType,
8329                                (VkExtent2D*)(&forMarshaling->minFragmentDensityTexelSize), ptr);
8330     reservedmarshal_VkExtent2D(vkStream, rootType,
8331                                (VkExtent2D*)(&forMarshaling->maxFragmentDensityTexelSize), ptr);
8332     memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentDensityInvocations, sizeof(VkBool32));
8333     *ptr += sizeof(VkBool32);
8334 }
8335 
reservedmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkRenderPassFragmentDensityMapCreateInfoEXT * forMarshaling,uint8_t ** ptr)8336 void reservedmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
8337     VulkanStreamGuest* vkStream, VkStructureType rootType,
8338     const VkRenderPassFragmentDensityMapCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8339     (void)vkStream;
8340     (void)rootType;
8341     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8342     *ptr += sizeof(VkStructureType);
8343     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8344         rootType = forMarshaling->sType;
8345     }
8346     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8347     reservedmarshal_VkAttachmentReference(
8348         vkStream, rootType, (VkAttachmentReference*)(&forMarshaling->fragmentDensityMapAttachment),
8349         ptr);
8350 }
8351 
8352 #endif
8353 #ifdef VK_EXT_provoking_vertex
reservedmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexFeaturesEXT * forMarshaling,uint8_t ** ptr)8354 void reservedmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
8355     VulkanStreamGuest* vkStream, VkStructureType rootType,
8356     const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling, uint8_t** ptr) {
8357     (void)vkStream;
8358     (void)rootType;
8359     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8360     *ptr += sizeof(VkStructureType);
8361     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8362         rootType = forMarshaling->sType;
8363     }
8364     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8365     memcpy(*ptr, (VkBool32*)&forMarshaling->provokingVertexLast, sizeof(VkBool32));
8366     *ptr += sizeof(VkBool32);
8367     memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackPreservesProvokingVertex,
8368            sizeof(VkBool32));
8369     *ptr += sizeof(VkBool32);
8370 }
8371 
reservedmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceProvokingVertexPropertiesEXT * forMarshaling,uint8_t ** ptr)8372 void reservedmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
8373     VulkanStreamGuest* vkStream, VkStructureType rootType,
8374     const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling, uint8_t** ptr) {
8375     (void)vkStream;
8376     (void)rootType;
8377     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8378     *ptr += sizeof(VkStructureType);
8379     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8380         rootType = forMarshaling->sType;
8381     }
8382     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8383     memcpy(*ptr, (VkBool32*)&forMarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
8384     *ptr += sizeof(VkBool32);
8385     memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackPreservesTriangleFanProvokingVertex,
8386            sizeof(VkBool32));
8387     *ptr += sizeof(VkBool32);
8388 }
8389 
reservedmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forMarshaling,uint8_t ** ptr)8390 void reservedmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
8391     VulkanStreamGuest* vkStream, VkStructureType rootType,
8392     const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8393     (void)vkStream;
8394     (void)rootType;
8395     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8396     *ptr += sizeof(VkStructureType);
8397     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8398         rootType = forMarshaling->sType;
8399     }
8400     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8401     memcpy(*ptr, (VkProvokingVertexModeEXT*)&forMarshaling->provokingVertexMode,
8402            sizeof(VkProvokingVertexModeEXT));
8403     *ptr += sizeof(VkProvokingVertexModeEXT);
8404 }
8405 
8406 #endif
8407 #ifdef VK_EXT_extended_dynamic_state
reservedmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forMarshaling,uint8_t ** ptr)8408 void reservedmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
8409     VulkanStreamGuest* vkStream, VkStructureType rootType,
8410     const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling, uint8_t** ptr) {
8411     (void)vkStream;
8412     (void)rootType;
8413     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8414     *ptr += sizeof(VkStructureType);
8415     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8416         rootType = forMarshaling->sType;
8417     }
8418     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8419     memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState, sizeof(VkBool32));
8420     *ptr += sizeof(VkBool32);
8421 }
8422 
8423 #endif
8424 #ifdef VK_EXT_host_image_copy
reservedmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyFeaturesEXT * forMarshaling,uint8_t ** ptr)8425 void reservedmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
8426     VulkanStreamGuest* vkStream, VkStructureType rootType,
8427     const VkPhysicalDeviceHostImageCopyFeaturesEXT* forMarshaling, uint8_t** ptr) {
8428     (void)vkStream;
8429     (void)rootType;
8430     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8431     *ptr += sizeof(VkStructureType);
8432     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8433         rootType = forMarshaling->sType;
8434     }
8435     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8436     memcpy(*ptr, (VkBool32*)&forMarshaling->hostImageCopy, sizeof(VkBool32));
8437     *ptr += sizeof(VkBool32);
8438 }
8439 
reservedmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceHostImageCopyPropertiesEXT * forMarshaling,uint8_t ** ptr)8440 void reservedmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
8441     VulkanStreamGuest* vkStream, VkStructureType rootType,
8442     const VkPhysicalDeviceHostImageCopyPropertiesEXT* forMarshaling, uint8_t** ptr) {
8443     (void)vkStream;
8444     (void)rootType;
8445     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8446     *ptr += sizeof(VkStructureType);
8447     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8448         rootType = forMarshaling->sType;
8449     }
8450     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8451     memcpy(*ptr, (uint32_t*)&forMarshaling->copySrcLayoutCount, sizeof(uint32_t));
8452     *ptr += sizeof(uint32_t);
8453     // WARNING PTR CHECK
8454     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCopySrcLayouts;
8455     memcpy((*ptr), &cgen_var_0, 8);
8456     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
8457     *ptr += 8;
8458     if (forMarshaling->pCopySrcLayouts) {
8459         memcpy(*ptr, (VkImageLayout*)forMarshaling->pCopySrcLayouts,
8460                forMarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
8461         *ptr += forMarshaling->copySrcLayoutCount * sizeof(VkImageLayout);
8462     }
8463     memcpy(*ptr, (uint32_t*)&forMarshaling->copyDstLayoutCount, sizeof(uint32_t));
8464     *ptr += sizeof(uint32_t);
8465     // WARNING PTR CHECK
8466     uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pCopyDstLayouts;
8467     memcpy((*ptr), &cgen_var_1, 8);
8468     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
8469     *ptr += 8;
8470     if (forMarshaling->pCopyDstLayouts) {
8471         memcpy(*ptr, (VkImageLayout*)forMarshaling->pCopyDstLayouts,
8472                forMarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
8473         *ptr += forMarshaling->copyDstLayoutCount * sizeof(VkImageLayout);
8474     }
8475     memcpy(*ptr, (uint8_t*)forMarshaling->optimalTilingLayoutUUID, VK_UUID_SIZE * sizeof(uint8_t));
8476     *ptr += VK_UUID_SIZE * sizeof(uint8_t);
8477     memcpy(*ptr, (VkBool32*)&forMarshaling->identicalMemoryTypeRequirements, sizeof(VkBool32));
8478     *ptr += sizeof(VkBool32);
8479 }
8480 
reservedmarshal_VkMemoryToImageCopyEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkMemoryToImageCopyEXT * forMarshaling,uint8_t ** ptr)8481 void reservedmarshal_VkMemoryToImageCopyEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
8482                                             const VkMemoryToImageCopyEXT* forMarshaling,
8483                                             uint8_t** ptr) {
8484     (void)vkStream;
8485     (void)rootType;
8486     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8487     *ptr += sizeof(VkStructureType);
8488     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8489         rootType = forMarshaling->sType;
8490     }
8491     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8492     memcpy(*ptr, (const void*)forMarshaling->pHostPointer, sizeof(const uint8_t));
8493     *ptr += sizeof(const uint8_t);
8494     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryRowLength, sizeof(uint32_t));
8495     *ptr += sizeof(uint32_t);
8496     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryImageHeight, sizeof(uint32_t));
8497     *ptr += sizeof(uint32_t);
8498     reservedmarshal_VkImageSubresourceLayers(
8499         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource), ptr);
8500     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset), ptr);
8501     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent), ptr);
8502 }
8503 
reservedmarshal_VkImageToMemoryCopyEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageToMemoryCopyEXT * forMarshaling,uint8_t ** ptr)8504 void reservedmarshal_VkImageToMemoryCopyEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
8505                                             const VkImageToMemoryCopyEXT* forMarshaling,
8506                                             uint8_t** ptr) {
8507     (void)vkStream;
8508     (void)rootType;
8509     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8510     *ptr += sizeof(VkStructureType);
8511     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8512         rootType = forMarshaling->sType;
8513     }
8514     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8515     memcpy(*ptr, (void*)forMarshaling->pHostPointer, sizeof(uint8_t));
8516     *ptr += sizeof(uint8_t);
8517     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryRowLength, sizeof(uint32_t));
8518     *ptr += sizeof(uint32_t);
8519     memcpy(*ptr, (uint32_t*)&forMarshaling->memoryImageHeight, sizeof(uint32_t));
8520     *ptr += sizeof(uint32_t);
8521     reservedmarshal_VkImageSubresourceLayers(
8522         vkStream, rootType, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource), ptr);
8523     reservedmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forMarshaling->imageOffset), ptr);
8524     reservedmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forMarshaling->imageExtent), ptr);
8525 }
8526 
reservedmarshal_VkCopyMemoryToImageInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyMemoryToImageInfoEXT * forMarshaling,uint8_t ** ptr)8527 void reservedmarshal_VkCopyMemoryToImageInfoEXT(VulkanStreamGuest* vkStream,
8528                                                 VkStructureType rootType,
8529                                                 const VkCopyMemoryToImageInfoEXT* forMarshaling,
8530                                                 uint8_t** ptr) {
8531     (void)vkStream;
8532     (void)rootType;
8533     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8534     *ptr += sizeof(VkStructureType);
8535     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8536         rootType = forMarshaling->sType;
8537     }
8538     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8539     memcpy(*ptr, (VkHostImageCopyFlagsEXT*)&forMarshaling->flags, sizeof(VkHostImageCopyFlagsEXT));
8540     *ptr += sizeof(VkHostImageCopyFlagsEXT);
8541     uint64_t cgen_var_0;
8542     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->dstImage));
8543     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
8544     *ptr += 1 * 8;
8545     memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
8546     *ptr += sizeof(VkImageLayout);
8547     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
8548     *ptr += sizeof(uint32_t);
8549     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
8550         reservedmarshal_VkMemoryToImageCopyEXT(
8551             vkStream, rootType, (const VkMemoryToImageCopyEXT*)(forMarshaling->pRegions + i), ptr);
8552     }
8553 }
8554 
reservedmarshal_VkCopyImageToMemoryInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToMemoryInfoEXT * forMarshaling,uint8_t ** ptr)8555 void reservedmarshal_VkCopyImageToMemoryInfoEXT(VulkanStreamGuest* vkStream,
8556                                                 VkStructureType rootType,
8557                                                 const VkCopyImageToMemoryInfoEXT* forMarshaling,
8558                                                 uint8_t** ptr) {
8559     (void)vkStream;
8560     (void)rootType;
8561     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8562     *ptr += sizeof(VkStructureType);
8563     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8564         rootType = forMarshaling->sType;
8565     }
8566     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8567     memcpy(*ptr, (VkHostImageCopyFlagsEXT*)&forMarshaling->flags, sizeof(VkHostImageCopyFlagsEXT));
8568     *ptr += sizeof(VkHostImageCopyFlagsEXT);
8569     uint64_t cgen_var_0;
8570     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
8571     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
8572     *ptr += 1 * 8;
8573     memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
8574     *ptr += sizeof(VkImageLayout);
8575     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
8576     *ptr += sizeof(uint32_t);
8577     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
8578         reservedmarshal_VkImageToMemoryCopyEXT(
8579             vkStream, rootType, (const VkImageToMemoryCopyEXT*)(forMarshaling->pRegions + i), ptr);
8580     }
8581 }
8582 
reservedmarshal_VkCopyImageToImageInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCopyImageToImageInfoEXT * forMarshaling,uint8_t ** ptr)8583 void reservedmarshal_VkCopyImageToImageInfoEXT(VulkanStreamGuest* vkStream,
8584                                                VkStructureType rootType,
8585                                                const VkCopyImageToImageInfoEXT* forMarshaling,
8586                                                uint8_t** ptr) {
8587     (void)vkStream;
8588     (void)rootType;
8589     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8590     *ptr += sizeof(VkStructureType);
8591     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8592         rootType = forMarshaling->sType;
8593     }
8594     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8595     memcpy(*ptr, (VkHostImageCopyFlagsEXT*)&forMarshaling->flags, sizeof(VkHostImageCopyFlagsEXT));
8596     *ptr += sizeof(VkHostImageCopyFlagsEXT);
8597     uint64_t cgen_var_0;
8598     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
8599     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
8600     *ptr += 1 * 8;
8601     memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
8602     *ptr += sizeof(VkImageLayout);
8603     uint64_t cgen_var_1;
8604     *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
8605     memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
8606     *ptr += 1 * 8;
8607     memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
8608     *ptr += sizeof(VkImageLayout);
8609     memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
8610     *ptr += sizeof(uint32_t);
8611     for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i) {
8612         reservedmarshal_VkImageCopy2(vkStream, rootType,
8613                                      (const VkImageCopy2*)(forMarshaling->pRegions + i), ptr);
8614     }
8615 }
8616 
reservedmarshal_VkHostImageLayoutTransitionInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkHostImageLayoutTransitionInfoEXT * forMarshaling,uint8_t ** ptr)8617 void reservedmarshal_VkHostImageLayoutTransitionInfoEXT(
8618     VulkanStreamGuest* vkStream, VkStructureType rootType,
8619     const VkHostImageLayoutTransitionInfoEXT* forMarshaling, uint8_t** ptr) {
8620     (void)vkStream;
8621     (void)rootType;
8622     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8623     *ptr += sizeof(VkStructureType);
8624     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8625         rootType = forMarshaling->sType;
8626     }
8627     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8628     uint64_t cgen_var_0;
8629     *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
8630     memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
8631     *ptr += 1 * 8;
8632     memcpy(*ptr, (VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
8633     *ptr += sizeof(VkImageLayout);
8634     memcpy(*ptr, (VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
8635     *ptr += sizeof(VkImageLayout);
8636     reservedmarshal_VkImageSubresourceRange(
8637         vkStream, rootType, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange), ptr);
8638 }
8639 
reservedmarshal_VkSubresourceHostMemcpySizeEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSubresourceHostMemcpySizeEXT * forMarshaling,uint8_t ** ptr)8640 void reservedmarshal_VkSubresourceHostMemcpySizeEXT(
8641     VulkanStreamGuest* vkStream, VkStructureType rootType,
8642     const VkSubresourceHostMemcpySizeEXT* forMarshaling, uint8_t** ptr) {
8643     (void)vkStream;
8644     (void)rootType;
8645     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8646     *ptr += sizeof(VkStructureType);
8647     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8648         rootType = forMarshaling->sType;
8649     }
8650     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8651     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
8652     *ptr += sizeof(VkDeviceSize);
8653 }
8654 
reservedmarshal_VkHostImageCopyDevicePerformanceQueryEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkHostImageCopyDevicePerformanceQueryEXT * forMarshaling,uint8_t ** ptr)8655 void reservedmarshal_VkHostImageCopyDevicePerformanceQueryEXT(
8656     VulkanStreamGuest* vkStream, VkStructureType rootType,
8657     const VkHostImageCopyDevicePerformanceQueryEXT* forMarshaling, uint8_t** ptr) {
8658     (void)vkStream;
8659     (void)rootType;
8660     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8661     *ptr += sizeof(VkStructureType);
8662     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8663         rootType = forMarshaling->sType;
8664     }
8665     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8666     memcpy(*ptr, (VkBool32*)&forMarshaling->optimalDeviceAccess, sizeof(VkBool32));
8667     *ptr += sizeof(VkBool32);
8668     memcpy(*ptr, (VkBool32*)&forMarshaling->identicalMemoryLayout, sizeof(VkBool32));
8669     *ptr += sizeof(VkBool32);
8670 }
8671 
8672 #endif
8673 #ifdef VK_EXT_texel_buffer_alignment
reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forMarshaling,uint8_t ** ptr)8674 void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
8675     VulkanStreamGuest* vkStream, VkStructureType rootType,
8676     const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling, uint8_t** ptr) {
8677     (void)vkStream;
8678     (void)rootType;
8679     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8680     *ptr += sizeof(VkStructureType);
8681     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8682         rootType = forMarshaling->sType;
8683     }
8684     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8685     memcpy(*ptr, (VkBool32*)&forMarshaling->texelBufferAlignment, sizeof(VkBool32));
8686     *ptr += sizeof(VkBool32);
8687 }
8688 
8689 #endif
8690 #ifdef VK_EXT_device_memory_report
reservedmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forMarshaling,uint8_t ** ptr)8691 void reservedmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
8692     VulkanStreamGuest* vkStream, VkStructureType rootType,
8693     const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling, uint8_t** ptr) {
8694     (void)vkStream;
8695     (void)rootType;
8696     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8697     *ptr += sizeof(VkStructureType);
8698     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8699         rootType = forMarshaling->sType;
8700     }
8701     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8702     memcpy(*ptr, (VkBool32*)&forMarshaling->deviceMemoryReport, sizeof(VkBool32));
8703     *ptr += sizeof(VkBool32);
8704 }
8705 
reservedmarshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceMemoryReportCallbackDataEXT * forMarshaling,uint8_t ** ptr)8706 void reservedmarshal_VkDeviceMemoryReportCallbackDataEXT(
8707     VulkanStreamGuest* vkStream, VkStructureType rootType,
8708     const VkDeviceMemoryReportCallbackDataEXT* forMarshaling, uint8_t** ptr) {
8709     (void)vkStream;
8710     (void)rootType;
8711     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8712     *ptr += sizeof(VkStructureType);
8713     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8714         rootType = forMarshaling->sType;
8715     }
8716     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8717     memcpy(*ptr, (VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
8718            sizeof(VkDeviceMemoryReportFlagsEXT));
8719     *ptr += sizeof(VkDeviceMemoryReportFlagsEXT);
8720     memcpy(*ptr, (VkDeviceMemoryReportEventTypeEXT*)&forMarshaling->type,
8721            sizeof(VkDeviceMemoryReportEventTypeEXT));
8722     *ptr += sizeof(VkDeviceMemoryReportEventTypeEXT);
8723     memcpy(*ptr, (uint64_t*)&forMarshaling->memoryObjectId, sizeof(uint64_t));
8724     *ptr += sizeof(uint64_t);
8725     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
8726     *ptr += sizeof(VkDeviceSize);
8727     memcpy(*ptr, (VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
8728     *ptr += sizeof(VkObjectType);
8729     memcpy(*ptr, (uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
8730     *ptr += sizeof(uint64_t);
8731     memcpy(*ptr, (uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
8732     *ptr += sizeof(uint32_t);
8733 }
8734 
reservedmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkDeviceDeviceMemoryReportCreateInfoEXT * forMarshaling,uint8_t ** ptr)8735 void reservedmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
8736     VulkanStreamGuest* vkStream, VkStructureType rootType,
8737     const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8738     (void)vkStream;
8739     (void)rootType;
8740     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8741     *ptr += sizeof(VkStructureType);
8742     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8743         rootType = forMarshaling->sType;
8744     }
8745     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8746     memcpy(*ptr, (VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags,
8747            sizeof(VkDeviceMemoryReportFlagsEXT));
8748     *ptr += sizeof(VkDeviceMemoryReportFlagsEXT);
8749     uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
8750     memcpy((*ptr), &cgen_var_0, 8);
8751     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
8752     *ptr += 8;
8753     memcpy(*ptr, (void*)forMarshaling->pUserData, sizeof(uint8_t));
8754     *ptr += sizeof(uint8_t);
8755 }
8756 
8757 #endif
8758 #ifdef VK_EXT_robustness2
reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2FeaturesEXT * forMarshaling,uint8_t ** ptr)8759 void reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
8760     VulkanStreamGuest* vkStream, VkStructureType rootType,
8761     const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling, uint8_t** ptr) {
8762     (void)vkStream;
8763     (void)rootType;
8764     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8765     *ptr += sizeof(VkStructureType);
8766     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8767         rootType = forMarshaling->sType;
8768     }
8769     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8770     memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccess2, sizeof(VkBool32));
8771     *ptr += sizeof(VkBool32);
8772     memcpy(*ptr, (VkBool32*)&forMarshaling->robustImageAccess2, sizeof(VkBool32));
8773     *ptr += sizeof(VkBool32);
8774     memcpy(*ptr, (VkBool32*)&forMarshaling->nullDescriptor, sizeof(VkBool32));
8775     *ptr += sizeof(VkBool32);
8776 }
8777 
reservedmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceRobustness2PropertiesEXT * forMarshaling,uint8_t ** ptr)8778 void reservedmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
8779     VulkanStreamGuest* vkStream, VkStructureType rootType,
8780     const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling, uint8_t** ptr) {
8781     (void)vkStream;
8782     (void)rootType;
8783     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8784     *ptr += sizeof(VkStructureType);
8785     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8786         rootType = forMarshaling->sType;
8787     }
8788     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8789     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->robustStorageBufferAccessSizeAlignment,
8790            sizeof(VkDeviceSize));
8791     *ptr += sizeof(VkDeviceSize);
8792     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->robustUniformBufferAccessSizeAlignment,
8793            sizeof(VkDeviceSize));
8794     *ptr += sizeof(VkDeviceSize);
8795 }
8796 
8797 #endif
8798 #ifdef VK_EXT_custom_border_color
reservedmarshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkSamplerCustomBorderColorCreateInfoEXT * forMarshaling,uint8_t ** ptr)8799 void reservedmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
8800     VulkanStreamGuest* vkStream, VkStructureType rootType,
8801     const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8802     (void)vkStream;
8803     (void)rootType;
8804     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8805     *ptr += sizeof(VkStructureType);
8806     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8807         rootType = forMarshaling->sType;
8808     }
8809     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8810     reservedmarshal_VkClearColorValue(vkStream, rootType,
8811                                       (VkClearColorValue*)(&forMarshaling->customBorderColor), ptr);
8812     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
8813     *ptr += sizeof(VkFormat);
8814 }
8815 
reservedmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorPropertiesEXT * forMarshaling,uint8_t ** ptr)8816 void reservedmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
8817     VulkanStreamGuest* vkStream, VkStructureType rootType,
8818     const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling, uint8_t** ptr) {
8819     (void)vkStream;
8820     (void)rootType;
8821     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8822     *ptr += sizeof(VkStructureType);
8823     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8824         rootType = forMarshaling->sType;
8825     }
8826     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8827     memcpy(*ptr, (uint32_t*)&forMarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
8828     *ptr += sizeof(uint32_t);
8829 }
8830 
reservedmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceCustomBorderColorFeaturesEXT * forMarshaling,uint8_t ** ptr)8831 void reservedmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
8832     VulkanStreamGuest* vkStream, VkStructureType rootType,
8833     const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling, uint8_t** ptr) {
8834     (void)vkStream;
8835     (void)rootType;
8836     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8837     *ptr += sizeof(VkStructureType);
8838     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8839         rootType = forMarshaling->sType;
8840     }
8841     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8842     memcpy(*ptr, (VkBool32*)&forMarshaling->customBorderColors, sizeof(VkBool32));
8843     *ptr += sizeof(VkBool32);
8844     memcpy(*ptr, (VkBool32*)&forMarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
8845     *ptr += sizeof(VkBool32);
8846 }
8847 
8848 #endif
8849 #ifdef VK_EXT_graphics_pipeline_library
reservedmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forMarshaling,uint8_t ** ptr)8850 void reservedmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
8851     VulkanStreamGuest* vkStream, VkStructureType rootType,
8852     const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forMarshaling, uint8_t** ptr) {
8853     (void)vkStream;
8854     (void)rootType;
8855     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8856     *ptr += sizeof(VkStructureType);
8857     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8858         rootType = forMarshaling->sType;
8859     }
8860     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8861     memcpy(*ptr, (VkBool32*)&forMarshaling->graphicsPipelineLibrary, sizeof(VkBool32));
8862     *ptr += sizeof(VkBool32);
8863 }
8864 
reservedmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forMarshaling,uint8_t ** ptr)8865 void reservedmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
8866     VulkanStreamGuest* vkStream, VkStructureType rootType,
8867     const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forMarshaling, uint8_t** ptr) {
8868     (void)vkStream;
8869     (void)rootType;
8870     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8871     *ptr += sizeof(VkStructureType);
8872     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8873         rootType = forMarshaling->sType;
8874     }
8875     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8876     memcpy(*ptr, (VkBool32*)&forMarshaling->graphicsPipelineLibraryFastLinking, sizeof(VkBool32));
8877     *ptr += sizeof(VkBool32);
8878     memcpy(*ptr,
8879            (VkBool32*)&forMarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
8880            sizeof(VkBool32));
8881     *ptr += sizeof(VkBool32);
8882 }
8883 
reservedmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkGraphicsPipelineLibraryCreateInfoEXT * forMarshaling,uint8_t ** ptr)8884 void reservedmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
8885     VulkanStreamGuest* vkStream, VkStructureType rootType,
8886     const VkGraphicsPipelineLibraryCreateInfoEXT* forMarshaling, uint8_t** ptr) {
8887     (void)vkStream;
8888     (void)rootType;
8889     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8890     *ptr += sizeof(VkStructureType);
8891     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8892         rootType = forMarshaling->sType;
8893     }
8894     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8895     memcpy(*ptr, (VkGraphicsPipelineLibraryFlagsEXT*)&forMarshaling->flags,
8896            sizeof(VkGraphicsPipelineLibraryFlagsEXT));
8897     *ptr += sizeof(VkGraphicsPipelineLibraryFlagsEXT);
8898 }
8899 
8900 #endif
8901 #ifdef VK_EXT_ycbcr_2plane_444_formats
reservedmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forMarshaling,uint8_t ** ptr)8902 void reservedmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
8903     VulkanStreamGuest* vkStream, VkStructureType rootType,
8904     const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling, uint8_t** ptr) {
8905     (void)vkStream;
8906     (void)rootType;
8907     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8908     *ptr += sizeof(VkStructureType);
8909     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8910         rootType = forMarshaling->sType;
8911     }
8912     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8913     memcpy(*ptr, (VkBool32*)&forMarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
8914     *ptr += sizeof(VkBool32);
8915 }
8916 
8917 #endif
8918 #ifdef VK_EXT_image_compression_control
reservedmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlFeaturesEXT * forMarshaling,uint8_t ** ptr)8919 void reservedmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
8920     VulkanStreamGuest* vkStream, VkStructureType rootType,
8921     const VkPhysicalDeviceImageCompressionControlFeaturesEXT* forMarshaling, uint8_t** ptr) {
8922     (void)vkStream;
8923     (void)rootType;
8924     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8925     *ptr += sizeof(VkStructureType);
8926     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8927         rootType = forMarshaling->sType;
8928     }
8929     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8930     memcpy(*ptr, (VkBool32*)&forMarshaling->imageCompressionControl, sizeof(VkBool32));
8931     *ptr += sizeof(VkBool32);
8932 }
8933 
reservedmarshal_VkImageCompressionControlEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCompressionControlEXT * forMarshaling,uint8_t ** ptr)8934 void reservedmarshal_VkImageCompressionControlEXT(VulkanStreamGuest* vkStream,
8935                                                   VkStructureType rootType,
8936                                                   const VkImageCompressionControlEXT* forMarshaling,
8937                                                   uint8_t** ptr) {
8938     (void)vkStream;
8939     (void)rootType;
8940     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8941     *ptr += sizeof(VkStructureType);
8942     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8943         rootType = forMarshaling->sType;
8944     }
8945     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8946     memcpy(*ptr, (VkImageCompressionFlagsEXT*)&forMarshaling->flags,
8947            sizeof(VkImageCompressionFlagsEXT));
8948     *ptr += sizeof(VkImageCompressionFlagsEXT);
8949     memcpy(*ptr, (uint32_t*)&forMarshaling->compressionControlPlaneCount, sizeof(uint32_t));
8950     *ptr += sizeof(uint32_t);
8951     // WARNING PTR CHECK
8952     uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pFixedRateFlags;
8953     memcpy((*ptr), &cgen_var_0, 8);
8954     gfxstream::aemu::Stream::toBe64((uint8_t*)(*ptr));
8955     *ptr += 8;
8956     if (forMarshaling->pFixedRateFlags) {
8957         memcpy(*ptr, (VkImageCompressionFixedRateFlagsEXT*)forMarshaling->pFixedRateFlags,
8958                forMarshaling->compressionControlPlaneCount *
8959                    sizeof(VkImageCompressionFixedRateFlagsEXT));
8960         *ptr += forMarshaling->compressionControlPlaneCount *
8961                 sizeof(VkImageCompressionFixedRateFlagsEXT);
8962     }
8963 }
8964 
reservedmarshal_VkImageCompressionPropertiesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImageCompressionPropertiesEXT * forMarshaling,uint8_t ** ptr)8965 void reservedmarshal_VkImageCompressionPropertiesEXT(
8966     VulkanStreamGuest* vkStream, VkStructureType rootType,
8967     const VkImageCompressionPropertiesEXT* forMarshaling, uint8_t** ptr) {
8968     (void)vkStream;
8969     (void)rootType;
8970     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8971     *ptr += sizeof(VkStructureType);
8972     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8973         rootType = forMarshaling->sType;
8974     }
8975     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8976     memcpy(*ptr, (VkImageCompressionFlagsEXT*)&forMarshaling->imageCompressionFlags,
8977            sizeof(VkImageCompressionFlagsEXT));
8978     *ptr += sizeof(VkImageCompressionFlagsEXT);
8979     memcpy(*ptr,
8980            (VkImageCompressionFixedRateFlagsEXT*)&forMarshaling->imageCompressionFixedRateFlags,
8981            sizeof(VkImageCompressionFixedRateFlagsEXT));
8982     *ptr += sizeof(VkImageCompressionFixedRateFlagsEXT);
8983 }
8984 
8985 #endif
8986 #ifdef VK_EXT_4444_formats
reservedmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevice4444FormatsFeaturesEXT * forMarshaling,uint8_t ** ptr)8987 void reservedmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
8988     VulkanStreamGuest* vkStream, VkStructureType rootType,
8989     const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling, uint8_t** ptr) {
8990     (void)vkStream;
8991     (void)rootType;
8992     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8993     *ptr += sizeof(VkStructureType);
8994     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8995         rootType = forMarshaling->sType;
8996     }
8997     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
8998     memcpy(*ptr, (VkBool32*)&forMarshaling->formatA4R4G4B4, sizeof(VkBool32));
8999     *ptr += sizeof(VkBool32);
9000     memcpy(*ptr, (VkBool32*)&forMarshaling->formatA4B4G4R4, sizeof(VkBool32));
9001     *ptr += sizeof(VkBool32);
9002 }
9003 
9004 #endif
9005 #ifdef VK_EXT_primitive_topology_list_restart
reservedmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forMarshaling,uint8_t ** ptr)9006 void reservedmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
9007     VulkanStreamGuest* vkStream, VkStructureType rootType,
9008     const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling, uint8_t** ptr) {
9009     (void)vkStream;
9010     (void)rootType;
9011     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9012     *ptr += sizeof(VkStructureType);
9013     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9014         rootType = forMarshaling->sType;
9015     }
9016     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9017     memcpy(*ptr, (VkBool32*)&forMarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
9018     *ptr += sizeof(VkBool32);
9019     memcpy(*ptr, (VkBool32*)&forMarshaling->primitiveTopologyPatchListRestart, sizeof(VkBool32));
9020     *ptr += sizeof(VkBool32);
9021 }
9022 
9023 #endif
9024 #ifdef VK_EXT_extended_dynamic_state2
reservedmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forMarshaling,uint8_t ** ptr)9025 void reservedmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
9026     VulkanStreamGuest* vkStream, VkStructureType rootType,
9027     const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling, uint8_t** ptr) {
9028     (void)vkStream;
9029     (void)rootType;
9030     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9031     *ptr += sizeof(VkStructureType);
9032     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9033         rootType = forMarshaling->sType;
9034     }
9035     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9036     memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState2, sizeof(VkBool32));
9037     *ptr += sizeof(VkBool32);
9038     memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
9039     *ptr += sizeof(VkBool32);
9040     memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState2PatchControlPoints,
9041            sizeof(VkBool32));
9042     *ptr += sizeof(VkBool32);
9043 }
9044 
9045 #endif
9046 #ifdef VK_EXT_color_write_enable
reservedmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceColorWriteEnableFeaturesEXT * forMarshaling,uint8_t ** ptr)9047 void reservedmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
9048     VulkanStreamGuest* vkStream, VkStructureType rootType,
9049     const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling, uint8_t** ptr) {
9050     (void)vkStream;
9051     (void)rootType;
9052     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9053     *ptr += sizeof(VkStructureType);
9054     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9055         rootType = forMarshaling->sType;
9056     }
9057     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9058     memcpy(*ptr, (VkBool32*)&forMarshaling->colorWriteEnable, sizeof(VkBool32));
9059     *ptr += sizeof(VkBool32);
9060 }
9061 
reservedmarshal_VkPipelineColorWriteCreateInfoEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPipelineColorWriteCreateInfoEXT * forMarshaling,uint8_t ** ptr)9062 void reservedmarshal_VkPipelineColorWriteCreateInfoEXT(
9063     VulkanStreamGuest* vkStream, VkStructureType rootType,
9064     const VkPipelineColorWriteCreateInfoEXT* forMarshaling, uint8_t** ptr) {
9065     (void)vkStream;
9066     (void)rootType;
9067     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9068     *ptr += sizeof(VkStructureType);
9069     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9070         rootType = forMarshaling->sType;
9071     }
9072     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9073     memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
9074     *ptr += sizeof(uint32_t);
9075     memcpy(*ptr, (const VkBool32*)forMarshaling->pColorWriteEnables,
9076            forMarshaling->attachmentCount * sizeof(const VkBool32));
9077     *ptr += forMarshaling->attachmentCount * sizeof(const VkBool32);
9078 }
9079 
9080 #endif
9081 #ifdef VK_GOOGLE_gfxstream
reservedmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportColorBufferGOOGLE * forMarshaling,uint8_t ** ptr)9082 void reservedmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest* vkStream,
9083                                                VkStructureType rootType,
9084                                                const VkImportColorBufferGOOGLE* forMarshaling,
9085                                                uint8_t** ptr) {
9086     (void)vkStream;
9087     (void)rootType;
9088     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9089     *ptr += sizeof(VkStructureType);
9090     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9091         rootType = forMarshaling->sType;
9092     }
9093     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9094     memcpy(*ptr, (uint32_t*)&forMarshaling->colorBuffer, sizeof(uint32_t));
9095     *ptr += sizeof(uint32_t);
9096 }
9097 
reservedmarshal_VkImportBufferGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkImportBufferGOOGLE * forMarshaling,uint8_t ** ptr)9098 void reservedmarshal_VkImportBufferGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
9099                                           const VkImportBufferGOOGLE* forMarshaling,
9100                                           uint8_t** ptr) {
9101     (void)vkStream;
9102     (void)rootType;
9103     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9104     *ptr += sizeof(VkStructureType);
9105     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9106         rootType = forMarshaling->sType;
9107     }
9108     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9109     memcpy(*ptr, (uint32_t*)&forMarshaling->buffer, sizeof(uint32_t));
9110     *ptr += sizeof(uint32_t);
9111 }
9112 
reservedmarshal_VkCreateBlobGOOGLE(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkCreateBlobGOOGLE * forMarshaling,uint8_t ** ptr)9113 void reservedmarshal_VkCreateBlobGOOGLE(VulkanStreamGuest* vkStream, VkStructureType rootType,
9114                                         const VkCreateBlobGOOGLE* forMarshaling, uint8_t** ptr) {
9115     (void)vkStream;
9116     (void)rootType;
9117     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9118     *ptr += sizeof(VkStructureType);
9119     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9120         rootType = forMarshaling->sType;
9121     }
9122     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9123     memcpy(*ptr, (uint32_t*)&forMarshaling->blobMem, sizeof(uint32_t));
9124     *ptr += sizeof(uint32_t);
9125     memcpy(*ptr, (uint32_t*)&forMarshaling->blobFlags, sizeof(uint32_t));
9126     *ptr += sizeof(uint32_t);
9127     memcpy(*ptr, (uint64_t*)&forMarshaling->blobId, sizeof(uint64_t));
9128     *ptr += sizeof(uint64_t);
9129 }
9130 
9131 #endif
9132 #ifdef VK_EXT_image_compression_control_swapchain
reservedmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStreamGuest * vkStream,VkStructureType rootType,const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forMarshaling,uint8_t ** ptr)9133 void reservedmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
9134     VulkanStreamGuest* vkStream, VkStructureType rootType,
9135     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forMarshaling,
9136     uint8_t** ptr) {
9137     (void)vkStream;
9138     (void)rootType;
9139     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9140     *ptr += sizeof(VkStructureType);
9141     if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9142         rootType = forMarshaling->sType;
9143     }
9144     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
9145     memcpy(*ptr, (VkBool32*)&forMarshaling->imageCompressionControlSwapchain, sizeof(VkBool32));
9146     *ptr += sizeof(VkBool32);
9147 }
9148 
9149 #endif
reservedmarshal_extension_struct(VulkanStreamGuest * vkStream,VkStructureType rootType,const void * structExtension,uint8_t ** ptr)9150 void reservedmarshal_extension_struct(VulkanStreamGuest* vkStream, VkStructureType rootType,
9151                                       const void* structExtension, uint8_t** ptr) {
9152     VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension);
9153     uint32_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
9154         vkStream->getFeatureBits(), rootType, structExtension);
9155     if (!currExtSize && structExtension) {
9156         // unknown struct extension; skip and call on its pNext field
9157         reservedmarshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext, ptr);
9158         return;
9159     } else {
9160         // known or null extension struct
9161         memcpy(*ptr, &currExtSize, sizeof(uint32_t));
9162         ;
9163         gfxstream::aemu::Stream::toBe32((uint8_t*)*ptr);
9164         *ptr += sizeof(uint32_t);
9165         if (!currExtSize) {
9166             // exit if this was a null extension struct (size == 0 in this branch)
9167             return;
9168         }
9169     }
9170     memcpy(*ptr, structExtension, sizeof(VkStructureType));
9171     *ptr += sizeof(VkStructureType);
9172     if (!structExtension) {
9173         return;
9174     }
9175     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
9176     switch (structType) {
9177 #ifdef VK_VERSION_1_0
9178         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
9179             reservedmarshal_VkShaderModuleCreateInfo(
9180                 vkStream, rootType,
9181                 reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension), ptr);
9182             break;
9183         }
9184         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
9185             reservedmarshal_VkPipelineLayoutCreateInfo(
9186                 vkStream, rootType,
9187                 reinterpret_cast<const VkPipelineLayoutCreateInfo*>(structExtension), ptr);
9188             break;
9189         }
9190 #endif
9191 #ifdef VK_VERSION_1_1
9192         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
9193             reservedmarshal_VkPhysicalDeviceSubgroupProperties(
9194                 vkStream, rootType,
9195                 reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension), ptr);
9196             break;
9197         }
9198         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
9199             reservedmarshal_VkPhysicalDevice16BitStorageFeatures(
9200                 vkStream, rootType,
9201                 reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension),
9202                 ptr);
9203             break;
9204         }
9205         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
9206             reservedmarshal_VkMemoryDedicatedRequirements(
9207                 vkStream, rootType,
9208                 reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension), ptr);
9209             break;
9210         }
9211         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
9212             reservedmarshal_VkMemoryDedicatedAllocateInfo(
9213                 vkStream, rootType,
9214                 reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension), ptr);
9215             break;
9216         }
9217         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
9218             reservedmarshal_VkMemoryAllocateFlagsInfo(
9219                 vkStream, rootType,
9220                 reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension), ptr);
9221             break;
9222         }
9223         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
9224             reservedmarshal_VkDeviceGroupRenderPassBeginInfo(
9225                 vkStream, rootType,
9226                 reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension), ptr);
9227             break;
9228         }
9229         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
9230             reservedmarshal_VkDeviceGroupCommandBufferBeginInfo(
9231                 vkStream, rootType,
9232                 reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension), ptr);
9233             break;
9234         }
9235         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
9236             reservedmarshal_VkDeviceGroupSubmitInfo(
9237                 vkStream, rootType,
9238                 reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension), ptr);
9239             break;
9240         }
9241         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
9242             reservedmarshal_VkDeviceGroupBindSparseInfo(
9243                 vkStream, rootType,
9244                 reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension), ptr);
9245             break;
9246         }
9247         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
9248             reservedmarshal_VkBindBufferMemoryDeviceGroupInfo(
9249                 vkStream, rootType,
9250                 reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension), ptr);
9251             break;
9252         }
9253         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
9254             reservedmarshal_VkBindImageMemoryDeviceGroupInfo(
9255                 vkStream, rootType,
9256                 reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension), ptr);
9257             break;
9258         }
9259         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
9260             reservedmarshal_VkDeviceGroupDeviceCreateInfo(
9261                 vkStream, rootType,
9262                 reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension), ptr);
9263             break;
9264         }
9265         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
9266             reservedmarshal_VkPhysicalDeviceFeatures2(
9267                 vkStream, rootType,
9268                 reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension), ptr);
9269             break;
9270         }
9271         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
9272             reservedmarshal_VkPhysicalDevicePointClippingProperties(
9273                 vkStream, rootType,
9274                 reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension),
9275                 ptr);
9276             break;
9277         }
9278         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
9279             reservedmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
9280                 vkStream, rootType,
9281                 reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
9282                     structExtension),
9283                 ptr);
9284             break;
9285         }
9286         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
9287             reservedmarshal_VkImageViewUsageCreateInfo(
9288                 vkStream, rootType,
9289                 reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension), ptr);
9290             break;
9291         }
9292         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
9293             reservedmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
9294                 vkStream, rootType,
9295                 reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
9296                     structExtension),
9297                 ptr);
9298             break;
9299         }
9300         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
9301             reservedmarshal_VkRenderPassMultiviewCreateInfo(
9302                 vkStream, rootType,
9303                 reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension), ptr);
9304             break;
9305         }
9306         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
9307             reservedmarshal_VkPhysicalDeviceMultiviewFeatures(
9308                 vkStream, rootType,
9309                 reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension), ptr);
9310             break;
9311         }
9312         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
9313             reservedmarshal_VkPhysicalDeviceMultiviewProperties(
9314                 vkStream, rootType,
9315                 reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension), ptr);
9316             break;
9317         }
9318         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
9319             reservedmarshal_VkPhysicalDeviceVariablePointersFeatures(
9320                 vkStream, rootType,
9321                 reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension),
9322                 ptr);
9323             break;
9324         }
9325         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
9326             reservedmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
9327                 vkStream, rootType,
9328                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension),
9329                 ptr);
9330             break;
9331         }
9332         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
9333             reservedmarshal_VkPhysicalDeviceProtectedMemoryProperties(
9334                 vkStream, rootType,
9335                 reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension),
9336                 ptr);
9337             break;
9338         }
9339         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
9340             reservedmarshal_VkProtectedSubmitInfo(
9341                 vkStream, rootType, reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension),
9342                 ptr);
9343             break;
9344         }
9345         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
9346             reservedmarshal_VkSamplerYcbcrConversionInfo(
9347                 vkStream, rootType,
9348                 reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension), ptr);
9349             break;
9350         }
9351         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
9352             reservedmarshal_VkBindImagePlaneMemoryInfo(
9353                 vkStream, rootType,
9354                 reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension), ptr);
9355             break;
9356         }
9357         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
9358             reservedmarshal_VkImagePlaneMemoryRequirementsInfo(
9359                 vkStream, rootType,
9360                 reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension), ptr);
9361             break;
9362         }
9363         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
9364             reservedmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
9365                 vkStream, rootType,
9366                 reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
9367                     structExtension),
9368                 ptr);
9369             break;
9370         }
9371         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
9372             reservedmarshal_VkSamplerYcbcrConversionImageFormatProperties(
9373                 vkStream, rootType,
9374                 reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
9375                     structExtension),
9376                 ptr);
9377             break;
9378         }
9379         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
9380             reservedmarshal_VkPhysicalDeviceExternalImageFormatInfo(
9381                 vkStream, rootType,
9382                 reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension),
9383                 ptr);
9384             break;
9385         }
9386         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
9387             reservedmarshal_VkExternalImageFormatProperties(
9388                 vkStream, rootType,
9389                 reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension), ptr);
9390             break;
9391         }
9392         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
9393             reservedmarshal_VkPhysicalDeviceIDProperties(
9394                 vkStream, rootType,
9395                 reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension), ptr);
9396             break;
9397         }
9398         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
9399             reservedmarshal_VkExternalMemoryImageCreateInfo(
9400                 vkStream, rootType,
9401                 reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension), ptr);
9402             break;
9403         }
9404         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
9405             reservedmarshal_VkExternalMemoryBufferCreateInfo(
9406                 vkStream, rootType,
9407                 reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension), ptr);
9408             break;
9409         }
9410         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
9411             reservedmarshal_VkExportMemoryAllocateInfo(
9412                 vkStream, rootType,
9413                 reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension), ptr);
9414             break;
9415         }
9416         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
9417             reservedmarshal_VkExportFenceCreateInfo(
9418                 vkStream, rootType,
9419                 reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension), ptr);
9420             break;
9421         }
9422         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
9423             reservedmarshal_VkExportSemaphoreCreateInfo(
9424                 vkStream, rootType,
9425                 reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension), ptr);
9426             break;
9427         }
9428         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
9429             reservedmarshal_VkPhysicalDeviceMaintenance3Properties(
9430                 vkStream, rootType,
9431                 reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension),
9432                 ptr);
9433             break;
9434         }
9435         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
9436             reservedmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
9437                 vkStream, rootType,
9438                 reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
9439                     structExtension),
9440                 ptr);
9441             break;
9442         }
9443 #endif
9444 #ifdef VK_VERSION_1_2
9445         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
9446             reservedmarshal_VkPhysicalDeviceVulkan11Features(
9447                 vkStream, rootType,
9448                 reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension), ptr);
9449             break;
9450         }
9451         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
9452             reservedmarshal_VkPhysicalDeviceVulkan11Properties(
9453                 vkStream, rootType,
9454                 reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension), ptr);
9455             break;
9456         }
9457         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
9458             reservedmarshal_VkPhysicalDeviceVulkan12Features(
9459                 vkStream, rootType,
9460                 reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension), ptr);
9461             break;
9462         }
9463         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
9464             reservedmarshal_VkPhysicalDeviceVulkan12Properties(
9465                 vkStream, rootType,
9466                 reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension), ptr);
9467             break;
9468         }
9469         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
9470             reservedmarshal_VkImageFormatListCreateInfo(
9471                 vkStream, rootType,
9472                 reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension), ptr);
9473             break;
9474         }
9475         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
9476             reservedmarshal_VkPhysicalDevice8BitStorageFeatures(
9477                 vkStream, rootType,
9478                 reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension), ptr);
9479             break;
9480         }
9481         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
9482             reservedmarshal_VkPhysicalDeviceDriverProperties(
9483                 vkStream, rootType,
9484                 reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension), ptr);
9485             break;
9486         }
9487         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
9488             reservedmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
9489                 vkStream, rootType,
9490                 reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension),
9491                 ptr);
9492             break;
9493         }
9494         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
9495             reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
9496                 vkStream, rootType,
9497                 reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension),
9498                 ptr);
9499             break;
9500         }
9501         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
9502             reservedmarshal_VkPhysicalDeviceFloatControlsProperties(
9503                 vkStream, rootType,
9504                 reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension),
9505                 ptr);
9506             break;
9507         }
9508         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
9509             reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
9510                 vkStream, rootType,
9511                 reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
9512                     structExtension),
9513                 ptr);
9514             break;
9515         }
9516         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
9517             reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
9518                 vkStream, rootType,
9519                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
9520                     structExtension),
9521                 ptr);
9522             break;
9523         }
9524         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
9525             reservedmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
9526                 vkStream, rootType,
9527                 reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
9528                     structExtension),
9529                 ptr);
9530             break;
9531         }
9532         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
9533             reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
9534                 vkStream, rootType,
9535                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
9536                     structExtension),
9537                 ptr);
9538             break;
9539         }
9540         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
9541             reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
9542                 vkStream, rootType,
9543                 reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
9544                     structExtension),
9545                 ptr);
9546             break;
9547         }
9548         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
9549             reservedmarshal_VkSubpassDescriptionDepthStencilResolve(
9550                 vkStream, rootType,
9551                 reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension),
9552                 ptr);
9553             break;
9554         }
9555         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
9556             reservedmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
9557                 vkStream, rootType,
9558                 reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
9559                     structExtension),
9560                 ptr);
9561             break;
9562         }
9563         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
9564             reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
9565                 vkStream, rootType,
9566                 reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension),
9567                 ptr);
9568             break;
9569         }
9570         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
9571             reservedmarshal_VkImageStencilUsageCreateInfo(
9572                 vkStream, rootType,
9573                 reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension), ptr);
9574             break;
9575         }
9576         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
9577             reservedmarshal_VkSamplerReductionModeCreateInfo(
9578                 vkStream, rootType,
9579                 reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension), ptr);
9580             break;
9581         }
9582         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
9583             reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
9584                 vkStream, rootType,
9585                 reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
9586                     structExtension),
9587                 ptr);
9588             break;
9589         }
9590         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
9591             reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
9592                 vkStream, rootType,
9593                 reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension),
9594                 ptr);
9595             break;
9596         }
9597         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
9598             reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
9599                 vkStream, rootType,
9600                 reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
9601                     structExtension),
9602                 ptr);
9603             break;
9604         }
9605         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
9606             reservedmarshal_VkFramebufferAttachmentsCreateInfo(
9607                 vkStream, rootType,
9608                 reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension), ptr);
9609             break;
9610         }
9611         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
9612             reservedmarshal_VkRenderPassAttachmentBeginInfo(
9613                 vkStream, rootType,
9614                 reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension), ptr);
9615             break;
9616         }
9617         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
9618             reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
9619                 vkStream, rootType,
9620                 reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
9621                     structExtension),
9622                 ptr);
9623             break;
9624         }
9625         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
9626             reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
9627                 vkStream, rootType,
9628                 reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
9629                     structExtension),
9630                 ptr);
9631             break;
9632         }
9633         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
9634             reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
9635                 vkStream, rootType,
9636                 reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
9637                     structExtension),
9638                 ptr);
9639             break;
9640         }
9641         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
9642             reservedmarshal_VkAttachmentReferenceStencilLayout(
9643                 vkStream, rootType,
9644                 reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension), ptr);
9645             break;
9646         }
9647         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
9648             reservedmarshal_VkAttachmentDescriptionStencilLayout(
9649                 vkStream, rootType,
9650                 reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension),
9651                 ptr);
9652             break;
9653         }
9654         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
9655             reservedmarshal_VkPhysicalDeviceHostQueryResetFeatures(
9656                 vkStream, rootType,
9657                 reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension),
9658                 ptr);
9659             break;
9660         }
9661         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
9662             reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
9663                 vkStream, rootType,
9664                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension),
9665                 ptr);
9666             break;
9667         }
9668         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
9669             reservedmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
9670                 vkStream, rootType,
9671                 reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
9672                     structExtension),
9673                 ptr);
9674             break;
9675         }
9676         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
9677             reservedmarshal_VkSemaphoreTypeCreateInfo(
9678                 vkStream, rootType,
9679                 reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension), ptr);
9680             break;
9681         }
9682         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
9683             reservedmarshal_VkTimelineSemaphoreSubmitInfo(
9684                 vkStream, rootType,
9685                 reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension), ptr);
9686             break;
9687         }
9688         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
9689             reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
9690                 vkStream, rootType,
9691                 reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
9692                     structExtension),
9693                 ptr);
9694             break;
9695         }
9696         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
9697             reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
9698                 vkStream, rootType,
9699                 reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension),
9700                 ptr);
9701             break;
9702         }
9703         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
9704             reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
9705                 vkStream, rootType,
9706                 reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension),
9707                 ptr);
9708             break;
9709         }
9710 #endif
9711 #ifdef VK_VERSION_1_3
9712         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
9713             reservedmarshal_VkPhysicalDeviceVulkan13Features(
9714                 vkStream, rootType,
9715                 reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension), ptr);
9716             break;
9717         }
9718         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
9719             reservedmarshal_VkPhysicalDeviceVulkan13Properties(
9720                 vkStream, rootType,
9721                 reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension), ptr);
9722             break;
9723         }
9724         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
9725             reservedmarshal_VkPipelineCreationFeedbackCreateInfo(
9726                 vkStream, rootType,
9727                 reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension),
9728                 ptr);
9729             break;
9730         }
9731         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
9732             reservedmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
9733                 vkStream, rootType,
9734                 reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
9735                     structExtension),
9736                 ptr);
9737             break;
9738         }
9739         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
9740             reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
9741                 vkStream, rootType,
9742                 reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
9743                     structExtension),
9744                 ptr);
9745             break;
9746         }
9747         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
9748             reservedmarshal_VkPhysicalDevicePrivateDataFeatures(
9749                 vkStream, rootType,
9750                 reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension), ptr);
9751             break;
9752         }
9753         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
9754             reservedmarshal_VkDevicePrivateDataCreateInfo(
9755                 vkStream, rootType,
9756                 reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension), ptr);
9757             break;
9758         }
9759         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
9760             reservedmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
9761                 vkStream, rootType,
9762                 reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
9763                     structExtension),
9764                 ptr);
9765             break;
9766         }
9767         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
9768             reservedmarshal_VkMemoryBarrier2(
9769                 vkStream, rootType, reinterpret_cast<const VkMemoryBarrier2*>(structExtension),
9770                 ptr);
9771             break;
9772         }
9773         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
9774             reservedmarshal_VkPhysicalDeviceSynchronization2Features(
9775                 vkStream, rootType,
9776                 reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension),
9777                 ptr);
9778             break;
9779         }
9780         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
9781             reservedmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
9782                 vkStream, rootType,
9783                 reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
9784                     structExtension),
9785                 ptr);
9786             break;
9787         }
9788         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
9789             reservedmarshal_VkPhysicalDeviceImageRobustnessFeatures(
9790                 vkStream, rootType,
9791                 reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension),
9792                 ptr);
9793             break;
9794         }
9795         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
9796             reservedmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
9797                 vkStream, rootType,
9798                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
9799                     structExtension),
9800                 ptr);
9801             break;
9802         }
9803         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
9804             reservedmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
9805                 vkStream, rootType,
9806                 reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
9807                     structExtension),
9808                 ptr);
9809             break;
9810         }
9811         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
9812             reservedmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
9813                 vkStream, rootType,
9814                 reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
9815                     structExtension),
9816                 ptr);
9817             break;
9818         }
9819         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
9820             reservedmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
9821                 vkStream, rootType,
9822                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
9823                     structExtension),
9824                 ptr);
9825             break;
9826         }
9827         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
9828             reservedmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
9829                 vkStream, rootType,
9830                 reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
9831                     structExtension),
9832                 ptr);
9833             break;
9834         }
9835         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
9836             reservedmarshal_VkWriteDescriptorSetInlineUniformBlock(
9837                 vkStream, rootType,
9838                 reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension),
9839                 ptr);
9840             break;
9841         }
9842         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
9843             reservedmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
9844                 vkStream, rootType,
9845                 reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
9846                     structExtension),
9847                 ptr);
9848             break;
9849         }
9850         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
9851             reservedmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
9852                 vkStream, rootType,
9853                 reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
9854                     structExtension),
9855                 ptr);
9856             break;
9857         }
9858         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
9859             reservedmarshal_VkPipelineRenderingCreateInfo(
9860                 vkStream, rootType,
9861                 reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension), ptr);
9862             break;
9863         }
9864         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
9865             reservedmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
9866                 vkStream, rootType,
9867                 reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension),
9868                 ptr);
9869             break;
9870         }
9871         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
9872             reservedmarshal_VkCommandBufferInheritanceRenderingInfo(
9873                 vkStream, rootType,
9874                 reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension),
9875                 ptr);
9876             break;
9877         }
9878         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
9879             reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
9880                 vkStream, rootType,
9881                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
9882                     structExtension),
9883                 ptr);
9884             break;
9885         }
9886         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
9887             reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
9888                 vkStream, rootType,
9889                 reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
9890                     structExtension),
9891                 ptr);
9892             break;
9893         }
9894         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
9895             reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
9896                 vkStream, rootType,
9897                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
9898                     structExtension),
9899                 ptr);
9900             break;
9901         }
9902         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
9903             reservedmarshal_VkFormatProperties3(
9904                 vkStream, rootType, reinterpret_cast<const VkFormatProperties3*>(structExtension),
9905                 ptr);
9906             break;
9907         }
9908         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
9909             reservedmarshal_VkPhysicalDeviceMaintenance4Features(
9910                 vkStream, rootType,
9911                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension),
9912                 ptr);
9913             break;
9914         }
9915         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
9916             reservedmarshal_VkPhysicalDeviceMaintenance4Properties(
9917                 vkStream, rootType,
9918                 reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension),
9919                 ptr);
9920             break;
9921         }
9922 #endif
9923 #ifdef VK_KHR_dynamic_rendering
9924         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
9925             reservedmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
9926                 vkStream, rootType,
9927                 reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
9928                     structExtension),
9929                 ptr);
9930             break;
9931         }
9932         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
9933             reservedmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
9934                 vkStream, rootType,
9935                 reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
9936                     structExtension),
9937                 ptr);
9938             break;
9939         }
9940         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
9941             reservedmarshal_VkAttachmentSampleCountInfoAMD(
9942                 vkStream, rootType,
9943                 reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension), ptr);
9944             break;
9945         }
9946         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
9947             reservedmarshal_VkMultiviewPerViewAttributesInfoNVX(
9948                 vkStream, rootType,
9949                 reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension), ptr);
9950             break;
9951         }
9952 #endif
9953 #ifdef VK_KHR_incremental_present
9954         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
9955             reservedmarshal_VkPresentRegionsKHR(
9956                 vkStream, rootType, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension),
9957                 ptr);
9958             break;
9959         }
9960 #endif
9961 #ifdef VK_KHR_pipeline_executable_properties
9962         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
9963             reservedmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
9964                 vkStream, rootType,
9965                 reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
9966                     structExtension),
9967                 ptr);
9968             break;
9969         }
9970 #endif
9971 #ifdef VK_KHR_synchronization2
9972         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
9973             reservedmarshal_VkQueueFamilyCheckpointProperties2NV(
9974                 vkStream, rootType,
9975                 reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension),
9976                 ptr);
9977             break;
9978         }
9979 #endif
9980 #ifdef VK_KHR_maintenance5
9981         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
9982             reservedmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
9983                 vkStream, rootType,
9984                 reinterpret_cast<const VkPhysicalDeviceMaintenance5FeaturesKHR*>(structExtension),
9985                 ptr);
9986             break;
9987         }
9988         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
9989             reservedmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
9990                 vkStream, rootType,
9991                 reinterpret_cast<const VkPhysicalDeviceMaintenance5PropertiesKHR*>(structExtension),
9992                 ptr);
9993             break;
9994         }
9995         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
9996             reservedmarshal_VkPipelineCreateFlags2CreateInfoKHR(
9997                 vkStream, rootType,
9998                 reinterpret_cast<const VkPipelineCreateFlags2CreateInfoKHR*>(structExtension), ptr);
9999             break;
10000         }
10001         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
10002             reservedmarshal_VkBufferUsageFlags2CreateInfoKHR(
10003                 vkStream, rootType,
10004                 reinterpret_cast<const VkBufferUsageFlags2CreateInfoKHR*>(structExtension), ptr);
10005             break;
10006         }
10007 #endif
10008 #ifdef VK_KHR_line_rasterization
10009         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
10010             reservedmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
10011                 vkStream, rootType,
10012                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesKHR*>(
10013                     structExtension),
10014                 ptr);
10015             break;
10016         }
10017         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
10018             reservedmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
10019                 vkStream, rootType,
10020                 reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesKHR*>(
10021                     structExtension),
10022                 ptr);
10023             break;
10024         }
10025         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
10026             reservedmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(
10027                 vkStream, rootType,
10028                 reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoKHR*>(
10029                     structExtension),
10030                 ptr);
10031             break;
10032         }
10033 #endif
10034 #ifdef VK_ANDROID_native_buffer
10035         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
10036             reservedmarshal_VkNativeBufferANDROID(
10037                 vkStream, rootType, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension),
10038                 ptr);
10039             break;
10040         }
10041 #endif
10042 #ifdef VK_EXT_transform_feedback
10043         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
10044             reservedmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
10045                 vkStream, rootType,
10046                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
10047                     structExtension),
10048                 ptr);
10049             break;
10050         }
10051         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
10052             reservedmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
10053                 vkStream, rootType,
10054                 reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
10055                     structExtension),
10056                 ptr);
10057             break;
10058         }
10059         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
10060             reservedmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
10061                 vkStream, rootType,
10062                 reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
10063                     structExtension),
10064                 ptr);
10065             break;
10066         }
10067 #endif
10068 #ifdef VK_EXT_depth_clip_enable
10069         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
10070             reservedmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
10071                 vkStream, rootType,
10072                 reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(
10073                     structExtension),
10074                 ptr);
10075             break;
10076         }
10077         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
10078             reservedmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
10079                 vkStream, rootType,
10080                 reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
10081                     structExtension),
10082                 ptr);
10083             break;
10084         }
10085 #endif
10086 #ifdef VK_EXT_image_drm_format_modifier
10087         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
10088             reservedmarshal_VkDrmFormatModifierPropertiesListEXT(
10089                 vkStream, rootType,
10090                 reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension),
10091                 ptr);
10092             break;
10093         }
10094         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
10095             reservedmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
10096                 vkStream, rootType,
10097                 reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
10098                     structExtension),
10099                 ptr);
10100             break;
10101         }
10102         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
10103             reservedmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
10104                 vkStream, rootType,
10105                 reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension),
10106                 ptr);
10107             break;
10108         }
10109         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
10110             reservedmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
10111                 vkStream, rootType,
10112                 reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
10113                     structExtension),
10114                 ptr);
10115             break;
10116         }
10117         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
10118             reservedmarshal_VkDrmFormatModifierPropertiesList2EXT(
10119                 vkStream, rootType,
10120                 reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension),
10121                 ptr);
10122             break;
10123         }
10124 #endif
10125 #ifdef VK_EXT_vertex_attribute_divisor
10126         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
10127             reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
10128                 vkStream, rootType,
10129                 reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
10130                     structExtension),
10131                 ptr);
10132             break;
10133         }
10134 #endif
10135 #ifdef VK_EXT_fragment_density_map
10136         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
10137             switch (rootType) {
10138                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
10139                     reservedmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
10140                         vkStream, rootType,
10141                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
10142                             structExtension),
10143                         ptr);
10144                     break;
10145                 }
10146                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
10147                     reservedmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
10148                         vkStream, rootType,
10149                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
10150                             structExtension),
10151                         ptr);
10152                     break;
10153                 }
10154                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
10155                     reservedmarshal_VkImportColorBufferGOOGLE(
10156                         vkStream, rootType,
10157                         reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), ptr);
10158                     break;
10159                 }
10160                 default: {
10161                     reservedmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
10162                         vkStream, rootType,
10163                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
10164                             structExtension),
10165                         ptr);
10166                     break;
10167                 }
10168             }
10169             break;
10170         }
10171         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
10172             switch (rootType) {
10173                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
10174                     reservedmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
10175                         vkStream, rootType,
10176                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
10177                             structExtension),
10178                         ptr);
10179                     break;
10180                 }
10181                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
10182                     reservedmarshal_VkCreateBlobGOOGLE(
10183                         vkStream, rootType,
10184                         reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension), ptr);
10185                     break;
10186                 }
10187                 default: {
10188                     reservedmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
10189                         vkStream, rootType,
10190                         reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
10191                             structExtension),
10192                         ptr);
10193                     break;
10194                 }
10195             }
10196             break;
10197         }
10198         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
10199             switch (rootType) {
10200                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
10201                     reservedmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
10202                         vkStream, rootType,
10203                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
10204                             structExtension),
10205                         ptr);
10206                     break;
10207                 }
10208                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
10209                     reservedmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
10210                         vkStream, rootType,
10211                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
10212                             structExtension),
10213                         ptr);
10214                     break;
10215                 }
10216                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
10217                     reservedmarshal_VkImportBufferGOOGLE(
10218                         vkStream, rootType,
10219                         reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension), ptr);
10220                     break;
10221                 }
10222                 default: {
10223                     reservedmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
10224                         vkStream, rootType,
10225                         reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>(
10226                             structExtension),
10227                         ptr);
10228                     break;
10229                 }
10230             }
10231             break;
10232         }
10233 #endif
10234 #ifdef VK_EXT_provoking_vertex
10235         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
10236             reservedmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
10237                 vkStream, rootType,
10238                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
10239                     structExtension),
10240                 ptr);
10241             break;
10242         }
10243         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
10244             reservedmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
10245                 vkStream, rootType,
10246                 reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
10247                     structExtension),
10248                 ptr);
10249             break;
10250         }
10251         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
10252             reservedmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
10253                 vkStream, rootType,
10254                 reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
10255                     structExtension),
10256                 ptr);
10257             break;
10258         }
10259 #endif
10260 #ifdef VK_EXT_extended_dynamic_state
10261         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
10262             reservedmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
10263                 vkStream, rootType,
10264                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
10265                     structExtension),
10266                 ptr);
10267             break;
10268         }
10269 #endif
10270 #ifdef VK_EXT_host_image_copy
10271         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
10272             reservedmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
10273                 vkStream, rootType,
10274                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT*>(structExtension),
10275                 ptr);
10276             break;
10277         }
10278         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
10279             reservedmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
10280                 vkStream, rootType,
10281                 reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT*>(
10282                     structExtension),
10283                 ptr);
10284             break;
10285         }
10286         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
10287             reservedmarshal_VkSubresourceHostMemcpySizeEXT(
10288                 vkStream, rootType,
10289                 reinterpret_cast<const VkSubresourceHostMemcpySizeEXT*>(structExtension), ptr);
10290             break;
10291         }
10292         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
10293             reservedmarshal_VkHostImageCopyDevicePerformanceQueryEXT(
10294                 vkStream, rootType,
10295                 reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT*>(structExtension),
10296                 ptr);
10297             break;
10298         }
10299 #endif
10300 #ifdef VK_EXT_texel_buffer_alignment
10301         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
10302             reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
10303                 vkStream, rootType,
10304                 reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
10305                     structExtension),
10306                 ptr);
10307             break;
10308         }
10309 #endif
10310 #ifdef VK_EXT_device_memory_report
10311         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
10312             reservedmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
10313                 vkStream, rootType,
10314                 reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
10315                     structExtension),
10316                 ptr);
10317             break;
10318         }
10319         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
10320             reservedmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
10321                 vkStream, rootType,
10322                 reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension),
10323                 ptr);
10324             break;
10325         }
10326 #endif
10327 #ifdef VK_EXT_robustness2
10328         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
10329             reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
10330                 vkStream, rootType,
10331                 reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension),
10332                 ptr);
10333             break;
10334         }
10335         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
10336             reservedmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
10337                 vkStream, rootType,
10338                 reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension),
10339                 ptr);
10340             break;
10341         }
10342 #endif
10343 #ifdef VK_EXT_custom_border_color
10344         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
10345             reservedmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
10346                 vkStream, rootType,
10347                 reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension),
10348                 ptr);
10349             break;
10350         }
10351         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
10352             reservedmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
10353                 vkStream, rootType,
10354                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
10355                     structExtension),
10356                 ptr);
10357             break;
10358         }
10359         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
10360             reservedmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
10361                 vkStream, rootType,
10362                 reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
10363                     structExtension),
10364                 ptr);
10365             break;
10366         }
10367 #endif
10368 #ifdef VK_EXT_graphics_pipeline_library
10369         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
10370             reservedmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
10371                 vkStream, rootType,
10372                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
10373                     structExtension),
10374                 ptr);
10375             break;
10376         }
10377         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
10378             reservedmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
10379                 vkStream, rootType,
10380                 reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
10381                     structExtension),
10382                 ptr);
10383             break;
10384         }
10385         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
10386             reservedmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
10387                 vkStream, rootType,
10388                 reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension),
10389                 ptr);
10390             break;
10391         }
10392 #endif
10393 #ifdef VK_EXT_ycbcr_2plane_444_formats
10394         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
10395             reservedmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
10396                 vkStream, rootType,
10397                 reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
10398                     structExtension),
10399                 ptr);
10400             break;
10401         }
10402 #endif
10403 #ifdef VK_EXT_image_compression_control
10404         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
10405             reservedmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
10406                 vkStream, rootType,
10407                 reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
10408                     structExtension),
10409                 ptr);
10410             break;
10411         }
10412         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
10413             reservedmarshal_VkImageCompressionControlEXT(
10414                 vkStream, rootType,
10415                 reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension), ptr);
10416             break;
10417         }
10418         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
10419             reservedmarshal_VkImageCompressionPropertiesEXT(
10420                 vkStream, rootType,
10421                 reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension), ptr);
10422             break;
10423         }
10424 #endif
10425 #ifdef VK_EXT_4444_formats
10426         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
10427             reservedmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
10428                 vkStream, rootType,
10429                 reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension),
10430                 ptr);
10431             break;
10432         }
10433 #endif
10434 #ifdef VK_EXT_primitive_topology_list_restart
10435         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
10436             reservedmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
10437                 vkStream, rootType,
10438                 reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
10439                     structExtension),
10440                 ptr);
10441             break;
10442         }
10443 #endif
10444 #ifdef VK_EXT_extended_dynamic_state2
10445         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
10446             reservedmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
10447                 vkStream, rootType,
10448                 reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
10449                     structExtension),
10450                 ptr);
10451             break;
10452         }
10453 #endif
10454 #ifdef VK_EXT_color_write_enable
10455         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
10456             reservedmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
10457                 vkStream, rootType,
10458                 reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(
10459                     structExtension),
10460                 ptr);
10461             break;
10462         }
10463         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
10464             reservedmarshal_VkPipelineColorWriteCreateInfoEXT(
10465                 vkStream, rootType,
10466                 reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension), ptr);
10467             break;
10468         }
10469 #endif
10470 #ifdef VK_GOOGLE_gfxstream
10471         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
10472             reservedmarshal_VkImportColorBufferGOOGLE(
10473                 vkStream, rootType,
10474                 reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), ptr);
10475             break;
10476         }
10477         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
10478             reservedmarshal_VkImportBufferGOOGLE(
10479                 vkStream, rootType, reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension),
10480                 ptr);
10481             break;
10482         }
10483         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
10484             reservedmarshal_VkCreateBlobGOOGLE(
10485                 vkStream, rootType, reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension),
10486                 ptr);
10487             break;
10488         }
10489 #endif
10490 #ifdef VK_EXT_image_compression_control_swapchain
10491         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
10492             reservedmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
10493                 vkStream, rootType,
10494                 reinterpret_cast<
10495                     const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
10496                     structExtension),
10497                 ptr);
10498             break;
10499         }
10500 #endif
10501         default: {
10502             // fatal; the switch is only taken if the extension struct is known
10503             abort();
10504         }
10505     }
10506 }
10507 
10508 }  // namespace vk
10509 }  // namespace gfxstream
10510