1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module goldfish_vk_marshaling_guest
17 // (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18 // Please do not modify directly;
19 // re-run android/scripts/generate-vulkan-sources.sh,
20 // or directly from Python by defining:
21 // VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
23 // python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24 
25 #include "goldfish_vk_marshaling_guest.h"
26 
27 
28 #include "goldfish_vk_extension_structs_guest.h"
29 #include "goldfish_vk_private_defs.h"
30 
31 
32 namespace goldfish_vk {
33 
34 void marshal_extension_struct(
35     VulkanStreamGuest* vkStream,
36     const void* structExtension);
37 
38 void unmarshal_extension_struct(
39     VulkanStreamGuest* vkStream,
40     void* structExtension_out);
41 
42 #ifdef VK_VERSION_1_0
marshal_VkApplicationInfo(VulkanStreamGuest * vkStream,const VkApplicationInfo * forMarshaling)43 void marshal_VkApplicationInfo(
44     VulkanStreamGuest* vkStream,
45     const VkApplicationInfo* forMarshaling)
46 {
47     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
48     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
49     vkStream->putBe32(pNext_size);
50     if (pNext_size)
51     {
52         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
53         marshal_extension_struct(vkStream, forMarshaling->pNext);
54     }
55     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
56     {
57         // WARNING PTR CHECK
58         uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationName;
59         vkStream->putBe64(cgen_var_0);
60         if (forMarshaling->pApplicationName)
61         {
62             vkStream->putString(forMarshaling->pApplicationName);
63         }
64     }
65     else
66     {
67         vkStream->putString(forMarshaling->pApplicationName);
68     }
69     vkStream->write((uint32_t*)&forMarshaling->applicationVersion, sizeof(uint32_t));
70     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
71     {
72         // WARNING PTR CHECK
73         uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
74         vkStream->putBe64(cgen_var_1);
75         if (forMarshaling->pEngineName)
76         {
77             vkStream->putString(forMarshaling->pEngineName);
78         }
79     }
80     else
81     {
82         vkStream->putString(forMarshaling->pEngineName);
83     }
84     vkStream->write((uint32_t*)&forMarshaling->engineVersion, sizeof(uint32_t));
85     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
86 }
87 
unmarshal_VkApplicationInfo(VulkanStreamGuest * vkStream,VkApplicationInfo * forUnmarshaling)88 void unmarshal_VkApplicationInfo(
89     VulkanStreamGuest* vkStream,
90     VkApplicationInfo* forUnmarshaling)
91 {
92     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
93     size_t pNext_size;
94     pNext_size = vkStream->getBe32();
95     if (pNext_size)
96     {
97         uint64_t pNext_placeholder;
98         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
99         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
100     }
101     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
102     {
103         // WARNING PTR CHECK
104         const char* check_pApplicationName;
105         check_pApplicationName = (const char*)(uintptr_t)vkStream->getBe64();
106         if (forUnmarshaling->pApplicationName)
107         {
108             if (!(check_pApplicationName))
109             {
110                 fprintf(stderr, "fatal: forUnmarshaling->pApplicationName inconsistent between guest and host\n");
111             }
112             vkStream->loadStringInPlace((char**)&forUnmarshaling->pApplicationName);
113         }
114     }
115     else
116     {
117         vkStream->loadStringInPlace((char**)&forUnmarshaling->pApplicationName);
118     }
119     vkStream->read((uint32_t*)&forUnmarshaling->applicationVersion, sizeof(uint32_t));
120     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
121     {
122         // WARNING PTR CHECK
123         const char* check_pEngineName;
124         check_pEngineName = (const char*)(uintptr_t)vkStream->getBe64();
125         if (forUnmarshaling->pEngineName)
126         {
127             if (!(check_pEngineName))
128             {
129                 fprintf(stderr, "fatal: forUnmarshaling->pEngineName inconsistent between guest and host\n");
130             }
131             vkStream->loadStringInPlace((char**)&forUnmarshaling->pEngineName);
132         }
133     }
134     else
135     {
136         vkStream->loadStringInPlace((char**)&forUnmarshaling->pEngineName);
137     }
138     vkStream->read((uint32_t*)&forUnmarshaling->engineVersion, sizeof(uint32_t));
139     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
140 }
141 
marshal_VkInstanceCreateInfo(VulkanStreamGuest * vkStream,const VkInstanceCreateInfo * forMarshaling)142 void marshal_VkInstanceCreateInfo(
143     VulkanStreamGuest* vkStream,
144     const VkInstanceCreateInfo* forMarshaling)
145 {
146     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
147     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
148     vkStream->putBe32(pNext_size);
149     if (pNext_size)
150     {
151         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
152         marshal_extension_struct(vkStream, forMarshaling->pNext);
153     }
154     vkStream->write((VkInstanceCreateFlags*)&forMarshaling->flags, sizeof(VkInstanceCreateFlags));
155     // WARNING PTR CHECK
156     uint64_t cgen_var_4 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
157     vkStream->putBe64(cgen_var_4);
158     if (forMarshaling->pApplicationInfo)
159     {
160         marshal_VkApplicationInfo(vkStream, (const VkApplicationInfo*)(forMarshaling->pApplicationInfo));
161     }
162     vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
163     saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
164     vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
165     saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames, forMarshaling->enabledExtensionCount);
166 }
167 
unmarshal_VkInstanceCreateInfo(VulkanStreamGuest * vkStream,VkInstanceCreateInfo * forUnmarshaling)168 void unmarshal_VkInstanceCreateInfo(
169     VulkanStreamGuest* vkStream,
170     VkInstanceCreateInfo* forUnmarshaling)
171 {
172     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
173     size_t pNext_size;
174     pNext_size = vkStream->getBe32();
175     if (pNext_size)
176     {
177         uint64_t pNext_placeholder;
178         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
179         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
180     }
181     vkStream->read((VkInstanceCreateFlags*)&forUnmarshaling->flags, sizeof(VkInstanceCreateFlags));
182     // WARNING PTR CHECK
183     const VkApplicationInfo* check_pApplicationInfo;
184     check_pApplicationInfo = (const VkApplicationInfo*)(uintptr_t)vkStream->getBe64();
185     if (forUnmarshaling->pApplicationInfo)
186     {
187         if (!(check_pApplicationInfo))
188         {
189             fprintf(stderr, "fatal: forUnmarshaling->pApplicationInfo inconsistent between guest and host\n");
190         }
191         unmarshal_VkApplicationInfo(vkStream, (VkApplicationInfo*)(forUnmarshaling->pApplicationInfo));
192     }
193     vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
194     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
195     vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
196     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
197 }
198 
marshal_VkAllocationCallbacks(VulkanStreamGuest * vkStream,const VkAllocationCallbacks * forMarshaling)199 void marshal_VkAllocationCallbacks(
200     VulkanStreamGuest* vkStream,
201     const VkAllocationCallbacks* forMarshaling)
202 {
203     // WARNING PTR CHECK
204     uint64_t cgen_var_6 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
205     vkStream->putBe64(cgen_var_6);
206     if (forMarshaling->pUserData)
207     {
208         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
209     }
210     uint64_t cgen_var_7 = (uint64_t)forMarshaling->pfnAllocation;
211     vkStream->putBe64(cgen_var_7);
212     uint64_t cgen_var_8 = (uint64_t)forMarshaling->pfnReallocation;
213     vkStream->putBe64(cgen_var_8);
214     uint64_t cgen_var_9 = (uint64_t)forMarshaling->pfnFree;
215     vkStream->putBe64(cgen_var_9);
216     uint64_t cgen_var_10 = (uint64_t)forMarshaling->pfnInternalAllocation;
217     vkStream->putBe64(cgen_var_10);
218     uint64_t cgen_var_11 = (uint64_t)forMarshaling->pfnInternalFree;
219     vkStream->putBe64(cgen_var_11);
220 }
221 
unmarshal_VkAllocationCallbacks(VulkanStreamGuest * vkStream,VkAllocationCallbacks * forUnmarshaling)222 void unmarshal_VkAllocationCallbacks(
223     VulkanStreamGuest* vkStream,
224     VkAllocationCallbacks* forUnmarshaling)
225 {
226     // WARNING PTR CHECK
227     void* check_pUserData;
228     check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
229     if (forUnmarshaling->pUserData)
230     {
231         if (!(check_pUserData))
232         {
233             fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
234         }
235         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
236     }
237     forUnmarshaling->pfnAllocation = (PFN_vkAllocationFunction)vkStream->getBe64();
238     forUnmarshaling->pfnReallocation = (PFN_vkReallocationFunction)vkStream->getBe64();
239     forUnmarshaling->pfnFree = (PFN_vkFreeFunction)vkStream->getBe64();
240     forUnmarshaling->pfnInternalAllocation = (PFN_vkInternalAllocationNotification)vkStream->getBe64();
241     forUnmarshaling->pfnInternalFree = (PFN_vkInternalFreeNotification)vkStream->getBe64();
242 }
243 
marshal_VkPhysicalDeviceFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceFeatures * forMarshaling)244 void marshal_VkPhysicalDeviceFeatures(
245     VulkanStreamGuest* vkStream,
246     const VkPhysicalDeviceFeatures* forMarshaling)
247 {
248     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess, sizeof(VkBool32));
249     vkStream->write((VkBool32*)&forMarshaling->fullDrawIndexUint32, sizeof(VkBool32));
250     vkStream->write((VkBool32*)&forMarshaling->imageCubeArray, sizeof(VkBool32));
251     vkStream->write((VkBool32*)&forMarshaling->independentBlend, sizeof(VkBool32));
252     vkStream->write((VkBool32*)&forMarshaling->geometryShader, sizeof(VkBool32));
253     vkStream->write((VkBool32*)&forMarshaling->tessellationShader, sizeof(VkBool32));
254     vkStream->write((VkBool32*)&forMarshaling->sampleRateShading, sizeof(VkBool32));
255     vkStream->write((VkBool32*)&forMarshaling->dualSrcBlend, sizeof(VkBool32));
256     vkStream->write((VkBool32*)&forMarshaling->logicOp, sizeof(VkBool32));
257     vkStream->write((VkBool32*)&forMarshaling->multiDrawIndirect, sizeof(VkBool32));
258     vkStream->write((VkBool32*)&forMarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
259     vkStream->write((VkBool32*)&forMarshaling->depthClamp, sizeof(VkBool32));
260     vkStream->write((VkBool32*)&forMarshaling->depthBiasClamp, sizeof(VkBool32));
261     vkStream->write((VkBool32*)&forMarshaling->fillModeNonSolid, sizeof(VkBool32));
262     vkStream->write((VkBool32*)&forMarshaling->depthBounds, sizeof(VkBool32));
263     vkStream->write((VkBool32*)&forMarshaling->wideLines, sizeof(VkBool32));
264     vkStream->write((VkBool32*)&forMarshaling->largePoints, sizeof(VkBool32));
265     vkStream->write((VkBool32*)&forMarshaling->alphaToOne, sizeof(VkBool32));
266     vkStream->write((VkBool32*)&forMarshaling->multiViewport, sizeof(VkBool32));
267     vkStream->write((VkBool32*)&forMarshaling->samplerAnisotropy, sizeof(VkBool32));
268     vkStream->write((VkBool32*)&forMarshaling->textureCompressionETC2, sizeof(VkBool32));
269     vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
270     vkStream->write((VkBool32*)&forMarshaling->textureCompressionBC, sizeof(VkBool32));
271     vkStream->write((VkBool32*)&forMarshaling->occlusionQueryPrecise, sizeof(VkBool32));
272     vkStream->write((VkBool32*)&forMarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
273     vkStream->write((VkBool32*)&forMarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
274     vkStream->write((VkBool32*)&forMarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
275     vkStream->write((VkBool32*)&forMarshaling->shaderTessellationAndGeometryPointSize, sizeof(VkBool32));
276     vkStream->write((VkBool32*)&forMarshaling->shaderImageGatherExtended, sizeof(VkBool32));
277     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageExtendedFormats, sizeof(VkBool32));
278     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
279     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageReadWithoutFormat, sizeof(VkBool32));
280     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageWriteWithoutFormat, sizeof(VkBool32));
281     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayDynamicIndexing, sizeof(VkBool32));
282     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayDynamicIndexing, sizeof(VkBool32));
283     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayDynamicIndexing, sizeof(VkBool32));
284     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayDynamicIndexing, sizeof(VkBool32));
285     vkStream->write((VkBool32*)&forMarshaling->shaderClipDistance, sizeof(VkBool32));
286     vkStream->write((VkBool32*)&forMarshaling->shaderCullDistance, sizeof(VkBool32));
287     vkStream->write((VkBool32*)&forMarshaling->shaderFloat64, sizeof(VkBool32));
288     vkStream->write((VkBool32*)&forMarshaling->shaderInt64, sizeof(VkBool32));
289     vkStream->write((VkBool32*)&forMarshaling->shaderInt16, sizeof(VkBool32));
290     vkStream->write((VkBool32*)&forMarshaling->shaderResourceResidency, sizeof(VkBool32));
291     vkStream->write((VkBool32*)&forMarshaling->shaderResourceMinLod, sizeof(VkBool32));
292     vkStream->write((VkBool32*)&forMarshaling->sparseBinding, sizeof(VkBool32));
293     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyBuffer, sizeof(VkBool32));
294     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage2D, sizeof(VkBool32));
295     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage3D, sizeof(VkBool32));
296     vkStream->write((VkBool32*)&forMarshaling->sparseResidency2Samples, sizeof(VkBool32));
297     vkStream->write((VkBool32*)&forMarshaling->sparseResidency4Samples, sizeof(VkBool32));
298     vkStream->write((VkBool32*)&forMarshaling->sparseResidency8Samples, sizeof(VkBool32));
299     vkStream->write((VkBool32*)&forMarshaling->sparseResidency16Samples, sizeof(VkBool32));
300     vkStream->write((VkBool32*)&forMarshaling->sparseResidencyAliased, sizeof(VkBool32));
301     vkStream->write((VkBool32*)&forMarshaling->variableMultisampleRate, sizeof(VkBool32));
302     vkStream->write((VkBool32*)&forMarshaling->inheritedQueries, sizeof(VkBool32));
303 }
304 
unmarshal_VkPhysicalDeviceFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceFeatures * forUnmarshaling)305 void unmarshal_VkPhysicalDeviceFeatures(
306     VulkanStreamGuest* vkStream,
307     VkPhysicalDeviceFeatures* forUnmarshaling)
308 {
309     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess, sizeof(VkBool32));
310     vkStream->read((VkBool32*)&forUnmarshaling->fullDrawIndexUint32, sizeof(VkBool32));
311     vkStream->read((VkBool32*)&forUnmarshaling->imageCubeArray, sizeof(VkBool32));
312     vkStream->read((VkBool32*)&forUnmarshaling->independentBlend, sizeof(VkBool32));
313     vkStream->read((VkBool32*)&forUnmarshaling->geometryShader, sizeof(VkBool32));
314     vkStream->read((VkBool32*)&forUnmarshaling->tessellationShader, sizeof(VkBool32));
315     vkStream->read((VkBool32*)&forUnmarshaling->sampleRateShading, sizeof(VkBool32));
316     vkStream->read((VkBool32*)&forUnmarshaling->dualSrcBlend, sizeof(VkBool32));
317     vkStream->read((VkBool32*)&forUnmarshaling->logicOp, sizeof(VkBool32));
318     vkStream->read((VkBool32*)&forUnmarshaling->multiDrawIndirect, sizeof(VkBool32));
319     vkStream->read((VkBool32*)&forUnmarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
320     vkStream->read((VkBool32*)&forUnmarshaling->depthClamp, sizeof(VkBool32));
321     vkStream->read((VkBool32*)&forUnmarshaling->depthBiasClamp, sizeof(VkBool32));
322     vkStream->read((VkBool32*)&forUnmarshaling->fillModeNonSolid, sizeof(VkBool32));
323     vkStream->read((VkBool32*)&forUnmarshaling->depthBounds, sizeof(VkBool32));
324     vkStream->read((VkBool32*)&forUnmarshaling->wideLines, sizeof(VkBool32));
325     vkStream->read((VkBool32*)&forUnmarshaling->largePoints, sizeof(VkBool32));
326     vkStream->read((VkBool32*)&forUnmarshaling->alphaToOne, sizeof(VkBool32));
327     vkStream->read((VkBool32*)&forUnmarshaling->multiViewport, sizeof(VkBool32));
328     vkStream->read((VkBool32*)&forUnmarshaling->samplerAnisotropy, sizeof(VkBool32));
329     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionETC2, sizeof(VkBool32));
330     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
331     vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionBC, sizeof(VkBool32));
332     vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryPrecise, sizeof(VkBool32));
333     vkStream->read((VkBool32*)&forUnmarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
334     vkStream->read((VkBool32*)&forUnmarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
335     vkStream->read((VkBool32*)&forUnmarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
336     vkStream->read((VkBool32*)&forUnmarshaling->shaderTessellationAndGeometryPointSize, sizeof(VkBool32));
337     vkStream->read((VkBool32*)&forUnmarshaling->shaderImageGatherExtended, sizeof(VkBool32));
338     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageExtendedFormats, sizeof(VkBool32));
339     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
340     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageReadWithoutFormat, sizeof(VkBool32));
341     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageWriteWithoutFormat, sizeof(VkBool32));
342     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayDynamicIndexing, sizeof(VkBool32));
343     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayDynamicIndexing, sizeof(VkBool32));
344     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayDynamicIndexing, sizeof(VkBool32));
345     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayDynamicIndexing, sizeof(VkBool32));
346     vkStream->read((VkBool32*)&forUnmarshaling->shaderClipDistance, sizeof(VkBool32));
347     vkStream->read((VkBool32*)&forUnmarshaling->shaderCullDistance, sizeof(VkBool32));
348     vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat64, sizeof(VkBool32));
349     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt64, sizeof(VkBool32));
350     vkStream->read((VkBool32*)&forUnmarshaling->shaderInt16, sizeof(VkBool32));
351     vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceResidency, sizeof(VkBool32));
352     vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceMinLod, sizeof(VkBool32));
353     vkStream->read((VkBool32*)&forUnmarshaling->sparseBinding, sizeof(VkBool32));
354     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyBuffer, sizeof(VkBool32));
355     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage2D, sizeof(VkBool32));
356     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage3D, sizeof(VkBool32));
357     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency2Samples, sizeof(VkBool32));
358     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency4Samples, sizeof(VkBool32));
359     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency8Samples, sizeof(VkBool32));
360     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency16Samples, sizeof(VkBool32));
361     vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyAliased, sizeof(VkBool32));
362     vkStream->read((VkBool32*)&forUnmarshaling->variableMultisampleRate, sizeof(VkBool32));
363     vkStream->read((VkBool32*)&forUnmarshaling->inheritedQueries, sizeof(VkBool32));
364 }
365 
marshal_VkFormatProperties(VulkanStreamGuest * vkStream,const VkFormatProperties * forMarshaling)366 void marshal_VkFormatProperties(
367     VulkanStreamGuest* vkStream,
368     const VkFormatProperties* forMarshaling)
369 {
370     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
371     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
372     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
373 }
374 
unmarshal_VkFormatProperties(VulkanStreamGuest * vkStream,VkFormatProperties * forUnmarshaling)375 void unmarshal_VkFormatProperties(
376     VulkanStreamGuest* vkStream,
377     VkFormatProperties* forUnmarshaling)
378 {
379     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
380     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
381     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
382 }
383 
marshal_VkExtent3D(VulkanStreamGuest * vkStream,const VkExtent3D * forMarshaling)384 void marshal_VkExtent3D(
385     VulkanStreamGuest* vkStream,
386     const VkExtent3D* forMarshaling)
387 {
388     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
389     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
390     vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
391 }
392 
unmarshal_VkExtent3D(VulkanStreamGuest * vkStream,VkExtent3D * forUnmarshaling)393 void unmarshal_VkExtent3D(
394     VulkanStreamGuest* vkStream,
395     VkExtent3D* forUnmarshaling)
396 {
397     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
398     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
399     vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
400 }
401 
marshal_VkImageFormatProperties(VulkanStreamGuest * vkStream,const VkImageFormatProperties * forMarshaling)402 void marshal_VkImageFormatProperties(
403     VulkanStreamGuest* vkStream,
404     const VkImageFormatProperties* forMarshaling)
405 {
406     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->maxExtent));
407     vkStream->write((uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
408     vkStream->write((uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
409     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
410     vkStream->write((VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
411 }
412 
unmarshal_VkImageFormatProperties(VulkanStreamGuest * vkStream,VkImageFormatProperties * forUnmarshaling)413 void unmarshal_VkImageFormatProperties(
414     VulkanStreamGuest* vkStream,
415     VkImageFormatProperties* forUnmarshaling)
416 {
417     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->maxExtent));
418     vkStream->read((uint32_t*)&forUnmarshaling->maxMipLevels, sizeof(uint32_t));
419     vkStream->read((uint32_t*)&forUnmarshaling->maxArrayLayers, sizeof(uint32_t));
420     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
421     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxResourceSize, sizeof(VkDeviceSize));
422 }
423 
marshal_VkPhysicalDeviceLimits(VulkanStreamGuest * vkStream,const VkPhysicalDeviceLimits * forMarshaling)424 void marshal_VkPhysicalDeviceLimits(
425     VulkanStreamGuest* vkStream,
426     const VkPhysicalDeviceLimits* forMarshaling)
427 {
428     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension1D, sizeof(uint32_t));
429     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension2D, sizeof(uint32_t));
430     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension3D, sizeof(uint32_t));
431     vkStream->write((uint32_t*)&forMarshaling->maxImageDimensionCube, sizeof(uint32_t));
432     vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
433     vkStream->write((uint32_t*)&forMarshaling->maxTexelBufferElements, sizeof(uint32_t));
434     vkStream->write((uint32_t*)&forMarshaling->maxUniformBufferRange, sizeof(uint32_t));
435     vkStream->write((uint32_t*)&forMarshaling->maxStorageBufferRange, sizeof(uint32_t));
436     vkStream->write((uint32_t*)&forMarshaling->maxPushConstantsSize, sizeof(uint32_t));
437     vkStream->write((uint32_t*)&forMarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
438     vkStream->write((uint32_t*)&forMarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
439     vkStream->write((VkDeviceSize*)&forMarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
440     vkStream->write((VkDeviceSize*)&forMarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
441     vkStream->write((uint32_t*)&forMarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
442     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
443     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUniformBuffers, sizeof(uint32_t));
444     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageBuffers, sizeof(uint32_t));
445     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSampledImages, sizeof(uint32_t));
446     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageImages, sizeof(uint32_t));
447     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInputAttachments, sizeof(uint32_t));
448     vkStream->write((uint32_t*)&forMarshaling->maxPerStageResources, sizeof(uint32_t));
449     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
450     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
451     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffersDynamic, sizeof(uint32_t));
452     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
453     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffersDynamic, sizeof(uint32_t));
454     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
455     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
456     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
457     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributes, sizeof(uint32_t));
458     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindings, sizeof(uint32_t));
459     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
460     vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
461     vkStream->write((uint32_t*)&forMarshaling->maxVertexOutputComponents, sizeof(uint32_t));
462     vkStream->write((uint32_t*)&forMarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
463     vkStream->write((uint32_t*)&forMarshaling->maxTessellationPatchSize, sizeof(uint32_t));
464     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexInputComponents, sizeof(uint32_t));
465     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexOutputComponents, sizeof(uint32_t));
466     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerPatchOutputComponents, sizeof(uint32_t));
467     vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlTotalOutputComponents, sizeof(uint32_t));
468     vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationInputComponents, sizeof(uint32_t));
469     vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationOutputComponents, sizeof(uint32_t));
470     vkStream->write((uint32_t*)&forMarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
471     vkStream->write((uint32_t*)&forMarshaling->maxGeometryInputComponents, sizeof(uint32_t));
472     vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
473     vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
474     vkStream->write((uint32_t*)&forMarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
475     vkStream->write((uint32_t*)&forMarshaling->maxFragmentInputComponents, sizeof(uint32_t));
476     vkStream->write((uint32_t*)&forMarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
477     vkStream->write((uint32_t*)&forMarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
478     vkStream->write((uint32_t*)&forMarshaling->maxFragmentCombinedOutputResources, sizeof(uint32_t));
479     vkStream->write((uint32_t*)&forMarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
480     vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
481     vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
482     vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
483     vkStream->write((uint32_t*)&forMarshaling->subPixelPrecisionBits, sizeof(uint32_t));
484     vkStream->write((uint32_t*)&forMarshaling->subTexelPrecisionBits, sizeof(uint32_t));
485     vkStream->write((uint32_t*)&forMarshaling->mipmapPrecisionBits, sizeof(uint32_t));
486     vkStream->write((uint32_t*)&forMarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
487     vkStream->write((uint32_t*)&forMarshaling->maxDrawIndirectCount, sizeof(uint32_t));
488     vkStream->write((float*)&forMarshaling->maxSamplerLodBias, sizeof(float));
489     vkStream->write((float*)&forMarshaling->maxSamplerAnisotropy, sizeof(float));
490     vkStream->write((uint32_t*)&forMarshaling->maxViewports, sizeof(uint32_t));
491     vkStream->write((uint32_t*)forMarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
492     vkStream->write((float*)forMarshaling->viewportBoundsRange, 2 * sizeof(float));
493     vkStream->write((uint32_t*)&forMarshaling->viewportSubPixelBits, sizeof(uint32_t));
494     uint64_t cgen_var_18 = (uint64_t)forMarshaling->minMemoryMapAlignment;
495     vkStream->putBe64(cgen_var_18);
496     vkStream->write((VkDeviceSize*)&forMarshaling->minTexelBufferOffsetAlignment, sizeof(VkDeviceSize));
497     vkStream->write((VkDeviceSize*)&forMarshaling->minUniformBufferOffsetAlignment, sizeof(VkDeviceSize));
498     vkStream->write((VkDeviceSize*)&forMarshaling->minStorageBufferOffsetAlignment, sizeof(VkDeviceSize));
499     vkStream->write((int32_t*)&forMarshaling->minTexelOffset, sizeof(int32_t));
500     vkStream->write((uint32_t*)&forMarshaling->maxTexelOffset, sizeof(uint32_t));
501     vkStream->write((int32_t*)&forMarshaling->minTexelGatherOffset, sizeof(int32_t));
502     vkStream->write((uint32_t*)&forMarshaling->maxTexelGatherOffset, sizeof(uint32_t));
503     vkStream->write((float*)&forMarshaling->minInterpolationOffset, sizeof(float));
504     vkStream->write((float*)&forMarshaling->maxInterpolationOffset, sizeof(float));
505     vkStream->write((uint32_t*)&forMarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
506     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferWidth, sizeof(uint32_t));
507     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferHeight, sizeof(uint32_t));
508     vkStream->write((uint32_t*)&forMarshaling->maxFramebufferLayers, sizeof(uint32_t));
509     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferColorSampleCounts, sizeof(VkSampleCountFlags));
510     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferDepthSampleCounts, sizeof(VkSampleCountFlags));
511     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferStencilSampleCounts, sizeof(VkSampleCountFlags));
512     vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferNoAttachmentsSampleCounts, sizeof(VkSampleCountFlags));
513     vkStream->write((uint32_t*)&forMarshaling->maxColorAttachments, sizeof(uint32_t));
514     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageColorSampleCounts, sizeof(VkSampleCountFlags));
515     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageIntegerSampleCounts, sizeof(VkSampleCountFlags));
516     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageDepthSampleCounts, sizeof(VkSampleCountFlags));
517     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageStencilSampleCounts, sizeof(VkSampleCountFlags));
518     vkStream->write((VkSampleCountFlags*)&forMarshaling->storageImageSampleCounts, sizeof(VkSampleCountFlags));
519     vkStream->write((uint32_t*)&forMarshaling->maxSampleMaskWords, sizeof(uint32_t));
520     vkStream->write((VkBool32*)&forMarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
521     vkStream->write((float*)&forMarshaling->timestampPeriod, sizeof(float));
522     vkStream->write((uint32_t*)&forMarshaling->maxClipDistances, sizeof(uint32_t));
523     vkStream->write((uint32_t*)&forMarshaling->maxCullDistances, sizeof(uint32_t));
524     vkStream->write((uint32_t*)&forMarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
525     vkStream->write((uint32_t*)&forMarshaling->discreteQueuePriorities, sizeof(uint32_t));
526     vkStream->write((float*)forMarshaling->pointSizeRange, 2 * sizeof(float));
527     vkStream->write((float*)forMarshaling->lineWidthRange, 2 * sizeof(float));
528     vkStream->write((float*)&forMarshaling->pointSizeGranularity, sizeof(float));
529     vkStream->write((float*)&forMarshaling->lineWidthGranularity, sizeof(float));
530     vkStream->write((VkBool32*)&forMarshaling->strictLines, sizeof(VkBool32));
531     vkStream->write((VkBool32*)&forMarshaling->standardSampleLocations, sizeof(VkBool32));
532     vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyOffsetAlignment, sizeof(VkDeviceSize));
533     vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyRowPitchAlignment, sizeof(VkDeviceSize));
534     vkStream->write((VkDeviceSize*)&forMarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
535 }
536 
unmarshal_VkPhysicalDeviceLimits(VulkanStreamGuest * vkStream,VkPhysicalDeviceLimits * forUnmarshaling)537 void unmarshal_VkPhysicalDeviceLimits(
538     VulkanStreamGuest* vkStream,
539     VkPhysicalDeviceLimits* forUnmarshaling)
540 {
541     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension1D, sizeof(uint32_t));
542     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension2D, sizeof(uint32_t));
543     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension3D, sizeof(uint32_t));
544     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimensionCube, sizeof(uint32_t));
545     vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
546     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelBufferElements, sizeof(uint32_t));
547     vkStream->read((uint32_t*)&forUnmarshaling->maxUniformBufferRange, sizeof(uint32_t));
548     vkStream->read((uint32_t*)&forUnmarshaling->maxStorageBufferRange, sizeof(uint32_t));
549     vkStream->read((uint32_t*)&forUnmarshaling->maxPushConstantsSize, sizeof(uint32_t));
550     vkStream->read((uint32_t*)&forUnmarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
551     vkStream->read((uint32_t*)&forUnmarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
552     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
553     vkStream->read((VkDeviceSize*)&forUnmarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
554     vkStream->read((uint32_t*)&forUnmarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
555     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
556     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUniformBuffers, sizeof(uint32_t));
557     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageBuffers, sizeof(uint32_t));
558     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSampledImages, sizeof(uint32_t));
559     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageImages, sizeof(uint32_t));
560     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInputAttachments, sizeof(uint32_t));
561     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageResources, sizeof(uint32_t));
562     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
563     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
564     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffersDynamic, sizeof(uint32_t));
565     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
566     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffersDynamic, sizeof(uint32_t));
567     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
568     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
569     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
570     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributes, sizeof(uint32_t));
571     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindings, sizeof(uint32_t));
572     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
573     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
574     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexOutputComponents, sizeof(uint32_t));
575     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
576     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationPatchSize, sizeof(uint32_t));
577     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexInputComponents, sizeof(uint32_t));
578     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexOutputComponents, sizeof(uint32_t));
579     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerPatchOutputComponents, sizeof(uint32_t));
580     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlTotalOutputComponents, sizeof(uint32_t));
581     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationInputComponents, sizeof(uint32_t));
582     vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationOutputComponents, sizeof(uint32_t));
583     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
584     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryInputComponents, sizeof(uint32_t));
585     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
586     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
587     vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
588     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentInputComponents, sizeof(uint32_t));
589     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
590     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
591     vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentCombinedOutputResources, sizeof(uint32_t));
592     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
593     vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
594     vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
595     vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
596     vkStream->read((uint32_t*)&forUnmarshaling->subPixelPrecisionBits, sizeof(uint32_t));
597     vkStream->read((uint32_t*)&forUnmarshaling->subTexelPrecisionBits, sizeof(uint32_t));
598     vkStream->read((uint32_t*)&forUnmarshaling->mipmapPrecisionBits, sizeof(uint32_t));
599     vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
600     vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndirectCount, sizeof(uint32_t));
601     vkStream->read((float*)&forUnmarshaling->maxSamplerLodBias, sizeof(float));
602     vkStream->read((float*)&forUnmarshaling->maxSamplerAnisotropy, sizeof(float));
603     vkStream->read((uint32_t*)&forUnmarshaling->maxViewports, sizeof(uint32_t));
604     vkStream->read((uint32_t*)forUnmarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
605     vkStream->read((float*)forUnmarshaling->viewportBoundsRange, 2 * sizeof(float));
606     vkStream->read((uint32_t*)&forUnmarshaling->viewportSubPixelBits, sizeof(uint32_t));
607     forUnmarshaling->minMemoryMapAlignment = (size_t)vkStream->getBe64();
608     vkStream->read((VkDeviceSize*)&forUnmarshaling->minTexelBufferOffsetAlignment, sizeof(VkDeviceSize));
609     vkStream->read((VkDeviceSize*)&forUnmarshaling->minUniformBufferOffsetAlignment, sizeof(VkDeviceSize));
610     vkStream->read((VkDeviceSize*)&forUnmarshaling->minStorageBufferOffsetAlignment, sizeof(VkDeviceSize));
611     vkStream->read((int32_t*)&forUnmarshaling->minTexelOffset, sizeof(int32_t));
612     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelOffset, sizeof(uint32_t));
613     vkStream->read((int32_t*)&forUnmarshaling->minTexelGatherOffset, sizeof(int32_t));
614     vkStream->read((uint32_t*)&forUnmarshaling->maxTexelGatherOffset, sizeof(uint32_t));
615     vkStream->read((float*)&forUnmarshaling->minInterpolationOffset, sizeof(float));
616     vkStream->read((float*)&forUnmarshaling->maxInterpolationOffset, sizeof(float));
617     vkStream->read((uint32_t*)&forUnmarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
618     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferWidth, sizeof(uint32_t));
619     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferHeight, sizeof(uint32_t));
620     vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferLayers, sizeof(uint32_t));
621     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferColorSampleCounts, sizeof(VkSampleCountFlags));
622     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferDepthSampleCounts, sizeof(VkSampleCountFlags));
623     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferStencilSampleCounts, sizeof(VkSampleCountFlags));
624     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferNoAttachmentsSampleCounts, sizeof(VkSampleCountFlags));
625     vkStream->read((uint32_t*)&forUnmarshaling->maxColorAttachments, sizeof(uint32_t));
626     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageColorSampleCounts, sizeof(VkSampleCountFlags));
627     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageIntegerSampleCounts, sizeof(VkSampleCountFlags));
628     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageDepthSampleCounts, sizeof(VkSampleCountFlags));
629     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageStencilSampleCounts, sizeof(VkSampleCountFlags));
630     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->storageImageSampleCounts, sizeof(VkSampleCountFlags));
631     vkStream->read((uint32_t*)&forUnmarshaling->maxSampleMaskWords, sizeof(uint32_t));
632     vkStream->read((VkBool32*)&forUnmarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
633     vkStream->read((float*)&forUnmarshaling->timestampPeriod, sizeof(float));
634     vkStream->read((uint32_t*)&forUnmarshaling->maxClipDistances, sizeof(uint32_t));
635     vkStream->read((uint32_t*)&forUnmarshaling->maxCullDistances, sizeof(uint32_t));
636     vkStream->read((uint32_t*)&forUnmarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
637     vkStream->read((uint32_t*)&forUnmarshaling->discreteQueuePriorities, sizeof(uint32_t));
638     vkStream->read((float*)forUnmarshaling->pointSizeRange, 2 * sizeof(float));
639     vkStream->read((float*)forUnmarshaling->lineWidthRange, 2 * sizeof(float));
640     vkStream->read((float*)&forUnmarshaling->pointSizeGranularity, sizeof(float));
641     vkStream->read((float*)&forUnmarshaling->lineWidthGranularity, sizeof(float));
642     vkStream->read((VkBool32*)&forUnmarshaling->strictLines, sizeof(VkBool32));
643     vkStream->read((VkBool32*)&forUnmarshaling->standardSampleLocations, sizeof(VkBool32));
644     vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyOffsetAlignment, sizeof(VkDeviceSize));
645     vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyRowPitchAlignment, sizeof(VkDeviceSize));
646     vkStream->read((VkDeviceSize*)&forUnmarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
647 }
648 
marshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSparseProperties * forMarshaling)649 void marshal_VkPhysicalDeviceSparseProperties(
650     VulkanStreamGuest* vkStream,
651     const VkPhysicalDeviceSparseProperties* forMarshaling)
652 {
653     vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
654     vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DMultisampleBlockShape, sizeof(VkBool32));
655     vkStream->write((VkBool32*)&forMarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
656     vkStream->write((VkBool32*)&forMarshaling->residencyAlignedMipSize, sizeof(VkBool32));
657     vkStream->write((VkBool32*)&forMarshaling->residencyNonResidentStrict, sizeof(VkBool32));
658 }
659 
unmarshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceSparseProperties * forUnmarshaling)660 void unmarshal_VkPhysicalDeviceSparseProperties(
661     VulkanStreamGuest* vkStream,
662     VkPhysicalDeviceSparseProperties* forUnmarshaling)
663 {
664     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
665     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DMultisampleBlockShape, sizeof(VkBool32));
666     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
667     vkStream->read((VkBool32*)&forUnmarshaling->residencyAlignedMipSize, sizeof(VkBool32));
668     vkStream->read((VkBool32*)&forUnmarshaling->residencyNonResidentStrict, sizeof(VkBool32));
669 }
670 
marshal_VkPhysicalDeviceProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProperties * forMarshaling)671 void marshal_VkPhysicalDeviceProperties(
672     VulkanStreamGuest* vkStream,
673     const VkPhysicalDeviceProperties* forMarshaling)
674 {
675     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
676     vkStream->write((uint32_t*)&forMarshaling->driverVersion, sizeof(uint32_t));
677     vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
678     vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
679     vkStream->write((VkPhysicalDeviceType*)&forMarshaling->deviceType, sizeof(VkPhysicalDeviceType));
680     vkStream->write((char*)forMarshaling->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
681     vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
682     marshal_VkPhysicalDeviceLimits(vkStream, (VkPhysicalDeviceLimits*)(&forMarshaling->limits));
683     marshal_VkPhysicalDeviceSparseProperties(vkStream, (VkPhysicalDeviceSparseProperties*)(&forMarshaling->sparseProperties));
684 }
685 
unmarshal_VkPhysicalDeviceProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceProperties * forUnmarshaling)686 void unmarshal_VkPhysicalDeviceProperties(
687     VulkanStreamGuest* vkStream,
688     VkPhysicalDeviceProperties* forUnmarshaling)
689 {
690     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
691     vkStream->read((uint32_t*)&forUnmarshaling->driverVersion, sizeof(uint32_t));
692     vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
693     vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
694     vkStream->read((VkPhysicalDeviceType*)&forUnmarshaling->deviceType, sizeof(VkPhysicalDeviceType));
695     vkStream->read((char*)forUnmarshaling->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
696     vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
697     unmarshal_VkPhysicalDeviceLimits(vkStream, (VkPhysicalDeviceLimits*)(&forUnmarshaling->limits));
698     unmarshal_VkPhysicalDeviceSparseProperties(vkStream, (VkPhysicalDeviceSparseProperties*)(&forUnmarshaling->sparseProperties));
699 }
700 
marshal_VkQueueFamilyProperties(VulkanStreamGuest * vkStream,const VkQueueFamilyProperties * forMarshaling)701 void marshal_VkQueueFamilyProperties(
702     VulkanStreamGuest* vkStream,
703     const VkQueueFamilyProperties* forMarshaling)
704 {
705     vkStream->write((VkQueueFlags*)&forMarshaling->queueFlags, sizeof(VkQueueFlags));
706     vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
707     vkStream->write((uint32_t*)&forMarshaling->timestampValidBits, sizeof(uint32_t));
708     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->minImageTransferGranularity));
709 }
710 
unmarshal_VkQueueFamilyProperties(VulkanStreamGuest * vkStream,VkQueueFamilyProperties * forUnmarshaling)711 void unmarshal_VkQueueFamilyProperties(
712     VulkanStreamGuest* vkStream,
713     VkQueueFamilyProperties* forUnmarshaling)
714 {
715     vkStream->read((VkQueueFlags*)&forUnmarshaling->queueFlags, sizeof(VkQueueFlags));
716     vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
717     vkStream->read((uint32_t*)&forUnmarshaling->timestampValidBits, sizeof(uint32_t));
718     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->minImageTransferGranularity));
719 }
720 
marshal_VkMemoryType(VulkanStreamGuest * vkStream,const VkMemoryType * forMarshaling)721 void marshal_VkMemoryType(
722     VulkanStreamGuest* vkStream,
723     const VkMemoryType* forMarshaling)
724 {
725     vkStream->write((VkMemoryPropertyFlags*)&forMarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
726     vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
727 }
728 
unmarshal_VkMemoryType(VulkanStreamGuest * vkStream,VkMemoryType * forUnmarshaling)729 void unmarshal_VkMemoryType(
730     VulkanStreamGuest* vkStream,
731     VkMemoryType* forUnmarshaling)
732 {
733     vkStream->read((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
734     vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
735 }
736 
marshal_VkMemoryHeap(VulkanStreamGuest * vkStream,const VkMemoryHeap * forMarshaling)737 void marshal_VkMemoryHeap(
738     VulkanStreamGuest* vkStream,
739     const VkMemoryHeap* forMarshaling)
740 {
741     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
742     vkStream->write((VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
743 }
744 
unmarshal_VkMemoryHeap(VulkanStreamGuest * vkStream,VkMemoryHeap * forUnmarshaling)745 void unmarshal_VkMemoryHeap(
746     VulkanStreamGuest* vkStream,
747     VkMemoryHeap* forUnmarshaling)
748 {
749     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
750     vkStream->read((VkMemoryHeapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryHeapFlags));
751 }
752 
marshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMemoryProperties * forMarshaling)753 void marshal_VkPhysicalDeviceMemoryProperties(
754     VulkanStreamGuest* vkStream,
755     const VkPhysicalDeviceMemoryProperties* forMarshaling)
756 {
757     vkStream->write((uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
758     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
759     {
760         marshal_VkMemoryType(vkStream, (VkMemoryType*)(forMarshaling->memoryTypes + i));
761     }
762     vkStream->write((uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
763     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
764     {
765         marshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i));
766     }
767 }
768 
unmarshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceMemoryProperties * forUnmarshaling)769 void unmarshal_VkPhysicalDeviceMemoryProperties(
770     VulkanStreamGuest* vkStream,
771     VkPhysicalDeviceMemoryProperties* forUnmarshaling)
772 {
773     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeCount, sizeof(uint32_t));
774     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
775     {
776         unmarshal_VkMemoryType(vkStream, (VkMemoryType*)(forUnmarshaling->memoryTypes + i));
777     }
778     vkStream->read((uint32_t*)&forUnmarshaling->memoryHeapCount, sizeof(uint32_t));
779     for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
780     {
781         unmarshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forUnmarshaling->memoryHeaps + i));
782     }
783 }
784 
marshal_VkDeviceQueueCreateInfo(VulkanStreamGuest * vkStream,const VkDeviceQueueCreateInfo * forMarshaling)785 void marshal_VkDeviceQueueCreateInfo(
786     VulkanStreamGuest* vkStream,
787     const VkDeviceQueueCreateInfo* forMarshaling)
788 {
789     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
790     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
791     vkStream->putBe32(pNext_size);
792     if (pNext_size)
793     {
794         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
795         marshal_extension_struct(vkStream, forMarshaling->pNext);
796     }
797     vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
798     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
799     vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
800     vkStream->write((const float*)forMarshaling->pQueuePriorities, forMarshaling->queueCount * sizeof(const float));
801 }
802 
unmarshal_VkDeviceQueueCreateInfo(VulkanStreamGuest * vkStream,VkDeviceQueueCreateInfo * forUnmarshaling)803 void unmarshal_VkDeviceQueueCreateInfo(
804     VulkanStreamGuest* vkStream,
805     VkDeviceQueueCreateInfo* forUnmarshaling)
806 {
807     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
808     size_t pNext_size;
809     pNext_size = vkStream->getBe32();
810     if (pNext_size)
811     {
812         uint64_t pNext_placeholder;
813         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
814         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
815     }
816     vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
817     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
818     vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
819     vkStream->read((float*)forUnmarshaling->pQueuePriorities, forUnmarshaling->queueCount * sizeof(const float));
820 }
821 
marshal_VkDeviceCreateInfo(VulkanStreamGuest * vkStream,const VkDeviceCreateInfo * forMarshaling)822 void marshal_VkDeviceCreateInfo(
823     VulkanStreamGuest* vkStream,
824     const VkDeviceCreateInfo* forMarshaling)
825 {
826     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
827     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
828     vkStream->putBe32(pNext_size);
829     if (pNext_size)
830     {
831         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
832         marshal_extension_struct(vkStream, forMarshaling->pNext);
833     }
834     vkStream->write((VkDeviceCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceCreateFlags));
835     vkStream->write((uint32_t*)&forMarshaling->queueCreateInfoCount, sizeof(uint32_t));
836     for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueCreateInfoCount; ++i)
837     {
838         marshal_VkDeviceQueueCreateInfo(vkStream, (const VkDeviceQueueCreateInfo*)(forMarshaling->pQueueCreateInfos + i));
839     }
840     vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
841     saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
842     vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
843     saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames, forMarshaling->enabledExtensionCount);
844     // WARNING PTR CHECK
845     uint64_t cgen_var_20 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
846     vkStream->putBe64(cgen_var_20);
847     if (forMarshaling->pEnabledFeatures)
848     {
849         marshal_VkPhysicalDeviceFeatures(vkStream, (const VkPhysicalDeviceFeatures*)(forMarshaling->pEnabledFeatures));
850     }
851 }
852 
unmarshal_VkDeviceCreateInfo(VulkanStreamGuest * vkStream,VkDeviceCreateInfo * forUnmarshaling)853 void unmarshal_VkDeviceCreateInfo(
854     VulkanStreamGuest* vkStream,
855     VkDeviceCreateInfo* forUnmarshaling)
856 {
857     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
858     size_t pNext_size;
859     pNext_size = vkStream->getBe32();
860     if (pNext_size)
861     {
862         uint64_t pNext_placeholder;
863         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
864         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
865     }
866     vkStream->read((VkDeviceCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceCreateFlags));
867     vkStream->read((uint32_t*)&forUnmarshaling->queueCreateInfoCount, sizeof(uint32_t));
868     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueCreateInfoCount; ++i)
869     {
870         unmarshal_VkDeviceQueueCreateInfo(vkStream, (VkDeviceQueueCreateInfo*)(forUnmarshaling->pQueueCreateInfos + i));
871     }
872     vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
873     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
874     vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
875     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
876     // WARNING PTR CHECK
877     const VkPhysicalDeviceFeatures* check_pEnabledFeatures;
878     check_pEnabledFeatures = (const VkPhysicalDeviceFeatures*)(uintptr_t)vkStream->getBe64();
879     if (forUnmarshaling->pEnabledFeatures)
880     {
881         if (!(check_pEnabledFeatures))
882         {
883             fprintf(stderr, "fatal: forUnmarshaling->pEnabledFeatures inconsistent between guest and host\n");
884         }
885         unmarshal_VkPhysicalDeviceFeatures(vkStream, (VkPhysicalDeviceFeatures*)(forUnmarshaling->pEnabledFeatures));
886     }
887 }
888 
marshal_VkExtensionProperties(VulkanStreamGuest * vkStream,const VkExtensionProperties * forMarshaling)889 void marshal_VkExtensionProperties(
890     VulkanStreamGuest* vkStream,
891     const VkExtensionProperties* forMarshaling)
892 {
893     vkStream->write((char*)forMarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
894     vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
895 }
896 
unmarshal_VkExtensionProperties(VulkanStreamGuest * vkStream,VkExtensionProperties * forUnmarshaling)897 void unmarshal_VkExtensionProperties(
898     VulkanStreamGuest* vkStream,
899     VkExtensionProperties* forUnmarshaling)
900 {
901     vkStream->read((char*)forUnmarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
902     vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
903 }
904 
marshal_VkLayerProperties(VulkanStreamGuest * vkStream,const VkLayerProperties * forMarshaling)905 void marshal_VkLayerProperties(
906     VulkanStreamGuest* vkStream,
907     const VkLayerProperties* forMarshaling)
908 {
909     vkStream->write((char*)forMarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
910     vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
911     vkStream->write((uint32_t*)&forMarshaling->implementationVersion, sizeof(uint32_t));
912     vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
913 }
914 
unmarshal_VkLayerProperties(VulkanStreamGuest * vkStream,VkLayerProperties * forUnmarshaling)915 void unmarshal_VkLayerProperties(
916     VulkanStreamGuest* vkStream,
917     VkLayerProperties* forUnmarshaling)
918 {
919     vkStream->read((char*)forUnmarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
920     vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
921     vkStream->read((uint32_t*)&forUnmarshaling->implementationVersion, sizeof(uint32_t));
922     vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
923 }
924 
marshal_VkSubmitInfo(VulkanStreamGuest * vkStream,const VkSubmitInfo * forMarshaling)925 void marshal_VkSubmitInfo(
926     VulkanStreamGuest* vkStream,
927     const VkSubmitInfo* forMarshaling)
928 {
929     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
930     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
931     vkStream->putBe32(pNext_size);
932     if (pNext_size)
933     {
934         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
935         marshal_extension_struct(vkStream, forMarshaling->pNext);
936     }
937     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
938     if (forMarshaling->waitSemaphoreCount)
939     {
940         uint64_t* cgen_var_22;
941         vkStream->alloc((void**)&cgen_var_22, forMarshaling->waitSemaphoreCount * 8);
942         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_22, forMarshaling->waitSemaphoreCount);
943         vkStream->write((uint64_t*)cgen_var_22, forMarshaling->waitSemaphoreCount * 8);
944     }
945     vkStream->write((const VkPipelineStageFlags*)forMarshaling->pWaitDstStageMask, forMarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
946     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
947     if (forMarshaling->commandBufferCount)
948     {
949         uint64_t* cgen_var_23;
950         vkStream->alloc((void**)&cgen_var_23, forMarshaling->commandBufferCount * 8);
951         vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(forMarshaling->pCommandBuffers, cgen_var_23, forMarshaling->commandBufferCount);
952         vkStream->write((uint64_t*)cgen_var_23, forMarshaling->commandBufferCount * 8);
953     }
954     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
955     if (forMarshaling->signalSemaphoreCount)
956     {
957         uint64_t* cgen_var_24;
958         vkStream->alloc((void**)&cgen_var_24, forMarshaling->signalSemaphoreCount * 8);
959         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_24, forMarshaling->signalSemaphoreCount);
960         vkStream->write((uint64_t*)cgen_var_24, forMarshaling->signalSemaphoreCount * 8);
961     }
962 }
963 
unmarshal_VkSubmitInfo(VulkanStreamGuest * vkStream,VkSubmitInfo * forUnmarshaling)964 void unmarshal_VkSubmitInfo(
965     VulkanStreamGuest* vkStream,
966     VkSubmitInfo* forUnmarshaling)
967 {
968     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
969     size_t pNext_size;
970     pNext_size = vkStream->getBe32();
971     if (pNext_size)
972     {
973         uint64_t pNext_placeholder;
974         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
975         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
976     }
977     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
978     if (forUnmarshaling->waitSemaphoreCount)
979     {
980         uint64_t* cgen_var_25;
981         vkStream->alloc((void**)&cgen_var_25, forUnmarshaling->waitSemaphoreCount * 8);
982         vkStream->read((uint64_t*)cgen_var_25, forUnmarshaling->waitSemaphoreCount * 8);
983         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_25, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
984     }
985     vkStream->read((VkPipelineStageFlags*)forUnmarshaling->pWaitDstStageMask, forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
986     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
987     if (forUnmarshaling->commandBufferCount)
988     {
989         uint64_t* cgen_var_26;
990         vkStream->alloc((void**)&cgen_var_26, forUnmarshaling->commandBufferCount * 8);
991         vkStream->read((uint64_t*)cgen_var_26, forUnmarshaling->commandBufferCount * 8);
992         vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_26, (VkCommandBuffer*)forUnmarshaling->pCommandBuffers, forUnmarshaling->commandBufferCount);
993     }
994     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
995     if (forUnmarshaling->signalSemaphoreCount)
996     {
997         uint64_t* cgen_var_27;
998         vkStream->alloc((void**)&cgen_var_27, forUnmarshaling->signalSemaphoreCount * 8);
999         vkStream->read((uint64_t*)cgen_var_27, forUnmarshaling->signalSemaphoreCount * 8);
1000         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_27, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
1001     }
1002 }
1003 
marshal_VkMemoryAllocateInfo(VulkanStreamGuest * vkStream,const VkMemoryAllocateInfo * forMarshaling)1004 void marshal_VkMemoryAllocateInfo(
1005     VulkanStreamGuest* vkStream,
1006     const VkMemoryAllocateInfo* forMarshaling)
1007 {
1008     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1009     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1010     vkStream->putBe32(pNext_size);
1011     if (pNext_size)
1012     {
1013         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1014         marshal_extension_struct(vkStream, forMarshaling->pNext);
1015     }
1016     vkStream->write((VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
1017     vkStream->write((uint32_t*)&forMarshaling->memoryTypeIndex, sizeof(uint32_t));
1018 }
1019 
unmarshal_VkMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkMemoryAllocateInfo * forUnmarshaling)1020 void unmarshal_VkMemoryAllocateInfo(
1021     VulkanStreamGuest* vkStream,
1022     VkMemoryAllocateInfo* forUnmarshaling)
1023 {
1024     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1025     size_t pNext_size;
1026     pNext_size = vkStream->getBe32();
1027     if (pNext_size)
1028     {
1029         uint64_t pNext_placeholder;
1030         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1031         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1032     }
1033     vkStream->read((VkDeviceSize*)&forUnmarshaling->allocationSize, sizeof(VkDeviceSize));
1034     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeIndex, sizeof(uint32_t));
1035 }
1036 
marshal_VkMappedMemoryRange(VulkanStreamGuest * vkStream,const VkMappedMemoryRange * forMarshaling)1037 void marshal_VkMappedMemoryRange(
1038     VulkanStreamGuest* vkStream,
1039     const VkMappedMemoryRange* forMarshaling)
1040 {
1041     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1042     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1043     vkStream->putBe32(pNext_size);
1044     if (pNext_size)
1045     {
1046         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1047         marshal_extension_struct(vkStream, forMarshaling->pNext);
1048     }
1049     uint64_t cgen_var_28;
1050     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_28, 1);
1051     vkStream->write((uint64_t*)&cgen_var_28, 1 * 8);
1052     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1053     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1054 }
1055 
unmarshal_VkMappedMemoryRange(VulkanStreamGuest * vkStream,VkMappedMemoryRange * forUnmarshaling)1056 void unmarshal_VkMappedMemoryRange(
1057     VulkanStreamGuest* vkStream,
1058     VkMappedMemoryRange* forUnmarshaling)
1059 {
1060     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1061     size_t pNext_size;
1062     pNext_size = vkStream->getBe32();
1063     if (pNext_size)
1064     {
1065         uint64_t pNext_placeholder;
1066         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1067         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1068     }
1069     uint64_t cgen_var_29;
1070     vkStream->read((uint64_t*)&cgen_var_29, 1 * 8);
1071     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_29, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1072     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1073     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1074 }
1075 
marshal_VkMemoryRequirements(VulkanStreamGuest * vkStream,const VkMemoryRequirements * forMarshaling)1076 void marshal_VkMemoryRequirements(
1077     VulkanStreamGuest* vkStream,
1078     const VkMemoryRequirements* forMarshaling)
1079 {
1080     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1081     vkStream->write((VkDeviceSize*)&forMarshaling->alignment, sizeof(VkDeviceSize));
1082     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
1083 }
1084 
unmarshal_VkMemoryRequirements(VulkanStreamGuest * vkStream,VkMemoryRequirements * forUnmarshaling)1085 void unmarshal_VkMemoryRequirements(
1086     VulkanStreamGuest* vkStream,
1087     VkMemoryRequirements* forUnmarshaling)
1088 {
1089     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1090     vkStream->read((VkDeviceSize*)&forUnmarshaling->alignment, sizeof(VkDeviceSize));
1091     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
1092 }
1093 
marshal_VkSparseImageFormatProperties(VulkanStreamGuest * vkStream,const VkSparseImageFormatProperties * forMarshaling)1094 void marshal_VkSparseImageFormatProperties(
1095     VulkanStreamGuest* vkStream,
1096     const VkSparseImageFormatProperties* forMarshaling)
1097 {
1098     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1099     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->imageGranularity));
1100     vkStream->write((VkSparseImageFormatFlags*)&forMarshaling->flags, sizeof(VkSparseImageFormatFlags));
1101 }
1102 
unmarshal_VkSparseImageFormatProperties(VulkanStreamGuest * vkStream,VkSparseImageFormatProperties * forUnmarshaling)1103 void unmarshal_VkSparseImageFormatProperties(
1104     VulkanStreamGuest* vkStream,
1105     VkSparseImageFormatProperties* forUnmarshaling)
1106 {
1107     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1108     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->imageGranularity));
1109     vkStream->read((VkSparseImageFormatFlags*)&forUnmarshaling->flags, sizeof(VkSparseImageFormatFlags));
1110 }
1111 
marshal_VkSparseImageMemoryRequirements(VulkanStreamGuest * vkStream,const VkSparseImageMemoryRequirements * forMarshaling)1112 void marshal_VkSparseImageMemoryRequirements(
1113     VulkanStreamGuest* vkStream,
1114     const VkSparseImageMemoryRequirements* forMarshaling)
1115 {
1116     marshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forMarshaling->formatProperties));
1117     vkStream->write((uint32_t*)&forMarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1118     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1119     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1120     vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1121 }
1122 
unmarshal_VkSparseImageMemoryRequirements(VulkanStreamGuest * vkStream,VkSparseImageMemoryRequirements * forUnmarshaling)1123 void unmarshal_VkSparseImageMemoryRequirements(
1124     VulkanStreamGuest* vkStream,
1125     VkSparseImageMemoryRequirements* forUnmarshaling)
1126 {
1127     unmarshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forUnmarshaling->formatProperties));
1128     vkStream->read((uint32_t*)&forUnmarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1129     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1130     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1131     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1132 }
1133 
marshal_VkSparseMemoryBind(VulkanStreamGuest * vkStream,const VkSparseMemoryBind * forMarshaling)1134 void marshal_VkSparseMemoryBind(
1135     VulkanStreamGuest* vkStream,
1136     const VkSparseMemoryBind* forMarshaling)
1137 {
1138     vkStream->write((VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
1139     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1140     uint64_t cgen_var_30;
1141     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_30, 1);
1142     vkStream->write((uint64_t*)&cgen_var_30, 1 * 8);
1143     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1144     vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1145 }
1146 
unmarshal_VkSparseMemoryBind(VulkanStreamGuest * vkStream,VkSparseMemoryBind * forUnmarshaling)1147 void unmarshal_VkSparseMemoryBind(
1148     VulkanStreamGuest* vkStream,
1149     VkSparseMemoryBind* forUnmarshaling)
1150 {
1151     vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceOffset, sizeof(VkDeviceSize));
1152     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1153     uint64_t cgen_var_31;
1154     vkStream->read((uint64_t*)&cgen_var_31, 1 * 8);
1155     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_31, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1156     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1157     vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1158 }
1159 
marshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest * vkStream,const VkSparseBufferMemoryBindInfo * forMarshaling)1160 void marshal_VkSparseBufferMemoryBindInfo(
1161     VulkanStreamGuest* vkStream,
1162     const VkSparseBufferMemoryBindInfo* forMarshaling)
1163 {
1164     uint64_t cgen_var_32;
1165     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_32, 1);
1166     vkStream->write((uint64_t*)&cgen_var_32, 1 * 8);
1167     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1168     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
1169     {
1170         marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1171     }
1172 }
1173 
unmarshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest * vkStream,VkSparseBufferMemoryBindInfo * forUnmarshaling)1174 void unmarshal_VkSparseBufferMemoryBindInfo(
1175     VulkanStreamGuest* vkStream,
1176     VkSparseBufferMemoryBindInfo* forUnmarshaling)
1177 {
1178     uint64_t cgen_var_33;
1179     vkStream->read((uint64_t*)&cgen_var_33, 1 * 8);
1180     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_33, (VkBuffer*)&forUnmarshaling->buffer, 1);
1181     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1182     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
1183     {
1184         unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1185     }
1186 }
1187 
marshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStreamGuest * vkStream,const VkSparseImageOpaqueMemoryBindInfo * forMarshaling)1188 void marshal_VkSparseImageOpaqueMemoryBindInfo(
1189     VulkanStreamGuest* vkStream,
1190     const VkSparseImageOpaqueMemoryBindInfo* forMarshaling)
1191 {
1192     uint64_t cgen_var_34;
1193     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_34, 1);
1194     vkStream->write((uint64_t*)&cgen_var_34, 1 * 8);
1195     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1196     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
1197     {
1198         marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1199     }
1200 }
1201 
unmarshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStreamGuest * vkStream,VkSparseImageOpaqueMemoryBindInfo * forUnmarshaling)1202 void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
1203     VulkanStreamGuest* vkStream,
1204     VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling)
1205 {
1206     uint64_t cgen_var_35;
1207     vkStream->read((uint64_t*)&cgen_var_35, 1 * 8);
1208     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_35, (VkImage*)&forUnmarshaling->image, 1);
1209     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1210     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
1211     {
1212         unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1213     }
1214 }
1215 
marshal_VkImageSubresource(VulkanStreamGuest * vkStream,const VkImageSubresource * forMarshaling)1216 void marshal_VkImageSubresource(
1217     VulkanStreamGuest* vkStream,
1218     const VkImageSubresource* forMarshaling)
1219 {
1220     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1221     vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
1222     vkStream->write((uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
1223 }
1224 
unmarshal_VkImageSubresource(VulkanStreamGuest * vkStream,VkImageSubresource * forUnmarshaling)1225 void unmarshal_VkImageSubresource(
1226     VulkanStreamGuest* vkStream,
1227     VkImageSubresource* forUnmarshaling)
1228 {
1229     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1230     vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
1231     vkStream->read((uint32_t*)&forUnmarshaling->arrayLayer, sizeof(uint32_t));
1232 }
1233 
marshal_VkOffset3D(VulkanStreamGuest * vkStream,const VkOffset3D * forMarshaling)1234 void marshal_VkOffset3D(
1235     VulkanStreamGuest* vkStream,
1236     const VkOffset3D* forMarshaling)
1237 {
1238     vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
1239     vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
1240     vkStream->write((int32_t*)&forMarshaling->z, sizeof(int32_t));
1241 }
1242 
unmarshal_VkOffset3D(VulkanStreamGuest * vkStream,VkOffset3D * forUnmarshaling)1243 void unmarshal_VkOffset3D(
1244     VulkanStreamGuest* vkStream,
1245     VkOffset3D* forUnmarshaling)
1246 {
1247     vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
1248     vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
1249     vkStream->read((int32_t*)&forUnmarshaling->z, sizeof(int32_t));
1250 }
1251 
marshal_VkSparseImageMemoryBind(VulkanStreamGuest * vkStream,const VkSparseImageMemoryBind * forMarshaling)1252 void marshal_VkSparseImageMemoryBind(
1253     VulkanStreamGuest* vkStream,
1254     const VkSparseImageMemoryBind* forMarshaling)
1255 {
1256     marshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forMarshaling->subresource));
1257     marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->offset));
1258     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
1259     uint64_t cgen_var_36;
1260     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_36, 1);
1261     vkStream->write((uint64_t*)&cgen_var_36, 1 * 8);
1262     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1263     vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1264 }
1265 
unmarshal_VkSparseImageMemoryBind(VulkanStreamGuest * vkStream,VkSparseImageMemoryBind * forUnmarshaling)1266 void unmarshal_VkSparseImageMemoryBind(
1267     VulkanStreamGuest* vkStream,
1268     VkSparseImageMemoryBind* forUnmarshaling)
1269 {
1270     unmarshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forUnmarshaling->subresource));
1271     unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->offset));
1272     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
1273     uint64_t cgen_var_37;
1274     vkStream->read((uint64_t*)&cgen_var_37, 1 * 8);
1275     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_37, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1276     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1277     vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1278 }
1279 
marshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest * vkStream,const VkSparseImageMemoryBindInfo * forMarshaling)1280 void marshal_VkSparseImageMemoryBindInfo(
1281     VulkanStreamGuest* vkStream,
1282     const VkSparseImageMemoryBindInfo* forMarshaling)
1283 {
1284     uint64_t cgen_var_38;
1285     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_38, 1);
1286     vkStream->write((uint64_t*)&cgen_var_38, 1 * 8);
1287     vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1288     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
1289     {
1290         marshal_VkSparseImageMemoryBind(vkStream, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i));
1291     }
1292 }
1293 
unmarshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest * vkStream,VkSparseImageMemoryBindInfo * forUnmarshaling)1294 void unmarshal_VkSparseImageMemoryBindInfo(
1295     VulkanStreamGuest* vkStream,
1296     VkSparseImageMemoryBindInfo* forUnmarshaling)
1297 {
1298     uint64_t cgen_var_39;
1299     vkStream->read((uint64_t*)&cgen_var_39, 1 * 8);
1300     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_39, (VkImage*)&forUnmarshaling->image, 1);
1301     vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1302     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
1303     {
1304         unmarshal_VkSparseImageMemoryBind(vkStream, (VkSparseImageMemoryBind*)(forUnmarshaling->pBinds + i));
1305     }
1306 }
1307 
marshal_VkBindSparseInfo(VulkanStreamGuest * vkStream,const VkBindSparseInfo * forMarshaling)1308 void marshal_VkBindSparseInfo(
1309     VulkanStreamGuest* vkStream,
1310     const VkBindSparseInfo* forMarshaling)
1311 {
1312     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1313     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1314     vkStream->putBe32(pNext_size);
1315     if (pNext_size)
1316     {
1317         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1318         marshal_extension_struct(vkStream, forMarshaling->pNext);
1319     }
1320     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1321     if (forMarshaling->waitSemaphoreCount)
1322     {
1323         uint64_t* cgen_var_40;
1324         vkStream->alloc((void**)&cgen_var_40, forMarshaling->waitSemaphoreCount * 8);
1325         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_40, forMarshaling->waitSemaphoreCount);
1326         vkStream->write((uint64_t*)cgen_var_40, forMarshaling->waitSemaphoreCount * 8);
1327     }
1328     vkStream->write((uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
1329     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i)
1330     {
1331         marshal_VkSparseBufferMemoryBindInfo(vkStream, (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i));
1332     }
1333     vkStream->write((uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1334     for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i)
1335     {
1336         marshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i));
1337     }
1338     vkStream->write((uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
1339     for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i)
1340     {
1341         marshal_VkSparseImageMemoryBindInfo(vkStream, (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i));
1342     }
1343     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1344     if (forMarshaling->signalSemaphoreCount)
1345     {
1346         uint64_t* cgen_var_41;
1347         vkStream->alloc((void**)&cgen_var_41, forMarshaling->signalSemaphoreCount * 8);
1348         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_41, forMarshaling->signalSemaphoreCount);
1349         vkStream->write((uint64_t*)cgen_var_41, forMarshaling->signalSemaphoreCount * 8);
1350     }
1351 }
1352 
unmarshal_VkBindSparseInfo(VulkanStreamGuest * vkStream,VkBindSparseInfo * forUnmarshaling)1353 void unmarshal_VkBindSparseInfo(
1354     VulkanStreamGuest* vkStream,
1355     VkBindSparseInfo* forUnmarshaling)
1356 {
1357     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1358     size_t pNext_size;
1359     pNext_size = vkStream->getBe32();
1360     if (pNext_size)
1361     {
1362         uint64_t pNext_placeholder;
1363         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1364         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1365     }
1366     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
1367     if (forUnmarshaling->waitSemaphoreCount)
1368     {
1369         uint64_t* cgen_var_42;
1370         vkStream->alloc((void**)&cgen_var_42, forUnmarshaling->waitSemaphoreCount * 8);
1371         vkStream->read((uint64_t*)cgen_var_42, forUnmarshaling->waitSemaphoreCount * 8);
1372         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_42, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
1373     }
1374     vkStream->read((uint32_t*)&forUnmarshaling->bufferBindCount, sizeof(uint32_t));
1375     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferBindCount; ++i)
1376     {
1377         unmarshal_VkSparseBufferMemoryBindInfo(vkStream, (VkSparseBufferMemoryBindInfo*)(forUnmarshaling->pBufferBinds + i));
1378     }
1379     vkStream->read((uint32_t*)&forUnmarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1380     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageOpaqueBindCount; ++i)
1381     {
1382         unmarshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (VkSparseImageOpaqueMemoryBindInfo*)(forUnmarshaling->pImageOpaqueBinds + i));
1383     }
1384     vkStream->read((uint32_t*)&forUnmarshaling->imageBindCount, sizeof(uint32_t));
1385     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageBindCount; ++i)
1386     {
1387         unmarshal_VkSparseImageMemoryBindInfo(vkStream, (VkSparseImageMemoryBindInfo*)(forUnmarshaling->pImageBinds + i));
1388     }
1389     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
1390     if (forUnmarshaling->signalSemaphoreCount)
1391     {
1392         uint64_t* cgen_var_43;
1393         vkStream->alloc((void**)&cgen_var_43, forUnmarshaling->signalSemaphoreCount * 8);
1394         vkStream->read((uint64_t*)cgen_var_43, forUnmarshaling->signalSemaphoreCount * 8);
1395         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_43, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
1396     }
1397 }
1398 
marshal_VkFenceCreateInfo(VulkanStreamGuest * vkStream,const VkFenceCreateInfo * forMarshaling)1399 void marshal_VkFenceCreateInfo(
1400     VulkanStreamGuest* vkStream,
1401     const VkFenceCreateInfo* forMarshaling)
1402 {
1403     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1404     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1405     vkStream->putBe32(pNext_size);
1406     if (pNext_size)
1407     {
1408         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1409         marshal_extension_struct(vkStream, forMarshaling->pNext);
1410     }
1411     vkStream->write((VkFenceCreateFlags*)&forMarshaling->flags, sizeof(VkFenceCreateFlags));
1412 }
1413 
unmarshal_VkFenceCreateInfo(VulkanStreamGuest * vkStream,VkFenceCreateInfo * forUnmarshaling)1414 void unmarshal_VkFenceCreateInfo(
1415     VulkanStreamGuest* vkStream,
1416     VkFenceCreateInfo* forUnmarshaling)
1417 {
1418     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1419     size_t pNext_size;
1420     pNext_size = vkStream->getBe32();
1421     if (pNext_size)
1422     {
1423         uint64_t pNext_placeholder;
1424         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1425         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1426     }
1427     vkStream->read((VkFenceCreateFlags*)&forUnmarshaling->flags, sizeof(VkFenceCreateFlags));
1428 }
1429 
marshal_VkSemaphoreCreateInfo(VulkanStreamGuest * vkStream,const VkSemaphoreCreateInfo * forMarshaling)1430 void marshal_VkSemaphoreCreateInfo(
1431     VulkanStreamGuest* vkStream,
1432     const VkSemaphoreCreateInfo* forMarshaling)
1433 {
1434     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1435     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1436     vkStream->putBe32(pNext_size);
1437     if (pNext_size)
1438     {
1439         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1440         marshal_extension_struct(vkStream, forMarshaling->pNext);
1441     }
1442     vkStream->write((VkSemaphoreCreateFlags*)&forMarshaling->flags, sizeof(VkSemaphoreCreateFlags));
1443 }
1444 
unmarshal_VkSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkSemaphoreCreateInfo * forUnmarshaling)1445 void unmarshal_VkSemaphoreCreateInfo(
1446     VulkanStreamGuest* vkStream,
1447     VkSemaphoreCreateInfo* forUnmarshaling)
1448 {
1449     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1450     size_t pNext_size;
1451     pNext_size = vkStream->getBe32();
1452     if (pNext_size)
1453     {
1454         uint64_t pNext_placeholder;
1455         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1456         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1457     }
1458     vkStream->read((VkSemaphoreCreateFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreCreateFlags));
1459 }
1460 
marshal_VkEventCreateInfo(VulkanStreamGuest * vkStream,const VkEventCreateInfo * forMarshaling)1461 void marshal_VkEventCreateInfo(
1462     VulkanStreamGuest* vkStream,
1463     const VkEventCreateInfo* forMarshaling)
1464 {
1465     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1466     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1467     vkStream->putBe32(pNext_size);
1468     if (pNext_size)
1469     {
1470         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1471         marshal_extension_struct(vkStream, forMarshaling->pNext);
1472     }
1473     vkStream->write((VkEventCreateFlags*)&forMarshaling->flags, sizeof(VkEventCreateFlags));
1474 }
1475 
unmarshal_VkEventCreateInfo(VulkanStreamGuest * vkStream,VkEventCreateInfo * forUnmarshaling)1476 void unmarshal_VkEventCreateInfo(
1477     VulkanStreamGuest* vkStream,
1478     VkEventCreateInfo* forUnmarshaling)
1479 {
1480     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1481     size_t pNext_size;
1482     pNext_size = vkStream->getBe32();
1483     if (pNext_size)
1484     {
1485         uint64_t pNext_placeholder;
1486         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1487         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1488     }
1489     vkStream->read((VkEventCreateFlags*)&forUnmarshaling->flags, sizeof(VkEventCreateFlags));
1490 }
1491 
marshal_VkQueryPoolCreateInfo(VulkanStreamGuest * vkStream,const VkQueryPoolCreateInfo * forMarshaling)1492 void marshal_VkQueryPoolCreateInfo(
1493     VulkanStreamGuest* vkStream,
1494     const VkQueryPoolCreateInfo* forMarshaling)
1495 {
1496     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1497     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1498     vkStream->putBe32(pNext_size);
1499     if (pNext_size)
1500     {
1501         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1502         marshal_extension_struct(vkStream, forMarshaling->pNext);
1503     }
1504     vkStream->write((VkQueryPoolCreateFlags*)&forMarshaling->flags, sizeof(VkQueryPoolCreateFlags));
1505     vkStream->write((VkQueryType*)&forMarshaling->queryType, sizeof(VkQueryType));
1506     vkStream->write((uint32_t*)&forMarshaling->queryCount, sizeof(uint32_t));
1507     vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
1508 }
1509 
unmarshal_VkQueryPoolCreateInfo(VulkanStreamGuest * vkStream,VkQueryPoolCreateInfo * forUnmarshaling)1510 void unmarshal_VkQueryPoolCreateInfo(
1511     VulkanStreamGuest* vkStream,
1512     VkQueryPoolCreateInfo* forUnmarshaling)
1513 {
1514     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1515     size_t pNext_size;
1516     pNext_size = vkStream->getBe32();
1517     if (pNext_size)
1518     {
1519         uint64_t pNext_placeholder;
1520         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1521         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1522     }
1523     vkStream->read((VkQueryPoolCreateFlags*)&forUnmarshaling->flags, sizeof(VkQueryPoolCreateFlags));
1524     vkStream->read((VkQueryType*)&forUnmarshaling->queryType, sizeof(VkQueryType));
1525     vkStream->read((uint32_t*)&forUnmarshaling->queryCount, sizeof(uint32_t));
1526     vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
1527 }
1528 
marshal_VkBufferCreateInfo(VulkanStreamGuest * vkStream,const VkBufferCreateInfo * forMarshaling)1529 void marshal_VkBufferCreateInfo(
1530     VulkanStreamGuest* vkStream,
1531     const VkBufferCreateInfo* forMarshaling)
1532 {
1533     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1534     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1535     vkStream->putBe32(pNext_size);
1536     if (pNext_size)
1537     {
1538         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1539         marshal_extension_struct(vkStream, forMarshaling->pNext);
1540     }
1541     vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
1542     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1543     vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
1544     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1545     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1546     // WARNING PTR CHECK
1547     uint64_t cgen_var_44 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1548     vkStream->putBe64(cgen_var_44);
1549     if (forMarshaling->pQueueFamilyIndices)
1550     {
1551         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1552     }
1553 }
1554 
unmarshal_VkBufferCreateInfo(VulkanStreamGuest * vkStream,VkBufferCreateInfo * forUnmarshaling)1555 void unmarshal_VkBufferCreateInfo(
1556     VulkanStreamGuest* vkStream,
1557     VkBufferCreateInfo* forUnmarshaling)
1558 {
1559     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1560     size_t pNext_size;
1561     pNext_size = vkStream->getBe32();
1562     if (pNext_size)
1563     {
1564         uint64_t pNext_placeholder;
1565         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1566         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1567     }
1568     vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
1569     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1570     vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
1571     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
1572     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1573     // WARNING PTR CHECK
1574     const uint32_t* check_pQueueFamilyIndices;
1575     check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
1576     if (forUnmarshaling->pQueueFamilyIndices)
1577     {
1578         if (!(check_pQueueFamilyIndices))
1579         {
1580             fprintf(stderr, "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and host\n");
1581         }
1582         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices, forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1583     }
1584 }
1585 
marshal_VkBufferViewCreateInfo(VulkanStreamGuest * vkStream,const VkBufferViewCreateInfo * forMarshaling)1586 void marshal_VkBufferViewCreateInfo(
1587     VulkanStreamGuest* vkStream,
1588     const VkBufferViewCreateInfo* forMarshaling)
1589 {
1590     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1591     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1592     vkStream->putBe32(pNext_size);
1593     if (pNext_size)
1594     {
1595         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1596         marshal_extension_struct(vkStream, forMarshaling->pNext);
1597     }
1598     vkStream->write((VkBufferViewCreateFlags*)&forMarshaling->flags, sizeof(VkBufferViewCreateFlags));
1599     uint64_t cgen_var_46;
1600     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_46, 1);
1601     vkStream->write((uint64_t*)&cgen_var_46, 1 * 8);
1602     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1603     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1604     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
1605 }
1606 
unmarshal_VkBufferViewCreateInfo(VulkanStreamGuest * vkStream,VkBufferViewCreateInfo * forUnmarshaling)1607 void unmarshal_VkBufferViewCreateInfo(
1608     VulkanStreamGuest* vkStream,
1609     VkBufferViewCreateInfo* forUnmarshaling)
1610 {
1611     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1612     size_t pNext_size;
1613     pNext_size = vkStream->getBe32();
1614     if (pNext_size)
1615     {
1616         uint64_t pNext_placeholder;
1617         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1618         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1619     }
1620     vkStream->read((VkBufferViewCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferViewCreateFlags));
1621     uint64_t cgen_var_47;
1622     vkStream->read((uint64_t*)&cgen_var_47, 1 * 8);
1623     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_47, (VkBuffer*)&forUnmarshaling->buffer, 1);
1624     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1625     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1626     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
1627 }
1628 
marshal_VkImageCreateInfo(VulkanStreamGuest * vkStream,const VkImageCreateInfo * forMarshaling)1629 void marshal_VkImageCreateInfo(
1630     VulkanStreamGuest* vkStream,
1631     const VkImageCreateInfo* forMarshaling)
1632 {
1633     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1634     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1635     vkStream->putBe32(pNext_size);
1636     if (pNext_size)
1637     {
1638         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1639         marshal_extension_struct(vkStream, forMarshaling->pNext);
1640     }
1641     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
1642     vkStream->write((VkImageType*)&forMarshaling->imageType, sizeof(VkImageType));
1643     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1644     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
1645     vkStream->write((uint32_t*)&forMarshaling->mipLevels, sizeof(uint32_t));
1646     vkStream->write((uint32_t*)&forMarshaling->arrayLayers, sizeof(uint32_t));
1647     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
1648     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
1649     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
1650     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1651     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1652     // WARNING PTR CHECK
1653     uint64_t cgen_var_48 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1654     vkStream->putBe64(cgen_var_48);
1655     if (forMarshaling->pQueueFamilyIndices)
1656     {
1657         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1658     }
1659     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
1660 }
1661 
unmarshal_VkImageCreateInfo(VulkanStreamGuest * vkStream,VkImageCreateInfo * forUnmarshaling)1662 void unmarshal_VkImageCreateInfo(
1663     VulkanStreamGuest* vkStream,
1664     VkImageCreateInfo* forUnmarshaling)
1665 {
1666     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1667     size_t pNext_size;
1668     pNext_size = vkStream->getBe32();
1669     if (pNext_size)
1670     {
1671         uint64_t pNext_placeholder;
1672         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1673         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1674     }
1675     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
1676     vkStream->read((VkImageType*)&forUnmarshaling->imageType, sizeof(VkImageType));
1677     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1678     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
1679     vkStream->read((uint32_t*)&forUnmarshaling->mipLevels, sizeof(uint32_t));
1680     vkStream->read((uint32_t*)&forUnmarshaling->arrayLayers, sizeof(uint32_t));
1681     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
1682     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
1683     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
1684     vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
1685     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1686     // WARNING PTR CHECK
1687     const uint32_t* check_pQueueFamilyIndices;
1688     check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
1689     if (forUnmarshaling->pQueueFamilyIndices)
1690     {
1691         if (!(check_pQueueFamilyIndices))
1692         {
1693             fprintf(stderr, "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and host\n");
1694         }
1695         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices, forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1696     }
1697     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
1698 }
1699 
marshal_VkSubresourceLayout(VulkanStreamGuest * vkStream,const VkSubresourceLayout * forMarshaling)1700 void marshal_VkSubresourceLayout(
1701     VulkanStreamGuest* vkStream,
1702     const VkSubresourceLayout* forMarshaling)
1703 {
1704     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1705     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1706     vkStream->write((VkDeviceSize*)&forMarshaling->rowPitch, sizeof(VkDeviceSize));
1707     vkStream->write((VkDeviceSize*)&forMarshaling->arrayPitch, sizeof(VkDeviceSize));
1708     vkStream->write((VkDeviceSize*)&forMarshaling->depthPitch, sizeof(VkDeviceSize));
1709 }
1710 
unmarshal_VkSubresourceLayout(VulkanStreamGuest * vkStream,VkSubresourceLayout * forUnmarshaling)1711 void unmarshal_VkSubresourceLayout(
1712     VulkanStreamGuest* vkStream,
1713     VkSubresourceLayout* forUnmarshaling)
1714 {
1715     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1716     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1717     vkStream->read((VkDeviceSize*)&forUnmarshaling->rowPitch, sizeof(VkDeviceSize));
1718     vkStream->read((VkDeviceSize*)&forUnmarshaling->arrayPitch, sizeof(VkDeviceSize));
1719     vkStream->read((VkDeviceSize*)&forUnmarshaling->depthPitch, sizeof(VkDeviceSize));
1720 }
1721 
marshal_VkComponentMapping(VulkanStreamGuest * vkStream,const VkComponentMapping * forMarshaling)1722 void marshal_VkComponentMapping(
1723     VulkanStreamGuest* vkStream,
1724     const VkComponentMapping* forMarshaling)
1725 {
1726     vkStream->write((VkComponentSwizzle*)&forMarshaling->r, sizeof(VkComponentSwizzle));
1727     vkStream->write((VkComponentSwizzle*)&forMarshaling->g, sizeof(VkComponentSwizzle));
1728     vkStream->write((VkComponentSwizzle*)&forMarshaling->b, sizeof(VkComponentSwizzle));
1729     vkStream->write((VkComponentSwizzle*)&forMarshaling->a, sizeof(VkComponentSwizzle));
1730 }
1731 
unmarshal_VkComponentMapping(VulkanStreamGuest * vkStream,VkComponentMapping * forUnmarshaling)1732 void unmarshal_VkComponentMapping(
1733     VulkanStreamGuest* vkStream,
1734     VkComponentMapping* forUnmarshaling)
1735 {
1736     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->r, sizeof(VkComponentSwizzle));
1737     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->g, sizeof(VkComponentSwizzle));
1738     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->b, sizeof(VkComponentSwizzle));
1739     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->a, sizeof(VkComponentSwizzle));
1740 }
1741 
marshal_VkImageSubresourceRange(VulkanStreamGuest * vkStream,const VkImageSubresourceRange * forMarshaling)1742 void marshal_VkImageSubresourceRange(
1743     VulkanStreamGuest* vkStream,
1744     const VkImageSubresourceRange* forMarshaling)
1745 {
1746     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1747     vkStream->write((uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
1748     vkStream->write((uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
1749     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
1750     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
1751 }
1752 
unmarshal_VkImageSubresourceRange(VulkanStreamGuest * vkStream,VkImageSubresourceRange * forUnmarshaling)1753 void unmarshal_VkImageSubresourceRange(
1754     VulkanStreamGuest* vkStream,
1755     VkImageSubresourceRange* forUnmarshaling)
1756 {
1757     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1758     vkStream->read((uint32_t*)&forUnmarshaling->baseMipLevel, sizeof(uint32_t));
1759     vkStream->read((uint32_t*)&forUnmarshaling->levelCount, sizeof(uint32_t));
1760     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
1761     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
1762 }
1763 
marshal_VkImageViewCreateInfo(VulkanStreamGuest * vkStream,const VkImageViewCreateInfo * forMarshaling)1764 void marshal_VkImageViewCreateInfo(
1765     VulkanStreamGuest* vkStream,
1766     const VkImageViewCreateInfo* forMarshaling)
1767 {
1768     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1769     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1770     vkStream->putBe32(pNext_size);
1771     if (pNext_size)
1772     {
1773         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1774         marshal_extension_struct(vkStream, forMarshaling->pNext);
1775     }
1776     vkStream->write((VkImageViewCreateFlags*)&forMarshaling->flags, sizeof(VkImageViewCreateFlags));
1777     uint64_t cgen_var_50;
1778     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_50, 1);
1779     vkStream->write((uint64_t*)&cgen_var_50, 1 * 8);
1780     vkStream->write((VkImageViewType*)&forMarshaling->viewType, sizeof(VkImageViewType));
1781     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1782     marshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forMarshaling->components));
1783     marshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
1784 }
1785 
unmarshal_VkImageViewCreateInfo(VulkanStreamGuest * vkStream,VkImageViewCreateInfo * forUnmarshaling)1786 void unmarshal_VkImageViewCreateInfo(
1787     VulkanStreamGuest* vkStream,
1788     VkImageViewCreateInfo* forUnmarshaling)
1789 {
1790     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1791     size_t pNext_size;
1792     pNext_size = vkStream->getBe32();
1793     if (pNext_size)
1794     {
1795         uint64_t pNext_placeholder;
1796         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1797         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1798     }
1799     vkStream->read((VkImageViewCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageViewCreateFlags));
1800     uint64_t cgen_var_51;
1801     vkStream->read((uint64_t*)&cgen_var_51, 1 * 8);
1802     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_51, (VkImage*)&forUnmarshaling->image, 1);
1803     vkStream->read((VkImageViewType*)&forUnmarshaling->viewType, sizeof(VkImageViewType));
1804     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1805     unmarshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forUnmarshaling->components));
1806     unmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
1807 }
1808 
marshal_VkShaderModuleCreateInfo(VulkanStreamGuest * vkStream,const VkShaderModuleCreateInfo * forMarshaling)1809 void marshal_VkShaderModuleCreateInfo(
1810     VulkanStreamGuest* vkStream,
1811     const VkShaderModuleCreateInfo* forMarshaling)
1812 {
1813     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1814     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1815     vkStream->putBe32(pNext_size);
1816     if (pNext_size)
1817     {
1818         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1819         marshal_extension_struct(vkStream, forMarshaling->pNext);
1820     }
1821     vkStream->write((VkShaderModuleCreateFlags*)&forMarshaling->flags, sizeof(VkShaderModuleCreateFlags));
1822     uint64_t cgen_var_52 = (uint64_t)forMarshaling->codeSize;
1823     vkStream->putBe64(cgen_var_52);
1824     vkStream->write((const uint32_t*)forMarshaling->pCode, (forMarshaling->codeSize / 4) * sizeof(const uint32_t));
1825 }
1826 
unmarshal_VkShaderModuleCreateInfo(VulkanStreamGuest * vkStream,VkShaderModuleCreateInfo * forUnmarshaling)1827 void unmarshal_VkShaderModuleCreateInfo(
1828     VulkanStreamGuest* vkStream,
1829     VkShaderModuleCreateInfo* forUnmarshaling)
1830 {
1831     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1832     size_t pNext_size;
1833     pNext_size = vkStream->getBe32();
1834     if (pNext_size)
1835     {
1836         uint64_t pNext_placeholder;
1837         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1838         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1839     }
1840     vkStream->read((VkShaderModuleCreateFlags*)&forUnmarshaling->flags, sizeof(VkShaderModuleCreateFlags));
1841     forUnmarshaling->codeSize = (size_t)vkStream->getBe64();
1842     vkStream->read((uint32_t*)forUnmarshaling->pCode, (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t));
1843 }
1844 
marshal_VkPipelineCacheCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineCacheCreateInfo * forMarshaling)1845 void marshal_VkPipelineCacheCreateInfo(
1846     VulkanStreamGuest* vkStream,
1847     const VkPipelineCacheCreateInfo* forMarshaling)
1848 {
1849     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1850     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1851     vkStream->putBe32(pNext_size);
1852     if (pNext_size)
1853     {
1854         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1855         marshal_extension_struct(vkStream, forMarshaling->pNext);
1856     }
1857     vkStream->write((VkPipelineCacheCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCacheCreateFlags));
1858     uint64_t cgen_var_54 = (uint64_t)forMarshaling->initialDataSize;
1859     vkStream->putBe64(cgen_var_54);
1860     vkStream->write((const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
1861 }
1862 
unmarshal_VkPipelineCacheCreateInfo(VulkanStreamGuest * vkStream,VkPipelineCacheCreateInfo * forUnmarshaling)1863 void unmarshal_VkPipelineCacheCreateInfo(
1864     VulkanStreamGuest* vkStream,
1865     VkPipelineCacheCreateInfo* forUnmarshaling)
1866 {
1867     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1868     size_t pNext_size;
1869     pNext_size = vkStream->getBe32();
1870     if (pNext_size)
1871     {
1872         uint64_t pNext_placeholder;
1873         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1874         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1875     }
1876     vkStream->read((VkPipelineCacheCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCacheCreateFlags));
1877     forUnmarshaling->initialDataSize = (size_t)vkStream->getBe64();
1878     vkStream->read((void*)forUnmarshaling->pInitialData, forUnmarshaling->initialDataSize * sizeof(const uint8_t));
1879 }
1880 
marshal_VkSpecializationMapEntry(VulkanStreamGuest * vkStream,const VkSpecializationMapEntry * forMarshaling)1881 void marshal_VkSpecializationMapEntry(
1882     VulkanStreamGuest* vkStream,
1883     const VkSpecializationMapEntry* forMarshaling)
1884 {
1885     vkStream->write((uint32_t*)&forMarshaling->constantID, sizeof(uint32_t));
1886     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
1887     uint64_t cgen_var_56 = (uint64_t)forMarshaling->size;
1888     vkStream->putBe64(cgen_var_56);
1889 }
1890 
unmarshal_VkSpecializationMapEntry(VulkanStreamGuest * vkStream,VkSpecializationMapEntry * forUnmarshaling)1891 void unmarshal_VkSpecializationMapEntry(
1892     VulkanStreamGuest* vkStream,
1893     VkSpecializationMapEntry* forUnmarshaling)
1894 {
1895     vkStream->read((uint32_t*)&forUnmarshaling->constantID, sizeof(uint32_t));
1896     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
1897     forUnmarshaling->size = (size_t)vkStream->getBe64();
1898 }
1899 
marshal_VkSpecializationInfo(VulkanStreamGuest * vkStream,const VkSpecializationInfo * forMarshaling)1900 void marshal_VkSpecializationInfo(
1901     VulkanStreamGuest* vkStream,
1902     const VkSpecializationInfo* forMarshaling)
1903 {
1904     vkStream->write((uint32_t*)&forMarshaling->mapEntryCount, sizeof(uint32_t));
1905     for (uint32_t i = 0; i < (uint32_t)forMarshaling->mapEntryCount; ++i)
1906     {
1907         marshal_VkSpecializationMapEntry(vkStream, (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i));
1908     }
1909     uint64_t cgen_var_58 = (uint64_t)forMarshaling->dataSize;
1910     vkStream->putBe64(cgen_var_58);
1911     vkStream->write((const void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(const uint8_t));
1912 }
1913 
unmarshal_VkSpecializationInfo(VulkanStreamGuest * vkStream,VkSpecializationInfo * forUnmarshaling)1914 void unmarshal_VkSpecializationInfo(
1915     VulkanStreamGuest* vkStream,
1916     VkSpecializationInfo* forUnmarshaling)
1917 {
1918     vkStream->read((uint32_t*)&forUnmarshaling->mapEntryCount, sizeof(uint32_t));
1919     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mapEntryCount; ++i)
1920     {
1921         unmarshal_VkSpecializationMapEntry(vkStream, (VkSpecializationMapEntry*)(forUnmarshaling->pMapEntries + i));
1922     }
1923     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
1924     vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(const uint8_t));
1925 }
1926 
marshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineShaderStageCreateInfo * forMarshaling)1927 void marshal_VkPipelineShaderStageCreateInfo(
1928     VulkanStreamGuest* vkStream,
1929     const VkPipelineShaderStageCreateInfo* forMarshaling)
1930 {
1931     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1932     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1933     vkStream->putBe32(pNext_size);
1934     if (pNext_size)
1935     {
1936         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1937         marshal_extension_struct(vkStream, forMarshaling->pNext);
1938     }
1939     vkStream->write((VkPipelineShaderStageCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineShaderStageCreateFlags));
1940     vkStream->write((VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
1941     uint64_t cgen_var_60;
1942     vkStream->handleMapping()->mapHandles_VkShaderModule_u64(&forMarshaling->module, &cgen_var_60, 1);
1943     vkStream->write((uint64_t*)&cgen_var_60, 1 * 8);
1944     vkStream->putString(forMarshaling->pName);
1945     // WARNING PTR CHECK
1946     uint64_t cgen_var_61 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
1947     vkStream->putBe64(cgen_var_61);
1948     if (forMarshaling->pSpecializationInfo)
1949     {
1950         marshal_VkSpecializationInfo(vkStream, (const VkSpecializationInfo*)(forMarshaling->pSpecializationInfo));
1951     }
1952 }
1953 
unmarshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest * vkStream,VkPipelineShaderStageCreateInfo * forUnmarshaling)1954 void unmarshal_VkPipelineShaderStageCreateInfo(
1955     VulkanStreamGuest* vkStream,
1956     VkPipelineShaderStageCreateInfo* forUnmarshaling)
1957 {
1958     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1959     size_t pNext_size;
1960     pNext_size = vkStream->getBe32();
1961     if (pNext_size)
1962     {
1963         uint64_t pNext_placeholder;
1964         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1965         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1966     }
1967     vkStream->read((VkPipelineShaderStageCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineShaderStageCreateFlags));
1968     vkStream->read((VkShaderStageFlagBits*)&forUnmarshaling->stage, sizeof(VkShaderStageFlagBits));
1969     uint64_t cgen_var_62;
1970     vkStream->read((uint64_t*)&cgen_var_62, 1 * 8);
1971     vkStream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_62, (VkShaderModule*)&forUnmarshaling->module, 1);
1972     vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
1973     // WARNING PTR CHECK
1974     const VkSpecializationInfo* check_pSpecializationInfo;
1975     check_pSpecializationInfo = (const VkSpecializationInfo*)(uintptr_t)vkStream->getBe64();
1976     if (forUnmarshaling->pSpecializationInfo)
1977     {
1978         if (!(check_pSpecializationInfo))
1979         {
1980             fprintf(stderr, "fatal: forUnmarshaling->pSpecializationInfo inconsistent between guest and host\n");
1981         }
1982         unmarshal_VkSpecializationInfo(vkStream, (VkSpecializationInfo*)(forUnmarshaling->pSpecializationInfo));
1983     }
1984 }
1985 
marshal_VkVertexInputBindingDescription(VulkanStreamGuest * vkStream,const VkVertexInputBindingDescription * forMarshaling)1986 void marshal_VkVertexInputBindingDescription(
1987     VulkanStreamGuest* vkStream,
1988     const VkVertexInputBindingDescription* forMarshaling)
1989 {
1990     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
1991     vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
1992     vkStream->write((VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
1993 }
1994 
unmarshal_VkVertexInputBindingDescription(VulkanStreamGuest * vkStream,VkVertexInputBindingDescription * forUnmarshaling)1995 void unmarshal_VkVertexInputBindingDescription(
1996     VulkanStreamGuest* vkStream,
1997     VkVertexInputBindingDescription* forUnmarshaling)
1998 {
1999     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
2000     vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
2001     vkStream->read((VkVertexInputRate*)&forUnmarshaling->inputRate, sizeof(VkVertexInputRate));
2002 }
2003 
marshal_VkVertexInputAttributeDescription(VulkanStreamGuest * vkStream,const VkVertexInputAttributeDescription * forMarshaling)2004 void marshal_VkVertexInputAttributeDescription(
2005     VulkanStreamGuest* vkStream,
2006     const VkVertexInputAttributeDescription* forMarshaling)
2007 {
2008     vkStream->write((uint32_t*)&forMarshaling->location, sizeof(uint32_t));
2009     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
2010     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
2011     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2012 }
2013 
unmarshal_VkVertexInputAttributeDescription(VulkanStreamGuest * vkStream,VkVertexInputAttributeDescription * forUnmarshaling)2014 void unmarshal_VkVertexInputAttributeDescription(
2015     VulkanStreamGuest* vkStream,
2016     VkVertexInputAttributeDescription* forUnmarshaling)
2017 {
2018     vkStream->read((uint32_t*)&forUnmarshaling->location, sizeof(uint32_t));
2019     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
2020     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
2021     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
2022 }
2023 
marshal_VkPipelineVertexInputStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineVertexInputStateCreateInfo * forMarshaling)2024 void marshal_VkPipelineVertexInputStateCreateInfo(
2025     VulkanStreamGuest* vkStream,
2026     const VkPipelineVertexInputStateCreateInfo* forMarshaling)
2027 {
2028     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2029     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2030     vkStream->putBe32(pNext_size);
2031     if (pNext_size)
2032     {
2033         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2034         marshal_extension_struct(vkStream, forMarshaling->pNext);
2035     }
2036     vkStream->write((VkPipelineVertexInputStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineVertexInputStateCreateFlags));
2037     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
2038     for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDescriptionCount; ++i)
2039     {
2040         marshal_VkVertexInputBindingDescription(vkStream, (const VkVertexInputBindingDescription*)(forMarshaling->pVertexBindingDescriptions + i));
2041     }
2042     vkStream->write((uint32_t*)&forMarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
2043     for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexAttributeDescriptionCount; ++i)
2044     {
2045         marshal_VkVertexInputAttributeDescription(vkStream, (const VkVertexInputAttributeDescription*)(forMarshaling->pVertexAttributeDescriptions + i));
2046     }
2047 }
2048 
unmarshal_VkPipelineVertexInputStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineVertexInputStateCreateInfo * forUnmarshaling)2049 void unmarshal_VkPipelineVertexInputStateCreateInfo(
2050     VulkanStreamGuest* vkStream,
2051     VkPipelineVertexInputStateCreateInfo* forUnmarshaling)
2052 {
2053     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2054     size_t pNext_size;
2055     pNext_size = vkStream->getBe32();
2056     if (pNext_size)
2057     {
2058         uint64_t pNext_placeholder;
2059         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2060         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2061     }
2062     vkStream->read((VkPipelineVertexInputStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineVertexInputStateCreateFlags));
2063     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
2064     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDescriptionCount; ++i)
2065     {
2066         unmarshal_VkVertexInputBindingDescription(vkStream, (VkVertexInputBindingDescription*)(forUnmarshaling->pVertexBindingDescriptions + i));
2067     }
2068     vkStream->read((uint32_t*)&forUnmarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
2069     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexAttributeDescriptionCount; ++i)
2070     {
2071         unmarshal_VkVertexInputAttributeDescription(vkStream, (VkVertexInputAttributeDescription*)(forUnmarshaling->pVertexAttributeDescriptions + i));
2072     }
2073 }
2074 
marshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineInputAssemblyStateCreateInfo * forMarshaling)2075 void marshal_VkPipelineInputAssemblyStateCreateInfo(
2076     VulkanStreamGuest* vkStream,
2077     const VkPipelineInputAssemblyStateCreateInfo* forMarshaling)
2078 {
2079     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2080     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2081     vkStream->putBe32(pNext_size);
2082     if (pNext_size)
2083     {
2084         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2085         marshal_extension_struct(vkStream, forMarshaling->pNext);
2086     }
2087     vkStream->write((VkPipelineInputAssemblyStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineInputAssemblyStateCreateFlags));
2088     vkStream->write((VkPrimitiveTopology*)&forMarshaling->topology, sizeof(VkPrimitiveTopology));
2089     vkStream->write((VkBool32*)&forMarshaling->primitiveRestartEnable, sizeof(VkBool32));
2090 }
2091 
unmarshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineInputAssemblyStateCreateInfo * forUnmarshaling)2092 void unmarshal_VkPipelineInputAssemblyStateCreateInfo(
2093     VulkanStreamGuest* vkStream,
2094     VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling)
2095 {
2096     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2097     size_t pNext_size;
2098     pNext_size = vkStream->getBe32();
2099     if (pNext_size)
2100     {
2101         uint64_t pNext_placeholder;
2102         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2103         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2104     }
2105     vkStream->read((VkPipelineInputAssemblyStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineInputAssemblyStateCreateFlags));
2106     vkStream->read((VkPrimitiveTopology*)&forUnmarshaling->topology, sizeof(VkPrimitiveTopology));
2107     vkStream->read((VkBool32*)&forUnmarshaling->primitiveRestartEnable, sizeof(VkBool32));
2108 }
2109 
marshal_VkPipelineTessellationStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineTessellationStateCreateInfo * forMarshaling)2110 void marshal_VkPipelineTessellationStateCreateInfo(
2111     VulkanStreamGuest* vkStream,
2112     const VkPipelineTessellationStateCreateInfo* forMarshaling)
2113 {
2114     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2115     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2116     vkStream->putBe32(pNext_size);
2117     if (pNext_size)
2118     {
2119         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2120         marshal_extension_struct(vkStream, forMarshaling->pNext);
2121     }
2122     vkStream->write((VkPipelineTessellationStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineTessellationStateCreateFlags));
2123     vkStream->write((uint32_t*)&forMarshaling->patchControlPoints, sizeof(uint32_t));
2124 }
2125 
unmarshal_VkPipelineTessellationStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineTessellationStateCreateInfo * forUnmarshaling)2126 void unmarshal_VkPipelineTessellationStateCreateInfo(
2127     VulkanStreamGuest* vkStream,
2128     VkPipelineTessellationStateCreateInfo* forUnmarshaling)
2129 {
2130     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2131     size_t pNext_size;
2132     pNext_size = vkStream->getBe32();
2133     if (pNext_size)
2134     {
2135         uint64_t pNext_placeholder;
2136         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2137         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2138     }
2139     vkStream->read((VkPipelineTessellationStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineTessellationStateCreateFlags));
2140     vkStream->read((uint32_t*)&forUnmarshaling->patchControlPoints, sizeof(uint32_t));
2141 }
2142 
marshal_VkViewport(VulkanStreamGuest * vkStream,const VkViewport * forMarshaling)2143 void marshal_VkViewport(
2144     VulkanStreamGuest* vkStream,
2145     const VkViewport* forMarshaling)
2146 {
2147     vkStream->write((float*)&forMarshaling->x, sizeof(float));
2148     vkStream->write((float*)&forMarshaling->y, sizeof(float));
2149     vkStream->write((float*)&forMarshaling->width, sizeof(float));
2150     vkStream->write((float*)&forMarshaling->height, sizeof(float));
2151     vkStream->write((float*)&forMarshaling->minDepth, sizeof(float));
2152     vkStream->write((float*)&forMarshaling->maxDepth, sizeof(float));
2153 }
2154 
unmarshal_VkViewport(VulkanStreamGuest * vkStream,VkViewport * forUnmarshaling)2155 void unmarshal_VkViewport(
2156     VulkanStreamGuest* vkStream,
2157     VkViewport* forUnmarshaling)
2158 {
2159     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
2160     vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
2161     vkStream->read((float*)&forUnmarshaling->width, sizeof(float));
2162     vkStream->read((float*)&forUnmarshaling->height, sizeof(float));
2163     vkStream->read((float*)&forUnmarshaling->minDepth, sizeof(float));
2164     vkStream->read((float*)&forUnmarshaling->maxDepth, sizeof(float));
2165 }
2166 
marshal_VkOffset2D(VulkanStreamGuest * vkStream,const VkOffset2D * forMarshaling)2167 void marshal_VkOffset2D(
2168     VulkanStreamGuest* vkStream,
2169     const VkOffset2D* forMarshaling)
2170 {
2171     vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
2172     vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
2173 }
2174 
unmarshal_VkOffset2D(VulkanStreamGuest * vkStream,VkOffset2D * forUnmarshaling)2175 void unmarshal_VkOffset2D(
2176     VulkanStreamGuest* vkStream,
2177     VkOffset2D* forUnmarshaling)
2178 {
2179     vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
2180     vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
2181 }
2182 
marshal_VkExtent2D(VulkanStreamGuest * vkStream,const VkExtent2D * forMarshaling)2183 void marshal_VkExtent2D(
2184     VulkanStreamGuest* vkStream,
2185     const VkExtent2D* forMarshaling)
2186 {
2187     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
2188     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
2189 }
2190 
unmarshal_VkExtent2D(VulkanStreamGuest * vkStream,VkExtent2D * forUnmarshaling)2191 void unmarshal_VkExtent2D(
2192     VulkanStreamGuest* vkStream,
2193     VkExtent2D* forUnmarshaling)
2194 {
2195     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
2196     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
2197 }
2198 
marshal_VkRect2D(VulkanStreamGuest * vkStream,const VkRect2D * forMarshaling)2199 void marshal_VkRect2D(
2200     VulkanStreamGuest* vkStream,
2201     const VkRect2D* forMarshaling)
2202 {
2203     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
2204     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent));
2205 }
2206 
unmarshal_VkRect2D(VulkanStreamGuest * vkStream,VkRect2D * forUnmarshaling)2207 void unmarshal_VkRect2D(
2208     VulkanStreamGuest* vkStream,
2209     VkRect2D* forUnmarshaling)
2210 {
2211     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
2212     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->extent));
2213 }
2214 
marshal_VkPipelineViewportStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineViewportStateCreateInfo * forMarshaling)2215 void marshal_VkPipelineViewportStateCreateInfo(
2216     VulkanStreamGuest* vkStream,
2217     const VkPipelineViewportStateCreateInfo* forMarshaling)
2218 {
2219     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2220     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2221     vkStream->putBe32(pNext_size);
2222     if (pNext_size)
2223     {
2224         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2225         marshal_extension_struct(vkStream, forMarshaling->pNext);
2226     }
2227     vkStream->write((VkPipelineViewportStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineViewportStateCreateFlags));
2228     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
2229     // WARNING PTR CHECK
2230     uint64_t cgen_var_64 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
2231     vkStream->putBe64(cgen_var_64);
2232     if (forMarshaling->pViewports)
2233     {
2234         for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
2235         {
2236             marshal_VkViewport(vkStream, (const VkViewport*)(forMarshaling->pViewports + i));
2237         }
2238     }
2239     vkStream->write((uint32_t*)&forMarshaling->scissorCount, sizeof(uint32_t));
2240     // WARNING PTR CHECK
2241     uint64_t cgen_var_65 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
2242     vkStream->putBe64(cgen_var_65);
2243     if (forMarshaling->pScissors)
2244     {
2245         for (uint32_t i = 0; i < (uint32_t)forMarshaling->scissorCount; ++i)
2246         {
2247             marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pScissors + i));
2248         }
2249     }
2250 }
2251 
unmarshal_VkPipelineViewportStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineViewportStateCreateInfo * forUnmarshaling)2252 void unmarshal_VkPipelineViewportStateCreateInfo(
2253     VulkanStreamGuest* vkStream,
2254     VkPipelineViewportStateCreateInfo* forUnmarshaling)
2255 {
2256     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2257     size_t pNext_size;
2258     pNext_size = vkStream->getBe32();
2259     if (pNext_size)
2260     {
2261         uint64_t pNext_placeholder;
2262         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2263         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2264     }
2265     vkStream->read((VkPipelineViewportStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineViewportStateCreateFlags));
2266     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
2267     // WARNING PTR CHECK
2268     const VkViewport* check_pViewports;
2269     check_pViewports = (const VkViewport*)(uintptr_t)vkStream->getBe64();
2270     if (forUnmarshaling->pViewports)
2271     {
2272         if (!(check_pViewports))
2273         {
2274             fprintf(stderr, "fatal: forUnmarshaling->pViewports inconsistent between guest and host\n");
2275         }
2276         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
2277         {
2278             unmarshal_VkViewport(vkStream, (VkViewport*)(forUnmarshaling->pViewports + i));
2279         }
2280     }
2281     vkStream->read((uint32_t*)&forUnmarshaling->scissorCount, sizeof(uint32_t));
2282     // WARNING PTR CHECK
2283     const VkRect2D* check_pScissors;
2284     check_pScissors = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
2285     if (forUnmarshaling->pScissors)
2286     {
2287         if (!(check_pScissors))
2288         {
2289             fprintf(stderr, "fatal: forUnmarshaling->pScissors inconsistent between guest and host\n");
2290         }
2291         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->scissorCount; ++i)
2292         {
2293             unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pScissors + i));
2294         }
2295     }
2296 }
2297 
marshal_VkPipelineRasterizationStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineRasterizationStateCreateInfo * forMarshaling)2298 void marshal_VkPipelineRasterizationStateCreateInfo(
2299     VulkanStreamGuest* vkStream,
2300     const VkPipelineRasterizationStateCreateInfo* forMarshaling)
2301 {
2302     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2303     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2304     vkStream->putBe32(pNext_size);
2305     if (pNext_size)
2306     {
2307         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2308         marshal_extension_struct(vkStream, forMarshaling->pNext);
2309     }
2310     vkStream->write((VkPipelineRasterizationStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineRasterizationStateCreateFlags));
2311     vkStream->write((VkBool32*)&forMarshaling->depthClampEnable, sizeof(VkBool32));
2312     vkStream->write((VkBool32*)&forMarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2313     vkStream->write((VkPolygonMode*)&forMarshaling->polygonMode, sizeof(VkPolygonMode));
2314     vkStream->write((VkCullModeFlags*)&forMarshaling->cullMode, sizeof(VkCullModeFlags));
2315     vkStream->write((VkFrontFace*)&forMarshaling->frontFace, sizeof(VkFrontFace));
2316     vkStream->write((VkBool32*)&forMarshaling->depthBiasEnable, sizeof(VkBool32));
2317     vkStream->write((float*)&forMarshaling->depthBiasConstantFactor, sizeof(float));
2318     vkStream->write((float*)&forMarshaling->depthBiasClamp, sizeof(float));
2319     vkStream->write((float*)&forMarshaling->depthBiasSlopeFactor, sizeof(float));
2320     vkStream->write((float*)&forMarshaling->lineWidth, sizeof(float));
2321 }
2322 
unmarshal_VkPipelineRasterizationStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineRasterizationStateCreateInfo * forUnmarshaling)2323 void unmarshal_VkPipelineRasterizationStateCreateInfo(
2324     VulkanStreamGuest* vkStream,
2325     VkPipelineRasterizationStateCreateInfo* forUnmarshaling)
2326 {
2327     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2328     size_t pNext_size;
2329     pNext_size = vkStream->getBe32();
2330     if (pNext_size)
2331     {
2332         uint64_t pNext_placeholder;
2333         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2334         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2335     }
2336     vkStream->read((VkPipelineRasterizationStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineRasterizationStateCreateFlags));
2337     vkStream->read((VkBool32*)&forUnmarshaling->depthClampEnable, sizeof(VkBool32));
2338     vkStream->read((VkBool32*)&forUnmarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2339     vkStream->read((VkPolygonMode*)&forUnmarshaling->polygonMode, sizeof(VkPolygonMode));
2340     vkStream->read((VkCullModeFlags*)&forUnmarshaling->cullMode, sizeof(VkCullModeFlags));
2341     vkStream->read((VkFrontFace*)&forUnmarshaling->frontFace, sizeof(VkFrontFace));
2342     vkStream->read((VkBool32*)&forUnmarshaling->depthBiasEnable, sizeof(VkBool32));
2343     vkStream->read((float*)&forUnmarshaling->depthBiasConstantFactor, sizeof(float));
2344     vkStream->read((float*)&forUnmarshaling->depthBiasClamp, sizeof(float));
2345     vkStream->read((float*)&forUnmarshaling->depthBiasSlopeFactor, sizeof(float));
2346     vkStream->read((float*)&forUnmarshaling->lineWidth, sizeof(float));
2347 }
2348 
marshal_VkPipelineMultisampleStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineMultisampleStateCreateInfo * forMarshaling)2349 void marshal_VkPipelineMultisampleStateCreateInfo(
2350     VulkanStreamGuest* vkStream,
2351     const VkPipelineMultisampleStateCreateInfo* forMarshaling)
2352 {
2353     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2354     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2355     vkStream->putBe32(pNext_size);
2356     if (pNext_size)
2357     {
2358         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2359         marshal_extension_struct(vkStream, forMarshaling->pNext);
2360     }
2361     vkStream->write((VkPipelineMultisampleStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineMultisampleStateCreateFlags));
2362     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
2363     vkStream->write((VkBool32*)&forMarshaling->sampleShadingEnable, sizeof(VkBool32));
2364     vkStream->write((float*)&forMarshaling->minSampleShading, sizeof(float));
2365     // WARNING PTR CHECK
2366     uint64_t cgen_var_68 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
2367     vkStream->putBe64(cgen_var_68);
2368     if (forMarshaling->pSampleMask)
2369     {
2370         vkStream->write((const VkSampleMask*)forMarshaling->pSampleMask, (((forMarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2371     }
2372     vkStream->write((VkBool32*)&forMarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2373     vkStream->write((VkBool32*)&forMarshaling->alphaToOneEnable, sizeof(VkBool32));
2374 }
2375 
unmarshal_VkPipelineMultisampleStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineMultisampleStateCreateInfo * forUnmarshaling)2376 void unmarshal_VkPipelineMultisampleStateCreateInfo(
2377     VulkanStreamGuest* vkStream,
2378     VkPipelineMultisampleStateCreateInfo* forUnmarshaling)
2379 {
2380     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2381     size_t pNext_size;
2382     pNext_size = vkStream->getBe32();
2383     if (pNext_size)
2384     {
2385         uint64_t pNext_placeholder;
2386         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2387         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2388     }
2389     vkStream->read((VkPipelineMultisampleStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineMultisampleStateCreateFlags));
2390     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
2391     vkStream->read((VkBool32*)&forUnmarshaling->sampleShadingEnable, sizeof(VkBool32));
2392     vkStream->read((float*)&forUnmarshaling->minSampleShading, sizeof(float));
2393     // WARNING PTR CHECK
2394     const VkSampleMask* check_pSampleMask;
2395     check_pSampleMask = (const VkSampleMask*)(uintptr_t)vkStream->getBe64();
2396     if (forUnmarshaling->pSampleMask)
2397     {
2398         if (!(check_pSampleMask))
2399         {
2400             fprintf(stderr, "fatal: forUnmarshaling->pSampleMask inconsistent between guest and host\n");
2401         }
2402         vkStream->read((VkSampleMask*)forUnmarshaling->pSampleMask, (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2403     }
2404     vkStream->read((VkBool32*)&forUnmarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2405     vkStream->read((VkBool32*)&forUnmarshaling->alphaToOneEnable, sizeof(VkBool32));
2406 }
2407 
marshal_VkStencilOpState(VulkanStreamGuest * vkStream,const VkStencilOpState * forMarshaling)2408 void marshal_VkStencilOpState(
2409     VulkanStreamGuest* vkStream,
2410     const VkStencilOpState* forMarshaling)
2411 {
2412     vkStream->write((VkStencilOp*)&forMarshaling->failOp, sizeof(VkStencilOp));
2413     vkStream->write((VkStencilOp*)&forMarshaling->passOp, sizeof(VkStencilOp));
2414     vkStream->write((VkStencilOp*)&forMarshaling->depthFailOp, sizeof(VkStencilOp));
2415     vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
2416     vkStream->write((uint32_t*)&forMarshaling->compareMask, sizeof(uint32_t));
2417     vkStream->write((uint32_t*)&forMarshaling->writeMask, sizeof(uint32_t));
2418     vkStream->write((uint32_t*)&forMarshaling->reference, sizeof(uint32_t));
2419 }
2420 
unmarshal_VkStencilOpState(VulkanStreamGuest * vkStream,VkStencilOpState * forUnmarshaling)2421 void unmarshal_VkStencilOpState(
2422     VulkanStreamGuest* vkStream,
2423     VkStencilOpState* forUnmarshaling)
2424 {
2425     vkStream->read((VkStencilOp*)&forUnmarshaling->failOp, sizeof(VkStencilOp));
2426     vkStream->read((VkStencilOp*)&forUnmarshaling->passOp, sizeof(VkStencilOp));
2427     vkStream->read((VkStencilOp*)&forUnmarshaling->depthFailOp, sizeof(VkStencilOp));
2428     vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
2429     vkStream->read((uint32_t*)&forUnmarshaling->compareMask, sizeof(uint32_t));
2430     vkStream->read((uint32_t*)&forUnmarshaling->writeMask, sizeof(uint32_t));
2431     vkStream->read((uint32_t*)&forUnmarshaling->reference, sizeof(uint32_t));
2432 }
2433 
marshal_VkPipelineDepthStencilStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineDepthStencilStateCreateInfo * forMarshaling)2434 void marshal_VkPipelineDepthStencilStateCreateInfo(
2435     VulkanStreamGuest* vkStream,
2436     const VkPipelineDepthStencilStateCreateInfo* forMarshaling)
2437 {
2438     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2439     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2440     vkStream->putBe32(pNext_size);
2441     if (pNext_size)
2442     {
2443         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2444         marshal_extension_struct(vkStream, forMarshaling->pNext);
2445     }
2446     vkStream->write((VkPipelineDepthStencilStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineDepthStencilStateCreateFlags));
2447     vkStream->write((VkBool32*)&forMarshaling->depthTestEnable, sizeof(VkBool32));
2448     vkStream->write((VkBool32*)&forMarshaling->depthWriteEnable, sizeof(VkBool32));
2449     vkStream->write((VkCompareOp*)&forMarshaling->depthCompareOp, sizeof(VkCompareOp));
2450     vkStream->write((VkBool32*)&forMarshaling->depthBoundsTestEnable, sizeof(VkBool32));
2451     vkStream->write((VkBool32*)&forMarshaling->stencilTestEnable, sizeof(VkBool32));
2452     marshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forMarshaling->front));
2453     marshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forMarshaling->back));
2454     vkStream->write((float*)&forMarshaling->minDepthBounds, sizeof(float));
2455     vkStream->write((float*)&forMarshaling->maxDepthBounds, sizeof(float));
2456 }
2457 
unmarshal_VkPipelineDepthStencilStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineDepthStencilStateCreateInfo * forUnmarshaling)2458 void unmarshal_VkPipelineDepthStencilStateCreateInfo(
2459     VulkanStreamGuest* vkStream,
2460     VkPipelineDepthStencilStateCreateInfo* forUnmarshaling)
2461 {
2462     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2463     size_t pNext_size;
2464     pNext_size = vkStream->getBe32();
2465     if (pNext_size)
2466     {
2467         uint64_t pNext_placeholder;
2468         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2469         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2470     }
2471     vkStream->read((VkPipelineDepthStencilStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineDepthStencilStateCreateFlags));
2472     vkStream->read((VkBool32*)&forUnmarshaling->depthTestEnable, sizeof(VkBool32));
2473     vkStream->read((VkBool32*)&forUnmarshaling->depthWriteEnable, sizeof(VkBool32));
2474     vkStream->read((VkCompareOp*)&forUnmarshaling->depthCompareOp, sizeof(VkCompareOp));
2475     vkStream->read((VkBool32*)&forUnmarshaling->depthBoundsTestEnable, sizeof(VkBool32));
2476     vkStream->read((VkBool32*)&forUnmarshaling->stencilTestEnable, sizeof(VkBool32));
2477     unmarshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forUnmarshaling->front));
2478     unmarshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forUnmarshaling->back));
2479     vkStream->read((float*)&forUnmarshaling->minDepthBounds, sizeof(float));
2480     vkStream->read((float*)&forUnmarshaling->maxDepthBounds, sizeof(float));
2481 }
2482 
marshal_VkPipelineColorBlendAttachmentState(VulkanStreamGuest * vkStream,const VkPipelineColorBlendAttachmentState * forMarshaling)2483 void marshal_VkPipelineColorBlendAttachmentState(
2484     VulkanStreamGuest* vkStream,
2485     const VkPipelineColorBlendAttachmentState* forMarshaling)
2486 {
2487     vkStream->write((VkBool32*)&forMarshaling->blendEnable, sizeof(VkBool32));
2488     vkStream->write((VkBlendFactor*)&forMarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
2489     vkStream->write((VkBlendFactor*)&forMarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
2490     vkStream->write((VkBlendOp*)&forMarshaling->colorBlendOp, sizeof(VkBlendOp));
2491     vkStream->write((VkBlendFactor*)&forMarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
2492     vkStream->write((VkBlendFactor*)&forMarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
2493     vkStream->write((VkBlendOp*)&forMarshaling->alphaBlendOp, sizeof(VkBlendOp));
2494     vkStream->write((VkColorComponentFlags*)&forMarshaling->colorWriteMask, sizeof(VkColorComponentFlags));
2495 }
2496 
unmarshal_VkPipelineColorBlendAttachmentState(VulkanStreamGuest * vkStream,VkPipelineColorBlendAttachmentState * forUnmarshaling)2497 void unmarshal_VkPipelineColorBlendAttachmentState(
2498     VulkanStreamGuest* vkStream,
2499     VkPipelineColorBlendAttachmentState* forUnmarshaling)
2500 {
2501     vkStream->read((VkBool32*)&forUnmarshaling->blendEnable, sizeof(VkBool32));
2502     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
2503     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
2504     vkStream->read((VkBlendOp*)&forUnmarshaling->colorBlendOp, sizeof(VkBlendOp));
2505     vkStream->read((VkBlendFactor*)&forUnmarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
2506     vkStream->read((VkBlendFactor*)&forUnmarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
2507     vkStream->read((VkBlendOp*)&forUnmarshaling->alphaBlendOp, sizeof(VkBlendOp));
2508     vkStream->read((VkColorComponentFlags*)&forUnmarshaling->colorWriteMask, sizeof(VkColorComponentFlags));
2509 }
2510 
marshal_VkPipelineColorBlendStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineColorBlendStateCreateInfo * forMarshaling)2511 void marshal_VkPipelineColorBlendStateCreateInfo(
2512     VulkanStreamGuest* vkStream,
2513     const VkPipelineColorBlendStateCreateInfo* forMarshaling)
2514 {
2515     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2516     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2517     vkStream->putBe32(pNext_size);
2518     if (pNext_size)
2519     {
2520         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2521         marshal_extension_struct(vkStream, forMarshaling->pNext);
2522     }
2523     vkStream->write((VkPipelineColorBlendStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineColorBlendStateCreateFlags));
2524     vkStream->write((VkBool32*)&forMarshaling->logicOpEnable, sizeof(VkBool32));
2525     vkStream->write((VkLogicOp*)&forMarshaling->logicOp, sizeof(VkLogicOp));
2526     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
2527     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
2528     {
2529         marshal_VkPipelineColorBlendAttachmentState(vkStream, (const VkPipelineColorBlendAttachmentState*)(forMarshaling->pAttachments + i));
2530     }
2531     vkStream->write((float*)forMarshaling->blendConstants, 4 * sizeof(float));
2532 }
2533 
unmarshal_VkPipelineColorBlendStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineColorBlendStateCreateInfo * forUnmarshaling)2534 void unmarshal_VkPipelineColorBlendStateCreateInfo(
2535     VulkanStreamGuest* vkStream,
2536     VkPipelineColorBlendStateCreateInfo* forUnmarshaling)
2537 {
2538     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2539     size_t pNext_size;
2540     pNext_size = vkStream->getBe32();
2541     if (pNext_size)
2542     {
2543         uint64_t pNext_placeholder;
2544         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2545         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2546     }
2547     vkStream->read((VkPipelineColorBlendStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineColorBlendStateCreateFlags));
2548     vkStream->read((VkBool32*)&forUnmarshaling->logicOpEnable, sizeof(VkBool32));
2549     vkStream->read((VkLogicOp*)&forUnmarshaling->logicOp, sizeof(VkLogicOp));
2550     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
2551     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
2552     {
2553         unmarshal_VkPipelineColorBlendAttachmentState(vkStream, (VkPipelineColorBlendAttachmentState*)(forUnmarshaling->pAttachments + i));
2554     }
2555     vkStream->read((float*)forUnmarshaling->blendConstants, 4 * sizeof(float));
2556 }
2557 
marshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineDynamicStateCreateInfo * forMarshaling)2558 void marshal_VkPipelineDynamicStateCreateInfo(
2559     VulkanStreamGuest* vkStream,
2560     const VkPipelineDynamicStateCreateInfo* forMarshaling)
2561 {
2562     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2563     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2564     vkStream->putBe32(pNext_size);
2565     if (pNext_size)
2566     {
2567         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2568         marshal_extension_struct(vkStream, forMarshaling->pNext);
2569     }
2570     vkStream->write((VkPipelineDynamicStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineDynamicStateCreateFlags));
2571     vkStream->write((uint32_t*)&forMarshaling->dynamicStateCount, sizeof(uint32_t));
2572     vkStream->write((const VkDynamicState*)forMarshaling->pDynamicStates, forMarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2573 }
2574 
unmarshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineDynamicStateCreateInfo * forUnmarshaling)2575 void unmarshal_VkPipelineDynamicStateCreateInfo(
2576     VulkanStreamGuest* vkStream,
2577     VkPipelineDynamicStateCreateInfo* forUnmarshaling)
2578 {
2579     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2580     size_t pNext_size;
2581     pNext_size = vkStream->getBe32();
2582     if (pNext_size)
2583     {
2584         uint64_t pNext_placeholder;
2585         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2586         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2587     }
2588     vkStream->read((VkPipelineDynamicStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineDynamicStateCreateFlags));
2589     vkStream->read((uint32_t*)&forUnmarshaling->dynamicStateCount, sizeof(uint32_t));
2590     vkStream->read((VkDynamicState*)forUnmarshaling->pDynamicStates, forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2591 }
2592 
marshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest * vkStream,const VkGraphicsPipelineCreateInfo * forMarshaling)2593 void marshal_VkGraphicsPipelineCreateInfo(
2594     VulkanStreamGuest* vkStream,
2595     const VkGraphicsPipelineCreateInfo* forMarshaling)
2596 {
2597     uint32_t hasRasterization = 1;
2598     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2599     {
2600         hasRasterization = (((0 == forMarshaling->pRasterizationState)) ? (0) : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable)));
2601         uint32_t cgen_var_70 = (uint32_t)hasRasterization;
2602         vkStream->putBe32(cgen_var_70);
2603     }
2604     uint32_t hasTessellation = 1;
2605     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2606     {
2607         hasTessellation = arrayany(forMarshaling->pStages, 0, forMarshaling->stageCount, [](VkPipelineShaderStageCreateInfo s) { return ((s.stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) || (s.stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)); });
2608         uint32_t cgen_var_71 = (uint32_t)hasTessellation;
2609         vkStream->putBe32(cgen_var_71);
2610     }
2611     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2612     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2613     vkStream->putBe32(pNext_size);
2614     if (pNext_size)
2615     {
2616         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2617         marshal_extension_struct(vkStream, forMarshaling->pNext);
2618     }
2619     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2620     vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
2621     for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
2622     {
2623         marshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
2624     }
2625     // WARNING PTR CHECK
2626     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2627     {
2628         uint64_t cgen_var_72 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
2629         vkStream->putBe64(cgen_var_72);
2630     }
2631     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forMarshaling->pVertexInputState))
2632     {
2633         marshal_VkPipelineVertexInputStateCreateInfo(vkStream, (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState));
2634     }
2635     // WARNING PTR CHECK
2636     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2637     {
2638         uint64_t cgen_var_73 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
2639         vkStream->putBe64(cgen_var_73);
2640     }
2641     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forMarshaling->pInputAssemblyState))
2642     {
2643         marshal_VkPipelineInputAssemblyStateCreateInfo(vkStream, (const VkPipelineInputAssemblyStateCreateInfo*)(forMarshaling->pInputAssemblyState));
2644     }
2645     // WARNING PTR CHECK
2646     uint64_t cgen_var_74 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
2647     vkStream->putBe64(cgen_var_74);
2648     if (forMarshaling->pTessellationState)
2649     {
2650         if (hasTessellation)
2651         {
2652             marshal_VkPipelineTessellationStateCreateInfo(vkStream, (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState));
2653         }
2654     }
2655     // WARNING PTR CHECK
2656     uint64_t cgen_var_75 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
2657     vkStream->putBe64(cgen_var_75);
2658     if (forMarshaling->pViewportState)
2659     {
2660         if (hasRasterization)
2661         {
2662             marshal_VkPipelineViewportStateCreateInfo(vkStream, (const VkPipelineViewportStateCreateInfo*)(forMarshaling->pViewportState));
2663         }
2664     }
2665     // WARNING PTR CHECK
2666     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2667     {
2668         uint64_t cgen_var_76 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
2669         vkStream->putBe64(cgen_var_76);
2670     }
2671     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forMarshaling->pRasterizationState))
2672     {
2673         marshal_VkPipelineRasterizationStateCreateInfo(vkStream, (const VkPipelineRasterizationStateCreateInfo*)(forMarshaling->pRasterizationState));
2674     }
2675     // WARNING PTR CHECK
2676     uint64_t cgen_var_77 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
2677     vkStream->putBe64(cgen_var_77);
2678     if (forMarshaling->pMultisampleState)
2679     {
2680         if (hasRasterization)
2681         {
2682             marshal_VkPipelineMultisampleStateCreateInfo(vkStream, (const VkPipelineMultisampleStateCreateInfo*)(forMarshaling->pMultisampleState));
2683         }
2684     }
2685     // WARNING PTR CHECK
2686     uint64_t cgen_var_78 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
2687     vkStream->putBe64(cgen_var_78);
2688     if (forMarshaling->pDepthStencilState)
2689     {
2690         if (hasRasterization)
2691         {
2692             marshal_VkPipelineDepthStencilStateCreateInfo(vkStream, (const VkPipelineDepthStencilStateCreateInfo*)(forMarshaling->pDepthStencilState));
2693         }
2694     }
2695     // WARNING PTR CHECK
2696     uint64_t cgen_var_79 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
2697     vkStream->putBe64(cgen_var_79);
2698     if (forMarshaling->pColorBlendState)
2699     {
2700         if (hasRasterization)
2701         {
2702             marshal_VkPipelineColorBlendStateCreateInfo(vkStream, (const VkPipelineColorBlendStateCreateInfo*)(forMarshaling->pColorBlendState));
2703         }
2704     }
2705     // WARNING PTR CHECK
2706     uint64_t cgen_var_80 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
2707     vkStream->putBe64(cgen_var_80);
2708     if (forMarshaling->pDynamicState)
2709     {
2710         marshal_VkPipelineDynamicStateCreateInfo(vkStream, (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState));
2711     }
2712     uint64_t cgen_var_81;
2713     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_81, 1);
2714     vkStream->write((uint64_t*)&cgen_var_81, 1 * 8);
2715     uint64_t cgen_var_82;
2716     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_82, 1);
2717     vkStream->write((uint64_t*)&cgen_var_82, 1 * 8);
2718     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
2719     uint64_t cgen_var_83;
2720     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_83, 1);
2721     vkStream->write((uint64_t*)&cgen_var_83, 1 * 8);
2722     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2723 }
2724 
unmarshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest * vkStream,VkGraphicsPipelineCreateInfo * forUnmarshaling)2725 void unmarshal_VkGraphicsPipelineCreateInfo(
2726     VulkanStreamGuest* vkStream,
2727     VkGraphicsPipelineCreateInfo* forUnmarshaling)
2728 {
2729     uint32_t hasRasterization = 1;
2730     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2731     {
2732         hasRasterization = (const uint32_t)vkStream->getBe32();
2733     }
2734     uint32_t hasTessellation = 1;
2735     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2736     {
2737         hasTessellation = (const uint32_t)vkStream->getBe32();
2738     }
2739     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2740     size_t pNext_size;
2741     pNext_size = vkStream->getBe32();
2742     if (pNext_size)
2743     {
2744         uint64_t pNext_placeholder;
2745         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2746         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2747     }
2748     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
2749     vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
2750     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i)
2751     {
2752         unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
2753     }
2754     // WARNING PTR CHECK
2755     const VkPipelineVertexInputStateCreateInfo* check_pVertexInputState;
2756     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2757     {
2758         check_pVertexInputState = (const VkPipelineVertexInputStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2759     }
2760     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forUnmarshaling->pVertexInputState))
2761     {
2762         unmarshal_VkPipelineVertexInputStateCreateInfo(vkStream, (VkPipelineVertexInputStateCreateInfo*)(forUnmarshaling->pVertexInputState));
2763     }
2764     // WARNING PTR CHECK
2765     const VkPipelineInputAssemblyStateCreateInfo* check_pInputAssemblyState;
2766     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2767     {
2768         check_pInputAssemblyState = (const VkPipelineInputAssemblyStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2769     }
2770     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forUnmarshaling->pInputAssemblyState))
2771     {
2772         unmarshal_VkPipelineInputAssemblyStateCreateInfo(vkStream, (VkPipelineInputAssemblyStateCreateInfo*)(forUnmarshaling->pInputAssemblyState));
2773     }
2774     // WARNING PTR CHECK
2775     const VkPipelineTessellationStateCreateInfo* check_pTessellationState;
2776     check_pTessellationState = (const VkPipelineTessellationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2777     if (forUnmarshaling->pTessellationState)
2778     {
2779         if (!(check_pTessellationState))
2780         {
2781             fprintf(stderr, "fatal: forUnmarshaling->pTessellationState inconsistent between guest and host\n");
2782         }
2783         if (hasTessellation)
2784         {
2785             unmarshal_VkPipelineTessellationStateCreateInfo(vkStream, (VkPipelineTessellationStateCreateInfo*)(forUnmarshaling->pTessellationState));
2786         }
2787         else
2788         {
2789             forUnmarshaling->pTessellationState = 0;
2790         }
2791     }
2792     // WARNING PTR CHECK
2793     const VkPipelineViewportStateCreateInfo* check_pViewportState;
2794     check_pViewportState = (const VkPipelineViewportStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2795     if (forUnmarshaling->pViewportState)
2796     {
2797         if (!(check_pViewportState))
2798         {
2799             fprintf(stderr, "fatal: forUnmarshaling->pViewportState inconsistent between guest and host\n");
2800         }
2801         if (hasRasterization)
2802         {
2803             unmarshal_VkPipelineViewportStateCreateInfo(vkStream, (VkPipelineViewportStateCreateInfo*)(forUnmarshaling->pViewportState));
2804         }
2805         else
2806         {
2807             forUnmarshaling->pViewportState = 0;
2808         }
2809     }
2810     // WARNING PTR CHECK
2811     const VkPipelineRasterizationStateCreateInfo* check_pRasterizationState;
2812     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
2813     {
2814         check_pRasterizationState = (const VkPipelineRasterizationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2815     }
2816     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forUnmarshaling->pRasterizationState))
2817     {
2818         unmarshal_VkPipelineRasterizationStateCreateInfo(vkStream, (VkPipelineRasterizationStateCreateInfo*)(forUnmarshaling->pRasterizationState));
2819     }
2820     // WARNING PTR CHECK
2821     const VkPipelineMultisampleStateCreateInfo* check_pMultisampleState;
2822     check_pMultisampleState = (const VkPipelineMultisampleStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2823     if (forUnmarshaling->pMultisampleState)
2824     {
2825         if (!(check_pMultisampleState))
2826         {
2827             fprintf(stderr, "fatal: forUnmarshaling->pMultisampleState inconsistent between guest and host\n");
2828         }
2829         if (hasRasterization)
2830         {
2831             unmarshal_VkPipelineMultisampleStateCreateInfo(vkStream, (VkPipelineMultisampleStateCreateInfo*)(forUnmarshaling->pMultisampleState));
2832         }
2833         else
2834         {
2835             forUnmarshaling->pMultisampleState = 0;
2836         }
2837     }
2838     // WARNING PTR CHECK
2839     const VkPipelineDepthStencilStateCreateInfo* check_pDepthStencilState;
2840     check_pDepthStencilState = (const VkPipelineDepthStencilStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2841     if (forUnmarshaling->pDepthStencilState)
2842     {
2843         if (!(check_pDepthStencilState))
2844         {
2845             fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilState inconsistent between guest and host\n");
2846         }
2847         if (hasRasterization)
2848         {
2849             unmarshal_VkPipelineDepthStencilStateCreateInfo(vkStream, (VkPipelineDepthStencilStateCreateInfo*)(forUnmarshaling->pDepthStencilState));
2850         }
2851         else
2852         {
2853             forUnmarshaling->pDepthStencilState = 0;
2854         }
2855     }
2856     // WARNING PTR CHECK
2857     const VkPipelineColorBlendStateCreateInfo* check_pColorBlendState;
2858     check_pColorBlendState = (const VkPipelineColorBlendStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2859     if (forUnmarshaling->pColorBlendState)
2860     {
2861         if (!(check_pColorBlendState))
2862         {
2863             fprintf(stderr, "fatal: forUnmarshaling->pColorBlendState inconsistent between guest and host\n");
2864         }
2865         if (hasRasterization)
2866         {
2867             unmarshal_VkPipelineColorBlendStateCreateInfo(vkStream, (VkPipelineColorBlendStateCreateInfo*)(forUnmarshaling->pColorBlendState));
2868         }
2869         else
2870         {
2871             forUnmarshaling->pColorBlendState = 0;
2872         }
2873     }
2874     // WARNING PTR CHECK
2875     const VkPipelineDynamicStateCreateInfo* check_pDynamicState;
2876     check_pDynamicState = (const VkPipelineDynamicStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2877     if (forUnmarshaling->pDynamicState)
2878     {
2879         if (!(check_pDynamicState))
2880         {
2881             fprintf(stderr, "fatal: forUnmarshaling->pDynamicState inconsistent between guest and host\n");
2882         }
2883         unmarshal_VkPipelineDynamicStateCreateInfo(vkStream, (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState));
2884     }
2885     uint64_t cgen_var_95;
2886     vkStream->read((uint64_t*)&cgen_var_95, 1 * 8);
2887     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_95, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
2888     uint64_t cgen_var_96;
2889     vkStream->read((uint64_t*)&cgen_var_96, 1 * 8);
2890     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_96, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
2891     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
2892     uint64_t cgen_var_97;
2893     vkStream->read((uint64_t*)&cgen_var_97, 1 * 8);
2894     vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_97, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
2895     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
2896 }
2897 
marshal_VkComputePipelineCreateInfo(VulkanStreamGuest * vkStream,const VkComputePipelineCreateInfo * forMarshaling)2898 void marshal_VkComputePipelineCreateInfo(
2899     VulkanStreamGuest* vkStream,
2900     const VkComputePipelineCreateInfo* forMarshaling)
2901 {
2902     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2903     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2904     vkStream->putBe32(pNext_size);
2905     if (pNext_size)
2906     {
2907         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2908         marshal_extension_struct(vkStream, forMarshaling->pNext);
2909     }
2910     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2911     marshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage));
2912     uint64_t cgen_var_98;
2913     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_98, 1);
2914     vkStream->write((uint64_t*)&cgen_var_98, 1 * 8);
2915     uint64_t cgen_var_99;
2916     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_99, 1);
2917     vkStream->write((uint64_t*)&cgen_var_99, 1 * 8);
2918     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2919 }
2920 
unmarshal_VkComputePipelineCreateInfo(VulkanStreamGuest * vkStream,VkComputePipelineCreateInfo * forUnmarshaling)2921 void unmarshal_VkComputePipelineCreateInfo(
2922     VulkanStreamGuest* vkStream,
2923     VkComputePipelineCreateInfo* forUnmarshaling)
2924 {
2925     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2926     size_t pNext_size;
2927     pNext_size = vkStream->getBe32();
2928     if (pNext_size)
2929     {
2930         uint64_t pNext_placeholder;
2931         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2932         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2933     }
2934     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
2935     unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forUnmarshaling->stage));
2936     uint64_t cgen_var_100;
2937     vkStream->read((uint64_t*)&cgen_var_100, 1 * 8);
2938     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_100, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
2939     uint64_t cgen_var_101;
2940     vkStream->read((uint64_t*)&cgen_var_101, 1 * 8);
2941     vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_101, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
2942     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
2943 }
2944 
marshal_VkPushConstantRange(VulkanStreamGuest * vkStream,const VkPushConstantRange * forMarshaling)2945 void marshal_VkPushConstantRange(
2946     VulkanStreamGuest* vkStream,
2947     const VkPushConstantRange* forMarshaling)
2948 {
2949     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
2950     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2951     vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
2952 }
2953 
unmarshal_VkPushConstantRange(VulkanStreamGuest * vkStream,VkPushConstantRange * forUnmarshaling)2954 void unmarshal_VkPushConstantRange(
2955     VulkanStreamGuest* vkStream,
2956     VkPushConstantRange* forUnmarshaling)
2957 {
2958     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
2959     vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
2960     vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
2961 }
2962 
marshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineLayoutCreateInfo * forMarshaling)2963 void marshal_VkPipelineLayoutCreateInfo(
2964     VulkanStreamGuest* vkStream,
2965     const VkPipelineLayoutCreateInfo* forMarshaling)
2966 {
2967     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2968     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2969     vkStream->putBe32(pNext_size);
2970     if (pNext_size)
2971     {
2972         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2973         marshal_extension_struct(vkStream, forMarshaling->pNext);
2974     }
2975     vkStream->write((VkPipelineLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineLayoutCreateFlags));
2976     vkStream->write((uint32_t*)&forMarshaling->setLayoutCount, sizeof(uint32_t));
2977     if (forMarshaling->setLayoutCount)
2978     {
2979         uint64_t* cgen_var_102;
2980         vkStream->alloc((void**)&cgen_var_102, forMarshaling->setLayoutCount * 8);
2981         vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_102, forMarshaling->setLayoutCount);
2982         vkStream->write((uint64_t*)cgen_var_102, forMarshaling->setLayoutCount * 8);
2983     }
2984     vkStream->write((uint32_t*)&forMarshaling->pushConstantRangeCount, sizeof(uint32_t));
2985     for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i)
2986     {
2987         marshal_VkPushConstantRange(vkStream, (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i));
2988     }
2989 }
2990 
unmarshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest * vkStream,VkPipelineLayoutCreateInfo * forUnmarshaling)2991 void unmarshal_VkPipelineLayoutCreateInfo(
2992     VulkanStreamGuest* vkStream,
2993     VkPipelineLayoutCreateInfo* forUnmarshaling)
2994 {
2995     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2996     size_t pNext_size;
2997     pNext_size = vkStream->getBe32();
2998     if (pNext_size)
2999     {
3000         uint64_t pNext_placeholder;
3001         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3002         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3003     }
3004     vkStream->read((VkPipelineLayoutCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineLayoutCreateFlags));
3005     vkStream->read((uint32_t*)&forUnmarshaling->setLayoutCount, sizeof(uint32_t));
3006     if (forUnmarshaling->setLayoutCount)
3007     {
3008         uint64_t* cgen_var_103;
3009         vkStream->alloc((void**)&cgen_var_103, forUnmarshaling->setLayoutCount * 8);
3010         vkStream->read((uint64_t*)cgen_var_103, forUnmarshaling->setLayoutCount * 8);
3011         vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_103, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->setLayoutCount);
3012     }
3013     vkStream->read((uint32_t*)&forUnmarshaling->pushConstantRangeCount, sizeof(uint32_t));
3014     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i)
3015     {
3016         unmarshal_VkPushConstantRange(vkStream, (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i));
3017     }
3018 }
3019 
marshal_VkSamplerCreateInfo(VulkanStreamGuest * vkStream,const VkSamplerCreateInfo * forMarshaling)3020 void marshal_VkSamplerCreateInfo(
3021     VulkanStreamGuest* vkStream,
3022     const VkSamplerCreateInfo* forMarshaling)
3023 {
3024     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3025     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3026     vkStream->putBe32(pNext_size);
3027     if (pNext_size)
3028     {
3029         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3030         marshal_extension_struct(vkStream, forMarshaling->pNext);
3031     }
3032     vkStream->write((VkSamplerCreateFlags*)&forMarshaling->flags, sizeof(VkSamplerCreateFlags));
3033     vkStream->write((VkFilter*)&forMarshaling->magFilter, sizeof(VkFilter));
3034     vkStream->write((VkFilter*)&forMarshaling->minFilter, sizeof(VkFilter));
3035     vkStream->write((VkSamplerMipmapMode*)&forMarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
3036     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeU, sizeof(VkSamplerAddressMode));
3037     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeV, sizeof(VkSamplerAddressMode));
3038     vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeW, sizeof(VkSamplerAddressMode));
3039     vkStream->write((float*)&forMarshaling->mipLodBias, sizeof(float));
3040     vkStream->write((VkBool32*)&forMarshaling->anisotropyEnable, sizeof(VkBool32));
3041     vkStream->write((float*)&forMarshaling->maxAnisotropy, sizeof(float));
3042     vkStream->write((VkBool32*)&forMarshaling->compareEnable, sizeof(VkBool32));
3043     vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
3044     vkStream->write((float*)&forMarshaling->minLod, sizeof(float));
3045     vkStream->write((float*)&forMarshaling->maxLod, sizeof(float));
3046     vkStream->write((VkBorderColor*)&forMarshaling->borderColor, sizeof(VkBorderColor));
3047     vkStream->write((VkBool32*)&forMarshaling->unnormalizedCoordinates, sizeof(VkBool32));
3048 }
3049 
unmarshal_VkSamplerCreateInfo(VulkanStreamGuest * vkStream,VkSamplerCreateInfo * forUnmarshaling)3050 void unmarshal_VkSamplerCreateInfo(
3051     VulkanStreamGuest* vkStream,
3052     VkSamplerCreateInfo* forUnmarshaling)
3053 {
3054     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3055     size_t pNext_size;
3056     pNext_size = vkStream->getBe32();
3057     if (pNext_size)
3058     {
3059         uint64_t pNext_placeholder;
3060         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3061         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3062     }
3063     vkStream->read((VkSamplerCreateFlags*)&forUnmarshaling->flags, sizeof(VkSamplerCreateFlags));
3064     vkStream->read((VkFilter*)&forUnmarshaling->magFilter, sizeof(VkFilter));
3065     vkStream->read((VkFilter*)&forUnmarshaling->minFilter, sizeof(VkFilter));
3066     vkStream->read((VkSamplerMipmapMode*)&forUnmarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
3067     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeU, sizeof(VkSamplerAddressMode));
3068     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeV, sizeof(VkSamplerAddressMode));
3069     vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeW, sizeof(VkSamplerAddressMode));
3070     vkStream->read((float*)&forUnmarshaling->mipLodBias, sizeof(float));
3071     vkStream->read((VkBool32*)&forUnmarshaling->anisotropyEnable, sizeof(VkBool32));
3072     vkStream->read((float*)&forUnmarshaling->maxAnisotropy, sizeof(float));
3073     vkStream->read((VkBool32*)&forUnmarshaling->compareEnable, sizeof(VkBool32));
3074     vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
3075     vkStream->read((float*)&forUnmarshaling->minLod, sizeof(float));
3076     vkStream->read((float*)&forUnmarshaling->maxLod, sizeof(float));
3077     vkStream->read((VkBorderColor*)&forUnmarshaling->borderColor, sizeof(VkBorderColor));
3078     vkStream->read((VkBool32*)&forUnmarshaling->unnormalizedCoordinates, sizeof(VkBool32));
3079 }
3080 
marshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutBinding * forMarshaling)3081 void marshal_VkDescriptorSetLayoutBinding(
3082     VulkanStreamGuest* vkStream,
3083     const VkDescriptorSetLayoutBinding* forMarshaling)
3084 {
3085     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
3086     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
3087     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3088     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
3089     // WARNING PTR CHECK
3090     uint64_t cgen_var_104 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
3091     vkStream->putBe64(cgen_var_104);
3092     if (forMarshaling->pImmutableSamplers)
3093     {
3094         if (forMarshaling->descriptorCount)
3095         {
3096             uint64_t* cgen_var_105;
3097             vkStream->alloc((void**)&cgen_var_105, forMarshaling->descriptorCount * 8);
3098             vkStream->handleMapping()->mapHandles_VkSampler_u64(forMarshaling->pImmutableSamplers, cgen_var_105, forMarshaling->descriptorCount);
3099             vkStream->write((uint64_t*)cgen_var_105, forMarshaling->descriptorCount * 8);
3100         }
3101     }
3102 }
3103 
unmarshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutBinding * forUnmarshaling)3104 void unmarshal_VkDescriptorSetLayoutBinding(
3105     VulkanStreamGuest* vkStream,
3106     VkDescriptorSetLayoutBinding* forUnmarshaling)
3107 {
3108     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
3109     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
3110     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3111     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
3112     // WARNING PTR CHECK
3113     const VkSampler* check_pImmutableSamplers;
3114     check_pImmutableSamplers = (const VkSampler*)(uintptr_t)vkStream->getBe64();
3115     if (forUnmarshaling->pImmutableSamplers)
3116     {
3117         if (!(check_pImmutableSamplers))
3118         {
3119             fprintf(stderr, "fatal: forUnmarshaling->pImmutableSamplers inconsistent between guest and host\n");
3120         }
3121         if (forUnmarshaling->descriptorCount)
3122         {
3123             uint64_t* cgen_var_107;
3124             vkStream->alloc((void**)&cgen_var_107, forUnmarshaling->descriptorCount * 8);
3125             vkStream->read((uint64_t*)cgen_var_107, forUnmarshaling->descriptorCount * 8);
3126             vkStream->handleMapping()->mapHandles_u64_VkSampler(cgen_var_107, (VkSampler*)forUnmarshaling->pImmutableSamplers, forUnmarshaling->descriptorCount);
3127         }
3128     }
3129 }
3130 
marshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutCreateInfo * forMarshaling)3131 void marshal_VkDescriptorSetLayoutCreateInfo(
3132     VulkanStreamGuest* vkStream,
3133     const VkDescriptorSetLayoutCreateInfo* forMarshaling)
3134 {
3135     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3136     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3137     vkStream->putBe32(pNext_size);
3138     if (pNext_size)
3139     {
3140         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3141         marshal_extension_struct(vkStream, forMarshaling->pNext);
3142     }
3143     vkStream->write((VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
3144     vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
3145     for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i)
3146     {
3147         marshal_VkDescriptorSetLayoutBinding(vkStream, (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i));
3148     }
3149 }
3150 
unmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutCreateInfo * forUnmarshaling)3151 void unmarshal_VkDescriptorSetLayoutCreateInfo(
3152     VulkanStreamGuest* vkStream,
3153     VkDescriptorSetLayoutCreateInfo* forUnmarshaling)
3154 {
3155     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3156     size_t pNext_size;
3157     pNext_size = vkStream->getBe32();
3158     if (pNext_size)
3159     {
3160         uint64_t pNext_placeholder;
3161         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3162         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3163     }
3164     vkStream->read((VkDescriptorSetLayoutCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
3165     vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
3166     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindingCount; ++i)
3167     {
3168         unmarshal_VkDescriptorSetLayoutBinding(vkStream, (VkDescriptorSetLayoutBinding*)(forUnmarshaling->pBindings + i));
3169     }
3170 }
3171 
marshal_VkDescriptorPoolSize(VulkanStreamGuest * vkStream,const VkDescriptorPoolSize * forMarshaling)3172 void marshal_VkDescriptorPoolSize(
3173     VulkanStreamGuest* vkStream,
3174     const VkDescriptorPoolSize* forMarshaling)
3175 {
3176     vkStream->write((VkDescriptorType*)&forMarshaling->type, sizeof(VkDescriptorType));
3177     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3178 }
3179 
unmarshal_VkDescriptorPoolSize(VulkanStreamGuest * vkStream,VkDescriptorPoolSize * forUnmarshaling)3180 void unmarshal_VkDescriptorPoolSize(
3181     VulkanStreamGuest* vkStream,
3182     VkDescriptorPoolSize* forUnmarshaling)
3183 {
3184     vkStream->read((VkDescriptorType*)&forUnmarshaling->type, sizeof(VkDescriptorType));
3185     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3186 }
3187 
marshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest * vkStream,const VkDescriptorPoolCreateInfo * forMarshaling)3188 void marshal_VkDescriptorPoolCreateInfo(
3189     VulkanStreamGuest* vkStream,
3190     const VkDescriptorPoolCreateInfo* forMarshaling)
3191 {
3192     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3193     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3194     vkStream->putBe32(pNext_size);
3195     if (pNext_size)
3196     {
3197         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3198         marshal_extension_struct(vkStream, forMarshaling->pNext);
3199     }
3200     vkStream->write((VkDescriptorPoolCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorPoolCreateFlags));
3201     vkStream->write((uint32_t*)&forMarshaling->maxSets, sizeof(uint32_t));
3202     vkStream->write((uint32_t*)&forMarshaling->poolSizeCount, sizeof(uint32_t));
3203     for (uint32_t i = 0; i < (uint32_t)forMarshaling->poolSizeCount; ++i)
3204     {
3205         marshal_VkDescriptorPoolSize(vkStream, (const VkDescriptorPoolSize*)(forMarshaling->pPoolSizes + i));
3206     }
3207 }
3208 
unmarshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest * vkStream,VkDescriptorPoolCreateInfo * forUnmarshaling)3209 void unmarshal_VkDescriptorPoolCreateInfo(
3210     VulkanStreamGuest* vkStream,
3211     VkDescriptorPoolCreateInfo* forUnmarshaling)
3212 {
3213     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3214     size_t pNext_size;
3215     pNext_size = vkStream->getBe32();
3216     if (pNext_size)
3217     {
3218         uint64_t pNext_placeholder;
3219         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3220         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3221     }
3222     vkStream->read((VkDescriptorPoolCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorPoolCreateFlags));
3223     vkStream->read((uint32_t*)&forUnmarshaling->maxSets, sizeof(uint32_t));
3224     vkStream->read((uint32_t*)&forUnmarshaling->poolSizeCount, sizeof(uint32_t));
3225     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->poolSizeCount; ++i)
3226     {
3227         unmarshal_VkDescriptorPoolSize(vkStream, (VkDescriptorPoolSize*)(forUnmarshaling->pPoolSizes + i));
3228     }
3229 }
3230 
marshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest * vkStream,const VkDescriptorSetAllocateInfo * forMarshaling)3231 void marshal_VkDescriptorSetAllocateInfo(
3232     VulkanStreamGuest* vkStream,
3233     const VkDescriptorSetAllocateInfo* forMarshaling)
3234 {
3235     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3236     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3237     vkStream->putBe32(pNext_size);
3238     if (pNext_size)
3239     {
3240         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3241         marshal_extension_struct(vkStream, forMarshaling->pNext);
3242     }
3243     uint64_t cgen_var_108;
3244     vkStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&forMarshaling->descriptorPool, &cgen_var_108, 1);
3245     vkStream->write((uint64_t*)&cgen_var_108, 1 * 8);
3246     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
3247     if (forMarshaling->descriptorSetCount)
3248     {
3249         uint64_t* cgen_var_109;
3250         vkStream->alloc((void**)&cgen_var_109, forMarshaling->descriptorSetCount * 8);
3251         vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_109, forMarshaling->descriptorSetCount);
3252         vkStream->write((uint64_t*)cgen_var_109, forMarshaling->descriptorSetCount * 8);
3253     }
3254 }
3255 
unmarshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest * vkStream,VkDescriptorSetAllocateInfo * forUnmarshaling)3256 void unmarshal_VkDescriptorSetAllocateInfo(
3257     VulkanStreamGuest* vkStream,
3258     VkDescriptorSetAllocateInfo* forUnmarshaling)
3259 {
3260     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3261     size_t pNext_size;
3262     pNext_size = vkStream->getBe32();
3263     if (pNext_size)
3264     {
3265         uint64_t pNext_placeholder;
3266         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3267         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3268     }
3269     uint64_t cgen_var_110;
3270     vkStream->read((uint64_t*)&cgen_var_110, 1 * 8);
3271     vkStream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_110, (VkDescriptorPool*)&forUnmarshaling->descriptorPool, 1);
3272     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
3273     if (forUnmarshaling->descriptorSetCount)
3274     {
3275         uint64_t* cgen_var_111;
3276         vkStream->alloc((void**)&cgen_var_111, forUnmarshaling->descriptorSetCount * 8);
3277         vkStream->read((uint64_t*)cgen_var_111, forUnmarshaling->descriptorSetCount * 8);
3278         vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_111, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->descriptorSetCount);
3279     }
3280 }
3281 
marshal_VkDescriptorImageInfo(VulkanStreamGuest * vkStream,const VkDescriptorImageInfo * forMarshaling)3282 void marshal_VkDescriptorImageInfo(
3283     VulkanStreamGuest* vkStream,
3284     const VkDescriptorImageInfo* forMarshaling)
3285 {
3286     uint64_t cgen_var_112;
3287     vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_112, 1);
3288     vkStream->write((uint64_t*)&cgen_var_112, 1 * 8);
3289     uint64_t cgen_var_113;
3290     vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_113, 1);
3291     vkStream->write((uint64_t*)&cgen_var_113, 1 * 8);
3292     vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
3293 }
3294 
unmarshal_VkDescriptorImageInfo(VulkanStreamGuest * vkStream,VkDescriptorImageInfo * forUnmarshaling)3295 void unmarshal_VkDescriptorImageInfo(
3296     VulkanStreamGuest* vkStream,
3297     VkDescriptorImageInfo* forUnmarshaling)
3298 {
3299     uint64_t cgen_var_114;
3300     vkStream->read((uint64_t*)&cgen_var_114, 1 * 8);
3301     vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_114, (VkSampler*)&forUnmarshaling->sampler, 1);
3302     uint64_t cgen_var_115;
3303     vkStream->read((uint64_t*)&cgen_var_115, 1 * 8);
3304     vkStream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_115, (VkImageView*)&forUnmarshaling->imageView, 1);
3305     vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
3306 }
3307 
marshal_VkDescriptorBufferInfo(VulkanStreamGuest * vkStream,const VkDescriptorBufferInfo * forMarshaling)3308 void marshal_VkDescriptorBufferInfo(
3309     VulkanStreamGuest* vkStream,
3310     const VkDescriptorBufferInfo* forMarshaling)
3311 {
3312     uint64_t cgen_var_116;
3313     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_116, 1);
3314     vkStream->write((uint64_t*)&cgen_var_116, 1 * 8);
3315     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
3316     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
3317 }
3318 
unmarshal_VkDescriptorBufferInfo(VulkanStreamGuest * vkStream,VkDescriptorBufferInfo * forUnmarshaling)3319 void unmarshal_VkDescriptorBufferInfo(
3320     VulkanStreamGuest* vkStream,
3321     VkDescriptorBufferInfo* forUnmarshaling)
3322 {
3323     uint64_t cgen_var_117;
3324     vkStream->read((uint64_t*)&cgen_var_117, 1 * 8);
3325     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_117, (VkBuffer*)&forUnmarshaling->buffer, 1);
3326     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
3327     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
3328 }
3329 
marshal_VkWriteDescriptorSet(VulkanStreamGuest * vkStream,const VkWriteDescriptorSet * forMarshaling)3330 void marshal_VkWriteDescriptorSet(
3331     VulkanStreamGuest* vkStream,
3332     const VkWriteDescriptorSet* forMarshaling)
3333 {
3334     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3335     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3336     vkStream->putBe32(pNext_size);
3337     if (pNext_size)
3338     {
3339         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3340         marshal_extension_struct(vkStream, forMarshaling->pNext);
3341     }
3342     uint64_t cgen_var_118;
3343     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_118, 1);
3344     vkStream->write((uint64_t*)&cgen_var_118, 1 * 8);
3345     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
3346     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
3347     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3348     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
3349     // WARNING PTR CHECK
3350     uint64_t cgen_var_119 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
3351     vkStream->putBe64(cgen_var_119);
3352     if (forMarshaling->pImageInfo)
3353     {
3354         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_SAMPLER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forMarshaling->descriptorType))))
3355         {
3356             for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
3357             {
3358                 marshal_VkDescriptorImageInfo(vkStream, (const VkDescriptorImageInfo*)(forMarshaling->pImageInfo + i));
3359             }
3360         }
3361     }
3362     // WARNING PTR CHECK
3363     uint64_t cgen_var_120 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
3364     vkStream->putBe64(cgen_var_120);
3365     if (forMarshaling->pBufferInfo)
3366     {
3367         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forMarshaling->descriptorType))))
3368         {
3369             for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
3370             {
3371                 marshal_VkDescriptorBufferInfo(vkStream, (const VkDescriptorBufferInfo*)(forMarshaling->pBufferInfo + i));
3372             }
3373         }
3374     }
3375     // WARNING PTR CHECK
3376     uint64_t cgen_var_121 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
3377     vkStream->putBe64(cgen_var_121);
3378     if (forMarshaling->pTexelBufferView)
3379     {
3380         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forMarshaling->descriptorType))))
3381         {
3382             if (forMarshaling->descriptorCount)
3383             {
3384                 uint64_t* cgen_var_122;
3385                 vkStream->alloc((void**)&cgen_var_122, forMarshaling->descriptorCount * 8);
3386                 vkStream->handleMapping()->mapHandles_VkBufferView_u64(forMarshaling->pTexelBufferView, cgen_var_122, forMarshaling->descriptorCount);
3387                 vkStream->write((uint64_t*)cgen_var_122, forMarshaling->descriptorCount * 8);
3388             }
3389         }
3390     }
3391 }
3392 
unmarshal_VkWriteDescriptorSet(VulkanStreamGuest * vkStream,VkWriteDescriptorSet * forUnmarshaling)3393 void unmarshal_VkWriteDescriptorSet(
3394     VulkanStreamGuest* vkStream,
3395     VkWriteDescriptorSet* forUnmarshaling)
3396 {
3397     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3398     size_t pNext_size;
3399     pNext_size = vkStream->getBe32();
3400     if (pNext_size)
3401     {
3402         uint64_t pNext_placeholder;
3403         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3404         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3405     }
3406     uint64_t cgen_var_123;
3407     vkStream->read((uint64_t*)&cgen_var_123, 1 * 8);
3408     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_123, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
3409     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
3410     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
3411     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3412     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
3413     // WARNING PTR CHECK
3414     const VkDescriptorImageInfo* check_pImageInfo;
3415     check_pImageInfo = (const VkDescriptorImageInfo*)(uintptr_t)vkStream->getBe64();
3416     if (forUnmarshaling->pImageInfo)
3417     {
3418         if (!(check_pImageInfo))
3419         {
3420             fprintf(stderr, "fatal: forUnmarshaling->pImageInfo inconsistent between guest and host\n");
3421         }
3422         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_SAMPLER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forUnmarshaling->descriptorType))))
3423         {
3424             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
3425             {
3426                 unmarshal_VkDescriptorImageInfo(vkStream, (VkDescriptorImageInfo*)(forUnmarshaling->pImageInfo + i));
3427             }
3428         }
3429         else
3430         {
3431             forUnmarshaling->pImageInfo = 0;
3432         }
3433     }
3434     // WARNING PTR CHECK
3435     const VkDescriptorBufferInfo* check_pBufferInfo;
3436     check_pBufferInfo = (const VkDescriptorBufferInfo*)(uintptr_t)vkStream->getBe64();
3437     if (forUnmarshaling->pBufferInfo)
3438     {
3439         if (!(check_pBufferInfo))
3440         {
3441             fprintf(stderr, "fatal: forUnmarshaling->pBufferInfo inconsistent between guest and host\n");
3442         }
3443         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forUnmarshaling->descriptorType))))
3444         {
3445             for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
3446             {
3447                 unmarshal_VkDescriptorBufferInfo(vkStream, (VkDescriptorBufferInfo*)(forUnmarshaling->pBufferInfo + i));
3448             }
3449         }
3450         else
3451         {
3452             forUnmarshaling->pBufferInfo = 0;
3453         }
3454     }
3455     // WARNING PTR CHECK
3456     const VkBufferView* check_pTexelBufferView;
3457     check_pTexelBufferView = (const VkBufferView*)(uintptr_t)vkStream->getBe64();
3458     if (forUnmarshaling->pTexelBufferView)
3459     {
3460         if (!(check_pTexelBufferView))
3461         {
3462             fprintf(stderr, "fatal: forUnmarshaling->pTexelBufferView inconsistent between guest and host\n");
3463         }
3464         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forUnmarshaling->descriptorType))))
3465         {
3466             if (forUnmarshaling->descriptorCount)
3467             {
3468                 uint64_t* cgen_var_127;
3469                 vkStream->alloc((void**)&cgen_var_127, forUnmarshaling->descriptorCount * 8);
3470                 vkStream->read((uint64_t*)cgen_var_127, forUnmarshaling->descriptorCount * 8);
3471                 vkStream->handleMapping()->mapHandles_u64_VkBufferView(cgen_var_127, (VkBufferView*)forUnmarshaling->pTexelBufferView, forUnmarshaling->descriptorCount);
3472             }
3473         }
3474         else
3475         {
3476             forUnmarshaling->pTexelBufferView = 0;
3477         }
3478     }
3479 }
3480 
marshal_VkCopyDescriptorSet(VulkanStreamGuest * vkStream,const VkCopyDescriptorSet * forMarshaling)3481 void marshal_VkCopyDescriptorSet(
3482     VulkanStreamGuest* vkStream,
3483     const VkCopyDescriptorSet* forMarshaling)
3484 {
3485     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3486     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3487     vkStream->putBe32(pNext_size);
3488     if (pNext_size)
3489     {
3490         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3491         marshal_extension_struct(vkStream, forMarshaling->pNext);
3492     }
3493     uint64_t cgen_var_128;
3494     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->srcSet, &cgen_var_128, 1);
3495     vkStream->write((uint64_t*)&cgen_var_128, 1 * 8);
3496     vkStream->write((uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
3497     vkStream->write((uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
3498     uint64_t cgen_var_129;
3499     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_129, 1);
3500     vkStream->write((uint64_t*)&cgen_var_129, 1 * 8);
3501     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
3502     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
3503     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3504 }
3505 
unmarshal_VkCopyDescriptorSet(VulkanStreamGuest * vkStream,VkCopyDescriptorSet * forUnmarshaling)3506 void unmarshal_VkCopyDescriptorSet(
3507     VulkanStreamGuest* vkStream,
3508     VkCopyDescriptorSet* forUnmarshaling)
3509 {
3510     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3511     size_t pNext_size;
3512     pNext_size = vkStream->getBe32();
3513     if (pNext_size)
3514     {
3515         uint64_t pNext_placeholder;
3516         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3517         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3518     }
3519     uint64_t cgen_var_130;
3520     vkStream->read((uint64_t*)&cgen_var_130, 1 * 8);
3521     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_130, (VkDescriptorSet*)&forUnmarshaling->srcSet, 1);
3522     vkStream->read((uint32_t*)&forUnmarshaling->srcBinding, sizeof(uint32_t));
3523     vkStream->read((uint32_t*)&forUnmarshaling->srcArrayElement, sizeof(uint32_t));
3524     uint64_t cgen_var_131;
3525     vkStream->read((uint64_t*)&cgen_var_131, 1 * 8);
3526     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_131, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
3527     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
3528     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
3529     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3530 }
3531 
marshal_VkFramebufferCreateInfo(VulkanStreamGuest * vkStream,const VkFramebufferCreateInfo * forMarshaling)3532 void marshal_VkFramebufferCreateInfo(
3533     VulkanStreamGuest* vkStream,
3534     const VkFramebufferCreateInfo* forMarshaling)
3535 {
3536     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3537     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3538     vkStream->putBe32(pNext_size);
3539     if (pNext_size)
3540     {
3541         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3542         marshal_extension_struct(vkStream, forMarshaling->pNext);
3543     }
3544     vkStream->write((VkFramebufferCreateFlags*)&forMarshaling->flags, sizeof(VkFramebufferCreateFlags));
3545     uint64_t cgen_var_132;
3546     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_132, 1);
3547     vkStream->write((uint64_t*)&cgen_var_132, 1 * 8);
3548     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
3549     if (forMarshaling->attachmentCount)
3550     {
3551         uint64_t* cgen_var_133;
3552         vkStream->alloc((void**)&cgen_var_133, forMarshaling->attachmentCount * 8);
3553         vkStream->handleMapping()->mapHandles_VkImageView_u64(forMarshaling->pAttachments, cgen_var_133, forMarshaling->attachmentCount);
3554         vkStream->write((uint64_t*)cgen_var_133, forMarshaling->attachmentCount * 8);
3555     }
3556     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
3557     vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
3558     vkStream->write((uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
3559 }
3560 
unmarshal_VkFramebufferCreateInfo(VulkanStreamGuest * vkStream,VkFramebufferCreateInfo * forUnmarshaling)3561 void unmarshal_VkFramebufferCreateInfo(
3562     VulkanStreamGuest* vkStream,
3563     VkFramebufferCreateInfo* forUnmarshaling)
3564 {
3565     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3566     size_t pNext_size;
3567     pNext_size = vkStream->getBe32();
3568     if (pNext_size)
3569     {
3570         uint64_t pNext_placeholder;
3571         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3572         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3573     }
3574     vkStream->read((VkFramebufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkFramebufferCreateFlags));
3575     uint64_t cgen_var_134;
3576     vkStream->read((uint64_t*)&cgen_var_134, 1 * 8);
3577     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_134, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
3578     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
3579     if (forUnmarshaling->attachmentCount)
3580     {
3581         uint64_t* cgen_var_135;
3582         vkStream->alloc((void**)&cgen_var_135, forUnmarshaling->attachmentCount * 8);
3583         vkStream->read((uint64_t*)cgen_var_135, forUnmarshaling->attachmentCount * 8);
3584         vkStream->handleMapping()->mapHandles_u64_VkImageView(cgen_var_135, (VkImageView*)forUnmarshaling->pAttachments, forUnmarshaling->attachmentCount);
3585     }
3586     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
3587     vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
3588     vkStream->read((uint32_t*)&forUnmarshaling->layers, sizeof(uint32_t));
3589 }
3590 
marshal_VkAttachmentDescription(VulkanStreamGuest * vkStream,const VkAttachmentDescription * forMarshaling)3591 void marshal_VkAttachmentDescription(
3592     VulkanStreamGuest* vkStream,
3593     const VkAttachmentDescription* forMarshaling)
3594 {
3595     vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
3596     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
3597     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
3598     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
3599     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
3600     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
3601     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
3602     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
3603     vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
3604 }
3605 
unmarshal_VkAttachmentDescription(VulkanStreamGuest * vkStream,VkAttachmentDescription * forUnmarshaling)3606 void unmarshal_VkAttachmentDescription(
3607     VulkanStreamGuest* vkStream,
3608     VkAttachmentDescription* forUnmarshaling)
3609 {
3610     vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
3611     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
3612     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
3613     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
3614     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
3615     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
3616     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
3617     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
3618     vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
3619 }
3620 
marshal_VkAttachmentReference(VulkanStreamGuest * vkStream,const VkAttachmentReference * forMarshaling)3621 void marshal_VkAttachmentReference(
3622     VulkanStreamGuest* vkStream,
3623     const VkAttachmentReference* forMarshaling)
3624 {
3625     vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
3626     vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
3627 }
3628 
unmarshal_VkAttachmentReference(VulkanStreamGuest * vkStream,VkAttachmentReference * forUnmarshaling)3629 void unmarshal_VkAttachmentReference(
3630     VulkanStreamGuest* vkStream,
3631     VkAttachmentReference* forUnmarshaling)
3632 {
3633     vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
3634     vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
3635 }
3636 
marshal_VkSubpassDescription(VulkanStreamGuest * vkStream,const VkSubpassDescription * forMarshaling)3637 void marshal_VkSubpassDescription(
3638     VulkanStreamGuest* vkStream,
3639     const VkSubpassDescription* forMarshaling)
3640 {
3641     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
3642     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
3643     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
3644     for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
3645     {
3646         marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pInputAttachments + i));
3647     }
3648     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
3649     for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
3650     {
3651         marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i));
3652     }
3653     // WARNING PTR CHECK
3654     uint64_t cgen_var_136 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
3655     vkStream->putBe64(cgen_var_136);
3656     if (forMarshaling->pResolveAttachments)
3657     {
3658         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
3659         {
3660             marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pResolveAttachments + i));
3661         }
3662     }
3663     // WARNING PTR CHECK
3664     uint64_t cgen_var_137 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
3665     vkStream->putBe64(cgen_var_137);
3666     if (forMarshaling->pDepthStencilAttachment)
3667     {
3668         marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pDepthStencilAttachment));
3669     }
3670     vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
3671     vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3672 }
3673 
unmarshal_VkSubpassDescription(VulkanStreamGuest * vkStream,VkSubpassDescription * forUnmarshaling)3674 void unmarshal_VkSubpassDescription(
3675     VulkanStreamGuest* vkStream,
3676     VkSubpassDescription* forUnmarshaling)
3677 {
3678     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
3679     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
3680     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
3681     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
3682     {
3683         unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pInputAttachments + i));
3684     }
3685     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
3686     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
3687     {
3688         unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pColorAttachments + i));
3689     }
3690     // WARNING PTR CHECK
3691     const VkAttachmentReference* check_pResolveAttachments;
3692     check_pResolveAttachments = (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
3693     if (forUnmarshaling->pResolveAttachments)
3694     {
3695         if (!(check_pResolveAttachments))
3696         {
3697             fprintf(stderr, "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and host\n");
3698         }
3699         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
3700         {
3701             unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pResolveAttachments + i));
3702         }
3703     }
3704     // WARNING PTR CHECK
3705     const VkAttachmentReference* check_pDepthStencilAttachment;
3706     check_pDepthStencilAttachment = (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
3707     if (forUnmarshaling->pDepthStencilAttachment)
3708     {
3709         if (!(check_pDepthStencilAttachment))
3710         {
3711             fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest and host\n");
3712         }
3713         unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pDepthStencilAttachment));
3714     }
3715     vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
3716     vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments, forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3717 }
3718 
marshal_VkSubpassDependency(VulkanStreamGuest * vkStream,const VkSubpassDependency * forMarshaling)3719 void marshal_VkSubpassDependency(
3720     VulkanStreamGuest* vkStream,
3721     const VkSubpassDependency* forMarshaling)
3722 {
3723     vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
3724     vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
3725     vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
3726     vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
3727     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
3728     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
3729     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
3730 }
3731 
unmarshal_VkSubpassDependency(VulkanStreamGuest * vkStream,VkSubpassDependency * forUnmarshaling)3732 void unmarshal_VkSubpassDependency(
3733     VulkanStreamGuest* vkStream,
3734     VkSubpassDependency* forUnmarshaling)
3735 {
3736     vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
3737     vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
3738     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
3739     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
3740     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
3741     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
3742     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, sizeof(VkDependencyFlags));
3743 }
3744 
marshal_VkRenderPassCreateInfo(VulkanStreamGuest * vkStream,const VkRenderPassCreateInfo * forMarshaling)3745 void marshal_VkRenderPassCreateInfo(
3746     VulkanStreamGuest* vkStream,
3747     const VkRenderPassCreateInfo* forMarshaling)
3748 {
3749     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3750     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3751     vkStream->putBe32(pNext_size);
3752     if (pNext_size)
3753     {
3754         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3755         marshal_extension_struct(vkStream, forMarshaling->pNext);
3756     }
3757     vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
3758     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
3759     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
3760     {
3761         marshal_VkAttachmentDescription(vkStream, (const VkAttachmentDescription*)(forMarshaling->pAttachments + i));
3762     }
3763     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
3764     for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
3765     {
3766         marshal_VkSubpassDescription(vkStream, (const VkSubpassDescription*)(forMarshaling->pSubpasses + i));
3767     }
3768     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
3769     for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
3770     {
3771         marshal_VkSubpassDependency(vkStream, (const VkSubpassDependency*)(forMarshaling->pDependencies + i));
3772     }
3773 }
3774 
unmarshal_VkRenderPassCreateInfo(VulkanStreamGuest * vkStream,VkRenderPassCreateInfo * forUnmarshaling)3775 void unmarshal_VkRenderPassCreateInfo(
3776     VulkanStreamGuest* vkStream,
3777     VkRenderPassCreateInfo* forUnmarshaling)
3778 {
3779     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3780     size_t pNext_size;
3781     pNext_size = vkStream->getBe32();
3782     if (pNext_size)
3783     {
3784         uint64_t pNext_placeholder;
3785         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3786         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3787     }
3788     vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags, sizeof(VkRenderPassCreateFlags));
3789     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
3790     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
3791     {
3792         unmarshal_VkAttachmentDescription(vkStream, (VkAttachmentDescription*)(forUnmarshaling->pAttachments + i));
3793     }
3794     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
3795     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
3796     {
3797         unmarshal_VkSubpassDescription(vkStream, (VkSubpassDescription*)(forUnmarshaling->pSubpasses + i));
3798     }
3799     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
3800     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
3801     {
3802         unmarshal_VkSubpassDependency(vkStream, (VkSubpassDependency*)(forUnmarshaling->pDependencies + i));
3803     }
3804 }
3805 
marshal_VkCommandPoolCreateInfo(VulkanStreamGuest * vkStream,const VkCommandPoolCreateInfo * forMarshaling)3806 void marshal_VkCommandPoolCreateInfo(
3807     VulkanStreamGuest* vkStream,
3808     const VkCommandPoolCreateInfo* forMarshaling)
3809 {
3810     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3811     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3812     vkStream->putBe32(pNext_size);
3813     if (pNext_size)
3814     {
3815         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3816         marshal_extension_struct(vkStream, forMarshaling->pNext);
3817     }
3818     vkStream->write((VkCommandPoolCreateFlags*)&forMarshaling->flags, sizeof(VkCommandPoolCreateFlags));
3819     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
3820 }
3821 
unmarshal_VkCommandPoolCreateInfo(VulkanStreamGuest * vkStream,VkCommandPoolCreateInfo * forUnmarshaling)3822 void unmarshal_VkCommandPoolCreateInfo(
3823     VulkanStreamGuest* vkStream,
3824     VkCommandPoolCreateInfo* forUnmarshaling)
3825 {
3826     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3827     size_t pNext_size;
3828     pNext_size = vkStream->getBe32();
3829     if (pNext_size)
3830     {
3831         uint64_t pNext_placeholder;
3832         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3833         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3834     }
3835     vkStream->read((VkCommandPoolCreateFlags*)&forUnmarshaling->flags, sizeof(VkCommandPoolCreateFlags));
3836     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
3837 }
3838 
marshal_VkCommandBufferAllocateInfo(VulkanStreamGuest * vkStream,const VkCommandBufferAllocateInfo * forMarshaling)3839 void marshal_VkCommandBufferAllocateInfo(
3840     VulkanStreamGuest* vkStream,
3841     const VkCommandBufferAllocateInfo* forMarshaling)
3842 {
3843     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3844     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3845     vkStream->putBe32(pNext_size);
3846     if (pNext_size)
3847     {
3848         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3849         marshal_extension_struct(vkStream, forMarshaling->pNext);
3850     }
3851     uint64_t cgen_var_140;
3852     vkStream->handleMapping()->mapHandles_VkCommandPool_u64(&forMarshaling->commandPool, &cgen_var_140, 1);
3853     vkStream->write((uint64_t*)&cgen_var_140, 1 * 8);
3854     vkStream->write((VkCommandBufferLevel*)&forMarshaling->level, sizeof(VkCommandBufferLevel));
3855     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
3856 }
3857 
unmarshal_VkCommandBufferAllocateInfo(VulkanStreamGuest * vkStream,VkCommandBufferAllocateInfo * forUnmarshaling)3858 void unmarshal_VkCommandBufferAllocateInfo(
3859     VulkanStreamGuest* vkStream,
3860     VkCommandBufferAllocateInfo* forUnmarshaling)
3861 {
3862     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3863     size_t pNext_size;
3864     pNext_size = vkStream->getBe32();
3865     if (pNext_size)
3866     {
3867         uint64_t pNext_placeholder;
3868         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3869         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3870     }
3871     uint64_t cgen_var_141;
3872     vkStream->read((uint64_t*)&cgen_var_141, 1 * 8);
3873     vkStream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_141, (VkCommandPool*)&forUnmarshaling->commandPool, 1);
3874     vkStream->read((VkCommandBufferLevel*)&forUnmarshaling->level, sizeof(VkCommandBufferLevel));
3875     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
3876 }
3877 
marshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest * vkStream,const VkCommandBufferInheritanceInfo * forMarshaling)3878 void marshal_VkCommandBufferInheritanceInfo(
3879     VulkanStreamGuest* vkStream,
3880     const VkCommandBufferInheritanceInfo* forMarshaling)
3881 {
3882     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3883     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3884     vkStream->putBe32(pNext_size);
3885     if (pNext_size)
3886     {
3887         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3888         marshal_extension_struct(vkStream, forMarshaling->pNext);
3889     }
3890     uint64_t cgen_var_142;
3891     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_142, 1);
3892     vkStream->write((uint64_t*)&cgen_var_142, 1 * 8);
3893     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
3894     uint64_t cgen_var_143;
3895     vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_143, 1);
3896     vkStream->write((uint64_t*)&cgen_var_143, 1 * 8);
3897     vkStream->write((VkBool32*)&forMarshaling->occlusionQueryEnable, sizeof(VkBool32));
3898     vkStream->write((VkQueryControlFlags*)&forMarshaling->queryFlags, sizeof(VkQueryControlFlags));
3899     vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
3900 }
3901 
unmarshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest * vkStream,VkCommandBufferInheritanceInfo * forUnmarshaling)3902 void unmarshal_VkCommandBufferInheritanceInfo(
3903     VulkanStreamGuest* vkStream,
3904     VkCommandBufferInheritanceInfo* forUnmarshaling)
3905 {
3906     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3907     size_t pNext_size;
3908     pNext_size = vkStream->getBe32();
3909     if (pNext_size)
3910     {
3911         uint64_t pNext_placeholder;
3912         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3913         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3914     }
3915     uint64_t cgen_var_144;
3916     vkStream->read((uint64_t*)&cgen_var_144, 1 * 8);
3917     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_144, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
3918     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
3919     uint64_t cgen_var_145;
3920     vkStream->read((uint64_t*)&cgen_var_145, 1 * 8);
3921     vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_145, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
3922     vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryEnable, sizeof(VkBool32));
3923     vkStream->read((VkQueryControlFlags*)&forUnmarshaling->queryFlags, sizeof(VkQueryControlFlags));
3924     vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
3925 }
3926 
marshal_VkCommandBufferBeginInfo(VulkanStreamGuest * vkStream,const VkCommandBufferBeginInfo * forMarshaling)3927 void marshal_VkCommandBufferBeginInfo(
3928     VulkanStreamGuest* vkStream,
3929     const VkCommandBufferBeginInfo* forMarshaling)
3930 {
3931     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3932     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3933     vkStream->putBe32(pNext_size);
3934     if (pNext_size)
3935     {
3936         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3937         marshal_extension_struct(vkStream, forMarshaling->pNext);
3938     }
3939     vkStream->write((VkCommandBufferUsageFlags*)&forMarshaling->flags, sizeof(VkCommandBufferUsageFlags));
3940     // WARNING PTR CHECK
3941     uint64_t cgen_var_146 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
3942     vkStream->putBe64(cgen_var_146);
3943     if (forMarshaling->pInheritanceInfo)
3944     {
3945         marshal_VkCommandBufferInheritanceInfo(vkStream, (const VkCommandBufferInheritanceInfo*)(forMarshaling->pInheritanceInfo));
3946     }
3947 }
3948 
unmarshal_VkCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkCommandBufferBeginInfo * forUnmarshaling)3949 void unmarshal_VkCommandBufferBeginInfo(
3950     VulkanStreamGuest* vkStream,
3951     VkCommandBufferBeginInfo* forUnmarshaling)
3952 {
3953     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3954     size_t pNext_size;
3955     pNext_size = vkStream->getBe32();
3956     if (pNext_size)
3957     {
3958         uint64_t pNext_placeholder;
3959         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3960         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3961     }
3962     vkStream->read((VkCommandBufferUsageFlags*)&forUnmarshaling->flags, sizeof(VkCommandBufferUsageFlags));
3963     // WARNING PTR CHECK
3964     const VkCommandBufferInheritanceInfo* check_pInheritanceInfo;
3965     check_pInheritanceInfo = (const VkCommandBufferInheritanceInfo*)(uintptr_t)vkStream->getBe64();
3966     if (forUnmarshaling->pInheritanceInfo)
3967     {
3968         if (!(check_pInheritanceInfo))
3969         {
3970             fprintf(stderr, "fatal: forUnmarshaling->pInheritanceInfo inconsistent between guest and host\n");
3971         }
3972         unmarshal_VkCommandBufferInheritanceInfo(vkStream, (VkCommandBufferInheritanceInfo*)(forUnmarshaling->pInheritanceInfo));
3973     }
3974 }
3975 
marshal_VkBufferCopy(VulkanStreamGuest * vkStream,const VkBufferCopy * forMarshaling)3976 void marshal_VkBufferCopy(
3977     VulkanStreamGuest* vkStream,
3978     const VkBufferCopy* forMarshaling)
3979 {
3980     vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
3981     vkStream->write((VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
3982     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
3983 }
3984 
unmarshal_VkBufferCopy(VulkanStreamGuest * vkStream,VkBufferCopy * forUnmarshaling)3985 void unmarshal_VkBufferCopy(
3986     VulkanStreamGuest* vkStream,
3987     VkBufferCopy* forUnmarshaling)
3988 {
3989     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
3990     vkStream->read((VkDeviceSize*)&forUnmarshaling->dstOffset, sizeof(VkDeviceSize));
3991     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
3992 }
3993 
marshal_VkImageSubresourceLayers(VulkanStreamGuest * vkStream,const VkImageSubresourceLayers * forMarshaling)3994 void marshal_VkImageSubresourceLayers(
3995     VulkanStreamGuest* vkStream,
3996     const VkImageSubresourceLayers* forMarshaling)
3997 {
3998     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
3999     vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
4000     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
4001     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
4002 }
4003 
unmarshal_VkImageSubresourceLayers(VulkanStreamGuest * vkStream,VkImageSubresourceLayers * forUnmarshaling)4004 void unmarshal_VkImageSubresourceLayers(
4005     VulkanStreamGuest* vkStream,
4006     VkImageSubresourceLayers* forUnmarshaling)
4007 {
4008     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
4009     vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
4010     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
4011     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
4012 }
4013 
marshal_VkImageCopy(VulkanStreamGuest * vkStream,const VkImageCopy * forMarshaling)4014 void marshal_VkImageCopy(
4015     VulkanStreamGuest* vkStream,
4016     const VkImageCopy* forMarshaling)
4017 {
4018     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4019     marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
4020     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4021     marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
4022     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
4023 }
4024 
unmarshal_VkImageCopy(VulkanStreamGuest * vkStream,VkImageCopy * forUnmarshaling)4025 void unmarshal_VkImageCopy(
4026     VulkanStreamGuest* vkStream,
4027     VkImageCopy* forUnmarshaling)
4028 {
4029     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4030     unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
4031     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4032     unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
4033     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
4034 }
4035 
marshal_VkImageBlit(VulkanStreamGuest * vkStream,const VkImageBlit * forMarshaling)4036 void marshal_VkImageBlit(
4037     VulkanStreamGuest* vkStream,
4038     const VkImageBlit* forMarshaling)
4039 {
4040     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4041     for (uint32_t i = 0; i < (uint32_t)2; ++i)
4042     {
4043         marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i));
4044     }
4045     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4046     for (uint32_t i = 0; i < (uint32_t)2; ++i)
4047     {
4048         marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i));
4049     }
4050 }
4051 
unmarshal_VkImageBlit(VulkanStreamGuest * vkStream,VkImageBlit * forUnmarshaling)4052 void unmarshal_VkImageBlit(
4053     VulkanStreamGuest* vkStream,
4054     VkImageBlit* forUnmarshaling)
4055 {
4056     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4057     for (uint32_t i = 0; i < (uint32_t)2; ++i)
4058     {
4059         unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
4060     }
4061     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4062     for (uint32_t i = 0; i < (uint32_t)2; ++i)
4063     {
4064         unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
4065     }
4066 }
4067 
marshal_VkBufferImageCopy(VulkanStreamGuest * vkStream,const VkBufferImageCopy * forMarshaling)4068 void marshal_VkBufferImageCopy(
4069     VulkanStreamGuest* vkStream,
4070     const VkBufferImageCopy* forMarshaling)
4071 {
4072     vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
4073     vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
4074     vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
4075     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
4076     marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->imageOffset));
4077     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->imageExtent));
4078 }
4079 
unmarshal_VkBufferImageCopy(VulkanStreamGuest * vkStream,VkBufferImageCopy * forUnmarshaling)4080 void unmarshal_VkBufferImageCopy(
4081     VulkanStreamGuest* vkStream,
4082     VkBufferImageCopy* forUnmarshaling)
4083 {
4084     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
4085     vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
4086     vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
4087     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
4088     unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->imageOffset));
4089     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->imageExtent));
4090 }
4091 
marshal_VkClearColorValue(VulkanStreamGuest * vkStream,const VkClearColorValue * forMarshaling)4092 void marshal_VkClearColorValue(
4093     VulkanStreamGuest* vkStream,
4094     const VkClearColorValue* forMarshaling)
4095 {
4096     vkStream->write((float*)forMarshaling->float32, 4 * sizeof(float));
4097 }
4098 
unmarshal_VkClearColorValue(VulkanStreamGuest * vkStream,VkClearColorValue * forUnmarshaling)4099 void unmarshal_VkClearColorValue(
4100     VulkanStreamGuest* vkStream,
4101     VkClearColorValue* forUnmarshaling)
4102 {
4103     vkStream->read((float*)forUnmarshaling->float32, 4 * sizeof(float));
4104 }
4105 
marshal_VkClearDepthStencilValue(VulkanStreamGuest * vkStream,const VkClearDepthStencilValue * forMarshaling)4106 void marshal_VkClearDepthStencilValue(
4107     VulkanStreamGuest* vkStream,
4108     const VkClearDepthStencilValue* forMarshaling)
4109 {
4110     vkStream->write((float*)&forMarshaling->depth, sizeof(float));
4111     vkStream->write((uint32_t*)&forMarshaling->stencil, sizeof(uint32_t));
4112 }
4113 
unmarshal_VkClearDepthStencilValue(VulkanStreamGuest * vkStream,VkClearDepthStencilValue * forUnmarshaling)4114 void unmarshal_VkClearDepthStencilValue(
4115     VulkanStreamGuest* vkStream,
4116     VkClearDepthStencilValue* forUnmarshaling)
4117 {
4118     vkStream->read((float*)&forUnmarshaling->depth, sizeof(float));
4119     vkStream->read((uint32_t*)&forUnmarshaling->stencil, sizeof(uint32_t));
4120 }
4121 
marshal_VkClearValue(VulkanStreamGuest * vkStream,const VkClearValue * forMarshaling)4122 void marshal_VkClearValue(
4123     VulkanStreamGuest* vkStream,
4124     const VkClearValue* forMarshaling)
4125 {
4126     marshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forMarshaling->color));
4127 }
4128 
unmarshal_VkClearValue(VulkanStreamGuest * vkStream,VkClearValue * forUnmarshaling)4129 void unmarshal_VkClearValue(
4130     VulkanStreamGuest* vkStream,
4131     VkClearValue* forUnmarshaling)
4132 {
4133     unmarshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forUnmarshaling->color));
4134 }
4135 
marshal_VkClearAttachment(VulkanStreamGuest * vkStream,const VkClearAttachment * forMarshaling)4136 void marshal_VkClearAttachment(
4137     VulkanStreamGuest* vkStream,
4138     const VkClearAttachment* forMarshaling)
4139 {
4140     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
4141     vkStream->write((uint32_t*)&forMarshaling->colorAttachment, sizeof(uint32_t));
4142     marshal_VkClearValue(vkStream, (VkClearValue*)(&forMarshaling->clearValue));
4143 }
4144 
unmarshal_VkClearAttachment(VulkanStreamGuest * vkStream,VkClearAttachment * forUnmarshaling)4145 void unmarshal_VkClearAttachment(
4146     VulkanStreamGuest* vkStream,
4147     VkClearAttachment* forUnmarshaling)
4148 {
4149     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
4150     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachment, sizeof(uint32_t));
4151     unmarshal_VkClearValue(vkStream, (VkClearValue*)(&forUnmarshaling->clearValue));
4152 }
4153 
marshal_VkClearRect(VulkanStreamGuest * vkStream,const VkClearRect * forMarshaling)4154 void marshal_VkClearRect(
4155     VulkanStreamGuest* vkStream,
4156     const VkClearRect* forMarshaling)
4157 {
4158     marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->rect));
4159     vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
4160     vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
4161 }
4162 
unmarshal_VkClearRect(VulkanStreamGuest * vkStream,VkClearRect * forUnmarshaling)4163 void unmarshal_VkClearRect(
4164     VulkanStreamGuest* vkStream,
4165     VkClearRect* forUnmarshaling)
4166 {
4167     unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->rect));
4168     vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
4169     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
4170 }
4171 
marshal_VkImageResolve(VulkanStreamGuest * vkStream,const VkImageResolve * forMarshaling)4172 void marshal_VkImageResolve(
4173     VulkanStreamGuest* vkStream,
4174     const VkImageResolve* forMarshaling)
4175 {
4176     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
4177     marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
4178     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
4179     marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
4180     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
4181 }
4182 
unmarshal_VkImageResolve(VulkanStreamGuest * vkStream,VkImageResolve * forUnmarshaling)4183 void unmarshal_VkImageResolve(
4184     VulkanStreamGuest* vkStream,
4185     VkImageResolve* forUnmarshaling)
4186 {
4187     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
4188     unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
4189     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
4190     unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
4191     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
4192 }
4193 
marshal_VkMemoryBarrier(VulkanStreamGuest * vkStream,const VkMemoryBarrier * forMarshaling)4194 void marshal_VkMemoryBarrier(
4195     VulkanStreamGuest* vkStream,
4196     const VkMemoryBarrier* forMarshaling)
4197 {
4198     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4199     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4200     vkStream->putBe32(pNext_size);
4201     if (pNext_size)
4202     {
4203         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4204         marshal_extension_struct(vkStream, forMarshaling->pNext);
4205     }
4206     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
4207     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
4208 }
4209 
unmarshal_VkMemoryBarrier(VulkanStreamGuest * vkStream,VkMemoryBarrier * forUnmarshaling)4210 void unmarshal_VkMemoryBarrier(
4211     VulkanStreamGuest* vkStream,
4212     VkMemoryBarrier* forUnmarshaling)
4213 {
4214     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4215     size_t pNext_size;
4216     pNext_size = vkStream->getBe32();
4217     if (pNext_size)
4218     {
4219         uint64_t pNext_placeholder;
4220         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4221         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4222     }
4223     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
4224     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
4225 }
4226 
marshal_VkBufferMemoryBarrier(VulkanStreamGuest * vkStream,const VkBufferMemoryBarrier * forMarshaling)4227 void marshal_VkBufferMemoryBarrier(
4228     VulkanStreamGuest* vkStream,
4229     const VkBufferMemoryBarrier* forMarshaling)
4230 {
4231     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4232     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4233     vkStream->putBe32(pNext_size);
4234     if (pNext_size)
4235     {
4236         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4237         marshal_extension_struct(vkStream, forMarshaling->pNext);
4238     }
4239     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
4240     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
4241     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4242     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4243     uint64_t cgen_var_148;
4244     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_148, 1);
4245     vkStream->write((uint64_t*)&cgen_var_148, 1 * 8);
4246     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
4247     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
4248 }
4249 
unmarshal_VkBufferMemoryBarrier(VulkanStreamGuest * vkStream,VkBufferMemoryBarrier * forUnmarshaling)4250 void unmarshal_VkBufferMemoryBarrier(
4251     VulkanStreamGuest* vkStream,
4252     VkBufferMemoryBarrier* forUnmarshaling)
4253 {
4254     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4255     size_t pNext_size;
4256     pNext_size = vkStream->getBe32();
4257     if (pNext_size)
4258     {
4259         uint64_t pNext_placeholder;
4260         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4261         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4262     }
4263     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
4264     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
4265     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4266     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4267     uint64_t cgen_var_149;
4268     vkStream->read((uint64_t*)&cgen_var_149, 1 * 8);
4269     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_149, (VkBuffer*)&forUnmarshaling->buffer, 1);
4270     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
4271     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
4272 }
4273 
marshal_VkImageMemoryBarrier(VulkanStreamGuest * vkStream,const VkImageMemoryBarrier * forMarshaling)4274 void marshal_VkImageMemoryBarrier(
4275     VulkanStreamGuest* vkStream,
4276     const VkImageMemoryBarrier* forMarshaling)
4277 {
4278     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4279     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4280     vkStream->putBe32(pNext_size);
4281     if (pNext_size)
4282     {
4283         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4284         marshal_extension_struct(vkStream, forMarshaling->pNext);
4285     }
4286     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
4287     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
4288     vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
4289     vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
4290     vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4291     vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4292     uint64_t cgen_var_150;
4293     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_150, 1);
4294     vkStream->write((uint64_t*)&cgen_var_150, 1 * 8);
4295     marshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
4296 }
4297 
unmarshal_VkImageMemoryBarrier(VulkanStreamGuest * vkStream,VkImageMemoryBarrier * forUnmarshaling)4298 void unmarshal_VkImageMemoryBarrier(
4299     VulkanStreamGuest* vkStream,
4300     VkImageMemoryBarrier* forUnmarshaling)
4301 {
4302     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4303     size_t pNext_size;
4304     pNext_size = vkStream->getBe32();
4305     if (pNext_size)
4306     {
4307         uint64_t pNext_placeholder;
4308         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4309         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4310     }
4311     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
4312     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
4313     vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
4314     vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
4315     vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4316     vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4317     uint64_t cgen_var_151;
4318     vkStream->read((uint64_t*)&cgen_var_151, 1 * 8);
4319     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_151, (VkImage*)&forUnmarshaling->image, 1);
4320     unmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
4321 }
4322 
marshal_VkRenderPassBeginInfo(VulkanStreamGuest * vkStream,const VkRenderPassBeginInfo * forMarshaling)4323 void marshal_VkRenderPassBeginInfo(
4324     VulkanStreamGuest* vkStream,
4325     const VkRenderPassBeginInfo* forMarshaling)
4326 {
4327     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4328     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4329     vkStream->putBe32(pNext_size);
4330     if (pNext_size)
4331     {
4332         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4333         marshal_extension_struct(vkStream, forMarshaling->pNext);
4334     }
4335     uint64_t cgen_var_152;
4336     vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_152, 1);
4337     vkStream->write((uint64_t*)&cgen_var_152, 1 * 8);
4338     uint64_t cgen_var_153;
4339     vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_153, 1);
4340     vkStream->write((uint64_t*)&cgen_var_153, 1 * 8);
4341     marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->renderArea));
4342     vkStream->write((uint32_t*)&forMarshaling->clearValueCount, sizeof(uint32_t));
4343     // WARNING PTR CHECK
4344     uint64_t cgen_var_154 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
4345     vkStream->putBe64(cgen_var_154);
4346     if (forMarshaling->pClearValues)
4347     {
4348         for (uint32_t i = 0; i < (uint32_t)forMarshaling->clearValueCount; ++i)
4349         {
4350             marshal_VkClearValue(vkStream, (const VkClearValue*)(forMarshaling->pClearValues + i));
4351         }
4352     }
4353 }
4354 
unmarshal_VkRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkRenderPassBeginInfo * forUnmarshaling)4355 void unmarshal_VkRenderPassBeginInfo(
4356     VulkanStreamGuest* vkStream,
4357     VkRenderPassBeginInfo* forUnmarshaling)
4358 {
4359     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4360     size_t pNext_size;
4361     pNext_size = vkStream->getBe32();
4362     if (pNext_size)
4363     {
4364         uint64_t pNext_placeholder;
4365         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4366         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4367     }
4368     uint64_t cgen_var_155;
4369     vkStream->read((uint64_t*)&cgen_var_155, 1 * 8);
4370     vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_155, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
4371     uint64_t cgen_var_156;
4372     vkStream->read((uint64_t*)&cgen_var_156, 1 * 8);
4373     vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_156, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
4374     unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->renderArea));
4375     vkStream->read((uint32_t*)&forUnmarshaling->clearValueCount, sizeof(uint32_t));
4376     // WARNING PTR CHECK
4377     const VkClearValue* check_pClearValues;
4378     check_pClearValues = (const VkClearValue*)(uintptr_t)vkStream->getBe64();
4379     if (forUnmarshaling->pClearValues)
4380     {
4381         if (!(check_pClearValues))
4382         {
4383             fprintf(stderr, "fatal: forUnmarshaling->pClearValues inconsistent between guest and host\n");
4384         }
4385         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->clearValueCount; ++i)
4386         {
4387             unmarshal_VkClearValue(vkStream, (VkClearValue*)(forUnmarshaling->pClearValues + i));
4388         }
4389     }
4390 }
4391 
marshal_VkDispatchIndirectCommand(VulkanStreamGuest * vkStream,const VkDispatchIndirectCommand * forMarshaling)4392 void marshal_VkDispatchIndirectCommand(
4393     VulkanStreamGuest* vkStream,
4394     const VkDispatchIndirectCommand* forMarshaling)
4395 {
4396     vkStream->write((uint32_t*)&forMarshaling->x, sizeof(uint32_t));
4397     vkStream->write((uint32_t*)&forMarshaling->y, sizeof(uint32_t));
4398     vkStream->write((uint32_t*)&forMarshaling->z, sizeof(uint32_t));
4399 }
4400 
unmarshal_VkDispatchIndirectCommand(VulkanStreamGuest * vkStream,VkDispatchIndirectCommand * forUnmarshaling)4401 void unmarshal_VkDispatchIndirectCommand(
4402     VulkanStreamGuest* vkStream,
4403     VkDispatchIndirectCommand* forUnmarshaling)
4404 {
4405     vkStream->read((uint32_t*)&forUnmarshaling->x, sizeof(uint32_t));
4406     vkStream->read((uint32_t*)&forUnmarshaling->y, sizeof(uint32_t));
4407     vkStream->read((uint32_t*)&forUnmarshaling->z, sizeof(uint32_t));
4408 }
4409 
marshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest * vkStream,const VkDrawIndexedIndirectCommand * forMarshaling)4410 void marshal_VkDrawIndexedIndirectCommand(
4411     VulkanStreamGuest* vkStream,
4412     const VkDrawIndexedIndirectCommand* forMarshaling)
4413 {
4414     vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
4415     vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
4416     vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
4417     vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
4418     vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
4419 }
4420 
unmarshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest * vkStream,VkDrawIndexedIndirectCommand * forUnmarshaling)4421 void unmarshal_VkDrawIndexedIndirectCommand(
4422     VulkanStreamGuest* vkStream,
4423     VkDrawIndexedIndirectCommand* forUnmarshaling)
4424 {
4425     vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
4426     vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
4427     vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
4428     vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
4429     vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
4430 }
4431 
marshal_VkDrawIndirectCommand(VulkanStreamGuest * vkStream,const VkDrawIndirectCommand * forMarshaling)4432 void marshal_VkDrawIndirectCommand(
4433     VulkanStreamGuest* vkStream,
4434     const VkDrawIndirectCommand* forMarshaling)
4435 {
4436     vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
4437     vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
4438     vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
4439     vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
4440 }
4441 
unmarshal_VkDrawIndirectCommand(VulkanStreamGuest * vkStream,VkDrawIndirectCommand * forUnmarshaling)4442 void unmarshal_VkDrawIndirectCommand(
4443     VulkanStreamGuest* vkStream,
4444     VkDrawIndirectCommand* forUnmarshaling)
4445 {
4446     vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
4447     vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
4448     vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
4449     vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
4450 }
4451 
marshal_VkBaseOutStructure(VulkanStreamGuest * vkStream,const VkBaseOutStructure * forMarshaling)4452 void marshal_VkBaseOutStructure(
4453     VulkanStreamGuest* vkStream,
4454     const VkBaseOutStructure* forMarshaling)
4455 {
4456     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4457     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4458     vkStream->putBe32(pNext_size);
4459     if (pNext_size)
4460     {
4461         vkStream->write((VkBaseOutStructure*)forMarshaling->pNext, sizeof(VkStructureType));
4462         marshal_extension_struct(vkStream, forMarshaling->pNext);
4463     }
4464 }
4465 
unmarshal_VkBaseOutStructure(VulkanStreamGuest * vkStream,VkBaseOutStructure * forUnmarshaling)4466 void unmarshal_VkBaseOutStructure(
4467     VulkanStreamGuest* vkStream,
4468     VkBaseOutStructure* forUnmarshaling)
4469 {
4470     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4471     size_t pNext_size;
4472     pNext_size = vkStream->getBe32();
4473     if (pNext_size)
4474     {
4475         uint64_t pNext_placeholder;
4476         vkStream->read((VkBaseOutStructure*)(&pNext_placeholder), sizeof(VkStructureType));
4477         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4478     }
4479 }
4480 
marshal_VkBaseInStructure(VulkanStreamGuest * vkStream,const VkBaseInStructure * forMarshaling)4481 void marshal_VkBaseInStructure(
4482     VulkanStreamGuest* vkStream,
4483     const VkBaseInStructure* forMarshaling)
4484 {
4485     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4486     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4487     vkStream->putBe32(pNext_size);
4488     if (pNext_size)
4489     {
4490         vkStream->write((const VkBaseInStructure*)forMarshaling->pNext, sizeof(VkStructureType));
4491         marshal_extension_struct(vkStream, forMarshaling->pNext);
4492     }
4493 }
4494 
unmarshal_VkBaseInStructure(VulkanStreamGuest * vkStream,VkBaseInStructure * forUnmarshaling)4495 void unmarshal_VkBaseInStructure(
4496     VulkanStreamGuest* vkStream,
4497     VkBaseInStructure* forUnmarshaling)
4498 {
4499     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4500     size_t pNext_size;
4501     pNext_size = vkStream->getBe32();
4502     if (pNext_size)
4503     {
4504         uint64_t pNext_placeholder;
4505         vkStream->read((VkBaseInStructure*)(&pNext_placeholder), sizeof(VkStructureType));
4506         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4507     }
4508 }
4509 
4510 #endif
4511 #ifdef VK_VERSION_1_1
marshal_VkPhysicalDeviceSubgroupProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSubgroupProperties * forMarshaling)4512 void marshal_VkPhysicalDeviceSubgroupProperties(
4513     VulkanStreamGuest* vkStream,
4514     const VkPhysicalDeviceSubgroupProperties* forMarshaling)
4515 {
4516     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4517     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4518     vkStream->putBe32(pNext_size);
4519     if (pNext_size)
4520     {
4521         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4522         marshal_extension_struct(vkStream, forMarshaling->pNext);
4523     }
4524     vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
4525     vkStream->write((VkShaderStageFlags*)&forMarshaling->supportedStages, sizeof(VkShaderStageFlags));
4526     vkStream->write((VkSubgroupFeatureFlags*)&forMarshaling->supportedOperations, sizeof(VkSubgroupFeatureFlags));
4527     vkStream->write((VkBool32*)&forMarshaling->quadOperationsInAllStages, sizeof(VkBool32));
4528 }
4529 
unmarshal_VkPhysicalDeviceSubgroupProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceSubgroupProperties * forUnmarshaling)4530 void unmarshal_VkPhysicalDeviceSubgroupProperties(
4531     VulkanStreamGuest* vkStream,
4532     VkPhysicalDeviceSubgroupProperties* forUnmarshaling)
4533 {
4534     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4535     size_t pNext_size;
4536     pNext_size = vkStream->getBe32();
4537     if (pNext_size)
4538     {
4539         uint64_t pNext_placeholder;
4540         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4541         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4542     }
4543     vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
4544     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->supportedStages, sizeof(VkShaderStageFlags));
4545     vkStream->read((VkSubgroupFeatureFlags*)&forUnmarshaling->supportedOperations, sizeof(VkSubgroupFeatureFlags));
4546     vkStream->read((VkBool32*)&forUnmarshaling->quadOperationsInAllStages, sizeof(VkBool32));
4547 }
4548 
marshal_VkBindBufferMemoryInfo(VulkanStreamGuest * vkStream,const VkBindBufferMemoryInfo * forMarshaling)4549 void marshal_VkBindBufferMemoryInfo(
4550     VulkanStreamGuest* vkStream,
4551     const VkBindBufferMemoryInfo* forMarshaling)
4552 {
4553     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4554     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4555     vkStream->putBe32(pNext_size);
4556     if (pNext_size)
4557     {
4558         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4559         marshal_extension_struct(vkStream, forMarshaling->pNext);
4560     }
4561     uint64_t cgen_var_158;
4562     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_158, 1);
4563     vkStream->write((uint64_t*)&cgen_var_158, 1 * 8);
4564     uint64_t cgen_var_159;
4565     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_159, 1);
4566     vkStream->write((uint64_t*)&cgen_var_159, 1 * 8);
4567     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
4568 }
4569 
unmarshal_VkBindBufferMemoryInfo(VulkanStreamGuest * vkStream,VkBindBufferMemoryInfo * forUnmarshaling)4570 void unmarshal_VkBindBufferMemoryInfo(
4571     VulkanStreamGuest* vkStream,
4572     VkBindBufferMemoryInfo* forUnmarshaling)
4573 {
4574     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4575     size_t pNext_size;
4576     pNext_size = vkStream->getBe32();
4577     if (pNext_size)
4578     {
4579         uint64_t pNext_placeholder;
4580         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4581         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4582     }
4583     uint64_t cgen_var_160;
4584     vkStream->read((uint64_t*)&cgen_var_160, 1 * 8);
4585     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_160, (VkBuffer*)&forUnmarshaling->buffer, 1);
4586     uint64_t cgen_var_161;
4587     vkStream->read((uint64_t*)&cgen_var_161, 1 * 8);
4588     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_161, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
4589     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
4590 }
4591 
marshal_VkBindImageMemoryInfo(VulkanStreamGuest * vkStream,const VkBindImageMemoryInfo * forMarshaling)4592 void marshal_VkBindImageMemoryInfo(
4593     VulkanStreamGuest* vkStream,
4594     const VkBindImageMemoryInfo* forMarshaling)
4595 {
4596     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4597     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4598     vkStream->putBe32(pNext_size);
4599     if (pNext_size)
4600     {
4601         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4602         marshal_extension_struct(vkStream, forMarshaling->pNext);
4603     }
4604     uint64_t cgen_var_162;
4605     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_162, 1);
4606     vkStream->write((uint64_t*)&cgen_var_162, 1 * 8);
4607     uint64_t cgen_var_163;
4608     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_163, 1);
4609     vkStream->write((uint64_t*)&cgen_var_163, 1 * 8);
4610     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
4611 }
4612 
unmarshal_VkBindImageMemoryInfo(VulkanStreamGuest * vkStream,VkBindImageMemoryInfo * forUnmarshaling)4613 void unmarshal_VkBindImageMemoryInfo(
4614     VulkanStreamGuest* vkStream,
4615     VkBindImageMemoryInfo* forUnmarshaling)
4616 {
4617     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4618     size_t pNext_size;
4619     pNext_size = vkStream->getBe32();
4620     if (pNext_size)
4621     {
4622         uint64_t pNext_placeholder;
4623         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4624         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4625     }
4626     uint64_t cgen_var_164;
4627     vkStream->read((uint64_t*)&cgen_var_164, 1 * 8);
4628     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_164, (VkImage*)&forUnmarshaling->image, 1);
4629     uint64_t cgen_var_165;
4630     vkStream->read((uint64_t*)&cgen_var_165, 1 * 8);
4631     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_165, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
4632     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
4633 }
4634 
marshal_VkPhysicalDevice16BitStorageFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDevice16BitStorageFeatures * forMarshaling)4635 void marshal_VkPhysicalDevice16BitStorageFeatures(
4636     VulkanStreamGuest* vkStream,
4637     const VkPhysicalDevice16BitStorageFeatures* forMarshaling)
4638 {
4639     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4640     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4641     vkStream->putBe32(pNext_size);
4642     if (pNext_size)
4643     {
4644         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4645         marshal_extension_struct(vkStream, forMarshaling->pNext);
4646     }
4647     vkStream->write((VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
4648     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
4649     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
4650     vkStream->write((VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
4651 }
4652 
unmarshal_VkPhysicalDevice16BitStorageFeatures(VulkanStreamGuest * vkStream,VkPhysicalDevice16BitStorageFeatures * forUnmarshaling)4653 void unmarshal_VkPhysicalDevice16BitStorageFeatures(
4654     VulkanStreamGuest* vkStream,
4655     VkPhysicalDevice16BitStorageFeatures* forUnmarshaling)
4656 {
4657     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4658     size_t pNext_size;
4659     pNext_size = vkStream->getBe32();
4660     if (pNext_size)
4661     {
4662         uint64_t pNext_placeholder;
4663         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4664         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4665     }
4666     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
4667     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
4668     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant16, sizeof(VkBool32));
4669     vkStream->read((VkBool32*)&forUnmarshaling->storageInputOutput16, sizeof(VkBool32));
4670 }
4671 
marshal_VkMemoryDedicatedRequirements(VulkanStreamGuest * vkStream,const VkMemoryDedicatedRequirements * forMarshaling)4672 void marshal_VkMemoryDedicatedRequirements(
4673     VulkanStreamGuest* vkStream,
4674     const VkMemoryDedicatedRequirements* forMarshaling)
4675 {
4676     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4677     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4678     vkStream->putBe32(pNext_size);
4679     if (pNext_size)
4680     {
4681         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4682         marshal_extension_struct(vkStream, forMarshaling->pNext);
4683     }
4684     vkStream->write((VkBool32*)&forMarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
4685     vkStream->write((VkBool32*)&forMarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
4686 }
4687 
unmarshal_VkMemoryDedicatedRequirements(VulkanStreamGuest * vkStream,VkMemoryDedicatedRequirements * forUnmarshaling)4688 void unmarshal_VkMemoryDedicatedRequirements(
4689     VulkanStreamGuest* vkStream,
4690     VkMemoryDedicatedRequirements* forUnmarshaling)
4691 {
4692     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4693     size_t pNext_size;
4694     pNext_size = vkStream->getBe32();
4695     if (pNext_size)
4696     {
4697         uint64_t pNext_placeholder;
4698         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4699         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4700     }
4701     vkStream->read((VkBool32*)&forUnmarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
4702     vkStream->read((VkBool32*)&forUnmarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
4703 }
4704 
marshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest * vkStream,const VkMemoryDedicatedAllocateInfo * forMarshaling)4705 void marshal_VkMemoryDedicatedAllocateInfo(
4706     VulkanStreamGuest* vkStream,
4707     const VkMemoryDedicatedAllocateInfo* forMarshaling)
4708 {
4709     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4710     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4711     vkStream->putBe32(pNext_size);
4712     if (pNext_size)
4713     {
4714         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4715         marshal_extension_struct(vkStream, forMarshaling->pNext);
4716     }
4717     uint64_t cgen_var_166;
4718     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_166, 1);
4719     vkStream->write((uint64_t*)&cgen_var_166, 1 * 8);
4720     uint64_t cgen_var_167;
4721     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_167, 1);
4722     vkStream->write((uint64_t*)&cgen_var_167, 1 * 8);
4723 }
4724 
unmarshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest * vkStream,VkMemoryDedicatedAllocateInfo * forUnmarshaling)4725 void unmarshal_VkMemoryDedicatedAllocateInfo(
4726     VulkanStreamGuest* vkStream,
4727     VkMemoryDedicatedAllocateInfo* forUnmarshaling)
4728 {
4729     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4730     size_t pNext_size;
4731     pNext_size = vkStream->getBe32();
4732     if (pNext_size)
4733     {
4734         uint64_t pNext_placeholder;
4735         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4736         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4737     }
4738     uint64_t cgen_var_168;
4739     vkStream->read((uint64_t*)&cgen_var_168, 1 * 8);
4740     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_168, (VkImage*)&forUnmarshaling->image, 1);
4741     uint64_t cgen_var_169;
4742     vkStream->read((uint64_t*)&cgen_var_169, 1 * 8);
4743     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_169, (VkBuffer*)&forUnmarshaling->buffer, 1);
4744 }
4745 
marshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest * vkStream,const VkMemoryAllocateFlagsInfo * forMarshaling)4746 void marshal_VkMemoryAllocateFlagsInfo(
4747     VulkanStreamGuest* vkStream,
4748     const VkMemoryAllocateFlagsInfo* forMarshaling)
4749 {
4750     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4751     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4752     vkStream->putBe32(pNext_size);
4753     if (pNext_size)
4754     {
4755         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4756         marshal_extension_struct(vkStream, forMarshaling->pNext);
4757     }
4758     vkStream->write((VkMemoryAllocateFlags*)&forMarshaling->flags, sizeof(VkMemoryAllocateFlags));
4759     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4760 }
4761 
unmarshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest * vkStream,VkMemoryAllocateFlagsInfo * forUnmarshaling)4762 void unmarshal_VkMemoryAllocateFlagsInfo(
4763     VulkanStreamGuest* vkStream,
4764     VkMemoryAllocateFlagsInfo* forUnmarshaling)
4765 {
4766     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4767     size_t pNext_size;
4768     pNext_size = vkStream->getBe32();
4769     if (pNext_size)
4770     {
4771         uint64_t pNext_placeholder;
4772         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4773         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4774     }
4775     vkStream->read((VkMemoryAllocateFlags*)&forUnmarshaling->flags, sizeof(VkMemoryAllocateFlags));
4776     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4777 }
4778 
marshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupRenderPassBeginInfo * forMarshaling)4779 void marshal_VkDeviceGroupRenderPassBeginInfo(
4780     VulkanStreamGuest* vkStream,
4781     const VkDeviceGroupRenderPassBeginInfo* forMarshaling)
4782 {
4783     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4784     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4785     vkStream->putBe32(pNext_size);
4786     if (pNext_size)
4787     {
4788         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4789         marshal_extension_struct(vkStream, forMarshaling->pNext);
4790     }
4791     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4792     vkStream->write((uint32_t*)&forMarshaling->deviceRenderAreaCount, sizeof(uint32_t));
4793     for (uint32_t i = 0; i < (uint32_t)forMarshaling->deviceRenderAreaCount; ++i)
4794     {
4795         marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDeviceRenderAreas + i));
4796     }
4797 }
4798 
unmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkDeviceGroupRenderPassBeginInfo * forUnmarshaling)4799 void unmarshal_VkDeviceGroupRenderPassBeginInfo(
4800     VulkanStreamGuest* vkStream,
4801     VkDeviceGroupRenderPassBeginInfo* forUnmarshaling)
4802 {
4803     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4804     size_t pNext_size;
4805     pNext_size = vkStream->getBe32();
4806     if (pNext_size)
4807     {
4808         uint64_t pNext_placeholder;
4809         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4810         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4811     }
4812     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4813     vkStream->read((uint32_t*)&forUnmarshaling->deviceRenderAreaCount, sizeof(uint32_t));
4814     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->deviceRenderAreaCount; ++i)
4815     {
4816         unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDeviceRenderAreas + i));
4817     }
4818 }
4819 
marshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupCommandBufferBeginInfo * forMarshaling)4820 void marshal_VkDeviceGroupCommandBufferBeginInfo(
4821     VulkanStreamGuest* vkStream,
4822     const VkDeviceGroupCommandBufferBeginInfo* forMarshaling)
4823 {
4824     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4825     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4826     vkStream->putBe32(pNext_size);
4827     if (pNext_size)
4828     {
4829         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4830         marshal_extension_struct(vkStream, forMarshaling->pNext);
4831     }
4832     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4833 }
4834 
unmarshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkDeviceGroupCommandBufferBeginInfo * forUnmarshaling)4835 void unmarshal_VkDeviceGroupCommandBufferBeginInfo(
4836     VulkanStreamGuest* vkStream,
4837     VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling)
4838 {
4839     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4840     size_t pNext_size;
4841     pNext_size = vkStream->getBe32();
4842     if (pNext_size)
4843     {
4844         uint64_t pNext_placeholder;
4845         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4846         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4847     }
4848     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4849 }
4850 
marshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupSubmitInfo * forMarshaling)4851 void marshal_VkDeviceGroupSubmitInfo(
4852     VulkanStreamGuest* vkStream,
4853     const VkDeviceGroupSubmitInfo* forMarshaling)
4854 {
4855     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4856     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4857     vkStream->putBe32(pNext_size);
4858     if (pNext_size)
4859     {
4860         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4861         marshal_extension_struct(vkStream, forMarshaling->pNext);
4862     }
4863     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
4864     vkStream->write((const uint32_t*)forMarshaling->pWaitSemaphoreDeviceIndices, forMarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4865     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
4866     vkStream->write((const uint32_t*)forMarshaling->pCommandBufferDeviceMasks, forMarshaling->commandBufferCount * sizeof(const uint32_t));
4867     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
4868     vkStream->write((const uint32_t*)forMarshaling->pSignalSemaphoreDeviceIndices, forMarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4869 }
4870 
unmarshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest * vkStream,VkDeviceGroupSubmitInfo * forUnmarshaling)4871 void unmarshal_VkDeviceGroupSubmitInfo(
4872     VulkanStreamGuest* vkStream,
4873     VkDeviceGroupSubmitInfo* forUnmarshaling)
4874 {
4875     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4876     size_t pNext_size;
4877     pNext_size = vkStream->getBe32();
4878     if (pNext_size)
4879     {
4880         uint64_t pNext_placeholder;
4881         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4882         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4883     }
4884     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
4885     vkStream->read((uint32_t*)forUnmarshaling->pWaitSemaphoreDeviceIndices, forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4886     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
4887     vkStream->read((uint32_t*)forUnmarshaling->pCommandBufferDeviceMasks, forUnmarshaling->commandBufferCount * sizeof(const uint32_t));
4888     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
4889     vkStream->read((uint32_t*)forUnmarshaling->pSignalSemaphoreDeviceIndices, forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4890 }
4891 
marshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupBindSparseInfo * forMarshaling)4892 void marshal_VkDeviceGroupBindSparseInfo(
4893     VulkanStreamGuest* vkStream,
4894     const VkDeviceGroupBindSparseInfo* forMarshaling)
4895 {
4896     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4897     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4898     vkStream->putBe32(pNext_size);
4899     if (pNext_size)
4900     {
4901         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4902         marshal_extension_struct(vkStream, forMarshaling->pNext);
4903     }
4904     vkStream->write((uint32_t*)&forMarshaling->resourceDeviceIndex, sizeof(uint32_t));
4905     vkStream->write((uint32_t*)&forMarshaling->memoryDeviceIndex, sizeof(uint32_t));
4906 }
4907 
unmarshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest * vkStream,VkDeviceGroupBindSparseInfo * forUnmarshaling)4908 void unmarshal_VkDeviceGroupBindSparseInfo(
4909     VulkanStreamGuest* vkStream,
4910     VkDeviceGroupBindSparseInfo* forUnmarshaling)
4911 {
4912     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4913     size_t pNext_size;
4914     pNext_size = vkStream->getBe32();
4915     if (pNext_size)
4916     {
4917         uint64_t pNext_placeholder;
4918         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4919         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4920     }
4921     vkStream->read((uint32_t*)&forUnmarshaling->resourceDeviceIndex, sizeof(uint32_t));
4922     vkStream->read((uint32_t*)&forUnmarshaling->memoryDeviceIndex, sizeof(uint32_t));
4923 }
4924 
marshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,const VkBindBufferMemoryDeviceGroupInfo * forMarshaling)4925 void marshal_VkBindBufferMemoryDeviceGroupInfo(
4926     VulkanStreamGuest* vkStream,
4927     const VkBindBufferMemoryDeviceGroupInfo* forMarshaling)
4928 {
4929     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4930     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4931     vkStream->putBe32(pNext_size);
4932     if (pNext_size)
4933     {
4934         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4935         marshal_extension_struct(vkStream, forMarshaling->pNext);
4936     }
4937     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
4938     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices, forMarshaling->deviceIndexCount * sizeof(const uint32_t));
4939 }
4940 
unmarshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkBindBufferMemoryDeviceGroupInfo * forUnmarshaling)4941 void unmarshal_VkBindBufferMemoryDeviceGroupInfo(
4942     VulkanStreamGuest* vkStream,
4943     VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling)
4944 {
4945     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4946     size_t pNext_size;
4947     pNext_size = vkStream->getBe32();
4948     if (pNext_size)
4949     {
4950         uint64_t pNext_placeholder;
4951         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4952         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4953     }
4954     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
4955     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices, forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4956 }
4957 
marshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,const VkBindImageMemoryDeviceGroupInfo * forMarshaling)4958 void marshal_VkBindImageMemoryDeviceGroupInfo(
4959     VulkanStreamGuest* vkStream,
4960     const VkBindImageMemoryDeviceGroupInfo* forMarshaling)
4961 {
4962     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4963     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4964     vkStream->putBe32(pNext_size);
4965     if (pNext_size)
4966     {
4967         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4968         marshal_extension_struct(vkStream, forMarshaling->pNext);
4969     }
4970     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
4971     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices, forMarshaling->deviceIndexCount * sizeof(const uint32_t));
4972     vkStream->write((uint32_t*)&forMarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
4973     for (uint32_t i = 0; i < (uint32_t)forMarshaling->splitInstanceBindRegionCount; ++i)
4974     {
4975         marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pSplitInstanceBindRegions + i));
4976     }
4977 }
4978 
unmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkBindImageMemoryDeviceGroupInfo * forUnmarshaling)4979 void unmarshal_VkBindImageMemoryDeviceGroupInfo(
4980     VulkanStreamGuest* vkStream,
4981     VkBindImageMemoryDeviceGroupInfo* forUnmarshaling)
4982 {
4983     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4984     size_t pNext_size;
4985     pNext_size = vkStream->getBe32();
4986     if (pNext_size)
4987     {
4988         uint64_t pNext_placeholder;
4989         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4990         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4991     }
4992     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
4993     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices, forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4994     vkStream->read((uint32_t*)&forUnmarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
4995     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->splitInstanceBindRegionCount; ++i)
4996     {
4997         unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pSplitInstanceBindRegions + i));
4998     }
4999 }
5000 
marshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceGroupProperties * forMarshaling)5001 void marshal_VkPhysicalDeviceGroupProperties(
5002     VulkanStreamGuest* vkStream,
5003     const VkPhysicalDeviceGroupProperties* forMarshaling)
5004 {
5005     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5006     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5007     vkStream->putBe32(pNext_size);
5008     if (pNext_size)
5009     {
5010         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5011         marshal_extension_struct(vkStream, forMarshaling->pNext);
5012     }
5013     vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
5014     vkStream->write((VkPhysicalDevice*)forMarshaling->physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
5015     vkStream->write((VkBool32*)&forMarshaling->subsetAllocation, sizeof(VkBool32));
5016 }
5017 
unmarshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceGroupProperties * forUnmarshaling)5018 void unmarshal_VkPhysicalDeviceGroupProperties(
5019     VulkanStreamGuest* vkStream,
5020     VkPhysicalDeviceGroupProperties* forUnmarshaling)
5021 {
5022     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5023     size_t pNext_size;
5024     pNext_size = vkStream->getBe32();
5025     if (pNext_size)
5026     {
5027         uint64_t pNext_placeholder;
5028         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5029         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5030     }
5031     vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
5032     vkStream->read((VkPhysicalDevice*)forUnmarshaling->physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
5033     vkStream->read((VkBool32*)&forUnmarshaling->subsetAllocation, sizeof(VkBool32));
5034 }
5035 
marshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupDeviceCreateInfo * forMarshaling)5036 void marshal_VkDeviceGroupDeviceCreateInfo(
5037     VulkanStreamGuest* vkStream,
5038     const VkDeviceGroupDeviceCreateInfo* forMarshaling)
5039 {
5040     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5041     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5042     vkStream->putBe32(pNext_size);
5043     if (pNext_size)
5044     {
5045         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5046         marshal_extension_struct(vkStream, forMarshaling->pNext);
5047     }
5048     vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
5049     if (forMarshaling->physicalDeviceCount)
5050     {
5051         uint64_t* cgen_var_170;
5052         vkStream->alloc((void**)&cgen_var_170, forMarshaling->physicalDeviceCount * 8);
5053         vkStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(forMarshaling->pPhysicalDevices, cgen_var_170, forMarshaling->physicalDeviceCount);
5054         vkStream->write((uint64_t*)cgen_var_170, forMarshaling->physicalDeviceCount * 8);
5055     }
5056 }
5057 
unmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest * vkStream,VkDeviceGroupDeviceCreateInfo * forUnmarshaling)5058 void unmarshal_VkDeviceGroupDeviceCreateInfo(
5059     VulkanStreamGuest* vkStream,
5060     VkDeviceGroupDeviceCreateInfo* forUnmarshaling)
5061 {
5062     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5063     size_t pNext_size;
5064     pNext_size = vkStream->getBe32();
5065     if (pNext_size)
5066     {
5067         uint64_t pNext_placeholder;
5068         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5069         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5070     }
5071     vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
5072     if (forUnmarshaling->physicalDeviceCount)
5073     {
5074         uint64_t* cgen_var_171;
5075         vkStream->alloc((void**)&cgen_var_171, forUnmarshaling->physicalDeviceCount * 8);
5076         vkStream->read((uint64_t*)cgen_var_171, forUnmarshaling->physicalDeviceCount * 8);
5077         vkStream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_171, (VkPhysicalDevice*)forUnmarshaling->pPhysicalDevices, forUnmarshaling->physicalDeviceCount);
5078     }
5079 }
5080 
marshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,const VkBufferMemoryRequirementsInfo2 * forMarshaling)5081 void marshal_VkBufferMemoryRequirementsInfo2(
5082     VulkanStreamGuest* vkStream,
5083     const VkBufferMemoryRequirementsInfo2* forMarshaling)
5084 {
5085     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5086     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5087     vkStream->putBe32(pNext_size);
5088     if (pNext_size)
5089     {
5090         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5091         marshal_extension_struct(vkStream, forMarshaling->pNext);
5092     }
5093     uint64_t cgen_var_172;
5094     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_172, 1);
5095     vkStream->write((uint64_t*)&cgen_var_172, 1 * 8);
5096 }
5097 
unmarshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkBufferMemoryRequirementsInfo2 * forUnmarshaling)5098 void unmarshal_VkBufferMemoryRequirementsInfo2(
5099     VulkanStreamGuest* vkStream,
5100     VkBufferMemoryRequirementsInfo2* forUnmarshaling)
5101 {
5102     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5103     size_t pNext_size;
5104     pNext_size = vkStream->getBe32();
5105     if (pNext_size)
5106     {
5107         uint64_t pNext_placeholder;
5108         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5109         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5110     }
5111     uint64_t cgen_var_173;
5112     vkStream->read((uint64_t*)&cgen_var_173, 1 * 8);
5113     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_173, (VkBuffer*)&forUnmarshaling->buffer, 1);
5114 }
5115 
marshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,const VkImageMemoryRequirementsInfo2 * forMarshaling)5116 void marshal_VkImageMemoryRequirementsInfo2(
5117     VulkanStreamGuest* vkStream,
5118     const VkImageMemoryRequirementsInfo2* forMarshaling)
5119 {
5120     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5121     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5122     vkStream->putBe32(pNext_size);
5123     if (pNext_size)
5124     {
5125         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5126         marshal_extension_struct(vkStream, forMarshaling->pNext);
5127     }
5128     uint64_t cgen_var_174;
5129     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_174, 1);
5130     vkStream->write((uint64_t*)&cgen_var_174, 1 * 8);
5131 }
5132 
unmarshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkImageMemoryRequirementsInfo2 * forUnmarshaling)5133 void unmarshal_VkImageMemoryRequirementsInfo2(
5134     VulkanStreamGuest* vkStream,
5135     VkImageMemoryRequirementsInfo2* forUnmarshaling)
5136 {
5137     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5138     size_t pNext_size;
5139     pNext_size = vkStream->getBe32();
5140     if (pNext_size)
5141     {
5142         uint64_t pNext_placeholder;
5143         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5144         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5145     }
5146     uint64_t cgen_var_175;
5147     vkStream->read((uint64_t*)&cgen_var_175, 1 * 8);
5148     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_175, (VkImage*)&forUnmarshaling->image, 1);
5149 }
5150 
marshal_VkImageSparseMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,const VkImageSparseMemoryRequirementsInfo2 * forMarshaling)5151 void marshal_VkImageSparseMemoryRequirementsInfo2(
5152     VulkanStreamGuest* vkStream,
5153     const VkImageSparseMemoryRequirementsInfo2* forMarshaling)
5154 {
5155     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5156     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5157     vkStream->putBe32(pNext_size);
5158     if (pNext_size)
5159     {
5160         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5161         marshal_extension_struct(vkStream, forMarshaling->pNext);
5162     }
5163     uint64_t cgen_var_176;
5164     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_176, 1);
5165     vkStream->write((uint64_t*)&cgen_var_176, 1 * 8);
5166 }
5167 
unmarshal_VkImageSparseMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkImageSparseMemoryRequirementsInfo2 * forUnmarshaling)5168 void unmarshal_VkImageSparseMemoryRequirementsInfo2(
5169     VulkanStreamGuest* vkStream,
5170     VkImageSparseMemoryRequirementsInfo2* forUnmarshaling)
5171 {
5172     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5173     size_t pNext_size;
5174     pNext_size = vkStream->getBe32();
5175     if (pNext_size)
5176     {
5177         uint64_t pNext_placeholder;
5178         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5179         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5180     }
5181     uint64_t cgen_var_177;
5182     vkStream->read((uint64_t*)&cgen_var_177, 1 * 8);
5183     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_177, (VkImage*)&forUnmarshaling->image, 1);
5184 }
5185 
marshal_VkMemoryRequirements2(VulkanStreamGuest * vkStream,const VkMemoryRequirements2 * forMarshaling)5186 void marshal_VkMemoryRequirements2(
5187     VulkanStreamGuest* vkStream,
5188     const VkMemoryRequirements2* forMarshaling)
5189 {
5190     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5191     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5192     vkStream->putBe32(pNext_size);
5193     if (pNext_size)
5194     {
5195         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5196         marshal_extension_struct(vkStream, forMarshaling->pNext);
5197     }
5198     marshal_VkMemoryRequirements(vkStream, (VkMemoryRequirements*)(&forMarshaling->memoryRequirements));
5199 }
5200 
unmarshal_VkMemoryRequirements2(VulkanStreamGuest * vkStream,VkMemoryRequirements2 * forUnmarshaling)5201 void unmarshal_VkMemoryRequirements2(
5202     VulkanStreamGuest* vkStream,
5203     VkMemoryRequirements2* forUnmarshaling)
5204 {
5205     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5206     size_t pNext_size;
5207     pNext_size = vkStream->getBe32();
5208     if (pNext_size)
5209     {
5210         uint64_t pNext_placeholder;
5211         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5212         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5213     }
5214     unmarshal_VkMemoryRequirements(vkStream, (VkMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
5215 }
5216 
marshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest * vkStream,const VkSparseImageMemoryRequirements2 * forMarshaling)5217 void marshal_VkSparseImageMemoryRequirements2(
5218     VulkanStreamGuest* vkStream,
5219     const VkSparseImageMemoryRequirements2* forMarshaling)
5220 {
5221     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5222     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5223     vkStream->putBe32(pNext_size);
5224     if (pNext_size)
5225     {
5226         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5227         marshal_extension_struct(vkStream, forMarshaling->pNext);
5228     }
5229     marshal_VkSparseImageMemoryRequirements(vkStream, (VkSparseImageMemoryRequirements*)(&forMarshaling->memoryRequirements));
5230 }
5231 
unmarshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest * vkStream,VkSparseImageMemoryRequirements2 * forUnmarshaling)5232 void unmarshal_VkSparseImageMemoryRequirements2(
5233     VulkanStreamGuest* vkStream,
5234     VkSparseImageMemoryRequirements2* forUnmarshaling)
5235 {
5236     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5237     size_t pNext_size;
5238     pNext_size = vkStream->getBe32();
5239     if (pNext_size)
5240     {
5241         uint64_t pNext_placeholder;
5242         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5243         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5244     }
5245     unmarshal_VkSparseImageMemoryRequirements(vkStream, (VkSparseImageMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
5246 }
5247 
marshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceFeatures2 * forMarshaling)5248 void marshal_VkPhysicalDeviceFeatures2(
5249     VulkanStreamGuest* vkStream,
5250     const VkPhysicalDeviceFeatures2* forMarshaling)
5251 {
5252     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5253     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5254     vkStream->putBe32(pNext_size);
5255     if (pNext_size)
5256     {
5257         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5258         marshal_extension_struct(vkStream, forMarshaling->pNext);
5259     }
5260     marshal_VkPhysicalDeviceFeatures(vkStream, (VkPhysicalDeviceFeatures*)(&forMarshaling->features));
5261 }
5262 
unmarshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest * vkStream,VkPhysicalDeviceFeatures2 * forUnmarshaling)5263 void unmarshal_VkPhysicalDeviceFeatures2(
5264     VulkanStreamGuest* vkStream,
5265     VkPhysicalDeviceFeatures2* forUnmarshaling)
5266 {
5267     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5268     size_t pNext_size;
5269     pNext_size = vkStream->getBe32();
5270     if (pNext_size)
5271     {
5272         uint64_t pNext_placeholder;
5273         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5274         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5275     }
5276     unmarshal_VkPhysicalDeviceFeatures(vkStream, (VkPhysicalDeviceFeatures*)(&forUnmarshaling->features));
5277 }
5278 
marshal_VkPhysicalDeviceProperties2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProperties2 * forMarshaling)5279 void marshal_VkPhysicalDeviceProperties2(
5280     VulkanStreamGuest* vkStream,
5281     const VkPhysicalDeviceProperties2* forMarshaling)
5282 {
5283     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5284     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5285     vkStream->putBe32(pNext_size);
5286     if (pNext_size)
5287     {
5288         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5289         marshal_extension_struct(vkStream, forMarshaling->pNext);
5290     }
5291     marshal_VkPhysicalDeviceProperties(vkStream, (VkPhysicalDeviceProperties*)(&forMarshaling->properties));
5292 }
5293 
unmarshal_VkPhysicalDeviceProperties2(VulkanStreamGuest * vkStream,VkPhysicalDeviceProperties2 * forUnmarshaling)5294 void unmarshal_VkPhysicalDeviceProperties2(
5295     VulkanStreamGuest* vkStream,
5296     VkPhysicalDeviceProperties2* forUnmarshaling)
5297 {
5298     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5299     size_t pNext_size;
5300     pNext_size = vkStream->getBe32();
5301     if (pNext_size)
5302     {
5303         uint64_t pNext_placeholder;
5304         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5305         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5306     }
5307     unmarshal_VkPhysicalDeviceProperties(vkStream, (VkPhysicalDeviceProperties*)(&forUnmarshaling->properties));
5308 }
5309 
marshal_VkFormatProperties2(VulkanStreamGuest * vkStream,const VkFormatProperties2 * forMarshaling)5310 void marshal_VkFormatProperties2(
5311     VulkanStreamGuest* vkStream,
5312     const VkFormatProperties2* forMarshaling)
5313 {
5314     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5315     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5316     vkStream->putBe32(pNext_size);
5317     if (pNext_size)
5318     {
5319         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5320         marshal_extension_struct(vkStream, forMarshaling->pNext);
5321     }
5322     marshal_VkFormatProperties(vkStream, (VkFormatProperties*)(&forMarshaling->formatProperties));
5323 }
5324 
unmarshal_VkFormatProperties2(VulkanStreamGuest * vkStream,VkFormatProperties2 * forUnmarshaling)5325 void unmarshal_VkFormatProperties2(
5326     VulkanStreamGuest* vkStream,
5327     VkFormatProperties2* forUnmarshaling)
5328 {
5329     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5330     size_t pNext_size;
5331     pNext_size = vkStream->getBe32();
5332     if (pNext_size)
5333     {
5334         uint64_t pNext_placeholder;
5335         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5336         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5337     }
5338     unmarshal_VkFormatProperties(vkStream, (VkFormatProperties*)(&forUnmarshaling->formatProperties));
5339 }
5340 
marshal_VkImageFormatProperties2(VulkanStreamGuest * vkStream,const VkImageFormatProperties2 * forMarshaling)5341 void marshal_VkImageFormatProperties2(
5342     VulkanStreamGuest* vkStream,
5343     const VkImageFormatProperties2* forMarshaling)
5344 {
5345     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5346     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5347     vkStream->putBe32(pNext_size);
5348     if (pNext_size)
5349     {
5350         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5351         marshal_extension_struct(vkStream, forMarshaling->pNext);
5352     }
5353     marshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
5354 }
5355 
unmarshal_VkImageFormatProperties2(VulkanStreamGuest * vkStream,VkImageFormatProperties2 * forUnmarshaling)5356 void unmarshal_VkImageFormatProperties2(
5357     VulkanStreamGuest* vkStream,
5358     VkImageFormatProperties2* forUnmarshaling)
5359 {
5360     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5361     size_t pNext_size;
5362     pNext_size = vkStream->getBe32();
5363     if (pNext_size)
5364     {
5365         uint64_t pNext_placeholder;
5366         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5367         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5368     }
5369     unmarshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
5370 }
5371 
marshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceImageFormatInfo2 * forMarshaling)5372 void marshal_VkPhysicalDeviceImageFormatInfo2(
5373     VulkanStreamGuest* vkStream,
5374     const VkPhysicalDeviceImageFormatInfo2* forMarshaling)
5375 {
5376     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5377     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5378     vkStream->putBe32(pNext_size);
5379     if (pNext_size)
5380     {
5381         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5382         marshal_extension_struct(vkStream, forMarshaling->pNext);
5383     }
5384     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5385     vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
5386     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
5387     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5388     vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
5389 }
5390 
unmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest * vkStream,VkPhysicalDeviceImageFormatInfo2 * forUnmarshaling)5391 void unmarshal_VkPhysicalDeviceImageFormatInfo2(
5392     VulkanStreamGuest* vkStream,
5393     VkPhysicalDeviceImageFormatInfo2* forUnmarshaling)
5394 {
5395     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5396     size_t pNext_size;
5397     pNext_size = vkStream->getBe32();
5398     if (pNext_size)
5399     {
5400         uint64_t pNext_placeholder;
5401         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5402         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5403     }
5404     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5405     vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
5406     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
5407     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5408     vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
5409 }
5410 
marshal_VkQueueFamilyProperties2(VulkanStreamGuest * vkStream,const VkQueueFamilyProperties2 * forMarshaling)5411 void marshal_VkQueueFamilyProperties2(
5412     VulkanStreamGuest* vkStream,
5413     const VkQueueFamilyProperties2* forMarshaling)
5414 {
5415     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5416     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5417     vkStream->putBe32(pNext_size);
5418     if (pNext_size)
5419     {
5420         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5421         marshal_extension_struct(vkStream, forMarshaling->pNext);
5422     }
5423     marshal_VkQueueFamilyProperties(vkStream, (VkQueueFamilyProperties*)(&forMarshaling->queueFamilyProperties));
5424 }
5425 
unmarshal_VkQueueFamilyProperties2(VulkanStreamGuest * vkStream,VkQueueFamilyProperties2 * forUnmarshaling)5426 void unmarshal_VkQueueFamilyProperties2(
5427     VulkanStreamGuest* vkStream,
5428     VkQueueFamilyProperties2* forUnmarshaling)
5429 {
5430     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5431     size_t pNext_size;
5432     pNext_size = vkStream->getBe32();
5433     if (pNext_size)
5434     {
5435         uint64_t pNext_placeholder;
5436         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5437         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5438     }
5439     unmarshal_VkQueueFamilyProperties(vkStream, (VkQueueFamilyProperties*)(&forUnmarshaling->queueFamilyProperties));
5440 }
5441 
marshal_VkPhysicalDeviceMemoryProperties2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMemoryProperties2 * forMarshaling)5442 void marshal_VkPhysicalDeviceMemoryProperties2(
5443     VulkanStreamGuest* vkStream,
5444     const VkPhysicalDeviceMemoryProperties2* forMarshaling)
5445 {
5446     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5447     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5448     vkStream->putBe32(pNext_size);
5449     if (pNext_size)
5450     {
5451         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5452         marshal_extension_struct(vkStream, forMarshaling->pNext);
5453     }
5454     marshal_VkPhysicalDeviceMemoryProperties(vkStream, (VkPhysicalDeviceMemoryProperties*)(&forMarshaling->memoryProperties));
5455 }
5456 
unmarshal_VkPhysicalDeviceMemoryProperties2(VulkanStreamGuest * vkStream,VkPhysicalDeviceMemoryProperties2 * forUnmarshaling)5457 void unmarshal_VkPhysicalDeviceMemoryProperties2(
5458     VulkanStreamGuest* vkStream,
5459     VkPhysicalDeviceMemoryProperties2* forUnmarshaling)
5460 {
5461     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5462     size_t pNext_size;
5463     pNext_size = vkStream->getBe32();
5464     if (pNext_size)
5465     {
5466         uint64_t pNext_placeholder;
5467         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5468         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5469     }
5470     unmarshal_VkPhysicalDeviceMemoryProperties(vkStream, (VkPhysicalDeviceMemoryProperties*)(&forUnmarshaling->memoryProperties));
5471 }
5472 
marshal_VkSparseImageFormatProperties2(VulkanStreamGuest * vkStream,const VkSparseImageFormatProperties2 * forMarshaling)5473 void marshal_VkSparseImageFormatProperties2(
5474     VulkanStreamGuest* vkStream,
5475     const VkSparseImageFormatProperties2* forMarshaling)
5476 {
5477     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5478     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5479     vkStream->putBe32(pNext_size);
5480     if (pNext_size)
5481     {
5482         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5483         marshal_extension_struct(vkStream, forMarshaling->pNext);
5484     }
5485     marshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forMarshaling->properties));
5486 }
5487 
unmarshal_VkSparseImageFormatProperties2(VulkanStreamGuest * vkStream,VkSparseImageFormatProperties2 * forUnmarshaling)5488 void unmarshal_VkSparseImageFormatProperties2(
5489     VulkanStreamGuest* vkStream,
5490     VkSparseImageFormatProperties2* forUnmarshaling)
5491 {
5492     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5493     size_t pNext_size;
5494     pNext_size = vkStream->getBe32();
5495     if (pNext_size)
5496     {
5497         uint64_t pNext_placeholder;
5498         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5499         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5500     }
5501     unmarshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forUnmarshaling->properties));
5502 }
5503 
marshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSparseImageFormatInfo2 * forMarshaling)5504 void marshal_VkPhysicalDeviceSparseImageFormatInfo2(
5505     VulkanStreamGuest* vkStream,
5506     const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling)
5507 {
5508     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5509     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5510     vkStream->putBe32(pNext_size);
5511     if (pNext_size)
5512     {
5513         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5514         marshal_extension_struct(vkStream, forMarshaling->pNext);
5515     }
5516     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5517     vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
5518     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
5519     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5520     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
5521 }
5522 
unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStreamGuest * vkStream,VkPhysicalDeviceSparseImageFormatInfo2 * forUnmarshaling)5523 void unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
5524     VulkanStreamGuest* vkStream,
5525     VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling)
5526 {
5527     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5528     size_t pNext_size;
5529     pNext_size = vkStream->getBe32();
5530     if (pNext_size)
5531     {
5532         uint64_t pNext_placeholder;
5533         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5534         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5535     }
5536     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5537     vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
5538     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
5539     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5540     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
5541 }
5542 
marshal_VkPhysicalDevicePointClippingProperties(VulkanStreamGuest * vkStream,const VkPhysicalDevicePointClippingProperties * forMarshaling)5543 void marshal_VkPhysicalDevicePointClippingProperties(
5544     VulkanStreamGuest* vkStream,
5545     const VkPhysicalDevicePointClippingProperties* forMarshaling)
5546 {
5547     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5548     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5549     vkStream->putBe32(pNext_size);
5550     if (pNext_size)
5551     {
5552         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5553         marshal_extension_struct(vkStream, forMarshaling->pNext);
5554     }
5555     vkStream->write((VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior, sizeof(VkPointClippingBehavior));
5556 }
5557 
unmarshal_VkPhysicalDevicePointClippingProperties(VulkanStreamGuest * vkStream,VkPhysicalDevicePointClippingProperties * forUnmarshaling)5558 void unmarshal_VkPhysicalDevicePointClippingProperties(
5559     VulkanStreamGuest* vkStream,
5560     VkPhysicalDevicePointClippingProperties* forUnmarshaling)
5561 {
5562     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5563     size_t pNext_size;
5564     pNext_size = vkStream->getBe32();
5565     if (pNext_size)
5566     {
5567         uint64_t pNext_placeholder;
5568         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5569         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5570     }
5571     vkStream->read((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior, sizeof(VkPointClippingBehavior));
5572 }
5573 
marshal_VkInputAttachmentAspectReference(VulkanStreamGuest * vkStream,const VkInputAttachmentAspectReference * forMarshaling)5574 void marshal_VkInputAttachmentAspectReference(
5575     VulkanStreamGuest* vkStream,
5576     const VkInputAttachmentAspectReference* forMarshaling)
5577 {
5578     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
5579     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentIndex, sizeof(uint32_t));
5580     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
5581 }
5582 
unmarshal_VkInputAttachmentAspectReference(VulkanStreamGuest * vkStream,VkInputAttachmentAspectReference * forUnmarshaling)5583 void unmarshal_VkInputAttachmentAspectReference(
5584     VulkanStreamGuest* vkStream,
5585     VkInputAttachmentAspectReference* forUnmarshaling)
5586 {
5587     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
5588     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentIndex, sizeof(uint32_t));
5589     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
5590 }
5591 
marshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStreamGuest * vkStream,const VkRenderPassInputAttachmentAspectCreateInfo * forMarshaling)5592 void marshal_VkRenderPassInputAttachmentAspectCreateInfo(
5593     VulkanStreamGuest* vkStream,
5594     const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling)
5595 {
5596     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5597     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5598     vkStream->putBe32(pNext_size);
5599     if (pNext_size)
5600     {
5601         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5602         marshal_extension_struct(vkStream, forMarshaling->pNext);
5603     }
5604     vkStream->write((uint32_t*)&forMarshaling->aspectReferenceCount, sizeof(uint32_t));
5605     for (uint32_t i = 0; i < (uint32_t)forMarshaling->aspectReferenceCount; ++i)
5606     {
5607         marshal_VkInputAttachmentAspectReference(vkStream, (const VkInputAttachmentAspectReference*)(forMarshaling->pAspectReferences + i));
5608     }
5609 }
5610 
unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStreamGuest * vkStream,VkRenderPassInputAttachmentAspectCreateInfo * forUnmarshaling)5611 void unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
5612     VulkanStreamGuest* vkStream,
5613     VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling)
5614 {
5615     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5616     size_t pNext_size;
5617     pNext_size = vkStream->getBe32();
5618     if (pNext_size)
5619     {
5620         uint64_t pNext_placeholder;
5621         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5622         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5623     }
5624     vkStream->read((uint32_t*)&forUnmarshaling->aspectReferenceCount, sizeof(uint32_t));
5625     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->aspectReferenceCount; ++i)
5626     {
5627         unmarshal_VkInputAttachmentAspectReference(vkStream, (VkInputAttachmentAspectReference*)(forUnmarshaling->pAspectReferences + i));
5628     }
5629 }
5630 
marshal_VkImageViewUsageCreateInfo(VulkanStreamGuest * vkStream,const VkImageViewUsageCreateInfo * forMarshaling)5631 void marshal_VkImageViewUsageCreateInfo(
5632     VulkanStreamGuest* vkStream,
5633     const VkImageViewUsageCreateInfo* forMarshaling)
5634 {
5635     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5636     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5637     vkStream->putBe32(pNext_size);
5638     if (pNext_size)
5639     {
5640         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5641         marshal_extension_struct(vkStream, forMarshaling->pNext);
5642     }
5643     vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5644 }
5645 
unmarshal_VkImageViewUsageCreateInfo(VulkanStreamGuest * vkStream,VkImageViewUsageCreateInfo * forUnmarshaling)5646 void unmarshal_VkImageViewUsageCreateInfo(
5647     VulkanStreamGuest* vkStream,
5648     VkImageViewUsageCreateInfo* forUnmarshaling)
5649 {
5650     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5651     size_t pNext_size;
5652     pNext_size = vkStream->getBe32();
5653     if (pNext_size)
5654     {
5655         uint64_t pNext_placeholder;
5656         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5657         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5658     }
5659     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5660 }
5661 
marshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineTessellationDomainOriginStateCreateInfo * forMarshaling)5662 void marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
5663     VulkanStreamGuest* vkStream,
5664     const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling)
5665 {
5666     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5667     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5668     vkStream->putBe32(pNext_size);
5669     if (pNext_size)
5670     {
5671         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5672         marshal_extension_struct(vkStream, forMarshaling->pNext);
5673     }
5674     vkStream->write((VkTessellationDomainOrigin*)&forMarshaling->domainOrigin, sizeof(VkTessellationDomainOrigin));
5675 }
5676 
unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineTessellationDomainOriginStateCreateInfo * forUnmarshaling)5677 void unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
5678     VulkanStreamGuest* vkStream,
5679     VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling)
5680 {
5681     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5682     size_t pNext_size;
5683     pNext_size = vkStream->getBe32();
5684     if (pNext_size)
5685     {
5686         uint64_t pNext_placeholder;
5687         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5688         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5689     }
5690     vkStream->read((VkTessellationDomainOrigin*)&forUnmarshaling->domainOrigin, sizeof(VkTessellationDomainOrigin));
5691 }
5692 
marshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest * vkStream,const VkRenderPassMultiviewCreateInfo * forMarshaling)5693 void marshal_VkRenderPassMultiviewCreateInfo(
5694     VulkanStreamGuest* vkStream,
5695     const VkRenderPassMultiviewCreateInfo* forMarshaling)
5696 {
5697     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5698     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5699     vkStream->putBe32(pNext_size);
5700     if (pNext_size)
5701     {
5702         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5703         marshal_extension_struct(vkStream, forMarshaling->pNext);
5704     }
5705     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
5706     vkStream->write((const uint32_t*)forMarshaling->pViewMasks, forMarshaling->subpassCount * sizeof(const uint32_t));
5707     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
5708     vkStream->write((const int32_t*)forMarshaling->pViewOffsets, forMarshaling->dependencyCount * sizeof(const int32_t));
5709     vkStream->write((uint32_t*)&forMarshaling->correlationMaskCount, sizeof(uint32_t));
5710     vkStream->write((const uint32_t*)forMarshaling->pCorrelationMasks, forMarshaling->correlationMaskCount * sizeof(const uint32_t));
5711 }
5712 
unmarshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest * vkStream,VkRenderPassMultiviewCreateInfo * forUnmarshaling)5713 void unmarshal_VkRenderPassMultiviewCreateInfo(
5714     VulkanStreamGuest* vkStream,
5715     VkRenderPassMultiviewCreateInfo* forUnmarshaling)
5716 {
5717     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5718     size_t pNext_size;
5719     pNext_size = vkStream->getBe32();
5720     if (pNext_size)
5721     {
5722         uint64_t pNext_placeholder;
5723         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5724         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5725     }
5726     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
5727     vkStream->read((uint32_t*)forUnmarshaling->pViewMasks, forUnmarshaling->subpassCount * sizeof(const uint32_t));
5728     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
5729     vkStream->read((int32_t*)forUnmarshaling->pViewOffsets, forUnmarshaling->dependencyCount * sizeof(const int32_t));
5730     vkStream->read((uint32_t*)&forUnmarshaling->correlationMaskCount, sizeof(uint32_t));
5731     vkStream->read((uint32_t*)forUnmarshaling->pCorrelationMasks, forUnmarshaling->correlationMaskCount * sizeof(const uint32_t));
5732 }
5733 
marshal_VkPhysicalDeviceMultiviewFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMultiviewFeatures * forMarshaling)5734 void marshal_VkPhysicalDeviceMultiviewFeatures(
5735     VulkanStreamGuest* vkStream,
5736     const VkPhysicalDeviceMultiviewFeatures* forMarshaling)
5737 {
5738     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5739     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5740     vkStream->putBe32(pNext_size);
5741     if (pNext_size)
5742     {
5743         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5744         marshal_extension_struct(vkStream, forMarshaling->pNext);
5745     }
5746     vkStream->write((VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
5747     vkStream->write((VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
5748     vkStream->write((VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
5749 }
5750 
unmarshal_VkPhysicalDeviceMultiviewFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceMultiviewFeatures * forUnmarshaling)5751 void unmarshal_VkPhysicalDeviceMultiviewFeatures(
5752     VulkanStreamGuest* vkStream,
5753     VkPhysicalDeviceMultiviewFeatures* forUnmarshaling)
5754 {
5755     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5756     size_t pNext_size;
5757     pNext_size = vkStream->getBe32();
5758     if (pNext_size)
5759     {
5760         uint64_t pNext_placeholder;
5761         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5762         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5763     }
5764     vkStream->read((VkBool32*)&forUnmarshaling->multiview, sizeof(VkBool32));
5765     vkStream->read((VkBool32*)&forUnmarshaling->multiviewGeometryShader, sizeof(VkBool32));
5766     vkStream->read((VkBool32*)&forUnmarshaling->multiviewTessellationShader, sizeof(VkBool32));
5767 }
5768 
marshal_VkPhysicalDeviceMultiviewProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMultiviewProperties * forMarshaling)5769 void marshal_VkPhysicalDeviceMultiviewProperties(
5770     VulkanStreamGuest* vkStream,
5771     const VkPhysicalDeviceMultiviewProperties* forMarshaling)
5772 {
5773     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5774     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5775     vkStream->putBe32(pNext_size);
5776     if (pNext_size)
5777     {
5778         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5779         marshal_extension_struct(vkStream, forMarshaling->pNext);
5780     }
5781     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
5782     vkStream->write((uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
5783 }
5784 
unmarshal_VkPhysicalDeviceMultiviewProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceMultiviewProperties * forUnmarshaling)5785 void unmarshal_VkPhysicalDeviceMultiviewProperties(
5786     VulkanStreamGuest* vkStream,
5787     VkPhysicalDeviceMultiviewProperties* forUnmarshaling)
5788 {
5789     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5790     size_t pNext_size;
5791     pNext_size = vkStream->getBe32();
5792     if (pNext_size)
5793     {
5794         uint64_t pNext_placeholder;
5795         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5796         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5797     }
5798     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, sizeof(uint32_t));
5799     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
5800 }
5801 
marshal_VkPhysicalDeviceVariablePointerFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceVariablePointerFeatures * forMarshaling)5802 void marshal_VkPhysicalDeviceVariablePointerFeatures(
5803     VulkanStreamGuest* vkStream,
5804     const VkPhysicalDeviceVariablePointerFeatures* forMarshaling)
5805 {
5806     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5807     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5808     vkStream->putBe32(pNext_size);
5809     if (pNext_size)
5810     {
5811         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5812         marshal_extension_struct(vkStream, forMarshaling->pNext);
5813     }
5814     vkStream->write((VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
5815     vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
5816 }
5817 
unmarshal_VkPhysicalDeviceVariablePointerFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceVariablePointerFeatures * forUnmarshaling)5818 void unmarshal_VkPhysicalDeviceVariablePointerFeatures(
5819     VulkanStreamGuest* vkStream,
5820     VkPhysicalDeviceVariablePointerFeatures* forUnmarshaling)
5821 {
5822     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5823     size_t pNext_size;
5824     pNext_size = vkStream->getBe32();
5825     if (pNext_size)
5826     {
5827         uint64_t pNext_placeholder;
5828         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5829         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5830     }
5831     vkStream->read((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
5832     vkStream->read((VkBool32*)&forUnmarshaling->variablePointers, sizeof(VkBool32));
5833 }
5834 
marshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProtectedMemoryFeatures * forMarshaling)5835 void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
5836     VulkanStreamGuest* vkStream,
5837     const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling)
5838 {
5839     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5840     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5841     vkStream->putBe32(pNext_size);
5842     if (pNext_size)
5843     {
5844         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5845         marshal_extension_struct(vkStream, forMarshaling->pNext);
5846     }
5847     vkStream->write((VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
5848 }
5849 
unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceProtectedMemoryFeatures * forUnmarshaling)5850 void unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
5851     VulkanStreamGuest* vkStream,
5852     VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling)
5853 {
5854     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5855     size_t pNext_size;
5856     pNext_size = vkStream->getBe32();
5857     if (pNext_size)
5858     {
5859         uint64_t pNext_placeholder;
5860         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5861         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5862     }
5863     vkStream->read((VkBool32*)&forUnmarshaling->protectedMemory, sizeof(VkBool32));
5864 }
5865 
marshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProtectedMemoryProperties * forMarshaling)5866 void marshal_VkPhysicalDeviceProtectedMemoryProperties(
5867     VulkanStreamGuest* vkStream,
5868     const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling)
5869 {
5870     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5871     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5872     vkStream->putBe32(pNext_size);
5873     if (pNext_size)
5874     {
5875         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5876         marshal_extension_struct(vkStream, forMarshaling->pNext);
5877     }
5878     vkStream->write((VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
5879 }
5880 
unmarshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceProtectedMemoryProperties * forUnmarshaling)5881 void unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
5882     VulkanStreamGuest* vkStream,
5883     VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling)
5884 {
5885     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5886     size_t pNext_size;
5887     pNext_size = vkStream->getBe32();
5888     if (pNext_size)
5889     {
5890         uint64_t pNext_placeholder;
5891         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5892         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5893     }
5894     vkStream->read((VkBool32*)&forUnmarshaling->protectedNoFault, sizeof(VkBool32));
5895 }
5896 
marshal_VkDeviceQueueInfo2(VulkanStreamGuest * vkStream,const VkDeviceQueueInfo2 * forMarshaling)5897 void marshal_VkDeviceQueueInfo2(
5898     VulkanStreamGuest* vkStream,
5899     const VkDeviceQueueInfo2* forMarshaling)
5900 {
5901     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5902     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5903     vkStream->putBe32(pNext_size);
5904     if (pNext_size)
5905     {
5906         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5907         marshal_extension_struct(vkStream, forMarshaling->pNext);
5908     }
5909     vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
5910     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
5911     vkStream->write((uint32_t*)&forMarshaling->queueIndex, sizeof(uint32_t));
5912 }
5913 
unmarshal_VkDeviceQueueInfo2(VulkanStreamGuest * vkStream,VkDeviceQueueInfo2 * forUnmarshaling)5914 void unmarshal_VkDeviceQueueInfo2(
5915     VulkanStreamGuest* vkStream,
5916     VkDeviceQueueInfo2* forUnmarshaling)
5917 {
5918     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5919     size_t pNext_size;
5920     pNext_size = vkStream->getBe32();
5921     if (pNext_size)
5922     {
5923         uint64_t pNext_placeholder;
5924         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5925         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5926     }
5927     vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
5928     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
5929     vkStream->read((uint32_t*)&forUnmarshaling->queueIndex, sizeof(uint32_t));
5930 }
5931 
marshal_VkProtectedSubmitInfo(VulkanStreamGuest * vkStream,const VkProtectedSubmitInfo * forMarshaling)5932 void marshal_VkProtectedSubmitInfo(
5933     VulkanStreamGuest* vkStream,
5934     const VkProtectedSubmitInfo* forMarshaling)
5935 {
5936     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5937     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5938     vkStream->putBe32(pNext_size);
5939     if (pNext_size)
5940     {
5941         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5942         marshal_extension_struct(vkStream, forMarshaling->pNext);
5943     }
5944     vkStream->write((VkBool32*)&forMarshaling->protectedSubmit, sizeof(VkBool32));
5945 }
5946 
unmarshal_VkProtectedSubmitInfo(VulkanStreamGuest * vkStream,VkProtectedSubmitInfo * forUnmarshaling)5947 void unmarshal_VkProtectedSubmitInfo(
5948     VulkanStreamGuest* vkStream,
5949     VkProtectedSubmitInfo* forUnmarshaling)
5950 {
5951     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5952     size_t pNext_size;
5953     pNext_size = vkStream->getBe32();
5954     if (pNext_size)
5955     {
5956         uint64_t pNext_placeholder;
5957         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5958         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5959     }
5960     vkStream->read((VkBool32*)&forUnmarshaling->protectedSubmit, sizeof(VkBool32));
5961 }
5962 
marshal_VkSamplerYcbcrConversionCreateInfo(VulkanStreamGuest * vkStream,const VkSamplerYcbcrConversionCreateInfo * forMarshaling)5963 void marshal_VkSamplerYcbcrConversionCreateInfo(
5964     VulkanStreamGuest* vkStream,
5965     const VkSamplerYcbcrConversionCreateInfo* forMarshaling)
5966 {
5967     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5968     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5969     vkStream->putBe32(pNext_size);
5970     if (pNext_size)
5971     {
5972         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5973         marshal_extension_struct(vkStream, forMarshaling->pNext);
5974     }
5975     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5976     vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->ycbcrModel, sizeof(VkSamplerYcbcrModelConversion));
5977     vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
5978     marshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forMarshaling->components));
5979     vkStream->write((VkChromaLocation*)&forMarshaling->xChromaOffset, sizeof(VkChromaLocation));
5980     vkStream->write((VkChromaLocation*)&forMarshaling->yChromaOffset, sizeof(VkChromaLocation));
5981     vkStream->write((VkFilter*)&forMarshaling->chromaFilter, sizeof(VkFilter));
5982     vkStream->write((VkBool32*)&forMarshaling->forceExplicitReconstruction, sizeof(VkBool32));
5983 }
5984 
unmarshal_VkSamplerYcbcrConversionCreateInfo(VulkanStreamGuest * vkStream,VkSamplerYcbcrConversionCreateInfo * forUnmarshaling)5985 void unmarshal_VkSamplerYcbcrConversionCreateInfo(
5986     VulkanStreamGuest* vkStream,
5987     VkSamplerYcbcrConversionCreateInfo* forUnmarshaling)
5988 {
5989     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5990     size_t pNext_size;
5991     pNext_size = vkStream->getBe32();
5992     if (pNext_size)
5993     {
5994         uint64_t pNext_placeholder;
5995         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5996         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5997     }
5998     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5999     vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->ycbcrModel, sizeof(VkSamplerYcbcrModelConversion));
6000     vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
6001     unmarshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forUnmarshaling->components));
6002     vkStream->read((VkChromaLocation*)&forUnmarshaling->xChromaOffset, sizeof(VkChromaLocation));
6003     vkStream->read((VkChromaLocation*)&forUnmarshaling->yChromaOffset, sizeof(VkChromaLocation));
6004     vkStream->read((VkFilter*)&forUnmarshaling->chromaFilter, sizeof(VkFilter));
6005     vkStream->read((VkBool32*)&forUnmarshaling->forceExplicitReconstruction, sizeof(VkBool32));
6006 }
6007 
marshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest * vkStream,const VkSamplerYcbcrConversionInfo * forMarshaling)6008 void marshal_VkSamplerYcbcrConversionInfo(
6009     VulkanStreamGuest* vkStream,
6010     const VkSamplerYcbcrConversionInfo* forMarshaling)
6011 {
6012     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6013     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6014     vkStream->putBe32(pNext_size);
6015     if (pNext_size)
6016     {
6017         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6018         marshal_extension_struct(vkStream, forMarshaling->pNext);
6019     }
6020     uint64_t cgen_var_178;
6021     vkStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&forMarshaling->conversion, &cgen_var_178, 1);
6022     vkStream->write((uint64_t*)&cgen_var_178, 1 * 8);
6023 }
6024 
unmarshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest * vkStream,VkSamplerYcbcrConversionInfo * forUnmarshaling)6025 void unmarshal_VkSamplerYcbcrConversionInfo(
6026     VulkanStreamGuest* vkStream,
6027     VkSamplerYcbcrConversionInfo* forUnmarshaling)
6028 {
6029     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6030     size_t pNext_size;
6031     pNext_size = vkStream->getBe32();
6032     if (pNext_size)
6033     {
6034         uint64_t pNext_placeholder;
6035         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6036         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6037     }
6038     uint64_t cgen_var_179;
6039     vkStream->read((uint64_t*)&cgen_var_179, 1 * 8);
6040     vkStream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_179, (VkSamplerYcbcrConversion*)&forUnmarshaling->conversion, 1);
6041 }
6042 
marshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest * vkStream,const VkBindImagePlaneMemoryInfo * forMarshaling)6043 void marshal_VkBindImagePlaneMemoryInfo(
6044     VulkanStreamGuest* vkStream,
6045     const VkBindImagePlaneMemoryInfo* forMarshaling)
6046 {
6047     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6048     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6049     vkStream->putBe32(pNext_size);
6050     if (pNext_size)
6051     {
6052         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6053         marshal_extension_struct(vkStream, forMarshaling->pNext);
6054     }
6055     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
6056 }
6057 
unmarshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest * vkStream,VkBindImagePlaneMemoryInfo * forUnmarshaling)6058 void unmarshal_VkBindImagePlaneMemoryInfo(
6059     VulkanStreamGuest* vkStream,
6060     VkBindImagePlaneMemoryInfo* forUnmarshaling)
6061 {
6062     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6063     size_t pNext_size;
6064     pNext_size = vkStream->getBe32();
6065     if (pNext_size)
6066     {
6067         uint64_t pNext_placeholder;
6068         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6069         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6070     }
6071     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
6072 }
6073 
marshal_VkImagePlaneMemoryRequirementsInfo(VulkanStreamGuest * vkStream,const VkImagePlaneMemoryRequirementsInfo * forMarshaling)6074 void marshal_VkImagePlaneMemoryRequirementsInfo(
6075     VulkanStreamGuest* vkStream,
6076     const VkImagePlaneMemoryRequirementsInfo* forMarshaling)
6077 {
6078     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6079     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6080     vkStream->putBe32(pNext_size);
6081     if (pNext_size)
6082     {
6083         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6084         marshal_extension_struct(vkStream, forMarshaling->pNext);
6085     }
6086     vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
6087 }
6088 
unmarshal_VkImagePlaneMemoryRequirementsInfo(VulkanStreamGuest * vkStream,VkImagePlaneMemoryRequirementsInfo * forUnmarshaling)6089 void unmarshal_VkImagePlaneMemoryRequirementsInfo(
6090     VulkanStreamGuest* vkStream,
6091     VkImagePlaneMemoryRequirementsInfo* forUnmarshaling)
6092 {
6093     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6094     size_t pNext_size;
6095     pNext_size = vkStream->getBe32();
6096     if (pNext_size)
6097     {
6098         uint64_t pNext_placeholder;
6099         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6100         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6101     }
6102     vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
6103 }
6104 
marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * forMarshaling)6105 void marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
6106     VulkanStreamGuest* vkStream,
6107     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling)
6108 {
6109     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6110     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6111     vkStream->putBe32(pNext_size);
6112     if (pNext_size)
6113     {
6114         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6115         marshal_extension_struct(vkStream, forMarshaling->pNext);
6116     }
6117     vkStream->write((VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
6118 }
6119 
unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceSamplerYcbcrConversionFeatures * forUnmarshaling)6120 void unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
6121     VulkanStreamGuest* vkStream,
6122     VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling)
6123 {
6124     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6125     size_t pNext_size;
6126     pNext_size = vkStream->getBe32();
6127     if (pNext_size)
6128     {
6129         uint64_t pNext_placeholder;
6130         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6131         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6132     }
6133     vkStream->read((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, sizeof(VkBool32));
6134 }
6135 
marshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStreamGuest * vkStream,const VkSamplerYcbcrConversionImageFormatProperties * forMarshaling)6136 void marshal_VkSamplerYcbcrConversionImageFormatProperties(
6137     VulkanStreamGuest* vkStream,
6138     const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling)
6139 {
6140     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6141     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6142     vkStream->putBe32(pNext_size);
6143     if (pNext_size)
6144     {
6145         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6146         marshal_extension_struct(vkStream, forMarshaling->pNext);
6147     }
6148     vkStream->write((uint32_t*)&forMarshaling->combinedImageSamplerDescriptorCount, sizeof(uint32_t));
6149 }
6150 
unmarshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStreamGuest * vkStream,VkSamplerYcbcrConversionImageFormatProperties * forUnmarshaling)6151 void unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
6152     VulkanStreamGuest* vkStream,
6153     VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling)
6154 {
6155     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6156     size_t pNext_size;
6157     pNext_size = vkStream->getBe32();
6158     if (pNext_size)
6159     {
6160         uint64_t pNext_placeholder;
6161         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6162         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6163     }
6164     vkStream->read((uint32_t*)&forUnmarshaling->combinedImageSamplerDescriptorCount, sizeof(uint32_t));
6165 }
6166 
marshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest * vkStream,const VkDescriptorUpdateTemplateEntry * forMarshaling)6167 void marshal_VkDescriptorUpdateTemplateEntry(
6168     VulkanStreamGuest* vkStream,
6169     const VkDescriptorUpdateTemplateEntry* forMarshaling)
6170 {
6171     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
6172     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
6173     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
6174     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
6175     uint64_t cgen_var_180 = (uint64_t)forMarshaling->offset;
6176     vkStream->putBe64(cgen_var_180);
6177     uint64_t cgen_var_181 = (uint64_t)forMarshaling->stride;
6178     vkStream->putBe64(cgen_var_181);
6179 }
6180 
unmarshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest * vkStream,VkDescriptorUpdateTemplateEntry * forUnmarshaling)6181 void unmarshal_VkDescriptorUpdateTemplateEntry(
6182     VulkanStreamGuest* vkStream,
6183     VkDescriptorUpdateTemplateEntry* forUnmarshaling)
6184 {
6185     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
6186     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
6187     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
6188     vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
6189     forUnmarshaling->offset = (size_t)vkStream->getBe64();
6190     forUnmarshaling->stride = (size_t)vkStream->getBe64();
6191 }
6192 
marshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStreamGuest * vkStream,const VkDescriptorUpdateTemplateCreateInfo * forMarshaling)6193 void marshal_VkDescriptorUpdateTemplateCreateInfo(
6194     VulkanStreamGuest* vkStream,
6195     const VkDescriptorUpdateTemplateCreateInfo* forMarshaling)
6196 {
6197     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6198     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6199     vkStream->putBe32(pNext_size);
6200     if (pNext_size)
6201     {
6202         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6203         marshal_extension_struct(vkStream, forMarshaling->pNext);
6204     }
6205     vkStream->write((VkDescriptorUpdateTemplateCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorUpdateTemplateCreateFlags));
6206     vkStream->write((uint32_t*)&forMarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
6207     for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorUpdateEntryCount; ++i)
6208     {
6209         marshal_VkDescriptorUpdateTemplateEntry(vkStream, (const VkDescriptorUpdateTemplateEntry*)(forMarshaling->pDescriptorUpdateEntries + i));
6210     }
6211     vkStream->write((VkDescriptorUpdateTemplateType*)&forMarshaling->templateType, sizeof(VkDescriptorUpdateTemplateType));
6212     uint64_t cgen_var_184;
6213     vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&forMarshaling->descriptorSetLayout, &cgen_var_184, 1);
6214     vkStream->write((uint64_t*)&cgen_var_184, 1 * 8);
6215     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
6216     uint64_t cgen_var_185;
6217     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_185, 1);
6218     vkStream->write((uint64_t*)&cgen_var_185, 1 * 8);
6219     vkStream->write((uint32_t*)&forMarshaling->set, sizeof(uint32_t));
6220 }
6221 
unmarshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStreamGuest * vkStream,VkDescriptorUpdateTemplateCreateInfo * forUnmarshaling)6222 void unmarshal_VkDescriptorUpdateTemplateCreateInfo(
6223     VulkanStreamGuest* vkStream,
6224     VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling)
6225 {
6226     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6227     size_t pNext_size;
6228     pNext_size = vkStream->getBe32();
6229     if (pNext_size)
6230     {
6231         uint64_t pNext_placeholder;
6232         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6233         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6234     }
6235     vkStream->read((VkDescriptorUpdateTemplateCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorUpdateTemplateCreateFlags));
6236     vkStream->read((uint32_t*)&forUnmarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
6237     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorUpdateEntryCount; ++i)
6238     {
6239         unmarshal_VkDescriptorUpdateTemplateEntry(vkStream, (VkDescriptorUpdateTemplateEntry*)(forUnmarshaling->pDescriptorUpdateEntries + i));
6240     }
6241     vkStream->read((VkDescriptorUpdateTemplateType*)&forUnmarshaling->templateType, sizeof(VkDescriptorUpdateTemplateType));
6242     uint64_t cgen_var_186;
6243     vkStream->read((uint64_t*)&cgen_var_186, 1 * 8);
6244     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_186, (VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout, 1);
6245     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
6246     uint64_t cgen_var_187;
6247     vkStream->read((uint64_t*)&cgen_var_187, 1 * 8);
6248     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_187, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
6249     vkStream->read((uint32_t*)&forUnmarshaling->set, sizeof(uint32_t));
6250 }
6251 
marshal_VkExternalMemoryProperties(VulkanStreamGuest * vkStream,const VkExternalMemoryProperties * forMarshaling)6252 void marshal_VkExternalMemoryProperties(
6253     VulkanStreamGuest* vkStream,
6254     const VkExternalMemoryProperties* forMarshaling)
6255 {
6256     vkStream->write((VkExternalMemoryFeatureFlags*)&forMarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlags));
6257     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6258     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6259 }
6260 
unmarshal_VkExternalMemoryProperties(VulkanStreamGuest * vkStream,VkExternalMemoryProperties * forUnmarshaling)6261 void unmarshal_VkExternalMemoryProperties(
6262     VulkanStreamGuest* vkStream,
6263     VkExternalMemoryProperties* forUnmarshaling)
6264 {
6265     vkStream->read((VkExternalMemoryFeatureFlags*)&forUnmarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlags));
6266     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6267     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6268 }
6269 
marshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalImageFormatInfo * forMarshaling)6270 void marshal_VkPhysicalDeviceExternalImageFormatInfo(
6271     VulkanStreamGuest* vkStream,
6272     const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling)
6273 {
6274     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6275     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6276     vkStream->putBe32(pNext_size);
6277     if (pNext_size)
6278     {
6279         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6280         marshal_extension_struct(vkStream, forMarshaling->pNext);
6281     }
6282     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6283 }
6284 
unmarshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalImageFormatInfo * forUnmarshaling)6285 void unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
6286     VulkanStreamGuest* vkStream,
6287     VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling)
6288 {
6289     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6290     size_t pNext_size;
6291     pNext_size = vkStream->getBe32();
6292     if (pNext_size)
6293     {
6294         uint64_t pNext_placeholder;
6295         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6296         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6297     }
6298     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6299 }
6300 
marshal_VkExternalImageFormatProperties(VulkanStreamGuest * vkStream,const VkExternalImageFormatProperties * forMarshaling)6301 void marshal_VkExternalImageFormatProperties(
6302     VulkanStreamGuest* vkStream,
6303     const VkExternalImageFormatProperties* forMarshaling)
6304 {
6305     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6306     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6307     vkStream->putBe32(pNext_size);
6308     if (pNext_size)
6309     {
6310         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6311         marshal_extension_struct(vkStream, forMarshaling->pNext);
6312     }
6313     marshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
6314 }
6315 
unmarshal_VkExternalImageFormatProperties(VulkanStreamGuest * vkStream,VkExternalImageFormatProperties * forUnmarshaling)6316 void unmarshal_VkExternalImageFormatProperties(
6317     VulkanStreamGuest* vkStream,
6318     VkExternalImageFormatProperties* forUnmarshaling)
6319 {
6320     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6321     size_t pNext_size;
6322     pNext_size = vkStream->getBe32();
6323     if (pNext_size)
6324     {
6325         uint64_t pNext_placeholder;
6326         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6327         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6328     }
6329     unmarshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
6330 }
6331 
marshal_VkPhysicalDeviceExternalBufferInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalBufferInfo * forMarshaling)6332 void marshal_VkPhysicalDeviceExternalBufferInfo(
6333     VulkanStreamGuest* vkStream,
6334     const VkPhysicalDeviceExternalBufferInfo* forMarshaling)
6335 {
6336     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6337     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6338     vkStream->putBe32(pNext_size);
6339     if (pNext_size)
6340     {
6341         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6342         marshal_extension_struct(vkStream, forMarshaling->pNext);
6343     }
6344     vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
6345     vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
6346     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6347 }
6348 
unmarshal_VkPhysicalDeviceExternalBufferInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalBufferInfo * forUnmarshaling)6349 void unmarshal_VkPhysicalDeviceExternalBufferInfo(
6350     VulkanStreamGuest* vkStream,
6351     VkPhysicalDeviceExternalBufferInfo* forUnmarshaling)
6352 {
6353     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6354     size_t pNext_size;
6355     pNext_size = vkStream->getBe32();
6356     if (pNext_size)
6357     {
6358         uint64_t pNext_placeholder;
6359         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6360         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6361     }
6362     vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
6363     vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
6364     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6365 }
6366 
marshal_VkExternalBufferProperties(VulkanStreamGuest * vkStream,const VkExternalBufferProperties * forMarshaling)6367 void marshal_VkExternalBufferProperties(
6368     VulkanStreamGuest* vkStream,
6369     const VkExternalBufferProperties* forMarshaling)
6370 {
6371     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6372     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6373     vkStream->putBe32(pNext_size);
6374     if (pNext_size)
6375     {
6376         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6377         marshal_extension_struct(vkStream, forMarshaling->pNext);
6378     }
6379     marshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
6380 }
6381 
unmarshal_VkExternalBufferProperties(VulkanStreamGuest * vkStream,VkExternalBufferProperties * forUnmarshaling)6382 void unmarshal_VkExternalBufferProperties(
6383     VulkanStreamGuest* vkStream,
6384     VkExternalBufferProperties* forUnmarshaling)
6385 {
6386     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6387     size_t pNext_size;
6388     pNext_size = vkStream->getBe32();
6389     if (pNext_size)
6390     {
6391         uint64_t pNext_placeholder;
6392         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6393         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6394     }
6395     unmarshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
6396 }
6397 
marshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceIDProperties * forMarshaling)6398 void marshal_VkPhysicalDeviceIDProperties(
6399     VulkanStreamGuest* vkStream,
6400     const VkPhysicalDeviceIDProperties* forMarshaling)
6401 {
6402     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6403     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6404     vkStream->putBe32(pNext_size);
6405     if (pNext_size)
6406     {
6407         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6408         marshal_extension_struct(vkStream, forMarshaling->pNext);
6409     }
6410     vkStream->write((uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6411     vkStream->write((uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6412     vkStream->write((uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6413     vkStream->write((uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
6414     vkStream->write((VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
6415 }
6416 
unmarshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceIDProperties * forUnmarshaling)6417 void unmarshal_VkPhysicalDeviceIDProperties(
6418     VulkanStreamGuest* vkStream,
6419     VkPhysicalDeviceIDProperties* forUnmarshaling)
6420 {
6421     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6422     size_t pNext_size;
6423     pNext_size = vkStream->getBe32();
6424     if (pNext_size)
6425     {
6426         uint64_t pNext_placeholder;
6427         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6428         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6429     }
6430     vkStream->read((uint8_t*)forUnmarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6431     vkStream->read((uint8_t*)forUnmarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6432     vkStream->read((uint8_t*)forUnmarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6433     vkStream->read((uint32_t*)&forUnmarshaling->deviceNodeMask, sizeof(uint32_t));
6434     vkStream->read((VkBool32*)&forUnmarshaling->deviceLUIDValid, sizeof(VkBool32));
6435 }
6436 
marshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest * vkStream,const VkExternalMemoryImageCreateInfo * forMarshaling)6437 void marshal_VkExternalMemoryImageCreateInfo(
6438     VulkanStreamGuest* vkStream,
6439     const VkExternalMemoryImageCreateInfo* forMarshaling)
6440 {
6441     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6442     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6443     vkStream->putBe32(pNext_size);
6444     if (pNext_size)
6445     {
6446         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6447         marshal_extension_struct(vkStream, forMarshaling->pNext);
6448     }
6449     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6450 }
6451 
unmarshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest * vkStream,VkExternalMemoryImageCreateInfo * forUnmarshaling)6452 void unmarshal_VkExternalMemoryImageCreateInfo(
6453     VulkanStreamGuest* vkStream,
6454     VkExternalMemoryImageCreateInfo* forUnmarshaling)
6455 {
6456     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6457     size_t pNext_size;
6458     pNext_size = vkStream->getBe32();
6459     if (pNext_size)
6460     {
6461         uint64_t pNext_placeholder;
6462         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6463         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6464     }
6465     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6466 }
6467 
marshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest * vkStream,const VkExternalMemoryBufferCreateInfo * forMarshaling)6468 void marshal_VkExternalMemoryBufferCreateInfo(
6469     VulkanStreamGuest* vkStream,
6470     const VkExternalMemoryBufferCreateInfo* forMarshaling)
6471 {
6472     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6473     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6474     vkStream->putBe32(pNext_size);
6475     if (pNext_size)
6476     {
6477         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6478         marshal_extension_struct(vkStream, forMarshaling->pNext);
6479     }
6480     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6481 }
6482 
unmarshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest * vkStream,VkExternalMemoryBufferCreateInfo * forUnmarshaling)6483 void unmarshal_VkExternalMemoryBufferCreateInfo(
6484     VulkanStreamGuest* vkStream,
6485     VkExternalMemoryBufferCreateInfo* forUnmarshaling)
6486 {
6487     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6488     size_t pNext_size;
6489     pNext_size = vkStream->getBe32();
6490     if (pNext_size)
6491     {
6492         uint64_t pNext_placeholder;
6493         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6494         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6495     }
6496     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6497 }
6498 
marshal_VkExportMemoryAllocateInfo(VulkanStreamGuest * vkStream,const VkExportMemoryAllocateInfo * forMarshaling)6499 void marshal_VkExportMemoryAllocateInfo(
6500     VulkanStreamGuest* vkStream,
6501     const VkExportMemoryAllocateInfo* forMarshaling)
6502 {
6503     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6504     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6505     vkStream->putBe32(pNext_size);
6506     if (pNext_size)
6507     {
6508         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6509         marshal_extension_struct(vkStream, forMarshaling->pNext);
6510     }
6511     vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6512 }
6513 
unmarshal_VkExportMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkExportMemoryAllocateInfo * forUnmarshaling)6514 void unmarshal_VkExportMemoryAllocateInfo(
6515     VulkanStreamGuest* vkStream,
6516     VkExportMemoryAllocateInfo* forUnmarshaling)
6517 {
6518     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6519     size_t pNext_size;
6520     pNext_size = vkStream->getBe32();
6521     if (pNext_size)
6522     {
6523         uint64_t pNext_placeholder;
6524         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6525         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6526     }
6527     vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6528 }
6529 
marshal_VkPhysicalDeviceExternalFenceInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalFenceInfo * forMarshaling)6530 void marshal_VkPhysicalDeviceExternalFenceInfo(
6531     VulkanStreamGuest* vkStream,
6532     const VkPhysicalDeviceExternalFenceInfo* forMarshaling)
6533 {
6534     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6535     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6536     vkStream->putBe32(pNext_size);
6537     if (pNext_size)
6538     {
6539         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6540         marshal_extension_struct(vkStream, forMarshaling->pNext);
6541     }
6542     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
6543 }
6544 
unmarshal_VkPhysicalDeviceExternalFenceInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalFenceInfo * forUnmarshaling)6545 void unmarshal_VkPhysicalDeviceExternalFenceInfo(
6546     VulkanStreamGuest* vkStream,
6547     VkPhysicalDeviceExternalFenceInfo* forUnmarshaling)
6548 {
6549     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6550     size_t pNext_size;
6551     pNext_size = vkStream->getBe32();
6552     if (pNext_size)
6553     {
6554         uint64_t pNext_placeholder;
6555         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6556         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6557     }
6558     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
6559 }
6560 
marshal_VkExternalFenceProperties(VulkanStreamGuest * vkStream,const VkExternalFenceProperties * forMarshaling)6561 void marshal_VkExternalFenceProperties(
6562     VulkanStreamGuest* vkStream,
6563     const VkExternalFenceProperties* forMarshaling)
6564 {
6565     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6566     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6567     vkStream->putBe32(pNext_size);
6568     if (pNext_size)
6569     {
6570         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6571         marshal_extension_struct(vkStream, forMarshaling->pNext);
6572     }
6573     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6574     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6575     vkStream->write((VkExternalFenceFeatureFlags*)&forMarshaling->externalFenceFeatures, sizeof(VkExternalFenceFeatureFlags));
6576 }
6577 
unmarshal_VkExternalFenceProperties(VulkanStreamGuest * vkStream,VkExternalFenceProperties * forUnmarshaling)6578 void unmarshal_VkExternalFenceProperties(
6579     VulkanStreamGuest* vkStream,
6580     VkExternalFenceProperties* forUnmarshaling)
6581 {
6582     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6583     size_t pNext_size;
6584     pNext_size = vkStream->getBe32();
6585     if (pNext_size)
6586     {
6587         uint64_t pNext_placeholder;
6588         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6589         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6590     }
6591     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6592     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6593     vkStream->read((VkExternalFenceFeatureFlags*)&forUnmarshaling->externalFenceFeatures, sizeof(VkExternalFenceFeatureFlags));
6594 }
6595 
marshal_VkExportFenceCreateInfo(VulkanStreamGuest * vkStream,const VkExportFenceCreateInfo * forMarshaling)6596 void marshal_VkExportFenceCreateInfo(
6597     VulkanStreamGuest* vkStream,
6598     const VkExportFenceCreateInfo* forMarshaling)
6599 {
6600     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6601     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6602     vkStream->putBe32(pNext_size);
6603     if (pNext_size)
6604     {
6605         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6606         marshal_extension_struct(vkStream, forMarshaling->pNext);
6607     }
6608     vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6609 }
6610 
unmarshal_VkExportFenceCreateInfo(VulkanStreamGuest * vkStream,VkExportFenceCreateInfo * forUnmarshaling)6611 void unmarshal_VkExportFenceCreateInfo(
6612     VulkanStreamGuest* vkStream,
6613     VkExportFenceCreateInfo* forUnmarshaling)
6614 {
6615     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6616     size_t pNext_size;
6617     pNext_size = vkStream->getBe32();
6618     if (pNext_size)
6619     {
6620         uint64_t pNext_placeholder;
6621         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6622         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6623     }
6624     vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6625 }
6626 
marshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest * vkStream,const VkExportSemaphoreCreateInfo * forMarshaling)6627 void marshal_VkExportSemaphoreCreateInfo(
6628     VulkanStreamGuest* vkStream,
6629     const VkExportSemaphoreCreateInfo* forMarshaling)
6630 {
6631     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6632     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6633     vkStream->putBe32(pNext_size);
6634     if (pNext_size)
6635     {
6636         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6637         marshal_extension_struct(vkStream, forMarshaling->pNext);
6638     }
6639     vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6640 }
6641 
unmarshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkExportSemaphoreCreateInfo * forUnmarshaling)6642 void unmarshal_VkExportSemaphoreCreateInfo(
6643     VulkanStreamGuest* vkStream,
6644     VkExportSemaphoreCreateInfo* forUnmarshaling)
6645 {
6646     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6647     size_t pNext_size;
6648     pNext_size = vkStream->getBe32();
6649     if (pNext_size)
6650     {
6651         uint64_t pNext_placeholder;
6652         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6653         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6654     }
6655     vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6656 }
6657 
marshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalSemaphoreInfo * forMarshaling)6658 void marshal_VkPhysicalDeviceExternalSemaphoreInfo(
6659     VulkanStreamGuest* vkStream,
6660     const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling)
6661 {
6662     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6663     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6664     vkStream->putBe32(pNext_size);
6665     if (pNext_size)
6666     {
6667         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6668         marshal_extension_struct(vkStream, forMarshaling->pNext);
6669     }
6670     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
6671 }
6672 
unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalSemaphoreInfo * forUnmarshaling)6673 void unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
6674     VulkanStreamGuest* vkStream,
6675     VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling)
6676 {
6677     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6678     size_t pNext_size;
6679     pNext_size = vkStream->getBe32();
6680     if (pNext_size)
6681     {
6682         uint64_t pNext_placeholder;
6683         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6684         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6685     }
6686     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
6687 }
6688 
marshal_VkExternalSemaphoreProperties(VulkanStreamGuest * vkStream,const VkExternalSemaphoreProperties * forMarshaling)6689 void marshal_VkExternalSemaphoreProperties(
6690     VulkanStreamGuest* vkStream,
6691     const VkExternalSemaphoreProperties* forMarshaling)
6692 {
6693     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6694     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6695     vkStream->putBe32(pNext_size);
6696     if (pNext_size)
6697     {
6698         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6699         marshal_extension_struct(vkStream, forMarshaling->pNext);
6700     }
6701     vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6702     vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6703     vkStream->write((VkExternalSemaphoreFeatureFlags*)&forMarshaling->externalSemaphoreFeatures, sizeof(VkExternalSemaphoreFeatureFlags));
6704 }
6705 
unmarshal_VkExternalSemaphoreProperties(VulkanStreamGuest * vkStream,VkExternalSemaphoreProperties * forUnmarshaling)6706 void unmarshal_VkExternalSemaphoreProperties(
6707     VulkanStreamGuest* vkStream,
6708     VkExternalSemaphoreProperties* forUnmarshaling)
6709 {
6710     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6711     size_t pNext_size;
6712     pNext_size = vkStream->getBe32();
6713     if (pNext_size)
6714     {
6715         uint64_t pNext_placeholder;
6716         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6717         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6718     }
6719     vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6720     vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6721     vkStream->read((VkExternalSemaphoreFeatureFlags*)&forUnmarshaling->externalSemaphoreFeatures, sizeof(VkExternalSemaphoreFeatureFlags));
6722 }
6723 
marshal_VkPhysicalDeviceMaintenance3Properties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMaintenance3Properties * forMarshaling)6724 void marshal_VkPhysicalDeviceMaintenance3Properties(
6725     VulkanStreamGuest* vkStream,
6726     const VkPhysicalDeviceMaintenance3Properties* forMarshaling)
6727 {
6728     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6729     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6730     vkStream->putBe32(pNext_size);
6731     if (pNext_size)
6732     {
6733         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6734         marshal_extension_struct(vkStream, forMarshaling->pNext);
6735     }
6736     vkStream->write((uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6737     vkStream->write((VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6738 }
6739 
unmarshal_VkPhysicalDeviceMaintenance3Properties(VulkanStreamGuest * vkStream,VkPhysicalDeviceMaintenance3Properties * forUnmarshaling)6740 void unmarshal_VkPhysicalDeviceMaintenance3Properties(
6741     VulkanStreamGuest* vkStream,
6742     VkPhysicalDeviceMaintenance3Properties* forUnmarshaling)
6743 {
6744     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6745     size_t pNext_size;
6746     pNext_size = vkStream->getBe32();
6747     if (pNext_size)
6748     {
6749         uint64_t pNext_placeholder;
6750         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6751         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6752     }
6753     vkStream->read((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6754     vkStream->read((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6755 }
6756 
marshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutSupport * forMarshaling)6757 void marshal_VkDescriptorSetLayoutSupport(
6758     VulkanStreamGuest* vkStream,
6759     const VkDescriptorSetLayoutSupport* forMarshaling)
6760 {
6761     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6762     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6763     vkStream->putBe32(pNext_size);
6764     if (pNext_size)
6765     {
6766         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6767         marshal_extension_struct(vkStream, forMarshaling->pNext);
6768     }
6769     vkStream->write((VkBool32*)&forMarshaling->supported, sizeof(VkBool32));
6770 }
6771 
unmarshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutSupport * forUnmarshaling)6772 void unmarshal_VkDescriptorSetLayoutSupport(
6773     VulkanStreamGuest* vkStream,
6774     VkDescriptorSetLayoutSupport* forUnmarshaling)
6775 {
6776     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6777     size_t pNext_size;
6778     pNext_size = vkStream->getBe32();
6779     if (pNext_size)
6780     {
6781         uint64_t pNext_placeholder;
6782         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6783         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6784     }
6785     vkStream->read((VkBool32*)&forUnmarshaling->supported, sizeof(VkBool32));
6786 }
6787 
marshal_VkPhysicalDeviceShaderDrawParameterFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceShaderDrawParameterFeatures * forMarshaling)6788 void marshal_VkPhysicalDeviceShaderDrawParameterFeatures(
6789     VulkanStreamGuest* vkStream,
6790     const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling)
6791 {
6792     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6793     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6794     vkStream->putBe32(pNext_size);
6795     if (pNext_size)
6796     {
6797         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6798         marshal_extension_struct(vkStream, forMarshaling->pNext);
6799     }
6800     vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
6801 }
6802 
unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceShaderDrawParameterFeatures * forUnmarshaling)6803 void unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
6804     VulkanStreamGuest* vkStream,
6805     VkPhysicalDeviceShaderDrawParameterFeatures* forUnmarshaling)
6806 {
6807     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6808     size_t pNext_size;
6809     pNext_size = vkStream->getBe32();
6810     if (pNext_size)
6811     {
6812         uint64_t pNext_placeholder;
6813         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6814         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6815     }
6816     vkStream->read((VkBool32*)&forUnmarshaling->shaderDrawParameters, sizeof(VkBool32));
6817 }
6818 
6819 #endif
6820 #ifdef VK_KHR_surface
marshal_VkSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkSurfaceCapabilitiesKHR * forMarshaling)6821 void marshal_VkSurfaceCapabilitiesKHR(
6822     VulkanStreamGuest* vkStream,
6823     const VkSurfaceCapabilitiesKHR* forMarshaling)
6824 {
6825     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
6826     vkStream->write((uint32_t*)&forMarshaling->maxImageCount, sizeof(uint32_t));
6827     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->currentExtent));
6828     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minImageExtent));
6829     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxImageExtent));
6830     vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
6831     vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
6832     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6833     vkStream->write((VkCompositeAlphaFlagsKHR*)&forMarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
6834     vkStream->write((VkImageUsageFlags*)&forMarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
6835 }
6836 
unmarshal_VkSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,VkSurfaceCapabilitiesKHR * forUnmarshaling)6837 void unmarshal_VkSurfaceCapabilitiesKHR(
6838     VulkanStreamGuest* vkStream,
6839     VkSurfaceCapabilitiesKHR* forUnmarshaling)
6840 {
6841     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
6842     vkStream->read((uint32_t*)&forUnmarshaling->maxImageCount, sizeof(uint32_t));
6843     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->currentExtent));
6844     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minImageExtent));
6845     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxImageExtent));
6846     vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
6847     vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
6848     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6849     vkStream->read((VkCompositeAlphaFlagsKHR*)&forUnmarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
6850     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
6851 }
6852 
marshal_VkSurfaceFormatKHR(VulkanStreamGuest * vkStream,const VkSurfaceFormatKHR * forMarshaling)6853 void marshal_VkSurfaceFormatKHR(
6854     VulkanStreamGuest* vkStream,
6855     const VkSurfaceFormatKHR* forMarshaling)
6856 {
6857     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
6858     vkStream->write((VkColorSpaceKHR*)&forMarshaling->colorSpace, sizeof(VkColorSpaceKHR));
6859 }
6860 
unmarshal_VkSurfaceFormatKHR(VulkanStreamGuest * vkStream,VkSurfaceFormatKHR * forUnmarshaling)6861 void unmarshal_VkSurfaceFormatKHR(
6862     VulkanStreamGuest* vkStream,
6863     VkSurfaceFormatKHR* forUnmarshaling)
6864 {
6865     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
6866     vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->colorSpace, sizeof(VkColorSpaceKHR));
6867 }
6868 
6869 #endif
6870 #ifdef VK_KHR_swapchain
marshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,const VkSwapchainCreateInfoKHR * forMarshaling)6871 void marshal_VkSwapchainCreateInfoKHR(
6872     VulkanStreamGuest* vkStream,
6873     const VkSwapchainCreateInfoKHR* forMarshaling)
6874 {
6875     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6876     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6877     vkStream->putBe32(pNext_size);
6878     if (pNext_size)
6879     {
6880         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6881         marshal_extension_struct(vkStream, forMarshaling->pNext);
6882     }
6883     vkStream->write((VkSwapchainCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkSwapchainCreateFlagsKHR));
6884     uint64_t cgen_var_188;
6885     vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_188, 1);
6886     vkStream->write((uint64_t*)&cgen_var_188, 1 * 8);
6887     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
6888     vkStream->write((VkFormat*)&forMarshaling->imageFormat, sizeof(VkFormat));
6889     vkStream->write((VkColorSpaceKHR*)&forMarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
6890     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->imageExtent));
6891     vkStream->write((uint32_t*)&forMarshaling->imageArrayLayers, sizeof(uint32_t));
6892     vkStream->write((VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
6893     vkStream->write((VkSharingMode*)&forMarshaling->imageSharingMode, sizeof(VkSharingMode));
6894     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
6895     // WARNING PTR CHECK
6896     uint64_t cgen_var_189 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
6897     vkStream->putBe64(cgen_var_189);
6898     if (forMarshaling->pQueueFamilyIndices)
6899     {
6900         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
6901     }
6902     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->preTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6903     vkStream->write((VkCompositeAlphaFlagBitsKHR*)&forMarshaling->compositeAlpha, sizeof(VkCompositeAlphaFlagBitsKHR));
6904     vkStream->write((VkPresentModeKHR*)&forMarshaling->presentMode, sizeof(VkPresentModeKHR));
6905     vkStream->write((VkBool32*)&forMarshaling->clipped, sizeof(VkBool32));
6906     uint64_t cgen_var_190;
6907     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->oldSwapchain, &cgen_var_190, 1);
6908     vkStream->write((uint64_t*)&cgen_var_190, 1 * 8);
6909 }
6910 
unmarshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,VkSwapchainCreateInfoKHR * forUnmarshaling)6911 void unmarshal_VkSwapchainCreateInfoKHR(
6912     VulkanStreamGuest* vkStream,
6913     VkSwapchainCreateInfoKHR* forUnmarshaling)
6914 {
6915     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6916     size_t pNext_size;
6917     pNext_size = vkStream->getBe32();
6918     if (pNext_size)
6919     {
6920         uint64_t pNext_placeholder;
6921         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6922         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6923     }
6924     vkStream->read((VkSwapchainCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkSwapchainCreateFlagsKHR));
6925     uint64_t cgen_var_191;
6926     vkStream->read((uint64_t*)&cgen_var_191, 1 * 8);
6927     vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_191, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
6928     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
6929     vkStream->read((VkFormat*)&forUnmarshaling->imageFormat, sizeof(VkFormat));
6930     vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
6931     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->imageExtent));
6932     vkStream->read((uint32_t*)&forUnmarshaling->imageArrayLayers, sizeof(uint32_t));
6933     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->imageUsage, sizeof(VkImageUsageFlags));
6934     vkStream->read((VkSharingMode*)&forUnmarshaling->imageSharingMode, sizeof(VkSharingMode));
6935     vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
6936     // WARNING PTR CHECK
6937     const uint32_t* check_pQueueFamilyIndices;
6938     check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
6939     if (forUnmarshaling->pQueueFamilyIndices)
6940     {
6941         if (!(check_pQueueFamilyIndices))
6942         {
6943             fprintf(stderr, "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and host\n");
6944         }
6945         vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices, forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
6946     }
6947     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->preTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6948     vkStream->read((VkCompositeAlphaFlagBitsKHR*)&forUnmarshaling->compositeAlpha, sizeof(VkCompositeAlphaFlagBitsKHR));
6949     vkStream->read((VkPresentModeKHR*)&forUnmarshaling->presentMode, sizeof(VkPresentModeKHR));
6950     vkStream->read((VkBool32*)&forUnmarshaling->clipped, sizeof(VkBool32));
6951     uint64_t cgen_var_193;
6952     vkStream->read((uint64_t*)&cgen_var_193, 1 * 8);
6953     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_193, (VkSwapchainKHR*)&forUnmarshaling->oldSwapchain, 1);
6954 }
6955 
marshal_VkPresentInfoKHR(VulkanStreamGuest * vkStream,const VkPresentInfoKHR * forMarshaling)6956 void marshal_VkPresentInfoKHR(
6957     VulkanStreamGuest* vkStream,
6958     const VkPresentInfoKHR* forMarshaling)
6959 {
6960     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6961     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6962     vkStream->putBe32(pNext_size);
6963     if (pNext_size)
6964     {
6965         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6966         marshal_extension_struct(vkStream, forMarshaling->pNext);
6967     }
6968     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
6969     if (forMarshaling->waitSemaphoreCount)
6970     {
6971         uint64_t* cgen_var_194;
6972         vkStream->alloc((void**)&cgen_var_194, forMarshaling->waitSemaphoreCount * 8);
6973         vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_194, forMarshaling->waitSemaphoreCount);
6974         vkStream->write((uint64_t*)cgen_var_194, forMarshaling->waitSemaphoreCount * 8);
6975     }
6976     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
6977     if (forMarshaling->swapchainCount)
6978     {
6979         uint64_t* cgen_var_195;
6980         vkStream->alloc((void**)&cgen_var_195, forMarshaling->swapchainCount * 8);
6981         vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(forMarshaling->pSwapchains, cgen_var_195, forMarshaling->swapchainCount);
6982         vkStream->write((uint64_t*)cgen_var_195, forMarshaling->swapchainCount * 8);
6983     }
6984     vkStream->write((const uint32_t*)forMarshaling->pImageIndices, forMarshaling->swapchainCount * sizeof(const uint32_t));
6985     // WARNING PTR CHECK
6986     uint64_t cgen_var_196 = (uint64_t)(uintptr_t)forMarshaling->pResults;
6987     vkStream->putBe64(cgen_var_196);
6988     if (forMarshaling->pResults)
6989     {
6990         vkStream->write((VkResult*)forMarshaling->pResults, forMarshaling->swapchainCount * sizeof(VkResult));
6991     }
6992 }
6993 
unmarshal_VkPresentInfoKHR(VulkanStreamGuest * vkStream,VkPresentInfoKHR * forUnmarshaling)6994 void unmarshal_VkPresentInfoKHR(
6995     VulkanStreamGuest* vkStream,
6996     VkPresentInfoKHR* forUnmarshaling)
6997 {
6998     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6999     size_t pNext_size;
7000     pNext_size = vkStream->getBe32();
7001     if (pNext_size)
7002     {
7003         uint64_t pNext_placeholder;
7004         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7005         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7006     }
7007     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
7008     if (forUnmarshaling->waitSemaphoreCount)
7009     {
7010         uint64_t* cgen_var_197;
7011         vkStream->alloc((void**)&cgen_var_197, forUnmarshaling->waitSemaphoreCount * 8);
7012         vkStream->read((uint64_t*)cgen_var_197, forUnmarshaling->waitSemaphoreCount * 8);
7013         vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_197, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
7014     }
7015     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
7016     if (forUnmarshaling->swapchainCount)
7017     {
7018         uint64_t* cgen_var_198;
7019         vkStream->alloc((void**)&cgen_var_198, forUnmarshaling->swapchainCount * 8);
7020         vkStream->read((uint64_t*)cgen_var_198, forUnmarshaling->swapchainCount * 8);
7021         vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_198, (VkSwapchainKHR*)forUnmarshaling->pSwapchains, forUnmarshaling->swapchainCount);
7022     }
7023     vkStream->read((uint32_t*)forUnmarshaling->pImageIndices, forUnmarshaling->swapchainCount * sizeof(const uint32_t));
7024     // WARNING PTR CHECK
7025     VkResult* check_pResults;
7026     check_pResults = (VkResult*)(uintptr_t)vkStream->getBe64();
7027     if (forUnmarshaling->pResults)
7028     {
7029         if (!(check_pResults))
7030         {
7031             fprintf(stderr, "fatal: forUnmarshaling->pResults inconsistent between guest and host\n");
7032         }
7033         vkStream->read((VkResult*)forUnmarshaling->pResults, forUnmarshaling->swapchainCount * sizeof(VkResult));
7034     }
7035 }
7036 
marshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,const VkImageSwapchainCreateInfoKHR * forMarshaling)7037 void marshal_VkImageSwapchainCreateInfoKHR(
7038     VulkanStreamGuest* vkStream,
7039     const VkImageSwapchainCreateInfoKHR* forMarshaling)
7040 {
7041     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7042     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7043     vkStream->putBe32(pNext_size);
7044     if (pNext_size)
7045     {
7046         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7047         marshal_extension_struct(vkStream, forMarshaling->pNext);
7048     }
7049     uint64_t cgen_var_200;
7050     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_200, 1);
7051     vkStream->write((uint64_t*)&cgen_var_200, 1 * 8);
7052 }
7053 
unmarshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,VkImageSwapchainCreateInfoKHR * forUnmarshaling)7054 void unmarshal_VkImageSwapchainCreateInfoKHR(
7055     VulkanStreamGuest* vkStream,
7056     VkImageSwapchainCreateInfoKHR* forUnmarshaling)
7057 {
7058     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7059     size_t pNext_size;
7060     pNext_size = vkStream->getBe32();
7061     if (pNext_size)
7062     {
7063         uint64_t pNext_placeholder;
7064         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7065         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7066     }
7067     uint64_t cgen_var_201;
7068     vkStream->read((uint64_t*)&cgen_var_201, 1 * 8);
7069     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_201, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
7070 }
7071 
marshal_VkBindImageMemorySwapchainInfoKHR(VulkanStreamGuest * vkStream,const VkBindImageMemorySwapchainInfoKHR * forMarshaling)7072 void marshal_VkBindImageMemorySwapchainInfoKHR(
7073     VulkanStreamGuest* vkStream,
7074     const VkBindImageMemorySwapchainInfoKHR* forMarshaling)
7075 {
7076     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7077     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7078     vkStream->putBe32(pNext_size);
7079     if (pNext_size)
7080     {
7081         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7082         marshal_extension_struct(vkStream, forMarshaling->pNext);
7083     }
7084     uint64_t cgen_var_202;
7085     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_202, 1);
7086     vkStream->write((uint64_t*)&cgen_var_202, 1 * 8);
7087     vkStream->write((uint32_t*)&forMarshaling->imageIndex, sizeof(uint32_t));
7088 }
7089 
unmarshal_VkBindImageMemorySwapchainInfoKHR(VulkanStreamGuest * vkStream,VkBindImageMemorySwapchainInfoKHR * forUnmarshaling)7090 void unmarshal_VkBindImageMemorySwapchainInfoKHR(
7091     VulkanStreamGuest* vkStream,
7092     VkBindImageMemorySwapchainInfoKHR* forUnmarshaling)
7093 {
7094     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7095     size_t pNext_size;
7096     pNext_size = vkStream->getBe32();
7097     if (pNext_size)
7098     {
7099         uint64_t pNext_placeholder;
7100         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7101         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7102     }
7103     uint64_t cgen_var_203;
7104     vkStream->read((uint64_t*)&cgen_var_203, 1 * 8);
7105     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_203, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
7106     vkStream->read((uint32_t*)&forUnmarshaling->imageIndex, sizeof(uint32_t));
7107 }
7108 
marshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest * vkStream,const VkAcquireNextImageInfoKHR * forMarshaling)7109 void marshal_VkAcquireNextImageInfoKHR(
7110     VulkanStreamGuest* vkStream,
7111     const VkAcquireNextImageInfoKHR* forMarshaling)
7112 {
7113     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7114     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7115     vkStream->putBe32(pNext_size);
7116     if (pNext_size)
7117     {
7118         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7119         marshal_extension_struct(vkStream, forMarshaling->pNext);
7120     }
7121     uint64_t cgen_var_204;
7122     vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_204, 1);
7123     vkStream->write((uint64_t*)&cgen_var_204, 1 * 8);
7124     vkStream->write((uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
7125     uint64_t cgen_var_205;
7126     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_205, 1);
7127     vkStream->write((uint64_t*)&cgen_var_205, 1 * 8);
7128     uint64_t cgen_var_206;
7129     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_206, 1);
7130     vkStream->write((uint64_t*)&cgen_var_206, 1 * 8);
7131     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
7132 }
7133 
unmarshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest * vkStream,VkAcquireNextImageInfoKHR * forUnmarshaling)7134 void unmarshal_VkAcquireNextImageInfoKHR(
7135     VulkanStreamGuest* vkStream,
7136     VkAcquireNextImageInfoKHR* forUnmarshaling)
7137 {
7138     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7139     size_t pNext_size;
7140     pNext_size = vkStream->getBe32();
7141     if (pNext_size)
7142     {
7143         uint64_t pNext_placeholder;
7144         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7145         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7146     }
7147     uint64_t cgen_var_207;
7148     vkStream->read((uint64_t*)&cgen_var_207, 1 * 8);
7149     vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_207, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
7150     vkStream->read((uint64_t*)&forUnmarshaling->timeout, sizeof(uint64_t));
7151     uint64_t cgen_var_208;
7152     vkStream->read((uint64_t*)&cgen_var_208, 1 * 8);
7153     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_208, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
7154     uint64_t cgen_var_209;
7155     vkStream->read((uint64_t*)&cgen_var_209, 1 * 8);
7156     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_209, (VkFence*)&forUnmarshaling->fence, 1);
7157     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
7158 }
7159 
marshal_VkDeviceGroupPresentCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkDeviceGroupPresentCapabilitiesKHR * forMarshaling)7160 void marshal_VkDeviceGroupPresentCapabilitiesKHR(
7161     VulkanStreamGuest* vkStream,
7162     const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling)
7163 {
7164     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7165     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7166     vkStream->putBe32(pNext_size);
7167     if (pNext_size)
7168     {
7169         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7170         marshal_extension_struct(vkStream, forMarshaling->pNext);
7171     }
7172     vkStream->write((uint32_t*)forMarshaling->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
7173     vkStream->write((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
7174 }
7175 
unmarshal_VkDeviceGroupPresentCapabilitiesKHR(VulkanStreamGuest * vkStream,VkDeviceGroupPresentCapabilitiesKHR * forUnmarshaling)7176 void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
7177     VulkanStreamGuest* vkStream,
7178     VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling)
7179 {
7180     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7181     size_t pNext_size;
7182     pNext_size = vkStream->getBe32();
7183     if (pNext_size)
7184     {
7185         uint64_t pNext_placeholder;
7186         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7187         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7188     }
7189     vkStream->read((uint32_t*)forUnmarshaling->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
7190     vkStream->read((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
7191 }
7192 
marshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest * vkStream,const VkDeviceGroupPresentInfoKHR * forMarshaling)7193 void marshal_VkDeviceGroupPresentInfoKHR(
7194     VulkanStreamGuest* vkStream,
7195     const VkDeviceGroupPresentInfoKHR* forMarshaling)
7196 {
7197     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7198     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7199     vkStream->putBe32(pNext_size);
7200     if (pNext_size)
7201     {
7202         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7203         marshal_extension_struct(vkStream, forMarshaling->pNext);
7204     }
7205     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
7206     vkStream->write((const uint32_t*)forMarshaling->pDeviceMasks, forMarshaling->swapchainCount * sizeof(const uint32_t));
7207     vkStream->write((VkDeviceGroupPresentModeFlagBitsKHR*)&forMarshaling->mode, sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
7208 }
7209 
unmarshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest * vkStream,VkDeviceGroupPresentInfoKHR * forUnmarshaling)7210 void unmarshal_VkDeviceGroupPresentInfoKHR(
7211     VulkanStreamGuest* vkStream,
7212     VkDeviceGroupPresentInfoKHR* forUnmarshaling)
7213 {
7214     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7215     size_t pNext_size;
7216     pNext_size = vkStream->getBe32();
7217     if (pNext_size)
7218     {
7219         uint64_t pNext_placeholder;
7220         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7221         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7222     }
7223     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
7224     vkStream->read((uint32_t*)forUnmarshaling->pDeviceMasks, forUnmarshaling->swapchainCount * sizeof(const uint32_t));
7225     vkStream->read((VkDeviceGroupPresentModeFlagBitsKHR*)&forUnmarshaling->mode, sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
7226 }
7227 
marshal_VkDeviceGroupSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,const VkDeviceGroupSwapchainCreateInfoKHR * forMarshaling)7228 void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
7229     VulkanStreamGuest* vkStream,
7230     const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling)
7231 {
7232     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7233     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7234     vkStream->putBe32(pNext_size);
7235     if (pNext_size)
7236     {
7237         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7238         marshal_extension_struct(vkStream, forMarshaling->pNext);
7239     }
7240     vkStream->write((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
7241 }
7242 
unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,VkDeviceGroupSwapchainCreateInfoKHR * forUnmarshaling)7243 void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
7244     VulkanStreamGuest* vkStream,
7245     VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling)
7246 {
7247     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7248     size_t pNext_size;
7249     pNext_size = vkStream->getBe32();
7250     if (pNext_size)
7251     {
7252         uint64_t pNext_placeholder;
7253         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7254         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7255     }
7256     vkStream->read((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
7257 }
7258 
7259 #endif
7260 #ifdef VK_KHR_display
marshal_VkDisplayPropertiesKHR(VulkanStreamGuest * vkStream,const VkDisplayPropertiesKHR * forMarshaling)7261 void marshal_VkDisplayPropertiesKHR(
7262     VulkanStreamGuest* vkStream,
7263     const VkDisplayPropertiesKHR* forMarshaling)
7264 {
7265     uint64_t cgen_var_210;
7266     vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->display, &cgen_var_210, 1);
7267     vkStream->write((uint64_t*)&cgen_var_210, 1 * 8);
7268     vkStream->putString(forMarshaling->displayName);
7269     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalDimensions));
7270     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalResolution));
7271     vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
7272     vkStream->write((VkBool32*)&forMarshaling->planeReorderPossible, sizeof(VkBool32));
7273     vkStream->write((VkBool32*)&forMarshaling->persistentContent, sizeof(VkBool32));
7274 }
7275 
unmarshal_VkDisplayPropertiesKHR(VulkanStreamGuest * vkStream,VkDisplayPropertiesKHR * forUnmarshaling)7276 void unmarshal_VkDisplayPropertiesKHR(
7277     VulkanStreamGuest* vkStream,
7278     VkDisplayPropertiesKHR* forUnmarshaling)
7279 {
7280     uint64_t cgen_var_211;
7281     vkStream->read((uint64_t*)&cgen_var_211, 1 * 8);
7282     vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_211, (VkDisplayKHR*)&forUnmarshaling->display, 1);
7283     vkStream->loadStringInPlace((char**)&forUnmarshaling->displayName);
7284     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalDimensions));
7285     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalResolution));
7286     vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
7287     vkStream->read((VkBool32*)&forUnmarshaling->planeReorderPossible, sizeof(VkBool32));
7288     vkStream->read((VkBool32*)&forUnmarshaling->persistentContent, sizeof(VkBool32));
7289 }
7290 
marshal_VkDisplayModeParametersKHR(VulkanStreamGuest * vkStream,const VkDisplayModeParametersKHR * forMarshaling)7291 void marshal_VkDisplayModeParametersKHR(
7292     VulkanStreamGuest* vkStream,
7293     const VkDisplayModeParametersKHR* forMarshaling)
7294 {
7295     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->visibleRegion));
7296     vkStream->write((uint32_t*)&forMarshaling->refreshRate, sizeof(uint32_t));
7297 }
7298 
unmarshal_VkDisplayModeParametersKHR(VulkanStreamGuest * vkStream,VkDisplayModeParametersKHR * forUnmarshaling)7299 void unmarshal_VkDisplayModeParametersKHR(
7300     VulkanStreamGuest* vkStream,
7301     VkDisplayModeParametersKHR* forUnmarshaling)
7302 {
7303     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->visibleRegion));
7304     vkStream->read((uint32_t*)&forUnmarshaling->refreshRate, sizeof(uint32_t));
7305 }
7306 
marshal_VkDisplayModePropertiesKHR(VulkanStreamGuest * vkStream,const VkDisplayModePropertiesKHR * forMarshaling)7307 void marshal_VkDisplayModePropertiesKHR(
7308     VulkanStreamGuest* vkStream,
7309     const VkDisplayModePropertiesKHR* forMarshaling)
7310 {
7311     uint64_t cgen_var_212;
7312     vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_212, 1);
7313     vkStream->write((uint64_t*)&cgen_var_212, 1 * 8);
7314     marshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
7315 }
7316 
unmarshal_VkDisplayModePropertiesKHR(VulkanStreamGuest * vkStream,VkDisplayModePropertiesKHR * forUnmarshaling)7317 void unmarshal_VkDisplayModePropertiesKHR(
7318     VulkanStreamGuest* vkStream,
7319     VkDisplayModePropertiesKHR* forUnmarshaling)
7320 {
7321     uint64_t cgen_var_213;
7322     vkStream->read((uint64_t*)&cgen_var_213, 1 * 8);
7323     vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_213, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
7324     unmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
7325 }
7326 
marshal_VkDisplayModeCreateInfoKHR(VulkanStreamGuest * vkStream,const VkDisplayModeCreateInfoKHR * forMarshaling)7327 void marshal_VkDisplayModeCreateInfoKHR(
7328     VulkanStreamGuest* vkStream,
7329     const VkDisplayModeCreateInfoKHR* forMarshaling)
7330 {
7331     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7332     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7333     vkStream->putBe32(pNext_size);
7334     if (pNext_size)
7335     {
7336         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7337         marshal_extension_struct(vkStream, forMarshaling->pNext);
7338     }
7339     vkStream->write((VkDisplayModeCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkDisplayModeCreateFlagsKHR));
7340     marshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
7341 }
7342 
unmarshal_VkDisplayModeCreateInfoKHR(VulkanStreamGuest * vkStream,VkDisplayModeCreateInfoKHR * forUnmarshaling)7343 void unmarshal_VkDisplayModeCreateInfoKHR(
7344     VulkanStreamGuest* vkStream,
7345     VkDisplayModeCreateInfoKHR* forUnmarshaling)
7346 {
7347     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7348     size_t pNext_size;
7349     pNext_size = vkStream->getBe32();
7350     if (pNext_size)
7351     {
7352         uint64_t pNext_placeholder;
7353         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7354         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7355     }
7356     vkStream->read((VkDisplayModeCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkDisplayModeCreateFlagsKHR));
7357     unmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
7358 }
7359 
marshal_VkDisplayPlaneCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneCapabilitiesKHR * forMarshaling)7360 void marshal_VkDisplayPlaneCapabilitiesKHR(
7361     VulkanStreamGuest* vkStream,
7362     const VkDisplayPlaneCapabilitiesKHR* forMarshaling)
7363 {
7364     vkStream->write((VkDisplayPlaneAlphaFlagsKHR*)&forMarshaling->supportedAlpha, sizeof(VkDisplayPlaneAlphaFlagsKHR));
7365     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->minSrcPosition));
7366     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->maxSrcPosition));
7367     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minSrcExtent));
7368     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxSrcExtent));
7369     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->minDstPosition));
7370     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->maxDstPosition));
7371     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minDstExtent));
7372     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxDstExtent));
7373 }
7374 
unmarshal_VkDisplayPlaneCapabilitiesKHR(VulkanStreamGuest * vkStream,VkDisplayPlaneCapabilitiesKHR * forUnmarshaling)7375 void unmarshal_VkDisplayPlaneCapabilitiesKHR(
7376     VulkanStreamGuest* vkStream,
7377     VkDisplayPlaneCapabilitiesKHR* forUnmarshaling)
7378 {
7379     vkStream->read((VkDisplayPlaneAlphaFlagsKHR*)&forUnmarshaling->supportedAlpha, sizeof(VkDisplayPlaneAlphaFlagsKHR));
7380     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->minSrcPosition));
7381     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->maxSrcPosition));
7382     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minSrcExtent));
7383     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxSrcExtent));
7384     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->minDstPosition));
7385     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->maxDstPosition));
7386     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minDstExtent));
7387     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxDstExtent));
7388 }
7389 
marshal_VkDisplayPlanePropertiesKHR(VulkanStreamGuest * vkStream,const VkDisplayPlanePropertiesKHR * forMarshaling)7390 void marshal_VkDisplayPlanePropertiesKHR(
7391     VulkanStreamGuest* vkStream,
7392     const VkDisplayPlanePropertiesKHR* forMarshaling)
7393 {
7394     uint64_t cgen_var_214;
7395     vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->currentDisplay, &cgen_var_214, 1);
7396     vkStream->write((uint64_t*)&cgen_var_214, 1 * 8);
7397     vkStream->write((uint32_t*)&forMarshaling->currentStackIndex, sizeof(uint32_t));
7398 }
7399 
unmarshal_VkDisplayPlanePropertiesKHR(VulkanStreamGuest * vkStream,VkDisplayPlanePropertiesKHR * forUnmarshaling)7400 void unmarshal_VkDisplayPlanePropertiesKHR(
7401     VulkanStreamGuest* vkStream,
7402     VkDisplayPlanePropertiesKHR* forUnmarshaling)
7403 {
7404     uint64_t cgen_var_215;
7405     vkStream->read((uint64_t*)&cgen_var_215, 1 * 8);
7406     vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_215, (VkDisplayKHR*)&forUnmarshaling->currentDisplay, 1);
7407     vkStream->read((uint32_t*)&forUnmarshaling->currentStackIndex, sizeof(uint32_t));
7408 }
7409 
marshal_VkDisplaySurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkDisplaySurfaceCreateInfoKHR * forMarshaling)7410 void marshal_VkDisplaySurfaceCreateInfoKHR(
7411     VulkanStreamGuest* vkStream,
7412     const VkDisplaySurfaceCreateInfoKHR* forMarshaling)
7413 {
7414     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7415     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7416     vkStream->putBe32(pNext_size);
7417     if (pNext_size)
7418     {
7419         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7420         marshal_extension_struct(vkStream, forMarshaling->pNext);
7421     }
7422     vkStream->write((VkDisplaySurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkDisplaySurfaceCreateFlagsKHR));
7423     uint64_t cgen_var_216;
7424     vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_216, 1);
7425     vkStream->write((uint64_t*)&cgen_var_216, 1 * 8);
7426     vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
7427     vkStream->write((uint32_t*)&forMarshaling->planeStackIndex, sizeof(uint32_t));
7428     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
7429     vkStream->write((float*)&forMarshaling->globalAlpha, sizeof(float));
7430     vkStream->write((VkDisplayPlaneAlphaFlagBitsKHR*)&forMarshaling->alphaMode, sizeof(VkDisplayPlaneAlphaFlagBitsKHR));
7431     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->imageExtent));
7432 }
7433 
unmarshal_VkDisplaySurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkDisplaySurfaceCreateInfoKHR * forUnmarshaling)7434 void unmarshal_VkDisplaySurfaceCreateInfoKHR(
7435     VulkanStreamGuest* vkStream,
7436     VkDisplaySurfaceCreateInfoKHR* forUnmarshaling)
7437 {
7438     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7439     size_t pNext_size;
7440     pNext_size = vkStream->getBe32();
7441     if (pNext_size)
7442     {
7443         uint64_t pNext_placeholder;
7444         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7445         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7446     }
7447     vkStream->read((VkDisplaySurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkDisplaySurfaceCreateFlagsKHR));
7448     uint64_t cgen_var_217;
7449     vkStream->read((uint64_t*)&cgen_var_217, 1 * 8);
7450     vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_217, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
7451     vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
7452     vkStream->read((uint32_t*)&forUnmarshaling->planeStackIndex, sizeof(uint32_t));
7453     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
7454     vkStream->read((float*)&forUnmarshaling->globalAlpha, sizeof(float));
7455     vkStream->read((VkDisplayPlaneAlphaFlagBitsKHR*)&forUnmarshaling->alphaMode, sizeof(VkDisplayPlaneAlphaFlagBitsKHR));
7456     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->imageExtent));
7457 }
7458 
7459 #endif
7460 #ifdef VK_KHR_display_swapchain
marshal_VkDisplayPresentInfoKHR(VulkanStreamGuest * vkStream,const VkDisplayPresentInfoKHR * forMarshaling)7461 void marshal_VkDisplayPresentInfoKHR(
7462     VulkanStreamGuest* vkStream,
7463     const VkDisplayPresentInfoKHR* forMarshaling)
7464 {
7465     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7466     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7467     vkStream->putBe32(pNext_size);
7468     if (pNext_size)
7469     {
7470         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7471         marshal_extension_struct(vkStream, forMarshaling->pNext);
7472     }
7473     marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->srcRect));
7474     marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->dstRect));
7475     vkStream->write((VkBool32*)&forMarshaling->persistent, sizeof(VkBool32));
7476 }
7477 
unmarshal_VkDisplayPresentInfoKHR(VulkanStreamGuest * vkStream,VkDisplayPresentInfoKHR * forUnmarshaling)7478 void unmarshal_VkDisplayPresentInfoKHR(
7479     VulkanStreamGuest* vkStream,
7480     VkDisplayPresentInfoKHR* forUnmarshaling)
7481 {
7482     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7483     size_t pNext_size;
7484     pNext_size = vkStream->getBe32();
7485     if (pNext_size)
7486     {
7487         uint64_t pNext_placeholder;
7488         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7489         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7490     }
7491     unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->srcRect));
7492     unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->dstRect));
7493     vkStream->read((VkBool32*)&forUnmarshaling->persistent, sizeof(VkBool32));
7494 }
7495 
7496 #endif
7497 #ifdef VK_KHR_xlib_surface
marshal_VkXlibSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkXlibSurfaceCreateInfoKHR * forMarshaling)7498 void marshal_VkXlibSurfaceCreateInfoKHR(
7499     VulkanStreamGuest* vkStream,
7500     const VkXlibSurfaceCreateInfoKHR* forMarshaling)
7501 {
7502     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7503     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7504     vkStream->putBe32(pNext_size);
7505     if (pNext_size)
7506     {
7507         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7508         marshal_extension_struct(vkStream, forMarshaling->pNext);
7509     }
7510     vkStream->write((VkXlibSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXlibSurfaceCreateFlagsKHR));
7511     // WARNING PTR CHECK
7512     uint64_t cgen_var_218 = (uint64_t)(uintptr_t)forMarshaling->dpy;
7513     vkStream->putBe64(cgen_var_218);
7514     if (forMarshaling->dpy)
7515     {
7516         vkStream->write((Display*)forMarshaling->dpy, sizeof(Display));
7517     }
7518     vkStream->write((Window*)&forMarshaling->window, sizeof(Window));
7519 }
7520 
unmarshal_VkXlibSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkXlibSurfaceCreateInfoKHR * forUnmarshaling)7521 void unmarshal_VkXlibSurfaceCreateInfoKHR(
7522     VulkanStreamGuest* vkStream,
7523     VkXlibSurfaceCreateInfoKHR* forUnmarshaling)
7524 {
7525     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7526     size_t pNext_size;
7527     pNext_size = vkStream->getBe32();
7528     if (pNext_size)
7529     {
7530         uint64_t pNext_placeholder;
7531         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7532         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7533     }
7534     vkStream->read((VkXlibSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkXlibSurfaceCreateFlagsKHR));
7535     // WARNING PTR CHECK
7536     Display* check_dpy;
7537     check_dpy = (Display*)(uintptr_t)vkStream->getBe64();
7538     if (forUnmarshaling->dpy)
7539     {
7540         if (!(check_dpy))
7541         {
7542             fprintf(stderr, "fatal: forUnmarshaling->dpy inconsistent between guest and host\n");
7543         }
7544         vkStream->read((Display*)forUnmarshaling->dpy, sizeof(Display));
7545     }
7546     vkStream->read((Window*)&forUnmarshaling->window, sizeof(Window));
7547 }
7548 
7549 #endif
7550 #ifdef VK_KHR_xcb_surface
marshal_VkXcbSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkXcbSurfaceCreateInfoKHR * forMarshaling)7551 void marshal_VkXcbSurfaceCreateInfoKHR(
7552     VulkanStreamGuest* vkStream,
7553     const VkXcbSurfaceCreateInfoKHR* forMarshaling)
7554 {
7555     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7556     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7557     vkStream->putBe32(pNext_size);
7558     if (pNext_size)
7559     {
7560         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7561         marshal_extension_struct(vkStream, forMarshaling->pNext);
7562     }
7563     vkStream->write((VkXcbSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXcbSurfaceCreateFlagsKHR));
7564     // WARNING PTR CHECK
7565     uint64_t cgen_var_220 = (uint64_t)(uintptr_t)forMarshaling->connection;
7566     vkStream->putBe64(cgen_var_220);
7567     if (forMarshaling->connection)
7568     {
7569         vkStream->write((xcb_connection_t*)forMarshaling->connection, sizeof(xcb_connection_t));
7570     }
7571     vkStream->write((xcb_window_t*)&forMarshaling->window, sizeof(xcb_window_t));
7572 }
7573 
unmarshal_VkXcbSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkXcbSurfaceCreateInfoKHR * forUnmarshaling)7574 void unmarshal_VkXcbSurfaceCreateInfoKHR(
7575     VulkanStreamGuest* vkStream,
7576     VkXcbSurfaceCreateInfoKHR* forUnmarshaling)
7577 {
7578     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7579     size_t pNext_size;
7580     pNext_size = vkStream->getBe32();
7581     if (pNext_size)
7582     {
7583         uint64_t pNext_placeholder;
7584         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7585         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7586     }
7587     vkStream->read((VkXcbSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkXcbSurfaceCreateFlagsKHR));
7588     // WARNING PTR CHECK
7589     xcb_connection_t* check_connection;
7590     check_connection = (xcb_connection_t*)(uintptr_t)vkStream->getBe64();
7591     if (forUnmarshaling->connection)
7592     {
7593         if (!(check_connection))
7594         {
7595             fprintf(stderr, "fatal: forUnmarshaling->connection inconsistent between guest and host\n");
7596         }
7597         vkStream->read((xcb_connection_t*)forUnmarshaling->connection, sizeof(xcb_connection_t));
7598     }
7599     vkStream->read((xcb_window_t*)&forUnmarshaling->window, sizeof(xcb_window_t));
7600 }
7601 
7602 #endif
7603 #ifdef VK_KHR_wayland_surface
marshal_VkWaylandSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkWaylandSurfaceCreateInfoKHR * forMarshaling)7604 void marshal_VkWaylandSurfaceCreateInfoKHR(
7605     VulkanStreamGuest* vkStream,
7606     const VkWaylandSurfaceCreateInfoKHR* forMarshaling)
7607 {
7608     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7609     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7610     vkStream->putBe32(pNext_size);
7611     if (pNext_size)
7612     {
7613         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7614         marshal_extension_struct(vkStream, forMarshaling->pNext);
7615     }
7616     vkStream->write((VkWaylandSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkWaylandSurfaceCreateFlagsKHR));
7617     // WARNING PTR CHECK
7618     uint64_t cgen_var_222 = (uint64_t)(uintptr_t)forMarshaling->display;
7619     vkStream->putBe64(cgen_var_222);
7620     if (forMarshaling->display)
7621     {
7622         vkStream->write((wl_display*)forMarshaling->display, sizeof(wl_display));
7623     }
7624     // WARNING PTR CHECK
7625     uint64_t cgen_var_223 = (uint64_t)(uintptr_t)forMarshaling->surface;
7626     vkStream->putBe64(cgen_var_223);
7627     if (forMarshaling->surface)
7628     {
7629         vkStream->write((wl_surface*)forMarshaling->surface, sizeof(wl_surface));
7630     }
7631 }
7632 
unmarshal_VkWaylandSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkWaylandSurfaceCreateInfoKHR * forUnmarshaling)7633 void unmarshal_VkWaylandSurfaceCreateInfoKHR(
7634     VulkanStreamGuest* vkStream,
7635     VkWaylandSurfaceCreateInfoKHR* forUnmarshaling)
7636 {
7637     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7638     size_t pNext_size;
7639     pNext_size = vkStream->getBe32();
7640     if (pNext_size)
7641     {
7642         uint64_t pNext_placeholder;
7643         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7644         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7645     }
7646     vkStream->read((VkWaylandSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkWaylandSurfaceCreateFlagsKHR));
7647     // WARNING PTR CHECK
7648     wl_display* check_display;
7649     check_display = (wl_display*)(uintptr_t)vkStream->getBe64();
7650     if (forUnmarshaling->display)
7651     {
7652         if (!(check_display))
7653         {
7654             fprintf(stderr, "fatal: forUnmarshaling->display inconsistent between guest and host\n");
7655         }
7656         vkStream->read((wl_display*)forUnmarshaling->display, sizeof(wl_display));
7657     }
7658     // WARNING PTR CHECK
7659     wl_surface* check_surface;
7660     check_surface = (wl_surface*)(uintptr_t)vkStream->getBe64();
7661     if (forUnmarshaling->surface)
7662     {
7663         if (!(check_surface))
7664         {
7665             fprintf(stderr, "fatal: forUnmarshaling->surface inconsistent between guest and host\n");
7666         }
7667         vkStream->read((wl_surface*)forUnmarshaling->surface, sizeof(wl_surface));
7668     }
7669 }
7670 
7671 #endif
7672 #ifdef VK_KHR_mir_surface
marshal_VkMirSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkMirSurfaceCreateInfoKHR * forMarshaling)7673 void marshal_VkMirSurfaceCreateInfoKHR(
7674     VulkanStreamGuest* vkStream,
7675     const VkMirSurfaceCreateInfoKHR* forMarshaling)
7676 {
7677     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7678     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7679     vkStream->putBe32(pNext_size);
7680     if (pNext_size)
7681     {
7682         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7683         marshal_extension_struct(vkStream, forMarshaling->pNext);
7684     }
7685     vkStream->write((VkMirSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkMirSurfaceCreateFlagsKHR));
7686     // WARNING PTR CHECK
7687     uint64_t cgen_var_226 = (uint64_t)(uintptr_t)forMarshaling->connection;
7688     vkStream->putBe64(cgen_var_226);
7689     if (forMarshaling->connection)
7690     {
7691         vkStream->write((MirConnection*)forMarshaling->connection, sizeof(MirConnection));
7692     }
7693     // WARNING PTR CHECK
7694     uint64_t cgen_var_227 = (uint64_t)(uintptr_t)forMarshaling->mirSurface;
7695     vkStream->putBe64(cgen_var_227);
7696     if (forMarshaling->mirSurface)
7697     {
7698         vkStream->write((MirSurface*)forMarshaling->mirSurface, sizeof(MirSurface));
7699     }
7700 }
7701 
unmarshal_VkMirSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkMirSurfaceCreateInfoKHR * forUnmarshaling)7702 void unmarshal_VkMirSurfaceCreateInfoKHR(
7703     VulkanStreamGuest* vkStream,
7704     VkMirSurfaceCreateInfoKHR* forUnmarshaling)
7705 {
7706     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7707     size_t pNext_size;
7708     pNext_size = vkStream->getBe32();
7709     if (pNext_size)
7710     {
7711         uint64_t pNext_placeholder;
7712         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7713         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7714     }
7715     vkStream->read((VkMirSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkMirSurfaceCreateFlagsKHR));
7716     // WARNING PTR CHECK
7717     MirConnection* check_connection;
7718     check_connection = (MirConnection*)(uintptr_t)vkStream->getBe64();
7719     if (forUnmarshaling->connection)
7720     {
7721         if (!(check_connection))
7722         {
7723             fprintf(stderr, "fatal: forUnmarshaling->connection inconsistent between guest and host\n");
7724         }
7725         vkStream->read((MirConnection*)forUnmarshaling->connection, sizeof(MirConnection));
7726     }
7727     // WARNING PTR CHECK
7728     MirSurface* check_mirSurface;
7729     check_mirSurface = (MirSurface*)(uintptr_t)vkStream->getBe64();
7730     if (forUnmarshaling->mirSurface)
7731     {
7732         if (!(check_mirSurface))
7733         {
7734             fprintf(stderr, "fatal: forUnmarshaling->mirSurface inconsistent between guest and host\n");
7735         }
7736         vkStream->read((MirSurface*)forUnmarshaling->mirSurface, sizeof(MirSurface));
7737     }
7738 }
7739 
7740 #endif
7741 #ifdef VK_KHR_android_surface
marshal_VkAndroidSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkAndroidSurfaceCreateInfoKHR * forMarshaling)7742 void marshal_VkAndroidSurfaceCreateInfoKHR(
7743     VulkanStreamGuest* vkStream,
7744     const VkAndroidSurfaceCreateInfoKHR* forMarshaling)
7745 {
7746     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7747     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7748     vkStream->putBe32(pNext_size);
7749     if (pNext_size)
7750     {
7751         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7752         marshal_extension_struct(vkStream, forMarshaling->pNext);
7753     }
7754     vkStream->write((VkAndroidSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkAndroidSurfaceCreateFlagsKHR));
7755     // WARNING PTR CHECK
7756     uint64_t cgen_var_230 = (uint64_t)(uintptr_t)forMarshaling->window;
7757     vkStream->putBe64(cgen_var_230);
7758     if (forMarshaling->window)
7759     {
7760         vkStream->write((ANativeWindow*)forMarshaling->window, sizeof(ANativeWindow));
7761     }
7762 }
7763 
unmarshal_VkAndroidSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkAndroidSurfaceCreateInfoKHR * forUnmarshaling)7764 void unmarshal_VkAndroidSurfaceCreateInfoKHR(
7765     VulkanStreamGuest* vkStream,
7766     VkAndroidSurfaceCreateInfoKHR* forUnmarshaling)
7767 {
7768     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7769     size_t pNext_size;
7770     pNext_size = vkStream->getBe32();
7771     if (pNext_size)
7772     {
7773         uint64_t pNext_placeholder;
7774         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7775         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7776     }
7777     vkStream->read((VkAndroidSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkAndroidSurfaceCreateFlagsKHR));
7778     // WARNING PTR CHECK
7779     ANativeWindow* check_window;
7780     check_window = (ANativeWindow*)(uintptr_t)vkStream->getBe64();
7781     if (forUnmarshaling->window)
7782     {
7783         if (!(check_window))
7784         {
7785             fprintf(stderr, "fatal: forUnmarshaling->window inconsistent between guest and host\n");
7786         }
7787         vkStream->read((ANativeWindow*)forUnmarshaling->window, sizeof(ANativeWindow));
7788     }
7789 }
7790 
7791 #endif
7792 #ifdef VK_KHR_win32_surface
marshal_VkWin32SurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkWin32SurfaceCreateInfoKHR * forMarshaling)7793 void marshal_VkWin32SurfaceCreateInfoKHR(
7794     VulkanStreamGuest* vkStream,
7795     const VkWin32SurfaceCreateInfoKHR* forMarshaling)
7796 {
7797     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7798     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7799     vkStream->putBe32(pNext_size);
7800     if (pNext_size)
7801     {
7802         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7803         marshal_extension_struct(vkStream, forMarshaling->pNext);
7804     }
7805     vkStream->write((VkWin32SurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkWin32SurfaceCreateFlagsKHR));
7806     vkStream->write((HINSTANCE*)&forMarshaling->hinstance, sizeof(HINSTANCE));
7807     vkStream->write((HWND*)&forMarshaling->hwnd, sizeof(HWND));
7808 }
7809 
unmarshal_VkWin32SurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkWin32SurfaceCreateInfoKHR * forUnmarshaling)7810 void unmarshal_VkWin32SurfaceCreateInfoKHR(
7811     VulkanStreamGuest* vkStream,
7812     VkWin32SurfaceCreateInfoKHR* forUnmarshaling)
7813 {
7814     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7815     size_t pNext_size;
7816     pNext_size = vkStream->getBe32();
7817     if (pNext_size)
7818     {
7819         uint64_t pNext_placeholder;
7820         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7821         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7822     }
7823     vkStream->read((VkWin32SurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkWin32SurfaceCreateFlagsKHR));
7824     vkStream->read((HINSTANCE*)&forUnmarshaling->hinstance, sizeof(HINSTANCE));
7825     vkStream->read((HWND*)&forUnmarshaling->hwnd, sizeof(HWND));
7826 }
7827 
7828 #endif
7829 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
7830 #endif
7831 #ifdef VK_KHR_multiview
7832 #endif
7833 #ifdef VK_KHR_get_physical_device_properties2
7834 #endif
7835 #ifdef VK_KHR_device_group
7836 #endif
7837 #ifdef VK_KHR_shader_draw_parameters
7838 #endif
7839 #ifdef VK_KHR_maintenance1
7840 #endif
7841 #ifdef VK_KHR_device_group_creation
7842 #endif
7843 #ifdef VK_KHR_external_memory_capabilities
7844 #endif
7845 #ifdef VK_KHR_external_memory
7846 #endif
7847 #ifdef VK_KHR_external_memory_win32
marshal_VkImportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkImportMemoryWin32HandleInfoKHR * forMarshaling)7848 void marshal_VkImportMemoryWin32HandleInfoKHR(
7849     VulkanStreamGuest* vkStream,
7850     const VkImportMemoryWin32HandleInfoKHR* forMarshaling)
7851 {
7852     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7853     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7854     vkStream->putBe32(pNext_size);
7855     if (pNext_size)
7856     {
7857         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7858         marshal_extension_struct(vkStream, forMarshaling->pNext);
7859     }
7860     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7861     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
7862     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
7863 }
7864 
unmarshal_VkImportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkImportMemoryWin32HandleInfoKHR * forUnmarshaling)7865 void unmarshal_VkImportMemoryWin32HandleInfoKHR(
7866     VulkanStreamGuest* vkStream,
7867     VkImportMemoryWin32HandleInfoKHR* forUnmarshaling)
7868 {
7869     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7870     size_t pNext_size;
7871     pNext_size = vkStream->getBe32();
7872     if (pNext_size)
7873     {
7874         uint64_t pNext_placeholder;
7875         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7876         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7877     }
7878     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7879     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
7880     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
7881 }
7882 
marshal_VkExportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkExportMemoryWin32HandleInfoKHR * forMarshaling)7883 void marshal_VkExportMemoryWin32HandleInfoKHR(
7884     VulkanStreamGuest* vkStream,
7885     const VkExportMemoryWin32HandleInfoKHR* forMarshaling)
7886 {
7887     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7888     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7889     vkStream->putBe32(pNext_size);
7890     if (pNext_size)
7891     {
7892         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7893         marshal_extension_struct(vkStream, forMarshaling->pNext);
7894     }
7895     // WARNING PTR CHECK
7896     uint64_t cgen_var_232 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
7897     vkStream->putBe64(cgen_var_232);
7898     if (forMarshaling->pAttributes)
7899     {
7900         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
7901     }
7902     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
7903     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
7904 }
7905 
unmarshal_VkExportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkExportMemoryWin32HandleInfoKHR * forUnmarshaling)7906 void unmarshal_VkExportMemoryWin32HandleInfoKHR(
7907     VulkanStreamGuest* vkStream,
7908     VkExportMemoryWin32HandleInfoKHR* forUnmarshaling)
7909 {
7910     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7911     size_t pNext_size;
7912     pNext_size = vkStream->getBe32();
7913     if (pNext_size)
7914     {
7915         uint64_t pNext_placeholder;
7916         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7917         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7918     }
7919     // WARNING PTR CHECK
7920     const SECURITY_ATTRIBUTES* check_pAttributes;
7921     check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
7922     if (forUnmarshaling->pAttributes)
7923     {
7924         if (!(check_pAttributes))
7925         {
7926             fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
7927         }
7928         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
7929     }
7930     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
7931     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
7932 }
7933 
marshal_VkMemoryWin32HandlePropertiesKHR(VulkanStreamGuest * vkStream,const VkMemoryWin32HandlePropertiesKHR * forMarshaling)7934 void marshal_VkMemoryWin32HandlePropertiesKHR(
7935     VulkanStreamGuest* vkStream,
7936     const VkMemoryWin32HandlePropertiesKHR* forMarshaling)
7937 {
7938     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7939     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7940     vkStream->putBe32(pNext_size);
7941     if (pNext_size)
7942     {
7943         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
7944         marshal_extension_struct(vkStream, forMarshaling->pNext);
7945     }
7946     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
7947 }
7948 
unmarshal_VkMemoryWin32HandlePropertiesKHR(VulkanStreamGuest * vkStream,VkMemoryWin32HandlePropertiesKHR * forUnmarshaling)7949 void unmarshal_VkMemoryWin32HandlePropertiesKHR(
7950     VulkanStreamGuest* vkStream,
7951     VkMemoryWin32HandlePropertiesKHR* forUnmarshaling)
7952 {
7953     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7954     size_t pNext_size;
7955     pNext_size = vkStream->getBe32();
7956     if (pNext_size)
7957     {
7958         uint64_t pNext_placeholder;
7959         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7960         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7961     }
7962     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
7963 }
7964 
marshal_VkMemoryGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkMemoryGetWin32HandleInfoKHR * forMarshaling)7965 void marshal_VkMemoryGetWin32HandleInfoKHR(
7966     VulkanStreamGuest* vkStream,
7967     const VkMemoryGetWin32HandleInfoKHR* forMarshaling)
7968 {
7969     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7970     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7971     vkStream->putBe32(pNext_size);
7972     if (pNext_size)
7973     {
7974         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7975         marshal_extension_struct(vkStream, forMarshaling->pNext);
7976     }
7977     uint64_t cgen_var_234;
7978     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_234, 1);
7979     vkStream->write((uint64_t*)&cgen_var_234, 1 * 8);
7980     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7981 }
7982 
unmarshal_VkMemoryGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkMemoryGetWin32HandleInfoKHR * forUnmarshaling)7983 void unmarshal_VkMemoryGetWin32HandleInfoKHR(
7984     VulkanStreamGuest* vkStream,
7985     VkMemoryGetWin32HandleInfoKHR* forUnmarshaling)
7986 {
7987     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7988     size_t pNext_size;
7989     pNext_size = vkStream->getBe32();
7990     if (pNext_size)
7991     {
7992         uint64_t pNext_placeholder;
7993         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7994         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7995     }
7996     uint64_t cgen_var_235;
7997     vkStream->read((uint64_t*)&cgen_var_235, 1 * 8);
7998     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_235, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
7999     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
8000 }
8001 
8002 #endif
8003 #ifdef VK_KHR_external_memory_fd
marshal_VkImportMemoryFdInfoKHR(VulkanStreamGuest * vkStream,const VkImportMemoryFdInfoKHR * forMarshaling)8004 void marshal_VkImportMemoryFdInfoKHR(
8005     VulkanStreamGuest* vkStream,
8006     const VkImportMemoryFdInfoKHR* forMarshaling)
8007 {
8008     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8009     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8010     vkStream->putBe32(pNext_size);
8011     if (pNext_size)
8012     {
8013         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8014         marshal_extension_struct(vkStream, forMarshaling->pNext);
8015     }
8016     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
8017     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
8018 }
8019 
unmarshal_VkImportMemoryFdInfoKHR(VulkanStreamGuest * vkStream,VkImportMemoryFdInfoKHR * forUnmarshaling)8020 void unmarshal_VkImportMemoryFdInfoKHR(
8021     VulkanStreamGuest* vkStream,
8022     VkImportMemoryFdInfoKHR* forUnmarshaling)
8023 {
8024     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8025     size_t pNext_size;
8026     pNext_size = vkStream->getBe32();
8027     if (pNext_size)
8028     {
8029         uint64_t pNext_placeholder;
8030         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8031         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8032     }
8033     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
8034     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
8035 }
8036 
marshal_VkMemoryFdPropertiesKHR(VulkanStreamGuest * vkStream,const VkMemoryFdPropertiesKHR * forMarshaling)8037 void marshal_VkMemoryFdPropertiesKHR(
8038     VulkanStreamGuest* vkStream,
8039     const VkMemoryFdPropertiesKHR* forMarshaling)
8040 {
8041     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8042     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8043     vkStream->putBe32(pNext_size);
8044     if (pNext_size)
8045     {
8046         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
8047         marshal_extension_struct(vkStream, forMarshaling->pNext);
8048     }
8049     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
8050 }
8051 
unmarshal_VkMemoryFdPropertiesKHR(VulkanStreamGuest * vkStream,VkMemoryFdPropertiesKHR * forUnmarshaling)8052 void unmarshal_VkMemoryFdPropertiesKHR(
8053     VulkanStreamGuest* vkStream,
8054     VkMemoryFdPropertiesKHR* forUnmarshaling)
8055 {
8056     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8057     size_t pNext_size;
8058     pNext_size = vkStream->getBe32();
8059     if (pNext_size)
8060     {
8061         uint64_t pNext_placeholder;
8062         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8063         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8064     }
8065     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
8066 }
8067 
marshal_VkMemoryGetFdInfoKHR(VulkanStreamGuest * vkStream,const VkMemoryGetFdInfoKHR * forMarshaling)8068 void marshal_VkMemoryGetFdInfoKHR(
8069     VulkanStreamGuest* vkStream,
8070     const VkMemoryGetFdInfoKHR* forMarshaling)
8071 {
8072     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8073     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8074     vkStream->putBe32(pNext_size);
8075     if (pNext_size)
8076     {
8077         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8078         marshal_extension_struct(vkStream, forMarshaling->pNext);
8079     }
8080     uint64_t cgen_var_236;
8081     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_236, 1);
8082     vkStream->write((uint64_t*)&cgen_var_236, 1 * 8);
8083     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
8084 }
8085 
unmarshal_VkMemoryGetFdInfoKHR(VulkanStreamGuest * vkStream,VkMemoryGetFdInfoKHR * forUnmarshaling)8086 void unmarshal_VkMemoryGetFdInfoKHR(
8087     VulkanStreamGuest* vkStream,
8088     VkMemoryGetFdInfoKHR* forUnmarshaling)
8089 {
8090     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8091     size_t pNext_size;
8092     pNext_size = vkStream->getBe32();
8093     if (pNext_size)
8094     {
8095         uint64_t pNext_placeholder;
8096         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8097         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8098     }
8099     uint64_t cgen_var_237;
8100     vkStream->read((uint64_t*)&cgen_var_237, 1 * 8);
8101     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_237, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
8102     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
8103 }
8104 
8105 #endif
8106 #ifdef VK_KHR_win32_keyed_mutex
marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(VulkanStreamGuest * vkStream,const VkWin32KeyedMutexAcquireReleaseInfoKHR * forMarshaling)8107 void marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
8108     VulkanStreamGuest* vkStream,
8109     const VkWin32KeyedMutexAcquireReleaseInfoKHR* forMarshaling)
8110 {
8111     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8112     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8113     vkStream->putBe32(pNext_size);
8114     if (pNext_size)
8115     {
8116         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8117         marshal_extension_struct(vkStream, forMarshaling->pNext);
8118     }
8119     vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
8120     if (forMarshaling->acquireCount)
8121     {
8122         uint64_t* cgen_var_238;
8123         vkStream->alloc((void**)&cgen_var_238, forMarshaling->acquireCount * 8);
8124         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_238, forMarshaling->acquireCount);
8125         vkStream->write((uint64_t*)cgen_var_238, forMarshaling->acquireCount * 8);
8126     }
8127     vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys, forMarshaling->acquireCount * sizeof(const uint64_t));
8128     vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeouts, forMarshaling->acquireCount * sizeof(const uint32_t));
8129     vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
8130     if (forMarshaling->releaseCount)
8131     {
8132         uint64_t* cgen_var_239;
8133         vkStream->alloc((void**)&cgen_var_239, forMarshaling->releaseCount * 8);
8134         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_239, forMarshaling->releaseCount);
8135         vkStream->write((uint64_t*)cgen_var_239, forMarshaling->releaseCount * 8);
8136     }
8137     vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys, forMarshaling->releaseCount * sizeof(const uint64_t));
8138 }
8139 
unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(VulkanStreamGuest * vkStream,VkWin32KeyedMutexAcquireReleaseInfoKHR * forUnmarshaling)8140 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
8141     VulkanStreamGuest* vkStream,
8142     VkWin32KeyedMutexAcquireReleaseInfoKHR* forUnmarshaling)
8143 {
8144     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8145     size_t pNext_size;
8146     pNext_size = vkStream->getBe32();
8147     if (pNext_size)
8148     {
8149         uint64_t pNext_placeholder;
8150         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8151         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8152     }
8153     vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
8154     if (forUnmarshaling->acquireCount)
8155     {
8156         uint64_t* cgen_var_240;
8157         vkStream->alloc((void**)&cgen_var_240, forUnmarshaling->acquireCount * 8);
8158         vkStream->read((uint64_t*)cgen_var_240, forUnmarshaling->acquireCount * 8);
8159         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_240, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
8160     }
8161     vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
8162     vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeouts, forUnmarshaling->acquireCount * sizeof(const uint32_t));
8163     vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
8164     if (forUnmarshaling->releaseCount)
8165     {
8166         uint64_t* cgen_var_241;
8167         vkStream->alloc((void**)&cgen_var_241, forUnmarshaling->releaseCount * 8);
8168         vkStream->read((uint64_t*)cgen_var_241, forUnmarshaling->releaseCount * 8);
8169         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_241, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
8170     }
8171     vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
8172 }
8173 
8174 #endif
8175 #ifdef VK_KHR_external_semaphore_capabilities
8176 #endif
8177 #ifdef VK_KHR_external_semaphore
8178 #endif
8179 #ifdef VK_KHR_external_semaphore_win32
marshal_VkImportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkImportSemaphoreWin32HandleInfoKHR * forMarshaling)8180 void marshal_VkImportSemaphoreWin32HandleInfoKHR(
8181     VulkanStreamGuest* vkStream,
8182     const VkImportSemaphoreWin32HandleInfoKHR* forMarshaling)
8183 {
8184     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8185     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8186     vkStream->putBe32(pNext_size);
8187     if (pNext_size)
8188     {
8189         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8190         marshal_extension_struct(vkStream, forMarshaling->pNext);
8191     }
8192     uint64_t cgen_var_242;
8193     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_242, 1);
8194     vkStream->write((uint64_t*)&cgen_var_242, 1 * 8);
8195     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
8196     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8197     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
8198     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
8199 }
8200 
unmarshal_VkImportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkImportSemaphoreWin32HandleInfoKHR * forUnmarshaling)8201 void unmarshal_VkImportSemaphoreWin32HandleInfoKHR(
8202     VulkanStreamGuest* vkStream,
8203     VkImportSemaphoreWin32HandleInfoKHR* forUnmarshaling)
8204 {
8205     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8206     size_t pNext_size;
8207     pNext_size = vkStream->getBe32();
8208     if (pNext_size)
8209     {
8210         uint64_t pNext_placeholder;
8211         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8212         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8213     }
8214     uint64_t cgen_var_243;
8215     vkStream->read((uint64_t*)&cgen_var_243, 1 * 8);
8216     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_243, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8217     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreImportFlags));
8218     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8219     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
8220     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
8221 }
8222 
marshal_VkExportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkExportSemaphoreWin32HandleInfoKHR * forMarshaling)8223 void marshal_VkExportSemaphoreWin32HandleInfoKHR(
8224     VulkanStreamGuest* vkStream,
8225     const VkExportSemaphoreWin32HandleInfoKHR* forMarshaling)
8226 {
8227     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8228     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8229     vkStream->putBe32(pNext_size);
8230     if (pNext_size)
8231     {
8232         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8233         marshal_extension_struct(vkStream, forMarshaling->pNext);
8234     }
8235     // WARNING PTR CHECK
8236     uint64_t cgen_var_244 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
8237     vkStream->putBe64(cgen_var_244);
8238     if (forMarshaling->pAttributes)
8239     {
8240         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
8241     }
8242     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
8243     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
8244 }
8245 
unmarshal_VkExportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkExportSemaphoreWin32HandleInfoKHR * forUnmarshaling)8246 void unmarshal_VkExportSemaphoreWin32HandleInfoKHR(
8247     VulkanStreamGuest* vkStream,
8248     VkExportSemaphoreWin32HandleInfoKHR* forUnmarshaling)
8249 {
8250     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8251     size_t pNext_size;
8252     pNext_size = vkStream->getBe32();
8253     if (pNext_size)
8254     {
8255         uint64_t pNext_placeholder;
8256         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8257         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8258     }
8259     // WARNING PTR CHECK
8260     const SECURITY_ATTRIBUTES* check_pAttributes;
8261     check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
8262     if (forUnmarshaling->pAttributes)
8263     {
8264         if (!(check_pAttributes))
8265         {
8266             fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
8267         }
8268         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
8269     }
8270     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
8271     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
8272 }
8273 
marshal_VkD3D12FenceSubmitInfoKHR(VulkanStreamGuest * vkStream,const VkD3D12FenceSubmitInfoKHR * forMarshaling)8274 void marshal_VkD3D12FenceSubmitInfoKHR(
8275     VulkanStreamGuest* vkStream,
8276     const VkD3D12FenceSubmitInfoKHR* forMarshaling)
8277 {
8278     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8279     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8280     vkStream->putBe32(pNext_size);
8281     if (pNext_size)
8282     {
8283         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8284         marshal_extension_struct(vkStream, forMarshaling->pNext);
8285     }
8286     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
8287     // WARNING PTR CHECK
8288     uint64_t cgen_var_246 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
8289     vkStream->putBe64(cgen_var_246);
8290     if (forMarshaling->pWaitSemaphoreValues)
8291     {
8292         vkStream->write((const uint64_t*)forMarshaling->pWaitSemaphoreValues, forMarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
8293     }
8294     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
8295     // WARNING PTR CHECK
8296     uint64_t cgen_var_247 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
8297     vkStream->putBe64(cgen_var_247);
8298     if (forMarshaling->pSignalSemaphoreValues)
8299     {
8300         vkStream->write((const uint64_t*)forMarshaling->pSignalSemaphoreValues, forMarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
8301     }
8302 }
8303 
unmarshal_VkD3D12FenceSubmitInfoKHR(VulkanStreamGuest * vkStream,VkD3D12FenceSubmitInfoKHR * forUnmarshaling)8304 void unmarshal_VkD3D12FenceSubmitInfoKHR(
8305     VulkanStreamGuest* vkStream,
8306     VkD3D12FenceSubmitInfoKHR* forUnmarshaling)
8307 {
8308     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8309     size_t pNext_size;
8310     pNext_size = vkStream->getBe32();
8311     if (pNext_size)
8312     {
8313         uint64_t pNext_placeholder;
8314         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8315         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8316     }
8317     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
8318     // WARNING PTR CHECK
8319     const uint64_t* check_pWaitSemaphoreValues;
8320     check_pWaitSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
8321     if (forUnmarshaling->pWaitSemaphoreValues)
8322     {
8323         if (!(check_pWaitSemaphoreValues))
8324         {
8325             fprintf(stderr, "fatal: forUnmarshaling->pWaitSemaphoreValues inconsistent between guest and host\n");
8326         }
8327         vkStream->read((uint64_t*)forUnmarshaling->pWaitSemaphoreValues, forUnmarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
8328     }
8329     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
8330     // WARNING PTR CHECK
8331     const uint64_t* check_pSignalSemaphoreValues;
8332     check_pSignalSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
8333     if (forUnmarshaling->pSignalSemaphoreValues)
8334     {
8335         if (!(check_pSignalSemaphoreValues))
8336         {
8337             fprintf(stderr, "fatal: forUnmarshaling->pSignalSemaphoreValues inconsistent between guest and host\n");
8338         }
8339         vkStream->read((uint64_t*)forUnmarshaling->pSignalSemaphoreValues, forUnmarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
8340     }
8341 }
8342 
marshal_VkSemaphoreGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkSemaphoreGetWin32HandleInfoKHR * forMarshaling)8343 void marshal_VkSemaphoreGetWin32HandleInfoKHR(
8344     VulkanStreamGuest* vkStream,
8345     const VkSemaphoreGetWin32HandleInfoKHR* forMarshaling)
8346 {
8347     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8348     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8349     vkStream->putBe32(pNext_size);
8350     if (pNext_size)
8351     {
8352         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8353         marshal_extension_struct(vkStream, forMarshaling->pNext);
8354     }
8355     uint64_t cgen_var_250;
8356     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_250, 1);
8357     vkStream->write((uint64_t*)&cgen_var_250, 1 * 8);
8358     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8359 }
8360 
unmarshal_VkSemaphoreGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkSemaphoreGetWin32HandleInfoKHR * forUnmarshaling)8361 void unmarshal_VkSemaphoreGetWin32HandleInfoKHR(
8362     VulkanStreamGuest* vkStream,
8363     VkSemaphoreGetWin32HandleInfoKHR* forUnmarshaling)
8364 {
8365     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8366     size_t pNext_size;
8367     pNext_size = vkStream->getBe32();
8368     if (pNext_size)
8369     {
8370         uint64_t pNext_placeholder;
8371         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8372         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8373     }
8374     uint64_t cgen_var_251;
8375     vkStream->read((uint64_t*)&cgen_var_251, 1 * 8);
8376     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_251, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8377     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8378 }
8379 
8380 #endif
8381 #ifdef VK_KHR_external_semaphore_fd
marshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,const VkImportSemaphoreFdInfoKHR * forMarshaling)8382 void marshal_VkImportSemaphoreFdInfoKHR(
8383     VulkanStreamGuest* vkStream,
8384     const VkImportSemaphoreFdInfoKHR* forMarshaling)
8385 {
8386     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8387     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8388     vkStream->putBe32(pNext_size);
8389     if (pNext_size)
8390     {
8391         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8392         marshal_extension_struct(vkStream, forMarshaling->pNext);
8393     }
8394     uint64_t cgen_var_252;
8395     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_252, 1);
8396     vkStream->write((uint64_t*)&cgen_var_252, 1 * 8);
8397     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
8398     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8399     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
8400 }
8401 
unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,VkImportSemaphoreFdInfoKHR * forUnmarshaling)8402 void unmarshal_VkImportSemaphoreFdInfoKHR(
8403     VulkanStreamGuest* vkStream,
8404     VkImportSemaphoreFdInfoKHR* forUnmarshaling)
8405 {
8406     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8407     size_t pNext_size;
8408     pNext_size = vkStream->getBe32();
8409     if (pNext_size)
8410     {
8411         uint64_t pNext_placeholder;
8412         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8413         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8414     }
8415     uint64_t cgen_var_253;
8416     vkStream->read((uint64_t*)&cgen_var_253, 1 * 8);
8417     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_253, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8418     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreImportFlags));
8419     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8420     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
8421 }
8422 
marshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,const VkSemaphoreGetFdInfoKHR * forMarshaling)8423 void marshal_VkSemaphoreGetFdInfoKHR(
8424     VulkanStreamGuest* vkStream,
8425     const VkSemaphoreGetFdInfoKHR* forMarshaling)
8426 {
8427     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8428     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8429     vkStream->putBe32(pNext_size);
8430     if (pNext_size)
8431     {
8432         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8433         marshal_extension_struct(vkStream, forMarshaling->pNext);
8434     }
8435     uint64_t cgen_var_254;
8436     vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_254, 1);
8437     vkStream->write((uint64_t*)&cgen_var_254, 1 * 8);
8438     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8439 }
8440 
unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,VkSemaphoreGetFdInfoKHR * forUnmarshaling)8441 void unmarshal_VkSemaphoreGetFdInfoKHR(
8442     VulkanStreamGuest* vkStream,
8443     VkSemaphoreGetFdInfoKHR* forUnmarshaling)
8444 {
8445     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8446     size_t pNext_size;
8447     pNext_size = vkStream->getBe32();
8448     if (pNext_size)
8449     {
8450         uint64_t pNext_placeholder;
8451         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8452         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8453     }
8454     uint64_t cgen_var_255;
8455     vkStream->read((uint64_t*)&cgen_var_255, 1 * 8);
8456     vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_255, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8457     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8458 }
8459 
8460 #endif
8461 #ifdef VK_KHR_push_descriptor
marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(VulkanStreamGuest * vkStream,const VkPhysicalDevicePushDescriptorPropertiesKHR * forMarshaling)8462 void marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
8463     VulkanStreamGuest* vkStream,
8464     const VkPhysicalDevicePushDescriptorPropertiesKHR* forMarshaling)
8465 {
8466     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8467     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8468     vkStream->putBe32(pNext_size);
8469     if (pNext_size)
8470     {
8471         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
8472         marshal_extension_struct(vkStream, forMarshaling->pNext);
8473     }
8474     vkStream->write((uint32_t*)&forMarshaling->maxPushDescriptors, sizeof(uint32_t));
8475 }
8476 
unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(VulkanStreamGuest * vkStream,VkPhysicalDevicePushDescriptorPropertiesKHR * forUnmarshaling)8477 void unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
8478     VulkanStreamGuest* vkStream,
8479     VkPhysicalDevicePushDescriptorPropertiesKHR* forUnmarshaling)
8480 {
8481     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8482     size_t pNext_size;
8483     pNext_size = vkStream->getBe32();
8484     if (pNext_size)
8485     {
8486         uint64_t pNext_placeholder;
8487         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8488         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8489     }
8490     vkStream->read((uint32_t*)&forUnmarshaling->maxPushDescriptors, sizeof(uint32_t));
8491 }
8492 
8493 #endif
8494 #ifdef VK_KHR_16bit_storage
8495 #endif
8496 #ifdef VK_KHR_incremental_present
marshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,const VkRectLayerKHR * forMarshaling)8497 void marshal_VkRectLayerKHR(
8498     VulkanStreamGuest* vkStream,
8499     const VkRectLayerKHR* forMarshaling)
8500 {
8501     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
8502     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent));
8503     vkStream->write((uint32_t*)&forMarshaling->layer, sizeof(uint32_t));
8504 }
8505 
unmarshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,VkRectLayerKHR * forUnmarshaling)8506 void unmarshal_VkRectLayerKHR(
8507     VulkanStreamGuest* vkStream,
8508     VkRectLayerKHR* forUnmarshaling)
8509 {
8510     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
8511     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->extent));
8512     vkStream->read((uint32_t*)&forUnmarshaling->layer, sizeof(uint32_t));
8513 }
8514 
marshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,const VkPresentRegionKHR * forMarshaling)8515 void marshal_VkPresentRegionKHR(
8516     VulkanStreamGuest* vkStream,
8517     const VkPresentRegionKHR* forMarshaling)
8518 {
8519     vkStream->write((uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
8520     // WARNING PTR CHECK
8521     uint64_t cgen_var_256 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
8522     vkStream->putBe64(cgen_var_256);
8523     if (forMarshaling->pRectangles)
8524     {
8525         for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i)
8526         {
8527             marshal_VkRectLayerKHR(vkStream, (const VkRectLayerKHR*)(forMarshaling->pRectangles + i));
8528         }
8529     }
8530 }
8531 
unmarshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,VkPresentRegionKHR * forUnmarshaling)8532 void unmarshal_VkPresentRegionKHR(
8533     VulkanStreamGuest* vkStream,
8534     VkPresentRegionKHR* forUnmarshaling)
8535 {
8536     vkStream->read((uint32_t*)&forUnmarshaling->rectangleCount, sizeof(uint32_t));
8537     // WARNING PTR CHECK
8538     const VkRectLayerKHR* check_pRectangles;
8539     check_pRectangles = (const VkRectLayerKHR*)(uintptr_t)vkStream->getBe64();
8540     if (forUnmarshaling->pRectangles)
8541     {
8542         if (!(check_pRectangles))
8543         {
8544             fprintf(stderr, "fatal: forUnmarshaling->pRectangles inconsistent between guest and host\n");
8545         }
8546         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i)
8547         {
8548             unmarshal_VkRectLayerKHR(vkStream, (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i));
8549         }
8550     }
8551 }
8552 
marshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,const VkPresentRegionsKHR * forMarshaling)8553 void marshal_VkPresentRegionsKHR(
8554     VulkanStreamGuest* vkStream,
8555     const VkPresentRegionsKHR* forMarshaling)
8556 {
8557     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8558     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8559     vkStream->putBe32(pNext_size);
8560     if (pNext_size)
8561     {
8562         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8563         marshal_extension_struct(vkStream, forMarshaling->pNext);
8564     }
8565     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
8566     // WARNING PTR CHECK
8567     uint64_t cgen_var_258 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
8568     vkStream->putBe64(cgen_var_258);
8569     if (forMarshaling->pRegions)
8570     {
8571         for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
8572         {
8573             marshal_VkPresentRegionKHR(vkStream, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i));
8574         }
8575     }
8576 }
8577 
unmarshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,VkPresentRegionsKHR * forUnmarshaling)8578 void unmarshal_VkPresentRegionsKHR(
8579     VulkanStreamGuest* vkStream,
8580     VkPresentRegionsKHR* forUnmarshaling)
8581 {
8582     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8583     size_t pNext_size;
8584     pNext_size = vkStream->getBe32();
8585     if (pNext_size)
8586     {
8587         uint64_t pNext_placeholder;
8588         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8589         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8590     }
8591     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
8592     // WARNING PTR CHECK
8593     const VkPresentRegionKHR* check_pRegions;
8594     check_pRegions = (const VkPresentRegionKHR*)(uintptr_t)vkStream->getBe64();
8595     if (forUnmarshaling->pRegions)
8596     {
8597         if (!(check_pRegions))
8598         {
8599             fprintf(stderr, "fatal: forUnmarshaling->pRegions inconsistent between guest and host\n");
8600         }
8601         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
8602         {
8603             unmarshal_VkPresentRegionKHR(vkStream, (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i));
8604         }
8605     }
8606 }
8607 
8608 #endif
8609 #ifdef VK_KHR_descriptor_update_template
8610 #endif
8611 #ifdef VK_KHR_create_renderpass2
marshal_VkAttachmentDescription2KHR(VulkanStreamGuest * vkStream,const VkAttachmentDescription2KHR * forMarshaling)8612 void marshal_VkAttachmentDescription2KHR(
8613     VulkanStreamGuest* vkStream,
8614     const VkAttachmentDescription2KHR* forMarshaling)
8615 {
8616     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8617     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8618     vkStream->putBe32(pNext_size);
8619     if (pNext_size)
8620     {
8621         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8622         marshal_extension_struct(vkStream, forMarshaling->pNext);
8623     }
8624     vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
8625     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
8626     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
8627     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
8628     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
8629     vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
8630     vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
8631     vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
8632     vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
8633 }
8634 
unmarshal_VkAttachmentDescription2KHR(VulkanStreamGuest * vkStream,VkAttachmentDescription2KHR * forUnmarshaling)8635 void unmarshal_VkAttachmentDescription2KHR(
8636     VulkanStreamGuest* vkStream,
8637     VkAttachmentDescription2KHR* forUnmarshaling)
8638 {
8639     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8640     size_t pNext_size;
8641     pNext_size = vkStream->getBe32();
8642     if (pNext_size)
8643     {
8644         uint64_t pNext_placeholder;
8645         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8646         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8647     }
8648     vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
8649     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
8650     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
8651     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
8652     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
8653     vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
8654     vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
8655     vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
8656     vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
8657 }
8658 
marshal_VkAttachmentReference2KHR(VulkanStreamGuest * vkStream,const VkAttachmentReference2KHR * forMarshaling)8659 void marshal_VkAttachmentReference2KHR(
8660     VulkanStreamGuest* vkStream,
8661     const VkAttachmentReference2KHR* forMarshaling)
8662 {
8663     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8664     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8665     vkStream->putBe32(pNext_size);
8666     if (pNext_size)
8667     {
8668         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8669         marshal_extension_struct(vkStream, forMarshaling->pNext);
8670     }
8671     vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
8672     vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
8673     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
8674 }
8675 
unmarshal_VkAttachmentReference2KHR(VulkanStreamGuest * vkStream,VkAttachmentReference2KHR * forUnmarshaling)8676 void unmarshal_VkAttachmentReference2KHR(
8677     VulkanStreamGuest* vkStream,
8678     VkAttachmentReference2KHR* forUnmarshaling)
8679 {
8680     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8681     size_t pNext_size;
8682     pNext_size = vkStream->getBe32();
8683     if (pNext_size)
8684     {
8685         uint64_t pNext_placeholder;
8686         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8687         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8688     }
8689     vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
8690     vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
8691     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
8692 }
8693 
marshal_VkSubpassDescription2KHR(VulkanStreamGuest * vkStream,const VkSubpassDescription2KHR * forMarshaling)8694 void marshal_VkSubpassDescription2KHR(
8695     VulkanStreamGuest* vkStream,
8696     const VkSubpassDescription2KHR* forMarshaling)
8697 {
8698     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8699     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8700     vkStream->putBe32(pNext_size);
8701     if (pNext_size)
8702     {
8703         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8704         marshal_extension_struct(vkStream, forMarshaling->pNext);
8705     }
8706     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
8707     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
8708     vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
8709     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
8710     for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
8711     {
8712         marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pInputAttachments + i));
8713     }
8714     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
8715     for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
8716     {
8717         marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pColorAttachments + i));
8718     }
8719     // WARNING PTR CHECK
8720     uint64_t cgen_var_260 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
8721     vkStream->putBe64(cgen_var_260);
8722     if (forMarshaling->pResolveAttachments)
8723     {
8724         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
8725         {
8726             marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pResolveAttachments + i));
8727         }
8728     }
8729     // WARNING PTR CHECK
8730     uint64_t cgen_var_261 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
8731     vkStream->putBe64(cgen_var_261);
8732     if (forMarshaling->pDepthStencilAttachment)
8733     {
8734         marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pDepthStencilAttachment));
8735     }
8736     vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
8737     vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
8738 }
8739 
unmarshal_VkSubpassDescription2KHR(VulkanStreamGuest * vkStream,VkSubpassDescription2KHR * forUnmarshaling)8740 void unmarshal_VkSubpassDescription2KHR(
8741     VulkanStreamGuest* vkStream,
8742     VkSubpassDescription2KHR* forUnmarshaling)
8743 {
8744     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8745     size_t pNext_size;
8746     pNext_size = vkStream->getBe32();
8747     if (pNext_size)
8748     {
8749         uint64_t pNext_placeholder;
8750         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8751         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8752     }
8753     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
8754     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
8755     vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
8756     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
8757     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
8758     {
8759         unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pInputAttachments + i));
8760     }
8761     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
8762     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
8763     {
8764         unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pColorAttachments + i));
8765     }
8766     // WARNING PTR CHECK
8767     const VkAttachmentReference2KHR* check_pResolveAttachments;
8768     check_pResolveAttachments = (const VkAttachmentReference2KHR*)(uintptr_t)vkStream->getBe64();
8769     if (forUnmarshaling->pResolveAttachments)
8770     {
8771         if (!(check_pResolveAttachments))
8772         {
8773             fprintf(stderr, "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and host\n");
8774         }
8775         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
8776         {
8777             unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pResolveAttachments + i));
8778         }
8779     }
8780     // WARNING PTR CHECK
8781     const VkAttachmentReference2KHR* check_pDepthStencilAttachment;
8782     check_pDepthStencilAttachment = (const VkAttachmentReference2KHR*)(uintptr_t)vkStream->getBe64();
8783     if (forUnmarshaling->pDepthStencilAttachment)
8784     {
8785         if (!(check_pDepthStencilAttachment))
8786         {
8787             fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest and host\n");
8788         }
8789         unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pDepthStencilAttachment));
8790     }
8791     vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
8792     vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments, forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
8793 }
8794 
marshal_VkSubpassDependency2KHR(VulkanStreamGuest * vkStream,const VkSubpassDependency2KHR * forMarshaling)8795 void marshal_VkSubpassDependency2KHR(
8796     VulkanStreamGuest* vkStream,
8797     const VkSubpassDependency2KHR* forMarshaling)
8798 {
8799     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8800     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8801     vkStream->putBe32(pNext_size);
8802     if (pNext_size)
8803     {
8804         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8805         marshal_extension_struct(vkStream, forMarshaling->pNext);
8806     }
8807     vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
8808     vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
8809     vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
8810     vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
8811     vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
8812     vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
8813     vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
8814     vkStream->write((int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
8815 }
8816 
unmarshal_VkSubpassDependency2KHR(VulkanStreamGuest * vkStream,VkSubpassDependency2KHR * forUnmarshaling)8817 void unmarshal_VkSubpassDependency2KHR(
8818     VulkanStreamGuest* vkStream,
8819     VkSubpassDependency2KHR* forUnmarshaling)
8820 {
8821     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8822     size_t pNext_size;
8823     pNext_size = vkStream->getBe32();
8824     if (pNext_size)
8825     {
8826         uint64_t pNext_placeholder;
8827         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8828         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8829     }
8830     vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
8831     vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
8832     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
8833     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
8834     vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
8835     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
8836     vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, sizeof(VkDependencyFlags));
8837     vkStream->read((int32_t*)&forUnmarshaling->viewOffset, sizeof(int32_t));
8838 }
8839 
marshal_VkRenderPassCreateInfo2KHR(VulkanStreamGuest * vkStream,const VkRenderPassCreateInfo2KHR * forMarshaling)8840 void marshal_VkRenderPassCreateInfo2KHR(
8841     VulkanStreamGuest* vkStream,
8842     const VkRenderPassCreateInfo2KHR* forMarshaling)
8843 {
8844     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8845     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8846     vkStream->putBe32(pNext_size);
8847     if (pNext_size)
8848     {
8849         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8850         marshal_extension_struct(vkStream, forMarshaling->pNext);
8851     }
8852     vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
8853     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
8854     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
8855     {
8856         marshal_VkAttachmentDescription2KHR(vkStream, (const VkAttachmentDescription2KHR*)(forMarshaling->pAttachments + i));
8857     }
8858     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
8859     for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
8860     {
8861         marshal_VkSubpassDescription2KHR(vkStream, (const VkSubpassDescription2KHR*)(forMarshaling->pSubpasses + i));
8862     }
8863     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
8864     for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
8865     {
8866         marshal_VkSubpassDependency2KHR(vkStream, (const VkSubpassDependency2KHR*)(forMarshaling->pDependencies + i));
8867     }
8868     vkStream->write((uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
8869     vkStream->write((const uint32_t*)forMarshaling->pCorrelatedViewMasks, forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
8870 }
8871 
unmarshal_VkRenderPassCreateInfo2KHR(VulkanStreamGuest * vkStream,VkRenderPassCreateInfo2KHR * forUnmarshaling)8872 void unmarshal_VkRenderPassCreateInfo2KHR(
8873     VulkanStreamGuest* vkStream,
8874     VkRenderPassCreateInfo2KHR* forUnmarshaling)
8875 {
8876     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8877     size_t pNext_size;
8878     pNext_size = vkStream->getBe32();
8879     if (pNext_size)
8880     {
8881         uint64_t pNext_placeholder;
8882         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8883         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8884     }
8885     vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags, sizeof(VkRenderPassCreateFlags));
8886     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
8887     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
8888     {
8889         unmarshal_VkAttachmentDescription2KHR(vkStream, (VkAttachmentDescription2KHR*)(forUnmarshaling->pAttachments + i));
8890     }
8891     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
8892     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
8893     {
8894         unmarshal_VkSubpassDescription2KHR(vkStream, (VkSubpassDescription2KHR*)(forUnmarshaling->pSubpasses + i));
8895     }
8896     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
8897     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
8898     {
8899         unmarshal_VkSubpassDependency2KHR(vkStream, (VkSubpassDependency2KHR*)(forUnmarshaling->pDependencies + i));
8900     }
8901     vkStream->read((uint32_t*)&forUnmarshaling->correlatedViewMaskCount, sizeof(uint32_t));
8902     vkStream->read((uint32_t*)forUnmarshaling->pCorrelatedViewMasks, forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
8903 }
8904 
marshal_VkSubpassBeginInfoKHR(VulkanStreamGuest * vkStream,const VkSubpassBeginInfoKHR * forMarshaling)8905 void marshal_VkSubpassBeginInfoKHR(
8906     VulkanStreamGuest* vkStream,
8907     const VkSubpassBeginInfoKHR* forMarshaling)
8908 {
8909     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8910     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8911     vkStream->putBe32(pNext_size);
8912     if (pNext_size)
8913     {
8914         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8915         marshal_extension_struct(vkStream, forMarshaling->pNext);
8916     }
8917     vkStream->write((VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
8918 }
8919 
unmarshal_VkSubpassBeginInfoKHR(VulkanStreamGuest * vkStream,VkSubpassBeginInfoKHR * forUnmarshaling)8920 void unmarshal_VkSubpassBeginInfoKHR(
8921     VulkanStreamGuest* vkStream,
8922     VkSubpassBeginInfoKHR* forUnmarshaling)
8923 {
8924     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8925     size_t pNext_size;
8926     pNext_size = vkStream->getBe32();
8927     if (pNext_size)
8928     {
8929         uint64_t pNext_placeholder;
8930         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8931         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8932     }
8933     vkStream->read((VkSubpassContents*)&forUnmarshaling->contents, sizeof(VkSubpassContents));
8934 }
8935 
marshal_VkSubpassEndInfoKHR(VulkanStreamGuest * vkStream,const VkSubpassEndInfoKHR * forMarshaling)8936 void marshal_VkSubpassEndInfoKHR(
8937     VulkanStreamGuest* vkStream,
8938     const VkSubpassEndInfoKHR* forMarshaling)
8939 {
8940     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8941     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8942     vkStream->putBe32(pNext_size);
8943     if (pNext_size)
8944     {
8945         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8946         marshal_extension_struct(vkStream, forMarshaling->pNext);
8947     }
8948 }
8949 
unmarshal_VkSubpassEndInfoKHR(VulkanStreamGuest * vkStream,VkSubpassEndInfoKHR * forUnmarshaling)8950 void unmarshal_VkSubpassEndInfoKHR(
8951     VulkanStreamGuest* vkStream,
8952     VkSubpassEndInfoKHR* forUnmarshaling)
8953 {
8954     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8955     size_t pNext_size;
8956     pNext_size = vkStream->getBe32();
8957     if (pNext_size)
8958     {
8959         uint64_t pNext_placeholder;
8960         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8961         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8962     }
8963 }
8964 
8965 #endif
8966 #ifdef VK_KHR_shared_presentable_image
marshal_VkSharedPresentSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkSharedPresentSurfaceCapabilitiesKHR * forMarshaling)8967 void marshal_VkSharedPresentSurfaceCapabilitiesKHR(
8968     VulkanStreamGuest* vkStream,
8969     const VkSharedPresentSurfaceCapabilitiesKHR* forMarshaling)
8970 {
8971     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8972     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8973     vkStream->putBe32(pNext_size);
8974     if (pNext_size)
8975     {
8976         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
8977         marshal_extension_struct(vkStream, forMarshaling->pNext);
8978     }
8979     vkStream->write((VkImageUsageFlags*)&forMarshaling->sharedPresentSupportedUsageFlags, sizeof(VkImageUsageFlags));
8980 }
8981 
unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,VkSharedPresentSurfaceCapabilitiesKHR * forUnmarshaling)8982 void unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
8983     VulkanStreamGuest* vkStream,
8984     VkSharedPresentSurfaceCapabilitiesKHR* forUnmarshaling)
8985 {
8986     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8987     size_t pNext_size;
8988     pNext_size = vkStream->getBe32();
8989     if (pNext_size)
8990     {
8991         uint64_t pNext_placeholder;
8992         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8993         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8994     }
8995     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->sharedPresentSupportedUsageFlags, sizeof(VkImageUsageFlags));
8996 }
8997 
8998 #endif
8999 #ifdef VK_KHR_external_fence_capabilities
9000 #endif
9001 #ifdef VK_KHR_external_fence
9002 #endif
9003 #ifdef VK_KHR_external_fence_win32
marshal_VkImportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkImportFenceWin32HandleInfoKHR * forMarshaling)9004 void marshal_VkImportFenceWin32HandleInfoKHR(
9005     VulkanStreamGuest* vkStream,
9006     const VkImportFenceWin32HandleInfoKHR* forMarshaling)
9007 {
9008     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9009     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9010     vkStream->putBe32(pNext_size);
9011     if (pNext_size)
9012     {
9013         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9014         marshal_extension_struct(vkStream, forMarshaling->pNext);
9015     }
9016     uint64_t cgen_var_264;
9017     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_264, 1);
9018     vkStream->write((uint64_t*)&cgen_var_264, 1 * 8);
9019     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
9020     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9021     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
9022     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
9023 }
9024 
unmarshal_VkImportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkImportFenceWin32HandleInfoKHR * forUnmarshaling)9025 void unmarshal_VkImportFenceWin32HandleInfoKHR(
9026     VulkanStreamGuest* vkStream,
9027     VkImportFenceWin32HandleInfoKHR* forUnmarshaling)
9028 {
9029     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9030     size_t pNext_size;
9031     pNext_size = vkStream->getBe32();
9032     if (pNext_size)
9033     {
9034         uint64_t pNext_placeholder;
9035         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9036         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9037     }
9038     uint64_t cgen_var_265;
9039     vkStream->read((uint64_t*)&cgen_var_265, 1 * 8);
9040     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_265, (VkFence*)&forUnmarshaling->fence, 1);
9041     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
9042     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9043     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
9044     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
9045 }
9046 
marshal_VkExportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkExportFenceWin32HandleInfoKHR * forMarshaling)9047 void marshal_VkExportFenceWin32HandleInfoKHR(
9048     VulkanStreamGuest* vkStream,
9049     const VkExportFenceWin32HandleInfoKHR* forMarshaling)
9050 {
9051     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9052     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9053     vkStream->putBe32(pNext_size);
9054     if (pNext_size)
9055     {
9056         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9057         marshal_extension_struct(vkStream, forMarshaling->pNext);
9058     }
9059     // WARNING PTR CHECK
9060     uint64_t cgen_var_266 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
9061     vkStream->putBe64(cgen_var_266);
9062     if (forMarshaling->pAttributes)
9063     {
9064         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
9065     }
9066     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
9067     vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
9068 }
9069 
unmarshal_VkExportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkExportFenceWin32HandleInfoKHR * forUnmarshaling)9070 void unmarshal_VkExportFenceWin32HandleInfoKHR(
9071     VulkanStreamGuest* vkStream,
9072     VkExportFenceWin32HandleInfoKHR* forUnmarshaling)
9073 {
9074     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9075     size_t pNext_size;
9076     pNext_size = vkStream->getBe32();
9077     if (pNext_size)
9078     {
9079         uint64_t pNext_placeholder;
9080         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9081         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9082     }
9083     // WARNING PTR CHECK
9084     const SECURITY_ATTRIBUTES* check_pAttributes;
9085     check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
9086     if (forUnmarshaling->pAttributes)
9087     {
9088         if (!(check_pAttributes))
9089         {
9090             fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
9091         }
9092         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
9093     }
9094     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
9095     vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
9096 }
9097 
marshal_VkFenceGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkFenceGetWin32HandleInfoKHR * forMarshaling)9098 void marshal_VkFenceGetWin32HandleInfoKHR(
9099     VulkanStreamGuest* vkStream,
9100     const VkFenceGetWin32HandleInfoKHR* forMarshaling)
9101 {
9102     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9103     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9104     vkStream->putBe32(pNext_size);
9105     if (pNext_size)
9106     {
9107         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9108         marshal_extension_struct(vkStream, forMarshaling->pNext);
9109     }
9110     uint64_t cgen_var_268;
9111     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_268, 1);
9112     vkStream->write((uint64_t*)&cgen_var_268, 1 * 8);
9113     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9114 }
9115 
unmarshal_VkFenceGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkFenceGetWin32HandleInfoKHR * forUnmarshaling)9116 void unmarshal_VkFenceGetWin32HandleInfoKHR(
9117     VulkanStreamGuest* vkStream,
9118     VkFenceGetWin32HandleInfoKHR* forUnmarshaling)
9119 {
9120     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9121     size_t pNext_size;
9122     pNext_size = vkStream->getBe32();
9123     if (pNext_size)
9124     {
9125         uint64_t pNext_placeholder;
9126         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9127         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9128     }
9129     uint64_t cgen_var_269;
9130     vkStream->read((uint64_t*)&cgen_var_269, 1 * 8);
9131     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_269, (VkFence*)&forUnmarshaling->fence, 1);
9132     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9133 }
9134 
9135 #endif
9136 #ifdef VK_KHR_external_fence_fd
marshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,const VkImportFenceFdInfoKHR * forMarshaling)9137 void marshal_VkImportFenceFdInfoKHR(
9138     VulkanStreamGuest* vkStream,
9139     const VkImportFenceFdInfoKHR* forMarshaling)
9140 {
9141     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9142     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9143     vkStream->putBe32(pNext_size);
9144     if (pNext_size)
9145     {
9146         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9147         marshal_extension_struct(vkStream, forMarshaling->pNext);
9148     }
9149     uint64_t cgen_var_270;
9150     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_270, 1);
9151     vkStream->write((uint64_t*)&cgen_var_270, 1 * 8);
9152     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
9153     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9154     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
9155 }
9156 
unmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,VkImportFenceFdInfoKHR * forUnmarshaling)9157 void unmarshal_VkImportFenceFdInfoKHR(
9158     VulkanStreamGuest* vkStream,
9159     VkImportFenceFdInfoKHR* forUnmarshaling)
9160 {
9161     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9162     size_t pNext_size;
9163     pNext_size = vkStream->getBe32();
9164     if (pNext_size)
9165     {
9166         uint64_t pNext_placeholder;
9167         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9168         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9169     }
9170     uint64_t cgen_var_271;
9171     vkStream->read((uint64_t*)&cgen_var_271, 1 * 8);
9172     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_271, (VkFence*)&forUnmarshaling->fence, 1);
9173     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
9174     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9175     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
9176 }
9177 
marshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,const VkFenceGetFdInfoKHR * forMarshaling)9178 void marshal_VkFenceGetFdInfoKHR(
9179     VulkanStreamGuest* vkStream,
9180     const VkFenceGetFdInfoKHR* forMarshaling)
9181 {
9182     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9183     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9184     vkStream->putBe32(pNext_size);
9185     if (pNext_size)
9186     {
9187         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9188         marshal_extension_struct(vkStream, forMarshaling->pNext);
9189     }
9190     uint64_t cgen_var_272;
9191     vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_272, 1);
9192     vkStream->write((uint64_t*)&cgen_var_272, 1 * 8);
9193     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9194 }
9195 
unmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,VkFenceGetFdInfoKHR * forUnmarshaling)9196 void unmarshal_VkFenceGetFdInfoKHR(
9197     VulkanStreamGuest* vkStream,
9198     VkFenceGetFdInfoKHR* forUnmarshaling)
9199 {
9200     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9201     size_t pNext_size;
9202     pNext_size = vkStream->getBe32();
9203     if (pNext_size)
9204     {
9205         uint64_t pNext_placeholder;
9206         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9207         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9208     }
9209     uint64_t cgen_var_273;
9210     vkStream->read((uint64_t*)&cgen_var_273, 1 * 8);
9211     vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_273, (VkFence*)&forUnmarshaling->fence, 1);
9212     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
9213 }
9214 
9215 #endif
9216 #ifdef VK_KHR_maintenance2
9217 #endif
9218 #ifdef VK_KHR_get_surface_capabilities2
marshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSurfaceInfo2KHR * forMarshaling)9219 void marshal_VkPhysicalDeviceSurfaceInfo2KHR(
9220     VulkanStreamGuest* vkStream,
9221     const VkPhysicalDeviceSurfaceInfo2KHR* forMarshaling)
9222 {
9223     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9224     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9225     vkStream->putBe32(pNext_size);
9226     if (pNext_size)
9227     {
9228         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9229         marshal_extension_struct(vkStream, forMarshaling->pNext);
9230     }
9231     uint64_t cgen_var_274;
9232     vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_274, 1);
9233     vkStream->write((uint64_t*)&cgen_var_274, 1 * 8);
9234 }
9235 
unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStreamGuest * vkStream,VkPhysicalDeviceSurfaceInfo2KHR * forUnmarshaling)9236 void unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(
9237     VulkanStreamGuest* vkStream,
9238     VkPhysicalDeviceSurfaceInfo2KHR* forUnmarshaling)
9239 {
9240     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9241     size_t pNext_size;
9242     pNext_size = vkStream->getBe32();
9243     if (pNext_size)
9244     {
9245         uint64_t pNext_placeholder;
9246         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9247         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9248     }
9249     uint64_t cgen_var_275;
9250     vkStream->read((uint64_t*)&cgen_var_275, 1 * 8);
9251     vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_275, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
9252 }
9253 
marshal_VkSurfaceCapabilities2KHR(VulkanStreamGuest * vkStream,const VkSurfaceCapabilities2KHR * forMarshaling)9254 void marshal_VkSurfaceCapabilities2KHR(
9255     VulkanStreamGuest* vkStream,
9256     const VkSurfaceCapabilities2KHR* forMarshaling)
9257 {
9258     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9259     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9260     vkStream->putBe32(pNext_size);
9261     if (pNext_size)
9262     {
9263         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9264         marshal_extension_struct(vkStream, forMarshaling->pNext);
9265     }
9266     marshal_VkSurfaceCapabilitiesKHR(vkStream, (VkSurfaceCapabilitiesKHR*)(&forMarshaling->surfaceCapabilities));
9267 }
9268 
unmarshal_VkSurfaceCapabilities2KHR(VulkanStreamGuest * vkStream,VkSurfaceCapabilities2KHR * forUnmarshaling)9269 void unmarshal_VkSurfaceCapabilities2KHR(
9270     VulkanStreamGuest* vkStream,
9271     VkSurfaceCapabilities2KHR* forUnmarshaling)
9272 {
9273     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9274     size_t pNext_size;
9275     pNext_size = vkStream->getBe32();
9276     if (pNext_size)
9277     {
9278         uint64_t pNext_placeholder;
9279         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9280         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9281     }
9282     unmarshal_VkSurfaceCapabilitiesKHR(vkStream, (VkSurfaceCapabilitiesKHR*)(&forUnmarshaling->surfaceCapabilities));
9283 }
9284 
marshal_VkSurfaceFormat2KHR(VulkanStreamGuest * vkStream,const VkSurfaceFormat2KHR * forMarshaling)9285 void marshal_VkSurfaceFormat2KHR(
9286     VulkanStreamGuest* vkStream,
9287     const VkSurfaceFormat2KHR* forMarshaling)
9288 {
9289     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9290     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9291     vkStream->putBe32(pNext_size);
9292     if (pNext_size)
9293     {
9294         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9295         marshal_extension_struct(vkStream, forMarshaling->pNext);
9296     }
9297     marshal_VkSurfaceFormatKHR(vkStream, (VkSurfaceFormatKHR*)(&forMarshaling->surfaceFormat));
9298 }
9299 
unmarshal_VkSurfaceFormat2KHR(VulkanStreamGuest * vkStream,VkSurfaceFormat2KHR * forUnmarshaling)9300 void unmarshal_VkSurfaceFormat2KHR(
9301     VulkanStreamGuest* vkStream,
9302     VkSurfaceFormat2KHR* forUnmarshaling)
9303 {
9304     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9305     size_t pNext_size;
9306     pNext_size = vkStream->getBe32();
9307     if (pNext_size)
9308     {
9309         uint64_t pNext_placeholder;
9310         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9311         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9312     }
9313     unmarshal_VkSurfaceFormatKHR(vkStream, (VkSurfaceFormatKHR*)(&forUnmarshaling->surfaceFormat));
9314 }
9315 
9316 #endif
9317 #ifdef VK_KHR_variable_pointers
9318 #endif
9319 #ifdef VK_KHR_get_display_properties2
marshal_VkDisplayProperties2KHR(VulkanStreamGuest * vkStream,const VkDisplayProperties2KHR * forMarshaling)9320 void marshal_VkDisplayProperties2KHR(
9321     VulkanStreamGuest* vkStream,
9322     const VkDisplayProperties2KHR* forMarshaling)
9323 {
9324     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9325     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9326     vkStream->putBe32(pNext_size);
9327     if (pNext_size)
9328     {
9329         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9330         marshal_extension_struct(vkStream, forMarshaling->pNext);
9331     }
9332     marshal_VkDisplayPropertiesKHR(vkStream, (VkDisplayPropertiesKHR*)(&forMarshaling->displayProperties));
9333 }
9334 
unmarshal_VkDisplayProperties2KHR(VulkanStreamGuest * vkStream,VkDisplayProperties2KHR * forUnmarshaling)9335 void unmarshal_VkDisplayProperties2KHR(
9336     VulkanStreamGuest* vkStream,
9337     VkDisplayProperties2KHR* forUnmarshaling)
9338 {
9339     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9340     size_t pNext_size;
9341     pNext_size = vkStream->getBe32();
9342     if (pNext_size)
9343     {
9344         uint64_t pNext_placeholder;
9345         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9346         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9347     }
9348     unmarshal_VkDisplayPropertiesKHR(vkStream, (VkDisplayPropertiesKHR*)(&forUnmarshaling->displayProperties));
9349 }
9350 
marshal_VkDisplayPlaneProperties2KHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneProperties2KHR * forMarshaling)9351 void marshal_VkDisplayPlaneProperties2KHR(
9352     VulkanStreamGuest* vkStream,
9353     const VkDisplayPlaneProperties2KHR* forMarshaling)
9354 {
9355     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9356     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9357     vkStream->putBe32(pNext_size);
9358     if (pNext_size)
9359     {
9360         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9361         marshal_extension_struct(vkStream, forMarshaling->pNext);
9362     }
9363     marshal_VkDisplayPlanePropertiesKHR(vkStream, (VkDisplayPlanePropertiesKHR*)(&forMarshaling->displayPlaneProperties));
9364 }
9365 
unmarshal_VkDisplayPlaneProperties2KHR(VulkanStreamGuest * vkStream,VkDisplayPlaneProperties2KHR * forUnmarshaling)9366 void unmarshal_VkDisplayPlaneProperties2KHR(
9367     VulkanStreamGuest* vkStream,
9368     VkDisplayPlaneProperties2KHR* forUnmarshaling)
9369 {
9370     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9371     size_t pNext_size;
9372     pNext_size = vkStream->getBe32();
9373     if (pNext_size)
9374     {
9375         uint64_t pNext_placeholder;
9376         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9377         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9378     }
9379     unmarshal_VkDisplayPlanePropertiesKHR(vkStream, (VkDisplayPlanePropertiesKHR*)(&forUnmarshaling->displayPlaneProperties));
9380 }
9381 
marshal_VkDisplayModeProperties2KHR(VulkanStreamGuest * vkStream,const VkDisplayModeProperties2KHR * forMarshaling)9382 void marshal_VkDisplayModeProperties2KHR(
9383     VulkanStreamGuest* vkStream,
9384     const VkDisplayModeProperties2KHR* forMarshaling)
9385 {
9386     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9387     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9388     vkStream->putBe32(pNext_size);
9389     if (pNext_size)
9390     {
9391         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9392         marshal_extension_struct(vkStream, forMarshaling->pNext);
9393     }
9394     marshal_VkDisplayModePropertiesKHR(vkStream, (VkDisplayModePropertiesKHR*)(&forMarshaling->displayModeProperties));
9395 }
9396 
unmarshal_VkDisplayModeProperties2KHR(VulkanStreamGuest * vkStream,VkDisplayModeProperties2KHR * forUnmarshaling)9397 void unmarshal_VkDisplayModeProperties2KHR(
9398     VulkanStreamGuest* vkStream,
9399     VkDisplayModeProperties2KHR* forUnmarshaling)
9400 {
9401     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9402     size_t pNext_size;
9403     pNext_size = vkStream->getBe32();
9404     if (pNext_size)
9405     {
9406         uint64_t pNext_placeholder;
9407         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9408         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9409     }
9410     unmarshal_VkDisplayModePropertiesKHR(vkStream, (VkDisplayModePropertiesKHR*)(&forUnmarshaling->displayModeProperties));
9411 }
9412 
marshal_VkDisplayPlaneInfo2KHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneInfo2KHR * forMarshaling)9413 void marshal_VkDisplayPlaneInfo2KHR(
9414     VulkanStreamGuest* vkStream,
9415     const VkDisplayPlaneInfo2KHR* forMarshaling)
9416 {
9417     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9418     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9419     vkStream->putBe32(pNext_size);
9420     if (pNext_size)
9421     {
9422         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9423         marshal_extension_struct(vkStream, forMarshaling->pNext);
9424     }
9425     uint64_t cgen_var_276;
9426     vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->mode, &cgen_var_276, 1);
9427     vkStream->write((uint64_t*)&cgen_var_276, 1 * 8);
9428     vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
9429 }
9430 
unmarshal_VkDisplayPlaneInfo2KHR(VulkanStreamGuest * vkStream,VkDisplayPlaneInfo2KHR * forUnmarshaling)9431 void unmarshal_VkDisplayPlaneInfo2KHR(
9432     VulkanStreamGuest* vkStream,
9433     VkDisplayPlaneInfo2KHR* forUnmarshaling)
9434 {
9435     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9436     size_t pNext_size;
9437     pNext_size = vkStream->getBe32();
9438     if (pNext_size)
9439     {
9440         uint64_t pNext_placeholder;
9441         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9442         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9443     }
9444     uint64_t cgen_var_277;
9445     vkStream->read((uint64_t*)&cgen_var_277, 1 * 8);
9446     vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_277, (VkDisplayModeKHR*)&forUnmarshaling->mode, 1);
9447     vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
9448 }
9449 
marshal_VkDisplayPlaneCapabilities2KHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneCapabilities2KHR * forMarshaling)9450 void marshal_VkDisplayPlaneCapabilities2KHR(
9451     VulkanStreamGuest* vkStream,
9452     const VkDisplayPlaneCapabilities2KHR* forMarshaling)
9453 {
9454     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9455     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9456     vkStream->putBe32(pNext_size);
9457     if (pNext_size)
9458     {
9459         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9460         marshal_extension_struct(vkStream, forMarshaling->pNext);
9461     }
9462     marshal_VkDisplayPlaneCapabilitiesKHR(vkStream, (VkDisplayPlaneCapabilitiesKHR*)(&forMarshaling->capabilities));
9463 }
9464 
unmarshal_VkDisplayPlaneCapabilities2KHR(VulkanStreamGuest * vkStream,VkDisplayPlaneCapabilities2KHR * forUnmarshaling)9465 void unmarshal_VkDisplayPlaneCapabilities2KHR(
9466     VulkanStreamGuest* vkStream,
9467     VkDisplayPlaneCapabilities2KHR* forUnmarshaling)
9468 {
9469     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9470     size_t pNext_size;
9471     pNext_size = vkStream->getBe32();
9472     if (pNext_size)
9473     {
9474         uint64_t pNext_placeholder;
9475         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9476         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9477     }
9478     unmarshal_VkDisplayPlaneCapabilitiesKHR(vkStream, (VkDisplayPlaneCapabilitiesKHR*)(&forUnmarshaling->capabilities));
9479 }
9480 
9481 #endif
9482 #ifdef VK_KHR_dedicated_allocation
9483 #endif
9484 #ifdef VK_KHR_storage_buffer_storage_class
9485 #endif
9486 #ifdef VK_KHR_relaxed_block_layout
9487 #endif
9488 #ifdef VK_KHR_get_memory_requirements2
9489 #endif
9490 #ifdef VK_KHR_image_format_list
marshal_VkImageFormatListCreateInfoKHR(VulkanStreamGuest * vkStream,const VkImageFormatListCreateInfoKHR * forMarshaling)9491 void marshal_VkImageFormatListCreateInfoKHR(
9492     VulkanStreamGuest* vkStream,
9493     const VkImageFormatListCreateInfoKHR* forMarshaling)
9494 {
9495     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9496     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9497     vkStream->putBe32(pNext_size);
9498     if (pNext_size)
9499     {
9500         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9501         marshal_extension_struct(vkStream, forMarshaling->pNext);
9502     }
9503     vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
9504     vkStream->write((const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
9505 }
9506 
unmarshal_VkImageFormatListCreateInfoKHR(VulkanStreamGuest * vkStream,VkImageFormatListCreateInfoKHR * forUnmarshaling)9507 void unmarshal_VkImageFormatListCreateInfoKHR(
9508     VulkanStreamGuest* vkStream,
9509     VkImageFormatListCreateInfoKHR* forUnmarshaling)
9510 {
9511     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9512     size_t pNext_size;
9513     pNext_size = vkStream->getBe32();
9514     if (pNext_size)
9515     {
9516         uint64_t pNext_placeholder;
9517         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9518         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9519     }
9520     vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
9521     vkStream->read((VkFormat*)forUnmarshaling->pViewFormats, forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
9522 }
9523 
9524 #endif
9525 #ifdef VK_KHR_sampler_ycbcr_conversion
9526 #endif
9527 #ifdef VK_KHR_bind_memory2
9528 #endif
9529 #ifdef VK_KHR_maintenance3
9530 #endif
9531 #ifdef VK_KHR_draw_indirect_count
9532 #endif
9533 #ifdef VK_KHR_8bit_storage
marshal_VkPhysicalDevice8BitStorageFeaturesKHR(VulkanStreamGuest * vkStream,const VkPhysicalDevice8BitStorageFeaturesKHR * forMarshaling)9534 void marshal_VkPhysicalDevice8BitStorageFeaturesKHR(
9535     VulkanStreamGuest* vkStream,
9536     const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling)
9537 {
9538     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9539     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9540     vkStream->putBe32(pNext_size);
9541     if (pNext_size)
9542     {
9543         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9544         marshal_extension_struct(vkStream, forMarshaling->pNext);
9545     }
9546     vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
9547     vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
9548     vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
9549 }
9550 
unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(VulkanStreamGuest * vkStream,VkPhysicalDevice8BitStorageFeaturesKHR * forUnmarshaling)9551 void unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
9552     VulkanStreamGuest* vkStream,
9553     VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling)
9554 {
9555     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9556     size_t pNext_size;
9557     pNext_size = vkStream->getBe32();
9558     if (pNext_size)
9559     {
9560         uint64_t pNext_placeholder;
9561         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9562         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9563     }
9564     vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
9565     vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
9566     vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
9567 }
9568 
9569 #endif
9570 #ifdef VK_ANDROID_native_buffer
marshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,const VkNativeBufferANDROID * forMarshaling)9571 void marshal_VkNativeBufferANDROID(
9572     VulkanStreamGuest* vkStream,
9573     const VkNativeBufferANDROID* forMarshaling)
9574 {
9575     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9576     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9577     vkStream->putBe32(pNext_size);
9578     if (pNext_size)
9579     {
9580         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9581         marshal_extension_struct(vkStream, forMarshaling->pNext);
9582     }
9583     // WARNING PTR CHECK
9584     uint64_t cgen_var_278 = (uint64_t)(uintptr_t)forMarshaling->handle;
9585     vkStream->putBe64(cgen_var_278);
9586     if (forMarshaling->handle)
9587     {
9588         vkStream->write((const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
9589     }
9590     vkStream->write((int*)&forMarshaling->stride, sizeof(int));
9591     vkStream->write((int*)&forMarshaling->format, sizeof(int));
9592     vkStream->write((int*)&forMarshaling->usage, sizeof(int));
9593     vkStream->write((uint64_t*)&forMarshaling->consumer, sizeof(uint64_t));
9594     vkStream->write((uint64_t*)&forMarshaling->producer, sizeof(uint64_t));
9595 }
9596 
unmarshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,VkNativeBufferANDROID * forUnmarshaling)9597 void unmarshal_VkNativeBufferANDROID(
9598     VulkanStreamGuest* vkStream,
9599     VkNativeBufferANDROID* forUnmarshaling)
9600 {
9601     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9602     size_t pNext_size;
9603     pNext_size = vkStream->getBe32();
9604     if (pNext_size)
9605     {
9606         uint64_t pNext_placeholder;
9607         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9608         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9609     }
9610     // WARNING PTR CHECK
9611     const uint32_t* check_handle;
9612     check_handle = (const uint32_t*)(uintptr_t)vkStream->getBe64();
9613     if (forUnmarshaling->handle)
9614     {
9615         if (!(check_handle))
9616         {
9617             fprintf(stderr, "fatal: forUnmarshaling->handle inconsistent between guest and host\n");
9618         }
9619         vkStream->read((uint32_t*)forUnmarshaling->handle, sizeof(const uint32_t));
9620     }
9621     vkStream->read((int*)&forUnmarshaling->stride, sizeof(int));
9622     vkStream->read((int*)&forUnmarshaling->format, sizeof(int));
9623     vkStream->read((int*)&forUnmarshaling->usage, sizeof(int));
9624     vkStream->read((uint64_t*)&forUnmarshaling->consumer, sizeof(uint64_t));
9625     vkStream->read((uint64_t*)&forUnmarshaling->producer, sizeof(uint64_t));
9626 }
9627 
9628 #endif
9629 #ifdef VK_EXT_debug_report
marshal_VkDebugReportCallbackCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDebugReportCallbackCreateInfoEXT * forMarshaling)9630 void marshal_VkDebugReportCallbackCreateInfoEXT(
9631     VulkanStreamGuest* vkStream,
9632     const VkDebugReportCallbackCreateInfoEXT* forMarshaling)
9633 {
9634     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9635     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9636     vkStream->putBe32(pNext_size);
9637     if (pNext_size)
9638     {
9639         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9640         marshal_extension_struct(vkStream, forMarshaling->pNext);
9641     }
9642     vkStream->write((VkDebugReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugReportFlagsEXT));
9643     uint64_t cgen_var_280 = (uint64_t)forMarshaling->pfnCallback;
9644     vkStream->putBe64(cgen_var_280);
9645     // WARNING PTR CHECK
9646     uint64_t cgen_var_281 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
9647     vkStream->putBe64(cgen_var_281);
9648     if (forMarshaling->pUserData)
9649     {
9650         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
9651     }
9652 }
9653 
unmarshal_VkDebugReportCallbackCreateInfoEXT(VulkanStreamGuest * vkStream,VkDebugReportCallbackCreateInfoEXT * forUnmarshaling)9654 void unmarshal_VkDebugReportCallbackCreateInfoEXT(
9655     VulkanStreamGuest* vkStream,
9656     VkDebugReportCallbackCreateInfoEXT* forUnmarshaling)
9657 {
9658     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9659     size_t pNext_size;
9660     pNext_size = vkStream->getBe32();
9661     if (pNext_size)
9662     {
9663         uint64_t pNext_placeholder;
9664         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9665         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9666     }
9667     vkStream->read((VkDebugReportFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDebugReportFlagsEXT));
9668     forUnmarshaling->pfnCallback = (PFN_vkDebugReportCallbackEXT)vkStream->getBe64();
9669     // WARNING PTR CHECK
9670     void* check_pUserData;
9671     check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
9672     if (forUnmarshaling->pUserData)
9673     {
9674         if (!(check_pUserData))
9675         {
9676             fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
9677         }
9678         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
9679     }
9680 }
9681 
9682 #endif
9683 #ifdef VK_NV_glsl_shader
9684 #endif
9685 #ifdef VK_EXT_depth_range_unrestricted
9686 #endif
9687 #ifdef VK_IMG_filter_cubic
9688 #endif
9689 #ifdef VK_AMD_rasterization_order
marshal_VkPipelineRasterizationStateRasterizationOrderAMD(VulkanStreamGuest * vkStream,const VkPipelineRasterizationStateRasterizationOrderAMD * forMarshaling)9690 void marshal_VkPipelineRasterizationStateRasterizationOrderAMD(
9691     VulkanStreamGuest* vkStream,
9692     const VkPipelineRasterizationStateRasterizationOrderAMD* forMarshaling)
9693 {
9694     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9695     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9696     vkStream->putBe32(pNext_size);
9697     if (pNext_size)
9698     {
9699         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9700         marshal_extension_struct(vkStream, forMarshaling->pNext);
9701     }
9702     vkStream->write((VkRasterizationOrderAMD*)&forMarshaling->rasterizationOrder, sizeof(VkRasterizationOrderAMD));
9703 }
9704 
unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(VulkanStreamGuest * vkStream,VkPipelineRasterizationStateRasterizationOrderAMD * forUnmarshaling)9705 void unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(
9706     VulkanStreamGuest* vkStream,
9707     VkPipelineRasterizationStateRasterizationOrderAMD* forUnmarshaling)
9708 {
9709     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9710     size_t pNext_size;
9711     pNext_size = vkStream->getBe32();
9712     if (pNext_size)
9713     {
9714         uint64_t pNext_placeholder;
9715         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9716         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9717     }
9718     vkStream->read((VkRasterizationOrderAMD*)&forUnmarshaling->rasterizationOrder, sizeof(VkRasterizationOrderAMD));
9719 }
9720 
9721 #endif
9722 #ifdef VK_AMD_shader_trinary_minmax
9723 #endif
9724 #ifdef VK_AMD_shader_explicit_vertex_parameter
9725 #endif
9726 #ifdef VK_EXT_debug_marker
marshal_VkDebugMarkerObjectNameInfoEXT(VulkanStreamGuest * vkStream,const VkDebugMarkerObjectNameInfoEXT * forMarshaling)9727 void marshal_VkDebugMarkerObjectNameInfoEXT(
9728     VulkanStreamGuest* vkStream,
9729     const VkDebugMarkerObjectNameInfoEXT* forMarshaling)
9730 {
9731     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9732     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9733     vkStream->putBe32(pNext_size);
9734     if (pNext_size)
9735     {
9736         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9737         marshal_extension_struct(vkStream, forMarshaling->pNext);
9738     }
9739     vkStream->write((VkDebugReportObjectTypeEXT*)&forMarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9740     vkStream->write((uint64_t*)&forMarshaling->object, sizeof(uint64_t));
9741     vkStream->putString(forMarshaling->pObjectName);
9742 }
9743 
unmarshal_VkDebugMarkerObjectNameInfoEXT(VulkanStreamGuest * vkStream,VkDebugMarkerObjectNameInfoEXT * forUnmarshaling)9744 void unmarshal_VkDebugMarkerObjectNameInfoEXT(
9745     VulkanStreamGuest* vkStream,
9746     VkDebugMarkerObjectNameInfoEXT* forUnmarshaling)
9747 {
9748     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9749     size_t pNext_size;
9750     pNext_size = vkStream->getBe32();
9751     if (pNext_size)
9752     {
9753         uint64_t pNext_placeholder;
9754         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9755         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9756     }
9757     vkStream->read((VkDebugReportObjectTypeEXT*)&forUnmarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9758     vkStream->read((uint64_t*)&forUnmarshaling->object, sizeof(uint64_t));
9759     vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
9760 }
9761 
marshal_VkDebugMarkerObjectTagInfoEXT(VulkanStreamGuest * vkStream,const VkDebugMarkerObjectTagInfoEXT * forMarshaling)9762 void marshal_VkDebugMarkerObjectTagInfoEXT(
9763     VulkanStreamGuest* vkStream,
9764     const VkDebugMarkerObjectTagInfoEXT* forMarshaling)
9765 {
9766     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9767     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9768     vkStream->putBe32(pNext_size);
9769     if (pNext_size)
9770     {
9771         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9772         marshal_extension_struct(vkStream, forMarshaling->pNext);
9773     }
9774     vkStream->write((VkDebugReportObjectTypeEXT*)&forMarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9775     vkStream->write((uint64_t*)&forMarshaling->object, sizeof(uint64_t));
9776     vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
9777     uint64_t cgen_var_284 = (uint64_t)forMarshaling->tagSize;
9778     vkStream->putBe64(cgen_var_284);
9779     vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
9780 }
9781 
unmarshal_VkDebugMarkerObjectTagInfoEXT(VulkanStreamGuest * vkStream,VkDebugMarkerObjectTagInfoEXT * forUnmarshaling)9782 void unmarshal_VkDebugMarkerObjectTagInfoEXT(
9783     VulkanStreamGuest* vkStream,
9784     VkDebugMarkerObjectTagInfoEXT* forUnmarshaling)
9785 {
9786     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9787     size_t pNext_size;
9788     pNext_size = vkStream->getBe32();
9789     if (pNext_size)
9790     {
9791         uint64_t pNext_placeholder;
9792         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9793         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9794     }
9795     vkStream->read((VkDebugReportObjectTypeEXT*)&forUnmarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9796     vkStream->read((uint64_t*)&forUnmarshaling->object, sizeof(uint64_t));
9797     vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
9798     forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
9799     vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
9800 }
9801 
marshal_VkDebugMarkerMarkerInfoEXT(VulkanStreamGuest * vkStream,const VkDebugMarkerMarkerInfoEXT * forMarshaling)9802 void marshal_VkDebugMarkerMarkerInfoEXT(
9803     VulkanStreamGuest* vkStream,
9804     const VkDebugMarkerMarkerInfoEXT* forMarshaling)
9805 {
9806     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9807     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9808     vkStream->putBe32(pNext_size);
9809     if (pNext_size)
9810     {
9811         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9812         marshal_extension_struct(vkStream, forMarshaling->pNext);
9813     }
9814     vkStream->putString(forMarshaling->pMarkerName);
9815     vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
9816 }
9817 
unmarshal_VkDebugMarkerMarkerInfoEXT(VulkanStreamGuest * vkStream,VkDebugMarkerMarkerInfoEXT * forUnmarshaling)9818 void unmarshal_VkDebugMarkerMarkerInfoEXT(
9819     VulkanStreamGuest* vkStream,
9820     VkDebugMarkerMarkerInfoEXT* forUnmarshaling)
9821 {
9822     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9823     size_t pNext_size;
9824     pNext_size = vkStream->getBe32();
9825     if (pNext_size)
9826     {
9827         uint64_t pNext_placeholder;
9828         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9829         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9830     }
9831     vkStream->loadStringInPlace((char**)&forUnmarshaling->pMarkerName);
9832     vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
9833 }
9834 
9835 #endif
9836 #ifdef VK_AMD_gcn_shader
9837 #endif
9838 #ifdef VK_NV_dedicated_allocation
marshal_VkDedicatedAllocationImageCreateInfoNV(VulkanStreamGuest * vkStream,const VkDedicatedAllocationImageCreateInfoNV * forMarshaling)9839 void marshal_VkDedicatedAllocationImageCreateInfoNV(
9840     VulkanStreamGuest* vkStream,
9841     const VkDedicatedAllocationImageCreateInfoNV* forMarshaling)
9842 {
9843     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9844     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9845     vkStream->putBe32(pNext_size);
9846     if (pNext_size)
9847     {
9848         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9849         marshal_extension_struct(vkStream, forMarshaling->pNext);
9850     }
9851     vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocation, sizeof(VkBool32));
9852 }
9853 
unmarshal_VkDedicatedAllocationImageCreateInfoNV(VulkanStreamGuest * vkStream,VkDedicatedAllocationImageCreateInfoNV * forUnmarshaling)9854 void unmarshal_VkDedicatedAllocationImageCreateInfoNV(
9855     VulkanStreamGuest* vkStream,
9856     VkDedicatedAllocationImageCreateInfoNV* forUnmarshaling)
9857 {
9858     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9859     size_t pNext_size;
9860     pNext_size = vkStream->getBe32();
9861     if (pNext_size)
9862     {
9863         uint64_t pNext_placeholder;
9864         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9865         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9866     }
9867     vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocation, sizeof(VkBool32));
9868 }
9869 
marshal_VkDedicatedAllocationBufferCreateInfoNV(VulkanStreamGuest * vkStream,const VkDedicatedAllocationBufferCreateInfoNV * forMarshaling)9870 void marshal_VkDedicatedAllocationBufferCreateInfoNV(
9871     VulkanStreamGuest* vkStream,
9872     const VkDedicatedAllocationBufferCreateInfoNV* forMarshaling)
9873 {
9874     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9875     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9876     vkStream->putBe32(pNext_size);
9877     if (pNext_size)
9878     {
9879         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9880         marshal_extension_struct(vkStream, forMarshaling->pNext);
9881     }
9882     vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocation, sizeof(VkBool32));
9883 }
9884 
unmarshal_VkDedicatedAllocationBufferCreateInfoNV(VulkanStreamGuest * vkStream,VkDedicatedAllocationBufferCreateInfoNV * forUnmarshaling)9885 void unmarshal_VkDedicatedAllocationBufferCreateInfoNV(
9886     VulkanStreamGuest* vkStream,
9887     VkDedicatedAllocationBufferCreateInfoNV* forUnmarshaling)
9888 {
9889     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9890     size_t pNext_size;
9891     pNext_size = vkStream->getBe32();
9892     if (pNext_size)
9893     {
9894         uint64_t pNext_placeholder;
9895         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9896         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9897     }
9898     vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocation, sizeof(VkBool32));
9899 }
9900 
marshal_VkDedicatedAllocationMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,const VkDedicatedAllocationMemoryAllocateInfoNV * forMarshaling)9901 void marshal_VkDedicatedAllocationMemoryAllocateInfoNV(
9902     VulkanStreamGuest* vkStream,
9903     const VkDedicatedAllocationMemoryAllocateInfoNV* forMarshaling)
9904 {
9905     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9906     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9907     vkStream->putBe32(pNext_size);
9908     if (pNext_size)
9909     {
9910         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9911         marshal_extension_struct(vkStream, forMarshaling->pNext);
9912     }
9913     uint64_t cgen_var_286;
9914     vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_286, 1);
9915     vkStream->write((uint64_t*)&cgen_var_286, 1 * 8);
9916     uint64_t cgen_var_287;
9917     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_287, 1);
9918     vkStream->write((uint64_t*)&cgen_var_287, 1 * 8);
9919 }
9920 
unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,VkDedicatedAllocationMemoryAllocateInfoNV * forUnmarshaling)9921 void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
9922     VulkanStreamGuest* vkStream,
9923     VkDedicatedAllocationMemoryAllocateInfoNV* forUnmarshaling)
9924 {
9925     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9926     size_t pNext_size;
9927     pNext_size = vkStream->getBe32();
9928     if (pNext_size)
9929     {
9930         uint64_t pNext_placeholder;
9931         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9932         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9933     }
9934     uint64_t cgen_var_288;
9935     vkStream->read((uint64_t*)&cgen_var_288, 1 * 8);
9936     vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_288, (VkImage*)&forUnmarshaling->image, 1);
9937     uint64_t cgen_var_289;
9938     vkStream->read((uint64_t*)&cgen_var_289, 1 * 8);
9939     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_289, (VkBuffer*)&forUnmarshaling->buffer, 1);
9940 }
9941 
9942 #endif
9943 #ifdef VK_AMD_draw_indirect_count
9944 #endif
9945 #ifdef VK_AMD_negative_viewport_height
9946 #endif
9947 #ifdef VK_AMD_gpu_shader_half_float
9948 #endif
9949 #ifdef VK_AMD_shader_ballot
9950 #endif
9951 #ifdef VK_AMD_texture_gather_bias_lod
marshal_VkTextureLODGatherFormatPropertiesAMD(VulkanStreamGuest * vkStream,const VkTextureLODGatherFormatPropertiesAMD * forMarshaling)9952 void marshal_VkTextureLODGatherFormatPropertiesAMD(
9953     VulkanStreamGuest* vkStream,
9954     const VkTextureLODGatherFormatPropertiesAMD* forMarshaling)
9955 {
9956     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9957     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9958     vkStream->putBe32(pNext_size);
9959     if (pNext_size)
9960     {
9961         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9962         marshal_extension_struct(vkStream, forMarshaling->pNext);
9963     }
9964     vkStream->write((VkBool32*)&forMarshaling->supportsTextureGatherLODBiasAMD, sizeof(VkBool32));
9965 }
9966 
unmarshal_VkTextureLODGatherFormatPropertiesAMD(VulkanStreamGuest * vkStream,VkTextureLODGatherFormatPropertiesAMD * forUnmarshaling)9967 void unmarshal_VkTextureLODGatherFormatPropertiesAMD(
9968     VulkanStreamGuest* vkStream,
9969     VkTextureLODGatherFormatPropertiesAMD* forUnmarshaling)
9970 {
9971     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9972     size_t pNext_size;
9973     pNext_size = vkStream->getBe32();
9974     if (pNext_size)
9975     {
9976         uint64_t pNext_placeholder;
9977         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9978         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9979     }
9980     vkStream->read((VkBool32*)&forUnmarshaling->supportsTextureGatherLODBiasAMD, sizeof(VkBool32));
9981 }
9982 
9983 #endif
9984 #ifdef VK_AMD_shader_info
marshal_VkShaderResourceUsageAMD(VulkanStreamGuest * vkStream,const VkShaderResourceUsageAMD * forMarshaling)9985 void marshal_VkShaderResourceUsageAMD(
9986     VulkanStreamGuest* vkStream,
9987     const VkShaderResourceUsageAMD* forMarshaling)
9988 {
9989     vkStream->write((uint32_t*)&forMarshaling->numUsedVgprs, sizeof(uint32_t));
9990     vkStream->write((uint32_t*)&forMarshaling->numUsedSgprs, sizeof(uint32_t));
9991     vkStream->write((uint32_t*)&forMarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
9992     uint64_t cgen_var_290 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
9993     vkStream->putBe64(cgen_var_290);
9994     uint64_t cgen_var_291 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
9995     vkStream->putBe64(cgen_var_291);
9996 }
9997 
unmarshal_VkShaderResourceUsageAMD(VulkanStreamGuest * vkStream,VkShaderResourceUsageAMD * forUnmarshaling)9998 void unmarshal_VkShaderResourceUsageAMD(
9999     VulkanStreamGuest* vkStream,
10000     VkShaderResourceUsageAMD* forUnmarshaling)
10001 {
10002     vkStream->read((uint32_t*)&forUnmarshaling->numUsedVgprs, sizeof(uint32_t));
10003     vkStream->read((uint32_t*)&forUnmarshaling->numUsedSgprs, sizeof(uint32_t));
10004     vkStream->read((uint32_t*)&forUnmarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
10005     forUnmarshaling->ldsUsageSizeInBytes = (size_t)vkStream->getBe64();
10006     forUnmarshaling->scratchMemUsageInBytes = (size_t)vkStream->getBe64();
10007 }
10008 
marshal_VkShaderStatisticsInfoAMD(VulkanStreamGuest * vkStream,const VkShaderStatisticsInfoAMD * forMarshaling)10009 void marshal_VkShaderStatisticsInfoAMD(
10010     VulkanStreamGuest* vkStream,
10011     const VkShaderStatisticsInfoAMD* forMarshaling)
10012 {
10013     vkStream->write((VkShaderStageFlags*)&forMarshaling->shaderStageMask, sizeof(VkShaderStageFlags));
10014     marshal_VkShaderResourceUsageAMD(vkStream, (VkShaderResourceUsageAMD*)(&forMarshaling->resourceUsage));
10015     vkStream->write((uint32_t*)&forMarshaling->numPhysicalVgprs, sizeof(uint32_t));
10016     vkStream->write((uint32_t*)&forMarshaling->numPhysicalSgprs, sizeof(uint32_t));
10017     vkStream->write((uint32_t*)&forMarshaling->numAvailableVgprs, sizeof(uint32_t));
10018     vkStream->write((uint32_t*)&forMarshaling->numAvailableSgprs, sizeof(uint32_t));
10019     vkStream->write((uint32_t*)forMarshaling->computeWorkGroupSize, 3 * sizeof(uint32_t));
10020 }
10021 
unmarshal_VkShaderStatisticsInfoAMD(VulkanStreamGuest * vkStream,VkShaderStatisticsInfoAMD * forUnmarshaling)10022 void unmarshal_VkShaderStatisticsInfoAMD(
10023     VulkanStreamGuest* vkStream,
10024     VkShaderStatisticsInfoAMD* forUnmarshaling)
10025 {
10026     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->shaderStageMask, sizeof(VkShaderStageFlags));
10027     unmarshal_VkShaderResourceUsageAMD(vkStream, (VkShaderResourceUsageAMD*)(&forUnmarshaling->resourceUsage));
10028     vkStream->read((uint32_t*)&forUnmarshaling->numPhysicalVgprs, sizeof(uint32_t));
10029     vkStream->read((uint32_t*)&forUnmarshaling->numPhysicalSgprs, sizeof(uint32_t));
10030     vkStream->read((uint32_t*)&forUnmarshaling->numAvailableVgprs, sizeof(uint32_t));
10031     vkStream->read((uint32_t*)&forUnmarshaling->numAvailableSgprs, sizeof(uint32_t));
10032     vkStream->read((uint32_t*)forUnmarshaling->computeWorkGroupSize, 3 * sizeof(uint32_t));
10033 }
10034 
10035 #endif
10036 #ifdef VK_AMD_shader_image_load_store_lod
10037 #endif
10038 #ifdef VK_IMG_format_pvrtc
10039 #endif
10040 #ifdef VK_NV_external_memory_capabilities
marshal_VkExternalImageFormatPropertiesNV(VulkanStreamGuest * vkStream,const VkExternalImageFormatPropertiesNV * forMarshaling)10041 void marshal_VkExternalImageFormatPropertiesNV(
10042     VulkanStreamGuest* vkStream,
10043     const VkExternalImageFormatPropertiesNV* forMarshaling)
10044 {
10045     marshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
10046     vkStream->write((VkExternalMemoryFeatureFlagsNV*)&forMarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlagsNV));
10047     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10048     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10049 }
10050 
unmarshal_VkExternalImageFormatPropertiesNV(VulkanStreamGuest * vkStream,VkExternalImageFormatPropertiesNV * forUnmarshaling)10051 void unmarshal_VkExternalImageFormatPropertiesNV(
10052     VulkanStreamGuest* vkStream,
10053     VkExternalImageFormatPropertiesNV* forUnmarshaling)
10054 {
10055     unmarshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
10056     vkStream->read((VkExternalMemoryFeatureFlagsNV*)&forUnmarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlagsNV));
10057     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10058     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10059 }
10060 
10061 #endif
10062 #ifdef VK_NV_external_memory
marshal_VkExternalMemoryImageCreateInfoNV(VulkanStreamGuest * vkStream,const VkExternalMemoryImageCreateInfoNV * forMarshaling)10063 void marshal_VkExternalMemoryImageCreateInfoNV(
10064     VulkanStreamGuest* vkStream,
10065     const VkExternalMemoryImageCreateInfoNV* forMarshaling)
10066 {
10067     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10068     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10069     vkStream->putBe32(pNext_size);
10070     if (pNext_size)
10071     {
10072         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10073         marshal_extension_struct(vkStream, forMarshaling->pNext);
10074     }
10075     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10076 }
10077 
unmarshal_VkExternalMemoryImageCreateInfoNV(VulkanStreamGuest * vkStream,VkExternalMemoryImageCreateInfoNV * forUnmarshaling)10078 void unmarshal_VkExternalMemoryImageCreateInfoNV(
10079     VulkanStreamGuest* vkStream,
10080     VkExternalMemoryImageCreateInfoNV* forUnmarshaling)
10081 {
10082     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10083     size_t pNext_size;
10084     pNext_size = vkStream->getBe32();
10085     if (pNext_size)
10086     {
10087         uint64_t pNext_placeholder;
10088         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10089         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10090     }
10091     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10092 }
10093 
marshal_VkExportMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,const VkExportMemoryAllocateInfoNV * forMarshaling)10094 void marshal_VkExportMemoryAllocateInfoNV(
10095     VulkanStreamGuest* vkStream,
10096     const VkExportMemoryAllocateInfoNV* forMarshaling)
10097 {
10098     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10099     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10100     vkStream->putBe32(pNext_size);
10101     if (pNext_size)
10102     {
10103         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10104         marshal_extension_struct(vkStream, forMarshaling->pNext);
10105     }
10106     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10107 }
10108 
unmarshal_VkExportMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,VkExportMemoryAllocateInfoNV * forUnmarshaling)10109 void unmarshal_VkExportMemoryAllocateInfoNV(
10110     VulkanStreamGuest* vkStream,
10111     VkExportMemoryAllocateInfoNV* forUnmarshaling)
10112 {
10113     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10114     size_t pNext_size;
10115     pNext_size = vkStream->getBe32();
10116     if (pNext_size)
10117     {
10118         uint64_t pNext_placeholder;
10119         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10120         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10121     }
10122     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10123 }
10124 
10125 #endif
10126 #ifdef VK_NV_external_memory_win32
marshal_VkImportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,const VkImportMemoryWin32HandleInfoNV * forMarshaling)10127 void marshal_VkImportMemoryWin32HandleInfoNV(
10128     VulkanStreamGuest* vkStream,
10129     const VkImportMemoryWin32HandleInfoNV* forMarshaling)
10130 {
10131     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10132     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10133     vkStream->putBe32(pNext_size);
10134     if (pNext_size)
10135     {
10136         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10137         marshal_extension_struct(vkStream, forMarshaling->pNext);
10138     }
10139     vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10140     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
10141 }
10142 
unmarshal_VkImportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,VkImportMemoryWin32HandleInfoNV * forUnmarshaling)10143 void unmarshal_VkImportMemoryWin32HandleInfoNV(
10144     VulkanStreamGuest* vkStream,
10145     VkImportMemoryWin32HandleInfoNV* forUnmarshaling)
10146 {
10147     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10148     size_t pNext_size;
10149     pNext_size = vkStream->getBe32();
10150     if (pNext_size)
10151     {
10152         uint64_t pNext_placeholder;
10153         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10154         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10155     }
10156     vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
10157     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
10158 }
10159 
marshal_VkExportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,const VkExportMemoryWin32HandleInfoNV * forMarshaling)10160 void marshal_VkExportMemoryWin32HandleInfoNV(
10161     VulkanStreamGuest* vkStream,
10162     const VkExportMemoryWin32HandleInfoNV* forMarshaling)
10163 {
10164     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10165     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10166     vkStream->putBe32(pNext_size);
10167     if (pNext_size)
10168     {
10169         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10170         marshal_extension_struct(vkStream, forMarshaling->pNext);
10171     }
10172     // WARNING PTR CHECK
10173     uint64_t cgen_var_294 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
10174     vkStream->putBe64(cgen_var_294);
10175     if (forMarshaling->pAttributes)
10176     {
10177         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
10178     }
10179     vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
10180 }
10181 
unmarshal_VkExportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,VkExportMemoryWin32HandleInfoNV * forUnmarshaling)10182 void unmarshal_VkExportMemoryWin32HandleInfoNV(
10183     VulkanStreamGuest* vkStream,
10184     VkExportMemoryWin32HandleInfoNV* forUnmarshaling)
10185 {
10186     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10187     size_t pNext_size;
10188     pNext_size = vkStream->getBe32();
10189     if (pNext_size)
10190     {
10191         uint64_t pNext_placeholder;
10192         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10193         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10194     }
10195     // WARNING PTR CHECK
10196     const SECURITY_ATTRIBUTES* check_pAttributes;
10197     check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
10198     if (forUnmarshaling->pAttributes)
10199     {
10200         if (!(check_pAttributes))
10201         {
10202             fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
10203         }
10204         vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
10205     }
10206     vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
10207 }
10208 
10209 #endif
10210 #ifdef VK_NV_win32_keyed_mutex
marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(VulkanStreamGuest * vkStream,const VkWin32KeyedMutexAcquireReleaseInfoNV * forMarshaling)10211 void marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
10212     VulkanStreamGuest* vkStream,
10213     const VkWin32KeyedMutexAcquireReleaseInfoNV* forMarshaling)
10214 {
10215     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10216     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10217     vkStream->putBe32(pNext_size);
10218     if (pNext_size)
10219     {
10220         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10221         marshal_extension_struct(vkStream, forMarshaling->pNext);
10222     }
10223     vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
10224     if (forMarshaling->acquireCount)
10225     {
10226         uint64_t* cgen_var_296;
10227         vkStream->alloc((void**)&cgen_var_296, forMarshaling->acquireCount * 8);
10228         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_296, forMarshaling->acquireCount);
10229         vkStream->write((uint64_t*)cgen_var_296, forMarshaling->acquireCount * 8);
10230     }
10231     vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys, forMarshaling->acquireCount * sizeof(const uint64_t));
10232     vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeoutMilliseconds, forMarshaling->acquireCount * sizeof(const uint32_t));
10233     vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
10234     if (forMarshaling->releaseCount)
10235     {
10236         uint64_t* cgen_var_297;
10237         vkStream->alloc((void**)&cgen_var_297, forMarshaling->releaseCount * 8);
10238         vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_297, forMarshaling->releaseCount);
10239         vkStream->write((uint64_t*)cgen_var_297, forMarshaling->releaseCount * 8);
10240     }
10241     vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys, forMarshaling->releaseCount * sizeof(const uint64_t));
10242 }
10243 
unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(VulkanStreamGuest * vkStream,VkWin32KeyedMutexAcquireReleaseInfoNV * forUnmarshaling)10244 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
10245     VulkanStreamGuest* vkStream,
10246     VkWin32KeyedMutexAcquireReleaseInfoNV* forUnmarshaling)
10247 {
10248     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10249     size_t pNext_size;
10250     pNext_size = vkStream->getBe32();
10251     if (pNext_size)
10252     {
10253         uint64_t pNext_placeholder;
10254         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10255         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10256     }
10257     vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
10258     if (forUnmarshaling->acquireCount)
10259     {
10260         uint64_t* cgen_var_298;
10261         vkStream->alloc((void**)&cgen_var_298, forUnmarshaling->acquireCount * 8);
10262         vkStream->read((uint64_t*)cgen_var_298, forUnmarshaling->acquireCount * 8);
10263         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_298, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
10264     }
10265     vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
10266     vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeoutMilliseconds, forUnmarshaling->acquireCount * sizeof(const uint32_t));
10267     vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
10268     if (forUnmarshaling->releaseCount)
10269     {
10270         uint64_t* cgen_var_299;
10271         vkStream->alloc((void**)&cgen_var_299, forUnmarshaling->releaseCount * 8);
10272         vkStream->read((uint64_t*)cgen_var_299, forUnmarshaling->releaseCount * 8);
10273         vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_299, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
10274     }
10275     vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
10276 }
10277 
10278 #endif
10279 #ifdef VK_EXT_validation_flags
marshal_VkValidationFlagsEXT(VulkanStreamGuest * vkStream,const VkValidationFlagsEXT * forMarshaling)10280 void marshal_VkValidationFlagsEXT(
10281     VulkanStreamGuest* vkStream,
10282     const VkValidationFlagsEXT* forMarshaling)
10283 {
10284     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10285     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10286     vkStream->putBe32(pNext_size);
10287     if (pNext_size)
10288     {
10289         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10290         marshal_extension_struct(vkStream, forMarshaling->pNext);
10291     }
10292     vkStream->write((uint32_t*)&forMarshaling->disabledValidationCheckCount, sizeof(uint32_t));
10293     vkStream->write((const VkValidationCheckEXT*)forMarshaling->pDisabledValidationChecks, forMarshaling->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
10294 }
10295 
unmarshal_VkValidationFlagsEXT(VulkanStreamGuest * vkStream,VkValidationFlagsEXT * forUnmarshaling)10296 void unmarshal_VkValidationFlagsEXT(
10297     VulkanStreamGuest* vkStream,
10298     VkValidationFlagsEXT* forUnmarshaling)
10299 {
10300     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10301     size_t pNext_size;
10302     pNext_size = vkStream->getBe32();
10303     if (pNext_size)
10304     {
10305         uint64_t pNext_placeholder;
10306         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10307         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10308     }
10309     vkStream->read((uint32_t*)&forUnmarshaling->disabledValidationCheckCount, sizeof(uint32_t));
10310     vkStream->read((VkValidationCheckEXT*)forUnmarshaling->pDisabledValidationChecks, forUnmarshaling->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
10311 }
10312 
10313 #endif
10314 #ifdef VK_NN_vi_surface
marshal_VkViSurfaceCreateInfoNN(VulkanStreamGuest * vkStream,const VkViSurfaceCreateInfoNN * forMarshaling)10315 void marshal_VkViSurfaceCreateInfoNN(
10316     VulkanStreamGuest* vkStream,
10317     const VkViSurfaceCreateInfoNN* forMarshaling)
10318 {
10319     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10320     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10321     vkStream->putBe32(pNext_size);
10322     if (pNext_size)
10323     {
10324         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10325         marshal_extension_struct(vkStream, forMarshaling->pNext);
10326     }
10327     vkStream->write((VkViSurfaceCreateFlagsNN*)&forMarshaling->flags, sizeof(VkViSurfaceCreateFlagsNN));
10328     // WARNING PTR CHECK
10329     uint64_t cgen_var_300 = (uint64_t)(uintptr_t)forMarshaling->window;
10330     vkStream->putBe64(cgen_var_300);
10331     if (forMarshaling->window)
10332     {
10333         vkStream->write((void*)forMarshaling->window, sizeof(uint8_t));
10334     }
10335 }
10336 
unmarshal_VkViSurfaceCreateInfoNN(VulkanStreamGuest * vkStream,VkViSurfaceCreateInfoNN * forUnmarshaling)10337 void unmarshal_VkViSurfaceCreateInfoNN(
10338     VulkanStreamGuest* vkStream,
10339     VkViSurfaceCreateInfoNN* forUnmarshaling)
10340 {
10341     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10342     size_t pNext_size;
10343     pNext_size = vkStream->getBe32();
10344     if (pNext_size)
10345     {
10346         uint64_t pNext_placeholder;
10347         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10348         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10349     }
10350     vkStream->read((VkViSurfaceCreateFlagsNN*)&forUnmarshaling->flags, sizeof(VkViSurfaceCreateFlagsNN));
10351     // WARNING PTR CHECK
10352     void* check_window;
10353     check_window = (void*)(uintptr_t)vkStream->getBe64();
10354     if (forUnmarshaling->window)
10355     {
10356         if (!(check_window))
10357         {
10358             fprintf(stderr, "fatal: forUnmarshaling->window inconsistent between guest and host\n");
10359         }
10360         vkStream->read((void*)forUnmarshaling->window, sizeof(uint8_t));
10361     }
10362 }
10363 
10364 #endif
10365 #ifdef VK_EXT_shader_subgroup_ballot
10366 #endif
10367 #ifdef VK_EXT_shader_subgroup_vote
10368 #endif
10369 #ifdef VK_EXT_conditional_rendering
marshal_VkConditionalRenderingBeginInfoEXT(VulkanStreamGuest * vkStream,const VkConditionalRenderingBeginInfoEXT * forMarshaling)10370 void marshal_VkConditionalRenderingBeginInfoEXT(
10371     VulkanStreamGuest* vkStream,
10372     const VkConditionalRenderingBeginInfoEXT* forMarshaling)
10373 {
10374     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10375     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10376     vkStream->putBe32(pNext_size);
10377     if (pNext_size)
10378     {
10379         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10380         marshal_extension_struct(vkStream, forMarshaling->pNext);
10381     }
10382     uint64_t cgen_var_302;
10383     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_302, 1);
10384     vkStream->write((uint64_t*)&cgen_var_302, 1 * 8);
10385     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
10386     vkStream->write((VkConditionalRenderingFlagsEXT*)&forMarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
10387 }
10388 
unmarshal_VkConditionalRenderingBeginInfoEXT(VulkanStreamGuest * vkStream,VkConditionalRenderingBeginInfoEXT * forUnmarshaling)10389 void unmarshal_VkConditionalRenderingBeginInfoEXT(
10390     VulkanStreamGuest* vkStream,
10391     VkConditionalRenderingBeginInfoEXT* forUnmarshaling)
10392 {
10393     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10394     size_t pNext_size;
10395     pNext_size = vkStream->getBe32();
10396     if (pNext_size)
10397     {
10398         uint64_t pNext_placeholder;
10399         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10400         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10401     }
10402     uint64_t cgen_var_303;
10403     vkStream->read((uint64_t*)&cgen_var_303, 1 * 8);
10404     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_303, (VkBuffer*)&forUnmarshaling->buffer, 1);
10405     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
10406     vkStream->read((VkConditionalRenderingFlagsEXT*)&forUnmarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
10407 }
10408 
marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceConditionalRenderingFeaturesEXT * forMarshaling)10409 void marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
10410     VulkanStreamGuest* vkStream,
10411     const VkPhysicalDeviceConditionalRenderingFeaturesEXT* forMarshaling)
10412 {
10413     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10414     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10415     vkStream->putBe32(pNext_size);
10416     if (pNext_size)
10417     {
10418         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
10419         marshal_extension_struct(vkStream, forMarshaling->pNext);
10420     }
10421     vkStream->write((VkBool32*)&forMarshaling->conditionalRendering, sizeof(VkBool32));
10422     vkStream->write((VkBool32*)&forMarshaling->inheritedConditionalRendering, sizeof(VkBool32));
10423 }
10424 
unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceConditionalRenderingFeaturesEXT * forUnmarshaling)10425 void unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
10426     VulkanStreamGuest* vkStream,
10427     VkPhysicalDeviceConditionalRenderingFeaturesEXT* forUnmarshaling)
10428 {
10429     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10430     size_t pNext_size;
10431     pNext_size = vkStream->getBe32();
10432     if (pNext_size)
10433     {
10434         uint64_t pNext_placeholder;
10435         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10436         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10437     }
10438     vkStream->read((VkBool32*)&forUnmarshaling->conditionalRendering, sizeof(VkBool32));
10439     vkStream->read((VkBool32*)&forUnmarshaling->inheritedConditionalRendering, sizeof(VkBool32));
10440 }
10441 
marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(VulkanStreamGuest * vkStream,const VkCommandBufferInheritanceConditionalRenderingInfoEXT * forMarshaling)10442 void marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
10443     VulkanStreamGuest* vkStream,
10444     const VkCommandBufferInheritanceConditionalRenderingInfoEXT* forMarshaling)
10445 {
10446     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10447     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10448     vkStream->putBe32(pNext_size);
10449     if (pNext_size)
10450     {
10451         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10452         marshal_extension_struct(vkStream, forMarshaling->pNext);
10453     }
10454     vkStream->write((VkBool32*)&forMarshaling->conditionalRenderingEnable, sizeof(VkBool32));
10455 }
10456 
unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(VulkanStreamGuest * vkStream,VkCommandBufferInheritanceConditionalRenderingInfoEXT * forUnmarshaling)10457 void unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
10458     VulkanStreamGuest* vkStream,
10459     VkCommandBufferInheritanceConditionalRenderingInfoEXT* forUnmarshaling)
10460 {
10461     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10462     size_t pNext_size;
10463     pNext_size = vkStream->getBe32();
10464     if (pNext_size)
10465     {
10466         uint64_t pNext_placeholder;
10467         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10468         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10469     }
10470     vkStream->read((VkBool32*)&forUnmarshaling->conditionalRenderingEnable, sizeof(VkBool32));
10471 }
10472 
10473 #endif
10474 #ifdef VK_NVX_device_generated_commands
marshal_VkDeviceGeneratedCommandsFeaturesNVX(VulkanStreamGuest * vkStream,const VkDeviceGeneratedCommandsFeaturesNVX * forMarshaling)10475 void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
10476     VulkanStreamGuest* vkStream,
10477     const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling)
10478 {
10479     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10480     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10481     vkStream->putBe32(pNext_size);
10482     if (pNext_size)
10483     {
10484         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10485         marshal_extension_struct(vkStream, forMarshaling->pNext);
10486     }
10487     vkStream->write((VkBool32*)&forMarshaling->computeBindingPointSupport, sizeof(VkBool32));
10488 }
10489 
unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(VulkanStreamGuest * vkStream,VkDeviceGeneratedCommandsFeaturesNVX * forUnmarshaling)10490 void unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
10491     VulkanStreamGuest* vkStream,
10492     VkDeviceGeneratedCommandsFeaturesNVX* forUnmarshaling)
10493 {
10494     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10495     size_t pNext_size;
10496     pNext_size = vkStream->getBe32();
10497     if (pNext_size)
10498     {
10499         uint64_t pNext_placeholder;
10500         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10501         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10502     }
10503     vkStream->read((VkBool32*)&forUnmarshaling->computeBindingPointSupport, sizeof(VkBool32));
10504 }
10505 
marshal_VkDeviceGeneratedCommandsLimitsNVX(VulkanStreamGuest * vkStream,const VkDeviceGeneratedCommandsLimitsNVX * forMarshaling)10506 void marshal_VkDeviceGeneratedCommandsLimitsNVX(
10507     VulkanStreamGuest* vkStream,
10508     const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling)
10509 {
10510     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10511     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10512     vkStream->putBe32(pNext_size);
10513     if (pNext_size)
10514     {
10515         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10516         marshal_extension_struct(vkStream, forMarshaling->pNext);
10517     }
10518     vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsLayoutTokenCount, sizeof(uint32_t));
10519     vkStream->write((uint32_t*)&forMarshaling->maxObjectEntryCounts, sizeof(uint32_t));
10520     vkStream->write((uint32_t*)&forMarshaling->minSequenceCountBufferOffsetAlignment, sizeof(uint32_t));
10521     vkStream->write((uint32_t*)&forMarshaling->minSequenceIndexBufferOffsetAlignment, sizeof(uint32_t));
10522     vkStream->write((uint32_t*)&forMarshaling->minCommandsTokenBufferOffsetAlignment, sizeof(uint32_t));
10523 }
10524 
unmarshal_VkDeviceGeneratedCommandsLimitsNVX(VulkanStreamGuest * vkStream,VkDeviceGeneratedCommandsLimitsNVX * forUnmarshaling)10525 void unmarshal_VkDeviceGeneratedCommandsLimitsNVX(
10526     VulkanStreamGuest* vkStream,
10527     VkDeviceGeneratedCommandsLimitsNVX* forUnmarshaling)
10528 {
10529     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10530     size_t pNext_size;
10531     pNext_size = vkStream->getBe32();
10532     if (pNext_size)
10533     {
10534         uint64_t pNext_placeholder;
10535         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10536         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10537     }
10538     vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsLayoutTokenCount, sizeof(uint32_t));
10539     vkStream->read((uint32_t*)&forUnmarshaling->maxObjectEntryCounts, sizeof(uint32_t));
10540     vkStream->read((uint32_t*)&forUnmarshaling->minSequenceCountBufferOffsetAlignment, sizeof(uint32_t));
10541     vkStream->read((uint32_t*)&forUnmarshaling->minSequenceIndexBufferOffsetAlignment, sizeof(uint32_t));
10542     vkStream->read((uint32_t*)&forUnmarshaling->minCommandsTokenBufferOffsetAlignment, sizeof(uint32_t));
10543 }
10544 
marshal_VkIndirectCommandsTokenNVX(VulkanStreamGuest * vkStream,const VkIndirectCommandsTokenNVX * forMarshaling)10545 void marshal_VkIndirectCommandsTokenNVX(
10546     VulkanStreamGuest* vkStream,
10547     const VkIndirectCommandsTokenNVX* forMarshaling)
10548 {
10549     vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10550     uint64_t cgen_var_304;
10551     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_304, 1);
10552     vkStream->write((uint64_t*)&cgen_var_304, 1 * 8);
10553     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
10554 }
10555 
unmarshal_VkIndirectCommandsTokenNVX(VulkanStreamGuest * vkStream,VkIndirectCommandsTokenNVX * forUnmarshaling)10556 void unmarshal_VkIndirectCommandsTokenNVX(
10557     VulkanStreamGuest* vkStream,
10558     VkIndirectCommandsTokenNVX* forUnmarshaling)
10559 {
10560     vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10561     uint64_t cgen_var_305;
10562     vkStream->read((uint64_t*)&cgen_var_305, 1 * 8);
10563     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_305, (VkBuffer*)&forUnmarshaling->buffer, 1);
10564     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
10565 }
10566 
marshal_VkIndirectCommandsLayoutTokenNVX(VulkanStreamGuest * vkStream,const VkIndirectCommandsLayoutTokenNVX * forMarshaling)10567 void marshal_VkIndirectCommandsLayoutTokenNVX(
10568     VulkanStreamGuest* vkStream,
10569     const VkIndirectCommandsLayoutTokenNVX* forMarshaling)
10570 {
10571     vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10572     vkStream->write((uint32_t*)&forMarshaling->bindingUnit, sizeof(uint32_t));
10573     vkStream->write((uint32_t*)&forMarshaling->dynamicCount, sizeof(uint32_t));
10574     vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
10575 }
10576 
unmarshal_VkIndirectCommandsLayoutTokenNVX(VulkanStreamGuest * vkStream,VkIndirectCommandsLayoutTokenNVX * forUnmarshaling)10577 void unmarshal_VkIndirectCommandsLayoutTokenNVX(
10578     VulkanStreamGuest* vkStream,
10579     VkIndirectCommandsLayoutTokenNVX* forUnmarshaling)
10580 {
10581     vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10582     vkStream->read((uint32_t*)&forUnmarshaling->bindingUnit, sizeof(uint32_t));
10583     vkStream->read((uint32_t*)&forUnmarshaling->dynamicCount, sizeof(uint32_t));
10584     vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
10585 }
10586 
marshal_VkIndirectCommandsLayoutCreateInfoNVX(VulkanStreamGuest * vkStream,const VkIndirectCommandsLayoutCreateInfoNVX * forMarshaling)10587 void marshal_VkIndirectCommandsLayoutCreateInfoNVX(
10588     VulkanStreamGuest* vkStream,
10589     const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling)
10590 {
10591     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10592     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10593     vkStream->putBe32(pNext_size);
10594     if (pNext_size)
10595     {
10596         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10597         marshal_extension_struct(vkStream, forMarshaling->pNext);
10598     }
10599     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
10600     vkStream->write((VkIndirectCommandsLayoutUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNVX));
10601     vkStream->write((uint32_t*)&forMarshaling->tokenCount, sizeof(uint32_t));
10602     for (uint32_t i = 0; i < (uint32_t)forMarshaling->tokenCount; ++i)
10603     {
10604         marshal_VkIndirectCommandsLayoutTokenNVX(vkStream, (const VkIndirectCommandsLayoutTokenNVX*)(forMarshaling->pTokens + i));
10605     }
10606 }
10607 
unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(VulkanStreamGuest * vkStream,VkIndirectCommandsLayoutCreateInfoNVX * forUnmarshaling)10608 void unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
10609     VulkanStreamGuest* vkStream,
10610     VkIndirectCommandsLayoutCreateInfoNVX* forUnmarshaling)
10611 {
10612     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10613     size_t pNext_size;
10614     pNext_size = vkStream->getBe32();
10615     if (pNext_size)
10616     {
10617         uint64_t pNext_placeholder;
10618         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10619         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10620     }
10621     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
10622     vkStream->read((VkIndirectCommandsLayoutUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNVX));
10623     vkStream->read((uint32_t*)&forUnmarshaling->tokenCount, sizeof(uint32_t));
10624     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->tokenCount; ++i)
10625     {
10626         unmarshal_VkIndirectCommandsLayoutTokenNVX(vkStream, (VkIndirectCommandsLayoutTokenNVX*)(forUnmarshaling->pTokens + i));
10627     }
10628 }
10629 
marshal_VkCmdProcessCommandsInfoNVX(VulkanStreamGuest * vkStream,const VkCmdProcessCommandsInfoNVX * forMarshaling)10630 void marshal_VkCmdProcessCommandsInfoNVX(
10631     VulkanStreamGuest* vkStream,
10632     const VkCmdProcessCommandsInfoNVX* forMarshaling)
10633 {
10634     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10635     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10636     vkStream->putBe32(pNext_size);
10637     if (pNext_size)
10638     {
10639         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10640         marshal_extension_struct(vkStream, forMarshaling->pNext);
10641     }
10642     uint64_t cgen_var_306;
10643     vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_306, 1);
10644     vkStream->write((uint64_t*)&cgen_var_306, 1 * 8);
10645     uint64_t cgen_var_307;
10646     vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_307, 1);
10647     vkStream->write((uint64_t*)&cgen_var_307, 1 * 8);
10648     vkStream->write((uint32_t*)&forMarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
10649     for (uint32_t i = 0; i < (uint32_t)forMarshaling->indirectCommandsTokenCount; ++i)
10650     {
10651         marshal_VkIndirectCommandsTokenNVX(vkStream, (const VkIndirectCommandsTokenNVX*)(forMarshaling->pIndirectCommandsTokens + i));
10652     }
10653     vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
10654     uint64_t cgen_var_308;
10655     vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->targetCommandBuffer, &cgen_var_308, 1);
10656     vkStream->write((uint64_t*)&cgen_var_308, 1 * 8);
10657     uint64_t cgen_var_309;
10658     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesCountBuffer, &cgen_var_309, 1);
10659     vkStream->write((uint64_t*)&cgen_var_309, 1 * 8);
10660     vkStream->write((VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
10661     uint64_t cgen_var_310;
10662     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesIndexBuffer, &cgen_var_310, 1);
10663     vkStream->write((uint64_t*)&cgen_var_310, 1 * 8);
10664     vkStream->write((VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
10665 }
10666 
unmarshal_VkCmdProcessCommandsInfoNVX(VulkanStreamGuest * vkStream,VkCmdProcessCommandsInfoNVX * forUnmarshaling)10667 void unmarshal_VkCmdProcessCommandsInfoNVX(
10668     VulkanStreamGuest* vkStream,
10669     VkCmdProcessCommandsInfoNVX* forUnmarshaling)
10670 {
10671     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10672     size_t pNext_size;
10673     pNext_size = vkStream->getBe32();
10674     if (pNext_size)
10675     {
10676         uint64_t pNext_placeholder;
10677         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10678         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10679     }
10680     uint64_t cgen_var_311;
10681     vkStream->read((uint64_t*)&cgen_var_311, 1 * 8);
10682     vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_311, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
10683     uint64_t cgen_var_312;
10684     vkStream->read((uint64_t*)&cgen_var_312, 1 * 8);
10685     vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_312, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
10686     vkStream->read((uint32_t*)&forUnmarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
10687     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->indirectCommandsTokenCount; ++i)
10688     {
10689         unmarshal_VkIndirectCommandsTokenNVX(vkStream, (VkIndirectCommandsTokenNVX*)(forUnmarshaling->pIndirectCommandsTokens + i));
10690     }
10691     vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
10692     uint64_t cgen_var_313;
10693     vkStream->read((uint64_t*)&cgen_var_313, 1 * 8);
10694     vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(&cgen_var_313, (VkCommandBuffer*)&forUnmarshaling->targetCommandBuffer, 1);
10695     uint64_t cgen_var_314;
10696     vkStream->read((uint64_t*)&cgen_var_314, 1 * 8);
10697     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_314, (VkBuffer*)&forUnmarshaling->sequencesCountBuffer, 1);
10698     vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
10699     uint64_t cgen_var_315;
10700     vkStream->read((uint64_t*)&cgen_var_315, 1 * 8);
10701     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_315, (VkBuffer*)&forUnmarshaling->sequencesIndexBuffer, 1);
10702     vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
10703 }
10704 
marshal_VkCmdReserveSpaceForCommandsInfoNVX(VulkanStreamGuest * vkStream,const VkCmdReserveSpaceForCommandsInfoNVX * forMarshaling)10705 void marshal_VkCmdReserveSpaceForCommandsInfoNVX(
10706     VulkanStreamGuest* vkStream,
10707     const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling)
10708 {
10709     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10710     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10711     vkStream->putBe32(pNext_size);
10712     if (pNext_size)
10713     {
10714         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10715         marshal_extension_struct(vkStream, forMarshaling->pNext);
10716     }
10717     uint64_t cgen_var_316;
10718     vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_316, 1);
10719     vkStream->write((uint64_t*)&cgen_var_316, 1 * 8);
10720     uint64_t cgen_var_317;
10721     vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_317, 1);
10722     vkStream->write((uint64_t*)&cgen_var_317, 1 * 8);
10723     vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
10724 }
10725 
unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(VulkanStreamGuest * vkStream,VkCmdReserveSpaceForCommandsInfoNVX * forUnmarshaling)10726 void unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
10727     VulkanStreamGuest* vkStream,
10728     VkCmdReserveSpaceForCommandsInfoNVX* forUnmarshaling)
10729 {
10730     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10731     size_t pNext_size;
10732     pNext_size = vkStream->getBe32();
10733     if (pNext_size)
10734     {
10735         uint64_t pNext_placeholder;
10736         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10737         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10738     }
10739     uint64_t cgen_var_318;
10740     vkStream->read((uint64_t*)&cgen_var_318, 1 * 8);
10741     vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_318, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
10742     uint64_t cgen_var_319;
10743     vkStream->read((uint64_t*)&cgen_var_319, 1 * 8);
10744     vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_319, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
10745     vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
10746 }
10747 
marshal_VkObjectTableCreateInfoNVX(VulkanStreamGuest * vkStream,const VkObjectTableCreateInfoNVX * forMarshaling)10748 void marshal_VkObjectTableCreateInfoNVX(
10749     VulkanStreamGuest* vkStream,
10750     const VkObjectTableCreateInfoNVX* forMarshaling)
10751 {
10752     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10753     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10754     vkStream->putBe32(pNext_size);
10755     if (pNext_size)
10756     {
10757         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10758         marshal_extension_struct(vkStream, forMarshaling->pNext);
10759     }
10760     vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
10761     vkStream->write((const VkObjectEntryTypeNVX*)forMarshaling->pObjectEntryTypes, forMarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX));
10762     vkStream->write((const uint32_t*)forMarshaling->pObjectEntryCounts, forMarshaling->objectCount * sizeof(const uint32_t));
10763     vkStream->write((const VkObjectEntryUsageFlagsNVX*)forMarshaling->pObjectEntryUsageFlags, forMarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
10764     vkStream->write((uint32_t*)&forMarshaling->maxUniformBuffersPerDescriptor, sizeof(uint32_t));
10765     vkStream->write((uint32_t*)&forMarshaling->maxStorageBuffersPerDescriptor, sizeof(uint32_t));
10766     vkStream->write((uint32_t*)&forMarshaling->maxStorageImagesPerDescriptor, sizeof(uint32_t));
10767     vkStream->write((uint32_t*)&forMarshaling->maxSampledImagesPerDescriptor, sizeof(uint32_t));
10768     vkStream->write((uint32_t*)&forMarshaling->maxPipelineLayouts, sizeof(uint32_t));
10769 }
10770 
unmarshal_VkObjectTableCreateInfoNVX(VulkanStreamGuest * vkStream,VkObjectTableCreateInfoNVX * forUnmarshaling)10771 void unmarshal_VkObjectTableCreateInfoNVX(
10772     VulkanStreamGuest* vkStream,
10773     VkObjectTableCreateInfoNVX* forUnmarshaling)
10774 {
10775     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10776     size_t pNext_size;
10777     pNext_size = vkStream->getBe32();
10778     if (pNext_size)
10779     {
10780         uint64_t pNext_placeholder;
10781         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10782         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10783     }
10784     vkStream->read((uint32_t*)&forUnmarshaling->objectCount, sizeof(uint32_t));
10785     vkStream->read((VkObjectEntryTypeNVX*)forUnmarshaling->pObjectEntryTypes, forUnmarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX));
10786     vkStream->read((uint32_t*)forUnmarshaling->pObjectEntryCounts, forUnmarshaling->objectCount * sizeof(const uint32_t));
10787     vkStream->read((VkObjectEntryUsageFlagsNVX*)forUnmarshaling->pObjectEntryUsageFlags, forUnmarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
10788     vkStream->read((uint32_t*)&forUnmarshaling->maxUniformBuffersPerDescriptor, sizeof(uint32_t));
10789     vkStream->read((uint32_t*)&forUnmarshaling->maxStorageBuffersPerDescriptor, sizeof(uint32_t));
10790     vkStream->read((uint32_t*)&forUnmarshaling->maxStorageImagesPerDescriptor, sizeof(uint32_t));
10791     vkStream->read((uint32_t*)&forUnmarshaling->maxSampledImagesPerDescriptor, sizeof(uint32_t));
10792     vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineLayouts, sizeof(uint32_t));
10793 }
10794 
marshal_VkObjectTableEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableEntryNVX * forMarshaling)10795 void marshal_VkObjectTableEntryNVX(
10796     VulkanStreamGuest* vkStream,
10797     const VkObjectTableEntryNVX* forMarshaling)
10798 {
10799     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10800     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10801 }
10802 
unmarshal_VkObjectTableEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableEntryNVX * forUnmarshaling)10803 void unmarshal_VkObjectTableEntryNVX(
10804     VulkanStreamGuest* vkStream,
10805     VkObjectTableEntryNVX* forUnmarshaling)
10806 {
10807     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10808     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10809 }
10810 
marshal_VkObjectTablePipelineEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTablePipelineEntryNVX * forMarshaling)10811 void marshal_VkObjectTablePipelineEntryNVX(
10812     VulkanStreamGuest* vkStream,
10813     const VkObjectTablePipelineEntryNVX* forMarshaling)
10814 {
10815     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10816     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10817     uint64_t cgen_var_320;
10818     vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_320, 1);
10819     vkStream->write((uint64_t*)&cgen_var_320, 1 * 8);
10820 }
10821 
unmarshal_VkObjectTablePipelineEntryNVX(VulkanStreamGuest * vkStream,VkObjectTablePipelineEntryNVX * forUnmarshaling)10822 void unmarshal_VkObjectTablePipelineEntryNVX(
10823     VulkanStreamGuest* vkStream,
10824     VkObjectTablePipelineEntryNVX* forUnmarshaling)
10825 {
10826     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10827     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10828     uint64_t cgen_var_321;
10829     vkStream->read((uint64_t*)&cgen_var_321, 1 * 8);
10830     vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_321, (VkPipeline*)&forUnmarshaling->pipeline, 1);
10831 }
10832 
marshal_VkObjectTableDescriptorSetEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableDescriptorSetEntryNVX * forMarshaling)10833 void marshal_VkObjectTableDescriptorSetEntryNVX(
10834     VulkanStreamGuest* vkStream,
10835     const VkObjectTableDescriptorSetEntryNVX* forMarshaling)
10836 {
10837     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10838     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10839     uint64_t cgen_var_322;
10840     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_322, 1);
10841     vkStream->write((uint64_t*)&cgen_var_322, 1 * 8);
10842     uint64_t cgen_var_323;
10843     vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->descriptorSet, &cgen_var_323, 1);
10844     vkStream->write((uint64_t*)&cgen_var_323, 1 * 8);
10845 }
10846 
unmarshal_VkObjectTableDescriptorSetEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableDescriptorSetEntryNVX * forUnmarshaling)10847 void unmarshal_VkObjectTableDescriptorSetEntryNVX(
10848     VulkanStreamGuest* vkStream,
10849     VkObjectTableDescriptorSetEntryNVX* forUnmarshaling)
10850 {
10851     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10852     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10853     uint64_t cgen_var_324;
10854     vkStream->read((uint64_t*)&cgen_var_324, 1 * 8);
10855     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_324, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
10856     uint64_t cgen_var_325;
10857     vkStream->read((uint64_t*)&cgen_var_325, 1 * 8);
10858     vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_325, (VkDescriptorSet*)&forUnmarshaling->descriptorSet, 1);
10859 }
10860 
marshal_VkObjectTableVertexBufferEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableVertexBufferEntryNVX * forMarshaling)10861 void marshal_VkObjectTableVertexBufferEntryNVX(
10862     VulkanStreamGuest* vkStream,
10863     const VkObjectTableVertexBufferEntryNVX* forMarshaling)
10864 {
10865     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10866     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10867     uint64_t cgen_var_326;
10868     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_326, 1);
10869     vkStream->write((uint64_t*)&cgen_var_326, 1 * 8);
10870 }
10871 
unmarshal_VkObjectTableVertexBufferEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableVertexBufferEntryNVX * forUnmarshaling)10872 void unmarshal_VkObjectTableVertexBufferEntryNVX(
10873     VulkanStreamGuest* vkStream,
10874     VkObjectTableVertexBufferEntryNVX* forUnmarshaling)
10875 {
10876     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10877     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10878     uint64_t cgen_var_327;
10879     vkStream->read((uint64_t*)&cgen_var_327, 1 * 8);
10880     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_327, (VkBuffer*)&forUnmarshaling->buffer, 1);
10881 }
10882 
marshal_VkObjectTableIndexBufferEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableIndexBufferEntryNVX * forMarshaling)10883 void marshal_VkObjectTableIndexBufferEntryNVX(
10884     VulkanStreamGuest* vkStream,
10885     const VkObjectTableIndexBufferEntryNVX* forMarshaling)
10886 {
10887     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10888     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10889     uint64_t cgen_var_328;
10890     vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_328, 1);
10891     vkStream->write((uint64_t*)&cgen_var_328, 1 * 8);
10892     vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
10893 }
10894 
unmarshal_VkObjectTableIndexBufferEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableIndexBufferEntryNVX * forUnmarshaling)10895 void unmarshal_VkObjectTableIndexBufferEntryNVX(
10896     VulkanStreamGuest* vkStream,
10897     VkObjectTableIndexBufferEntryNVX* forUnmarshaling)
10898 {
10899     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10900     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10901     uint64_t cgen_var_329;
10902     vkStream->read((uint64_t*)&cgen_var_329, 1 * 8);
10903     vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_329, (VkBuffer*)&forUnmarshaling->buffer, 1);
10904     vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
10905 }
10906 
marshal_VkObjectTablePushConstantEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTablePushConstantEntryNVX * forMarshaling)10907 void marshal_VkObjectTablePushConstantEntryNVX(
10908     VulkanStreamGuest* vkStream,
10909     const VkObjectTablePushConstantEntryNVX* forMarshaling)
10910 {
10911     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10912     vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10913     uint64_t cgen_var_330;
10914     vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_330, 1);
10915     vkStream->write((uint64_t*)&cgen_var_330, 1 * 8);
10916     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
10917 }
10918 
unmarshal_VkObjectTablePushConstantEntryNVX(VulkanStreamGuest * vkStream,VkObjectTablePushConstantEntryNVX * forUnmarshaling)10919 void unmarshal_VkObjectTablePushConstantEntryNVX(
10920     VulkanStreamGuest* vkStream,
10921     VkObjectTablePushConstantEntryNVX* forUnmarshaling)
10922 {
10923     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10924     vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10925     uint64_t cgen_var_331;
10926     vkStream->read((uint64_t*)&cgen_var_331, 1 * 8);
10927     vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_331, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
10928     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
10929 }
10930 
10931 #endif
10932 #ifdef VK_NV_clip_space_w_scaling
marshal_VkViewportWScalingNV(VulkanStreamGuest * vkStream,const VkViewportWScalingNV * forMarshaling)10933 void marshal_VkViewportWScalingNV(
10934     VulkanStreamGuest* vkStream,
10935     const VkViewportWScalingNV* forMarshaling)
10936 {
10937     vkStream->write((float*)&forMarshaling->xcoeff, sizeof(float));
10938     vkStream->write((float*)&forMarshaling->ycoeff, sizeof(float));
10939 }
10940 
unmarshal_VkViewportWScalingNV(VulkanStreamGuest * vkStream,VkViewportWScalingNV * forUnmarshaling)10941 void unmarshal_VkViewportWScalingNV(
10942     VulkanStreamGuest* vkStream,
10943     VkViewportWScalingNV* forUnmarshaling)
10944 {
10945     vkStream->read((float*)&forUnmarshaling->xcoeff, sizeof(float));
10946     vkStream->read((float*)&forUnmarshaling->ycoeff, sizeof(float));
10947 }
10948 
marshal_VkPipelineViewportWScalingStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineViewportWScalingStateCreateInfoNV * forMarshaling)10949 void marshal_VkPipelineViewportWScalingStateCreateInfoNV(
10950     VulkanStreamGuest* vkStream,
10951     const VkPipelineViewportWScalingStateCreateInfoNV* forMarshaling)
10952 {
10953     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10954     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10955     vkStream->putBe32(pNext_size);
10956     if (pNext_size)
10957     {
10958         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10959         marshal_extension_struct(vkStream, forMarshaling->pNext);
10960     }
10961     vkStream->write((VkBool32*)&forMarshaling->viewportWScalingEnable, sizeof(VkBool32));
10962     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
10963     // WARNING PTR CHECK
10964     uint64_t cgen_var_332 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
10965     vkStream->putBe64(cgen_var_332);
10966     if (forMarshaling->pViewportWScalings)
10967     {
10968         for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
10969         {
10970             marshal_VkViewportWScalingNV(vkStream, (const VkViewportWScalingNV*)(forMarshaling->pViewportWScalings + i));
10971         }
10972     }
10973 }
10974 
unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineViewportWScalingStateCreateInfoNV * forUnmarshaling)10975 void unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(
10976     VulkanStreamGuest* vkStream,
10977     VkPipelineViewportWScalingStateCreateInfoNV* forUnmarshaling)
10978 {
10979     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10980     size_t pNext_size;
10981     pNext_size = vkStream->getBe32();
10982     if (pNext_size)
10983     {
10984         uint64_t pNext_placeholder;
10985         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10986         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10987     }
10988     vkStream->read((VkBool32*)&forUnmarshaling->viewportWScalingEnable, sizeof(VkBool32));
10989     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
10990     // WARNING PTR CHECK
10991     const VkViewportWScalingNV* check_pViewportWScalings;
10992     check_pViewportWScalings = (const VkViewportWScalingNV*)(uintptr_t)vkStream->getBe64();
10993     if (forUnmarshaling->pViewportWScalings)
10994     {
10995         if (!(check_pViewportWScalings))
10996         {
10997             fprintf(stderr, "fatal: forUnmarshaling->pViewportWScalings inconsistent between guest and host\n");
10998         }
10999         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
11000         {
11001             unmarshal_VkViewportWScalingNV(vkStream, (VkViewportWScalingNV*)(forUnmarshaling->pViewportWScalings + i));
11002         }
11003     }
11004 }
11005 
11006 #endif
11007 #ifdef VK_EXT_direct_mode_display
11008 #endif
11009 #ifdef VK_EXT_acquire_xlib_display
11010 #endif
11011 #ifdef VK_EXT_display_surface_counter
marshal_VkSurfaceCapabilities2EXT(VulkanStreamGuest * vkStream,const VkSurfaceCapabilities2EXT * forMarshaling)11012 void marshal_VkSurfaceCapabilities2EXT(
11013     VulkanStreamGuest* vkStream,
11014     const VkSurfaceCapabilities2EXT* forMarshaling)
11015 {
11016     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11017     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11018     vkStream->putBe32(pNext_size);
11019     if (pNext_size)
11020     {
11021         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11022         marshal_extension_struct(vkStream, forMarshaling->pNext);
11023     }
11024     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
11025     vkStream->write((uint32_t*)&forMarshaling->maxImageCount, sizeof(uint32_t));
11026     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->currentExtent));
11027     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minImageExtent));
11028     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxImageExtent));
11029     vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
11030     vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
11031     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
11032     vkStream->write((VkCompositeAlphaFlagsKHR*)&forMarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
11033     vkStream->write((VkImageUsageFlags*)&forMarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
11034     vkStream->write((VkSurfaceCounterFlagsEXT*)&forMarshaling->supportedSurfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
11035 }
11036 
unmarshal_VkSurfaceCapabilities2EXT(VulkanStreamGuest * vkStream,VkSurfaceCapabilities2EXT * forUnmarshaling)11037 void unmarshal_VkSurfaceCapabilities2EXT(
11038     VulkanStreamGuest* vkStream,
11039     VkSurfaceCapabilities2EXT* forUnmarshaling)
11040 {
11041     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11042     size_t pNext_size;
11043     pNext_size = vkStream->getBe32();
11044     if (pNext_size)
11045     {
11046         uint64_t pNext_placeholder;
11047         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11048         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11049     }
11050     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
11051     vkStream->read((uint32_t*)&forUnmarshaling->maxImageCount, sizeof(uint32_t));
11052     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->currentExtent));
11053     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minImageExtent));
11054     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxImageExtent));
11055     vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
11056     vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
11057     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
11058     vkStream->read((VkCompositeAlphaFlagsKHR*)&forUnmarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
11059     vkStream->read((VkImageUsageFlags*)&forUnmarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
11060     vkStream->read((VkSurfaceCounterFlagsEXT*)&forUnmarshaling->supportedSurfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
11061 }
11062 
11063 #endif
11064 #ifdef VK_EXT_display_control
marshal_VkDisplayPowerInfoEXT(VulkanStreamGuest * vkStream,const VkDisplayPowerInfoEXT * forMarshaling)11065 void marshal_VkDisplayPowerInfoEXT(
11066     VulkanStreamGuest* vkStream,
11067     const VkDisplayPowerInfoEXT* forMarshaling)
11068 {
11069     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11070     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11071     vkStream->putBe32(pNext_size);
11072     if (pNext_size)
11073     {
11074         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11075         marshal_extension_struct(vkStream, forMarshaling->pNext);
11076     }
11077     vkStream->write((VkDisplayPowerStateEXT*)&forMarshaling->powerState, sizeof(VkDisplayPowerStateEXT));
11078 }
11079 
unmarshal_VkDisplayPowerInfoEXT(VulkanStreamGuest * vkStream,VkDisplayPowerInfoEXT * forUnmarshaling)11080 void unmarshal_VkDisplayPowerInfoEXT(
11081     VulkanStreamGuest* vkStream,
11082     VkDisplayPowerInfoEXT* forUnmarshaling)
11083 {
11084     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11085     size_t pNext_size;
11086     pNext_size = vkStream->getBe32();
11087     if (pNext_size)
11088     {
11089         uint64_t pNext_placeholder;
11090         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11091         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11092     }
11093     vkStream->read((VkDisplayPowerStateEXT*)&forUnmarshaling->powerState, sizeof(VkDisplayPowerStateEXT));
11094 }
11095 
marshal_VkDeviceEventInfoEXT(VulkanStreamGuest * vkStream,const VkDeviceEventInfoEXT * forMarshaling)11096 void marshal_VkDeviceEventInfoEXT(
11097     VulkanStreamGuest* vkStream,
11098     const VkDeviceEventInfoEXT* forMarshaling)
11099 {
11100     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11101     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11102     vkStream->putBe32(pNext_size);
11103     if (pNext_size)
11104     {
11105         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11106         marshal_extension_struct(vkStream, forMarshaling->pNext);
11107     }
11108     vkStream->write((VkDeviceEventTypeEXT*)&forMarshaling->deviceEvent, sizeof(VkDeviceEventTypeEXT));
11109 }
11110 
unmarshal_VkDeviceEventInfoEXT(VulkanStreamGuest * vkStream,VkDeviceEventInfoEXT * forUnmarshaling)11111 void unmarshal_VkDeviceEventInfoEXT(
11112     VulkanStreamGuest* vkStream,
11113     VkDeviceEventInfoEXT* forUnmarshaling)
11114 {
11115     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11116     size_t pNext_size;
11117     pNext_size = vkStream->getBe32();
11118     if (pNext_size)
11119     {
11120         uint64_t pNext_placeholder;
11121         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11122         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11123     }
11124     vkStream->read((VkDeviceEventTypeEXT*)&forUnmarshaling->deviceEvent, sizeof(VkDeviceEventTypeEXT));
11125 }
11126 
marshal_VkDisplayEventInfoEXT(VulkanStreamGuest * vkStream,const VkDisplayEventInfoEXT * forMarshaling)11127 void marshal_VkDisplayEventInfoEXT(
11128     VulkanStreamGuest* vkStream,
11129     const VkDisplayEventInfoEXT* forMarshaling)
11130 {
11131     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11132     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11133     vkStream->putBe32(pNext_size);
11134     if (pNext_size)
11135     {
11136         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11137         marshal_extension_struct(vkStream, forMarshaling->pNext);
11138     }
11139     vkStream->write((VkDisplayEventTypeEXT*)&forMarshaling->displayEvent, sizeof(VkDisplayEventTypeEXT));
11140 }
11141 
unmarshal_VkDisplayEventInfoEXT(VulkanStreamGuest * vkStream,VkDisplayEventInfoEXT * forUnmarshaling)11142 void unmarshal_VkDisplayEventInfoEXT(
11143     VulkanStreamGuest* vkStream,
11144     VkDisplayEventInfoEXT* forUnmarshaling)
11145 {
11146     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11147     size_t pNext_size;
11148     pNext_size = vkStream->getBe32();
11149     if (pNext_size)
11150     {
11151         uint64_t pNext_placeholder;
11152         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11153         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11154     }
11155     vkStream->read((VkDisplayEventTypeEXT*)&forUnmarshaling->displayEvent, sizeof(VkDisplayEventTypeEXT));
11156 }
11157 
marshal_VkSwapchainCounterCreateInfoEXT(VulkanStreamGuest * vkStream,const VkSwapchainCounterCreateInfoEXT * forMarshaling)11158 void marshal_VkSwapchainCounterCreateInfoEXT(
11159     VulkanStreamGuest* vkStream,
11160     const VkSwapchainCounterCreateInfoEXT* forMarshaling)
11161 {
11162     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11163     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11164     vkStream->putBe32(pNext_size);
11165     if (pNext_size)
11166     {
11167         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11168         marshal_extension_struct(vkStream, forMarshaling->pNext);
11169     }
11170     vkStream->write((VkSurfaceCounterFlagsEXT*)&forMarshaling->surfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
11171 }
11172 
unmarshal_VkSwapchainCounterCreateInfoEXT(VulkanStreamGuest * vkStream,VkSwapchainCounterCreateInfoEXT * forUnmarshaling)11173 void unmarshal_VkSwapchainCounterCreateInfoEXT(
11174     VulkanStreamGuest* vkStream,
11175     VkSwapchainCounterCreateInfoEXT* forUnmarshaling)
11176 {
11177     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11178     size_t pNext_size;
11179     pNext_size = vkStream->getBe32();
11180     if (pNext_size)
11181     {
11182         uint64_t pNext_placeholder;
11183         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11184         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11185     }
11186     vkStream->read((VkSurfaceCounterFlagsEXT*)&forUnmarshaling->surfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
11187 }
11188 
11189 #endif
11190 #ifdef VK_GOOGLE_display_timing
marshal_VkRefreshCycleDurationGOOGLE(VulkanStreamGuest * vkStream,const VkRefreshCycleDurationGOOGLE * forMarshaling)11191 void marshal_VkRefreshCycleDurationGOOGLE(
11192     VulkanStreamGuest* vkStream,
11193     const VkRefreshCycleDurationGOOGLE* forMarshaling)
11194 {
11195     vkStream->write((uint64_t*)&forMarshaling->refreshDuration, sizeof(uint64_t));
11196 }
11197 
unmarshal_VkRefreshCycleDurationGOOGLE(VulkanStreamGuest * vkStream,VkRefreshCycleDurationGOOGLE * forUnmarshaling)11198 void unmarshal_VkRefreshCycleDurationGOOGLE(
11199     VulkanStreamGuest* vkStream,
11200     VkRefreshCycleDurationGOOGLE* forUnmarshaling)
11201 {
11202     vkStream->read((uint64_t*)&forUnmarshaling->refreshDuration, sizeof(uint64_t));
11203 }
11204 
marshal_VkPastPresentationTimingGOOGLE(VulkanStreamGuest * vkStream,const VkPastPresentationTimingGOOGLE * forMarshaling)11205 void marshal_VkPastPresentationTimingGOOGLE(
11206     VulkanStreamGuest* vkStream,
11207     const VkPastPresentationTimingGOOGLE* forMarshaling)
11208 {
11209     vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
11210     vkStream->write((uint64_t*)&forMarshaling->desiredPresentTime, sizeof(uint64_t));
11211     vkStream->write((uint64_t*)&forMarshaling->actualPresentTime, sizeof(uint64_t));
11212     vkStream->write((uint64_t*)&forMarshaling->earliestPresentTime, sizeof(uint64_t));
11213     vkStream->write((uint64_t*)&forMarshaling->presentMargin, sizeof(uint64_t));
11214 }
11215 
unmarshal_VkPastPresentationTimingGOOGLE(VulkanStreamGuest * vkStream,VkPastPresentationTimingGOOGLE * forUnmarshaling)11216 void unmarshal_VkPastPresentationTimingGOOGLE(
11217     VulkanStreamGuest* vkStream,
11218     VkPastPresentationTimingGOOGLE* forUnmarshaling)
11219 {
11220     vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
11221     vkStream->read((uint64_t*)&forUnmarshaling->desiredPresentTime, sizeof(uint64_t));
11222     vkStream->read((uint64_t*)&forUnmarshaling->actualPresentTime, sizeof(uint64_t));
11223     vkStream->read((uint64_t*)&forUnmarshaling->earliestPresentTime, sizeof(uint64_t));
11224     vkStream->read((uint64_t*)&forUnmarshaling->presentMargin, sizeof(uint64_t));
11225 }
11226 
marshal_VkPresentTimeGOOGLE(VulkanStreamGuest * vkStream,const VkPresentTimeGOOGLE * forMarshaling)11227 void marshal_VkPresentTimeGOOGLE(
11228     VulkanStreamGuest* vkStream,
11229     const VkPresentTimeGOOGLE* forMarshaling)
11230 {
11231     vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
11232     vkStream->write((uint64_t*)&forMarshaling->desiredPresentTime, sizeof(uint64_t));
11233 }
11234 
unmarshal_VkPresentTimeGOOGLE(VulkanStreamGuest * vkStream,VkPresentTimeGOOGLE * forUnmarshaling)11235 void unmarshal_VkPresentTimeGOOGLE(
11236     VulkanStreamGuest* vkStream,
11237     VkPresentTimeGOOGLE* forUnmarshaling)
11238 {
11239     vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
11240     vkStream->read((uint64_t*)&forUnmarshaling->desiredPresentTime, sizeof(uint64_t));
11241 }
11242 
marshal_VkPresentTimesInfoGOOGLE(VulkanStreamGuest * vkStream,const VkPresentTimesInfoGOOGLE * forMarshaling)11243 void marshal_VkPresentTimesInfoGOOGLE(
11244     VulkanStreamGuest* vkStream,
11245     const VkPresentTimesInfoGOOGLE* forMarshaling)
11246 {
11247     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11248     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11249     vkStream->putBe32(pNext_size);
11250     if (pNext_size)
11251     {
11252         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11253         marshal_extension_struct(vkStream, forMarshaling->pNext);
11254     }
11255     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
11256     // WARNING PTR CHECK
11257     uint64_t cgen_var_334 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
11258     vkStream->putBe64(cgen_var_334);
11259     if (forMarshaling->pTimes)
11260     {
11261         for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
11262         {
11263             marshal_VkPresentTimeGOOGLE(vkStream, (const VkPresentTimeGOOGLE*)(forMarshaling->pTimes + i));
11264         }
11265     }
11266 }
11267 
unmarshal_VkPresentTimesInfoGOOGLE(VulkanStreamGuest * vkStream,VkPresentTimesInfoGOOGLE * forUnmarshaling)11268 void unmarshal_VkPresentTimesInfoGOOGLE(
11269     VulkanStreamGuest* vkStream,
11270     VkPresentTimesInfoGOOGLE* forUnmarshaling)
11271 {
11272     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11273     size_t pNext_size;
11274     pNext_size = vkStream->getBe32();
11275     if (pNext_size)
11276     {
11277         uint64_t pNext_placeholder;
11278         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11279         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11280     }
11281     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
11282     // WARNING PTR CHECK
11283     const VkPresentTimeGOOGLE* check_pTimes;
11284     check_pTimes = (const VkPresentTimeGOOGLE*)(uintptr_t)vkStream->getBe64();
11285     if (forUnmarshaling->pTimes)
11286     {
11287         if (!(check_pTimes))
11288         {
11289             fprintf(stderr, "fatal: forUnmarshaling->pTimes inconsistent between guest and host\n");
11290         }
11291         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
11292         {
11293             unmarshal_VkPresentTimeGOOGLE(vkStream, (VkPresentTimeGOOGLE*)(forUnmarshaling->pTimes + i));
11294         }
11295     }
11296 }
11297 
11298 #endif
11299 #ifdef VK_NV_sample_mask_override_coverage
11300 #endif
11301 #ifdef VK_NV_geometry_shader_passthrough
11302 #endif
11303 #ifdef VK_NV_viewport_array2
11304 #endif
11305 #ifdef VK_NVX_multiview_per_view_attributes
marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * forMarshaling)11306 void marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
11307     VulkanStreamGuest* vkStream,
11308     const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forMarshaling)
11309 {
11310     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11311     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11312     vkStream->putBe32(pNext_size);
11313     if (pNext_size)
11314     {
11315         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11316         marshal_extension_struct(vkStream, forMarshaling->pNext);
11317     }
11318     vkStream->write((VkBool32*)&forMarshaling->perViewPositionAllComponents, sizeof(VkBool32));
11319 }
11320 
unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VulkanStreamGuest * vkStream,VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * forUnmarshaling)11321 void unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
11322     VulkanStreamGuest* vkStream,
11323     VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forUnmarshaling)
11324 {
11325     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11326     size_t pNext_size;
11327     pNext_size = vkStream->getBe32();
11328     if (pNext_size)
11329     {
11330         uint64_t pNext_placeholder;
11331         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11332         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11333     }
11334     vkStream->read((VkBool32*)&forUnmarshaling->perViewPositionAllComponents, sizeof(VkBool32));
11335 }
11336 
11337 #endif
11338 #ifdef VK_NV_viewport_swizzle
marshal_VkViewportSwizzleNV(VulkanStreamGuest * vkStream,const VkViewportSwizzleNV * forMarshaling)11339 void marshal_VkViewportSwizzleNV(
11340     VulkanStreamGuest* vkStream,
11341     const VkViewportSwizzleNV* forMarshaling)
11342 {
11343     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->x, sizeof(VkViewportCoordinateSwizzleNV));
11344     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->y, sizeof(VkViewportCoordinateSwizzleNV));
11345     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->z, sizeof(VkViewportCoordinateSwizzleNV));
11346     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->w, sizeof(VkViewportCoordinateSwizzleNV));
11347 }
11348 
unmarshal_VkViewportSwizzleNV(VulkanStreamGuest * vkStream,VkViewportSwizzleNV * forUnmarshaling)11349 void unmarshal_VkViewportSwizzleNV(
11350     VulkanStreamGuest* vkStream,
11351     VkViewportSwizzleNV* forUnmarshaling)
11352 {
11353     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->x, sizeof(VkViewportCoordinateSwizzleNV));
11354     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->y, sizeof(VkViewportCoordinateSwizzleNV));
11355     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->z, sizeof(VkViewportCoordinateSwizzleNV));
11356     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->w, sizeof(VkViewportCoordinateSwizzleNV));
11357 }
11358 
marshal_VkPipelineViewportSwizzleStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineViewportSwizzleStateCreateInfoNV * forMarshaling)11359 void marshal_VkPipelineViewportSwizzleStateCreateInfoNV(
11360     VulkanStreamGuest* vkStream,
11361     const VkPipelineViewportSwizzleStateCreateInfoNV* forMarshaling)
11362 {
11363     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11364     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11365     vkStream->putBe32(pNext_size);
11366     if (pNext_size)
11367     {
11368         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11369         marshal_extension_struct(vkStream, forMarshaling->pNext);
11370     }
11371     vkStream->write((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
11372     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
11373     // WARNING PTR CHECK
11374     uint64_t cgen_var_336 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
11375     vkStream->putBe64(cgen_var_336);
11376     if (forMarshaling->pViewportSwizzles)
11377     {
11378         for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
11379         {
11380             marshal_VkViewportSwizzleNV(vkStream, (const VkViewportSwizzleNV*)(forMarshaling->pViewportSwizzles + i));
11381         }
11382     }
11383 }
11384 
unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineViewportSwizzleStateCreateInfoNV * forUnmarshaling)11385 void unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(
11386     VulkanStreamGuest* vkStream,
11387     VkPipelineViewportSwizzleStateCreateInfoNV* forUnmarshaling)
11388 {
11389     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11390     size_t pNext_size;
11391     pNext_size = vkStream->getBe32();
11392     if (pNext_size)
11393     {
11394         uint64_t pNext_placeholder;
11395         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11396         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11397     }
11398     vkStream->read((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forUnmarshaling->flags, sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
11399     vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
11400     // WARNING PTR CHECK
11401     const VkViewportSwizzleNV* check_pViewportSwizzles;
11402     check_pViewportSwizzles = (const VkViewportSwizzleNV*)(uintptr_t)vkStream->getBe64();
11403     if (forUnmarshaling->pViewportSwizzles)
11404     {
11405         if (!(check_pViewportSwizzles))
11406         {
11407             fprintf(stderr, "fatal: forUnmarshaling->pViewportSwizzles inconsistent between guest and host\n");
11408         }
11409         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
11410         {
11411             unmarshal_VkViewportSwizzleNV(vkStream, (VkViewportSwizzleNV*)(forUnmarshaling->pViewportSwizzles + i));
11412         }
11413     }
11414 }
11415 
11416 #endif
11417 #ifdef VK_EXT_discard_rectangles
marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceDiscardRectanglePropertiesEXT * forMarshaling)11418 void marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
11419     VulkanStreamGuest* vkStream,
11420     const VkPhysicalDeviceDiscardRectanglePropertiesEXT* forMarshaling)
11421 {
11422     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11423     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11424     vkStream->putBe32(pNext_size);
11425     if (pNext_size)
11426     {
11427         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11428         marshal_extension_struct(vkStream, forMarshaling->pNext);
11429     }
11430     vkStream->write((uint32_t*)&forMarshaling->maxDiscardRectangles, sizeof(uint32_t));
11431 }
11432 
unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceDiscardRectanglePropertiesEXT * forUnmarshaling)11433 void unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
11434     VulkanStreamGuest* vkStream,
11435     VkPhysicalDeviceDiscardRectanglePropertiesEXT* forUnmarshaling)
11436 {
11437     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11438     size_t pNext_size;
11439     pNext_size = vkStream->getBe32();
11440     if (pNext_size)
11441     {
11442         uint64_t pNext_placeholder;
11443         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11444         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11445     }
11446     vkStream->read((uint32_t*)&forUnmarshaling->maxDiscardRectangles, sizeof(uint32_t));
11447 }
11448 
marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineDiscardRectangleStateCreateInfoEXT * forMarshaling)11449 void marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
11450     VulkanStreamGuest* vkStream,
11451     const VkPipelineDiscardRectangleStateCreateInfoEXT* forMarshaling)
11452 {
11453     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11454     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11455     vkStream->putBe32(pNext_size);
11456     if (pNext_size)
11457     {
11458         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11459         marshal_extension_struct(vkStream, forMarshaling->pNext);
11460     }
11461     vkStream->write((VkPipelineDiscardRectangleStateCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineDiscardRectangleStateCreateFlagsEXT));
11462     vkStream->write((VkDiscardRectangleModeEXT*)&forMarshaling->discardRectangleMode, sizeof(VkDiscardRectangleModeEXT));
11463     vkStream->write((uint32_t*)&forMarshaling->discardRectangleCount, sizeof(uint32_t));
11464     // WARNING PTR CHECK
11465     uint64_t cgen_var_338 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
11466     vkStream->putBe64(cgen_var_338);
11467     if (forMarshaling->pDiscardRectangles)
11468     {
11469         for (uint32_t i = 0; i < (uint32_t)forMarshaling->discardRectangleCount; ++i)
11470         {
11471             marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDiscardRectangles + i));
11472         }
11473     }
11474 }
11475 
unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineDiscardRectangleStateCreateInfoEXT * forUnmarshaling)11476 void unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
11477     VulkanStreamGuest* vkStream,
11478     VkPipelineDiscardRectangleStateCreateInfoEXT* forUnmarshaling)
11479 {
11480     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11481     size_t pNext_size;
11482     pNext_size = vkStream->getBe32();
11483     if (pNext_size)
11484     {
11485         uint64_t pNext_placeholder;
11486         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11487         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11488     }
11489     vkStream->read((VkPipelineDiscardRectangleStateCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPipelineDiscardRectangleStateCreateFlagsEXT));
11490     vkStream->read((VkDiscardRectangleModeEXT*)&forUnmarshaling->discardRectangleMode, sizeof(VkDiscardRectangleModeEXT));
11491     vkStream->read((uint32_t*)&forUnmarshaling->discardRectangleCount, sizeof(uint32_t));
11492     // WARNING PTR CHECK
11493     const VkRect2D* check_pDiscardRectangles;
11494     check_pDiscardRectangles = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
11495     if (forUnmarshaling->pDiscardRectangles)
11496     {
11497         if (!(check_pDiscardRectangles))
11498         {
11499             fprintf(stderr, "fatal: forUnmarshaling->pDiscardRectangles inconsistent between guest and host\n");
11500         }
11501         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->discardRectangleCount; ++i)
11502         {
11503             unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDiscardRectangles + i));
11504         }
11505     }
11506 }
11507 
11508 #endif
11509 #ifdef VK_EXT_conservative_rasterization
marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceConservativeRasterizationPropertiesEXT * forMarshaling)11510 void marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
11511     VulkanStreamGuest* vkStream,
11512     const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forMarshaling)
11513 {
11514     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11515     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11516     vkStream->putBe32(pNext_size);
11517     if (pNext_size)
11518     {
11519         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11520         marshal_extension_struct(vkStream, forMarshaling->pNext);
11521     }
11522     vkStream->write((float*)&forMarshaling->primitiveOverestimationSize, sizeof(float));
11523     vkStream->write((float*)&forMarshaling->maxExtraPrimitiveOverestimationSize, sizeof(float));
11524     vkStream->write((float*)&forMarshaling->extraPrimitiveOverestimationSizeGranularity, sizeof(float));
11525     vkStream->write((VkBool32*)&forMarshaling->primitiveUnderestimation, sizeof(VkBool32));
11526     vkStream->write((VkBool32*)&forMarshaling->conservativePointAndLineRasterization, sizeof(VkBool32));
11527     vkStream->write((VkBool32*)&forMarshaling->degenerateTrianglesRasterized, sizeof(VkBool32));
11528     vkStream->write((VkBool32*)&forMarshaling->degenerateLinesRasterized, sizeof(VkBool32));
11529     vkStream->write((VkBool32*)&forMarshaling->fullyCoveredFragmentShaderInputVariable, sizeof(VkBool32));
11530     vkStream->write((VkBool32*)&forMarshaling->conservativeRasterizationPostDepthCoverage, sizeof(VkBool32));
11531 }
11532 
unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceConservativeRasterizationPropertiesEXT * forUnmarshaling)11533 void unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
11534     VulkanStreamGuest* vkStream,
11535     VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forUnmarshaling)
11536 {
11537     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11538     size_t pNext_size;
11539     pNext_size = vkStream->getBe32();
11540     if (pNext_size)
11541     {
11542         uint64_t pNext_placeholder;
11543         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11544         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11545     }
11546     vkStream->read((float*)&forUnmarshaling->primitiveOverestimationSize, sizeof(float));
11547     vkStream->read((float*)&forUnmarshaling->maxExtraPrimitiveOverestimationSize, sizeof(float));
11548     vkStream->read((float*)&forUnmarshaling->extraPrimitiveOverestimationSizeGranularity, sizeof(float));
11549     vkStream->read((VkBool32*)&forUnmarshaling->primitiveUnderestimation, sizeof(VkBool32));
11550     vkStream->read((VkBool32*)&forUnmarshaling->conservativePointAndLineRasterization, sizeof(VkBool32));
11551     vkStream->read((VkBool32*)&forUnmarshaling->degenerateTrianglesRasterized, sizeof(VkBool32));
11552     vkStream->read((VkBool32*)&forUnmarshaling->degenerateLinesRasterized, sizeof(VkBool32));
11553     vkStream->read((VkBool32*)&forUnmarshaling->fullyCoveredFragmentShaderInputVariable, sizeof(VkBool32));
11554     vkStream->read((VkBool32*)&forUnmarshaling->conservativeRasterizationPostDepthCoverage, sizeof(VkBool32));
11555 }
11556 
marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineRasterizationConservativeStateCreateInfoEXT * forMarshaling)11557 void marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
11558     VulkanStreamGuest* vkStream,
11559     const VkPipelineRasterizationConservativeStateCreateInfoEXT* forMarshaling)
11560 {
11561     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11562     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11563     vkStream->putBe32(pNext_size);
11564     if (pNext_size)
11565     {
11566         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11567         marshal_extension_struct(vkStream, forMarshaling->pNext);
11568     }
11569     vkStream->write((VkPipelineRasterizationConservativeStateCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineRasterizationConservativeStateCreateFlagsEXT));
11570     vkStream->write((VkConservativeRasterizationModeEXT*)&forMarshaling->conservativeRasterizationMode, sizeof(VkConservativeRasterizationModeEXT));
11571     vkStream->write((float*)&forMarshaling->extraPrimitiveOverestimationSize, sizeof(float));
11572 }
11573 
unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineRasterizationConservativeStateCreateInfoEXT * forUnmarshaling)11574 void unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
11575     VulkanStreamGuest* vkStream,
11576     VkPipelineRasterizationConservativeStateCreateInfoEXT* forUnmarshaling)
11577 {
11578     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11579     size_t pNext_size;
11580     pNext_size = vkStream->getBe32();
11581     if (pNext_size)
11582     {
11583         uint64_t pNext_placeholder;
11584         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11585         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11586     }
11587     vkStream->read((VkPipelineRasterizationConservativeStateCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPipelineRasterizationConservativeStateCreateFlagsEXT));
11588     vkStream->read((VkConservativeRasterizationModeEXT*)&forUnmarshaling->conservativeRasterizationMode, sizeof(VkConservativeRasterizationModeEXT));
11589     vkStream->read((float*)&forUnmarshaling->extraPrimitiveOverestimationSize, sizeof(float));
11590 }
11591 
11592 #endif
11593 #ifdef VK_EXT_swapchain_colorspace
11594 #endif
11595 #ifdef VK_EXT_hdr_metadata
marshal_VkXYColorEXT(VulkanStreamGuest * vkStream,const VkXYColorEXT * forMarshaling)11596 void marshal_VkXYColorEXT(
11597     VulkanStreamGuest* vkStream,
11598     const VkXYColorEXT* forMarshaling)
11599 {
11600     vkStream->write((float*)&forMarshaling->x, sizeof(float));
11601     vkStream->write((float*)&forMarshaling->y, sizeof(float));
11602 }
11603 
unmarshal_VkXYColorEXT(VulkanStreamGuest * vkStream,VkXYColorEXT * forUnmarshaling)11604 void unmarshal_VkXYColorEXT(
11605     VulkanStreamGuest* vkStream,
11606     VkXYColorEXT* forUnmarshaling)
11607 {
11608     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
11609     vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
11610 }
11611 
marshal_VkHdrMetadataEXT(VulkanStreamGuest * vkStream,const VkHdrMetadataEXT * forMarshaling)11612 void marshal_VkHdrMetadataEXT(
11613     VulkanStreamGuest* vkStream,
11614     const VkHdrMetadataEXT* forMarshaling)
11615 {
11616     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11617     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11618     vkStream->putBe32(pNext_size);
11619     if (pNext_size)
11620     {
11621         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11622         marshal_extension_struct(vkStream, forMarshaling->pNext);
11623     }
11624     marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->displayPrimaryRed));
11625     marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->displayPrimaryGreen));
11626     marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->displayPrimaryBlue));
11627     marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->whitePoint));
11628     vkStream->write((float*)&forMarshaling->maxLuminance, sizeof(float));
11629     vkStream->write((float*)&forMarshaling->minLuminance, sizeof(float));
11630     vkStream->write((float*)&forMarshaling->maxContentLightLevel, sizeof(float));
11631     vkStream->write((float*)&forMarshaling->maxFrameAverageLightLevel, sizeof(float));
11632 }
11633 
unmarshal_VkHdrMetadataEXT(VulkanStreamGuest * vkStream,VkHdrMetadataEXT * forUnmarshaling)11634 void unmarshal_VkHdrMetadataEXT(
11635     VulkanStreamGuest* vkStream,
11636     VkHdrMetadataEXT* forUnmarshaling)
11637 {
11638     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11639     size_t pNext_size;
11640     pNext_size = vkStream->getBe32();
11641     if (pNext_size)
11642     {
11643         uint64_t pNext_placeholder;
11644         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11645         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11646     }
11647     unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryRed));
11648     unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryGreen));
11649     unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryBlue));
11650     unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->whitePoint));
11651     vkStream->read((float*)&forUnmarshaling->maxLuminance, sizeof(float));
11652     vkStream->read((float*)&forUnmarshaling->minLuminance, sizeof(float));
11653     vkStream->read((float*)&forUnmarshaling->maxContentLightLevel, sizeof(float));
11654     vkStream->read((float*)&forUnmarshaling->maxFrameAverageLightLevel, sizeof(float));
11655 }
11656 
11657 #endif
11658 #ifdef VK_MVK_ios_surface
marshal_VkIOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,const VkIOSSurfaceCreateInfoMVK * forMarshaling)11659 void marshal_VkIOSSurfaceCreateInfoMVK(
11660     VulkanStreamGuest* vkStream,
11661     const VkIOSSurfaceCreateInfoMVK* forMarshaling)
11662 {
11663     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11664     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11665     vkStream->putBe32(pNext_size);
11666     if (pNext_size)
11667     {
11668         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11669         marshal_extension_struct(vkStream, forMarshaling->pNext);
11670     }
11671     vkStream->write((VkIOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkIOSSurfaceCreateFlagsMVK));
11672     // WARNING PTR CHECK
11673     uint64_t cgen_var_340 = (uint64_t)(uintptr_t)forMarshaling->pView;
11674     vkStream->putBe64(cgen_var_340);
11675     if (forMarshaling->pView)
11676     {
11677         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
11678     }
11679 }
11680 
unmarshal_VkIOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,VkIOSSurfaceCreateInfoMVK * forUnmarshaling)11681 void unmarshal_VkIOSSurfaceCreateInfoMVK(
11682     VulkanStreamGuest* vkStream,
11683     VkIOSSurfaceCreateInfoMVK* forUnmarshaling)
11684 {
11685     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11686     size_t pNext_size;
11687     pNext_size = vkStream->getBe32();
11688     if (pNext_size)
11689     {
11690         uint64_t pNext_placeholder;
11691         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11692         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11693     }
11694     vkStream->read((VkIOSSurfaceCreateFlagsMVK*)&forUnmarshaling->flags, sizeof(VkIOSSurfaceCreateFlagsMVK));
11695     // WARNING PTR CHECK
11696     const void* check_pView;
11697     check_pView = (const void*)(uintptr_t)vkStream->getBe64();
11698     if (forUnmarshaling->pView)
11699     {
11700         if (!(check_pView))
11701         {
11702             fprintf(stderr, "fatal: forUnmarshaling->pView inconsistent between guest and host\n");
11703         }
11704         vkStream->read((void*)forUnmarshaling->pView, sizeof(const uint8_t));
11705     }
11706 }
11707 
11708 #endif
11709 #ifdef VK_MVK_macos_surface
marshal_VkMacOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,const VkMacOSSurfaceCreateInfoMVK * forMarshaling)11710 void marshal_VkMacOSSurfaceCreateInfoMVK(
11711     VulkanStreamGuest* vkStream,
11712     const VkMacOSSurfaceCreateInfoMVK* forMarshaling)
11713 {
11714     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11715     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11716     vkStream->putBe32(pNext_size);
11717     if (pNext_size)
11718     {
11719         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11720         marshal_extension_struct(vkStream, forMarshaling->pNext);
11721     }
11722     vkStream->write((VkMacOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkMacOSSurfaceCreateFlagsMVK));
11723     // WARNING PTR CHECK
11724     uint64_t cgen_var_342 = (uint64_t)(uintptr_t)forMarshaling->pView;
11725     vkStream->putBe64(cgen_var_342);
11726     if (forMarshaling->pView)
11727     {
11728         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
11729     }
11730 }
11731 
unmarshal_VkMacOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,VkMacOSSurfaceCreateInfoMVK * forUnmarshaling)11732 void unmarshal_VkMacOSSurfaceCreateInfoMVK(
11733     VulkanStreamGuest* vkStream,
11734     VkMacOSSurfaceCreateInfoMVK* forUnmarshaling)
11735 {
11736     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11737     size_t pNext_size;
11738     pNext_size = vkStream->getBe32();
11739     if (pNext_size)
11740     {
11741         uint64_t pNext_placeholder;
11742         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11743         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11744     }
11745     vkStream->read((VkMacOSSurfaceCreateFlagsMVK*)&forUnmarshaling->flags, sizeof(VkMacOSSurfaceCreateFlagsMVK));
11746     // WARNING PTR CHECK
11747     const void* check_pView;
11748     check_pView = (const void*)(uintptr_t)vkStream->getBe64();
11749     if (forUnmarshaling->pView)
11750     {
11751         if (!(check_pView))
11752         {
11753             fprintf(stderr, "fatal: forUnmarshaling->pView inconsistent between guest and host\n");
11754         }
11755         vkStream->read((void*)forUnmarshaling->pView, sizeof(const uint8_t));
11756     }
11757 }
11758 
11759 #endif
11760 #ifdef VK_EXT_external_memory_dma_buf
11761 #endif
11762 #ifdef VK_EXT_queue_family_foreign
11763 #endif
11764 #ifdef VK_EXT_debug_utils
marshal_VkDebugUtilsObjectNameInfoEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsObjectNameInfoEXT * forMarshaling)11765 void marshal_VkDebugUtilsObjectNameInfoEXT(
11766     VulkanStreamGuest* vkStream,
11767     const VkDebugUtilsObjectNameInfoEXT* forMarshaling)
11768 {
11769     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11770     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11771     vkStream->putBe32(pNext_size);
11772     if (pNext_size)
11773     {
11774         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11775         marshal_extension_struct(vkStream, forMarshaling->pNext);
11776     }
11777     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
11778     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
11779     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
11780     {
11781         // WARNING PTR CHECK
11782         uint64_t cgen_var_344 = (uint64_t)(uintptr_t)forMarshaling->pObjectName;
11783         vkStream->putBe64(cgen_var_344);
11784         if (forMarshaling->pObjectName)
11785         {
11786             vkStream->putString(forMarshaling->pObjectName);
11787         }
11788     }
11789     else
11790     {
11791         vkStream->putString(forMarshaling->pObjectName);
11792     }
11793 }
11794 
unmarshal_VkDebugUtilsObjectNameInfoEXT(VulkanStreamGuest * vkStream,VkDebugUtilsObjectNameInfoEXT * forUnmarshaling)11795 void unmarshal_VkDebugUtilsObjectNameInfoEXT(
11796     VulkanStreamGuest* vkStream,
11797     VkDebugUtilsObjectNameInfoEXT* forUnmarshaling)
11798 {
11799     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11800     size_t pNext_size;
11801     pNext_size = vkStream->getBe32();
11802     if (pNext_size)
11803     {
11804         uint64_t pNext_placeholder;
11805         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11806         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11807     }
11808     vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
11809     vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
11810     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
11811     {
11812         // WARNING PTR CHECK
11813         const char* check_pObjectName;
11814         check_pObjectName = (const char*)(uintptr_t)vkStream->getBe64();
11815         if (forUnmarshaling->pObjectName)
11816         {
11817             if (!(check_pObjectName))
11818             {
11819                 fprintf(stderr, "fatal: forUnmarshaling->pObjectName inconsistent between guest and host\n");
11820             }
11821             vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
11822         }
11823     }
11824     else
11825     {
11826         vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
11827     }
11828 }
11829 
marshal_VkDebugUtilsObjectTagInfoEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsObjectTagInfoEXT * forMarshaling)11830 void marshal_VkDebugUtilsObjectTagInfoEXT(
11831     VulkanStreamGuest* vkStream,
11832     const VkDebugUtilsObjectTagInfoEXT* forMarshaling)
11833 {
11834     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11835     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11836     vkStream->putBe32(pNext_size);
11837     if (pNext_size)
11838     {
11839         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11840         marshal_extension_struct(vkStream, forMarshaling->pNext);
11841     }
11842     vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
11843     vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
11844     vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
11845     uint64_t cgen_var_346 = (uint64_t)forMarshaling->tagSize;
11846     vkStream->putBe64(cgen_var_346);
11847     vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
11848 }
11849 
unmarshal_VkDebugUtilsObjectTagInfoEXT(VulkanStreamGuest * vkStream,VkDebugUtilsObjectTagInfoEXT * forUnmarshaling)11850 void unmarshal_VkDebugUtilsObjectTagInfoEXT(
11851     VulkanStreamGuest* vkStream,
11852     VkDebugUtilsObjectTagInfoEXT* forUnmarshaling)
11853 {
11854     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11855     size_t pNext_size;
11856     pNext_size = vkStream->getBe32();
11857     if (pNext_size)
11858     {
11859         uint64_t pNext_placeholder;
11860         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11861         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11862     }
11863     vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
11864     vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
11865     vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
11866     forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
11867     vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
11868 }
11869 
marshal_VkDebugUtilsLabelEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsLabelEXT * forMarshaling)11870 void marshal_VkDebugUtilsLabelEXT(
11871     VulkanStreamGuest* vkStream,
11872     const VkDebugUtilsLabelEXT* forMarshaling)
11873 {
11874     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11875     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11876     vkStream->putBe32(pNext_size);
11877     if (pNext_size)
11878     {
11879         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11880         marshal_extension_struct(vkStream, forMarshaling->pNext);
11881     }
11882     vkStream->putString(forMarshaling->pLabelName);
11883     vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
11884 }
11885 
unmarshal_VkDebugUtilsLabelEXT(VulkanStreamGuest * vkStream,VkDebugUtilsLabelEXT * forUnmarshaling)11886 void unmarshal_VkDebugUtilsLabelEXT(
11887     VulkanStreamGuest* vkStream,
11888     VkDebugUtilsLabelEXT* forUnmarshaling)
11889 {
11890     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11891     size_t pNext_size;
11892     pNext_size = vkStream->getBe32();
11893     if (pNext_size)
11894     {
11895         uint64_t pNext_placeholder;
11896         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11897         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11898     }
11899     vkStream->loadStringInPlace((char**)&forUnmarshaling->pLabelName);
11900     vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
11901 }
11902 
marshal_VkDebugUtilsMessengerCallbackDataEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsMessengerCallbackDataEXT * forMarshaling)11903 void marshal_VkDebugUtilsMessengerCallbackDataEXT(
11904     VulkanStreamGuest* vkStream,
11905     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling)
11906 {
11907     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11908     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11909     vkStream->putBe32(pNext_size);
11910     if (pNext_size)
11911     {
11912         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11913         marshal_extension_struct(vkStream, forMarshaling->pNext);
11914     }
11915     vkStream->write((VkDebugUtilsMessengerCallbackDataFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT));
11916     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
11917     {
11918         // WARNING PTR CHECK
11919         uint64_t cgen_var_348 = (uint64_t)(uintptr_t)forMarshaling->pMessageIdName;
11920         vkStream->putBe64(cgen_var_348);
11921         if (forMarshaling->pMessageIdName)
11922         {
11923             vkStream->putString(forMarshaling->pMessageIdName);
11924         }
11925     }
11926     else
11927     {
11928         vkStream->putString(forMarshaling->pMessageIdName);
11929     }
11930     vkStream->write((int32_t*)&forMarshaling->messageIdNumber, sizeof(int32_t));
11931     vkStream->putString(forMarshaling->pMessage);
11932     vkStream->write((uint32_t*)&forMarshaling->queueLabelCount, sizeof(uint32_t));
11933     // WARNING PTR CHECK
11934     uint64_t cgen_var_349 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
11935     vkStream->putBe64(cgen_var_349);
11936     if (forMarshaling->pQueueLabels)
11937     {
11938         for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueLabelCount; ++i)
11939         {
11940             marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pQueueLabels + i));
11941         }
11942     }
11943     vkStream->write((uint32_t*)&forMarshaling->cmdBufLabelCount, sizeof(uint32_t));
11944     // WARNING PTR CHECK
11945     uint64_t cgen_var_350 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
11946     vkStream->putBe64(cgen_var_350);
11947     if (forMarshaling->pCmdBufLabels)
11948     {
11949         for (uint32_t i = 0; i < (uint32_t)forMarshaling->cmdBufLabelCount; ++i)
11950         {
11951             marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pCmdBufLabels + i));
11952         }
11953     }
11954     vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
11955     // WARNING PTR CHECK
11956     uint64_t cgen_var_351 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
11957     vkStream->putBe64(cgen_var_351);
11958     if (forMarshaling->pObjects)
11959     {
11960         for (uint32_t i = 0; i < (uint32_t)forMarshaling->objectCount; ++i)
11961         {
11962             marshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forMarshaling->pObjects + i));
11963         }
11964     }
11965 }
11966 
unmarshal_VkDebugUtilsMessengerCallbackDataEXT(VulkanStreamGuest * vkStream,VkDebugUtilsMessengerCallbackDataEXT * forUnmarshaling)11967 void unmarshal_VkDebugUtilsMessengerCallbackDataEXT(
11968     VulkanStreamGuest* vkStream,
11969     VkDebugUtilsMessengerCallbackDataEXT* forUnmarshaling)
11970 {
11971     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11972     size_t pNext_size;
11973     pNext_size = vkStream->getBe32();
11974     if (pNext_size)
11975     {
11976         uint64_t pNext_placeholder;
11977         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11978         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11979     }
11980     vkStream->read((VkDebugUtilsMessengerCallbackDataFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT));
11981     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
11982     {
11983         // WARNING PTR CHECK
11984         const char* check_pMessageIdName;
11985         check_pMessageIdName = (const char*)(uintptr_t)vkStream->getBe64();
11986         if (forUnmarshaling->pMessageIdName)
11987         {
11988             if (!(check_pMessageIdName))
11989             {
11990                 fprintf(stderr, "fatal: forUnmarshaling->pMessageIdName inconsistent between guest and host\n");
11991             }
11992             vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessageIdName);
11993         }
11994     }
11995     else
11996     {
11997         vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessageIdName);
11998     }
11999     vkStream->read((int32_t*)&forUnmarshaling->messageIdNumber, sizeof(int32_t));
12000     vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessage);
12001     vkStream->read((uint32_t*)&forUnmarshaling->queueLabelCount, sizeof(uint32_t));
12002     // WARNING PTR CHECK
12003     VkDebugUtilsLabelEXT* check_pQueueLabels;
12004     check_pQueueLabels = (VkDebugUtilsLabelEXT*)(uintptr_t)vkStream->getBe64();
12005     if (forUnmarshaling->pQueueLabels)
12006     {
12007         if (!(check_pQueueLabels))
12008         {
12009             fprintf(stderr, "fatal: forUnmarshaling->pQueueLabels inconsistent between guest and host\n");
12010         }
12011         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueLabelCount; ++i)
12012         {
12013             unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pQueueLabels + i));
12014         }
12015     }
12016     vkStream->read((uint32_t*)&forUnmarshaling->cmdBufLabelCount, sizeof(uint32_t));
12017     // WARNING PTR CHECK
12018     VkDebugUtilsLabelEXT* check_pCmdBufLabels;
12019     check_pCmdBufLabels = (VkDebugUtilsLabelEXT*)(uintptr_t)vkStream->getBe64();
12020     if (forUnmarshaling->pCmdBufLabels)
12021     {
12022         if (!(check_pCmdBufLabels))
12023         {
12024             fprintf(stderr, "fatal: forUnmarshaling->pCmdBufLabels inconsistent between guest and host\n");
12025         }
12026         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->cmdBufLabelCount; ++i)
12027         {
12028             unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pCmdBufLabels + i));
12029         }
12030     }
12031     vkStream->read((uint32_t*)&forUnmarshaling->objectCount, sizeof(uint32_t));
12032     // WARNING PTR CHECK
12033     VkDebugUtilsObjectNameInfoEXT* check_pObjects;
12034     check_pObjects = (VkDebugUtilsObjectNameInfoEXT*)(uintptr_t)vkStream->getBe64();
12035     if (forUnmarshaling->pObjects)
12036     {
12037         if (!(check_pObjects))
12038         {
12039             fprintf(stderr, "fatal: forUnmarshaling->pObjects inconsistent between guest and host\n");
12040         }
12041         for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->objectCount; ++i)
12042         {
12043             unmarshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forUnmarshaling->pObjects + i));
12044         }
12045     }
12046 }
12047 
marshal_VkDebugUtilsMessengerCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsMessengerCreateInfoEXT * forMarshaling)12048 void marshal_VkDebugUtilsMessengerCreateInfoEXT(
12049     VulkanStreamGuest* vkStream,
12050     const VkDebugUtilsMessengerCreateInfoEXT* forMarshaling)
12051 {
12052     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12053     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12054     vkStream->putBe32(pNext_size);
12055     if (pNext_size)
12056     {
12057         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12058         marshal_extension_struct(vkStream, forMarshaling->pNext);
12059     }
12060     vkStream->write((VkDebugUtilsMessengerCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
12061     vkStream->write((VkDebugUtilsMessageSeverityFlagsEXT*)&forMarshaling->messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
12062     vkStream->write((VkDebugUtilsMessageTypeFlagsEXT*)&forMarshaling->messageType, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
12063     uint64_t cgen_var_356 = (uint64_t)forMarshaling->pfnUserCallback;
12064     vkStream->putBe64(cgen_var_356);
12065     // WARNING PTR CHECK
12066     uint64_t cgen_var_357 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
12067     vkStream->putBe64(cgen_var_357);
12068     if (forMarshaling->pUserData)
12069     {
12070         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
12071     }
12072 }
12073 
unmarshal_VkDebugUtilsMessengerCreateInfoEXT(VulkanStreamGuest * vkStream,VkDebugUtilsMessengerCreateInfoEXT * forUnmarshaling)12074 void unmarshal_VkDebugUtilsMessengerCreateInfoEXT(
12075     VulkanStreamGuest* vkStream,
12076     VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling)
12077 {
12078     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12079     size_t pNext_size;
12080     pNext_size = vkStream->getBe32();
12081     if (pNext_size)
12082     {
12083         uint64_t pNext_placeholder;
12084         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12085         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12086     }
12087     vkStream->read((VkDebugUtilsMessengerCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
12088     vkStream->read((VkDebugUtilsMessageSeverityFlagsEXT*)&forUnmarshaling->messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
12089     vkStream->read((VkDebugUtilsMessageTypeFlagsEXT*)&forUnmarshaling->messageType, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
12090     forUnmarshaling->pfnUserCallback = (PFN_vkDebugUtilsMessengerCallbackEXT)vkStream->getBe64();
12091     // WARNING PTR CHECK
12092     void* check_pUserData;
12093     check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
12094     if (forUnmarshaling->pUserData)
12095     {
12096         if (!(check_pUserData))
12097         {
12098             fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
12099         }
12100         vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
12101     }
12102 }
12103 
12104 #endif
12105 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
marshal_VkAndroidHardwareBufferUsageANDROID(VulkanStreamGuest * vkStream,const VkAndroidHardwareBufferUsageANDROID * forMarshaling)12106 void marshal_VkAndroidHardwareBufferUsageANDROID(
12107     VulkanStreamGuest* vkStream,
12108     const VkAndroidHardwareBufferUsageANDROID* forMarshaling)
12109 {
12110     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12111     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12112     vkStream->putBe32(pNext_size);
12113     if (pNext_size)
12114     {
12115         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12116         marshal_extension_struct(vkStream, forMarshaling->pNext);
12117     }
12118     vkStream->write((uint64_t*)&forMarshaling->androidHardwareBufferUsage, sizeof(uint64_t));
12119 }
12120 
unmarshal_VkAndroidHardwareBufferUsageANDROID(VulkanStreamGuest * vkStream,VkAndroidHardwareBufferUsageANDROID * forUnmarshaling)12121 void unmarshal_VkAndroidHardwareBufferUsageANDROID(
12122     VulkanStreamGuest* vkStream,
12123     VkAndroidHardwareBufferUsageANDROID* forUnmarshaling)
12124 {
12125     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12126     size_t pNext_size;
12127     pNext_size = vkStream->getBe32();
12128     if (pNext_size)
12129     {
12130         uint64_t pNext_placeholder;
12131         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12132         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12133     }
12134     vkStream->read((uint64_t*)&forUnmarshaling->androidHardwareBufferUsage, sizeof(uint64_t));
12135 }
12136 
marshal_VkAndroidHardwareBufferPropertiesANDROID(VulkanStreamGuest * vkStream,const VkAndroidHardwareBufferPropertiesANDROID * forMarshaling)12137 void marshal_VkAndroidHardwareBufferPropertiesANDROID(
12138     VulkanStreamGuest* vkStream,
12139     const VkAndroidHardwareBufferPropertiesANDROID* forMarshaling)
12140 {
12141     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12142     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12143     vkStream->putBe32(pNext_size);
12144     if (pNext_size)
12145     {
12146         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12147         marshal_extension_struct(vkStream, forMarshaling->pNext);
12148     }
12149     vkStream->write((VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
12150     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
12151 }
12152 
unmarshal_VkAndroidHardwareBufferPropertiesANDROID(VulkanStreamGuest * vkStream,VkAndroidHardwareBufferPropertiesANDROID * forUnmarshaling)12153 void unmarshal_VkAndroidHardwareBufferPropertiesANDROID(
12154     VulkanStreamGuest* vkStream,
12155     VkAndroidHardwareBufferPropertiesANDROID* forUnmarshaling)
12156 {
12157     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12158     size_t pNext_size;
12159     pNext_size = vkStream->getBe32();
12160     if (pNext_size)
12161     {
12162         uint64_t pNext_placeholder;
12163         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12164         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12165     }
12166     vkStream->read((VkDeviceSize*)&forUnmarshaling->allocationSize, sizeof(VkDeviceSize));
12167     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
12168 }
12169 
marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(VulkanStreamGuest * vkStream,const VkAndroidHardwareBufferFormatPropertiesANDROID * forMarshaling)12170 void marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
12171     VulkanStreamGuest* vkStream,
12172     const VkAndroidHardwareBufferFormatPropertiesANDROID* forMarshaling)
12173 {
12174     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12175     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12176     vkStream->putBe32(pNext_size);
12177     if (pNext_size)
12178     {
12179         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12180         marshal_extension_struct(vkStream, forMarshaling->pNext);
12181     }
12182     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
12183     vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
12184     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->formatFeatures, sizeof(VkFormatFeatureFlags));
12185     marshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents));
12186     vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
12187     vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
12188     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
12189     vkStream->write((VkChromaLocation*)&forMarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
12190 }
12191 
unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(VulkanStreamGuest * vkStream,VkAndroidHardwareBufferFormatPropertiesANDROID * forUnmarshaling)12192 void unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
12193     VulkanStreamGuest* vkStream,
12194     VkAndroidHardwareBufferFormatPropertiesANDROID* forUnmarshaling)
12195 {
12196     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12197     size_t pNext_size;
12198     pNext_size = vkStream->getBe32();
12199     if (pNext_size)
12200     {
12201         uint64_t pNext_placeholder;
12202         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12203         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12204     }
12205     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
12206     vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
12207     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->formatFeatures, sizeof(VkFormatFeatureFlags));
12208     unmarshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forUnmarshaling->samplerYcbcrConversionComponents));
12209     vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
12210     vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
12211     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
12212     vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
12213 }
12214 
marshal_VkImportAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,const VkImportAndroidHardwareBufferInfoANDROID * forMarshaling)12215 void marshal_VkImportAndroidHardwareBufferInfoANDROID(
12216     VulkanStreamGuest* vkStream,
12217     const VkImportAndroidHardwareBufferInfoANDROID* forMarshaling)
12218 {
12219     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12220     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12221     vkStream->putBe32(pNext_size);
12222     if (pNext_size)
12223     {
12224         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12225         marshal_extension_struct(vkStream, forMarshaling->pNext);
12226     }
12227     vkStream->write((AHardwareBuffer*)forMarshaling->buffer, sizeof(AHardwareBuffer));
12228 }
12229 
unmarshal_VkImportAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,VkImportAndroidHardwareBufferInfoANDROID * forUnmarshaling)12230 void unmarshal_VkImportAndroidHardwareBufferInfoANDROID(
12231     VulkanStreamGuest* vkStream,
12232     VkImportAndroidHardwareBufferInfoANDROID* forUnmarshaling)
12233 {
12234     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12235     size_t pNext_size;
12236     pNext_size = vkStream->getBe32();
12237     if (pNext_size)
12238     {
12239         uint64_t pNext_placeholder;
12240         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12241         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12242     }
12243     vkStream->read((AHardwareBuffer*)forUnmarshaling->buffer, sizeof(AHardwareBuffer));
12244 }
12245 
marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,const VkMemoryGetAndroidHardwareBufferInfoANDROID * forMarshaling)12246 void marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
12247     VulkanStreamGuest* vkStream,
12248     const VkMemoryGetAndroidHardwareBufferInfoANDROID* forMarshaling)
12249 {
12250     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12251     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12252     vkStream->putBe32(pNext_size);
12253     if (pNext_size)
12254     {
12255         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12256         marshal_extension_struct(vkStream, forMarshaling->pNext);
12257     }
12258     uint64_t cgen_var_360;
12259     vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_360, 1);
12260     vkStream->write((uint64_t*)&cgen_var_360, 1 * 8);
12261 }
12262 
unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,VkMemoryGetAndroidHardwareBufferInfoANDROID * forUnmarshaling)12263 void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
12264     VulkanStreamGuest* vkStream,
12265     VkMemoryGetAndroidHardwareBufferInfoANDROID* forUnmarshaling)
12266 {
12267     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12268     size_t pNext_size;
12269     pNext_size = vkStream->getBe32();
12270     if (pNext_size)
12271     {
12272         uint64_t pNext_placeholder;
12273         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12274         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12275     }
12276     uint64_t cgen_var_361;
12277     vkStream->read((uint64_t*)&cgen_var_361, 1 * 8);
12278     vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_361, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
12279 }
12280 
marshal_VkExternalFormatANDROID(VulkanStreamGuest * vkStream,const VkExternalFormatANDROID * forMarshaling)12281 void marshal_VkExternalFormatANDROID(
12282     VulkanStreamGuest* vkStream,
12283     const VkExternalFormatANDROID* forMarshaling)
12284 {
12285     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12286     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12287     vkStream->putBe32(pNext_size);
12288     if (pNext_size)
12289     {
12290         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12291         marshal_extension_struct(vkStream, forMarshaling->pNext);
12292     }
12293     vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
12294 }
12295 
unmarshal_VkExternalFormatANDROID(VulkanStreamGuest * vkStream,VkExternalFormatANDROID * forUnmarshaling)12296 void unmarshal_VkExternalFormatANDROID(
12297     VulkanStreamGuest* vkStream,
12298     VkExternalFormatANDROID* forUnmarshaling)
12299 {
12300     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12301     size_t pNext_size;
12302     pNext_size = vkStream->getBe32();
12303     if (pNext_size)
12304     {
12305         uint64_t pNext_placeholder;
12306         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12307         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12308     }
12309     vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
12310 }
12311 
12312 #endif
12313 #ifdef VK_EXT_sampler_filter_minmax
marshal_VkSamplerReductionModeCreateInfoEXT(VulkanStreamGuest * vkStream,const VkSamplerReductionModeCreateInfoEXT * forMarshaling)12314 void marshal_VkSamplerReductionModeCreateInfoEXT(
12315     VulkanStreamGuest* vkStream,
12316     const VkSamplerReductionModeCreateInfoEXT* forMarshaling)
12317 {
12318     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12319     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12320     vkStream->putBe32(pNext_size);
12321     if (pNext_size)
12322     {
12323         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12324         marshal_extension_struct(vkStream, forMarshaling->pNext);
12325     }
12326     vkStream->write((VkSamplerReductionModeEXT*)&forMarshaling->reductionMode, sizeof(VkSamplerReductionModeEXT));
12327 }
12328 
unmarshal_VkSamplerReductionModeCreateInfoEXT(VulkanStreamGuest * vkStream,VkSamplerReductionModeCreateInfoEXT * forUnmarshaling)12329 void unmarshal_VkSamplerReductionModeCreateInfoEXT(
12330     VulkanStreamGuest* vkStream,
12331     VkSamplerReductionModeCreateInfoEXT* forUnmarshaling)
12332 {
12333     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12334     size_t pNext_size;
12335     pNext_size = vkStream->getBe32();
12336     if (pNext_size)
12337     {
12338         uint64_t pNext_placeholder;
12339         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12340         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12341     }
12342     vkStream->read((VkSamplerReductionModeEXT*)&forUnmarshaling->reductionMode, sizeof(VkSamplerReductionModeEXT));
12343 }
12344 
marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT * forMarshaling)12345 void marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
12346     VulkanStreamGuest* vkStream,
12347     const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling)
12348 {
12349     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12350     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12351     vkStream->putBe32(pNext_size);
12352     if (pNext_size)
12353     {
12354         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12355         marshal_extension_struct(vkStream, forMarshaling->pNext);
12356     }
12357     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
12358     vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
12359 }
12360 
unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT * forUnmarshaling)12361 void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
12362     VulkanStreamGuest* vkStream,
12363     VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forUnmarshaling)
12364 {
12365     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12366     size_t pNext_size;
12367     pNext_size = vkStream->getBe32();
12368     if (pNext_size)
12369     {
12370         uint64_t pNext_placeholder;
12371         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12372         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12373     }
12374     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
12375     vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
12376 }
12377 
12378 #endif
12379 #ifdef VK_AMD_gpu_shader_int16
12380 #endif
12381 #ifdef VK_AMD_mixed_attachment_samples
12382 #endif
12383 #ifdef VK_AMD_shader_fragment_mask
12384 #endif
12385 #ifdef VK_EXT_shader_stencil_export
12386 #endif
12387 #ifdef VK_EXT_sample_locations
marshal_VkSampleLocationEXT(VulkanStreamGuest * vkStream,const VkSampleLocationEXT * forMarshaling)12388 void marshal_VkSampleLocationEXT(
12389     VulkanStreamGuest* vkStream,
12390     const VkSampleLocationEXT* forMarshaling)
12391 {
12392     vkStream->write((float*)&forMarshaling->x, sizeof(float));
12393     vkStream->write((float*)&forMarshaling->y, sizeof(float));
12394 }
12395 
unmarshal_VkSampleLocationEXT(VulkanStreamGuest * vkStream,VkSampleLocationEXT * forUnmarshaling)12396 void unmarshal_VkSampleLocationEXT(
12397     VulkanStreamGuest* vkStream,
12398     VkSampleLocationEXT* forUnmarshaling)
12399 {
12400     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
12401     vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
12402 }
12403 
marshal_VkSampleLocationsInfoEXT(VulkanStreamGuest * vkStream,const VkSampleLocationsInfoEXT * forMarshaling)12404 void marshal_VkSampleLocationsInfoEXT(
12405     VulkanStreamGuest* vkStream,
12406     const VkSampleLocationsInfoEXT* forMarshaling)
12407 {
12408     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12409     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12410     vkStream->putBe32(pNext_size);
12411     if (pNext_size)
12412     {
12413         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12414         marshal_extension_struct(vkStream, forMarshaling->pNext);
12415     }
12416     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->sampleLocationsPerPixel, sizeof(VkSampleCountFlagBits));
12417     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->sampleLocationGridSize));
12418     vkStream->write((uint32_t*)&forMarshaling->sampleLocationsCount, sizeof(uint32_t));
12419     for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationsCount; ++i)
12420     {
12421         marshal_VkSampleLocationEXT(vkStream, (const VkSampleLocationEXT*)(forMarshaling->pSampleLocations + i));
12422     }
12423 }
12424 
unmarshal_VkSampleLocationsInfoEXT(VulkanStreamGuest * vkStream,VkSampleLocationsInfoEXT * forUnmarshaling)12425 void unmarshal_VkSampleLocationsInfoEXT(
12426     VulkanStreamGuest* vkStream,
12427     VkSampleLocationsInfoEXT* forUnmarshaling)
12428 {
12429     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12430     size_t pNext_size;
12431     pNext_size = vkStream->getBe32();
12432     if (pNext_size)
12433     {
12434         uint64_t pNext_placeholder;
12435         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12436         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12437     }
12438     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->sampleLocationsPerPixel, sizeof(VkSampleCountFlagBits));
12439     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->sampleLocationGridSize));
12440     vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationsCount, sizeof(uint32_t));
12441     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->sampleLocationsCount; ++i)
12442     {
12443         unmarshal_VkSampleLocationEXT(vkStream, (VkSampleLocationEXT*)(forUnmarshaling->pSampleLocations + i));
12444     }
12445 }
12446 
marshal_VkAttachmentSampleLocationsEXT(VulkanStreamGuest * vkStream,const VkAttachmentSampleLocationsEXT * forMarshaling)12447 void marshal_VkAttachmentSampleLocationsEXT(
12448     VulkanStreamGuest* vkStream,
12449     const VkAttachmentSampleLocationsEXT* forMarshaling)
12450 {
12451     vkStream->write((uint32_t*)&forMarshaling->attachmentIndex, sizeof(uint32_t));
12452     marshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
12453 }
12454 
unmarshal_VkAttachmentSampleLocationsEXT(VulkanStreamGuest * vkStream,VkAttachmentSampleLocationsEXT * forUnmarshaling)12455 void unmarshal_VkAttachmentSampleLocationsEXT(
12456     VulkanStreamGuest* vkStream,
12457     VkAttachmentSampleLocationsEXT* forUnmarshaling)
12458 {
12459     vkStream->read((uint32_t*)&forUnmarshaling->attachmentIndex, sizeof(uint32_t));
12460     unmarshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
12461 }
12462 
marshal_VkSubpassSampleLocationsEXT(VulkanStreamGuest * vkStream,const VkSubpassSampleLocationsEXT * forMarshaling)12463 void marshal_VkSubpassSampleLocationsEXT(
12464     VulkanStreamGuest* vkStream,
12465     const VkSubpassSampleLocationsEXT* forMarshaling)
12466 {
12467     vkStream->write((uint32_t*)&forMarshaling->subpassIndex, sizeof(uint32_t));
12468     marshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
12469 }
12470 
unmarshal_VkSubpassSampleLocationsEXT(VulkanStreamGuest * vkStream,VkSubpassSampleLocationsEXT * forUnmarshaling)12471 void unmarshal_VkSubpassSampleLocationsEXT(
12472     VulkanStreamGuest* vkStream,
12473     VkSubpassSampleLocationsEXT* forUnmarshaling)
12474 {
12475     vkStream->read((uint32_t*)&forUnmarshaling->subpassIndex, sizeof(uint32_t));
12476     unmarshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
12477 }
12478 
marshal_VkRenderPassSampleLocationsBeginInfoEXT(VulkanStreamGuest * vkStream,const VkRenderPassSampleLocationsBeginInfoEXT * forMarshaling)12479 void marshal_VkRenderPassSampleLocationsBeginInfoEXT(
12480     VulkanStreamGuest* vkStream,
12481     const VkRenderPassSampleLocationsBeginInfoEXT* forMarshaling)
12482 {
12483     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12484     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12485     vkStream->putBe32(pNext_size);
12486     if (pNext_size)
12487     {
12488         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12489         marshal_extension_struct(vkStream, forMarshaling->pNext);
12490     }
12491     vkStream->write((uint32_t*)&forMarshaling->attachmentInitialSampleLocationsCount, sizeof(uint32_t));
12492     for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentInitialSampleLocationsCount; ++i)
12493     {
12494         marshal_VkAttachmentSampleLocationsEXT(vkStream, (const VkAttachmentSampleLocationsEXT*)(forMarshaling->pAttachmentInitialSampleLocations + i));
12495     }
12496     vkStream->write((uint32_t*)&forMarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
12497     for (uint32_t i = 0; i < (uint32_t)forMarshaling->postSubpassSampleLocationsCount; ++i)
12498     {
12499         marshal_VkSubpassSampleLocationsEXT(vkStream, (const VkSubpassSampleLocationsEXT*)(forMarshaling->pPostSubpassSampleLocations + i));
12500     }
12501 }
12502 
unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(VulkanStreamGuest * vkStream,VkRenderPassSampleLocationsBeginInfoEXT * forUnmarshaling)12503 void unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(
12504     VulkanStreamGuest* vkStream,
12505     VkRenderPassSampleLocationsBeginInfoEXT* forUnmarshaling)
12506 {
12507     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12508     size_t pNext_size;
12509     pNext_size = vkStream->getBe32();
12510     if (pNext_size)
12511     {
12512         uint64_t pNext_placeholder;
12513         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12514         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12515     }
12516     vkStream->read((uint32_t*)&forUnmarshaling->attachmentInitialSampleLocationsCount, sizeof(uint32_t));
12517     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentInitialSampleLocationsCount; ++i)
12518     {
12519         unmarshal_VkAttachmentSampleLocationsEXT(vkStream, (VkAttachmentSampleLocationsEXT*)(forUnmarshaling->pAttachmentInitialSampleLocations + i));
12520     }
12521     vkStream->read((uint32_t*)&forUnmarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
12522     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->postSubpassSampleLocationsCount; ++i)
12523     {
12524         unmarshal_VkSubpassSampleLocationsEXT(vkStream, (VkSubpassSampleLocationsEXT*)(forUnmarshaling->pPostSubpassSampleLocations + i));
12525     }
12526 }
12527 
marshal_VkPipelineSampleLocationsStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineSampleLocationsStateCreateInfoEXT * forMarshaling)12528 void marshal_VkPipelineSampleLocationsStateCreateInfoEXT(
12529     VulkanStreamGuest* vkStream,
12530     const VkPipelineSampleLocationsStateCreateInfoEXT* forMarshaling)
12531 {
12532     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12533     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12534     vkStream->putBe32(pNext_size);
12535     if (pNext_size)
12536     {
12537         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12538         marshal_extension_struct(vkStream, forMarshaling->pNext);
12539     }
12540     vkStream->write((VkBool32*)&forMarshaling->sampleLocationsEnable, sizeof(VkBool32));
12541     marshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
12542 }
12543 
unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineSampleLocationsStateCreateInfoEXT * forUnmarshaling)12544 void unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(
12545     VulkanStreamGuest* vkStream,
12546     VkPipelineSampleLocationsStateCreateInfoEXT* forUnmarshaling)
12547 {
12548     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12549     size_t pNext_size;
12550     pNext_size = vkStream->getBe32();
12551     if (pNext_size)
12552     {
12553         uint64_t pNext_placeholder;
12554         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12555         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12556     }
12557     vkStream->read((VkBool32*)&forUnmarshaling->sampleLocationsEnable, sizeof(VkBool32));
12558     unmarshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
12559 }
12560 
marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSampleLocationsPropertiesEXT * forMarshaling)12561 void marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
12562     VulkanStreamGuest* vkStream,
12563     const VkPhysicalDeviceSampleLocationsPropertiesEXT* forMarshaling)
12564 {
12565     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12566     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12567     vkStream->putBe32(pNext_size);
12568     if (pNext_size)
12569     {
12570         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12571         marshal_extension_struct(vkStream, forMarshaling->pNext);
12572     }
12573     vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleLocationSampleCounts, sizeof(VkSampleCountFlags));
12574     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxSampleLocationGridSize));
12575     vkStream->write((float*)forMarshaling->sampleLocationCoordinateRange, 2 * sizeof(float));
12576     vkStream->write((uint32_t*)&forMarshaling->sampleLocationSubPixelBits, sizeof(uint32_t));
12577     vkStream->write((VkBool32*)&forMarshaling->variableSampleLocations, sizeof(VkBool32));
12578 }
12579 
unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceSampleLocationsPropertiesEXT * forUnmarshaling)12580 void unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
12581     VulkanStreamGuest* vkStream,
12582     VkPhysicalDeviceSampleLocationsPropertiesEXT* forUnmarshaling)
12583 {
12584     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12585     size_t pNext_size;
12586     pNext_size = vkStream->getBe32();
12587     if (pNext_size)
12588     {
12589         uint64_t pNext_placeholder;
12590         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12591         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12592     }
12593     vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleLocationSampleCounts, sizeof(VkSampleCountFlags));
12594     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxSampleLocationGridSize));
12595     vkStream->read((float*)forUnmarshaling->sampleLocationCoordinateRange, 2 * sizeof(float));
12596     vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationSubPixelBits, sizeof(uint32_t));
12597     vkStream->read((VkBool32*)&forUnmarshaling->variableSampleLocations, sizeof(VkBool32));
12598 }
12599 
marshal_VkMultisamplePropertiesEXT(VulkanStreamGuest * vkStream,const VkMultisamplePropertiesEXT * forMarshaling)12600 void marshal_VkMultisamplePropertiesEXT(
12601     VulkanStreamGuest* vkStream,
12602     const VkMultisamplePropertiesEXT* forMarshaling)
12603 {
12604     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12605     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12606     vkStream->putBe32(pNext_size);
12607     if (pNext_size)
12608     {
12609         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12610         marshal_extension_struct(vkStream, forMarshaling->pNext);
12611     }
12612     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxSampleLocationGridSize));
12613 }
12614 
unmarshal_VkMultisamplePropertiesEXT(VulkanStreamGuest * vkStream,VkMultisamplePropertiesEXT * forUnmarshaling)12615 void unmarshal_VkMultisamplePropertiesEXT(
12616     VulkanStreamGuest* vkStream,
12617     VkMultisamplePropertiesEXT* forUnmarshaling)
12618 {
12619     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12620     size_t pNext_size;
12621     pNext_size = vkStream->getBe32();
12622     if (pNext_size)
12623     {
12624         uint64_t pNext_placeholder;
12625         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12626         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12627     }
12628     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxSampleLocationGridSize));
12629 }
12630 
12631 #endif
12632 #ifdef VK_EXT_blend_operation_advanced
marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * forMarshaling)12633 void marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
12634     VulkanStreamGuest* vkStream,
12635     const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forMarshaling)
12636 {
12637     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12638     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12639     vkStream->putBe32(pNext_size);
12640     if (pNext_size)
12641     {
12642         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12643         marshal_extension_struct(vkStream, forMarshaling->pNext);
12644     }
12645     vkStream->write((VkBool32*)&forMarshaling->advancedBlendCoherentOperations, sizeof(VkBool32));
12646 }
12647 
unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * forUnmarshaling)12648 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
12649     VulkanStreamGuest* vkStream,
12650     VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forUnmarshaling)
12651 {
12652     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12653     size_t pNext_size;
12654     pNext_size = vkStream->getBe32();
12655     if (pNext_size)
12656     {
12657         uint64_t pNext_placeholder;
12658         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12659         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12660     }
12661     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendCoherentOperations, sizeof(VkBool32));
12662 }
12663 
marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * forMarshaling)12664 void marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
12665     VulkanStreamGuest* vkStream,
12666     const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forMarshaling)
12667 {
12668     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12669     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12670     vkStream->putBe32(pNext_size);
12671     if (pNext_size)
12672     {
12673         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12674         marshal_extension_struct(vkStream, forMarshaling->pNext);
12675     }
12676     vkStream->write((uint32_t*)&forMarshaling->advancedBlendMaxColorAttachments, sizeof(uint32_t));
12677     vkStream->write((VkBool32*)&forMarshaling->advancedBlendIndependentBlend, sizeof(VkBool32));
12678     vkStream->write((VkBool32*)&forMarshaling->advancedBlendNonPremultipliedSrcColor, sizeof(VkBool32));
12679     vkStream->write((VkBool32*)&forMarshaling->advancedBlendNonPremultipliedDstColor, sizeof(VkBool32));
12680     vkStream->write((VkBool32*)&forMarshaling->advancedBlendCorrelatedOverlap, sizeof(VkBool32));
12681     vkStream->write((VkBool32*)&forMarshaling->advancedBlendAllOperations, sizeof(VkBool32));
12682 }
12683 
unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * forUnmarshaling)12684 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
12685     VulkanStreamGuest* vkStream,
12686     VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forUnmarshaling)
12687 {
12688     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12689     size_t pNext_size;
12690     pNext_size = vkStream->getBe32();
12691     if (pNext_size)
12692     {
12693         uint64_t pNext_placeholder;
12694         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12695         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12696     }
12697     vkStream->read((uint32_t*)&forUnmarshaling->advancedBlendMaxColorAttachments, sizeof(uint32_t));
12698     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendIndependentBlend, sizeof(VkBool32));
12699     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendNonPremultipliedSrcColor, sizeof(VkBool32));
12700     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendNonPremultipliedDstColor, sizeof(VkBool32));
12701     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendCorrelatedOverlap, sizeof(VkBool32));
12702     vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendAllOperations, sizeof(VkBool32));
12703 }
12704 
marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineColorBlendAdvancedStateCreateInfoEXT * forMarshaling)12705 void marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
12706     VulkanStreamGuest* vkStream,
12707     const VkPipelineColorBlendAdvancedStateCreateInfoEXT* forMarshaling)
12708 {
12709     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12710     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12711     vkStream->putBe32(pNext_size);
12712     if (pNext_size)
12713     {
12714         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12715         marshal_extension_struct(vkStream, forMarshaling->pNext);
12716     }
12717     vkStream->write((VkBool32*)&forMarshaling->srcPremultiplied, sizeof(VkBool32));
12718     vkStream->write((VkBool32*)&forMarshaling->dstPremultiplied, sizeof(VkBool32));
12719     vkStream->write((VkBlendOverlapEXT*)&forMarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
12720 }
12721 
unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineColorBlendAdvancedStateCreateInfoEXT * forUnmarshaling)12722 void unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
12723     VulkanStreamGuest* vkStream,
12724     VkPipelineColorBlendAdvancedStateCreateInfoEXT* forUnmarshaling)
12725 {
12726     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12727     size_t pNext_size;
12728     pNext_size = vkStream->getBe32();
12729     if (pNext_size)
12730     {
12731         uint64_t pNext_placeholder;
12732         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12733         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12734     }
12735     vkStream->read((VkBool32*)&forUnmarshaling->srcPremultiplied, sizeof(VkBool32));
12736     vkStream->read((VkBool32*)&forUnmarshaling->dstPremultiplied, sizeof(VkBool32));
12737     vkStream->read((VkBlendOverlapEXT*)&forUnmarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
12738 }
12739 
12740 #endif
12741 #ifdef VK_NV_fragment_coverage_to_color
marshal_VkPipelineCoverageToColorStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineCoverageToColorStateCreateInfoNV * forMarshaling)12742 void marshal_VkPipelineCoverageToColorStateCreateInfoNV(
12743     VulkanStreamGuest* vkStream,
12744     const VkPipelineCoverageToColorStateCreateInfoNV* forMarshaling)
12745 {
12746     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12747     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12748     vkStream->putBe32(pNext_size);
12749     if (pNext_size)
12750     {
12751         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12752         marshal_extension_struct(vkStream, forMarshaling->pNext);
12753     }
12754     vkStream->write((VkPipelineCoverageToColorStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineCoverageToColorStateCreateFlagsNV));
12755     vkStream->write((VkBool32*)&forMarshaling->coverageToColorEnable, sizeof(VkBool32));
12756     vkStream->write((uint32_t*)&forMarshaling->coverageToColorLocation, sizeof(uint32_t));
12757 }
12758 
unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineCoverageToColorStateCreateInfoNV * forUnmarshaling)12759 void unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(
12760     VulkanStreamGuest* vkStream,
12761     VkPipelineCoverageToColorStateCreateInfoNV* forUnmarshaling)
12762 {
12763     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12764     size_t pNext_size;
12765     pNext_size = vkStream->getBe32();
12766     if (pNext_size)
12767     {
12768         uint64_t pNext_placeholder;
12769         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12770         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12771     }
12772     vkStream->read((VkPipelineCoverageToColorStateCreateFlagsNV*)&forUnmarshaling->flags, sizeof(VkPipelineCoverageToColorStateCreateFlagsNV));
12773     vkStream->read((VkBool32*)&forUnmarshaling->coverageToColorEnable, sizeof(VkBool32));
12774     vkStream->read((uint32_t*)&forUnmarshaling->coverageToColorLocation, sizeof(uint32_t));
12775 }
12776 
12777 #endif
12778 #ifdef VK_NV_framebuffer_mixed_samples
marshal_VkPipelineCoverageModulationStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineCoverageModulationStateCreateInfoNV * forMarshaling)12779 void marshal_VkPipelineCoverageModulationStateCreateInfoNV(
12780     VulkanStreamGuest* vkStream,
12781     const VkPipelineCoverageModulationStateCreateInfoNV* forMarshaling)
12782 {
12783     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12784     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12785     vkStream->putBe32(pNext_size);
12786     if (pNext_size)
12787     {
12788         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12789         marshal_extension_struct(vkStream, forMarshaling->pNext);
12790     }
12791     vkStream->write((VkPipelineCoverageModulationStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineCoverageModulationStateCreateFlagsNV));
12792     vkStream->write((VkCoverageModulationModeNV*)&forMarshaling->coverageModulationMode, sizeof(VkCoverageModulationModeNV));
12793     vkStream->write((VkBool32*)&forMarshaling->coverageModulationTableEnable, sizeof(VkBool32));
12794     vkStream->write((uint32_t*)&forMarshaling->coverageModulationTableCount, sizeof(uint32_t));
12795     // WARNING PTR CHECK
12796     uint64_t cgen_var_362 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
12797     vkStream->putBe64(cgen_var_362);
12798     if (forMarshaling->pCoverageModulationTable)
12799     {
12800         vkStream->write((const float*)forMarshaling->pCoverageModulationTable, forMarshaling->coverageModulationTableCount * sizeof(const float));
12801     }
12802 }
12803 
unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineCoverageModulationStateCreateInfoNV * forUnmarshaling)12804 void unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(
12805     VulkanStreamGuest* vkStream,
12806     VkPipelineCoverageModulationStateCreateInfoNV* forUnmarshaling)
12807 {
12808     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12809     size_t pNext_size;
12810     pNext_size = vkStream->getBe32();
12811     if (pNext_size)
12812     {
12813         uint64_t pNext_placeholder;
12814         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12815         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12816     }
12817     vkStream->read((VkPipelineCoverageModulationStateCreateFlagsNV*)&forUnmarshaling->flags, sizeof(VkPipelineCoverageModulationStateCreateFlagsNV));
12818     vkStream->read((VkCoverageModulationModeNV*)&forUnmarshaling->coverageModulationMode, sizeof(VkCoverageModulationModeNV));
12819     vkStream->read((VkBool32*)&forUnmarshaling->coverageModulationTableEnable, sizeof(VkBool32));
12820     vkStream->read((uint32_t*)&forUnmarshaling->coverageModulationTableCount, sizeof(uint32_t));
12821     // WARNING PTR CHECK
12822     const float* check_pCoverageModulationTable;
12823     check_pCoverageModulationTable = (const float*)(uintptr_t)vkStream->getBe64();
12824     if (forUnmarshaling->pCoverageModulationTable)
12825     {
12826         if (!(check_pCoverageModulationTable))
12827         {
12828             fprintf(stderr, "fatal: forUnmarshaling->pCoverageModulationTable inconsistent between guest and host\n");
12829         }
12830         vkStream->read((float*)forUnmarshaling->pCoverageModulationTable, forUnmarshaling->coverageModulationTableCount * sizeof(const float));
12831     }
12832 }
12833 
12834 #endif
12835 #ifdef VK_NV_fill_rectangle
12836 #endif
12837 #ifdef VK_EXT_post_depth_coverage
12838 #endif
12839 #ifdef VK_EXT_validation_cache
marshal_VkValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,const VkValidationCacheCreateInfoEXT * forMarshaling)12840 void marshal_VkValidationCacheCreateInfoEXT(
12841     VulkanStreamGuest* vkStream,
12842     const VkValidationCacheCreateInfoEXT* forMarshaling)
12843 {
12844     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12845     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12846     vkStream->putBe32(pNext_size);
12847     if (pNext_size)
12848     {
12849         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12850         marshal_extension_struct(vkStream, forMarshaling->pNext);
12851     }
12852     vkStream->write((VkValidationCacheCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkValidationCacheCreateFlagsEXT));
12853     uint64_t cgen_var_364 = (uint64_t)forMarshaling->initialDataSize;
12854     vkStream->putBe64(cgen_var_364);
12855     vkStream->write((const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
12856 }
12857 
unmarshal_VkValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,VkValidationCacheCreateInfoEXT * forUnmarshaling)12858 void unmarshal_VkValidationCacheCreateInfoEXT(
12859     VulkanStreamGuest* vkStream,
12860     VkValidationCacheCreateInfoEXT* forUnmarshaling)
12861 {
12862     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12863     size_t pNext_size;
12864     pNext_size = vkStream->getBe32();
12865     if (pNext_size)
12866     {
12867         uint64_t pNext_placeholder;
12868         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12869         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12870     }
12871     vkStream->read((VkValidationCacheCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkValidationCacheCreateFlagsEXT));
12872     forUnmarshaling->initialDataSize = (size_t)vkStream->getBe64();
12873     vkStream->read((void*)forUnmarshaling->pInitialData, forUnmarshaling->initialDataSize * sizeof(const uint8_t));
12874 }
12875 
marshal_VkShaderModuleValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,const VkShaderModuleValidationCacheCreateInfoEXT * forMarshaling)12876 void marshal_VkShaderModuleValidationCacheCreateInfoEXT(
12877     VulkanStreamGuest* vkStream,
12878     const VkShaderModuleValidationCacheCreateInfoEXT* forMarshaling)
12879 {
12880     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12881     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12882     vkStream->putBe32(pNext_size);
12883     if (pNext_size)
12884     {
12885         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12886         marshal_extension_struct(vkStream, forMarshaling->pNext);
12887     }
12888     uint64_t cgen_var_366;
12889     vkStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&forMarshaling->validationCache, &cgen_var_366, 1);
12890     vkStream->write((uint64_t*)&cgen_var_366, 1 * 8);
12891 }
12892 
unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,VkShaderModuleValidationCacheCreateInfoEXT * forUnmarshaling)12893 void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
12894     VulkanStreamGuest* vkStream,
12895     VkShaderModuleValidationCacheCreateInfoEXT* forUnmarshaling)
12896 {
12897     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12898     size_t pNext_size;
12899     pNext_size = vkStream->getBe32();
12900     if (pNext_size)
12901     {
12902         uint64_t pNext_placeholder;
12903         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12904         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12905     }
12906     uint64_t cgen_var_367;
12907     vkStream->read((uint64_t*)&cgen_var_367, 1 * 8);
12908     vkStream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_367, (VkValidationCacheEXT*)&forUnmarshaling->validationCache, 1);
12909 }
12910 
12911 #endif
12912 #ifdef VK_EXT_descriptor_indexing
marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT * forMarshaling)12913 void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
12914     VulkanStreamGuest* vkStream,
12915     const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling)
12916 {
12917     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12918     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12919     vkStream->putBe32(pNext_size);
12920     if (pNext_size)
12921     {
12922         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12923         marshal_extension_struct(vkStream, forMarshaling->pNext);
12924     }
12925     vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
12926     vkStream->write((const VkDescriptorBindingFlagsEXT*)forMarshaling->pBindingFlags, forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
12927 }
12928 
unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutBindingFlagsCreateInfoEXT * forUnmarshaling)12929 void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
12930     VulkanStreamGuest* vkStream,
12931     VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forUnmarshaling)
12932 {
12933     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12934     size_t pNext_size;
12935     pNext_size = vkStream->getBe32();
12936     if (pNext_size)
12937     {
12938         uint64_t pNext_placeholder;
12939         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12940         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12941     }
12942     vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
12943     vkStream->read((VkDescriptorBindingFlagsEXT*)forUnmarshaling->pBindingFlags, forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
12944 }
12945 
marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceDescriptorIndexingFeaturesEXT * forMarshaling)12946 void marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
12947     VulkanStreamGuest* vkStream,
12948     const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling)
12949 {
12950     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12951     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12952     vkStream->putBe32(pNext_size);
12953     if (pNext_size)
12954     {
12955         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12956         marshal_extension_struct(vkStream, forMarshaling->pNext);
12957     }
12958     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
12959     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12960     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12961     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
12962     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
12963     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
12964     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
12965     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
12966     vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
12967     vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
12968     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
12969     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
12970     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
12971     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
12972     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
12973     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
12974     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
12975     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
12976     vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
12977     vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
12978 }
12979 
unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceDescriptorIndexingFeaturesEXT * forUnmarshaling)12980 void unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
12981     VulkanStreamGuest* vkStream,
12982     VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forUnmarshaling)
12983 {
12984     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12985     size_t pNext_size;
12986     pNext_size = vkStream->getBe32();
12987     if (pNext_size)
12988     {
12989         uint64_t pNext_placeholder;
12990         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12991         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12992     }
12993     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
12994     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12995     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12996     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
12997     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
12998     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
12999     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
13000     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
13001     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
13002     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
13003     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
13004     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
13005     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
13006     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
13007     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
13008     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
13009     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
13010     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
13011     vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
13012     vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
13013 }
13014 
marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceDescriptorIndexingPropertiesEXT * forMarshaling)13015 void marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
13016     VulkanStreamGuest* vkStream,
13017     const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling)
13018 {
13019     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13020     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13021     vkStream->putBe32(pNext_size);
13022     if (pNext_size)
13023     {
13024         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13025         marshal_extension_struct(vkStream, forMarshaling->pNext);
13026     }
13027     vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
13028     vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
13029     vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
13030     vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
13031     vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
13032     vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
13033     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
13034     vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
13035     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
13036     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
13037     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
13038     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
13039     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
13040     vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
13041     vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
13042     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
13043     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
13044     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
13045     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
13046     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
13047     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
13048     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
13049     vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
13050 }
13051 
unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceDescriptorIndexingPropertiesEXT * forUnmarshaling)13052 void unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
13053     VulkanStreamGuest* vkStream,
13054     VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forUnmarshaling)
13055 {
13056     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13057     size_t pNext_size;
13058     pNext_size = vkStream->getBe32();
13059     if (pNext_size)
13060     {
13061         uint64_t pNext_placeholder;
13062         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13063         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13064     }
13065     vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
13066     vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
13067     vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
13068     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
13069     vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
13070     vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
13071     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
13072     vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
13073     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
13074     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
13075     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
13076     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
13077     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
13078     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
13079     vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
13080     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
13081     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
13082     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
13083     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
13084     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
13085     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
13086     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
13087     vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
13088 }
13089 
marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(VulkanStreamGuest * vkStream,const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT * forMarshaling)13090 void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
13091     VulkanStreamGuest* vkStream,
13092     const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling)
13093 {
13094     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13095     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13096     vkStream->putBe32(pNext_size);
13097     if (pNext_size)
13098     {
13099         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
13100         marshal_extension_struct(vkStream, forMarshaling->pNext);
13101     }
13102     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
13103     vkStream->write((const uint32_t*)forMarshaling->pDescriptorCounts, forMarshaling->descriptorSetCount * sizeof(const uint32_t));
13104 }
13105 
unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(VulkanStreamGuest * vkStream,VkDescriptorSetVariableDescriptorCountAllocateInfoEXT * forUnmarshaling)13106 void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
13107     VulkanStreamGuest* vkStream,
13108     VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forUnmarshaling)
13109 {
13110     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13111     size_t pNext_size;
13112     pNext_size = vkStream->getBe32();
13113     if (pNext_size)
13114     {
13115         uint64_t pNext_placeholder;
13116         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13117         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13118     }
13119     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
13120     vkStream->read((uint32_t*)forUnmarshaling->pDescriptorCounts, forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
13121 }
13122 
marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(VulkanStreamGuest * vkStream,const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT * forMarshaling)13123 void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
13124     VulkanStreamGuest* vkStream,
13125     const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling)
13126 {
13127     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13128     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13129     vkStream->putBe32(pNext_size);
13130     if (pNext_size)
13131     {
13132         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13133         marshal_extension_struct(vkStream, forMarshaling->pNext);
13134     }
13135     vkStream->write((uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
13136 }
13137 
unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(VulkanStreamGuest * vkStream,VkDescriptorSetVariableDescriptorCountLayoutSupportEXT * forUnmarshaling)13138 void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
13139     VulkanStreamGuest* vkStream,
13140     VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forUnmarshaling)
13141 {
13142     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13143     size_t pNext_size;
13144     pNext_size = vkStream->getBe32();
13145     if (pNext_size)
13146     {
13147         uint64_t pNext_placeholder;
13148         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13149         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13150     }
13151     vkStream->read((uint32_t*)&forUnmarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
13152 }
13153 
13154 #endif
13155 #ifdef VK_EXT_shader_viewport_index_layer
13156 #endif
13157 #ifdef VK_EXT_global_priority
marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDeviceQueueGlobalPriorityCreateInfoEXT * forMarshaling)13158 void marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
13159     VulkanStreamGuest* vkStream,
13160     const VkDeviceQueueGlobalPriorityCreateInfoEXT* forMarshaling)
13161 {
13162     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13163     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13164     vkStream->putBe32(pNext_size);
13165     if (pNext_size)
13166     {
13167         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
13168         marshal_extension_struct(vkStream, forMarshaling->pNext);
13169     }
13170     vkStream->write((VkQueueGlobalPriorityEXT*)&forMarshaling->globalPriority, sizeof(VkQueueGlobalPriorityEXT));
13171 }
13172 
unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(VulkanStreamGuest * vkStream,VkDeviceQueueGlobalPriorityCreateInfoEXT * forUnmarshaling)13173 void unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
13174     VulkanStreamGuest* vkStream,
13175     VkDeviceQueueGlobalPriorityCreateInfoEXT* forUnmarshaling)
13176 {
13177     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13178     size_t pNext_size;
13179     pNext_size = vkStream->getBe32();
13180     if (pNext_size)
13181     {
13182         uint64_t pNext_placeholder;
13183         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13184         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13185     }
13186     vkStream->read((VkQueueGlobalPriorityEXT*)&forUnmarshaling->globalPriority, sizeof(VkQueueGlobalPriorityEXT));
13187 }
13188 
13189 #endif
13190 #ifdef VK_EXT_external_memory_host
marshal_VkImportMemoryHostPointerInfoEXT(VulkanStreamGuest * vkStream,const VkImportMemoryHostPointerInfoEXT * forMarshaling)13191 void marshal_VkImportMemoryHostPointerInfoEXT(
13192     VulkanStreamGuest* vkStream,
13193     const VkImportMemoryHostPointerInfoEXT* forMarshaling)
13194 {
13195     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13196     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13197     vkStream->putBe32(pNext_size);
13198     if (pNext_size)
13199     {
13200         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
13201         marshal_extension_struct(vkStream, forMarshaling->pNext);
13202     }
13203     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
13204     // WARNING PTR CHECK
13205     uint64_t cgen_var_368 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
13206     vkStream->putBe64(cgen_var_368);
13207     if (forMarshaling->pHostPointer)
13208     {
13209         vkStream->write((void*)forMarshaling->pHostPointer, sizeof(uint8_t));
13210     }
13211 }
13212 
unmarshal_VkImportMemoryHostPointerInfoEXT(VulkanStreamGuest * vkStream,VkImportMemoryHostPointerInfoEXT * forUnmarshaling)13213 void unmarshal_VkImportMemoryHostPointerInfoEXT(
13214     VulkanStreamGuest* vkStream,
13215     VkImportMemoryHostPointerInfoEXT* forUnmarshaling)
13216 {
13217     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13218     size_t pNext_size;
13219     pNext_size = vkStream->getBe32();
13220     if (pNext_size)
13221     {
13222         uint64_t pNext_placeholder;
13223         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13224         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13225     }
13226     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
13227     // WARNING PTR CHECK
13228     void* check_pHostPointer;
13229     check_pHostPointer = (void*)(uintptr_t)vkStream->getBe64();
13230     if (forUnmarshaling->pHostPointer)
13231     {
13232         if (!(check_pHostPointer))
13233         {
13234             fprintf(stderr, "fatal: forUnmarshaling->pHostPointer inconsistent between guest and host\n");
13235         }
13236         vkStream->read((void*)forUnmarshaling->pHostPointer, sizeof(uint8_t));
13237     }
13238 }
13239 
marshal_VkMemoryHostPointerPropertiesEXT(VulkanStreamGuest * vkStream,const VkMemoryHostPointerPropertiesEXT * forMarshaling)13240 void marshal_VkMemoryHostPointerPropertiesEXT(
13241     VulkanStreamGuest* vkStream,
13242     const VkMemoryHostPointerPropertiesEXT* forMarshaling)
13243 {
13244     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13245     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13246     vkStream->putBe32(pNext_size);
13247     if (pNext_size)
13248     {
13249         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13250         marshal_extension_struct(vkStream, forMarshaling->pNext);
13251     }
13252     vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
13253 }
13254 
unmarshal_VkMemoryHostPointerPropertiesEXT(VulkanStreamGuest * vkStream,VkMemoryHostPointerPropertiesEXT * forUnmarshaling)13255 void unmarshal_VkMemoryHostPointerPropertiesEXT(
13256     VulkanStreamGuest* vkStream,
13257     VkMemoryHostPointerPropertiesEXT* forUnmarshaling)
13258 {
13259     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13260     size_t pNext_size;
13261     pNext_size = vkStream->getBe32();
13262     if (pNext_size)
13263     {
13264         uint64_t pNext_placeholder;
13265         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13266         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13267     }
13268     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
13269 }
13270 
marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalMemoryHostPropertiesEXT * forMarshaling)13271 void marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
13272     VulkanStreamGuest* vkStream,
13273     const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forMarshaling)
13274 {
13275     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13276     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13277     vkStream->putBe32(pNext_size);
13278     if (pNext_size)
13279     {
13280         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13281         marshal_extension_struct(vkStream, forMarshaling->pNext);
13282     }
13283     vkStream->write((VkDeviceSize*)&forMarshaling->minImportedHostPointerAlignment, sizeof(VkDeviceSize));
13284 }
13285 
unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalMemoryHostPropertiesEXT * forUnmarshaling)13286 void unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
13287     VulkanStreamGuest* vkStream,
13288     VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling)
13289 {
13290     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13291     size_t pNext_size;
13292     pNext_size = vkStream->getBe32();
13293     if (pNext_size)
13294     {
13295         uint64_t pNext_placeholder;
13296         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13297         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13298     }
13299     vkStream->read((VkDeviceSize*)&forUnmarshaling->minImportedHostPointerAlignment, sizeof(VkDeviceSize));
13300 }
13301 
13302 #endif
13303 #ifdef VK_AMD_buffer_marker
13304 #endif
13305 #ifdef VK_AMD_shader_core_properties
marshal_VkPhysicalDeviceShaderCorePropertiesAMD(VulkanStreamGuest * vkStream,const VkPhysicalDeviceShaderCorePropertiesAMD * forMarshaling)13306 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
13307     VulkanStreamGuest* vkStream,
13308     const VkPhysicalDeviceShaderCorePropertiesAMD* forMarshaling)
13309 {
13310     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13311     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13312     vkStream->putBe32(pNext_size);
13313     if (pNext_size)
13314     {
13315         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13316         marshal_extension_struct(vkStream, forMarshaling->pNext);
13317     }
13318     vkStream->write((uint32_t*)&forMarshaling->shaderEngineCount, sizeof(uint32_t));
13319     vkStream->write((uint32_t*)&forMarshaling->shaderArraysPerEngineCount, sizeof(uint32_t));
13320     vkStream->write((uint32_t*)&forMarshaling->computeUnitsPerShaderArray, sizeof(uint32_t));
13321     vkStream->write((uint32_t*)&forMarshaling->simdPerComputeUnit, sizeof(uint32_t));
13322     vkStream->write((uint32_t*)&forMarshaling->wavefrontsPerSimd, sizeof(uint32_t));
13323     vkStream->write((uint32_t*)&forMarshaling->wavefrontSize, sizeof(uint32_t));
13324     vkStream->write((uint32_t*)&forMarshaling->sgprsPerSimd, sizeof(uint32_t));
13325     vkStream->write((uint32_t*)&forMarshaling->minSgprAllocation, sizeof(uint32_t));
13326     vkStream->write((uint32_t*)&forMarshaling->maxSgprAllocation, sizeof(uint32_t));
13327     vkStream->write((uint32_t*)&forMarshaling->sgprAllocationGranularity, sizeof(uint32_t));
13328     vkStream->write((uint32_t*)&forMarshaling->vgprsPerSimd, sizeof(uint32_t));
13329     vkStream->write((uint32_t*)&forMarshaling->minVgprAllocation, sizeof(uint32_t));
13330     vkStream->write((uint32_t*)&forMarshaling->maxVgprAllocation, sizeof(uint32_t));
13331     vkStream->write((uint32_t*)&forMarshaling->vgprAllocationGranularity, sizeof(uint32_t));
13332 }
13333 
unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(VulkanStreamGuest * vkStream,VkPhysicalDeviceShaderCorePropertiesAMD * forUnmarshaling)13334 void unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
13335     VulkanStreamGuest* vkStream,
13336     VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling)
13337 {
13338     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13339     size_t pNext_size;
13340     pNext_size = vkStream->getBe32();
13341     if (pNext_size)
13342     {
13343         uint64_t pNext_placeholder;
13344         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13345         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13346     }
13347     vkStream->read((uint32_t*)&forUnmarshaling->shaderEngineCount, sizeof(uint32_t));
13348     vkStream->read((uint32_t*)&forUnmarshaling->shaderArraysPerEngineCount, sizeof(uint32_t));
13349     vkStream->read((uint32_t*)&forUnmarshaling->computeUnitsPerShaderArray, sizeof(uint32_t));
13350     vkStream->read((uint32_t*)&forUnmarshaling->simdPerComputeUnit, sizeof(uint32_t));
13351     vkStream->read((uint32_t*)&forUnmarshaling->wavefrontsPerSimd, sizeof(uint32_t));
13352     vkStream->read((uint32_t*)&forUnmarshaling->wavefrontSize, sizeof(uint32_t));
13353     vkStream->read((uint32_t*)&forUnmarshaling->sgprsPerSimd, sizeof(uint32_t));
13354     vkStream->read((uint32_t*)&forUnmarshaling->minSgprAllocation, sizeof(uint32_t));
13355     vkStream->read((uint32_t*)&forUnmarshaling->maxSgprAllocation, sizeof(uint32_t));
13356     vkStream->read((uint32_t*)&forUnmarshaling->sgprAllocationGranularity, sizeof(uint32_t));
13357     vkStream->read((uint32_t*)&forUnmarshaling->vgprsPerSimd, sizeof(uint32_t));
13358     vkStream->read((uint32_t*)&forUnmarshaling->minVgprAllocation, sizeof(uint32_t));
13359     vkStream->read((uint32_t*)&forUnmarshaling->maxVgprAllocation, sizeof(uint32_t));
13360     vkStream->read((uint32_t*)&forUnmarshaling->vgprAllocationGranularity, sizeof(uint32_t));
13361 }
13362 
13363 #endif
13364 #ifdef VK_EXT_vertex_attribute_divisor
marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forMarshaling)13365 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
13366     VulkanStreamGuest* vkStream,
13367     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling)
13368 {
13369     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13370     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13371     vkStream->putBe32(pNext_size);
13372     if (pNext_size)
13373     {
13374         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13375         marshal_extension_struct(vkStream, forMarshaling->pNext);
13376     }
13377     vkStream->write((uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
13378 }
13379 
unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forUnmarshaling)13380 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
13381     VulkanStreamGuest* vkStream,
13382     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling)
13383 {
13384     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13385     size_t pNext_size;
13386     pNext_size = vkStream->getBe32();
13387     if (pNext_size)
13388     {
13389         uint64_t pNext_placeholder;
13390         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13391         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13392     }
13393     vkStream->read((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
13394 }
13395 
marshal_VkVertexInputBindingDivisorDescriptionEXT(VulkanStreamGuest * vkStream,const VkVertexInputBindingDivisorDescriptionEXT * forMarshaling)13396 void marshal_VkVertexInputBindingDivisorDescriptionEXT(
13397     VulkanStreamGuest* vkStream,
13398     const VkVertexInputBindingDivisorDescriptionEXT* forMarshaling)
13399 {
13400     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
13401     vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
13402 }
13403 
unmarshal_VkVertexInputBindingDivisorDescriptionEXT(VulkanStreamGuest * vkStream,VkVertexInputBindingDivisorDescriptionEXT * forUnmarshaling)13404 void unmarshal_VkVertexInputBindingDivisorDescriptionEXT(
13405     VulkanStreamGuest* vkStream,
13406     VkVertexInputBindingDivisorDescriptionEXT* forUnmarshaling)
13407 {
13408     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
13409     vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
13410 }
13411 
marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineVertexInputDivisorStateCreateInfoEXT * forMarshaling)13412 void marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
13413     VulkanStreamGuest* vkStream,
13414     const VkPipelineVertexInputDivisorStateCreateInfoEXT* forMarshaling)
13415 {
13416     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13417     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13418     vkStream->putBe32(pNext_size);
13419     if (pNext_size)
13420     {
13421         vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
13422         marshal_extension_struct(vkStream, forMarshaling->pNext);
13423     }
13424     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
13425     for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDivisorCount; ++i)
13426     {
13427         marshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (const VkVertexInputBindingDivisorDescriptionEXT*)(forMarshaling->pVertexBindingDivisors + i));
13428     }
13429 }
13430 
unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineVertexInputDivisorStateCreateInfoEXT * forUnmarshaling)13431 void unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
13432     VulkanStreamGuest* vkStream,
13433     VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling)
13434 {
13435     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13436     size_t pNext_size;
13437     pNext_size = vkStream->getBe32();
13438     if (pNext_size)
13439     {
13440         uint64_t pNext_placeholder;
13441         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13442         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13443     }
13444     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
13445     for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDivisorCount; ++i)
13446     {
13447         unmarshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (VkVertexInputBindingDivisorDescriptionEXT*)(forUnmarshaling->pVertexBindingDivisors + i));
13448     }
13449 }
13450 
13451 #endif
13452 #ifdef VK_NV_shader_subgroup_partitioned
13453 #endif
13454 #ifdef VK_NV_device_diagnostic_checkpoints
marshal_VkQueueFamilyCheckpointPropertiesNV(VulkanStreamGuest * vkStream,const VkQueueFamilyCheckpointPropertiesNV * forMarshaling)13455 void marshal_VkQueueFamilyCheckpointPropertiesNV(
13456     VulkanStreamGuest* vkStream,
13457     const VkQueueFamilyCheckpointPropertiesNV* forMarshaling)
13458 {
13459     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13460     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13461     vkStream->putBe32(pNext_size);
13462     if (pNext_size)
13463     {
13464         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13465         marshal_extension_struct(vkStream, forMarshaling->pNext);
13466     }
13467     vkStream->write((VkPipelineStageFlags*)&forMarshaling->checkpointExecutionStageMask, sizeof(VkPipelineStageFlags));
13468 }
13469 
unmarshal_VkQueueFamilyCheckpointPropertiesNV(VulkanStreamGuest * vkStream,VkQueueFamilyCheckpointPropertiesNV * forUnmarshaling)13470 void unmarshal_VkQueueFamilyCheckpointPropertiesNV(
13471     VulkanStreamGuest* vkStream,
13472     VkQueueFamilyCheckpointPropertiesNV* forUnmarshaling)
13473 {
13474     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13475     size_t pNext_size;
13476     pNext_size = vkStream->getBe32();
13477     if (pNext_size)
13478     {
13479         uint64_t pNext_placeholder;
13480         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13481         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13482     }
13483     vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->checkpointExecutionStageMask, sizeof(VkPipelineStageFlags));
13484 }
13485 
marshal_VkCheckpointDataNV(VulkanStreamGuest * vkStream,const VkCheckpointDataNV * forMarshaling)13486 void marshal_VkCheckpointDataNV(
13487     VulkanStreamGuest* vkStream,
13488     const VkCheckpointDataNV* forMarshaling)
13489 {
13490     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13491     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13492     vkStream->putBe32(pNext_size);
13493     if (pNext_size)
13494     {
13495         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13496         marshal_extension_struct(vkStream, forMarshaling->pNext);
13497     }
13498     vkStream->write((VkPipelineStageFlagBits*)&forMarshaling->stage, sizeof(VkPipelineStageFlagBits));
13499     // WARNING PTR CHECK
13500     uint64_t cgen_var_370 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
13501     vkStream->putBe64(cgen_var_370);
13502     if (forMarshaling->pCheckpointMarker)
13503     {
13504         vkStream->write((void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
13505     }
13506 }
13507 
unmarshal_VkCheckpointDataNV(VulkanStreamGuest * vkStream,VkCheckpointDataNV * forUnmarshaling)13508 void unmarshal_VkCheckpointDataNV(
13509     VulkanStreamGuest* vkStream,
13510     VkCheckpointDataNV* forUnmarshaling)
13511 {
13512     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13513     size_t pNext_size;
13514     pNext_size = vkStream->getBe32();
13515     if (pNext_size)
13516     {
13517         uint64_t pNext_placeholder;
13518         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13519         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13520     }
13521     vkStream->read((VkPipelineStageFlagBits*)&forUnmarshaling->stage, sizeof(VkPipelineStageFlagBits));
13522     // WARNING PTR CHECK
13523     void* check_pCheckpointMarker;
13524     check_pCheckpointMarker = (void*)(uintptr_t)vkStream->getBe64();
13525     if (forUnmarshaling->pCheckpointMarker)
13526     {
13527         if (!(check_pCheckpointMarker))
13528         {
13529             fprintf(stderr, "fatal: forUnmarshaling->pCheckpointMarker inconsistent between guest and host\n");
13530         }
13531         vkStream->read((void*)forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
13532     }
13533 }
13534 
13535 #endif
13536 #ifdef VK_GOOGLE_address_space
13537 #endif
13538 #ifdef VK_GOOGLE_color_buffer
marshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,const VkImportColorBufferGOOGLE * forMarshaling)13539 void marshal_VkImportColorBufferGOOGLE(
13540     VulkanStreamGuest* vkStream,
13541     const VkImportColorBufferGOOGLE* forMarshaling)
13542 {
13543     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13544     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13545     vkStream->putBe32(pNext_size);
13546     if (pNext_size)
13547     {
13548         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13549         marshal_extension_struct(vkStream, forMarshaling->pNext);
13550     }
13551     vkStream->write((uint32_t*)&forMarshaling->colorBuffer, sizeof(uint32_t));
13552 }
13553 
unmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,VkImportColorBufferGOOGLE * forUnmarshaling)13554 void unmarshal_VkImportColorBufferGOOGLE(
13555     VulkanStreamGuest* vkStream,
13556     VkImportColorBufferGOOGLE* forUnmarshaling)
13557 {
13558     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13559     size_t pNext_size;
13560     pNext_size = vkStream->getBe32();
13561     if (pNext_size)
13562     {
13563         uint64_t pNext_placeholder;
13564         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13565         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13566     }
13567     vkStream->read((uint32_t*)&forUnmarshaling->colorBuffer, sizeof(uint32_t));
13568 }
13569 
marshal_VkImportPhysicalAddressGOOGLE(VulkanStreamGuest * vkStream,const VkImportPhysicalAddressGOOGLE * forMarshaling)13570 void marshal_VkImportPhysicalAddressGOOGLE(
13571     VulkanStreamGuest* vkStream,
13572     const VkImportPhysicalAddressGOOGLE* forMarshaling)
13573 {
13574     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13575     size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13576     vkStream->putBe32(pNext_size);
13577     if (pNext_size)
13578     {
13579         vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13580         marshal_extension_struct(vkStream, forMarshaling->pNext);
13581     }
13582     vkStream->write((uint64_t*)&forMarshaling->physicalAddress, sizeof(uint64_t));
13583     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
13584     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
13585     vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
13586     vkStream->write((uint32_t*)&forMarshaling->tilingParameter, sizeof(uint32_t));
13587 }
13588 
unmarshal_VkImportPhysicalAddressGOOGLE(VulkanStreamGuest * vkStream,VkImportPhysicalAddressGOOGLE * forUnmarshaling)13589 void unmarshal_VkImportPhysicalAddressGOOGLE(
13590     VulkanStreamGuest* vkStream,
13591     VkImportPhysicalAddressGOOGLE* forUnmarshaling)
13592 {
13593     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13594     size_t pNext_size;
13595     pNext_size = vkStream->getBe32();
13596     if (pNext_size)
13597     {
13598         uint64_t pNext_placeholder;
13599         vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13600         unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13601     }
13602     vkStream->read((uint64_t*)&forUnmarshaling->physicalAddress, sizeof(uint64_t));
13603     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
13604     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
13605     vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
13606     vkStream->read((uint32_t*)&forUnmarshaling->tilingParameter, sizeof(uint32_t));
13607 }
13608 
13609 #endif
13610 #ifdef VK_GOOGLE_sized_descriptor_update_template
13611 #endif
13612 #ifdef VK_GOOGLE_async_command_buffers
13613 #endif
13614 #ifdef VK_GOOGLE_create_resources_with_requirements
13615 #endif
13616 #ifdef VK_GOOGLE_address_space_info
13617 #endif
13618 #ifdef VK_GOOGLE_free_memory_sync
13619 #endif
marshal_extension_struct(VulkanStreamGuest * vkStream,const void * structExtension)13620 void marshal_extension_struct(
13621     VulkanStreamGuest* vkStream,
13622     const void* structExtension)
13623 {
13624     if (!structExtension)
13625     {
13626         return;
13627     }
13628     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
13629     switch(structType)
13630     {
13631 #ifdef VK_VERSION_1_1
13632         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
13633         {
13634             marshal_VkPhysicalDeviceSubgroupProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension));
13635             break;
13636         }
13637         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
13638         {
13639             marshal_VkPhysicalDevice16BitStorageFeatures(vkStream, reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension));
13640             break;
13641         }
13642         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
13643         {
13644             marshal_VkMemoryDedicatedRequirements(vkStream, reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension));
13645             break;
13646         }
13647         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
13648         {
13649             marshal_VkMemoryDedicatedAllocateInfo(vkStream, reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension));
13650             break;
13651         }
13652         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
13653         {
13654             marshal_VkMemoryAllocateFlagsInfo(vkStream, reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension));
13655             break;
13656         }
13657         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
13658         {
13659             marshal_VkDeviceGroupRenderPassBeginInfo(vkStream, reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension));
13660             break;
13661         }
13662         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
13663         {
13664             marshal_VkDeviceGroupCommandBufferBeginInfo(vkStream, reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension));
13665             break;
13666         }
13667         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
13668         {
13669             marshal_VkDeviceGroupSubmitInfo(vkStream, reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension));
13670             break;
13671         }
13672         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
13673         {
13674             marshal_VkDeviceGroupBindSparseInfo(vkStream, reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension));
13675             break;
13676         }
13677         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
13678         {
13679             marshal_VkBindBufferMemoryDeviceGroupInfo(vkStream, reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension));
13680             break;
13681         }
13682         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
13683         {
13684             marshal_VkBindImageMemoryDeviceGroupInfo(vkStream, reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension));
13685             break;
13686         }
13687         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
13688         {
13689             marshal_VkDeviceGroupDeviceCreateInfo(vkStream, reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension));
13690             break;
13691         }
13692         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
13693         {
13694             marshal_VkPhysicalDeviceFeatures2(vkStream, reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension));
13695             break;
13696         }
13697         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
13698         {
13699             marshal_VkPhysicalDevicePointClippingProperties(vkStream, reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension));
13700             break;
13701         }
13702         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
13703         {
13704             marshal_VkRenderPassInputAttachmentAspectCreateInfo(vkStream, reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension));
13705             break;
13706         }
13707         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
13708         {
13709             marshal_VkImageViewUsageCreateInfo(vkStream, reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension));
13710             break;
13711         }
13712         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
13713         {
13714             marshal_VkPipelineTessellationDomainOriginStateCreateInfo(vkStream, reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension));
13715             break;
13716         }
13717         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
13718         {
13719             marshal_VkRenderPassMultiviewCreateInfo(vkStream, reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension));
13720             break;
13721         }
13722         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
13723         {
13724             marshal_VkPhysicalDeviceMultiviewFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension));
13725             break;
13726         }
13727         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
13728         {
13729             marshal_VkPhysicalDeviceMultiviewProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension));
13730             break;
13731         }
13732         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
13733         {
13734             marshal_VkPhysicalDeviceVariablePointerFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension));
13735             break;
13736         }
13737         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
13738         {
13739             marshal_VkPhysicalDeviceProtectedMemoryFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension));
13740             break;
13741         }
13742         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
13743         {
13744             marshal_VkPhysicalDeviceProtectedMemoryProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension));
13745             break;
13746         }
13747         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
13748         {
13749             marshal_VkProtectedSubmitInfo(vkStream, reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension));
13750             break;
13751         }
13752         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
13753         {
13754             marshal_VkSamplerYcbcrConversionInfo(vkStream, reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension));
13755             break;
13756         }
13757         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
13758         {
13759             marshal_VkBindImagePlaneMemoryInfo(vkStream, reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension));
13760             break;
13761         }
13762         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
13763         {
13764             marshal_VkImagePlaneMemoryRequirementsInfo(vkStream, reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension));
13765             break;
13766         }
13767         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
13768         {
13769             marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension));
13770             break;
13771         }
13772         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
13773         {
13774             marshal_VkSamplerYcbcrConversionImageFormatProperties(vkStream, reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(structExtension));
13775             break;
13776         }
13777         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
13778         {
13779             marshal_VkPhysicalDeviceExternalImageFormatInfo(vkStream, reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension));
13780             break;
13781         }
13782         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
13783         {
13784             marshal_VkExternalImageFormatProperties(vkStream, reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension));
13785             break;
13786         }
13787         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
13788         {
13789             marshal_VkPhysicalDeviceIDProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension));
13790             break;
13791         }
13792         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
13793         {
13794             marshal_VkExternalMemoryImageCreateInfo(vkStream, reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension));
13795             break;
13796         }
13797         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
13798         {
13799             marshal_VkExternalMemoryBufferCreateInfo(vkStream, reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension));
13800             break;
13801         }
13802         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
13803         {
13804             marshal_VkExportMemoryAllocateInfo(vkStream, reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension));
13805             break;
13806         }
13807         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
13808         {
13809             marshal_VkExportFenceCreateInfo(vkStream, reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension));
13810             break;
13811         }
13812         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
13813         {
13814             marshal_VkExportSemaphoreCreateInfo(vkStream, reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension));
13815             break;
13816         }
13817         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
13818         {
13819             marshal_VkPhysicalDeviceMaintenance3Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension));
13820             break;
13821         }
13822         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
13823         {
13824             marshal_VkPhysicalDeviceShaderDrawParameterFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension));
13825             break;
13826         }
13827 #endif
13828 #ifdef VK_KHR_swapchain
13829         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
13830         {
13831             marshal_VkImageSwapchainCreateInfoKHR(vkStream, reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension));
13832             break;
13833         }
13834         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
13835         {
13836             marshal_VkBindImageMemorySwapchainInfoKHR(vkStream, reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension));
13837             break;
13838         }
13839         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
13840         {
13841             marshal_VkDeviceGroupPresentInfoKHR(vkStream, reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension));
13842             break;
13843         }
13844         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
13845         {
13846             marshal_VkDeviceGroupSwapchainCreateInfoKHR(vkStream, reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension));
13847             break;
13848         }
13849 #endif
13850 #ifdef VK_KHR_display_swapchain
13851         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
13852         {
13853             marshal_VkDisplayPresentInfoKHR(vkStream, reinterpret_cast<const VkDisplayPresentInfoKHR*>(structExtension));
13854             break;
13855         }
13856 #endif
13857 #ifdef VK_KHR_external_memory_win32
13858         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
13859         {
13860             marshal_VkImportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(structExtension));
13861             break;
13862         }
13863         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
13864         {
13865             marshal_VkExportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(structExtension));
13866             break;
13867         }
13868 #endif
13869 #ifdef VK_KHR_external_memory_fd
13870         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
13871         {
13872             marshal_VkImportMemoryFdInfoKHR(vkStream, reinterpret_cast<const VkImportMemoryFdInfoKHR*>(structExtension));
13873             break;
13874         }
13875 #endif
13876 #ifdef VK_KHR_win32_keyed_mutex
13877         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
13878         {
13879             marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(vkStream, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension));
13880             break;
13881         }
13882 #endif
13883 #ifdef VK_KHR_external_semaphore_win32
13884         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
13885         {
13886             marshal_VkExportSemaphoreWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(structExtension));
13887             break;
13888         }
13889         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
13890         {
13891             marshal_VkD3D12FenceSubmitInfoKHR(vkStream, reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(structExtension));
13892             break;
13893         }
13894 #endif
13895 #ifdef VK_KHR_push_descriptor
13896         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
13897         {
13898             marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension));
13899             break;
13900         }
13901 #endif
13902 #ifdef VK_KHR_incremental_present
13903         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
13904         {
13905             marshal_VkPresentRegionsKHR(vkStream, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension));
13906             break;
13907         }
13908 #endif
13909 #ifdef VK_KHR_shared_presentable_image
13910         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
13911         {
13912             marshal_VkSharedPresentSurfaceCapabilitiesKHR(vkStream, reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension));
13913             break;
13914         }
13915 #endif
13916 #ifdef VK_KHR_external_fence_win32
13917         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
13918         {
13919             marshal_VkExportFenceWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(structExtension));
13920             break;
13921         }
13922 #endif
13923 #ifdef VK_KHR_image_format_list
13924         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
13925         {
13926             marshal_VkImageFormatListCreateInfoKHR(vkStream, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension));
13927             break;
13928         }
13929 #endif
13930 #ifdef VK_KHR_8bit_storage
13931         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
13932         {
13933             marshal_VkPhysicalDevice8BitStorageFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension));
13934             break;
13935         }
13936 #endif
13937 #ifdef VK_ANDROID_native_buffer
13938         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
13939         {
13940             marshal_VkNativeBufferANDROID(vkStream, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension));
13941             break;
13942         }
13943 #endif
13944 #ifdef VK_EXT_debug_report
13945         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
13946         {
13947             marshal_VkDebugReportCallbackCreateInfoEXT(vkStream, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(structExtension));
13948             break;
13949         }
13950 #endif
13951 #ifdef VK_AMD_rasterization_order
13952         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
13953         {
13954             marshal_VkPipelineRasterizationStateRasterizationOrderAMD(vkStream, reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension));
13955             break;
13956         }
13957 #endif
13958 #ifdef VK_NV_dedicated_allocation
13959         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
13960         {
13961             marshal_VkDedicatedAllocationImageCreateInfoNV(vkStream, reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(structExtension));
13962             break;
13963         }
13964         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
13965         {
13966             marshal_VkDedicatedAllocationBufferCreateInfoNV(vkStream, reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(structExtension));
13967             break;
13968         }
13969         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
13970         {
13971             marshal_VkDedicatedAllocationMemoryAllocateInfoNV(vkStream, reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension));
13972             break;
13973         }
13974 #endif
13975 #ifdef VK_AMD_texture_gather_bias_lod
13976         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
13977         {
13978             marshal_VkTextureLODGatherFormatPropertiesAMD(vkStream, reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(structExtension));
13979             break;
13980         }
13981 #endif
13982 #ifdef VK_NV_external_memory
13983         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
13984         {
13985             marshal_VkExternalMemoryImageCreateInfoNV(vkStream, reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(structExtension));
13986             break;
13987         }
13988         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
13989         {
13990             marshal_VkExportMemoryAllocateInfoNV(vkStream, reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(structExtension));
13991             break;
13992         }
13993 #endif
13994 #ifdef VK_NV_external_memory_win32
13995         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
13996         {
13997             marshal_VkImportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(structExtension));
13998             break;
13999         }
14000         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
14001         {
14002             marshal_VkExportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(structExtension));
14003             break;
14004         }
14005 #endif
14006 #ifdef VK_NV_win32_keyed_mutex
14007         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
14008         {
14009             marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(vkStream, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension));
14010             break;
14011         }
14012 #endif
14013 #ifdef VK_EXT_validation_flags
14014         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
14015         {
14016             marshal_VkValidationFlagsEXT(vkStream, reinterpret_cast<const VkValidationFlagsEXT*>(structExtension));
14017             break;
14018         }
14019 #endif
14020 #ifdef VK_EXT_conditional_rendering
14021         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
14022         {
14023             marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension));
14024             break;
14025         }
14026         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
14027         {
14028             marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(vkStream, reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension));
14029             break;
14030         }
14031 #endif
14032 #ifdef VK_NV_clip_space_w_scaling
14033         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
14034         {
14035             marshal_VkPipelineViewportWScalingStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension));
14036             break;
14037         }
14038 #endif
14039 #ifdef VK_EXT_display_control
14040         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
14041         {
14042             marshal_VkSwapchainCounterCreateInfoEXT(vkStream, reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(structExtension));
14043             break;
14044         }
14045 #endif
14046 #ifdef VK_GOOGLE_display_timing
14047         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
14048         {
14049             marshal_VkPresentTimesInfoGOOGLE(vkStream, reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(structExtension));
14050             break;
14051         }
14052 #endif
14053 #ifdef VK_NVX_multiview_per_view_attributes
14054         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
14055         {
14056             marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension));
14057             break;
14058         }
14059 #endif
14060 #ifdef VK_NV_viewport_swizzle
14061         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
14062         {
14063             marshal_VkPipelineViewportSwizzleStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension));
14064             break;
14065         }
14066 #endif
14067 #ifdef VK_EXT_discard_rectangles
14068         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
14069         {
14070             marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension));
14071             break;
14072         }
14073         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
14074         {
14075             marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension));
14076             break;
14077         }
14078 #endif
14079 #ifdef VK_EXT_conservative_rasterization
14080         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
14081         {
14082             marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension));
14083             break;
14084         }
14085         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
14086         {
14087             marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension));
14088             break;
14089         }
14090 #endif
14091 #ifdef VK_EXT_debug_utils
14092         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
14093         {
14094             marshal_VkDebugUtilsMessengerCreateInfoEXT(vkStream, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(structExtension));
14095             break;
14096         }
14097 #endif
14098 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
14099         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
14100         {
14101             marshal_VkAndroidHardwareBufferUsageANDROID(vkStream, reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(structExtension));
14102             break;
14103         }
14104         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
14105         {
14106             marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(vkStream, reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension));
14107             break;
14108         }
14109         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
14110         {
14111             marshal_VkImportAndroidHardwareBufferInfoANDROID(vkStream, reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(structExtension));
14112             break;
14113         }
14114         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
14115         {
14116             marshal_VkExternalFormatANDROID(vkStream, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension));
14117             break;
14118         }
14119 #endif
14120 #ifdef VK_EXT_sampler_filter_minmax
14121         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
14122         {
14123             marshal_VkSamplerReductionModeCreateInfoEXT(vkStream, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension));
14124             break;
14125         }
14126         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
14127         {
14128             marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension));
14129             break;
14130         }
14131 #endif
14132 #ifdef VK_EXT_sample_locations
14133         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
14134         {
14135             marshal_VkSampleLocationsInfoEXT(vkStream, reinterpret_cast<const VkSampleLocationsInfoEXT*>(structExtension));
14136             break;
14137         }
14138         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
14139         {
14140             marshal_VkRenderPassSampleLocationsBeginInfoEXT(vkStream, reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension));
14141             break;
14142         }
14143         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
14144         {
14145             marshal_VkPipelineSampleLocationsStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension));
14146             break;
14147         }
14148         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
14149         {
14150             marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension));
14151             break;
14152         }
14153 #endif
14154 #ifdef VK_EXT_blend_operation_advanced
14155         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
14156         {
14157             marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension));
14158             break;
14159         }
14160         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
14161         {
14162             marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension));
14163             break;
14164         }
14165         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
14166         {
14167             marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension));
14168             break;
14169         }
14170 #endif
14171 #ifdef VK_NV_fragment_coverage_to_color
14172         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
14173         {
14174             marshal_VkPipelineCoverageToColorStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension));
14175             break;
14176         }
14177 #endif
14178 #ifdef VK_NV_framebuffer_mixed_samples
14179         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
14180         {
14181             marshal_VkPipelineCoverageModulationStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension));
14182             break;
14183         }
14184 #endif
14185 #ifdef VK_EXT_validation_cache
14186         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
14187         {
14188             marshal_VkShaderModuleValidationCacheCreateInfoEXT(vkStream, reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension));
14189             break;
14190         }
14191 #endif
14192 #ifdef VK_EXT_descriptor_indexing
14193         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
14194         {
14195             marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension));
14196             break;
14197         }
14198         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
14199         {
14200             marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension));
14201             break;
14202         }
14203         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
14204         {
14205             marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension));
14206             break;
14207         }
14208         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
14209         {
14210             marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension));
14211             break;
14212         }
14213         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
14214         {
14215             marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension));
14216             break;
14217         }
14218 #endif
14219 #ifdef VK_EXT_global_priority
14220         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
14221         {
14222             marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(vkStream, reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension));
14223             break;
14224         }
14225 #endif
14226 #ifdef VK_EXT_external_memory_host
14227         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
14228         {
14229             marshal_VkImportMemoryHostPointerInfoEXT(vkStream, reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(structExtension));
14230             break;
14231         }
14232         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
14233         {
14234             marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension));
14235             break;
14236         }
14237 #endif
14238 #ifdef VK_AMD_shader_core_properties
14239         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
14240         {
14241             marshal_VkPhysicalDeviceShaderCorePropertiesAMD(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension));
14242             break;
14243         }
14244 #endif
14245 #ifdef VK_EXT_vertex_attribute_divisor
14246         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
14247         {
14248             marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension));
14249             break;
14250         }
14251         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
14252         {
14253             marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension));
14254             break;
14255         }
14256 #endif
14257 #ifdef VK_NV_device_diagnostic_checkpoints
14258         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
14259         {
14260             marshal_VkQueueFamilyCheckpointPropertiesNV(vkStream, reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(structExtension));
14261             break;
14262         }
14263 #endif
14264 #ifdef VK_GOOGLE_color_buffer
14265         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
14266         {
14267             marshal_VkImportColorBufferGOOGLE(vkStream, reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
14268             break;
14269         }
14270         case VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE:
14271         {
14272             marshal_VkImportPhysicalAddressGOOGLE(vkStream, reinterpret_cast<const VkImportPhysicalAddressGOOGLE*>(structExtension));
14273             break;
14274         }
14275 #endif
14276         default:
14277         {
14278             return;
14279         }
14280     }
14281 }
14282 
unmarshal_extension_struct(VulkanStreamGuest * vkStream,void * structExtension_out)14283 void unmarshal_extension_struct(
14284     VulkanStreamGuest* vkStream,
14285     void* structExtension_out)
14286 {
14287     if (!structExtension_out)
14288     {
14289         return;
14290     }
14291     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
14292     switch(structType)
14293     {
14294 #ifdef VK_VERSION_1_1
14295         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
14296         {
14297             unmarshal_VkPhysicalDeviceSubgroupProperties(vkStream, reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
14298             break;
14299         }
14300         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
14301         {
14302             unmarshal_VkPhysicalDevice16BitStorageFeatures(vkStream, reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
14303             break;
14304         }
14305         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
14306         {
14307             unmarshal_VkMemoryDedicatedRequirements(vkStream, reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
14308             break;
14309         }
14310         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
14311         {
14312             unmarshal_VkMemoryDedicatedAllocateInfo(vkStream, reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
14313             break;
14314         }
14315         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
14316         {
14317             unmarshal_VkMemoryAllocateFlagsInfo(vkStream, reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
14318             break;
14319         }
14320         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
14321         {
14322             unmarshal_VkDeviceGroupRenderPassBeginInfo(vkStream, reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
14323             break;
14324         }
14325         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
14326         {
14327             unmarshal_VkDeviceGroupCommandBufferBeginInfo(vkStream, reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
14328             break;
14329         }
14330         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
14331         {
14332             unmarshal_VkDeviceGroupSubmitInfo(vkStream, reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
14333             break;
14334         }
14335         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
14336         {
14337             unmarshal_VkDeviceGroupBindSparseInfo(vkStream, reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
14338             break;
14339         }
14340         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
14341         {
14342             unmarshal_VkBindBufferMemoryDeviceGroupInfo(vkStream, reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
14343             break;
14344         }
14345         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
14346         {
14347             unmarshal_VkBindImageMemoryDeviceGroupInfo(vkStream, reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
14348             break;
14349         }
14350         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
14351         {
14352             unmarshal_VkDeviceGroupDeviceCreateInfo(vkStream, reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
14353             break;
14354         }
14355         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
14356         {
14357             unmarshal_VkPhysicalDeviceFeatures2(vkStream, reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
14358             break;
14359         }
14360         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
14361         {
14362             unmarshal_VkPhysicalDevicePointClippingProperties(vkStream, reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
14363             break;
14364         }
14365         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
14366         {
14367             unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(vkStream, reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out));
14368             break;
14369         }
14370         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
14371         {
14372             unmarshal_VkImageViewUsageCreateInfo(vkStream, reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
14373             break;
14374         }
14375         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
14376         {
14377             unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(vkStream, reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension_out));
14378             break;
14379         }
14380         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
14381         {
14382             unmarshal_VkRenderPassMultiviewCreateInfo(vkStream, reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
14383             break;
14384         }
14385         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
14386         {
14387             unmarshal_VkPhysicalDeviceMultiviewFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
14388             break;
14389         }
14390         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
14391         {
14392             unmarshal_VkPhysicalDeviceMultiviewProperties(vkStream, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
14393             break;
14394         }
14395         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
14396         {
14397             unmarshal_VkPhysicalDeviceVariablePointerFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
14398             break;
14399         }
14400         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
14401         {
14402             unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
14403             break;
14404         }
14405         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
14406         {
14407             unmarshal_VkPhysicalDeviceProtectedMemoryProperties(vkStream, reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
14408             break;
14409         }
14410         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
14411         {
14412             unmarshal_VkProtectedSubmitInfo(vkStream, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
14413             break;
14414         }
14415         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
14416         {
14417             unmarshal_VkSamplerYcbcrConversionInfo(vkStream, reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
14418             break;
14419         }
14420         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
14421         {
14422             unmarshal_VkBindImagePlaneMemoryInfo(vkStream, reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
14423             break;
14424         }
14425         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
14426         {
14427             unmarshal_VkImagePlaneMemoryRequirementsInfo(vkStream, reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
14428             break;
14429         }
14430         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
14431         {
14432             unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension_out));
14433             break;
14434         }
14435         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
14436         {
14437             unmarshal_VkSamplerYcbcrConversionImageFormatProperties(vkStream, reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(structExtension_out));
14438             break;
14439         }
14440         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
14441         {
14442             unmarshal_VkPhysicalDeviceExternalImageFormatInfo(vkStream, reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
14443             break;
14444         }
14445         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
14446         {
14447             unmarshal_VkExternalImageFormatProperties(vkStream, reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
14448             break;
14449         }
14450         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
14451         {
14452             unmarshal_VkPhysicalDeviceIDProperties(vkStream, reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
14453             break;
14454         }
14455         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
14456         {
14457             unmarshal_VkExternalMemoryImageCreateInfo(vkStream, reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
14458             break;
14459         }
14460         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
14461         {
14462             unmarshal_VkExternalMemoryBufferCreateInfo(vkStream, reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
14463             break;
14464         }
14465         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
14466         {
14467             unmarshal_VkExportMemoryAllocateInfo(vkStream, reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
14468             break;
14469         }
14470         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
14471         {
14472             unmarshal_VkExportFenceCreateInfo(vkStream, reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
14473             break;
14474         }
14475         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
14476         {
14477             unmarshal_VkExportSemaphoreCreateInfo(vkStream, reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
14478             break;
14479         }
14480         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
14481         {
14482             unmarshal_VkPhysicalDeviceMaintenance3Properties(vkStream, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
14483             break;
14484         }
14485         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
14486         {
14487             unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
14488             break;
14489         }
14490 #endif
14491 #ifdef VK_KHR_swapchain
14492         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
14493         {
14494             unmarshal_VkImageSwapchainCreateInfoKHR(vkStream, reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
14495             break;
14496         }
14497         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
14498         {
14499             unmarshal_VkBindImageMemorySwapchainInfoKHR(vkStream, reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
14500             break;
14501         }
14502         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
14503         {
14504             unmarshal_VkDeviceGroupPresentInfoKHR(vkStream, reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
14505             break;
14506         }
14507         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
14508         {
14509             unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(vkStream, reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
14510             break;
14511         }
14512 #endif
14513 #ifdef VK_KHR_display_swapchain
14514         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
14515         {
14516             unmarshal_VkDisplayPresentInfoKHR(vkStream, reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out));
14517             break;
14518         }
14519 #endif
14520 #ifdef VK_KHR_external_memory_win32
14521         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
14522         {
14523             unmarshal_VkImportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out));
14524             break;
14525         }
14526         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
14527         {
14528             unmarshal_VkExportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out));
14529             break;
14530         }
14531 #endif
14532 #ifdef VK_KHR_external_memory_fd
14533         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
14534         {
14535             unmarshal_VkImportMemoryFdInfoKHR(vkStream, reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out));
14536             break;
14537         }
14538 #endif
14539 #ifdef VK_KHR_win32_keyed_mutex
14540         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
14541         {
14542             unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(vkStream, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out));
14543             break;
14544         }
14545 #endif
14546 #ifdef VK_KHR_external_semaphore_win32
14547         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
14548         {
14549             unmarshal_VkExportSemaphoreWin32HandleInfoKHR(vkStream, reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out));
14550             break;
14551         }
14552         case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
14553         {
14554             unmarshal_VkD3D12FenceSubmitInfoKHR(vkStream, reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out));
14555             break;
14556         }
14557 #endif
14558 #ifdef VK_KHR_push_descriptor
14559         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
14560         {
14561             unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(vkStream, reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension_out));
14562             break;
14563         }
14564 #endif
14565 #ifdef VK_KHR_incremental_present
14566         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
14567         {
14568             unmarshal_VkPresentRegionsKHR(vkStream, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
14569             break;
14570         }
14571 #endif
14572 #ifdef VK_KHR_shared_presentable_image
14573         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
14574         {
14575             unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(vkStream, reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out));
14576             break;
14577         }
14578 #endif
14579 #ifdef VK_KHR_external_fence_win32
14580         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
14581         {
14582             unmarshal_VkExportFenceWin32HandleInfoKHR(vkStream, reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out));
14583             break;
14584         }
14585 #endif
14586 #ifdef VK_KHR_image_format_list
14587         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
14588         {
14589             unmarshal_VkImageFormatListCreateInfoKHR(vkStream, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
14590             break;
14591         }
14592 #endif
14593 #ifdef VK_KHR_8bit_storage
14594         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
14595         {
14596             unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
14597             break;
14598         }
14599 #endif
14600 #ifdef VK_ANDROID_native_buffer
14601         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
14602         {
14603             unmarshal_VkNativeBufferANDROID(vkStream, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
14604             break;
14605         }
14606 #endif
14607 #ifdef VK_EXT_debug_report
14608         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
14609         {
14610             unmarshal_VkDebugReportCallbackCreateInfoEXT(vkStream, reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out));
14611             break;
14612         }
14613 #endif
14614 #ifdef VK_AMD_rasterization_order
14615         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
14616         {
14617             unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(vkStream, reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension_out));
14618             break;
14619         }
14620 #endif
14621 #ifdef VK_NV_dedicated_allocation
14622         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
14623         {
14624             unmarshal_VkDedicatedAllocationImageCreateInfoNV(vkStream, reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out));
14625             break;
14626         }
14627         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
14628         {
14629             unmarshal_VkDedicatedAllocationBufferCreateInfoNV(vkStream, reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out));
14630             break;
14631         }
14632         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
14633         {
14634             unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(vkStream, reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out));
14635             break;
14636         }
14637 #endif
14638 #ifdef VK_AMD_texture_gather_bias_lod
14639         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
14640         {
14641             unmarshal_VkTextureLODGatherFormatPropertiesAMD(vkStream, reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out));
14642             break;
14643         }
14644 #endif
14645 #ifdef VK_NV_external_memory
14646         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
14647         {
14648             unmarshal_VkExternalMemoryImageCreateInfoNV(vkStream, reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out));
14649             break;
14650         }
14651         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
14652         {
14653             unmarshal_VkExportMemoryAllocateInfoNV(vkStream, reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out));
14654             break;
14655         }
14656 #endif
14657 #ifdef VK_NV_external_memory_win32
14658         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
14659         {
14660             unmarshal_VkImportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out));
14661             break;
14662         }
14663         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
14664         {
14665             unmarshal_VkExportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out));
14666             break;
14667         }
14668 #endif
14669 #ifdef VK_NV_win32_keyed_mutex
14670         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
14671         {
14672             unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(vkStream, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out));
14673             break;
14674         }
14675 #endif
14676 #ifdef VK_EXT_validation_flags
14677         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
14678         {
14679             unmarshal_VkValidationFlagsEXT(vkStream, reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out));
14680             break;
14681         }
14682 #endif
14683 #ifdef VK_EXT_conditional_rendering
14684         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
14685         {
14686             unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension_out));
14687             break;
14688         }
14689         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
14690         {
14691             unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(vkStream, reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension_out));
14692             break;
14693         }
14694 #endif
14695 #ifdef VK_NV_clip_space_w_scaling
14696         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
14697         {
14698             unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension_out));
14699             break;
14700         }
14701 #endif
14702 #ifdef VK_EXT_display_control
14703         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
14704         {
14705             unmarshal_VkSwapchainCounterCreateInfoEXT(vkStream, reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out));
14706             break;
14707         }
14708 #endif
14709 #ifdef VK_GOOGLE_display_timing
14710         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
14711         {
14712             unmarshal_VkPresentTimesInfoGOOGLE(vkStream, reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out));
14713             break;
14714         }
14715 #endif
14716 #ifdef VK_NVX_multiview_per_view_attributes
14717         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
14718         {
14719             unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(vkStream, reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension_out));
14720             break;
14721         }
14722 #endif
14723 #ifdef VK_NV_viewport_swizzle
14724         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
14725         {
14726             unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out));
14727             break;
14728         }
14729 #endif
14730 #ifdef VK_EXT_discard_rectangles
14731         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
14732         {
14733             unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension_out));
14734             break;
14735         }
14736         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
14737         {
14738             unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension_out));
14739             break;
14740         }
14741 #endif
14742 #ifdef VK_EXT_conservative_rasterization
14743         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
14744         {
14745             unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension_out));
14746             break;
14747         }
14748         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
14749         {
14750             unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension_out));
14751             break;
14752         }
14753 #endif
14754 #ifdef VK_EXT_debug_utils
14755         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
14756         {
14757             unmarshal_VkDebugUtilsMessengerCreateInfoEXT(vkStream, reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out));
14758             break;
14759         }
14760 #endif
14761 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
14762         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
14763         {
14764             unmarshal_VkAndroidHardwareBufferUsageANDROID(vkStream, reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out));
14765             break;
14766         }
14767         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
14768         {
14769             unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(vkStream, reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension_out));
14770             break;
14771         }
14772         case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
14773         {
14774             unmarshal_VkImportAndroidHardwareBufferInfoANDROID(vkStream, reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out));
14775             break;
14776         }
14777         case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
14778         {
14779             unmarshal_VkExternalFormatANDROID(vkStream, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
14780             break;
14781         }
14782 #endif
14783 #ifdef VK_EXT_sampler_filter_minmax
14784         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
14785         {
14786             unmarshal_VkSamplerReductionModeCreateInfoEXT(vkStream, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
14787             break;
14788         }
14789         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
14790         {
14791             unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
14792             break;
14793         }
14794 #endif
14795 #ifdef VK_EXT_sample_locations
14796         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
14797         {
14798             unmarshal_VkSampleLocationsInfoEXT(vkStream, reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out));
14799             break;
14800         }
14801         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
14802         {
14803             unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(vkStream, reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out));
14804             break;
14805         }
14806         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
14807         {
14808             unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension_out));
14809             break;
14810         }
14811         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
14812         {
14813             unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension_out));
14814             break;
14815         }
14816 #endif
14817 #ifdef VK_EXT_blend_operation_advanced
14818         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
14819         {
14820             unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension_out));
14821             break;
14822         }
14823         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
14824         {
14825             unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension_out));
14826             break;
14827         }
14828         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
14829         {
14830             unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension_out));
14831             break;
14832         }
14833 #endif
14834 #ifdef VK_NV_fragment_coverage_to_color
14835         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
14836         {
14837             unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out));
14838             break;
14839         }
14840 #endif
14841 #ifdef VK_NV_framebuffer_mixed_samples
14842         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
14843         {
14844             unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension_out));
14845             break;
14846         }
14847 #endif
14848 #ifdef VK_EXT_validation_cache
14849         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
14850         {
14851             unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(vkStream, reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out));
14852             break;
14853         }
14854 #endif
14855 #ifdef VK_EXT_descriptor_indexing
14856         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
14857         {
14858             unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(vkStream, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
14859             break;
14860         }
14861         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
14862         {
14863             unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
14864             break;
14865         }
14866         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
14867         {
14868             unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
14869             break;
14870         }
14871         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
14872         {
14873             unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
14874             break;
14875         }
14876         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
14877         {
14878             unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
14879             break;
14880         }
14881 #endif
14882 #ifdef VK_EXT_global_priority
14883         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
14884         {
14885             unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(vkStream, reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension_out));
14886             break;
14887         }
14888 #endif
14889 #ifdef VK_EXT_external_memory_host
14890         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
14891         {
14892             unmarshal_VkImportMemoryHostPointerInfoEXT(vkStream, reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out));
14893             break;
14894         }
14895         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
14896         {
14897             unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension_out));
14898             break;
14899         }
14900 #endif
14901 #ifdef VK_AMD_shader_core_properties
14902         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
14903         {
14904             unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(vkStream, reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out));
14905             break;
14906         }
14907 #endif
14908 #ifdef VK_EXT_vertex_attribute_divisor
14909         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
14910         {
14911             unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension_out));
14912             break;
14913         }
14914         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
14915         {
14916             unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
14917             break;
14918         }
14919 #endif
14920 #ifdef VK_NV_device_diagnostic_checkpoints
14921         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
14922         {
14923             unmarshal_VkQueueFamilyCheckpointPropertiesNV(vkStream, reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out));
14924             break;
14925         }
14926 #endif
14927 #ifdef VK_GOOGLE_color_buffer
14928         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
14929         {
14930             unmarshal_VkImportColorBufferGOOGLE(vkStream, reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
14931             break;
14932         }
14933         case VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE:
14934         {
14935             unmarshal_VkImportPhysicalAddressGOOGLE(vkStream, reinterpret_cast<VkImportPhysicalAddressGOOGLE*>(structExtension_out));
14936             break;
14937         }
14938 #endif
14939         default:
14940         {
14941             return;
14942         }
14943     }
14944 }
14945 
api_opcode_to_string(const uint32_t opcode)14946 const char* api_opcode_to_string(
14947     const uint32_t opcode)
14948 {
14949     switch(opcode)
14950     {
14951 #ifdef VK_VERSION_1_0
14952         case OP_vkCreateInstance:
14953         {
14954             return "OP_vkCreateInstance";
14955         }
14956         case OP_vkDestroyInstance:
14957         {
14958             return "OP_vkDestroyInstance";
14959         }
14960         case OP_vkEnumeratePhysicalDevices:
14961         {
14962             return "OP_vkEnumeratePhysicalDevices";
14963         }
14964         case OP_vkGetPhysicalDeviceFeatures:
14965         {
14966             return "OP_vkGetPhysicalDeviceFeatures";
14967         }
14968         case OP_vkGetPhysicalDeviceFormatProperties:
14969         {
14970             return "OP_vkGetPhysicalDeviceFormatProperties";
14971         }
14972         case OP_vkGetPhysicalDeviceImageFormatProperties:
14973         {
14974             return "OP_vkGetPhysicalDeviceImageFormatProperties";
14975         }
14976         case OP_vkGetPhysicalDeviceProperties:
14977         {
14978             return "OP_vkGetPhysicalDeviceProperties";
14979         }
14980         case OP_vkGetPhysicalDeviceQueueFamilyProperties:
14981         {
14982             return "OP_vkGetPhysicalDeviceQueueFamilyProperties";
14983         }
14984         case OP_vkGetPhysicalDeviceMemoryProperties:
14985         {
14986             return "OP_vkGetPhysicalDeviceMemoryProperties";
14987         }
14988         case OP_vkGetInstanceProcAddr:
14989         {
14990             return "OP_vkGetInstanceProcAddr";
14991         }
14992         case OP_vkGetDeviceProcAddr:
14993         {
14994             return "OP_vkGetDeviceProcAddr";
14995         }
14996         case OP_vkCreateDevice:
14997         {
14998             return "OP_vkCreateDevice";
14999         }
15000         case OP_vkDestroyDevice:
15001         {
15002             return "OP_vkDestroyDevice";
15003         }
15004         case OP_vkEnumerateInstanceExtensionProperties:
15005         {
15006             return "OP_vkEnumerateInstanceExtensionProperties";
15007         }
15008         case OP_vkEnumerateDeviceExtensionProperties:
15009         {
15010             return "OP_vkEnumerateDeviceExtensionProperties";
15011         }
15012         case OP_vkEnumerateInstanceLayerProperties:
15013         {
15014             return "OP_vkEnumerateInstanceLayerProperties";
15015         }
15016         case OP_vkEnumerateDeviceLayerProperties:
15017         {
15018             return "OP_vkEnumerateDeviceLayerProperties";
15019         }
15020         case OP_vkGetDeviceQueue:
15021         {
15022             return "OP_vkGetDeviceQueue";
15023         }
15024         case OP_vkQueueSubmit:
15025         {
15026             return "OP_vkQueueSubmit";
15027         }
15028         case OP_vkQueueWaitIdle:
15029         {
15030             return "OP_vkQueueWaitIdle";
15031         }
15032         case OP_vkDeviceWaitIdle:
15033         {
15034             return "OP_vkDeviceWaitIdle";
15035         }
15036         case OP_vkAllocateMemory:
15037         {
15038             return "OP_vkAllocateMemory";
15039         }
15040         case OP_vkFreeMemory:
15041         {
15042             return "OP_vkFreeMemory";
15043         }
15044         case OP_vkMapMemory:
15045         {
15046             return "OP_vkMapMemory";
15047         }
15048         case OP_vkUnmapMemory:
15049         {
15050             return "OP_vkUnmapMemory";
15051         }
15052         case OP_vkFlushMappedMemoryRanges:
15053         {
15054             return "OP_vkFlushMappedMemoryRanges";
15055         }
15056         case OP_vkInvalidateMappedMemoryRanges:
15057         {
15058             return "OP_vkInvalidateMappedMemoryRanges";
15059         }
15060         case OP_vkGetDeviceMemoryCommitment:
15061         {
15062             return "OP_vkGetDeviceMemoryCommitment";
15063         }
15064         case OP_vkBindBufferMemory:
15065         {
15066             return "OP_vkBindBufferMemory";
15067         }
15068         case OP_vkBindImageMemory:
15069         {
15070             return "OP_vkBindImageMemory";
15071         }
15072         case OP_vkGetBufferMemoryRequirements:
15073         {
15074             return "OP_vkGetBufferMemoryRequirements";
15075         }
15076         case OP_vkGetImageMemoryRequirements:
15077         {
15078             return "OP_vkGetImageMemoryRequirements";
15079         }
15080         case OP_vkGetImageSparseMemoryRequirements:
15081         {
15082             return "OP_vkGetImageSparseMemoryRequirements";
15083         }
15084         case OP_vkGetPhysicalDeviceSparseImageFormatProperties:
15085         {
15086             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties";
15087         }
15088         case OP_vkQueueBindSparse:
15089         {
15090             return "OP_vkQueueBindSparse";
15091         }
15092         case OP_vkCreateFence:
15093         {
15094             return "OP_vkCreateFence";
15095         }
15096         case OP_vkDestroyFence:
15097         {
15098             return "OP_vkDestroyFence";
15099         }
15100         case OP_vkResetFences:
15101         {
15102             return "OP_vkResetFences";
15103         }
15104         case OP_vkGetFenceStatus:
15105         {
15106             return "OP_vkGetFenceStatus";
15107         }
15108         case OP_vkWaitForFences:
15109         {
15110             return "OP_vkWaitForFences";
15111         }
15112         case OP_vkCreateSemaphore:
15113         {
15114             return "OP_vkCreateSemaphore";
15115         }
15116         case OP_vkDestroySemaphore:
15117         {
15118             return "OP_vkDestroySemaphore";
15119         }
15120         case OP_vkCreateEvent:
15121         {
15122             return "OP_vkCreateEvent";
15123         }
15124         case OP_vkDestroyEvent:
15125         {
15126             return "OP_vkDestroyEvent";
15127         }
15128         case OP_vkGetEventStatus:
15129         {
15130             return "OP_vkGetEventStatus";
15131         }
15132         case OP_vkSetEvent:
15133         {
15134             return "OP_vkSetEvent";
15135         }
15136         case OP_vkResetEvent:
15137         {
15138             return "OP_vkResetEvent";
15139         }
15140         case OP_vkCreateQueryPool:
15141         {
15142             return "OP_vkCreateQueryPool";
15143         }
15144         case OP_vkDestroyQueryPool:
15145         {
15146             return "OP_vkDestroyQueryPool";
15147         }
15148         case OP_vkGetQueryPoolResults:
15149         {
15150             return "OP_vkGetQueryPoolResults";
15151         }
15152         case OP_vkCreateBuffer:
15153         {
15154             return "OP_vkCreateBuffer";
15155         }
15156         case OP_vkDestroyBuffer:
15157         {
15158             return "OP_vkDestroyBuffer";
15159         }
15160         case OP_vkCreateBufferView:
15161         {
15162             return "OP_vkCreateBufferView";
15163         }
15164         case OP_vkDestroyBufferView:
15165         {
15166             return "OP_vkDestroyBufferView";
15167         }
15168         case OP_vkCreateImage:
15169         {
15170             return "OP_vkCreateImage";
15171         }
15172         case OP_vkDestroyImage:
15173         {
15174             return "OP_vkDestroyImage";
15175         }
15176         case OP_vkGetImageSubresourceLayout:
15177         {
15178             return "OP_vkGetImageSubresourceLayout";
15179         }
15180         case OP_vkCreateImageView:
15181         {
15182             return "OP_vkCreateImageView";
15183         }
15184         case OP_vkDestroyImageView:
15185         {
15186             return "OP_vkDestroyImageView";
15187         }
15188         case OP_vkCreateShaderModule:
15189         {
15190             return "OP_vkCreateShaderModule";
15191         }
15192         case OP_vkDestroyShaderModule:
15193         {
15194             return "OP_vkDestroyShaderModule";
15195         }
15196         case OP_vkCreatePipelineCache:
15197         {
15198             return "OP_vkCreatePipelineCache";
15199         }
15200         case OP_vkDestroyPipelineCache:
15201         {
15202             return "OP_vkDestroyPipelineCache";
15203         }
15204         case OP_vkGetPipelineCacheData:
15205         {
15206             return "OP_vkGetPipelineCacheData";
15207         }
15208         case OP_vkMergePipelineCaches:
15209         {
15210             return "OP_vkMergePipelineCaches";
15211         }
15212         case OP_vkCreateGraphicsPipelines:
15213         {
15214             return "OP_vkCreateGraphicsPipelines";
15215         }
15216         case OP_vkCreateComputePipelines:
15217         {
15218             return "OP_vkCreateComputePipelines";
15219         }
15220         case OP_vkDestroyPipeline:
15221         {
15222             return "OP_vkDestroyPipeline";
15223         }
15224         case OP_vkCreatePipelineLayout:
15225         {
15226             return "OP_vkCreatePipelineLayout";
15227         }
15228         case OP_vkDestroyPipelineLayout:
15229         {
15230             return "OP_vkDestroyPipelineLayout";
15231         }
15232         case OP_vkCreateSampler:
15233         {
15234             return "OP_vkCreateSampler";
15235         }
15236         case OP_vkDestroySampler:
15237         {
15238             return "OP_vkDestroySampler";
15239         }
15240         case OP_vkCreateDescriptorSetLayout:
15241         {
15242             return "OP_vkCreateDescriptorSetLayout";
15243         }
15244         case OP_vkDestroyDescriptorSetLayout:
15245         {
15246             return "OP_vkDestroyDescriptorSetLayout";
15247         }
15248         case OP_vkCreateDescriptorPool:
15249         {
15250             return "OP_vkCreateDescriptorPool";
15251         }
15252         case OP_vkDestroyDescriptorPool:
15253         {
15254             return "OP_vkDestroyDescriptorPool";
15255         }
15256         case OP_vkResetDescriptorPool:
15257         {
15258             return "OP_vkResetDescriptorPool";
15259         }
15260         case OP_vkAllocateDescriptorSets:
15261         {
15262             return "OP_vkAllocateDescriptorSets";
15263         }
15264         case OP_vkFreeDescriptorSets:
15265         {
15266             return "OP_vkFreeDescriptorSets";
15267         }
15268         case OP_vkUpdateDescriptorSets:
15269         {
15270             return "OP_vkUpdateDescriptorSets";
15271         }
15272         case OP_vkCreateFramebuffer:
15273         {
15274             return "OP_vkCreateFramebuffer";
15275         }
15276         case OP_vkDestroyFramebuffer:
15277         {
15278             return "OP_vkDestroyFramebuffer";
15279         }
15280         case OP_vkCreateRenderPass:
15281         {
15282             return "OP_vkCreateRenderPass";
15283         }
15284         case OP_vkDestroyRenderPass:
15285         {
15286             return "OP_vkDestroyRenderPass";
15287         }
15288         case OP_vkGetRenderAreaGranularity:
15289         {
15290             return "OP_vkGetRenderAreaGranularity";
15291         }
15292         case OP_vkCreateCommandPool:
15293         {
15294             return "OP_vkCreateCommandPool";
15295         }
15296         case OP_vkDestroyCommandPool:
15297         {
15298             return "OP_vkDestroyCommandPool";
15299         }
15300         case OP_vkResetCommandPool:
15301         {
15302             return "OP_vkResetCommandPool";
15303         }
15304         case OP_vkAllocateCommandBuffers:
15305         {
15306             return "OP_vkAllocateCommandBuffers";
15307         }
15308         case OP_vkFreeCommandBuffers:
15309         {
15310             return "OP_vkFreeCommandBuffers";
15311         }
15312         case OP_vkBeginCommandBuffer:
15313         {
15314             return "OP_vkBeginCommandBuffer";
15315         }
15316         case OP_vkEndCommandBuffer:
15317         {
15318             return "OP_vkEndCommandBuffer";
15319         }
15320         case OP_vkResetCommandBuffer:
15321         {
15322             return "OP_vkResetCommandBuffer";
15323         }
15324         case OP_vkCmdBindPipeline:
15325         {
15326             return "OP_vkCmdBindPipeline";
15327         }
15328         case OP_vkCmdSetViewport:
15329         {
15330             return "OP_vkCmdSetViewport";
15331         }
15332         case OP_vkCmdSetScissor:
15333         {
15334             return "OP_vkCmdSetScissor";
15335         }
15336         case OP_vkCmdSetLineWidth:
15337         {
15338             return "OP_vkCmdSetLineWidth";
15339         }
15340         case OP_vkCmdSetDepthBias:
15341         {
15342             return "OP_vkCmdSetDepthBias";
15343         }
15344         case OP_vkCmdSetBlendConstants:
15345         {
15346             return "OP_vkCmdSetBlendConstants";
15347         }
15348         case OP_vkCmdSetDepthBounds:
15349         {
15350             return "OP_vkCmdSetDepthBounds";
15351         }
15352         case OP_vkCmdSetStencilCompareMask:
15353         {
15354             return "OP_vkCmdSetStencilCompareMask";
15355         }
15356         case OP_vkCmdSetStencilWriteMask:
15357         {
15358             return "OP_vkCmdSetStencilWriteMask";
15359         }
15360         case OP_vkCmdSetStencilReference:
15361         {
15362             return "OP_vkCmdSetStencilReference";
15363         }
15364         case OP_vkCmdBindDescriptorSets:
15365         {
15366             return "OP_vkCmdBindDescriptorSets";
15367         }
15368         case OP_vkCmdBindIndexBuffer:
15369         {
15370             return "OP_vkCmdBindIndexBuffer";
15371         }
15372         case OP_vkCmdBindVertexBuffers:
15373         {
15374             return "OP_vkCmdBindVertexBuffers";
15375         }
15376         case OP_vkCmdDraw:
15377         {
15378             return "OP_vkCmdDraw";
15379         }
15380         case OP_vkCmdDrawIndexed:
15381         {
15382             return "OP_vkCmdDrawIndexed";
15383         }
15384         case OP_vkCmdDrawIndirect:
15385         {
15386             return "OP_vkCmdDrawIndirect";
15387         }
15388         case OP_vkCmdDrawIndexedIndirect:
15389         {
15390             return "OP_vkCmdDrawIndexedIndirect";
15391         }
15392         case OP_vkCmdDispatch:
15393         {
15394             return "OP_vkCmdDispatch";
15395         }
15396         case OP_vkCmdDispatchIndirect:
15397         {
15398             return "OP_vkCmdDispatchIndirect";
15399         }
15400         case OP_vkCmdCopyBuffer:
15401         {
15402             return "OP_vkCmdCopyBuffer";
15403         }
15404         case OP_vkCmdCopyImage:
15405         {
15406             return "OP_vkCmdCopyImage";
15407         }
15408         case OP_vkCmdBlitImage:
15409         {
15410             return "OP_vkCmdBlitImage";
15411         }
15412         case OP_vkCmdCopyBufferToImage:
15413         {
15414             return "OP_vkCmdCopyBufferToImage";
15415         }
15416         case OP_vkCmdCopyImageToBuffer:
15417         {
15418             return "OP_vkCmdCopyImageToBuffer";
15419         }
15420         case OP_vkCmdUpdateBuffer:
15421         {
15422             return "OP_vkCmdUpdateBuffer";
15423         }
15424         case OP_vkCmdFillBuffer:
15425         {
15426             return "OP_vkCmdFillBuffer";
15427         }
15428         case OP_vkCmdClearColorImage:
15429         {
15430             return "OP_vkCmdClearColorImage";
15431         }
15432         case OP_vkCmdClearDepthStencilImage:
15433         {
15434             return "OP_vkCmdClearDepthStencilImage";
15435         }
15436         case OP_vkCmdClearAttachments:
15437         {
15438             return "OP_vkCmdClearAttachments";
15439         }
15440         case OP_vkCmdResolveImage:
15441         {
15442             return "OP_vkCmdResolveImage";
15443         }
15444         case OP_vkCmdSetEvent:
15445         {
15446             return "OP_vkCmdSetEvent";
15447         }
15448         case OP_vkCmdResetEvent:
15449         {
15450             return "OP_vkCmdResetEvent";
15451         }
15452         case OP_vkCmdWaitEvents:
15453         {
15454             return "OP_vkCmdWaitEvents";
15455         }
15456         case OP_vkCmdPipelineBarrier:
15457         {
15458             return "OP_vkCmdPipelineBarrier";
15459         }
15460         case OP_vkCmdBeginQuery:
15461         {
15462             return "OP_vkCmdBeginQuery";
15463         }
15464         case OP_vkCmdEndQuery:
15465         {
15466             return "OP_vkCmdEndQuery";
15467         }
15468         case OP_vkCmdResetQueryPool:
15469         {
15470             return "OP_vkCmdResetQueryPool";
15471         }
15472         case OP_vkCmdWriteTimestamp:
15473         {
15474             return "OP_vkCmdWriteTimestamp";
15475         }
15476         case OP_vkCmdCopyQueryPoolResults:
15477         {
15478             return "OP_vkCmdCopyQueryPoolResults";
15479         }
15480         case OP_vkCmdPushConstants:
15481         {
15482             return "OP_vkCmdPushConstants";
15483         }
15484         case OP_vkCmdBeginRenderPass:
15485         {
15486             return "OP_vkCmdBeginRenderPass";
15487         }
15488         case OP_vkCmdNextSubpass:
15489         {
15490             return "OP_vkCmdNextSubpass";
15491         }
15492         case OP_vkCmdEndRenderPass:
15493         {
15494             return "OP_vkCmdEndRenderPass";
15495         }
15496         case OP_vkCmdExecuteCommands:
15497         {
15498             return "OP_vkCmdExecuteCommands";
15499         }
15500 #endif
15501 #ifdef VK_VERSION_1_1
15502         case OP_vkEnumerateInstanceVersion:
15503         {
15504             return "OP_vkEnumerateInstanceVersion";
15505         }
15506         case OP_vkBindBufferMemory2:
15507         {
15508             return "OP_vkBindBufferMemory2";
15509         }
15510         case OP_vkBindImageMemory2:
15511         {
15512             return "OP_vkBindImageMemory2";
15513         }
15514         case OP_vkGetDeviceGroupPeerMemoryFeatures:
15515         {
15516             return "OP_vkGetDeviceGroupPeerMemoryFeatures";
15517         }
15518         case OP_vkCmdSetDeviceMask:
15519         {
15520             return "OP_vkCmdSetDeviceMask";
15521         }
15522         case OP_vkCmdDispatchBase:
15523         {
15524             return "OP_vkCmdDispatchBase";
15525         }
15526         case OP_vkEnumeratePhysicalDeviceGroups:
15527         {
15528             return "OP_vkEnumeratePhysicalDeviceGroups";
15529         }
15530         case OP_vkGetImageMemoryRequirements2:
15531         {
15532             return "OP_vkGetImageMemoryRequirements2";
15533         }
15534         case OP_vkGetBufferMemoryRequirements2:
15535         {
15536             return "OP_vkGetBufferMemoryRequirements2";
15537         }
15538         case OP_vkGetImageSparseMemoryRequirements2:
15539         {
15540             return "OP_vkGetImageSparseMemoryRequirements2";
15541         }
15542         case OP_vkGetPhysicalDeviceFeatures2:
15543         {
15544             return "OP_vkGetPhysicalDeviceFeatures2";
15545         }
15546         case OP_vkGetPhysicalDeviceProperties2:
15547         {
15548             return "OP_vkGetPhysicalDeviceProperties2";
15549         }
15550         case OP_vkGetPhysicalDeviceFormatProperties2:
15551         {
15552             return "OP_vkGetPhysicalDeviceFormatProperties2";
15553         }
15554         case OP_vkGetPhysicalDeviceImageFormatProperties2:
15555         {
15556             return "OP_vkGetPhysicalDeviceImageFormatProperties2";
15557         }
15558         case OP_vkGetPhysicalDeviceQueueFamilyProperties2:
15559         {
15560             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2";
15561         }
15562         case OP_vkGetPhysicalDeviceMemoryProperties2:
15563         {
15564             return "OP_vkGetPhysicalDeviceMemoryProperties2";
15565         }
15566         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2:
15567         {
15568             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2";
15569         }
15570         case OP_vkTrimCommandPool:
15571         {
15572             return "OP_vkTrimCommandPool";
15573         }
15574         case OP_vkGetDeviceQueue2:
15575         {
15576             return "OP_vkGetDeviceQueue2";
15577         }
15578         case OP_vkCreateSamplerYcbcrConversion:
15579         {
15580             return "OP_vkCreateSamplerYcbcrConversion";
15581         }
15582         case OP_vkDestroySamplerYcbcrConversion:
15583         {
15584             return "OP_vkDestroySamplerYcbcrConversion";
15585         }
15586         case OP_vkCreateDescriptorUpdateTemplate:
15587         {
15588             return "OP_vkCreateDescriptorUpdateTemplate";
15589         }
15590         case OP_vkDestroyDescriptorUpdateTemplate:
15591         {
15592             return "OP_vkDestroyDescriptorUpdateTemplate";
15593         }
15594         case OP_vkUpdateDescriptorSetWithTemplate:
15595         {
15596             return "OP_vkUpdateDescriptorSetWithTemplate";
15597         }
15598         case OP_vkGetPhysicalDeviceExternalBufferProperties:
15599         {
15600             return "OP_vkGetPhysicalDeviceExternalBufferProperties";
15601         }
15602         case OP_vkGetPhysicalDeviceExternalFenceProperties:
15603         {
15604             return "OP_vkGetPhysicalDeviceExternalFenceProperties";
15605         }
15606         case OP_vkGetPhysicalDeviceExternalSemaphoreProperties:
15607         {
15608             return "OP_vkGetPhysicalDeviceExternalSemaphoreProperties";
15609         }
15610         case OP_vkGetDescriptorSetLayoutSupport:
15611         {
15612             return "OP_vkGetDescriptorSetLayoutSupport";
15613         }
15614 #endif
15615 #ifdef VK_KHR_surface
15616         case OP_vkDestroySurfaceKHR:
15617         {
15618             return "OP_vkDestroySurfaceKHR";
15619         }
15620         case OP_vkGetPhysicalDeviceSurfaceSupportKHR:
15621         {
15622             return "OP_vkGetPhysicalDeviceSurfaceSupportKHR";
15623         }
15624         case OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR:
15625         {
15626             return "OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR";
15627         }
15628         case OP_vkGetPhysicalDeviceSurfaceFormatsKHR:
15629         {
15630             return "OP_vkGetPhysicalDeviceSurfaceFormatsKHR";
15631         }
15632         case OP_vkGetPhysicalDeviceSurfacePresentModesKHR:
15633         {
15634             return "OP_vkGetPhysicalDeviceSurfacePresentModesKHR";
15635         }
15636 #endif
15637 #ifdef VK_KHR_swapchain
15638         case OP_vkCreateSwapchainKHR:
15639         {
15640             return "OP_vkCreateSwapchainKHR";
15641         }
15642         case OP_vkDestroySwapchainKHR:
15643         {
15644             return "OP_vkDestroySwapchainKHR";
15645         }
15646         case OP_vkGetSwapchainImagesKHR:
15647         {
15648             return "OP_vkGetSwapchainImagesKHR";
15649         }
15650         case OP_vkAcquireNextImageKHR:
15651         {
15652             return "OP_vkAcquireNextImageKHR";
15653         }
15654         case OP_vkQueuePresentKHR:
15655         {
15656             return "OP_vkQueuePresentKHR";
15657         }
15658         case OP_vkGetDeviceGroupPresentCapabilitiesKHR:
15659         {
15660             return "OP_vkGetDeviceGroupPresentCapabilitiesKHR";
15661         }
15662         case OP_vkGetDeviceGroupSurfacePresentModesKHR:
15663         {
15664             return "OP_vkGetDeviceGroupSurfacePresentModesKHR";
15665         }
15666         case OP_vkGetPhysicalDevicePresentRectanglesKHR:
15667         {
15668             return "OP_vkGetPhysicalDevicePresentRectanglesKHR";
15669         }
15670         case OP_vkAcquireNextImage2KHR:
15671         {
15672             return "OP_vkAcquireNextImage2KHR";
15673         }
15674 #endif
15675 #ifdef VK_KHR_display
15676         case OP_vkGetPhysicalDeviceDisplayPropertiesKHR:
15677         {
15678             return "OP_vkGetPhysicalDeviceDisplayPropertiesKHR";
15679         }
15680         case OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR:
15681         {
15682             return "OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR";
15683         }
15684         case OP_vkGetDisplayPlaneSupportedDisplaysKHR:
15685         {
15686             return "OP_vkGetDisplayPlaneSupportedDisplaysKHR";
15687         }
15688         case OP_vkGetDisplayModePropertiesKHR:
15689         {
15690             return "OP_vkGetDisplayModePropertiesKHR";
15691         }
15692         case OP_vkCreateDisplayModeKHR:
15693         {
15694             return "OP_vkCreateDisplayModeKHR";
15695         }
15696         case OP_vkGetDisplayPlaneCapabilitiesKHR:
15697         {
15698             return "OP_vkGetDisplayPlaneCapabilitiesKHR";
15699         }
15700         case OP_vkCreateDisplayPlaneSurfaceKHR:
15701         {
15702             return "OP_vkCreateDisplayPlaneSurfaceKHR";
15703         }
15704 #endif
15705 #ifdef VK_KHR_display_swapchain
15706         case OP_vkCreateSharedSwapchainsKHR:
15707         {
15708             return "OP_vkCreateSharedSwapchainsKHR";
15709         }
15710 #endif
15711 #ifdef VK_KHR_xlib_surface
15712         case OP_vkCreateXlibSurfaceKHR:
15713         {
15714             return "OP_vkCreateXlibSurfaceKHR";
15715         }
15716         case OP_vkGetPhysicalDeviceXlibPresentationSupportKHR:
15717         {
15718             return "OP_vkGetPhysicalDeviceXlibPresentationSupportKHR";
15719         }
15720 #endif
15721 #ifdef VK_KHR_xcb_surface
15722         case OP_vkCreateXcbSurfaceKHR:
15723         {
15724             return "OP_vkCreateXcbSurfaceKHR";
15725         }
15726         case OP_vkGetPhysicalDeviceXcbPresentationSupportKHR:
15727         {
15728             return "OP_vkGetPhysicalDeviceXcbPresentationSupportKHR";
15729         }
15730 #endif
15731 #ifdef VK_KHR_wayland_surface
15732         case OP_vkCreateWaylandSurfaceKHR:
15733         {
15734             return "OP_vkCreateWaylandSurfaceKHR";
15735         }
15736         case OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR:
15737         {
15738             return "OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR";
15739         }
15740 #endif
15741 #ifdef VK_KHR_mir_surface
15742         case OP_vkCreateMirSurfaceKHR:
15743         {
15744             return "OP_vkCreateMirSurfaceKHR";
15745         }
15746         case OP_vkGetPhysicalDeviceMirPresentationSupportKHR:
15747         {
15748             return "OP_vkGetPhysicalDeviceMirPresentationSupportKHR";
15749         }
15750 #endif
15751 #ifdef VK_KHR_android_surface
15752         case OP_vkCreateAndroidSurfaceKHR:
15753         {
15754             return "OP_vkCreateAndroidSurfaceKHR";
15755         }
15756 #endif
15757 #ifdef VK_KHR_win32_surface
15758         case OP_vkCreateWin32SurfaceKHR:
15759         {
15760             return "OP_vkCreateWin32SurfaceKHR";
15761         }
15762         case OP_vkGetPhysicalDeviceWin32PresentationSupportKHR:
15763         {
15764             return "OP_vkGetPhysicalDeviceWin32PresentationSupportKHR";
15765         }
15766 #endif
15767 #ifdef VK_KHR_get_physical_device_properties2
15768         case OP_vkGetPhysicalDeviceFeatures2KHR:
15769         {
15770             return "OP_vkGetPhysicalDeviceFeatures2KHR";
15771         }
15772         case OP_vkGetPhysicalDeviceProperties2KHR:
15773         {
15774             return "OP_vkGetPhysicalDeviceProperties2KHR";
15775         }
15776         case OP_vkGetPhysicalDeviceFormatProperties2KHR:
15777         {
15778             return "OP_vkGetPhysicalDeviceFormatProperties2KHR";
15779         }
15780         case OP_vkGetPhysicalDeviceImageFormatProperties2KHR:
15781         {
15782             return "OP_vkGetPhysicalDeviceImageFormatProperties2KHR";
15783         }
15784         case OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR:
15785         {
15786             return "OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR";
15787         }
15788         case OP_vkGetPhysicalDeviceMemoryProperties2KHR:
15789         {
15790             return "OP_vkGetPhysicalDeviceMemoryProperties2KHR";
15791         }
15792         case OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR:
15793         {
15794             return "OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR";
15795         }
15796 #endif
15797 #ifdef VK_KHR_device_group
15798         case OP_vkGetDeviceGroupPeerMemoryFeaturesKHR:
15799         {
15800             return "OP_vkGetDeviceGroupPeerMemoryFeaturesKHR";
15801         }
15802         case OP_vkCmdSetDeviceMaskKHR:
15803         {
15804             return "OP_vkCmdSetDeviceMaskKHR";
15805         }
15806         case OP_vkCmdDispatchBaseKHR:
15807         {
15808             return "OP_vkCmdDispatchBaseKHR";
15809         }
15810 #endif
15811 #ifdef VK_KHR_maintenance1
15812         case OP_vkTrimCommandPoolKHR:
15813         {
15814             return "OP_vkTrimCommandPoolKHR";
15815         }
15816 #endif
15817 #ifdef VK_KHR_device_group_creation
15818         case OP_vkEnumeratePhysicalDeviceGroupsKHR:
15819         {
15820             return "OP_vkEnumeratePhysicalDeviceGroupsKHR";
15821         }
15822 #endif
15823 #ifdef VK_KHR_external_memory_capabilities
15824         case OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR:
15825         {
15826             return "OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR";
15827         }
15828 #endif
15829 #ifdef VK_KHR_external_memory_win32
15830         case OP_vkGetMemoryWin32HandleKHR:
15831         {
15832             return "OP_vkGetMemoryWin32HandleKHR";
15833         }
15834         case OP_vkGetMemoryWin32HandlePropertiesKHR:
15835         {
15836             return "OP_vkGetMemoryWin32HandlePropertiesKHR";
15837         }
15838 #endif
15839 #ifdef VK_KHR_external_memory_fd
15840         case OP_vkGetMemoryFdKHR:
15841         {
15842             return "OP_vkGetMemoryFdKHR";
15843         }
15844         case OP_vkGetMemoryFdPropertiesKHR:
15845         {
15846             return "OP_vkGetMemoryFdPropertiesKHR";
15847         }
15848 #endif
15849 #ifdef VK_KHR_external_semaphore_capabilities
15850         case OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR:
15851         {
15852             return "OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR";
15853         }
15854 #endif
15855 #ifdef VK_KHR_external_semaphore_win32
15856         case OP_vkImportSemaphoreWin32HandleKHR:
15857         {
15858             return "OP_vkImportSemaphoreWin32HandleKHR";
15859         }
15860         case OP_vkGetSemaphoreWin32HandleKHR:
15861         {
15862             return "OP_vkGetSemaphoreWin32HandleKHR";
15863         }
15864 #endif
15865 #ifdef VK_KHR_external_semaphore_fd
15866         case OP_vkImportSemaphoreFdKHR:
15867         {
15868             return "OP_vkImportSemaphoreFdKHR";
15869         }
15870         case OP_vkGetSemaphoreFdKHR:
15871         {
15872             return "OP_vkGetSemaphoreFdKHR";
15873         }
15874 #endif
15875 #ifdef VK_KHR_push_descriptor
15876         case OP_vkCmdPushDescriptorSetKHR:
15877         {
15878             return "OP_vkCmdPushDescriptorSetKHR";
15879         }
15880         case OP_vkCmdPushDescriptorSetWithTemplateKHR:
15881         {
15882             return "OP_vkCmdPushDescriptorSetWithTemplateKHR";
15883         }
15884 #endif
15885 #ifdef VK_KHR_descriptor_update_template
15886         case OP_vkCreateDescriptorUpdateTemplateKHR:
15887         {
15888             return "OP_vkCreateDescriptorUpdateTemplateKHR";
15889         }
15890         case OP_vkDestroyDescriptorUpdateTemplateKHR:
15891         {
15892             return "OP_vkDestroyDescriptorUpdateTemplateKHR";
15893         }
15894         case OP_vkUpdateDescriptorSetWithTemplateKHR:
15895         {
15896             return "OP_vkUpdateDescriptorSetWithTemplateKHR";
15897         }
15898 #endif
15899 #ifdef VK_KHR_create_renderpass2
15900         case OP_vkCreateRenderPass2KHR:
15901         {
15902             return "OP_vkCreateRenderPass2KHR";
15903         }
15904         case OP_vkCmdBeginRenderPass2KHR:
15905         {
15906             return "OP_vkCmdBeginRenderPass2KHR";
15907         }
15908         case OP_vkCmdNextSubpass2KHR:
15909         {
15910             return "OP_vkCmdNextSubpass2KHR";
15911         }
15912         case OP_vkCmdEndRenderPass2KHR:
15913         {
15914             return "OP_vkCmdEndRenderPass2KHR";
15915         }
15916 #endif
15917 #ifdef VK_KHR_shared_presentable_image
15918         case OP_vkGetSwapchainStatusKHR:
15919         {
15920             return "OP_vkGetSwapchainStatusKHR";
15921         }
15922 #endif
15923 #ifdef VK_KHR_external_fence_capabilities
15924         case OP_vkGetPhysicalDeviceExternalFencePropertiesKHR:
15925         {
15926             return "OP_vkGetPhysicalDeviceExternalFencePropertiesKHR";
15927         }
15928 #endif
15929 #ifdef VK_KHR_external_fence_win32
15930         case OP_vkImportFenceWin32HandleKHR:
15931         {
15932             return "OP_vkImportFenceWin32HandleKHR";
15933         }
15934         case OP_vkGetFenceWin32HandleKHR:
15935         {
15936             return "OP_vkGetFenceWin32HandleKHR";
15937         }
15938 #endif
15939 #ifdef VK_KHR_external_fence_fd
15940         case OP_vkImportFenceFdKHR:
15941         {
15942             return "OP_vkImportFenceFdKHR";
15943         }
15944         case OP_vkGetFenceFdKHR:
15945         {
15946             return "OP_vkGetFenceFdKHR";
15947         }
15948 #endif
15949 #ifdef VK_KHR_get_surface_capabilities2
15950         case OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR:
15951         {
15952             return "OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR";
15953         }
15954         case OP_vkGetPhysicalDeviceSurfaceFormats2KHR:
15955         {
15956             return "OP_vkGetPhysicalDeviceSurfaceFormats2KHR";
15957         }
15958 #endif
15959 #ifdef VK_KHR_get_display_properties2
15960         case OP_vkGetPhysicalDeviceDisplayProperties2KHR:
15961         {
15962             return "OP_vkGetPhysicalDeviceDisplayProperties2KHR";
15963         }
15964         case OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR:
15965         {
15966             return "OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR";
15967         }
15968         case OP_vkGetDisplayModeProperties2KHR:
15969         {
15970             return "OP_vkGetDisplayModeProperties2KHR";
15971         }
15972         case OP_vkGetDisplayPlaneCapabilities2KHR:
15973         {
15974             return "OP_vkGetDisplayPlaneCapabilities2KHR";
15975         }
15976 #endif
15977 #ifdef VK_KHR_get_memory_requirements2
15978         case OP_vkGetImageMemoryRequirements2KHR:
15979         {
15980             return "OP_vkGetImageMemoryRequirements2KHR";
15981         }
15982         case OP_vkGetBufferMemoryRequirements2KHR:
15983         {
15984             return "OP_vkGetBufferMemoryRequirements2KHR";
15985         }
15986         case OP_vkGetImageSparseMemoryRequirements2KHR:
15987         {
15988             return "OP_vkGetImageSparseMemoryRequirements2KHR";
15989         }
15990 #endif
15991 #ifdef VK_KHR_sampler_ycbcr_conversion
15992         case OP_vkCreateSamplerYcbcrConversionKHR:
15993         {
15994             return "OP_vkCreateSamplerYcbcrConversionKHR";
15995         }
15996         case OP_vkDestroySamplerYcbcrConversionKHR:
15997         {
15998             return "OP_vkDestroySamplerYcbcrConversionKHR";
15999         }
16000 #endif
16001 #ifdef VK_KHR_bind_memory2
16002         case OP_vkBindBufferMemory2KHR:
16003         {
16004             return "OP_vkBindBufferMemory2KHR";
16005         }
16006         case OP_vkBindImageMemory2KHR:
16007         {
16008             return "OP_vkBindImageMemory2KHR";
16009         }
16010 #endif
16011 #ifdef VK_KHR_maintenance3
16012         case OP_vkGetDescriptorSetLayoutSupportKHR:
16013         {
16014             return "OP_vkGetDescriptorSetLayoutSupportKHR";
16015         }
16016 #endif
16017 #ifdef VK_KHR_draw_indirect_count
16018         case OP_vkCmdDrawIndirectCountKHR:
16019         {
16020             return "OP_vkCmdDrawIndirectCountKHR";
16021         }
16022         case OP_vkCmdDrawIndexedIndirectCountKHR:
16023         {
16024             return "OP_vkCmdDrawIndexedIndirectCountKHR";
16025         }
16026 #endif
16027 #ifdef VK_ANDROID_native_buffer
16028         case OP_vkGetSwapchainGrallocUsageANDROID:
16029         {
16030             return "OP_vkGetSwapchainGrallocUsageANDROID";
16031         }
16032         case OP_vkAcquireImageANDROID:
16033         {
16034             return "OP_vkAcquireImageANDROID";
16035         }
16036         case OP_vkQueueSignalReleaseImageANDROID:
16037         {
16038             return "OP_vkQueueSignalReleaseImageANDROID";
16039         }
16040 #endif
16041 #ifdef VK_EXT_debug_report
16042         case OP_vkCreateDebugReportCallbackEXT:
16043         {
16044             return "OP_vkCreateDebugReportCallbackEXT";
16045         }
16046         case OP_vkDestroyDebugReportCallbackEXT:
16047         {
16048             return "OP_vkDestroyDebugReportCallbackEXT";
16049         }
16050         case OP_vkDebugReportMessageEXT:
16051         {
16052             return "OP_vkDebugReportMessageEXT";
16053         }
16054 #endif
16055 #ifdef VK_EXT_debug_marker
16056         case OP_vkDebugMarkerSetObjectTagEXT:
16057         {
16058             return "OP_vkDebugMarkerSetObjectTagEXT";
16059         }
16060         case OP_vkDebugMarkerSetObjectNameEXT:
16061         {
16062             return "OP_vkDebugMarkerSetObjectNameEXT";
16063         }
16064         case OP_vkCmdDebugMarkerBeginEXT:
16065         {
16066             return "OP_vkCmdDebugMarkerBeginEXT";
16067         }
16068         case OP_vkCmdDebugMarkerEndEXT:
16069         {
16070             return "OP_vkCmdDebugMarkerEndEXT";
16071         }
16072         case OP_vkCmdDebugMarkerInsertEXT:
16073         {
16074             return "OP_vkCmdDebugMarkerInsertEXT";
16075         }
16076 #endif
16077 #ifdef VK_AMD_draw_indirect_count
16078         case OP_vkCmdDrawIndirectCountAMD:
16079         {
16080             return "OP_vkCmdDrawIndirectCountAMD";
16081         }
16082         case OP_vkCmdDrawIndexedIndirectCountAMD:
16083         {
16084             return "OP_vkCmdDrawIndexedIndirectCountAMD";
16085         }
16086 #endif
16087 #ifdef VK_AMD_shader_info
16088         case OP_vkGetShaderInfoAMD:
16089         {
16090             return "OP_vkGetShaderInfoAMD";
16091         }
16092 #endif
16093 #ifdef VK_NV_external_memory_capabilities
16094         case OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV:
16095         {
16096             return "OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV";
16097         }
16098 #endif
16099 #ifdef VK_NV_external_memory_win32
16100         case OP_vkGetMemoryWin32HandleNV:
16101         {
16102             return "OP_vkGetMemoryWin32HandleNV";
16103         }
16104 #endif
16105 #ifdef VK_NN_vi_surface
16106         case OP_vkCreateViSurfaceNN:
16107         {
16108             return "OP_vkCreateViSurfaceNN";
16109         }
16110 #endif
16111 #ifdef VK_EXT_conditional_rendering
16112         case OP_vkCmdBeginConditionalRenderingEXT:
16113         {
16114             return "OP_vkCmdBeginConditionalRenderingEXT";
16115         }
16116         case OP_vkCmdEndConditionalRenderingEXT:
16117         {
16118             return "OP_vkCmdEndConditionalRenderingEXT";
16119         }
16120 #endif
16121 #ifdef VK_NVX_device_generated_commands
16122         case OP_vkCmdProcessCommandsNVX:
16123         {
16124             return "OP_vkCmdProcessCommandsNVX";
16125         }
16126         case OP_vkCmdReserveSpaceForCommandsNVX:
16127         {
16128             return "OP_vkCmdReserveSpaceForCommandsNVX";
16129         }
16130         case OP_vkCreateIndirectCommandsLayoutNVX:
16131         {
16132             return "OP_vkCreateIndirectCommandsLayoutNVX";
16133         }
16134         case OP_vkDestroyIndirectCommandsLayoutNVX:
16135         {
16136             return "OP_vkDestroyIndirectCommandsLayoutNVX";
16137         }
16138         case OP_vkCreateObjectTableNVX:
16139         {
16140             return "OP_vkCreateObjectTableNVX";
16141         }
16142         case OP_vkDestroyObjectTableNVX:
16143         {
16144             return "OP_vkDestroyObjectTableNVX";
16145         }
16146         case OP_vkRegisterObjectsNVX:
16147         {
16148             return "OP_vkRegisterObjectsNVX";
16149         }
16150         case OP_vkUnregisterObjectsNVX:
16151         {
16152             return "OP_vkUnregisterObjectsNVX";
16153         }
16154         case OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX:
16155         {
16156             return "OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX";
16157         }
16158 #endif
16159 #ifdef VK_NV_clip_space_w_scaling
16160         case OP_vkCmdSetViewportWScalingNV:
16161         {
16162             return "OP_vkCmdSetViewportWScalingNV";
16163         }
16164 #endif
16165 #ifdef VK_EXT_direct_mode_display
16166         case OP_vkReleaseDisplayEXT:
16167         {
16168             return "OP_vkReleaseDisplayEXT";
16169         }
16170 #endif
16171 #ifdef VK_EXT_acquire_xlib_display
16172         case OP_vkAcquireXlibDisplayEXT:
16173         {
16174             return "OP_vkAcquireXlibDisplayEXT";
16175         }
16176         case OP_vkGetRandROutputDisplayEXT:
16177         {
16178             return "OP_vkGetRandROutputDisplayEXT";
16179         }
16180 #endif
16181 #ifdef VK_EXT_display_surface_counter
16182         case OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT:
16183         {
16184             return "OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT";
16185         }
16186 #endif
16187 #ifdef VK_EXT_display_control
16188         case OP_vkDisplayPowerControlEXT:
16189         {
16190             return "OP_vkDisplayPowerControlEXT";
16191         }
16192         case OP_vkRegisterDeviceEventEXT:
16193         {
16194             return "OP_vkRegisterDeviceEventEXT";
16195         }
16196         case OP_vkRegisterDisplayEventEXT:
16197         {
16198             return "OP_vkRegisterDisplayEventEXT";
16199         }
16200         case OP_vkGetSwapchainCounterEXT:
16201         {
16202             return "OP_vkGetSwapchainCounterEXT";
16203         }
16204 #endif
16205 #ifdef VK_GOOGLE_display_timing
16206         case OP_vkGetRefreshCycleDurationGOOGLE:
16207         {
16208             return "OP_vkGetRefreshCycleDurationGOOGLE";
16209         }
16210         case OP_vkGetPastPresentationTimingGOOGLE:
16211         {
16212             return "OP_vkGetPastPresentationTimingGOOGLE";
16213         }
16214 #endif
16215 #ifdef VK_EXT_discard_rectangles
16216         case OP_vkCmdSetDiscardRectangleEXT:
16217         {
16218             return "OP_vkCmdSetDiscardRectangleEXT";
16219         }
16220 #endif
16221 #ifdef VK_EXT_hdr_metadata
16222         case OP_vkSetHdrMetadataEXT:
16223         {
16224             return "OP_vkSetHdrMetadataEXT";
16225         }
16226 #endif
16227 #ifdef VK_MVK_ios_surface
16228         case OP_vkCreateIOSSurfaceMVK:
16229         {
16230             return "OP_vkCreateIOSSurfaceMVK";
16231         }
16232 #endif
16233 #ifdef VK_MVK_macos_surface
16234         case OP_vkCreateMacOSSurfaceMVK:
16235         {
16236             return "OP_vkCreateMacOSSurfaceMVK";
16237         }
16238 #endif
16239 #ifdef VK_EXT_debug_utils
16240         case OP_vkSetDebugUtilsObjectNameEXT:
16241         {
16242             return "OP_vkSetDebugUtilsObjectNameEXT";
16243         }
16244         case OP_vkSetDebugUtilsObjectTagEXT:
16245         {
16246             return "OP_vkSetDebugUtilsObjectTagEXT";
16247         }
16248         case OP_vkQueueBeginDebugUtilsLabelEXT:
16249         {
16250             return "OP_vkQueueBeginDebugUtilsLabelEXT";
16251         }
16252         case OP_vkQueueEndDebugUtilsLabelEXT:
16253         {
16254             return "OP_vkQueueEndDebugUtilsLabelEXT";
16255         }
16256         case OP_vkQueueInsertDebugUtilsLabelEXT:
16257         {
16258             return "OP_vkQueueInsertDebugUtilsLabelEXT";
16259         }
16260         case OP_vkCmdBeginDebugUtilsLabelEXT:
16261         {
16262             return "OP_vkCmdBeginDebugUtilsLabelEXT";
16263         }
16264         case OP_vkCmdEndDebugUtilsLabelEXT:
16265         {
16266             return "OP_vkCmdEndDebugUtilsLabelEXT";
16267         }
16268         case OP_vkCmdInsertDebugUtilsLabelEXT:
16269         {
16270             return "OP_vkCmdInsertDebugUtilsLabelEXT";
16271         }
16272         case OP_vkCreateDebugUtilsMessengerEXT:
16273         {
16274             return "OP_vkCreateDebugUtilsMessengerEXT";
16275         }
16276         case OP_vkDestroyDebugUtilsMessengerEXT:
16277         {
16278             return "OP_vkDestroyDebugUtilsMessengerEXT";
16279         }
16280         case OP_vkSubmitDebugUtilsMessageEXT:
16281         {
16282             return "OP_vkSubmitDebugUtilsMessageEXT";
16283         }
16284 #endif
16285 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
16286         case OP_vkGetAndroidHardwareBufferPropertiesANDROID:
16287         {
16288             return "OP_vkGetAndroidHardwareBufferPropertiesANDROID";
16289         }
16290         case OP_vkGetMemoryAndroidHardwareBufferANDROID:
16291         {
16292             return "OP_vkGetMemoryAndroidHardwareBufferANDROID";
16293         }
16294 #endif
16295 #ifdef VK_EXT_sample_locations
16296         case OP_vkCmdSetSampleLocationsEXT:
16297         {
16298             return "OP_vkCmdSetSampleLocationsEXT";
16299         }
16300         case OP_vkGetPhysicalDeviceMultisamplePropertiesEXT:
16301         {
16302             return "OP_vkGetPhysicalDeviceMultisamplePropertiesEXT";
16303         }
16304 #endif
16305 #ifdef VK_EXT_validation_cache
16306         case OP_vkCreateValidationCacheEXT:
16307         {
16308             return "OP_vkCreateValidationCacheEXT";
16309         }
16310         case OP_vkDestroyValidationCacheEXT:
16311         {
16312             return "OP_vkDestroyValidationCacheEXT";
16313         }
16314         case OP_vkMergeValidationCachesEXT:
16315         {
16316             return "OP_vkMergeValidationCachesEXT";
16317         }
16318         case OP_vkGetValidationCacheDataEXT:
16319         {
16320             return "OP_vkGetValidationCacheDataEXT";
16321         }
16322 #endif
16323 #ifdef VK_EXT_external_memory_host
16324         case OP_vkGetMemoryHostPointerPropertiesEXT:
16325         {
16326             return "OP_vkGetMemoryHostPointerPropertiesEXT";
16327         }
16328 #endif
16329 #ifdef VK_AMD_buffer_marker
16330         case OP_vkCmdWriteBufferMarkerAMD:
16331         {
16332             return "OP_vkCmdWriteBufferMarkerAMD";
16333         }
16334 #endif
16335 #ifdef VK_NV_device_diagnostic_checkpoints
16336         case OP_vkCmdSetCheckpointNV:
16337         {
16338             return "OP_vkCmdSetCheckpointNV";
16339         }
16340         case OP_vkGetQueueCheckpointDataNV:
16341         {
16342             return "OP_vkGetQueueCheckpointDataNV";
16343         }
16344 #endif
16345 #ifdef VK_GOOGLE_address_space
16346         case OP_vkMapMemoryIntoAddressSpaceGOOGLE:
16347         {
16348             return "OP_vkMapMemoryIntoAddressSpaceGOOGLE";
16349         }
16350 #endif
16351 #ifdef VK_GOOGLE_color_buffer
16352         case OP_vkRegisterImageColorBufferGOOGLE:
16353         {
16354             return "OP_vkRegisterImageColorBufferGOOGLE";
16355         }
16356         case OP_vkRegisterBufferColorBufferGOOGLE:
16357         {
16358             return "OP_vkRegisterBufferColorBufferGOOGLE";
16359         }
16360 #endif
16361 #ifdef VK_GOOGLE_sized_descriptor_update_template
16362         case OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE:
16363         {
16364             return "OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE";
16365         }
16366 #endif
16367 #ifdef VK_GOOGLE_async_command_buffers
16368         case OP_vkBeginCommandBufferAsyncGOOGLE:
16369         {
16370             return "OP_vkBeginCommandBufferAsyncGOOGLE";
16371         }
16372         case OP_vkEndCommandBufferAsyncGOOGLE:
16373         {
16374             return "OP_vkEndCommandBufferAsyncGOOGLE";
16375         }
16376         case OP_vkResetCommandBufferAsyncGOOGLE:
16377         {
16378             return "OP_vkResetCommandBufferAsyncGOOGLE";
16379         }
16380         case OP_vkCommandBufferHostSyncGOOGLE:
16381         {
16382             return "OP_vkCommandBufferHostSyncGOOGLE";
16383         }
16384 #endif
16385 #ifdef VK_GOOGLE_create_resources_with_requirements
16386         case OP_vkCreateImageWithRequirementsGOOGLE:
16387         {
16388             return "OP_vkCreateImageWithRequirementsGOOGLE";
16389         }
16390         case OP_vkCreateBufferWithRequirementsGOOGLE:
16391         {
16392             return "OP_vkCreateBufferWithRequirementsGOOGLE";
16393         }
16394 #endif
16395 #ifdef VK_GOOGLE_address_space_info
16396         case OP_vkGetMemoryHostAddressInfoGOOGLE:
16397         {
16398             return "OP_vkGetMemoryHostAddressInfoGOOGLE";
16399         }
16400 #endif
16401 #ifdef VK_GOOGLE_free_memory_sync
16402         case OP_vkFreeMemorySyncGOOGLE:
16403         {
16404             return "OP_vkFreeMemorySyncGOOGLE";
16405         }
16406 #endif
16407         default:
16408         {
16409             return "OP_UNKNOWN_API_CALL";
16410         }
16411     }
16412 }
16413 
16414 
16415 } // namespace goldfish_vk
16416