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 vkStream->putString(forMarshaling->pApplicationName);
56 vkStream->write((uint32_t*)&forMarshaling->applicationVersion, sizeof(uint32_t));
57 vkStream->putString(forMarshaling->pEngineName);
58 vkStream->write((uint32_t*)&forMarshaling->engineVersion, sizeof(uint32_t));
59 vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
60 }
61
unmarshal_VkApplicationInfo(VulkanStreamGuest * vkStream,VkApplicationInfo * forUnmarshaling)62 void unmarshal_VkApplicationInfo(
63 VulkanStreamGuest* vkStream,
64 VkApplicationInfo* forUnmarshaling)
65 {
66 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
67 size_t pNext_size;
68 pNext_size = vkStream->getBe32();
69 if (pNext_size)
70 {
71 uint64_t pNext_placeholder;
72 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
73 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
74 }
75 vkStream->loadStringInPlace((char**)&forUnmarshaling->pApplicationName);
76 vkStream->read((uint32_t*)&forUnmarshaling->applicationVersion, sizeof(uint32_t));
77 vkStream->loadStringInPlace((char**)&forUnmarshaling->pEngineName);
78 vkStream->read((uint32_t*)&forUnmarshaling->engineVersion, sizeof(uint32_t));
79 vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
80 }
81
marshal_VkInstanceCreateInfo(VulkanStreamGuest * vkStream,const VkInstanceCreateInfo * forMarshaling)82 void marshal_VkInstanceCreateInfo(
83 VulkanStreamGuest* vkStream,
84 const VkInstanceCreateInfo* forMarshaling)
85 {
86 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
87 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
88 vkStream->putBe32(pNext_size);
89 if (pNext_size)
90 {
91 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
92 marshal_extension_struct(vkStream, forMarshaling->pNext);
93 }
94 vkStream->write((VkInstanceCreateFlags*)&forMarshaling->flags, sizeof(VkInstanceCreateFlags));
95 // WARNING PTR CHECK
96 uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
97 vkStream->putBe64(cgen_var_0);
98 if (forMarshaling->pApplicationInfo)
99 {
100 marshal_VkApplicationInfo(vkStream, (const VkApplicationInfo*)(forMarshaling->pApplicationInfo));
101 }
102 vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
103 saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
104 vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
105 saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames, forMarshaling->enabledExtensionCount);
106 }
107
unmarshal_VkInstanceCreateInfo(VulkanStreamGuest * vkStream,VkInstanceCreateInfo * forUnmarshaling)108 void unmarshal_VkInstanceCreateInfo(
109 VulkanStreamGuest* vkStream,
110 VkInstanceCreateInfo* forUnmarshaling)
111 {
112 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
113 size_t pNext_size;
114 pNext_size = vkStream->getBe32();
115 if (pNext_size)
116 {
117 uint64_t pNext_placeholder;
118 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
119 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
120 }
121 vkStream->read((VkInstanceCreateFlags*)&forUnmarshaling->flags, sizeof(VkInstanceCreateFlags));
122 // WARNING PTR CHECK
123 const VkApplicationInfo* check_pApplicationInfo;
124 check_pApplicationInfo = (const VkApplicationInfo*)(uintptr_t)vkStream->getBe64();
125 if (forUnmarshaling->pApplicationInfo)
126 {
127 if (!(check_pApplicationInfo))
128 {
129 fprintf(stderr, "fatal: forUnmarshaling->pApplicationInfo inconsistent between guest and host\n");
130 }
131 unmarshal_VkApplicationInfo(vkStream, (VkApplicationInfo*)(forUnmarshaling->pApplicationInfo));
132 }
133 vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
134 vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
135 vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
136 vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
137 }
138
marshal_VkAllocationCallbacks(VulkanStreamGuest * vkStream,const VkAllocationCallbacks * forMarshaling)139 void marshal_VkAllocationCallbacks(
140 VulkanStreamGuest* vkStream,
141 const VkAllocationCallbacks* forMarshaling)
142 {
143 // WARNING PTR CHECK
144 uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
145 vkStream->putBe64(cgen_var_2);
146 if (forMarshaling->pUserData)
147 {
148 vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
149 }
150 uint64_t cgen_var_3 = (uint64_t)forMarshaling->pfnAllocation;
151 vkStream->putBe64(cgen_var_3);
152 uint64_t cgen_var_4 = (uint64_t)forMarshaling->pfnReallocation;
153 vkStream->putBe64(cgen_var_4);
154 uint64_t cgen_var_5 = (uint64_t)forMarshaling->pfnFree;
155 vkStream->putBe64(cgen_var_5);
156 uint64_t cgen_var_6 = (uint64_t)forMarshaling->pfnInternalAllocation;
157 vkStream->putBe64(cgen_var_6);
158 uint64_t cgen_var_7 = (uint64_t)forMarshaling->pfnInternalFree;
159 vkStream->putBe64(cgen_var_7);
160 }
161
unmarshal_VkAllocationCallbacks(VulkanStreamGuest * vkStream,VkAllocationCallbacks * forUnmarshaling)162 void unmarshal_VkAllocationCallbacks(
163 VulkanStreamGuest* vkStream,
164 VkAllocationCallbacks* forUnmarshaling)
165 {
166 // WARNING PTR CHECK
167 void* check_pUserData;
168 check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
169 if (forUnmarshaling->pUserData)
170 {
171 if (!(check_pUserData))
172 {
173 fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
174 }
175 vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
176 }
177 forUnmarshaling->pfnAllocation = (PFN_vkAllocationFunction)vkStream->getBe64();
178 forUnmarshaling->pfnReallocation = (PFN_vkReallocationFunction)vkStream->getBe64();
179 forUnmarshaling->pfnFree = (PFN_vkFreeFunction)vkStream->getBe64();
180 forUnmarshaling->pfnInternalAllocation = (PFN_vkInternalAllocationNotification)vkStream->getBe64();
181 forUnmarshaling->pfnInternalFree = (PFN_vkInternalFreeNotification)vkStream->getBe64();
182 }
183
marshal_VkPhysicalDeviceFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceFeatures * forMarshaling)184 void marshal_VkPhysicalDeviceFeatures(
185 VulkanStreamGuest* vkStream,
186 const VkPhysicalDeviceFeatures* forMarshaling)
187 {
188 vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess, sizeof(VkBool32));
189 vkStream->write((VkBool32*)&forMarshaling->fullDrawIndexUint32, sizeof(VkBool32));
190 vkStream->write((VkBool32*)&forMarshaling->imageCubeArray, sizeof(VkBool32));
191 vkStream->write((VkBool32*)&forMarshaling->independentBlend, sizeof(VkBool32));
192 vkStream->write((VkBool32*)&forMarshaling->geometryShader, sizeof(VkBool32));
193 vkStream->write((VkBool32*)&forMarshaling->tessellationShader, sizeof(VkBool32));
194 vkStream->write((VkBool32*)&forMarshaling->sampleRateShading, sizeof(VkBool32));
195 vkStream->write((VkBool32*)&forMarshaling->dualSrcBlend, sizeof(VkBool32));
196 vkStream->write((VkBool32*)&forMarshaling->logicOp, sizeof(VkBool32));
197 vkStream->write((VkBool32*)&forMarshaling->multiDrawIndirect, sizeof(VkBool32));
198 vkStream->write((VkBool32*)&forMarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
199 vkStream->write((VkBool32*)&forMarshaling->depthClamp, sizeof(VkBool32));
200 vkStream->write((VkBool32*)&forMarshaling->depthBiasClamp, sizeof(VkBool32));
201 vkStream->write((VkBool32*)&forMarshaling->fillModeNonSolid, sizeof(VkBool32));
202 vkStream->write((VkBool32*)&forMarshaling->depthBounds, sizeof(VkBool32));
203 vkStream->write((VkBool32*)&forMarshaling->wideLines, sizeof(VkBool32));
204 vkStream->write((VkBool32*)&forMarshaling->largePoints, sizeof(VkBool32));
205 vkStream->write((VkBool32*)&forMarshaling->alphaToOne, sizeof(VkBool32));
206 vkStream->write((VkBool32*)&forMarshaling->multiViewport, sizeof(VkBool32));
207 vkStream->write((VkBool32*)&forMarshaling->samplerAnisotropy, sizeof(VkBool32));
208 vkStream->write((VkBool32*)&forMarshaling->textureCompressionETC2, sizeof(VkBool32));
209 vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
210 vkStream->write((VkBool32*)&forMarshaling->textureCompressionBC, sizeof(VkBool32));
211 vkStream->write((VkBool32*)&forMarshaling->occlusionQueryPrecise, sizeof(VkBool32));
212 vkStream->write((VkBool32*)&forMarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
213 vkStream->write((VkBool32*)&forMarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
214 vkStream->write((VkBool32*)&forMarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
215 vkStream->write((VkBool32*)&forMarshaling->shaderTessellationAndGeometryPointSize, sizeof(VkBool32));
216 vkStream->write((VkBool32*)&forMarshaling->shaderImageGatherExtended, sizeof(VkBool32));
217 vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageExtendedFormats, sizeof(VkBool32));
218 vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
219 vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageReadWithoutFormat, sizeof(VkBool32));
220 vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageWriteWithoutFormat, sizeof(VkBool32));
221 vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayDynamicIndexing, sizeof(VkBool32));
222 vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayDynamicIndexing, sizeof(VkBool32));
223 vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayDynamicIndexing, sizeof(VkBool32));
224 vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayDynamicIndexing, sizeof(VkBool32));
225 vkStream->write((VkBool32*)&forMarshaling->shaderClipDistance, sizeof(VkBool32));
226 vkStream->write((VkBool32*)&forMarshaling->shaderCullDistance, sizeof(VkBool32));
227 vkStream->write((VkBool32*)&forMarshaling->shaderFloat64, sizeof(VkBool32));
228 vkStream->write((VkBool32*)&forMarshaling->shaderInt64, sizeof(VkBool32));
229 vkStream->write((VkBool32*)&forMarshaling->shaderInt16, sizeof(VkBool32));
230 vkStream->write((VkBool32*)&forMarshaling->shaderResourceResidency, sizeof(VkBool32));
231 vkStream->write((VkBool32*)&forMarshaling->shaderResourceMinLod, sizeof(VkBool32));
232 vkStream->write((VkBool32*)&forMarshaling->sparseBinding, sizeof(VkBool32));
233 vkStream->write((VkBool32*)&forMarshaling->sparseResidencyBuffer, sizeof(VkBool32));
234 vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage2D, sizeof(VkBool32));
235 vkStream->write((VkBool32*)&forMarshaling->sparseResidencyImage3D, sizeof(VkBool32));
236 vkStream->write((VkBool32*)&forMarshaling->sparseResidency2Samples, sizeof(VkBool32));
237 vkStream->write((VkBool32*)&forMarshaling->sparseResidency4Samples, sizeof(VkBool32));
238 vkStream->write((VkBool32*)&forMarshaling->sparseResidency8Samples, sizeof(VkBool32));
239 vkStream->write((VkBool32*)&forMarshaling->sparseResidency16Samples, sizeof(VkBool32));
240 vkStream->write((VkBool32*)&forMarshaling->sparseResidencyAliased, sizeof(VkBool32));
241 vkStream->write((VkBool32*)&forMarshaling->variableMultisampleRate, sizeof(VkBool32));
242 vkStream->write((VkBool32*)&forMarshaling->inheritedQueries, sizeof(VkBool32));
243 }
244
unmarshal_VkPhysicalDeviceFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceFeatures * forUnmarshaling)245 void unmarshal_VkPhysicalDeviceFeatures(
246 VulkanStreamGuest* vkStream,
247 VkPhysicalDeviceFeatures* forUnmarshaling)
248 {
249 vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess, sizeof(VkBool32));
250 vkStream->read((VkBool32*)&forUnmarshaling->fullDrawIndexUint32, sizeof(VkBool32));
251 vkStream->read((VkBool32*)&forUnmarshaling->imageCubeArray, sizeof(VkBool32));
252 vkStream->read((VkBool32*)&forUnmarshaling->independentBlend, sizeof(VkBool32));
253 vkStream->read((VkBool32*)&forUnmarshaling->geometryShader, sizeof(VkBool32));
254 vkStream->read((VkBool32*)&forUnmarshaling->tessellationShader, sizeof(VkBool32));
255 vkStream->read((VkBool32*)&forUnmarshaling->sampleRateShading, sizeof(VkBool32));
256 vkStream->read((VkBool32*)&forUnmarshaling->dualSrcBlend, sizeof(VkBool32));
257 vkStream->read((VkBool32*)&forUnmarshaling->logicOp, sizeof(VkBool32));
258 vkStream->read((VkBool32*)&forUnmarshaling->multiDrawIndirect, sizeof(VkBool32));
259 vkStream->read((VkBool32*)&forUnmarshaling->drawIndirectFirstInstance, sizeof(VkBool32));
260 vkStream->read((VkBool32*)&forUnmarshaling->depthClamp, sizeof(VkBool32));
261 vkStream->read((VkBool32*)&forUnmarshaling->depthBiasClamp, sizeof(VkBool32));
262 vkStream->read((VkBool32*)&forUnmarshaling->fillModeNonSolid, sizeof(VkBool32));
263 vkStream->read((VkBool32*)&forUnmarshaling->depthBounds, sizeof(VkBool32));
264 vkStream->read((VkBool32*)&forUnmarshaling->wideLines, sizeof(VkBool32));
265 vkStream->read((VkBool32*)&forUnmarshaling->largePoints, sizeof(VkBool32));
266 vkStream->read((VkBool32*)&forUnmarshaling->alphaToOne, sizeof(VkBool32));
267 vkStream->read((VkBool32*)&forUnmarshaling->multiViewport, sizeof(VkBool32));
268 vkStream->read((VkBool32*)&forUnmarshaling->samplerAnisotropy, sizeof(VkBool32));
269 vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionETC2, sizeof(VkBool32));
270 vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_LDR, sizeof(VkBool32));
271 vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionBC, sizeof(VkBool32));
272 vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryPrecise, sizeof(VkBool32));
273 vkStream->read((VkBool32*)&forUnmarshaling->pipelineStatisticsQuery, sizeof(VkBool32));
274 vkStream->read((VkBool32*)&forUnmarshaling->vertexPipelineStoresAndAtomics, sizeof(VkBool32));
275 vkStream->read((VkBool32*)&forUnmarshaling->fragmentStoresAndAtomics, sizeof(VkBool32));
276 vkStream->read((VkBool32*)&forUnmarshaling->shaderTessellationAndGeometryPointSize, sizeof(VkBool32));
277 vkStream->read((VkBool32*)&forUnmarshaling->shaderImageGatherExtended, sizeof(VkBool32));
278 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageExtendedFormats, sizeof(VkBool32));
279 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageMultisample, sizeof(VkBool32));
280 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageReadWithoutFormat, sizeof(VkBool32));
281 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageWriteWithoutFormat, sizeof(VkBool32));
282 vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayDynamicIndexing, sizeof(VkBool32));
283 vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayDynamicIndexing, sizeof(VkBool32));
284 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayDynamicIndexing, sizeof(VkBool32));
285 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayDynamicIndexing, sizeof(VkBool32));
286 vkStream->read((VkBool32*)&forUnmarshaling->shaderClipDistance, sizeof(VkBool32));
287 vkStream->read((VkBool32*)&forUnmarshaling->shaderCullDistance, sizeof(VkBool32));
288 vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat64, sizeof(VkBool32));
289 vkStream->read((VkBool32*)&forUnmarshaling->shaderInt64, sizeof(VkBool32));
290 vkStream->read((VkBool32*)&forUnmarshaling->shaderInt16, sizeof(VkBool32));
291 vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceResidency, sizeof(VkBool32));
292 vkStream->read((VkBool32*)&forUnmarshaling->shaderResourceMinLod, sizeof(VkBool32));
293 vkStream->read((VkBool32*)&forUnmarshaling->sparseBinding, sizeof(VkBool32));
294 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyBuffer, sizeof(VkBool32));
295 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage2D, sizeof(VkBool32));
296 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyImage3D, sizeof(VkBool32));
297 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency2Samples, sizeof(VkBool32));
298 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency4Samples, sizeof(VkBool32));
299 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency8Samples, sizeof(VkBool32));
300 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidency16Samples, sizeof(VkBool32));
301 vkStream->read((VkBool32*)&forUnmarshaling->sparseResidencyAliased, sizeof(VkBool32));
302 vkStream->read((VkBool32*)&forUnmarshaling->variableMultisampleRate, sizeof(VkBool32));
303 vkStream->read((VkBool32*)&forUnmarshaling->inheritedQueries, sizeof(VkBool32));
304 }
305
marshal_VkFormatProperties(VulkanStreamGuest * vkStream,const VkFormatProperties * forMarshaling)306 void marshal_VkFormatProperties(
307 VulkanStreamGuest* vkStream,
308 const VkFormatProperties* forMarshaling)
309 {
310 vkStream->write((VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
311 vkStream->write((VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
312 vkStream->write((VkFormatFeatureFlags*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
313 }
314
unmarshal_VkFormatProperties(VulkanStreamGuest * vkStream,VkFormatProperties * forUnmarshaling)315 void unmarshal_VkFormatProperties(
316 VulkanStreamGuest* vkStream,
317 VkFormatProperties* forUnmarshaling)
318 {
319 vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
320 vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
321 vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
322 }
323
marshal_VkExtent3D(VulkanStreamGuest * vkStream,const VkExtent3D * forMarshaling)324 void marshal_VkExtent3D(
325 VulkanStreamGuest* vkStream,
326 const VkExtent3D* forMarshaling)
327 {
328 vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
329 vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
330 vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
331 }
332
unmarshal_VkExtent3D(VulkanStreamGuest * vkStream,VkExtent3D * forUnmarshaling)333 void unmarshal_VkExtent3D(
334 VulkanStreamGuest* vkStream,
335 VkExtent3D* forUnmarshaling)
336 {
337 vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
338 vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
339 vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
340 }
341
marshal_VkImageFormatProperties(VulkanStreamGuest * vkStream,const VkImageFormatProperties * forMarshaling)342 void marshal_VkImageFormatProperties(
343 VulkanStreamGuest* vkStream,
344 const VkImageFormatProperties* forMarshaling)
345 {
346 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->maxExtent));
347 vkStream->write((uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
348 vkStream->write((uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
349 vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
350 vkStream->write((VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
351 }
352
unmarshal_VkImageFormatProperties(VulkanStreamGuest * vkStream,VkImageFormatProperties * forUnmarshaling)353 void unmarshal_VkImageFormatProperties(
354 VulkanStreamGuest* vkStream,
355 VkImageFormatProperties* forUnmarshaling)
356 {
357 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->maxExtent));
358 vkStream->read((uint32_t*)&forUnmarshaling->maxMipLevels, sizeof(uint32_t));
359 vkStream->read((uint32_t*)&forUnmarshaling->maxArrayLayers, sizeof(uint32_t));
360 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
361 vkStream->read((VkDeviceSize*)&forUnmarshaling->maxResourceSize, sizeof(VkDeviceSize));
362 }
363
marshal_VkPhysicalDeviceLimits(VulkanStreamGuest * vkStream,const VkPhysicalDeviceLimits * forMarshaling)364 void marshal_VkPhysicalDeviceLimits(
365 VulkanStreamGuest* vkStream,
366 const VkPhysicalDeviceLimits* forMarshaling)
367 {
368 vkStream->write((uint32_t*)&forMarshaling->maxImageDimension1D, sizeof(uint32_t));
369 vkStream->write((uint32_t*)&forMarshaling->maxImageDimension2D, sizeof(uint32_t));
370 vkStream->write((uint32_t*)&forMarshaling->maxImageDimension3D, sizeof(uint32_t));
371 vkStream->write((uint32_t*)&forMarshaling->maxImageDimensionCube, sizeof(uint32_t));
372 vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
373 vkStream->write((uint32_t*)&forMarshaling->maxTexelBufferElements, sizeof(uint32_t));
374 vkStream->write((uint32_t*)&forMarshaling->maxUniformBufferRange, sizeof(uint32_t));
375 vkStream->write((uint32_t*)&forMarshaling->maxStorageBufferRange, sizeof(uint32_t));
376 vkStream->write((uint32_t*)&forMarshaling->maxPushConstantsSize, sizeof(uint32_t));
377 vkStream->write((uint32_t*)&forMarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
378 vkStream->write((uint32_t*)&forMarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
379 vkStream->write((VkDeviceSize*)&forMarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
380 vkStream->write((VkDeviceSize*)&forMarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
381 vkStream->write((uint32_t*)&forMarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
382 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
383 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUniformBuffers, sizeof(uint32_t));
384 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageBuffers, sizeof(uint32_t));
385 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorSampledImages, sizeof(uint32_t));
386 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorStorageImages, sizeof(uint32_t));
387 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInputAttachments, sizeof(uint32_t));
388 vkStream->write((uint32_t*)&forMarshaling->maxPerStageResources, sizeof(uint32_t));
389 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
390 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
391 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUniformBuffersDynamic, sizeof(uint32_t));
392 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
393 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageBuffersDynamic, sizeof(uint32_t));
394 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
395 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
396 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
397 vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributes, sizeof(uint32_t));
398 vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindings, sizeof(uint32_t));
399 vkStream->write((uint32_t*)&forMarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
400 vkStream->write((uint32_t*)&forMarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
401 vkStream->write((uint32_t*)&forMarshaling->maxVertexOutputComponents, sizeof(uint32_t));
402 vkStream->write((uint32_t*)&forMarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
403 vkStream->write((uint32_t*)&forMarshaling->maxTessellationPatchSize, sizeof(uint32_t));
404 vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexInputComponents, sizeof(uint32_t));
405 vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerVertexOutputComponents, sizeof(uint32_t));
406 vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlPerPatchOutputComponents, sizeof(uint32_t));
407 vkStream->write((uint32_t*)&forMarshaling->maxTessellationControlTotalOutputComponents, sizeof(uint32_t));
408 vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationInputComponents, sizeof(uint32_t));
409 vkStream->write((uint32_t*)&forMarshaling->maxTessellationEvaluationOutputComponents, sizeof(uint32_t));
410 vkStream->write((uint32_t*)&forMarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
411 vkStream->write((uint32_t*)&forMarshaling->maxGeometryInputComponents, sizeof(uint32_t));
412 vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
413 vkStream->write((uint32_t*)&forMarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
414 vkStream->write((uint32_t*)&forMarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
415 vkStream->write((uint32_t*)&forMarshaling->maxFragmentInputComponents, sizeof(uint32_t));
416 vkStream->write((uint32_t*)&forMarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
417 vkStream->write((uint32_t*)&forMarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
418 vkStream->write((uint32_t*)&forMarshaling->maxFragmentCombinedOutputResources, sizeof(uint32_t));
419 vkStream->write((uint32_t*)&forMarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
420 vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
421 vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
422 vkStream->write((uint32_t*)forMarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
423 vkStream->write((uint32_t*)&forMarshaling->subPixelPrecisionBits, sizeof(uint32_t));
424 vkStream->write((uint32_t*)&forMarshaling->subTexelPrecisionBits, sizeof(uint32_t));
425 vkStream->write((uint32_t*)&forMarshaling->mipmapPrecisionBits, sizeof(uint32_t));
426 vkStream->write((uint32_t*)&forMarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
427 vkStream->write((uint32_t*)&forMarshaling->maxDrawIndirectCount, sizeof(uint32_t));
428 vkStream->write((float*)&forMarshaling->maxSamplerLodBias, sizeof(float));
429 vkStream->write((float*)&forMarshaling->maxSamplerAnisotropy, sizeof(float));
430 vkStream->write((uint32_t*)&forMarshaling->maxViewports, sizeof(uint32_t));
431 vkStream->write((uint32_t*)forMarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
432 vkStream->write((float*)forMarshaling->viewportBoundsRange, 2 * sizeof(float));
433 vkStream->write((uint32_t*)&forMarshaling->viewportSubPixelBits, sizeof(uint32_t));
434 uint64_t cgen_var_14 = (uint64_t)forMarshaling->minMemoryMapAlignment;
435 vkStream->putBe64(cgen_var_14);
436 vkStream->write((VkDeviceSize*)&forMarshaling->minTexelBufferOffsetAlignment, sizeof(VkDeviceSize));
437 vkStream->write((VkDeviceSize*)&forMarshaling->minUniformBufferOffsetAlignment, sizeof(VkDeviceSize));
438 vkStream->write((VkDeviceSize*)&forMarshaling->minStorageBufferOffsetAlignment, sizeof(VkDeviceSize));
439 vkStream->write((int32_t*)&forMarshaling->minTexelOffset, sizeof(int32_t));
440 vkStream->write((uint32_t*)&forMarshaling->maxTexelOffset, sizeof(uint32_t));
441 vkStream->write((int32_t*)&forMarshaling->minTexelGatherOffset, sizeof(int32_t));
442 vkStream->write((uint32_t*)&forMarshaling->maxTexelGatherOffset, sizeof(uint32_t));
443 vkStream->write((float*)&forMarshaling->minInterpolationOffset, sizeof(float));
444 vkStream->write((float*)&forMarshaling->maxInterpolationOffset, sizeof(float));
445 vkStream->write((uint32_t*)&forMarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
446 vkStream->write((uint32_t*)&forMarshaling->maxFramebufferWidth, sizeof(uint32_t));
447 vkStream->write((uint32_t*)&forMarshaling->maxFramebufferHeight, sizeof(uint32_t));
448 vkStream->write((uint32_t*)&forMarshaling->maxFramebufferLayers, sizeof(uint32_t));
449 vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferColorSampleCounts, sizeof(VkSampleCountFlags));
450 vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferDepthSampleCounts, sizeof(VkSampleCountFlags));
451 vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferStencilSampleCounts, sizeof(VkSampleCountFlags));
452 vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferNoAttachmentsSampleCounts, sizeof(VkSampleCountFlags));
453 vkStream->write((uint32_t*)&forMarshaling->maxColorAttachments, sizeof(uint32_t));
454 vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageColorSampleCounts, sizeof(VkSampleCountFlags));
455 vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageIntegerSampleCounts, sizeof(VkSampleCountFlags));
456 vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageDepthSampleCounts, sizeof(VkSampleCountFlags));
457 vkStream->write((VkSampleCountFlags*)&forMarshaling->sampledImageStencilSampleCounts, sizeof(VkSampleCountFlags));
458 vkStream->write((VkSampleCountFlags*)&forMarshaling->storageImageSampleCounts, sizeof(VkSampleCountFlags));
459 vkStream->write((uint32_t*)&forMarshaling->maxSampleMaskWords, sizeof(uint32_t));
460 vkStream->write((VkBool32*)&forMarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
461 vkStream->write((float*)&forMarshaling->timestampPeriod, sizeof(float));
462 vkStream->write((uint32_t*)&forMarshaling->maxClipDistances, sizeof(uint32_t));
463 vkStream->write((uint32_t*)&forMarshaling->maxCullDistances, sizeof(uint32_t));
464 vkStream->write((uint32_t*)&forMarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
465 vkStream->write((uint32_t*)&forMarshaling->discreteQueuePriorities, sizeof(uint32_t));
466 vkStream->write((float*)forMarshaling->pointSizeRange, 2 * sizeof(float));
467 vkStream->write((float*)forMarshaling->lineWidthRange, 2 * sizeof(float));
468 vkStream->write((float*)&forMarshaling->pointSizeGranularity, sizeof(float));
469 vkStream->write((float*)&forMarshaling->lineWidthGranularity, sizeof(float));
470 vkStream->write((VkBool32*)&forMarshaling->strictLines, sizeof(VkBool32));
471 vkStream->write((VkBool32*)&forMarshaling->standardSampleLocations, sizeof(VkBool32));
472 vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyOffsetAlignment, sizeof(VkDeviceSize));
473 vkStream->write((VkDeviceSize*)&forMarshaling->optimalBufferCopyRowPitchAlignment, sizeof(VkDeviceSize));
474 vkStream->write((VkDeviceSize*)&forMarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
475 }
476
unmarshal_VkPhysicalDeviceLimits(VulkanStreamGuest * vkStream,VkPhysicalDeviceLimits * forUnmarshaling)477 void unmarshal_VkPhysicalDeviceLimits(
478 VulkanStreamGuest* vkStream,
479 VkPhysicalDeviceLimits* forUnmarshaling)
480 {
481 vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension1D, sizeof(uint32_t));
482 vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension2D, sizeof(uint32_t));
483 vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension3D, sizeof(uint32_t));
484 vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimensionCube, sizeof(uint32_t));
485 vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
486 vkStream->read((uint32_t*)&forUnmarshaling->maxTexelBufferElements, sizeof(uint32_t));
487 vkStream->read((uint32_t*)&forUnmarshaling->maxUniformBufferRange, sizeof(uint32_t));
488 vkStream->read((uint32_t*)&forUnmarshaling->maxStorageBufferRange, sizeof(uint32_t));
489 vkStream->read((uint32_t*)&forUnmarshaling->maxPushConstantsSize, sizeof(uint32_t));
490 vkStream->read((uint32_t*)&forUnmarshaling->maxMemoryAllocationCount, sizeof(uint32_t));
491 vkStream->read((uint32_t*)&forUnmarshaling->maxSamplerAllocationCount, sizeof(uint32_t));
492 vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferImageGranularity, sizeof(VkDeviceSize));
493 vkStream->read((VkDeviceSize*)&forUnmarshaling->sparseAddressSpaceSize, sizeof(VkDeviceSize));
494 vkStream->read((uint32_t*)&forUnmarshaling->maxBoundDescriptorSets, sizeof(uint32_t));
495 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSamplers, sizeof(uint32_t));
496 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUniformBuffers, sizeof(uint32_t));
497 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageBuffers, sizeof(uint32_t));
498 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSampledImages, sizeof(uint32_t));
499 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageImages, sizeof(uint32_t));
500 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInputAttachments, sizeof(uint32_t));
501 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageResources, sizeof(uint32_t));
502 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSamplers, sizeof(uint32_t));
503 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffers, sizeof(uint32_t));
504 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffersDynamic, sizeof(uint32_t));
505 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffers, sizeof(uint32_t));
506 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffersDynamic, sizeof(uint32_t));
507 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSampledImages, sizeof(uint32_t));
508 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageImages, sizeof(uint32_t));
509 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInputAttachments, sizeof(uint32_t));
510 vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributes, sizeof(uint32_t));
511 vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindings, sizeof(uint32_t));
512 vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputAttributeOffset, sizeof(uint32_t));
513 vkStream->read((uint32_t*)&forUnmarshaling->maxVertexInputBindingStride, sizeof(uint32_t));
514 vkStream->read((uint32_t*)&forUnmarshaling->maxVertexOutputComponents, sizeof(uint32_t));
515 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationGenerationLevel, sizeof(uint32_t));
516 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationPatchSize, sizeof(uint32_t));
517 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexInputComponents, sizeof(uint32_t));
518 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexOutputComponents, sizeof(uint32_t));
519 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlPerPatchOutputComponents, sizeof(uint32_t));
520 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationControlTotalOutputComponents, sizeof(uint32_t));
521 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationInputComponents, sizeof(uint32_t));
522 vkStream->read((uint32_t*)&forUnmarshaling->maxTessellationEvaluationOutputComponents, sizeof(uint32_t));
523 vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryShaderInvocations, sizeof(uint32_t));
524 vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryInputComponents, sizeof(uint32_t));
525 vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputComponents, sizeof(uint32_t));
526 vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryOutputVertices, sizeof(uint32_t));
527 vkStream->read((uint32_t*)&forUnmarshaling->maxGeometryTotalOutputComponents, sizeof(uint32_t));
528 vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentInputComponents, sizeof(uint32_t));
529 vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentOutputAttachments, sizeof(uint32_t));
530 vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentDualSrcAttachments, sizeof(uint32_t));
531 vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentCombinedOutputResources, sizeof(uint32_t));
532 vkStream->read((uint32_t*)&forUnmarshaling->maxComputeSharedMemorySize, sizeof(uint32_t));
533 vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
534 vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkGroupInvocations, sizeof(uint32_t));
535 vkStream->read((uint32_t*)forUnmarshaling->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
536 vkStream->read((uint32_t*)&forUnmarshaling->subPixelPrecisionBits, sizeof(uint32_t));
537 vkStream->read((uint32_t*)&forUnmarshaling->subTexelPrecisionBits, sizeof(uint32_t));
538 vkStream->read((uint32_t*)&forUnmarshaling->mipmapPrecisionBits, sizeof(uint32_t));
539 vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndexedIndexValue, sizeof(uint32_t));
540 vkStream->read((uint32_t*)&forUnmarshaling->maxDrawIndirectCount, sizeof(uint32_t));
541 vkStream->read((float*)&forUnmarshaling->maxSamplerLodBias, sizeof(float));
542 vkStream->read((float*)&forUnmarshaling->maxSamplerAnisotropy, sizeof(float));
543 vkStream->read((uint32_t*)&forUnmarshaling->maxViewports, sizeof(uint32_t));
544 vkStream->read((uint32_t*)forUnmarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
545 vkStream->read((float*)forUnmarshaling->viewportBoundsRange, 2 * sizeof(float));
546 vkStream->read((uint32_t*)&forUnmarshaling->viewportSubPixelBits, sizeof(uint32_t));
547 forUnmarshaling->minMemoryMapAlignment = (size_t)vkStream->getBe64();
548 vkStream->read((VkDeviceSize*)&forUnmarshaling->minTexelBufferOffsetAlignment, sizeof(VkDeviceSize));
549 vkStream->read((VkDeviceSize*)&forUnmarshaling->minUniformBufferOffsetAlignment, sizeof(VkDeviceSize));
550 vkStream->read((VkDeviceSize*)&forUnmarshaling->minStorageBufferOffsetAlignment, sizeof(VkDeviceSize));
551 vkStream->read((int32_t*)&forUnmarshaling->minTexelOffset, sizeof(int32_t));
552 vkStream->read((uint32_t*)&forUnmarshaling->maxTexelOffset, sizeof(uint32_t));
553 vkStream->read((int32_t*)&forUnmarshaling->minTexelGatherOffset, sizeof(int32_t));
554 vkStream->read((uint32_t*)&forUnmarshaling->maxTexelGatherOffset, sizeof(uint32_t));
555 vkStream->read((float*)&forUnmarshaling->minInterpolationOffset, sizeof(float));
556 vkStream->read((float*)&forUnmarshaling->maxInterpolationOffset, sizeof(float));
557 vkStream->read((uint32_t*)&forUnmarshaling->subPixelInterpolationOffsetBits, sizeof(uint32_t));
558 vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferWidth, sizeof(uint32_t));
559 vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferHeight, sizeof(uint32_t));
560 vkStream->read((uint32_t*)&forUnmarshaling->maxFramebufferLayers, sizeof(uint32_t));
561 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferColorSampleCounts, sizeof(VkSampleCountFlags));
562 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferDepthSampleCounts, sizeof(VkSampleCountFlags));
563 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferStencilSampleCounts, sizeof(VkSampleCountFlags));
564 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferNoAttachmentsSampleCounts, sizeof(VkSampleCountFlags));
565 vkStream->read((uint32_t*)&forUnmarshaling->maxColorAttachments, sizeof(uint32_t));
566 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageColorSampleCounts, sizeof(VkSampleCountFlags));
567 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageIntegerSampleCounts, sizeof(VkSampleCountFlags));
568 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageDepthSampleCounts, sizeof(VkSampleCountFlags));
569 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampledImageStencilSampleCounts, sizeof(VkSampleCountFlags));
570 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->storageImageSampleCounts, sizeof(VkSampleCountFlags));
571 vkStream->read((uint32_t*)&forUnmarshaling->maxSampleMaskWords, sizeof(uint32_t));
572 vkStream->read((VkBool32*)&forUnmarshaling->timestampComputeAndGraphics, sizeof(VkBool32));
573 vkStream->read((float*)&forUnmarshaling->timestampPeriod, sizeof(float));
574 vkStream->read((uint32_t*)&forUnmarshaling->maxClipDistances, sizeof(uint32_t));
575 vkStream->read((uint32_t*)&forUnmarshaling->maxCullDistances, sizeof(uint32_t));
576 vkStream->read((uint32_t*)&forUnmarshaling->maxCombinedClipAndCullDistances, sizeof(uint32_t));
577 vkStream->read((uint32_t*)&forUnmarshaling->discreteQueuePriorities, sizeof(uint32_t));
578 vkStream->read((float*)forUnmarshaling->pointSizeRange, 2 * sizeof(float));
579 vkStream->read((float*)forUnmarshaling->lineWidthRange, 2 * sizeof(float));
580 vkStream->read((float*)&forUnmarshaling->pointSizeGranularity, sizeof(float));
581 vkStream->read((float*)&forUnmarshaling->lineWidthGranularity, sizeof(float));
582 vkStream->read((VkBool32*)&forUnmarshaling->strictLines, sizeof(VkBool32));
583 vkStream->read((VkBool32*)&forUnmarshaling->standardSampleLocations, sizeof(VkBool32));
584 vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyOffsetAlignment, sizeof(VkDeviceSize));
585 vkStream->read((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyRowPitchAlignment, sizeof(VkDeviceSize));
586 vkStream->read((VkDeviceSize*)&forUnmarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
587 }
588
marshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSparseProperties * forMarshaling)589 void marshal_VkPhysicalDeviceSparseProperties(
590 VulkanStreamGuest* vkStream,
591 const VkPhysicalDeviceSparseProperties* forMarshaling)
592 {
593 vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
594 vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DMultisampleBlockShape, sizeof(VkBool32));
595 vkStream->write((VkBool32*)&forMarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
596 vkStream->write((VkBool32*)&forMarshaling->residencyAlignedMipSize, sizeof(VkBool32));
597 vkStream->write((VkBool32*)&forMarshaling->residencyNonResidentStrict, sizeof(VkBool32));
598 }
599
unmarshal_VkPhysicalDeviceSparseProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceSparseProperties * forUnmarshaling)600 void unmarshal_VkPhysicalDeviceSparseProperties(
601 VulkanStreamGuest* vkStream,
602 VkPhysicalDeviceSparseProperties* forUnmarshaling)
603 {
604 vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
605 vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DMultisampleBlockShape, sizeof(VkBool32));
606 vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard3DBlockShape, sizeof(VkBool32));
607 vkStream->read((VkBool32*)&forUnmarshaling->residencyAlignedMipSize, sizeof(VkBool32));
608 vkStream->read((VkBool32*)&forUnmarshaling->residencyNonResidentStrict, sizeof(VkBool32));
609 }
610
marshal_VkPhysicalDeviceProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProperties * forMarshaling)611 void marshal_VkPhysicalDeviceProperties(
612 VulkanStreamGuest* vkStream,
613 const VkPhysicalDeviceProperties* forMarshaling)
614 {
615 vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
616 vkStream->write((uint32_t*)&forMarshaling->driverVersion, sizeof(uint32_t));
617 vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
618 vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
619 vkStream->write((VkPhysicalDeviceType*)&forMarshaling->deviceType, sizeof(VkPhysicalDeviceType));
620 vkStream->write((char*)forMarshaling->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
621 vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
622 marshal_VkPhysicalDeviceLimits(vkStream, (VkPhysicalDeviceLimits*)(&forMarshaling->limits));
623 marshal_VkPhysicalDeviceSparseProperties(vkStream, (VkPhysicalDeviceSparseProperties*)(&forMarshaling->sparseProperties));
624 }
625
unmarshal_VkPhysicalDeviceProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceProperties * forUnmarshaling)626 void unmarshal_VkPhysicalDeviceProperties(
627 VulkanStreamGuest* vkStream,
628 VkPhysicalDeviceProperties* forUnmarshaling)
629 {
630 vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
631 vkStream->read((uint32_t*)&forUnmarshaling->driverVersion, sizeof(uint32_t));
632 vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
633 vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
634 vkStream->read((VkPhysicalDeviceType*)&forUnmarshaling->deviceType, sizeof(VkPhysicalDeviceType));
635 vkStream->read((char*)forUnmarshaling->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
636 vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
637 unmarshal_VkPhysicalDeviceLimits(vkStream, (VkPhysicalDeviceLimits*)(&forUnmarshaling->limits));
638 unmarshal_VkPhysicalDeviceSparseProperties(vkStream, (VkPhysicalDeviceSparseProperties*)(&forUnmarshaling->sparseProperties));
639 }
640
marshal_VkQueueFamilyProperties(VulkanStreamGuest * vkStream,const VkQueueFamilyProperties * forMarshaling)641 void marshal_VkQueueFamilyProperties(
642 VulkanStreamGuest* vkStream,
643 const VkQueueFamilyProperties* forMarshaling)
644 {
645 vkStream->write((VkQueueFlags*)&forMarshaling->queueFlags, sizeof(VkQueueFlags));
646 vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
647 vkStream->write((uint32_t*)&forMarshaling->timestampValidBits, sizeof(uint32_t));
648 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->minImageTransferGranularity));
649 }
650
unmarshal_VkQueueFamilyProperties(VulkanStreamGuest * vkStream,VkQueueFamilyProperties * forUnmarshaling)651 void unmarshal_VkQueueFamilyProperties(
652 VulkanStreamGuest* vkStream,
653 VkQueueFamilyProperties* forUnmarshaling)
654 {
655 vkStream->read((VkQueueFlags*)&forUnmarshaling->queueFlags, sizeof(VkQueueFlags));
656 vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
657 vkStream->read((uint32_t*)&forUnmarshaling->timestampValidBits, sizeof(uint32_t));
658 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->minImageTransferGranularity));
659 }
660
marshal_VkMemoryType(VulkanStreamGuest * vkStream,const VkMemoryType * forMarshaling)661 void marshal_VkMemoryType(
662 VulkanStreamGuest* vkStream,
663 const VkMemoryType* forMarshaling)
664 {
665 vkStream->write((VkMemoryPropertyFlags*)&forMarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
666 vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
667 }
668
unmarshal_VkMemoryType(VulkanStreamGuest * vkStream,VkMemoryType * forUnmarshaling)669 void unmarshal_VkMemoryType(
670 VulkanStreamGuest* vkStream,
671 VkMemoryType* forUnmarshaling)
672 {
673 vkStream->read((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
674 vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
675 }
676
marshal_VkMemoryHeap(VulkanStreamGuest * vkStream,const VkMemoryHeap * forMarshaling)677 void marshal_VkMemoryHeap(
678 VulkanStreamGuest* vkStream,
679 const VkMemoryHeap* forMarshaling)
680 {
681 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
682 vkStream->write((VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
683 }
684
unmarshal_VkMemoryHeap(VulkanStreamGuest * vkStream,VkMemoryHeap * forUnmarshaling)685 void unmarshal_VkMemoryHeap(
686 VulkanStreamGuest* vkStream,
687 VkMemoryHeap* forUnmarshaling)
688 {
689 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
690 vkStream->read((VkMemoryHeapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryHeapFlags));
691 }
692
marshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMemoryProperties * forMarshaling)693 void marshal_VkPhysicalDeviceMemoryProperties(
694 VulkanStreamGuest* vkStream,
695 const VkPhysicalDeviceMemoryProperties* forMarshaling)
696 {
697 vkStream->write((uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
698 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
699 {
700 marshal_VkMemoryType(vkStream, (VkMemoryType*)(forMarshaling->memoryTypes + i));
701 }
702 vkStream->write((uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
703 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
704 {
705 marshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i));
706 }
707 }
708
unmarshal_VkPhysicalDeviceMemoryProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceMemoryProperties * forUnmarshaling)709 void unmarshal_VkPhysicalDeviceMemoryProperties(
710 VulkanStreamGuest* vkStream,
711 VkPhysicalDeviceMemoryProperties* forUnmarshaling)
712 {
713 vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeCount, sizeof(uint32_t));
714 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
715 {
716 unmarshal_VkMemoryType(vkStream, (VkMemoryType*)(forUnmarshaling->memoryTypes + i));
717 }
718 vkStream->read((uint32_t*)&forUnmarshaling->memoryHeapCount, sizeof(uint32_t));
719 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
720 {
721 unmarshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forUnmarshaling->memoryHeaps + i));
722 }
723 }
724
marshal_VkDeviceQueueCreateInfo(VulkanStreamGuest * vkStream,const VkDeviceQueueCreateInfo * forMarshaling)725 void marshal_VkDeviceQueueCreateInfo(
726 VulkanStreamGuest* vkStream,
727 const VkDeviceQueueCreateInfo* forMarshaling)
728 {
729 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
730 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
731 vkStream->putBe32(pNext_size);
732 if (pNext_size)
733 {
734 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
735 marshal_extension_struct(vkStream, forMarshaling->pNext);
736 }
737 vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
738 vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
739 vkStream->write((uint32_t*)&forMarshaling->queueCount, sizeof(uint32_t));
740 vkStream->write((const float*)forMarshaling->pQueuePriorities, forMarshaling->queueCount * sizeof(const float));
741 }
742
unmarshal_VkDeviceQueueCreateInfo(VulkanStreamGuest * vkStream,VkDeviceQueueCreateInfo * forUnmarshaling)743 void unmarshal_VkDeviceQueueCreateInfo(
744 VulkanStreamGuest* vkStream,
745 VkDeviceQueueCreateInfo* forUnmarshaling)
746 {
747 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
748 size_t pNext_size;
749 pNext_size = vkStream->getBe32();
750 if (pNext_size)
751 {
752 uint64_t pNext_placeholder;
753 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
754 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
755 }
756 vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
757 vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
758 vkStream->read((uint32_t*)&forUnmarshaling->queueCount, sizeof(uint32_t));
759 vkStream->read((float*)forUnmarshaling->pQueuePriorities, forUnmarshaling->queueCount * sizeof(const float));
760 }
761
marshal_VkDeviceCreateInfo(VulkanStreamGuest * vkStream,const VkDeviceCreateInfo * forMarshaling)762 void marshal_VkDeviceCreateInfo(
763 VulkanStreamGuest* vkStream,
764 const VkDeviceCreateInfo* forMarshaling)
765 {
766 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
767 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
768 vkStream->putBe32(pNext_size);
769 if (pNext_size)
770 {
771 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
772 marshal_extension_struct(vkStream, forMarshaling->pNext);
773 }
774 vkStream->write((VkDeviceCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceCreateFlags));
775 vkStream->write((uint32_t*)&forMarshaling->queueCreateInfoCount, sizeof(uint32_t));
776 for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueCreateInfoCount; ++i)
777 {
778 marshal_VkDeviceQueueCreateInfo(vkStream, (const VkDeviceQueueCreateInfo*)(forMarshaling->pQueueCreateInfos + i));
779 }
780 vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
781 saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
782 vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
783 saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames, forMarshaling->enabledExtensionCount);
784 // WARNING PTR CHECK
785 uint64_t cgen_var_16 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
786 vkStream->putBe64(cgen_var_16);
787 if (forMarshaling->pEnabledFeatures)
788 {
789 marshal_VkPhysicalDeviceFeatures(vkStream, (const VkPhysicalDeviceFeatures*)(forMarshaling->pEnabledFeatures));
790 }
791 }
792
unmarshal_VkDeviceCreateInfo(VulkanStreamGuest * vkStream,VkDeviceCreateInfo * forUnmarshaling)793 void unmarshal_VkDeviceCreateInfo(
794 VulkanStreamGuest* vkStream,
795 VkDeviceCreateInfo* forUnmarshaling)
796 {
797 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
798 size_t pNext_size;
799 pNext_size = vkStream->getBe32();
800 if (pNext_size)
801 {
802 uint64_t pNext_placeholder;
803 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
804 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
805 }
806 vkStream->read((VkDeviceCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceCreateFlags));
807 vkStream->read((uint32_t*)&forUnmarshaling->queueCreateInfoCount, sizeof(uint32_t));
808 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueCreateInfoCount; ++i)
809 {
810 unmarshal_VkDeviceQueueCreateInfo(vkStream, (VkDeviceQueueCreateInfo*)(forUnmarshaling->pQueueCreateInfos + i));
811 }
812 vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
813 vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
814 vkStream->read((uint32_t*)&forUnmarshaling->enabledExtensionCount, sizeof(uint32_t));
815 vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
816 // WARNING PTR CHECK
817 const VkPhysicalDeviceFeatures* check_pEnabledFeatures;
818 check_pEnabledFeatures = (const VkPhysicalDeviceFeatures*)(uintptr_t)vkStream->getBe64();
819 if (forUnmarshaling->pEnabledFeatures)
820 {
821 if (!(check_pEnabledFeatures))
822 {
823 fprintf(stderr, "fatal: forUnmarshaling->pEnabledFeatures inconsistent between guest and host\n");
824 }
825 unmarshal_VkPhysicalDeviceFeatures(vkStream, (VkPhysicalDeviceFeatures*)(forUnmarshaling->pEnabledFeatures));
826 }
827 }
828
marshal_VkExtensionProperties(VulkanStreamGuest * vkStream,const VkExtensionProperties * forMarshaling)829 void marshal_VkExtensionProperties(
830 VulkanStreamGuest* vkStream,
831 const VkExtensionProperties* forMarshaling)
832 {
833 vkStream->write((char*)forMarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
834 vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
835 }
836
unmarshal_VkExtensionProperties(VulkanStreamGuest * vkStream,VkExtensionProperties * forUnmarshaling)837 void unmarshal_VkExtensionProperties(
838 VulkanStreamGuest* vkStream,
839 VkExtensionProperties* forUnmarshaling)
840 {
841 vkStream->read((char*)forUnmarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
842 vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
843 }
844
marshal_VkLayerProperties(VulkanStreamGuest * vkStream,const VkLayerProperties * forMarshaling)845 void marshal_VkLayerProperties(
846 VulkanStreamGuest* vkStream,
847 const VkLayerProperties* forMarshaling)
848 {
849 vkStream->write((char*)forMarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
850 vkStream->write((uint32_t*)&forMarshaling->specVersion, sizeof(uint32_t));
851 vkStream->write((uint32_t*)&forMarshaling->implementationVersion, sizeof(uint32_t));
852 vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
853 }
854
unmarshal_VkLayerProperties(VulkanStreamGuest * vkStream,VkLayerProperties * forUnmarshaling)855 void unmarshal_VkLayerProperties(
856 VulkanStreamGuest* vkStream,
857 VkLayerProperties* forUnmarshaling)
858 {
859 vkStream->read((char*)forUnmarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
860 vkStream->read((uint32_t*)&forUnmarshaling->specVersion, sizeof(uint32_t));
861 vkStream->read((uint32_t*)&forUnmarshaling->implementationVersion, sizeof(uint32_t));
862 vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
863 }
864
marshal_VkSubmitInfo(VulkanStreamGuest * vkStream,const VkSubmitInfo * forMarshaling)865 void marshal_VkSubmitInfo(
866 VulkanStreamGuest* vkStream,
867 const VkSubmitInfo* forMarshaling)
868 {
869 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
870 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
871 vkStream->putBe32(pNext_size);
872 if (pNext_size)
873 {
874 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
875 marshal_extension_struct(vkStream, forMarshaling->pNext);
876 }
877 vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
878 if (forMarshaling->waitSemaphoreCount)
879 {
880 uint64_t* cgen_var_18;
881 vkStream->alloc((void**)&cgen_var_18, forMarshaling->waitSemaphoreCount * 8);
882 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_18, forMarshaling->waitSemaphoreCount);
883 vkStream->write((uint64_t*)cgen_var_18, forMarshaling->waitSemaphoreCount * 8);
884 }
885 vkStream->write((const VkPipelineStageFlags*)forMarshaling->pWaitDstStageMask, forMarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
886 vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
887 if (forMarshaling->commandBufferCount)
888 {
889 uint64_t* cgen_var_19;
890 vkStream->alloc((void**)&cgen_var_19, forMarshaling->commandBufferCount * 8);
891 vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(forMarshaling->pCommandBuffers, cgen_var_19, forMarshaling->commandBufferCount);
892 vkStream->write((uint64_t*)cgen_var_19, forMarshaling->commandBufferCount * 8);
893 }
894 vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
895 if (forMarshaling->signalSemaphoreCount)
896 {
897 uint64_t* cgen_var_20;
898 vkStream->alloc((void**)&cgen_var_20, forMarshaling->signalSemaphoreCount * 8);
899 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_20, forMarshaling->signalSemaphoreCount);
900 vkStream->write((uint64_t*)cgen_var_20, forMarshaling->signalSemaphoreCount * 8);
901 }
902 }
903
unmarshal_VkSubmitInfo(VulkanStreamGuest * vkStream,VkSubmitInfo * forUnmarshaling)904 void unmarshal_VkSubmitInfo(
905 VulkanStreamGuest* vkStream,
906 VkSubmitInfo* forUnmarshaling)
907 {
908 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
909 size_t pNext_size;
910 pNext_size = vkStream->getBe32();
911 if (pNext_size)
912 {
913 uint64_t pNext_placeholder;
914 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
915 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
916 }
917 vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
918 if (forUnmarshaling->waitSemaphoreCount)
919 {
920 uint64_t* cgen_var_21;
921 vkStream->alloc((void**)&cgen_var_21, forUnmarshaling->waitSemaphoreCount * 8);
922 vkStream->read((uint64_t*)cgen_var_21, forUnmarshaling->waitSemaphoreCount * 8);
923 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_21, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
924 }
925 vkStream->read((VkPipelineStageFlags*)forUnmarshaling->pWaitDstStageMask, forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
926 vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
927 if (forUnmarshaling->commandBufferCount)
928 {
929 uint64_t* cgen_var_22;
930 vkStream->alloc((void**)&cgen_var_22, forUnmarshaling->commandBufferCount * 8);
931 vkStream->read((uint64_t*)cgen_var_22, forUnmarshaling->commandBufferCount * 8);
932 vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_22, (VkCommandBuffer*)forUnmarshaling->pCommandBuffers, forUnmarshaling->commandBufferCount);
933 }
934 vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
935 if (forUnmarshaling->signalSemaphoreCount)
936 {
937 uint64_t* cgen_var_23;
938 vkStream->alloc((void**)&cgen_var_23, forUnmarshaling->signalSemaphoreCount * 8);
939 vkStream->read((uint64_t*)cgen_var_23, forUnmarshaling->signalSemaphoreCount * 8);
940 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_23, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
941 }
942 }
943
marshal_VkMemoryAllocateInfo(VulkanStreamGuest * vkStream,const VkMemoryAllocateInfo * forMarshaling)944 void marshal_VkMemoryAllocateInfo(
945 VulkanStreamGuest* vkStream,
946 const VkMemoryAllocateInfo* forMarshaling)
947 {
948 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
949 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
950 vkStream->putBe32(pNext_size);
951 if (pNext_size)
952 {
953 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
954 marshal_extension_struct(vkStream, forMarshaling->pNext);
955 }
956 vkStream->write((VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
957 vkStream->write((uint32_t*)&forMarshaling->memoryTypeIndex, sizeof(uint32_t));
958 }
959
unmarshal_VkMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkMemoryAllocateInfo * forUnmarshaling)960 void unmarshal_VkMemoryAllocateInfo(
961 VulkanStreamGuest* vkStream,
962 VkMemoryAllocateInfo* forUnmarshaling)
963 {
964 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
965 size_t pNext_size;
966 pNext_size = vkStream->getBe32();
967 if (pNext_size)
968 {
969 uint64_t pNext_placeholder;
970 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
971 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
972 }
973 vkStream->read((VkDeviceSize*)&forUnmarshaling->allocationSize, sizeof(VkDeviceSize));
974 vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeIndex, sizeof(uint32_t));
975 }
976
marshal_VkMappedMemoryRange(VulkanStreamGuest * vkStream,const VkMappedMemoryRange * forMarshaling)977 void marshal_VkMappedMemoryRange(
978 VulkanStreamGuest* vkStream,
979 const VkMappedMemoryRange* forMarshaling)
980 {
981 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
982 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
983 vkStream->putBe32(pNext_size);
984 if (pNext_size)
985 {
986 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
987 marshal_extension_struct(vkStream, forMarshaling->pNext);
988 }
989 uint64_t cgen_var_24;
990 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_24, 1);
991 vkStream->write((uint64_t*)&cgen_var_24, 1 * 8);
992 vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
993 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
994 }
995
unmarshal_VkMappedMemoryRange(VulkanStreamGuest * vkStream,VkMappedMemoryRange * forUnmarshaling)996 void unmarshal_VkMappedMemoryRange(
997 VulkanStreamGuest* vkStream,
998 VkMappedMemoryRange* forUnmarshaling)
999 {
1000 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1001 size_t pNext_size;
1002 pNext_size = vkStream->getBe32();
1003 if (pNext_size)
1004 {
1005 uint64_t pNext_placeholder;
1006 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1007 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1008 }
1009 uint64_t cgen_var_25;
1010 vkStream->read((uint64_t*)&cgen_var_25, 1 * 8);
1011 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_25, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1012 vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1013 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1014 }
1015
marshal_VkMemoryRequirements(VulkanStreamGuest * vkStream,const VkMemoryRequirements * forMarshaling)1016 void marshal_VkMemoryRequirements(
1017 VulkanStreamGuest* vkStream,
1018 const VkMemoryRequirements* forMarshaling)
1019 {
1020 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1021 vkStream->write((VkDeviceSize*)&forMarshaling->alignment, sizeof(VkDeviceSize));
1022 vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
1023 }
1024
unmarshal_VkMemoryRequirements(VulkanStreamGuest * vkStream,VkMemoryRequirements * forUnmarshaling)1025 void unmarshal_VkMemoryRequirements(
1026 VulkanStreamGuest* vkStream,
1027 VkMemoryRequirements* forUnmarshaling)
1028 {
1029 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1030 vkStream->read((VkDeviceSize*)&forUnmarshaling->alignment, sizeof(VkDeviceSize));
1031 vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
1032 }
1033
marshal_VkSparseImageFormatProperties(VulkanStreamGuest * vkStream,const VkSparseImageFormatProperties * forMarshaling)1034 void marshal_VkSparseImageFormatProperties(
1035 VulkanStreamGuest* vkStream,
1036 const VkSparseImageFormatProperties* forMarshaling)
1037 {
1038 vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1039 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->imageGranularity));
1040 vkStream->write((VkSparseImageFormatFlags*)&forMarshaling->flags, sizeof(VkSparseImageFormatFlags));
1041 }
1042
unmarshal_VkSparseImageFormatProperties(VulkanStreamGuest * vkStream,VkSparseImageFormatProperties * forUnmarshaling)1043 void unmarshal_VkSparseImageFormatProperties(
1044 VulkanStreamGuest* vkStream,
1045 VkSparseImageFormatProperties* forUnmarshaling)
1046 {
1047 vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1048 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->imageGranularity));
1049 vkStream->read((VkSparseImageFormatFlags*)&forUnmarshaling->flags, sizeof(VkSparseImageFormatFlags));
1050 }
1051
marshal_VkSparseImageMemoryRequirements(VulkanStreamGuest * vkStream,const VkSparseImageMemoryRequirements * forMarshaling)1052 void marshal_VkSparseImageMemoryRequirements(
1053 VulkanStreamGuest* vkStream,
1054 const VkSparseImageMemoryRequirements* forMarshaling)
1055 {
1056 marshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forMarshaling->formatProperties));
1057 vkStream->write((uint32_t*)&forMarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1058 vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1059 vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1060 vkStream->write((VkDeviceSize*)&forMarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1061 }
1062
unmarshal_VkSparseImageMemoryRequirements(VulkanStreamGuest * vkStream,VkSparseImageMemoryRequirements * forUnmarshaling)1063 void unmarshal_VkSparseImageMemoryRequirements(
1064 VulkanStreamGuest* vkStream,
1065 VkSparseImageMemoryRequirements* forUnmarshaling)
1066 {
1067 unmarshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forUnmarshaling->formatProperties));
1068 vkStream->read((uint32_t*)&forUnmarshaling->imageMipTailFirstLod, sizeof(uint32_t));
1069 vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailSize, sizeof(VkDeviceSize));
1070 vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailOffset, sizeof(VkDeviceSize));
1071 vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailStride, sizeof(VkDeviceSize));
1072 }
1073
marshal_VkSparseMemoryBind(VulkanStreamGuest * vkStream,const VkSparseMemoryBind * forMarshaling)1074 void marshal_VkSparseMemoryBind(
1075 VulkanStreamGuest* vkStream,
1076 const VkSparseMemoryBind* forMarshaling)
1077 {
1078 vkStream->write((VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
1079 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1080 uint64_t cgen_var_26;
1081 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_26, 1);
1082 vkStream->write((uint64_t*)&cgen_var_26, 1 * 8);
1083 vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1084 vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1085 }
1086
unmarshal_VkSparseMemoryBind(VulkanStreamGuest * vkStream,VkSparseMemoryBind * forUnmarshaling)1087 void unmarshal_VkSparseMemoryBind(
1088 VulkanStreamGuest* vkStream,
1089 VkSparseMemoryBind* forUnmarshaling)
1090 {
1091 vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceOffset, sizeof(VkDeviceSize));
1092 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1093 uint64_t cgen_var_27;
1094 vkStream->read((uint64_t*)&cgen_var_27, 1 * 8);
1095 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_27, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1096 vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1097 vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1098 }
1099
marshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest * vkStream,const VkSparseBufferMemoryBindInfo * forMarshaling)1100 void marshal_VkSparseBufferMemoryBindInfo(
1101 VulkanStreamGuest* vkStream,
1102 const VkSparseBufferMemoryBindInfo* forMarshaling)
1103 {
1104 uint64_t cgen_var_28;
1105 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_28, 1);
1106 vkStream->write((uint64_t*)&cgen_var_28, 1 * 8);
1107 vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1108 for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
1109 {
1110 marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1111 }
1112 }
1113
unmarshal_VkSparseBufferMemoryBindInfo(VulkanStreamGuest * vkStream,VkSparseBufferMemoryBindInfo * forUnmarshaling)1114 void unmarshal_VkSparseBufferMemoryBindInfo(
1115 VulkanStreamGuest* vkStream,
1116 VkSparseBufferMemoryBindInfo* forUnmarshaling)
1117 {
1118 uint64_t cgen_var_29;
1119 vkStream->read((uint64_t*)&cgen_var_29, 1 * 8);
1120 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_29, (VkBuffer*)&forUnmarshaling->buffer, 1);
1121 vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1122 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
1123 {
1124 unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1125 }
1126 }
1127
marshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStreamGuest * vkStream,const VkSparseImageOpaqueMemoryBindInfo * forMarshaling)1128 void marshal_VkSparseImageOpaqueMemoryBindInfo(
1129 VulkanStreamGuest* vkStream,
1130 const VkSparseImageOpaqueMemoryBindInfo* forMarshaling)
1131 {
1132 uint64_t cgen_var_30;
1133 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_30, 1);
1134 vkStream->write((uint64_t*)&cgen_var_30, 1 * 8);
1135 vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1136 for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
1137 {
1138 marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
1139 }
1140 }
1141
unmarshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStreamGuest * vkStream,VkSparseImageOpaqueMemoryBindInfo * forUnmarshaling)1142 void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
1143 VulkanStreamGuest* vkStream,
1144 VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling)
1145 {
1146 uint64_t cgen_var_31;
1147 vkStream->read((uint64_t*)&cgen_var_31, 1 * 8);
1148 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_31, (VkImage*)&forUnmarshaling->image, 1);
1149 vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1150 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
1151 {
1152 unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
1153 }
1154 }
1155
marshal_VkImageSubresource(VulkanStreamGuest * vkStream,const VkImageSubresource * forMarshaling)1156 void marshal_VkImageSubresource(
1157 VulkanStreamGuest* vkStream,
1158 const VkImageSubresource* forMarshaling)
1159 {
1160 vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1161 vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
1162 vkStream->write((uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
1163 }
1164
unmarshal_VkImageSubresource(VulkanStreamGuest * vkStream,VkImageSubresource * forUnmarshaling)1165 void unmarshal_VkImageSubresource(
1166 VulkanStreamGuest* vkStream,
1167 VkImageSubresource* forUnmarshaling)
1168 {
1169 vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1170 vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
1171 vkStream->read((uint32_t*)&forUnmarshaling->arrayLayer, sizeof(uint32_t));
1172 }
1173
marshal_VkOffset3D(VulkanStreamGuest * vkStream,const VkOffset3D * forMarshaling)1174 void marshal_VkOffset3D(
1175 VulkanStreamGuest* vkStream,
1176 const VkOffset3D* forMarshaling)
1177 {
1178 vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
1179 vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
1180 vkStream->write((int32_t*)&forMarshaling->z, sizeof(int32_t));
1181 }
1182
unmarshal_VkOffset3D(VulkanStreamGuest * vkStream,VkOffset3D * forUnmarshaling)1183 void unmarshal_VkOffset3D(
1184 VulkanStreamGuest* vkStream,
1185 VkOffset3D* forUnmarshaling)
1186 {
1187 vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
1188 vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
1189 vkStream->read((int32_t*)&forUnmarshaling->z, sizeof(int32_t));
1190 }
1191
marshal_VkSparseImageMemoryBind(VulkanStreamGuest * vkStream,const VkSparseImageMemoryBind * forMarshaling)1192 void marshal_VkSparseImageMemoryBind(
1193 VulkanStreamGuest* vkStream,
1194 const VkSparseImageMemoryBind* forMarshaling)
1195 {
1196 marshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forMarshaling->subresource));
1197 marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->offset));
1198 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
1199 uint64_t cgen_var_32;
1200 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_32, 1);
1201 vkStream->write((uint64_t*)&cgen_var_32, 1 * 8);
1202 vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
1203 vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1204 }
1205
unmarshal_VkSparseImageMemoryBind(VulkanStreamGuest * vkStream,VkSparseImageMemoryBind * forUnmarshaling)1206 void unmarshal_VkSparseImageMemoryBind(
1207 VulkanStreamGuest* vkStream,
1208 VkSparseImageMemoryBind* forUnmarshaling)
1209 {
1210 unmarshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forUnmarshaling->subresource));
1211 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->offset));
1212 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
1213 uint64_t cgen_var_33;
1214 vkStream->read((uint64_t*)&cgen_var_33, 1 * 8);
1215 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_33, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
1216 vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
1217 vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
1218 }
1219
marshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest * vkStream,const VkSparseImageMemoryBindInfo * forMarshaling)1220 void marshal_VkSparseImageMemoryBindInfo(
1221 VulkanStreamGuest* vkStream,
1222 const VkSparseImageMemoryBindInfo* forMarshaling)
1223 {
1224 uint64_t cgen_var_34;
1225 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_34, 1);
1226 vkStream->write((uint64_t*)&cgen_var_34, 1 * 8);
1227 vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
1228 for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
1229 {
1230 marshal_VkSparseImageMemoryBind(vkStream, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i));
1231 }
1232 }
1233
unmarshal_VkSparseImageMemoryBindInfo(VulkanStreamGuest * vkStream,VkSparseImageMemoryBindInfo * forUnmarshaling)1234 void unmarshal_VkSparseImageMemoryBindInfo(
1235 VulkanStreamGuest* vkStream,
1236 VkSparseImageMemoryBindInfo* forUnmarshaling)
1237 {
1238 uint64_t cgen_var_35;
1239 vkStream->read((uint64_t*)&cgen_var_35, 1 * 8);
1240 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_35, (VkImage*)&forUnmarshaling->image, 1);
1241 vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
1242 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
1243 {
1244 unmarshal_VkSparseImageMemoryBind(vkStream, (VkSparseImageMemoryBind*)(forUnmarshaling->pBinds + i));
1245 }
1246 }
1247
marshal_VkBindSparseInfo(VulkanStreamGuest * vkStream,const VkBindSparseInfo * forMarshaling)1248 void marshal_VkBindSparseInfo(
1249 VulkanStreamGuest* vkStream,
1250 const VkBindSparseInfo* forMarshaling)
1251 {
1252 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1253 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1254 vkStream->putBe32(pNext_size);
1255 if (pNext_size)
1256 {
1257 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1258 marshal_extension_struct(vkStream, forMarshaling->pNext);
1259 }
1260 vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
1261 if (forMarshaling->waitSemaphoreCount)
1262 {
1263 uint64_t* cgen_var_36;
1264 vkStream->alloc((void**)&cgen_var_36, forMarshaling->waitSemaphoreCount * 8);
1265 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_36, forMarshaling->waitSemaphoreCount);
1266 vkStream->write((uint64_t*)cgen_var_36, forMarshaling->waitSemaphoreCount * 8);
1267 }
1268 vkStream->write((uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
1269 for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i)
1270 {
1271 marshal_VkSparseBufferMemoryBindInfo(vkStream, (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i));
1272 }
1273 vkStream->write((uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1274 for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i)
1275 {
1276 marshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i));
1277 }
1278 vkStream->write((uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
1279 for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i)
1280 {
1281 marshal_VkSparseImageMemoryBindInfo(vkStream, (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i));
1282 }
1283 vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
1284 if (forMarshaling->signalSemaphoreCount)
1285 {
1286 uint64_t* cgen_var_37;
1287 vkStream->alloc((void**)&cgen_var_37, forMarshaling->signalSemaphoreCount * 8);
1288 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_37, forMarshaling->signalSemaphoreCount);
1289 vkStream->write((uint64_t*)cgen_var_37, forMarshaling->signalSemaphoreCount * 8);
1290 }
1291 }
1292
unmarshal_VkBindSparseInfo(VulkanStreamGuest * vkStream,VkBindSparseInfo * forUnmarshaling)1293 void unmarshal_VkBindSparseInfo(
1294 VulkanStreamGuest* vkStream,
1295 VkBindSparseInfo* forUnmarshaling)
1296 {
1297 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1298 size_t pNext_size;
1299 pNext_size = vkStream->getBe32();
1300 if (pNext_size)
1301 {
1302 uint64_t pNext_placeholder;
1303 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1304 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1305 }
1306 vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
1307 if (forUnmarshaling->waitSemaphoreCount)
1308 {
1309 uint64_t* cgen_var_38;
1310 vkStream->alloc((void**)&cgen_var_38, forUnmarshaling->waitSemaphoreCount * 8);
1311 vkStream->read((uint64_t*)cgen_var_38, forUnmarshaling->waitSemaphoreCount * 8);
1312 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_38, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
1313 }
1314 vkStream->read((uint32_t*)&forUnmarshaling->bufferBindCount, sizeof(uint32_t));
1315 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferBindCount; ++i)
1316 {
1317 unmarshal_VkSparseBufferMemoryBindInfo(vkStream, (VkSparseBufferMemoryBindInfo*)(forUnmarshaling->pBufferBinds + i));
1318 }
1319 vkStream->read((uint32_t*)&forUnmarshaling->imageOpaqueBindCount, sizeof(uint32_t));
1320 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageOpaqueBindCount; ++i)
1321 {
1322 unmarshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (VkSparseImageOpaqueMemoryBindInfo*)(forUnmarshaling->pImageOpaqueBinds + i));
1323 }
1324 vkStream->read((uint32_t*)&forUnmarshaling->imageBindCount, sizeof(uint32_t));
1325 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageBindCount; ++i)
1326 {
1327 unmarshal_VkSparseImageMemoryBindInfo(vkStream, (VkSparseImageMemoryBindInfo*)(forUnmarshaling->pImageBinds + i));
1328 }
1329 vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
1330 if (forUnmarshaling->signalSemaphoreCount)
1331 {
1332 uint64_t* cgen_var_39;
1333 vkStream->alloc((void**)&cgen_var_39, forUnmarshaling->signalSemaphoreCount * 8);
1334 vkStream->read((uint64_t*)cgen_var_39, forUnmarshaling->signalSemaphoreCount * 8);
1335 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_39, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
1336 }
1337 }
1338
marshal_VkFenceCreateInfo(VulkanStreamGuest * vkStream,const VkFenceCreateInfo * forMarshaling)1339 void marshal_VkFenceCreateInfo(
1340 VulkanStreamGuest* vkStream,
1341 const VkFenceCreateInfo* forMarshaling)
1342 {
1343 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1344 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1345 vkStream->putBe32(pNext_size);
1346 if (pNext_size)
1347 {
1348 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1349 marshal_extension_struct(vkStream, forMarshaling->pNext);
1350 }
1351 vkStream->write((VkFenceCreateFlags*)&forMarshaling->flags, sizeof(VkFenceCreateFlags));
1352 }
1353
unmarshal_VkFenceCreateInfo(VulkanStreamGuest * vkStream,VkFenceCreateInfo * forUnmarshaling)1354 void unmarshal_VkFenceCreateInfo(
1355 VulkanStreamGuest* vkStream,
1356 VkFenceCreateInfo* forUnmarshaling)
1357 {
1358 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1359 size_t pNext_size;
1360 pNext_size = vkStream->getBe32();
1361 if (pNext_size)
1362 {
1363 uint64_t pNext_placeholder;
1364 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1365 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1366 }
1367 vkStream->read((VkFenceCreateFlags*)&forUnmarshaling->flags, sizeof(VkFenceCreateFlags));
1368 }
1369
marshal_VkSemaphoreCreateInfo(VulkanStreamGuest * vkStream,const VkSemaphoreCreateInfo * forMarshaling)1370 void marshal_VkSemaphoreCreateInfo(
1371 VulkanStreamGuest* vkStream,
1372 const VkSemaphoreCreateInfo* forMarshaling)
1373 {
1374 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1375 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1376 vkStream->putBe32(pNext_size);
1377 if (pNext_size)
1378 {
1379 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1380 marshal_extension_struct(vkStream, forMarshaling->pNext);
1381 }
1382 vkStream->write((VkSemaphoreCreateFlags*)&forMarshaling->flags, sizeof(VkSemaphoreCreateFlags));
1383 }
1384
unmarshal_VkSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkSemaphoreCreateInfo * forUnmarshaling)1385 void unmarshal_VkSemaphoreCreateInfo(
1386 VulkanStreamGuest* vkStream,
1387 VkSemaphoreCreateInfo* forUnmarshaling)
1388 {
1389 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1390 size_t pNext_size;
1391 pNext_size = vkStream->getBe32();
1392 if (pNext_size)
1393 {
1394 uint64_t pNext_placeholder;
1395 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1396 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1397 }
1398 vkStream->read((VkSemaphoreCreateFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreCreateFlags));
1399 }
1400
marshal_VkEventCreateInfo(VulkanStreamGuest * vkStream,const VkEventCreateInfo * forMarshaling)1401 void marshal_VkEventCreateInfo(
1402 VulkanStreamGuest* vkStream,
1403 const VkEventCreateInfo* forMarshaling)
1404 {
1405 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1406 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1407 vkStream->putBe32(pNext_size);
1408 if (pNext_size)
1409 {
1410 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1411 marshal_extension_struct(vkStream, forMarshaling->pNext);
1412 }
1413 vkStream->write((VkEventCreateFlags*)&forMarshaling->flags, sizeof(VkEventCreateFlags));
1414 }
1415
unmarshal_VkEventCreateInfo(VulkanStreamGuest * vkStream,VkEventCreateInfo * forUnmarshaling)1416 void unmarshal_VkEventCreateInfo(
1417 VulkanStreamGuest* vkStream,
1418 VkEventCreateInfo* forUnmarshaling)
1419 {
1420 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1421 size_t pNext_size;
1422 pNext_size = vkStream->getBe32();
1423 if (pNext_size)
1424 {
1425 uint64_t pNext_placeholder;
1426 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1427 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1428 }
1429 vkStream->read((VkEventCreateFlags*)&forUnmarshaling->flags, sizeof(VkEventCreateFlags));
1430 }
1431
marshal_VkQueryPoolCreateInfo(VulkanStreamGuest * vkStream,const VkQueryPoolCreateInfo * forMarshaling)1432 void marshal_VkQueryPoolCreateInfo(
1433 VulkanStreamGuest* vkStream,
1434 const VkQueryPoolCreateInfo* forMarshaling)
1435 {
1436 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1437 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1438 vkStream->putBe32(pNext_size);
1439 if (pNext_size)
1440 {
1441 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1442 marshal_extension_struct(vkStream, forMarshaling->pNext);
1443 }
1444 vkStream->write((VkQueryPoolCreateFlags*)&forMarshaling->flags, sizeof(VkQueryPoolCreateFlags));
1445 vkStream->write((VkQueryType*)&forMarshaling->queryType, sizeof(VkQueryType));
1446 vkStream->write((uint32_t*)&forMarshaling->queryCount, sizeof(uint32_t));
1447 vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
1448 }
1449
unmarshal_VkQueryPoolCreateInfo(VulkanStreamGuest * vkStream,VkQueryPoolCreateInfo * forUnmarshaling)1450 void unmarshal_VkQueryPoolCreateInfo(
1451 VulkanStreamGuest* vkStream,
1452 VkQueryPoolCreateInfo* forUnmarshaling)
1453 {
1454 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1455 size_t pNext_size;
1456 pNext_size = vkStream->getBe32();
1457 if (pNext_size)
1458 {
1459 uint64_t pNext_placeholder;
1460 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1461 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1462 }
1463 vkStream->read((VkQueryPoolCreateFlags*)&forUnmarshaling->flags, sizeof(VkQueryPoolCreateFlags));
1464 vkStream->read((VkQueryType*)&forUnmarshaling->queryType, sizeof(VkQueryType));
1465 vkStream->read((uint32_t*)&forUnmarshaling->queryCount, sizeof(uint32_t));
1466 vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
1467 }
1468
marshal_VkBufferCreateInfo(VulkanStreamGuest * vkStream,const VkBufferCreateInfo * forMarshaling)1469 void marshal_VkBufferCreateInfo(
1470 VulkanStreamGuest* vkStream,
1471 const VkBufferCreateInfo* forMarshaling)
1472 {
1473 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1474 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1475 vkStream->putBe32(pNext_size);
1476 if (pNext_size)
1477 {
1478 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1479 marshal_extension_struct(vkStream, forMarshaling->pNext);
1480 }
1481 vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
1482 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1483 vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
1484 vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1485 vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1486 // WARNING PTR CHECK
1487 uint64_t cgen_var_40 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1488 vkStream->putBe64(cgen_var_40);
1489 if (forMarshaling->pQueueFamilyIndices)
1490 {
1491 vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1492 }
1493 }
1494
unmarshal_VkBufferCreateInfo(VulkanStreamGuest * vkStream,VkBufferCreateInfo * forUnmarshaling)1495 void unmarshal_VkBufferCreateInfo(
1496 VulkanStreamGuest* vkStream,
1497 VkBufferCreateInfo* forUnmarshaling)
1498 {
1499 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1500 size_t pNext_size;
1501 pNext_size = vkStream->getBe32();
1502 if (pNext_size)
1503 {
1504 uint64_t pNext_placeholder;
1505 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1506 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1507 }
1508 vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
1509 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1510 vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
1511 vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
1512 vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1513 // WARNING PTR CHECK
1514 const uint32_t* check_pQueueFamilyIndices;
1515 check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
1516 if (forUnmarshaling->pQueueFamilyIndices)
1517 {
1518 if (!(check_pQueueFamilyIndices))
1519 {
1520 fprintf(stderr, "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and host\n");
1521 }
1522 vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices, forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1523 }
1524 }
1525
marshal_VkBufferViewCreateInfo(VulkanStreamGuest * vkStream,const VkBufferViewCreateInfo * forMarshaling)1526 void marshal_VkBufferViewCreateInfo(
1527 VulkanStreamGuest* vkStream,
1528 const VkBufferViewCreateInfo* forMarshaling)
1529 {
1530 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1531 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1532 vkStream->putBe32(pNext_size);
1533 if (pNext_size)
1534 {
1535 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1536 marshal_extension_struct(vkStream, forMarshaling->pNext);
1537 }
1538 vkStream->write((VkBufferViewCreateFlags*)&forMarshaling->flags, sizeof(VkBufferViewCreateFlags));
1539 uint64_t cgen_var_42;
1540 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_42, 1);
1541 vkStream->write((uint64_t*)&cgen_var_42, 1 * 8);
1542 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1543 vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1544 vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
1545 }
1546
unmarshal_VkBufferViewCreateInfo(VulkanStreamGuest * vkStream,VkBufferViewCreateInfo * forUnmarshaling)1547 void unmarshal_VkBufferViewCreateInfo(
1548 VulkanStreamGuest* vkStream,
1549 VkBufferViewCreateInfo* forUnmarshaling)
1550 {
1551 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1552 size_t pNext_size;
1553 pNext_size = vkStream->getBe32();
1554 if (pNext_size)
1555 {
1556 uint64_t pNext_placeholder;
1557 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1558 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1559 }
1560 vkStream->read((VkBufferViewCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferViewCreateFlags));
1561 uint64_t cgen_var_43;
1562 vkStream->read((uint64_t*)&cgen_var_43, 1 * 8);
1563 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_43, (VkBuffer*)&forUnmarshaling->buffer, 1);
1564 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1565 vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1566 vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
1567 }
1568
marshal_VkImageCreateInfo(VulkanStreamGuest * vkStream,const VkImageCreateInfo * forMarshaling)1569 void marshal_VkImageCreateInfo(
1570 VulkanStreamGuest* vkStream,
1571 const VkImageCreateInfo* forMarshaling)
1572 {
1573 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1574 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1575 vkStream->putBe32(pNext_size);
1576 if (pNext_size)
1577 {
1578 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1579 marshal_extension_struct(vkStream, forMarshaling->pNext);
1580 }
1581 vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
1582 vkStream->write((VkImageType*)&forMarshaling->imageType, sizeof(VkImageType));
1583 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1584 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
1585 vkStream->write((uint32_t*)&forMarshaling->mipLevels, sizeof(uint32_t));
1586 vkStream->write((uint32_t*)&forMarshaling->arrayLayers, sizeof(uint32_t));
1587 vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
1588 vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
1589 vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
1590 vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
1591 vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1592 // WARNING PTR CHECK
1593 uint64_t cgen_var_44 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
1594 vkStream->putBe64(cgen_var_44);
1595 if (forMarshaling->pQueueFamilyIndices)
1596 {
1597 vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1598 }
1599 vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
1600 }
1601
unmarshal_VkImageCreateInfo(VulkanStreamGuest * vkStream,VkImageCreateInfo * forUnmarshaling)1602 void unmarshal_VkImageCreateInfo(
1603 VulkanStreamGuest* vkStream,
1604 VkImageCreateInfo* forUnmarshaling)
1605 {
1606 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1607 size_t pNext_size;
1608 pNext_size = vkStream->getBe32();
1609 if (pNext_size)
1610 {
1611 uint64_t pNext_placeholder;
1612 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1613 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1614 }
1615 vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
1616 vkStream->read((VkImageType*)&forUnmarshaling->imageType, sizeof(VkImageType));
1617 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1618 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
1619 vkStream->read((uint32_t*)&forUnmarshaling->mipLevels, sizeof(uint32_t));
1620 vkStream->read((uint32_t*)&forUnmarshaling->arrayLayers, sizeof(uint32_t));
1621 vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
1622 vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
1623 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
1624 vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
1625 vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
1626 // WARNING PTR CHECK
1627 const uint32_t* check_pQueueFamilyIndices;
1628 check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
1629 if (forUnmarshaling->pQueueFamilyIndices)
1630 {
1631 if (!(check_pQueueFamilyIndices))
1632 {
1633 fprintf(stderr, "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and host\n");
1634 }
1635 vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices, forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1636 }
1637 vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
1638 }
1639
marshal_VkSubresourceLayout(VulkanStreamGuest * vkStream,const VkSubresourceLayout * forMarshaling)1640 void marshal_VkSubresourceLayout(
1641 VulkanStreamGuest* vkStream,
1642 const VkSubresourceLayout* forMarshaling)
1643 {
1644 vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
1645 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
1646 vkStream->write((VkDeviceSize*)&forMarshaling->rowPitch, sizeof(VkDeviceSize));
1647 vkStream->write((VkDeviceSize*)&forMarshaling->arrayPitch, sizeof(VkDeviceSize));
1648 vkStream->write((VkDeviceSize*)&forMarshaling->depthPitch, sizeof(VkDeviceSize));
1649 }
1650
unmarshal_VkSubresourceLayout(VulkanStreamGuest * vkStream,VkSubresourceLayout * forUnmarshaling)1651 void unmarshal_VkSubresourceLayout(
1652 VulkanStreamGuest* vkStream,
1653 VkSubresourceLayout* forUnmarshaling)
1654 {
1655 vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
1656 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
1657 vkStream->read((VkDeviceSize*)&forUnmarshaling->rowPitch, sizeof(VkDeviceSize));
1658 vkStream->read((VkDeviceSize*)&forUnmarshaling->arrayPitch, sizeof(VkDeviceSize));
1659 vkStream->read((VkDeviceSize*)&forUnmarshaling->depthPitch, sizeof(VkDeviceSize));
1660 }
1661
marshal_VkComponentMapping(VulkanStreamGuest * vkStream,const VkComponentMapping * forMarshaling)1662 void marshal_VkComponentMapping(
1663 VulkanStreamGuest* vkStream,
1664 const VkComponentMapping* forMarshaling)
1665 {
1666 vkStream->write((VkComponentSwizzle*)&forMarshaling->r, sizeof(VkComponentSwizzle));
1667 vkStream->write((VkComponentSwizzle*)&forMarshaling->g, sizeof(VkComponentSwizzle));
1668 vkStream->write((VkComponentSwizzle*)&forMarshaling->b, sizeof(VkComponentSwizzle));
1669 vkStream->write((VkComponentSwizzle*)&forMarshaling->a, sizeof(VkComponentSwizzle));
1670 }
1671
unmarshal_VkComponentMapping(VulkanStreamGuest * vkStream,VkComponentMapping * forUnmarshaling)1672 void unmarshal_VkComponentMapping(
1673 VulkanStreamGuest* vkStream,
1674 VkComponentMapping* forUnmarshaling)
1675 {
1676 vkStream->read((VkComponentSwizzle*)&forUnmarshaling->r, sizeof(VkComponentSwizzle));
1677 vkStream->read((VkComponentSwizzle*)&forUnmarshaling->g, sizeof(VkComponentSwizzle));
1678 vkStream->read((VkComponentSwizzle*)&forUnmarshaling->b, sizeof(VkComponentSwizzle));
1679 vkStream->read((VkComponentSwizzle*)&forUnmarshaling->a, sizeof(VkComponentSwizzle));
1680 }
1681
marshal_VkImageSubresourceRange(VulkanStreamGuest * vkStream,const VkImageSubresourceRange * forMarshaling)1682 void marshal_VkImageSubresourceRange(
1683 VulkanStreamGuest* vkStream,
1684 const VkImageSubresourceRange* forMarshaling)
1685 {
1686 vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
1687 vkStream->write((uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
1688 vkStream->write((uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
1689 vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
1690 vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
1691 }
1692
unmarshal_VkImageSubresourceRange(VulkanStreamGuest * vkStream,VkImageSubresourceRange * forUnmarshaling)1693 void unmarshal_VkImageSubresourceRange(
1694 VulkanStreamGuest* vkStream,
1695 VkImageSubresourceRange* forUnmarshaling)
1696 {
1697 vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
1698 vkStream->read((uint32_t*)&forUnmarshaling->baseMipLevel, sizeof(uint32_t));
1699 vkStream->read((uint32_t*)&forUnmarshaling->levelCount, sizeof(uint32_t));
1700 vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
1701 vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
1702 }
1703
marshal_VkImageViewCreateInfo(VulkanStreamGuest * vkStream,const VkImageViewCreateInfo * forMarshaling)1704 void marshal_VkImageViewCreateInfo(
1705 VulkanStreamGuest* vkStream,
1706 const VkImageViewCreateInfo* forMarshaling)
1707 {
1708 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1709 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1710 vkStream->putBe32(pNext_size);
1711 if (pNext_size)
1712 {
1713 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1714 marshal_extension_struct(vkStream, forMarshaling->pNext);
1715 }
1716 vkStream->write((VkImageViewCreateFlags*)&forMarshaling->flags, sizeof(VkImageViewCreateFlags));
1717 uint64_t cgen_var_46;
1718 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_46, 1);
1719 vkStream->write((uint64_t*)&cgen_var_46, 1 * 8);
1720 vkStream->write((VkImageViewType*)&forMarshaling->viewType, sizeof(VkImageViewType));
1721 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1722 marshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forMarshaling->components));
1723 marshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
1724 }
1725
unmarshal_VkImageViewCreateInfo(VulkanStreamGuest * vkStream,VkImageViewCreateInfo * forUnmarshaling)1726 void unmarshal_VkImageViewCreateInfo(
1727 VulkanStreamGuest* vkStream,
1728 VkImageViewCreateInfo* forUnmarshaling)
1729 {
1730 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1731 size_t pNext_size;
1732 pNext_size = vkStream->getBe32();
1733 if (pNext_size)
1734 {
1735 uint64_t pNext_placeholder;
1736 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1737 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1738 }
1739 vkStream->read((VkImageViewCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageViewCreateFlags));
1740 uint64_t cgen_var_47;
1741 vkStream->read((uint64_t*)&cgen_var_47, 1 * 8);
1742 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_47, (VkImage*)&forUnmarshaling->image, 1);
1743 vkStream->read((VkImageViewType*)&forUnmarshaling->viewType, sizeof(VkImageViewType));
1744 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1745 unmarshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forUnmarshaling->components));
1746 unmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
1747 }
1748
marshal_VkShaderModuleCreateInfo(VulkanStreamGuest * vkStream,const VkShaderModuleCreateInfo * forMarshaling)1749 void marshal_VkShaderModuleCreateInfo(
1750 VulkanStreamGuest* vkStream,
1751 const VkShaderModuleCreateInfo* forMarshaling)
1752 {
1753 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1754 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1755 vkStream->putBe32(pNext_size);
1756 if (pNext_size)
1757 {
1758 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1759 marshal_extension_struct(vkStream, forMarshaling->pNext);
1760 }
1761 vkStream->write((VkShaderModuleCreateFlags*)&forMarshaling->flags, sizeof(VkShaderModuleCreateFlags));
1762 uint64_t cgen_var_48 = (uint64_t)forMarshaling->codeSize;
1763 vkStream->putBe64(cgen_var_48);
1764 vkStream->write((const uint32_t*)forMarshaling->pCode, (forMarshaling->codeSize / 4) * sizeof(const uint32_t));
1765 }
1766
unmarshal_VkShaderModuleCreateInfo(VulkanStreamGuest * vkStream,VkShaderModuleCreateInfo * forUnmarshaling)1767 void unmarshal_VkShaderModuleCreateInfo(
1768 VulkanStreamGuest* vkStream,
1769 VkShaderModuleCreateInfo* forUnmarshaling)
1770 {
1771 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1772 size_t pNext_size;
1773 pNext_size = vkStream->getBe32();
1774 if (pNext_size)
1775 {
1776 uint64_t pNext_placeholder;
1777 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1778 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1779 }
1780 vkStream->read((VkShaderModuleCreateFlags*)&forUnmarshaling->flags, sizeof(VkShaderModuleCreateFlags));
1781 forUnmarshaling->codeSize = (size_t)vkStream->getBe64();
1782 vkStream->read((uint32_t*)forUnmarshaling->pCode, (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t));
1783 }
1784
marshal_VkPipelineCacheCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineCacheCreateInfo * forMarshaling)1785 void marshal_VkPipelineCacheCreateInfo(
1786 VulkanStreamGuest* vkStream,
1787 const VkPipelineCacheCreateInfo* forMarshaling)
1788 {
1789 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1790 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1791 vkStream->putBe32(pNext_size);
1792 if (pNext_size)
1793 {
1794 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1795 marshal_extension_struct(vkStream, forMarshaling->pNext);
1796 }
1797 vkStream->write((VkPipelineCacheCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCacheCreateFlags));
1798 uint64_t cgen_var_50 = (uint64_t)forMarshaling->initialDataSize;
1799 vkStream->putBe64(cgen_var_50);
1800 vkStream->write((const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
1801 }
1802
unmarshal_VkPipelineCacheCreateInfo(VulkanStreamGuest * vkStream,VkPipelineCacheCreateInfo * forUnmarshaling)1803 void unmarshal_VkPipelineCacheCreateInfo(
1804 VulkanStreamGuest* vkStream,
1805 VkPipelineCacheCreateInfo* forUnmarshaling)
1806 {
1807 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1808 size_t pNext_size;
1809 pNext_size = vkStream->getBe32();
1810 if (pNext_size)
1811 {
1812 uint64_t pNext_placeholder;
1813 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1814 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1815 }
1816 vkStream->read((VkPipelineCacheCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCacheCreateFlags));
1817 forUnmarshaling->initialDataSize = (size_t)vkStream->getBe64();
1818 vkStream->read((void*)forUnmarshaling->pInitialData, forUnmarshaling->initialDataSize * sizeof(const uint8_t));
1819 }
1820
marshal_VkSpecializationMapEntry(VulkanStreamGuest * vkStream,const VkSpecializationMapEntry * forMarshaling)1821 void marshal_VkSpecializationMapEntry(
1822 VulkanStreamGuest* vkStream,
1823 const VkSpecializationMapEntry* forMarshaling)
1824 {
1825 vkStream->write((uint32_t*)&forMarshaling->constantID, sizeof(uint32_t));
1826 vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
1827 uint64_t cgen_var_52 = (uint64_t)forMarshaling->size;
1828 vkStream->putBe64(cgen_var_52);
1829 }
1830
unmarshal_VkSpecializationMapEntry(VulkanStreamGuest * vkStream,VkSpecializationMapEntry * forUnmarshaling)1831 void unmarshal_VkSpecializationMapEntry(
1832 VulkanStreamGuest* vkStream,
1833 VkSpecializationMapEntry* forUnmarshaling)
1834 {
1835 vkStream->read((uint32_t*)&forUnmarshaling->constantID, sizeof(uint32_t));
1836 vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
1837 forUnmarshaling->size = (size_t)vkStream->getBe64();
1838 }
1839
marshal_VkSpecializationInfo(VulkanStreamGuest * vkStream,const VkSpecializationInfo * forMarshaling)1840 void marshal_VkSpecializationInfo(
1841 VulkanStreamGuest* vkStream,
1842 const VkSpecializationInfo* forMarshaling)
1843 {
1844 vkStream->write((uint32_t*)&forMarshaling->mapEntryCount, sizeof(uint32_t));
1845 for (uint32_t i = 0; i < (uint32_t)forMarshaling->mapEntryCount; ++i)
1846 {
1847 marshal_VkSpecializationMapEntry(vkStream, (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i));
1848 }
1849 uint64_t cgen_var_54 = (uint64_t)forMarshaling->dataSize;
1850 vkStream->putBe64(cgen_var_54);
1851 vkStream->write((const void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(const uint8_t));
1852 }
1853
unmarshal_VkSpecializationInfo(VulkanStreamGuest * vkStream,VkSpecializationInfo * forUnmarshaling)1854 void unmarshal_VkSpecializationInfo(
1855 VulkanStreamGuest* vkStream,
1856 VkSpecializationInfo* forUnmarshaling)
1857 {
1858 vkStream->read((uint32_t*)&forUnmarshaling->mapEntryCount, sizeof(uint32_t));
1859 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mapEntryCount; ++i)
1860 {
1861 unmarshal_VkSpecializationMapEntry(vkStream, (VkSpecializationMapEntry*)(forUnmarshaling->pMapEntries + i));
1862 }
1863 forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
1864 vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(const uint8_t));
1865 }
1866
marshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineShaderStageCreateInfo * forMarshaling)1867 void marshal_VkPipelineShaderStageCreateInfo(
1868 VulkanStreamGuest* vkStream,
1869 const VkPipelineShaderStageCreateInfo* forMarshaling)
1870 {
1871 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1872 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1873 vkStream->putBe32(pNext_size);
1874 if (pNext_size)
1875 {
1876 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1877 marshal_extension_struct(vkStream, forMarshaling->pNext);
1878 }
1879 vkStream->write((VkPipelineShaderStageCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineShaderStageCreateFlags));
1880 vkStream->write((VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
1881 uint64_t cgen_var_56;
1882 vkStream->handleMapping()->mapHandles_VkShaderModule_u64(&forMarshaling->module, &cgen_var_56, 1);
1883 vkStream->write((uint64_t*)&cgen_var_56, 1 * 8);
1884 vkStream->putString(forMarshaling->pName);
1885 // WARNING PTR CHECK
1886 uint64_t cgen_var_57 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
1887 vkStream->putBe64(cgen_var_57);
1888 if (forMarshaling->pSpecializationInfo)
1889 {
1890 marshal_VkSpecializationInfo(vkStream, (const VkSpecializationInfo*)(forMarshaling->pSpecializationInfo));
1891 }
1892 }
1893
unmarshal_VkPipelineShaderStageCreateInfo(VulkanStreamGuest * vkStream,VkPipelineShaderStageCreateInfo * forUnmarshaling)1894 void unmarshal_VkPipelineShaderStageCreateInfo(
1895 VulkanStreamGuest* vkStream,
1896 VkPipelineShaderStageCreateInfo* forUnmarshaling)
1897 {
1898 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1899 size_t pNext_size;
1900 pNext_size = vkStream->getBe32();
1901 if (pNext_size)
1902 {
1903 uint64_t pNext_placeholder;
1904 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
1905 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
1906 }
1907 vkStream->read((VkPipelineShaderStageCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineShaderStageCreateFlags));
1908 vkStream->read((VkShaderStageFlagBits*)&forUnmarshaling->stage, sizeof(VkShaderStageFlagBits));
1909 uint64_t cgen_var_58;
1910 vkStream->read((uint64_t*)&cgen_var_58, 1 * 8);
1911 vkStream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_58, (VkShaderModule*)&forUnmarshaling->module, 1);
1912 vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
1913 // WARNING PTR CHECK
1914 const VkSpecializationInfo* check_pSpecializationInfo;
1915 check_pSpecializationInfo = (const VkSpecializationInfo*)(uintptr_t)vkStream->getBe64();
1916 if (forUnmarshaling->pSpecializationInfo)
1917 {
1918 if (!(check_pSpecializationInfo))
1919 {
1920 fprintf(stderr, "fatal: forUnmarshaling->pSpecializationInfo inconsistent between guest and host\n");
1921 }
1922 unmarshal_VkSpecializationInfo(vkStream, (VkSpecializationInfo*)(forUnmarshaling->pSpecializationInfo));
1923 }
1924 }
1925
marshal_VkVertexInputBindingDescription(VulkanStreamGuest * vkStream,const VkVertexInputBindingDescription * forMarshaling)1926 void marshal_VkVertexInputBindingDescription(
1927 VulkanStreamGuest* vkStream,
1928 const VkVertexInputBindingDescription* forMarshaling)
1929 {
1930 vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
1931 vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
1932 vkStream->write((VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
1933 }
1934
unmarshal_VkVertexInputBindingDescription(VulkanStreamGuest * vkStream,VkVertexInputBindingDescription * forUnmarshaling)1935 void unmarshal_VkVertexInputBindingDescription(
1936 VulkanStreamGuest* vkStream,
1937 VkVertexInputBindingDescription* forUnmarshaling)
1938 {
1939 vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
1940 vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
1941 vkStream->read((VkVertexInputRate*)&forUnmarshaling->inputRate, sizeof(VkVertexInputRate));
1942 }
1943
marshal_VkVertexInputAttributeDescription(VulkanStreamGuest * vkStream,const VkVertexInputAttributeDescription * forMarshaling)1944 void marshal_VkVertexInputAttributeDescription(
1945 VulkanStreamGuest* vkStream,
1946 const VkVertexInputAttributeDescription* forMarshaling)
1947 {
1948 vkStream->write((uint32_t*)&forMarshaling->location, sizeof(uint32_t));
1949 vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
1950 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
1951 vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
1952 }
1953
unmarshal_VkVertexInputAttributeDescription(VulkanStreamGuest * vkStream,VkVertexInputAttributeDescription * forUnmarshaling)1954 void unmarshal_VkVertexInputAttributeDescription(
1955 VulkanStreamGuest* vkStream,
1956 VkVertexInputAttributeDescription* forUnmarshaling)
1957 {
1958 vkStream->read((uint32_t*)&forUnmarshaling->location, sizeof(uint32_t));
1959 vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
1960 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
1961 vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
1962 }
1963
marshal_VkPipelineVertexInputStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineVertexInputStateCreateInfo * forMarshaling)1964 void marshal_VkPipelineVertexInputStateCreateInfo(
1965 VulkanStreamGuest* vkStream,
1966 const VkPipelineVertexInputStateCreateInfo* forMarshaling)
1967 {
1968 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
1969 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
1970 vkStream->putBe32(pNext_size);
1971 if (pNext_size)
1972 {
1973 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
1974 marshal_extension_struct(vkStream, forMarshaling->pNext);
1975 }
1976 vkStream->write((VkPipelineVertexInputStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineVertexInputStateCreateFlags));
1977 vkStream->write((uint32_t*)&forMarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
1978 for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDescriptionCount; ++i)
1979 {
1980 marshal_VkVertexInputBindingDescription(vkStream, (const VkVertexInputBindingDescription*)(forMarshaling->pVertexBindingDescriptions + i));
1981 }
1982 vkStream->write((uint32_t*)&forMarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
1983 for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexAttributeDescriptionCount; ++i)
1984 {
1985 marshal_VkVertexInputAttributeDescription(vkStream, (const VkVertexInputAttributeDescription*)(forMarshaling->pVertexAttributeDescriptions + i));
1986 }
1987 }
1988
unmarshal_VkPipelineVertexInputStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineVertexInputStateCreateInfo * forUnmarshaling)1989 void unmarshal_VkPipelineVertexInputStateCreateInfo(
1990 VulkanStreamGuest* vkStream,
1991 VkPipelineVertexInputStateCreateInfo* forUnmarshaling)
1992 {
1993 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
1994 size_t pNext_size;
1995 pNext_size = vkStream->getBe32();
1996 if (pNext_size)
1997 {
1998 uint64_t pNext_placeholder;
1999 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2000 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2001 }
2002 vkStream->read((VkPipelineVertexInputStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineVertexInputStateCreateFlags));
2003 vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
2004 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDescriptionCount; ++i)
2005 {
2006 unmarshal_VkVertexInputBindingDescription(vkStream, (VkVertexInputBindingDescription*)(forUnmarshaling->pVertexBindingDescriptions + i));
2007 }
2008 vkStream->read((uint32_t*)&forUnmarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
2009 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexAttributeDescriptionCount; ++i)
2010 {
2011 unmarshal_VkVertexInputAttributeDescription(vkStream, (VkVertexInputAttributeDescription*)(forUnmarshaling->pVertexAttributeDescriptions + i));
2012 }
2013 }
2014
marshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineInputAssemblyStateCreateInfo * forMarshaling)2015 void marshal_VkPipelineInputAssemblyStateCreateInfo(
2016 VulkanStreamGuest* vkStream,
2017 const VkPipelineInputAssemblyStateCreateInfo* forMarshaling)
2018 {
2019 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2020 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2021 vkStream->putBe32(pNext_size);
2022 if (pNext_size)
2023 {
2024 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2025 marshal_extension_struct(vkStream, forMarshaling->pNext);
2026 }
2027 vkStream->write((VkPipelineInputAssemblyStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineInputAssemblyStateCreateFlags));
2028 vkStream->write((VkPrimitiveTopology*)&forMarshaling->topology, sizeof(VkPrimitiveTopology));
2029 vkStream->write((VkBool32*)&forMarshaling->primitiveRestartEnable, sizeof(VkBool32));
2030 }
2031
unmarshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineInputAssemblyStateCreateInfo * forUnmarshaling)2032 void unmarshal_VkPipelineInputAssemblyStateCreateInfo(
2033 VulkanStreamGuest* vkStream,
2034 VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling)
2035 {
2036 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2037 size_t pNext_size;
2038 pNext_size = vkStream->getBe32();
2039 if (pNext_size)
2040 {
2041 uint64_t pNext_placeholder;
2042 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2043 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2044 }
2045 vkStream->read((VkPipelineInputAssemblyStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineInputAssemblyStateCreateFlags));
2046 vkStream->read((VkPrimitiveTopology*)&forUnmarshaling->topology, sizeof(VkPrimitiveTopology));
2047 vkStream->read((VkBool32*)&forUnmarshaling->primitiveRestartEnable, sizeof(VkBool32));
2048 }
2049
marshal_VkPipelineTessellationStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineTessellationStateCreateInfo * forMarshaling)2050 void marshal_VkPipelineTessellationStateCreateInfo(
2051 VulkanStreamGuest* vkStream,
2052 const VkPipelineTessellationStateCreateInfo* forMarshaling)
2053 {
2054 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2055 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2056 vkStream->putBe32(pNext_size);
2057 if (pNext_size)
2058 {
2059 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2060 marshal_extension_struct(vkStream, forMarshaling->pNext);
2061 }
2062 vkStream->write((VkPipelineTessellationStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineTessellationStateCreateFlags));
2063 vkStream->write((uint32_t*)&forMarshaling->patchControlPoints, sizeof(uint32_t));
2064 }
2065
unmarshal_VkPipelineTessellationStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineTessellationStateCreateInfo * forUnmarshaling)2066 void unmarshal_VkPipelineTessellationStateCreateInfo(
2067 VulkanStreamGuest* vkStream,
2068 VkPipelineTessellationStateCreateInfo* forUnmarshaling)
2069 {
2070 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2071 size_t pNext_size;
2072 pNext_size = vkStream->getBe32();
2073 if (pNext_size)
2074 {
2075 uint64_t pNext_placeholder;
2076 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2077 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2078 }
2079 vkStream->read((VkPipelineTessellationStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineTessellationStateCreateFlags));
2080 vkStream->read((uint32_t*)&forUnmarshaling->patchControlPoints, sizeof(uint32_t));
2081 }
2082
marshal_VkViewport(VulkanStreamGuest * vkStream,const VkViewport * forMarshaling)2083 void marshal_VkViewport(
2084 VulkanStreamGuest* vkStream,
2085 const VkViewport* forMarshaling)
2086 {
2087 vkStream->write((float*)&forMarshaling->x, sizeof(float));
2088 vkStream->write((float*)&forMarshaling->y, sizeof(float));
2089 vkStream->write((float*)&forMarshaling->width, sizeof(float));
2090 vkStream->write((float*)&forMarshaling->height, sizeof(float));
2091 vkStream->write((float*)&forMarshaling->minDepth, sizeof(float));
2092 vkStream->write((float*)&forMarshaling->maxDepth, sizeof(float));
2093 }
2094
unmarshal_VkViewport(VulkanStreamGuest * vkStream,VkViewport * forUnmarshaling)2095 void unmarshal_VkViewport(
2096 VulkanStreamGuest* vkStream,
2097 VkViewport* forUnmarshaling)
2098 {
2099 vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
2100 vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
2101 vkStream->read((float*)&forUnmarshaling->width, sizeof(float));
2102 vkStream->read((float*)&forUnmarshaling->height, sizeof(float));
2103 vkStream->read((float*)&forUnmarshaling->minDepth, sizeof(float));
2104 vkStream->read((float*)&forUnmarshaling->maxDepth, sizeof(float));
2105 }
2106
marshal_VkOffset2D(VulkanStreamGuest * vkStream,const VkOffset2D * forMarshaling)2107 void marshal_VkOffset2D(
2108 VulkanStreamGuest* vkStream,
2109 const VkOffset2D* forMarshaling)
2110 {
2111 vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
2112 vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
2113 }
2114
unmarshal_VkOffset2D(VulkanStreamGuest * vkStream,VkOffset2D * forUnmarshaling)2115 void unmarshal_VkOffset2D(
2116 VulkanStreamGuest* vkStream,
2117 VkOffset2D* forUnmarshaling)
2118 {
2119 vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
2120 vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
2121 }
2122
marshal_VkExtent2D(VulkanStreamGuest * vkStream,const VkExtent2D * forMarshaling)2123 void marshal_VkExtent2D(
2124 VulkanStreamGuest* vkStream,
2125 const VkExtent2D* forMarshaling)
2126 {
2127 vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
2128 vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
2129 }
2130
unmarshal_VkExtent2D(VulkanStreamGuest * vkStream,VkExtent2D * forUnmarshaling)2131 void unmarshal_VkExtent2D(
2132 VulkanStreamGuest* vkStream,
2133 VkExtent2D* forUnmarshaling)
2134 {
2135 vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
2136 vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
2137 }
2138
marshal_VkRect2D(VulkanStreamGuest * vkStream,const VkRect2D * forMarshaling)2139 void marshal_VkRect2D(
2140 VulkanStreamGuest* vkStream,
2141 const VkRect2D* forMarshaling)
2142 {
2143 marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
2144 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent));
2145 }
2146
unmarshal_VkRect2D(VulkanStreamGuest * vkStream,VkRect2D * forUnmarshaling)2147 void unmarshal_VkRect2D(
2148 VulkanStreamGuest* vkStream,
2149 VkRect2D* forUnmarshaling)
2150 {
2151 unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
2152 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->extent));
2153 }
2154
marshal_VkPipelineViewportStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineViewportStateCreateInfo * forMarshaling)2155 void marshal_VkPipelineViewportStateCreateInfo(
2156 VulkanStreamGuest* vkStream,
2157 const VkPipelineViewportStateCreateInfo* forMarshaling)
2158 {
2159 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2160 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2161 vkStream->putBe32(pNext_size);
2162 if (pNext_size)
2163 {
2164 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2165 marshal_extension_struct(vkStream, forMarshaling->pNext);
2166 }
2167 vkStream->write((VkPipelineViewportStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineViewportStateCreateFlags));
2168 vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
2169 // WARNING PTR CHECK
2170 uint64_t cgen_var_60 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
2171 vkStream->putBe64(cgen_var_60);
2172 if (forMarshaling->pViewports)
2173 {
2174 for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
2175 {
2176 marshal_VkViewport(vkStream, (const VkViewport*)(forMarshaling->pViewports + i));
2177 }
2178 }
2179 vkStream->write((uint32_t*)&forMarshaling->scissorCount, sizeof(uint32_t));
2180 // WARNING PTR CHECK
2181 uint64_t cgen_var_61 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
2182 vkStream->putBe64(cgen_var_61);
2183 if (forMarshaling->pScissors)
2184 {
2185 for (uint32_t i = 0; i < (uint32_t)forMarshaling->scissorCount; ++i)
2186 {
2187 marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pScissors + i));
2188 }
2189 }
2190 }
2191
unmarshal_VkPipelineViewportStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineViewportStateCreateInfo * forUnmarshaling)2192 void unmarshal_VkPipelineViewportStateCreateInfo(
2193 VulkanStreamGuest* vkStream,
2194 VkPipelineViewportStateCreateInfo* forUnmarshaling)
2195 {
2196 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2197 size_t pNext_size;
2198 pNext_size = vkStream->getBe32();
2199 if (pNext_size)
2200 {
2201 uint64_t pNext_placeholder;
2202 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2203 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2204 }
2205 vkStream->read((VkPipelineViewportStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineViewportStateCreateFlags));
2206 vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
2207 // WARNING PTR CHECK
2208 const VkViewport* check_pViewports;
2209 check_pViewports = (const VkViewport*)(uintptr_t)vkStream->getBe64();
2210 if (forUnmarshaling->pViewports)
2211 {
2212 if (!(check_pViewports))
2213 {
2214 fprintf(stderr, "fatal: forUnmarshaling->pViewports inconsistent between guest and host\n");
2215 }
2216 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
2217 {
2218 unmarshal_VkViewport(vkStream, (VkViewport*)(forUnmarshaling->pViewports + i));
2219 }
2220 }
2221 vkStream->read((uint32_t*)&forUnmarshaling->scissorCount, sizeof(uint32_t));
2222 // WARNING PTR CHECK
2223 const VkRect2D* check_pScissors;
2224 check_pScissors = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
2225 if (forUnmarshaling->pScissors)
2226 {
2227 if (!(check_pScissors))
2228 {
2229 fprintf(stderr, "fatal: forUnmarshaling->pScissors inconsistent between guest and host\n");
2230 }
2231 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->scissorCount; ++i)
2232 {
2233 unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pScissors + i));
2234 }
2235 }
2236 }
2237
marshal_VkPipelineRasterizationStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineRasterizationStateCreateInfo * forMarshaling)2238 void marshal_VkPipelineRasterizationStateCreateInfo(
2239 VulkanStreamGuest* vkStream,
2240 const VkPipelineRasterizationStateCreateInfo* forMarshaling)
2241 {
2242 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2243 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2244 vkStream->putBe32(pNext_size);
2245 if (pNext_size)
2246 {
2247 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2248 marshal_extension_struct(vkStream, forMarshaling->pNext);
2249 }
2250 vkStream->write((VkPipelineRasterizationStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineRasterizationStateCreateFlags));
2251 vkStream->write((VkBool32*)&forMarshaling->depthClampEnable, sizeof(VkBool32));
2252 vkStream->write((VkBool32*)&forMarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2253 vkStream->write((VkPolygonMode*)&forMarshaling->polygonMode, sizeof(VkPolygonMode));
2254 vkStream->write((VkCullModeFlags*)&forMarshaling->cullMode, sizeof(VkCullModeFlags));
2255 vkStream->write((VkFrontFace*)&forMarshaling->frontFace, sizeof(VkFrontFace));
2256 vkStream->write((VkBool32*)&forMarshaling->depthBiasEnable, sizeof(VkBool32));
2257 vkStream->write((float*)&forMarshaling->depthBiasConstantFactor, sizeof(float));
2258 vkStream->write((float*)&forMarshaling->depthBiasClamp, sizeof(float));
2259 vkStream->write((float*)&forMarshaling->depthBiasSlopeFactor, sizeof(float));
2260 vkStream->write((float*)&forMarshaling->lineWidth, sizeof(float));
2261 }
2262
unmarshal_VkPipelineRasterizationStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineRasterizationStateCreateInfo * forUnmarshaling)2263 void unmarshal_VkPipelineRasterizationStateCreateInfo(
2264 VulkanStreamGuest* vkStream,
2265 VkPipelineRasterizationStateCreateInfo* forUnmarshaling)
2266 {
2267 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2268 size_t pNext_size;
2269 pNext_size = vkStream->getBe32();
2270 if (pNext_size)
2271 {
2272 uint64_t pNext_placeholder;
2273 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2274 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2275 }
2276 vkStream->read((VkPipelineRasterizationStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineRasterizationStateCreateFlags));
2277 vkStream->read((VkBool32*)&forUnmarshaling->depthClampEnable, sizeof(VkBool32));
2278 vkStream->read((VkBool32*)&forUnmarshaling->rasterizerDiscardEnable, sizeof(VkBool32));
2279 vkStream->read((VkPolygonMode*)&forUnmarshaling->polygonMode, sizeof(VkPolygonMode));
2280 vkStream->read((VkCullModeFlags*)&forUnmarshaling->cullMode, sizeof(VkCullModeFlags));
2281 vkStream->read((VkFrontFace*)&forUnmarshaling->frontFace, sizeof(VkFrontFace));
2282 vkStream->read((VkBool32*)&forUnmarshaling->depthBiasEnable, sizeof(VkBool32));
2283 vkStream->read((float*)&forUnmarshaling->depthBiasConstantFactor, sizeof(float));
2284 vkStream->read((float*)&forUnmarshaling->depthBiasClamp, sizeof(float));
2285 vkStream->read((float*)&forUnmarshaling->depthBiasSlopeFactor, sizeof(float));
2286 vkStream->read((float*)&forUnmarshaling->lineWidth, sizeof(float));
2287 }
2288
marshal_VkPipelineMultisampleStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineMultisampleStateCreateInfo * forMarshaling)2289 void marshal_VkPipelineMultisampleStateCreateInfo(
2290 VulkanStreamGuest* vkStream,
2291 const VkPipelineMultisampleStateCreateInfo* forMarshaling)
2292 {
2293 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2294 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2295 vkStream->putBe32(pNext_size);
2296 if (pNext_size)
2297 {
2298 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2299 marshal_extension_struct(vkStream, forMarshaling->pNext);
2300 }
2301 vkStream->write((VkPipelineMultisampleStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineMultisampleStateCreateFlags));
2302 vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
2303 vkStream->write((VkBool32*)&forMarshaling->sampleShadingEnable, sizeof(VkBool32));
2304 vkStream->write((float*)&forMarshaling->minSampleShading, sizeof(float));
2305 // WARNING PTR CHECK
2306 uint64_t cgen_var_64 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
2307 vkStream->putBe64(cgen_var_64);
2308 if (forMarshaling->pSampleMask)
2309 {
2310 vkStream->write((const VkSampleMask*)forMarshaling->pSampleMask, (((forMarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2311 }
2312 vkStream->write((VkBool32*)&forMarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2313 vkStream->write((VkBool32*)&forMarshaling->alphaToOneEnable, sizeof(VkBool32));
2314 }
2315
unmarshal_VkPipelineMultisampleStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineMultisampleStateCreateInfo * forUnmarshaling)2316 void unmarshal_VkPipelineMultisampleStateCreateInfo(
2317 VulkanStreamGuest* vkStream,
2318 VkPipelineMultisampleStateCreateInfo* forUnmarshaling)
2319 {
2320 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2321 size_t pNext_size;
2322 pNext_size = vkStream->getBe32();
2323 if (pNext_size)
2324 {
2325 uint64_t pNext_placeholder;
2326 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2327 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2328 }
2329 vkStream->read((VkPipelineMultisampleStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineMultisampleStateCreateFlags));
2330 vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
2331 vkStream->read((VkBool32*)&forUnmarshaling->sampleShadingEnable, sizeof(VkBool32));
2332 vkStream->read((float*)&forUnmarshaling->minSampleShading, sizeof(float));
2333 // WARNING PTR CHECK
2334 const VkSampleMask* check_pSampleMask;
2335 check_pSampleMask = (const VkSampleMask*)(uintptr_t)vkStream->getBe64();
2336 if (forUnmarshaling->pSampleMask)
2337 {
2338 if (!(check_pSampleMask))
2339 {
2340 fprintf(stderr, "fatal: forUnmarshaling->pSampleMask inconsistent between guest and host\n");
2341 }
2342 vkStream->read((VkSampleMask*)forUnmarshaling->pSampleMask, (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2343 }
2344 vkStream->read((VkBool32*)&forUnmarshaling->alphaToCoverageEnable, sizeof(VkBool32));
2345 vkStream->read((VkBool32*)&forUnmarshaling->alphaToOneEnable, sizeof(VkBool32));
2346 }
2347
marshal_VkStencilOpState(VulkanStreamGuest * vkStream,const VkStencilOpState * forMarshaling)2348 void marshal_VkStencilOpState(
2349 VulkanStreamGuest* vkStream,
2350 const VkStencilOpState* forMarshaling)
2351 {
2352 vkStream->write((VkStencilOp*)&forMarshaling->failOp, sizeof(VkStencilOp));
2353 vkStream->write((VkStencilOp*)&forMarshaling->passOp, sizeof(VkStencilOp));
2354 vkStream->write((VkStencilOp*)&forMarshaling->depthFailOp, sizeof(VkStencilOp));
2355 vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
2356 vkStream->write((uint32_t*)&forMarshaling->compareMask, sizeof(uint32_t));
2357 vkStream->write((uint32_t*)&forMarshaling->writeMask, sizeof(uint32_t));
2358 vkStream->write((uint32_t*)&forMarshaling->reference, sizeof(uint32_t));
2359 }
2360
unmarshal_VkStencilOpState(VulkanStreamGuest * vkStream,VkStencilOpState * forUnmarshaling)2361 void unmarshal_VkStencilOpState(
2362 VulkanStreamGuest* vkStream,
2363 VkStencilOpState* forUnmarshaling)
2364 {
2365 vkStream->read((VkStencilOp*)&forUnmarshaling->failOp, sizeof(VkStencilOp));
2366 vkStream->read((VkStencilOp*)&forUnmarshaling->passOp, sizeof(VkStencilOp));
2367 vkStream->read((VkStencilOp*)&forUnmarshaling->depthFailOp, sizeof(VkStencilOp));
2368 vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
2369 vkStream->read((uint32_t*)&forUnmarshaling->compareMask, sizeof(uint32_t));
2370 vkStream->read((uint32_t*)&forUnmarshaling->writeMask, sizeof(uint32_t));
2371 vkStream->read((uint32_t*)&forUnmarshaling->reference, sizeof(uint32_t));
2372 }
2373
marshal_VkPipelineDepthStencilStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineDepthStencilStateCreateInfo * forMarshaling)2374 void marshal_VkPipelineDepthStencilStateCreateInfo(
2375 VulkanStreamGuest* vkStream,
2376 const VkPipelineDepthStencilStateCreateInfo* forMarshaling)
2377 {
2378 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2379 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2380 vkStream->putBe32(pNext_size);
2381 if (pNext_size)
2382 {
2383 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2384 marshal_extension_struct(vkStream, forMarshaling->pNext);
2385 }
2386 vkStream->write((VkPipelineDepthStencilStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineDepthStencilStateCreateFlags));
2387 vkStream->write((VkBool32*)&forMarshaling->depthTestEnable, sizeof(VkBool32));
2388 vkStream->write((VkBool32*)&forMarshaling->depthWriteEnable, sizeof(VkBool32));
2389 vkStream->write((VkCompareOp*)&forMarshaling->depthCompareOp, sizeof(VkCompareOp));
2390 vkStream->write((VkBool32*)&forMarshaling->depthBoundsTestEnable, sizeof(VkBool32));
2391 vkStream->write((VkBool32*)&forMarshaling->stencilTestEnable, sizeof(VkBool32));
2392 marshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forMarshaling->front));
2393 marshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forMarshaling->back));
2394 vkStream->write((float*)&forMarshaling->minDepthBounds, sizeof(float));
2395 vkStream->write((float*)&forMarshaling->maxDepthBounds, sizeof(float));
2396 }
2397
unmarshal_VkPipelineDepthStencilStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineDepthStencilStateCreateInfo * forUnmarshaling)2398 void unmarshal_VkPipelineDepthStencilStateCreateInfo(
2399 VulkanStreamGuest* vkStream,
2400 VkPipelineDepthStencilStateCreateInfo* forUnmarshaling)
2401 {
2402 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2403 size_t pNext_size;
2404 pNext_size = vkStream->getBe32();
2405 if (pNext_size)
2406 {
2407 uint64_t pNext_placeholder;
2408 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2409 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2410 }
2411 vkStream->read((VkPipelineDepthStencilStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineDepthStencilStateCreateFlags));
2412 vkStream->read((VkBool32*)&forUnmarshaling->depthTestEnable, sizeof(VkBool32));
2413 vkStream->read((VkBool32*)&forUnmarshaling->depthWriteEnable, sizeof(VkBool32));
2414 vkStream->read((VkCompareOp*)&forUnmarshaling->depthCompareOp, sizeof(VkCompareOp));
2415 vkStream->read((VkBool32*)&forUnmarshaling->depthBoundsTestEnable, sizeof(VkBool32));
2416 vkStream->read((VkBool32*)&forUnmarshaling->stencilTestEnable, sizeof(VkBool32));
2417 unmarshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forUnmarshaling->front));
2418 unmarshal_VkStencilOpState(vkStream, (VkStencilOpState*)(&forUnmarshaling->back));
2419 vkStream->read((float*)&forUnmarshaling->minDepthBounds, sizeof(float));
2420 vkStream->read((float*)&forUnmarshaling->maxDepthBounds, sizeof(float));
2421 }
2422
marshal_VkPipelineColorBlendAttachmentState(VulkanStreamGuest * vkStream,const VkPipelineColorBlendAttachmentState * forMarshaling)2423 void marshal_VkPipelineColorBlendAttachmentState(
2424 VulkanStreamGuest* vkStream,
2425 const VkPipelineColorBlendAttachmentState* forMarshaling)
2426 {
2427 vkStream->write((VkBool32*)&forMarshaling->blendEnable, sizeof(VkBool32));
2428 vkStream->write((VkBlendFactor*)&forMarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
2429 vkStream->write((VkBlendFactor*)&forMarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
2430 vkStream->write((VkBlendOp*)&forMarshaling->colorBlendOp, sizeof(VkBlendOp));
2431 vkStream->write((VkBlendFactor*)&forMarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
2432 vkStream->write((VkBlendFactor*)&forMarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
2433 vkStream->write((VkBlendOp*)&forMarshaling->alphaBlendOp, sizeof(VkBlendOp));
2434 vkStream->write((VkColorComponentFlags*)&forMarshaling->colorWriteMask, sizeof(VkColorComponentFlags));
2435 }
2436
unmarshal_VkPipelineColorBlendAttachmentState(VulkanStreamGuest * vkStream,VkPipelineColorBlendAttachmentState * forUnmarshaling)2437 void unmarshal_VkPipelineColorBlendAttachmentState(
2438 VulkanStreamGuest* vkStream,
2439 VkPipelineColorBlendAttachmentState* forUnmarshaling)
2440 {
2441 vkStream->read((VkBool32*)&forUnmarshaling->blendEnable, sizeof(VkBool32));
2442 vkStream->read((VkBlendFactor*)&forUnmarshaling->srcColorBlendFactor, sizeof(VkBlendFactor));
2443 vkStream->read((VkBlendFactor*)&forUnmarshaling->dstColorBlendFactor, sizeof(VkBlendFactor));
2444 vkStream->read((VkBlendOp*)&forUnmarshaling->colorBlendOp, sizeof(VkBlendOp));
2445 vkStream->read((VkBlendFactor*)&forUnmarshaling->srcAlphaBlendFactor, sizeof(VkBlendFactor));
2446 vkStream->read((VkBlendFactor*)&forUnmarshaling->dstAlphaBlendFactor, sizeof(VkBlendFactor));
2447 vkStream->read((VkBlendOp*)&forUnmarshaling->alphaBlendOp, sizeof(VkBlendOp));
2448 vkStream->read((VkColorComponentFlags*)&forUnmarshaling->colorWriteMask, sizeof(VkColorComponentFlags));
2449 }
2450
marshal_VkPipelineColorBlendStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineColorBlendStateCreateInfo * forMarshaling)2451 void marshal_VkPipelineColorBlendStateCreateInfo(
2452 VulkanStreamGuest* vkStream,
2453 const VkPipelineColorBlendStateCreateInfo* forMarshaling)
2454 {
2455 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2456 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2457 vkStream->putBe32(pNext_size);
2458 if (pNext_size)
2459 {
2460 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2461 marshal_extension_struct(vkStream, forMarshaling->pNext);
2462 }
2463 vkStream->write((VkPipelineColorBlendStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineColorBlendStateCreateFlags));
2464 vkStream->write((VkBool32*)&forMarshaling->logicOpEnable, sizeof(VkBool32));
2465 vkStream->write((VkLogicOp*)&forMarshaling->logicOp, sizeof(VkLogicOp));
2466 vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
2467 for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
2468 {
2469 marshal_VkPipelineColorBlendAttachmentState(vkStream, (const VkPipelineColorBlendAttachmentState*)(forMarshaling->pAttachments + i));
2470 }
2471 vkStream->write((float*)forMarshaling->blendConstants, 4 * sizeof(float));
2472 }
2473
unmarshal_VkPipelineColorBlendStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineColorBlendStateCreateInfo * forUnmarshaling)2474 void unmarshal_VkPipelineColorBlendStateCreateInfo(
2475 VulkanStreamGuest* vkStream,
2476 VkPipelineColorBlendStateCreateInfo* forUnmarshaling)
2477 {
2478 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2479 size_t pNext_size;
2480 pNext_size = vkStream->getBe32();
2481 if (pNext_size)
2482 {
2483 uint64_t pNext_placeholder;
2484 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2485 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2486 }
2487 vkStream->read((VkPipelineColorBlendStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineColorBlendStateCreateFlags));
2488 vkStream->read((VkBool32*)&forUnmarshaling->logicOpEnable, sizeof(VkBool32));
2489 vkStream->read((VkLogicOp*)&forUnmarshaling->logicOp, sizeof(VkLogicOp));
2490 vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
2491 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
2492 {
2493 unmarshal_VkPipelineColorBlendAttachmentState(vkStream, (VkPipelineColorBlendAttachmentState*)(forUnmarshaling->pAttachments + i));
2494 }
2495 vkStream->read((float*)forUnmarshaling->blendConstants, 4 * sizeof(float));
2496 }
2497
marshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineDynamicStateCreateInfo * forMarshaling)2498 void marshal_VkPipelineDynamicStateCreateInfo(
2499 VulkanStreamGuest* vkStream,
2500 const VkPipelineDynamicStateCreateInfo* forMarshaling)
2501 {
2502 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2503 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2504 vkStream->putBe32(pNext_size);
2505 if (pNext_size)
2506 {
2507 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2508 marshal_extension_struct(vkStream, forMarshaling->pNext);
2509 }
2510 vkStream->write((VkPipelineDynamicStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineDynamicStateCreateFlags));
2511 vkStream->write((uint32_t*)&forMarshaling->dynamicStateCount, sizeof(uint32_t));
2512 vkStream->write((const VkDynamicState*)forMarshaling->pDynamicStates, forMarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2513 }
2514
unmarshal_VkPipelineDynamicStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineDynamicStateCreateInfo * forUnmarshaling)2515 void unmarshal_VkPipelineDynamicStateCreateInfo(
2516 VulkanStreamGuest* vkStream,
2517 VkPipelineDynamicStateCreateInfo* forUnmarshaling)
2518 {
2519 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2520 size_t pNext_size;
2521 pNext_size = vkStream->getBe32();
2522 if (pNext_size)
2523 {
2524 uint64_t pNext_placeholder;
2525 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2526 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2527 }
2528 vkStream->read((VkPipelineDynamicStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineDynamicStateCreateFlags));
2529 vkStream->read((uint32_t*)&forUnmarshaling->dynamicStateCount, sizeof(uint32_t));
2530 vkStream->read((VkDynamicState*)forUnmarshaling->pDynamicStates, forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2531 }
2532
marshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest * vkStream,const VkGraphicsPipelineCreateInfo * forMarshaling)2533 void marshal_VkGraphicsPipelineCreateInfo(
2534 VulkanStreamGuest* vkStream,
2535 const VkGraphicsPipelineCreateInfo* forMarshaling)
2536 {
2537 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2538 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2539 vkStream->putBe32(pNext_size);
2540 if (pNext_size)
2541 {
2542 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2543 marshal_extension_struct(vkStream, forMarshaling->pNext);
2544 }
2545 vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2546 vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
2547 for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
2548 {
2549 marshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
2550 }
2551 marshal_VkPipelineVertexInputStateCreateInfo(vkStream, (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState));
2552 marshal_VkPipelineInputAssemblyStateCreateInfo(vkStream, (const VkPipelineInputAssemblyStateCreateInfo*)(forMarshaling->pInputAssemblyState));
2553 // WARNING PTR CHECK
2554 uint64_t cgen_var_66 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
2555 vkStream->putBe64(cgen_var_66);
2556 if (forMarshaling->pTessellationState)
2557 {
2558 marshal_VkPipelineTessellationStateCreateInfo(vkStream, (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState));
2559 }
2560 // WARNING PTR CHECK
2561 uint64_t cgen_var_67 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
2562 vkStream->putBe64(cgen_var_67);
2563 if (forMarshaling->pViewportState)
2564 {
2565 marshal_VkPipelineViewportStateCreateInfo(vkStream, (const VkPipelineViewportStateCreateInfo*)(forMarshaling->pViewportState));
2566 }
2567 marshal_VkPipelineRasterizationStateCreateInfo(vkStream, (const VkPipelineRasterizationStateCreateInfo*)(forMarshaling->pRasterizationState));
2568 // WARNING PTR CHECK
2569 uint64_t cgen_var_68 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
2570 vkStream->putBe64(cgen_var_68);
2571 if (forMarshaling->pMultisampleState)
2572 {
2573 marshal_VkPipelineMultisampleStateCreateInfo(vkStream, (const VkPipelineMultisampleStateCreateInfo*)(forMarshaling->pMultisampleState));
2574 }
2575 // WARNING PTR CHECK
2576 uint64_t cgen_var_69 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
2577 vkStream->putBe64(cgen_var_69);
2578 if (forMarshaling->pDepthStencilState)
2579 {
2580 marshal_VkPipelineDepthStencilStateCreateInfo(vkStream, (const VkPipelineDepthStencilStateCreateInfo*)(forMarshaling->pDepthStencilState));
2581 }
2582 // WARNING PTR CHECK
2583 uint64_t cgen_var_70 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
2584 vkStream->putBe64(cgen_var_70);
2585 if (forMarshaling->pColorBlendState)
2586 {
2587 marshal_VkPipelineColorBlendStateCreateInfo(vkStream, (const VkPipelineColorBlendStateCreateInfo*)(forMarshaling->pColorBlendState));
2588 }
2589 // WARNING PTR CHECK
2590 uint64_t cgen_var_71 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
2591 vkStream->putBe64(cgen_var_71);
2592 if (forMarshaling->pDynamicState)
2593 {
2594 marshal_VkPipelineDynamicStateCreateInfo(vkStream, (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState));
2595 }
2596 uint64_t cgen_var_72;
2597 vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_72, 1);
2598 vkStream->write((uint64_t*)&cgen_var_72, 1 * 8);
2599 uint64_t cgen_var_73;
2600 vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_73, 1);
2601 vkStream->write((uint64_t*)&cgen_var_73, 1 * 8);
2602 vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
2603 uint64_t cgen_var_74;
2604 vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_74, 1);
2605 vkStream->write((uint64_t*)&cgen_var_74, 1 * 8);
2606 vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2607 }
2608
unmarshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest * vkStream,VkGraphicsPipelineCreateInfo * forUnmarshaling)2609 void unmarshal_VkGraphicsPipelineCreateInfo(
2610 VulkanStreamGuest* vkStream,
2611 VkGraphicsPipelineCreateInfo* forUnmarshaling)
2612 {
2613 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2614 size_t pNext_size;
2615 pNext_size = vkStream->getBe32();
2616 if (pNext_size)
2617 {
2618 uint64_t pNext_placeholder;
2619 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2620 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2621 }
2622 vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
2623 vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
2624 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i)
2625 {
2626 unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
2627 }
2628 unmarshal_VkPipelineVertexInputStateCreateInfo(vkStream, (VkPipelineVertexInputStateCreateInfo*)(forUnmarshaling->pVertexInputState));
2629 unmarshal_VkPipelineInputAssemblyStateCreateInfo(vkStream, (VkPipelineInputAssemblyStateCreateInfo*)(forUnmarshaling->pInputAssemblyState));
2630 // WARNING PTR CHECK
2631 const VkPipelineTessellationStateCreateInfo* check_pTessellationState;
2632 check_pTessellationState = (const VkPipelineTessellationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2633 if (forUnmarshaling->pTessellationState)
2634 {
2635 if (!(check_pTessellationState))
2636 {
2637 fprintf(stderr, "fatal: forUnmarshaling->pTessellationState inconsistent between guest and host\n");
2638 }
2639 unmarshal_VkPipelineTessellationStateCreateInfo(vkStream, (VkPipelineTessellationStateCreateInfo*)(forUnmarshaling->pTessellationState));
2640 }
2641 // WARNING PTR CHECK
2642 const VkPipelineViewportStateCreateInfo* check_pViewportState;
2643 check_pViewportState = (const VkPipelineViewportStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2644 if (forUnmarshaling->pViewportState)
2645 {
2646 if (!(check_pViewportState))
2647 {
2648 fprintf(stderr, "fatal: forUnmarshaling->pViewportState inconsistent between guest and host\n");
2649 }
2650 unmarshal_VkPipelineViewportStateCreateInfo(vkStream, (VkPipelineViewportStateCreateInfo*)(forUnmarshaling->pViewportState));
2651 }
2652 unmarshal_VkPipelineRasterizationStateCreateInfo(vkStream, (VkPipelineRasterizationStateCreateInfo*)(forUnmarshaling->pRasterizationState));
2653 // WARNING PTR CHECK
2654 const VkPipelineMultisampleStateCreateInfo* check_pMultisampleState;
2655 check_pMultisampleState = (const VkPipelineMultisampleStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2656 if (forUnmarshaling->pMultisampleState)
2657 {
2658 if (!(check_pMultisampleState))
2659 {
2660 fprintf(stderr, "fatal: forUnmarshaling->pMultisampleState inconsistent between guest and host\n");
2661 }
2662 unmarshal_VkPipelineMultisampleStateCreateInfo(vkStream, (VkPipelineMultisampleStateCreateInfo*)(forUnmarshaling->pMultisampleState));
2663 }
2664 // WARNING PTR CHECK
2665 const VkPipelineDepthStencilStateCreateInfo* check_pDepthStencilState;
2666 check_pDepthStencilState = (const VkPipelineDepthStencilStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2667 if (forUnmarshaling->pDepthStencilState)
2668 {
2669 if (!(check_pDepthStencilState))
2670 {
2671 fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilState inconsistent between guest and host\n");
2672 }
2673 unmarshal_VkPipelineDepthStencilStateCreateInfo(vkStream, (VkPipelineDepthStencilStateCreateInfo*)(forUnmarshaling->pDepthStencilState));
2674 }
2675 // WARNING PTR CHECK
2676 const VkPipelineColorBlendStateCreateInfo* check_pColorBlendState;
2677 check_pColorBlendState = (const VkPipelineColorBlendStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2678 if (forUnmarshaling->pColorBlendState)
2679 {
2680 if (!(check_pColorBlendState))
2681 {
2682 fprintf(stderr, "fatal: forUnmarshaling->pColorBlendState inconsistent between guest and host\n");
2683 }
2684 unmarshal_VkPipelineColorBlendStateCreateInfo(vkStream, (VkPipelineColorBlendStateCreateInfo*)(forUnmarshaling->pColorBlendState));
2685 }
2686 // WARNING PTR CHECK
2687 const VkPipelineDynamicStateCreateInfo* check_pDynamicState;
2688 check_pDynamicState = (const VkPipelineDynamicStateCreateInfo*)(uintptr_t)vkStream->getBe64();
2689 if (forUnmarshaling->pDynamicState)
2690 {
2691 if (!(check_pDynamicState))
2692 {
2693 fprintf(stderr, "fatal: forUnmarshaling->pDynamicState inconsistent between guest and host\n");
2694 }
2695 unmarshal_VkPipelineDynamicStateCreateInfo(vkStream, (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState));
2696 }
2697 uint64_t cgen_var_81;
2698 vkStream->read((uint64_t*)&cgen_var_81, 1 * 8);
2699 vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_81, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
2700 uint64_t cgen_var_82;
2701 vkStream->read((uint64_t*)&cgen_var_82, 1 * 8);
2702 vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_82, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
2703 vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
2704 uint64_t cgen_var_83;
2705 vkStream->read((uint64_t*)&cgen_var_83, 1 * 8);
2706 vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_83, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
2707 vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
2708 }
2709
marshal_VkComputePipelineCreateInfo(VulkanStreamGuest * vkStream,const VkComputePipelineCreateInfo * forMarshaling)2710 void marshal_VkComputePipelineCreateInfo(
2711 VulkanStreamGuest* vkStream,
2712 const VkComputePipelineCreateInfo* forMarshaling)
2713 {
2714 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2715 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2716 vkStream->putBe32(pNext_size);
2717 if (pNext_size)
2718 {
2719 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2720 marshal_extension_struct(vkStream, forMarshaling->pNext);
2721 }
2722 vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
2723 marshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage));
2724 uint64_t cgen_var_84;
2725 vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_84, 1);
2726 vkStream->write((uint64_t*)&cgen_var_84, 1 * 8);
2727 uint64_t cgen_var_85;
2728 vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_85, 1);
2729 vkStream->write((uint64_t*)&cgen_var_85, 1 * 8);
2730 vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
2731 }
2732
unmarshal_VkComputePipelineCreateInfo(VulkanStreamGuest * vkStream,VkComputePipelineCreateInfo * forUnmarshaling)2733 void unmarshal_VkComputePipelineCreateInfo(
2734 VulkanStreamGuest* vkStream,
2735 VkComputePipelineCreateInfo* forUnmarshaling)
2736 {
2737 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2738 size_t pNext_size;
2739 pNext_size = vkStream->getBe32();
2740 if (pNext_size)
2741 {
2742 uint64_t pNext_placeholder;
2743 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2744 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2745 }
2746 vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
2747 unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forUnmarshaling->stage));
2748 uint64_t cgen_var_86;
2749 vkStream->read((uint64_t*)&cgen_var_86, 1 * 8);
2750 vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_86, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
2751 uint64_t cgen_var_87;
2752 vkStream->read((uint64_t*)&cgen_var_87, 1 * 8);
2753 vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_87, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
2754 vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
2755 }
2756
marshal_VkPushConstantRange(VulkanStreamGuest * vkStream,const VkPushConstantRange * forMarshaling)2757 void marshal_VkPushConstantRange(
2758 VulkanStreamGuest* vkStream,
2759 const VkPushConstantRange* forMarshaling)
2760 {
2761 vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
2762 vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
2763 vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
2764 }
2765
unmarshal_VkPushConstantRange(VulkanStreamGuest * vkStream,VkPushConstantRange * forUnmarshaling)2766 void unmarshal_VkPushConstantRange(
2767 VulkanStreamGuest* vkStream,
2768 VkPushConstantRange* forUnmarshaling)
2769 {
2770 vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
2771 vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
2772 vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
2773 }
2774
marshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineLayoutCreateInfo * forMarshaling)2775 void marshal_VkPipelineLayoutCreateInfo(
2776 VulkanStreamGuest* vkStream,
2777 const VkPipelineLayoutCreateInfo* forMarshaling)
2778 {
2779 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2780 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2781 vkStream->putBe32(pNext_size);
2782 if (pNext_size)
2783 {
2784 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2785 marshal_extension_struct(vkStream, forMarshaling->pNext);
2786 }
2787 vkStream->write((VkPipelineLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineLayoutCreateFlags));
2788 vkStream->write((uint32_t*)&forMarshaling->setLayoutCount, sizeof(uint32_t));
2789 if (forMarshaling->setLayoutCount)
2790 {
2791 uint64_t* cgen_var_88;
2792 vkStream->alloc((void**)&cgen_var_88, forMarshaling->setLayoutCount * 8);
2793 vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_88, forMarshaling->setLayoutCount);
2794 vkStream->write((uint64_t*)cgen_var_88, forMarshaling->setLayoutCount * 8);
2795 }
2796 vkStream->write((uint32_t*)&forMarshaling->pushConstantRangeCount, sizeof(uint32_t));
2797 for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i)
2798 {
2799 marshal_VkPushConstantRange(vkStream, (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i));
2800 }
2801 }
2802
unmarshal_VkPipelineLayoutCreateInfo(VulkanStreamGuest * vkStream,VkPipelineLayoutCreateInfo * forUnmarshaling)2803 void unmarshal_VkPipelineLayoutCreateInfo(
2804 VulkanStreamGuest* vkStream,
2805 VkPipelineLayoutCreateInfo* forUnmarshaling)
2806 {
2807 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2808 size_t pNext_size;
2809 pNext_size = vkStream->getBe32();
2810 if (pNext_size)
2811 {
2812 uint64_t pNext_placeholder;
2813 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2814 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2815 }
2816 vkStream->read((VkPipelineLayoutCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineLayoutCreateFlags));
2817 vkStream->read((uint32_t*)&forUnmarshaling->setLayoutCount, sizeof(uint32_t));
2818 if (forUnmarshaling->setLayoutCount)
2819 {
2820 uint64_t* cgen_var_89;
2821 vkStream->alloc((void**)&cgen_var_89, forUnmarshaling->setLayoutCount * 8);
2822 vkStream->read((uint64_t*)cgen_var_89, forUnmarshaling->setLayoutCount * 8);
2823 vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_89, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->setLayoutCount);
2824 }
2825 vkStream->read((uint32_t*)&forUnmarshaling->pushConstantRangeCount, sizeof(uint32_t));
2826 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i)
2827 {
2828 unmarshal_VkPushConstantRange(vkStream, (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i));
2829 }
2830 }
2831
marshal_VkSamplerCreateInfo(VulkanStreamGuest * vkStream,const VkSamplerCreateInfo * forMarshaling)2832 void marshal_VkSamplerCreateInfo(
2833 VulkanStreamGuest* vkStream,
2834 const VkSamplerCreateInfo* forMarshaling)
2835 {
2836 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2837 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2838 vkStream->putBe32(pNext_size);
2839 if (pNext_size)
2840 {
2841 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2842 marshal_extension_struct(vkStream, forMarshaling->pNext);
2843 }
2844 vkStream->write((VkSamplerCreateFlags*)&forMarshaling->flags, sizeof(VkSamplerCreateFlags));
2845 vkStream->write((VkFilter*)&forMarshaling->magFilter, sizeof(VkFilter));
2846 vkStream->write((VkFilter*)&forMarshaling->minFilter, sizeof(VkFilter));
2847 vkStream->write((VkSamplerMipmapMode*)&forMarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
2848 vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeU, sizeof(VkSamplerAddressMode));
2849 vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeV, sizeof(VkSamplerAddressMode));
2850 vkStream->write((VkSamplerAddressMode*)&forMarshaling->addressModeW, sizeof(VkSamplerAddressMode));
2851 vkStream->write((float*)&forMarshaling->mipLodBias, sizeof(float));
2852 vkStream->write((VkBool32*)&forMarshaling->anisotropyEnable, sizeof(VkBool32));
2853 vkStream->write((float*)&forMarshaling->maxAnisotropy, sizeof(float));
2854 vkStream->write((VkBool32*)&forMarshaling->compareEnable, sizeof(VkBool32));
2855 vkStream->write((VkCompareOp*)&forMarshaling->compareOp, sizeof(VkCompareOp));
2856 vkStream->write((float*)&forMarshaling->minLod, sizeof(float));
2857 vkStream->write((float*)&forMarshaling->maxLod, sizeof(float));
2858 vkStream->write((VkBorderColor*)&forMarshaling->borderColor, sizeof(VkBorderColor));
2859 vkStream->write((VkBool32*)&forMarshaling->unnormalizedCoordinates, sizeof(VkBool32));
2860 }
2861
unmarshal_VkSamplerCreateInfo(VulkanStreamGuest * vkStream,VkSamplerCreateInfo * forUnmarshaling)2862 void unmarshal_VkSamplerCreateInfo(
2863 VulkanStreamGuest* vkStream,
2864 VkSamplerCreateInfo* forUnmarshaling)
2865 {
2866 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2867 size_t pNext_size;
2868 pNext_size = vkStream->getBe32();
2869 if (pNext_size)
2870 {
2871 uint64_t pNext_placeholder;
2872 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2873 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2874 }
2875 vkStream->read((VkSamplerCreateFlags*)&forUnmarshaling->flags, sizeof(VkSamplerCreateFlags));
2876 vkStream->read((VkFilter*)&forUnmarshaling->magFilter, sizeof(VkFilter));
2877 vkStream->read((VkFilter*)&forUnmarshaling->minFilter, sizeof(VkFilter));
2878 vkStream->read((VkSamplerMipmapMode*)&forUnmarshaling->mipmapMode, sizeof(VkSamplerMipmapMode));
2879 vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeU, sizeof(VkSamplerAddressMode));
2880 vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeV, sizeof(VkSamplerAddressMode));
2881 vkStream->read((VkSamplerAddressMode*)&forUnmarshaling->addressModeW, sizeof(VkSamplerAddressMode));
2882 vkStream->read((float*)&forUnmarshaling->mipLodBias, sizeof(float));
2883 vkStream->read((VkBool32*)&forUnmarshaling->anisotropyEnable, sizeof(VkBool32));
2884 vkStream->read((float*)&forUnmarshaling->maxAnisotropy, sizeof(float));
2885 vkStream->read((VkBool32*)&forUnmarshaling->compareEnable, sizeof(VkBool32));
2886 vkStream->read((VkCompareOp*)&forUnmarshaling->compareOp, sizeof(VkCompareOp));
2887 vkStream->read((float*)&forUnmarshaling->minLod, sizeof(float));
2888 vkStream->read((float*)&forUnmarshaling->maxLod, sizeof(float));
2889 vkStream->read((VkBorderColor*)&forUnmarshaling->borderColor, sizeof(VkBorderColor));
2890 vkStream->read((VkBool32*)&forUnmarshaling->unnormalizedCoordinates, sizeof(VkBool32));
2891 }
2892
marshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutBinding * forMarshaling)2893 void marshal_VkDescriptorSetLayoutBinding(
2894 VulkanStreamGuest* vkStream,
2895 const VkDescriptorSetLayoutBinding* forMarshaling)
2896 {
2897 vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
2898 vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
2899 vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
2900 vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
2901 // WARNING PTR CHECK
2902 uint64_t cgen_var_90 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
2903 vkStream->putBe64(cgen_var_90);
2904 if (forMarshaling->pImmutableSamplers)
2905 {
2906 if (forMarshaling->descriptorCount)
2907 {
2908 uint64_t* cgen_var_91;
2909 vkStream->alloc((void**)&cgen_var_91, forMarshaling->descriptorCount * 8);
2910 vkStream->handleMapping()->mapHandles_VkSampler_u64(forMarshaling->pImmutableSamplers, cgen_var_91, forMarshaling->descriptorCount);
2911 vkStream->write((uint64_t*)cgen_var_91, forMarshaling->descriptorCount * 8);
2912 }
2913 }
2914 }
2915
unmarshal_VkDescriptorSetLayoutBinding(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutBinding * forUnmarshaling)2916 void unmarshal_VkDescriptorSetLayoutBinding(
2917 VulkanStreamGuest* vkStream,
2918 VkDescriptorSetLayoutBinding* forUnmarshaling)
2919 {
2920 vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
2921 vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
2922 vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
2923 vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
2924 // WARNING PTR CHECK
2925 const VkSampler* check_pImmutableSamplers;
2926 check_pImmutableSamplers = (const VkSampler*)(uintptr_t)vkStream->getBe64();
2927 if (forUnmarshaling->pImmutableSamplers)
2928 {
2929 if (!(check_pImmutableSamplers))
2930 {
2931 fprintf(stderr, "fatal: forUnmarshaling->pImmutableSamplers inconsistent between guest and host\n");
2932 }
2933 if (forUnmarshaling->descriptorCount)
2934 {
2935 uint64_t* cgen_var_93;
2936 vkStream->alloc((void**)&cgen_var_93, forUnmarshaling->descriptorCount * 8);
2937 vkStream->read((uint64_t*)cgen_var_93, forUnmarshaling->descriptorCount * 8);
2938 vkStream->handleMapping()->mapHandles_u64_VkSampler(cgen_var_93, (VkSampler*)forUnmarshaling->pImmutableSamplers, forUnmarshaling->descriptorCount);
2939 }
2940 }
2941 }
2942
marshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutCreateInfo * forMarshaling)2943 void marshal_VkDescriptorSetLayoutCreateInfo(
2944 VulkanStreamGuest* vkStream,
2945 const VkDescriptorSetLayoutCreateInfo* forMarshaling)
2946 {
2947 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
2948 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
2949 vkStream->putBe32(pNext_size);
2950 if (pNext_size)
2951 {
2952 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
2953 marshal_extension_struct(vkStream, forMarshaling->pNext);
2954 }
2955 vkStream->write((VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
2956 vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
2957 for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i)
2958 {
2959 marshal_VkDescriptorSetLayoutBinding(vkStream, (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i));
2960 }
2961 }
2962
unmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutCreateInfo * forUnmarshaling)2963 void unmarshal_VkDescriptorSetLayoutCreateInfo(
2964 VulkanStreamGuest* vkStream,
2965 VkDescriptorSetLayoutCreateInfo* forUnmarshaling)
2966 {
2967 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
2968 size_t pNext_size;
2969 pNext_size = vkStream->getBe32();
2970 if (pNext_size)
2971 {
2972 uint64_t pNext_placeholder;
2973 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
2974 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
2975 }
2976 vkStream->read((VkDescriptorSetLayoutCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
2977 vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
2978 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindingCount; ++i)
2979 {
2980 unmarshal_VkDescriptorSetLayoutBinding(vkStream, (VkDescriptorSetLayoutBinding*)(forUnmarshaling->pBindings + i));
2981 }
2982 }
2983
marshal_VkDescriptorPoolSize(VulkanStreamGuest * vkStream,const VkDescriptorPoolSize * forMarshaling)2984 void marshal_VkDescriptorPoolSize(
2985 VulkanStreamGuest* vkStream,
2986 const VkDescriptorPoolSize* forMarshaling)
2987 {
2988 vkStream->write((VkDescriptorType*)&forMarshaling->type, sizeof(VkDescriptorType));
2989 vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
2990 }
2991
unmarshal_VkDescriptorPoolSize(VulkanStreamGuest * vkStream,VkDescriptorPoolSize * forUnmarshaling)2992 void unmarshal_VkDescriptorPoolSize(
2993 VulkanStreamGuest* vkStream,
2994 VkDescriptorPoolSize* forUnmarshaling)
2995 {
2996 vkStream->read((VkDescriptorType*)&forUnmarshaling->type, sizeof(VkDescriptorType));
2997 vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
2998 }
2999
marshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest * vkStream,const VkDescriptorPoolCreateInfo * forMarshaling)3000 void marshal_VkDescriptorPoolCreateInfo(
3001 VulkanStreamGuest* vkStream,
3002 const VkDescriptorPoolCreateInfo* forMarshaling)
3003 {
3004 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3005 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3006 vkStream->putBe32(pNext_size);
3007 if (pNext_size)
3008 {
3009 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3010 marshal_extension_struct(vkStream, forMarshaling->pNext);
3011 }
3012 vkStream->write((VkDescriptorPoolCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorPoolCreateFlags));
3013 vkStream->write((uint32_t*)&forMarshaling->maxSets, sizeof(uint32_t));
3014 vkStream->write((uint32_t*)&forMarshaling->poolSizeCount, sizeof(uint32_t));
3015 for (uint32_t i = 0; i < (uint32_t)forMarshaling->poolSizeCount; ++i)
3016 {
3017 marshal_VkDescriptorPoolSize(vkStream, (const VkDescriptorPoolSize*)(forMarshaling->pPoolSizes + i));
3018 }
3019 }
3020
unmarshal_VkDescriptorPoolCreateInfo(VulkanStreamGuest * vkStream,VkDescriptorPoolCreateInfo * forUnmarshaling)3021 void unmarshal_VkDescriptorPoolCreateInfo(
3022 VulkanStreamGuest* vkStream,
3023 VkDescriptorPoolCreateInfo* forUnmarshaling)
3024 {
3025 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3026 size_t pNext_size;
3027 pNext_size = vkStream->getBe32();
3028 if (pNext_size)
3029 {
3030 uint64_t pNext_placeholder;
3031 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3032 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3033 }
3034 vkStream->read((VkDescriptorPoolCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorPoolCreateFlags));
3035 vkStream->read((uint32_t*)&forUnmarshaling->maxSets, sizeof(uint32_t));
3036 vkStream->read((uint32_t*)&forUnmarshaling->poolSizeCount, sizeof(uint32_t));
3037 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->poolSizeCount; ++i)
3038 {
3039 unmarshal_VkDescriptorPoolSize(vkStream, (VkDescriptorPoolSize*)(forUnmarshaling->pPoolSizes + i));
3040 }
3041 }
3042
marshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest * vkStream,const VkDescriptorSetAllocateInfo * forMarshaling)3043 void marshal_VkDescriptorSetAllocateInfo(
3044 VulkanStreamGuest* vkStream,
3045 const VkDescriptorSetAllocateInfo* forMarshaling)
3046 {
3047 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3048 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3049 vkStream->putBe32(pNext_size);
3050 if (pNext_size)
3051 {
3052 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3053 marshal_extension_struct(vkStream, forMarshaling->pNext);
3054 }
3055 uint64_t cgen_var_94;
3056 vkStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&forMarshaling->descriptorPool, &cgen_var_94, 1);
3057 vkStream->write((uint64_t*)&cgen_var_94, 1 * 8);
3058 vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
3059 if (forMarshaling->descriptorSetCount)
3060 {
3061 uint64_t* cgen_var_95;
3062 vkStream->alloc((void**)&cgen_var_95, forMarshaling->descriptorSetCount * 8);
3063 vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_95, forMarshaling->descriptorSetCount);
3064 vkStream->write((uint64_t*)cgen_var_95, forMarshaling->descriptorSetCount * 8);
3065 }
3066 }
3067
unmarshal_VkDescriptorSetAllocateInfo(VulkanStreamGuest * vkStream,VkDescriptorSetAllocateInfo * forUnmarshaling)3068 void unmarshal_VkDescriptorSetAllocateInfo(
3069 VulkanStreamGuest* vkStream,
3070 VkDescriptorSetAllocateInfo* forUnmarshaling)
3071 {
3072 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3073 size_t pNext_size;
3074 pNext_size = vkStream->getBe32();
3075 if (pNext_size)
3076 {
3077 uint64_t pNext_placeholder;
3078 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3079 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3080 }
3081 uint64_t cgen_var_96;
3082 vkStream->read((uint64_t*)&cgen_var_96, 1 * 8);
3083 vkStream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_96, (VkDescriptorPool*)&forUnmarshaling->descriptorPool, 1);
3084 vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
3085 if (forUnmarshaling->descriptorSetCount)
3086 {
3087 uint64_t* cgen_var_97;
3088 vkStream->alloc((void**)&cgen_var_97, forUnmarshaling->descriptorSetCount * 8);
3089 vkStream->read((uint64_t*)cgen_var_97, forUnmarshaling->descriptorSetCount * 8);
3090 vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_97, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->descriptorSetCount);
3091 }
3092 }
3093
marshal_VkDescriptorImageInfo(VulkanStreamGuest * vkStream,const VkDescriptorImageInfo * forMarshaling)3094 void marshal_VkDescriptorImageInfo(
3095 VulkanStreamGuest* vkStream,
3096 const VkDescriptorImageInfo* forMarshaling)
3097 {
3098 uint64_t cgen_var_98;
3099 vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_98, 1);
3100 vkStream->write((uint64_t*)&cgen_var_98, 1 * 8);
3101 uint64_t cgen_var_99;
3102 vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_99, 1);
3103 vkStream->write((uint64_t*)&cgen_var_99, 1 * 8);
3104 vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
3105 }
3106
unmarshal_VkDescriptorImageInfo(VulkanStreamGuest * vkStream,VkDescriptorImageInfo * forUnmarshaling)3107 void unmarshal_VkDescriptorImageInfo(
3108 VulkanStreamGuest* vkStream,
3109 VkDescriptorImageInfo* forUnmarshaling)
3110 {
3111 uint64_t cgen_var_100;
3112 vkStream->read((uint64_t*)&cgen_var_100, 1 * 8);
3113 vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_100, (VkSampler*)&forUnmarshaling->sampler, 1);
3114 uint64_t cgen_var_101;
3115 vkStream->read((uint64_t*)&cgen_var_101, 1 * 8);
3116 vkStream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_101, (VkImageView*)&forUnmarshaling->imageView, 1);
3117 vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
3118 }
3119
marshal_VkDescriptorBufferInfo(VulkanStreamGuest * vkStream,const VkDescriptorBufferInfo * forMarshaling)3120 void marshal_VkDescriptorBufferInfo(
3121 VulkanStreamGuest* vkStream,
3122 const VkDescriptorBufferInfo* forMarshaling)
3123 {
3124 uint64_t cgen_var_102;
3125 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_102, 1);
3126 vkStream->write((uint64_t*)&cgen_var_102, 1 * 8);
3127 vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
3128 vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
3129 }
3130
unmarshal_VkDescriptorBufferInfo(VulkanStreamGuest * vkStream,VkDescriptorBufferInfo * forUnmarshaling)3131 void unmarshal_VkDescriptorBufferInfo(
3132 VulkanStreamGuest* vkStream,
3133 VkDescriptorBufferInfo* forUnmarshaling)
3134 {
3135 uint64_t cgen_var_103;
3136 vkStream->read((uint64_t*)&cgen_var_103, 1 * 8);
3137 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_103, (VkBuffer*)&forUnmarshaling->buffer, 1);
3138 vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
3139 vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
3140 }
3141
marshal_VkWriteDescriptorSet(VulkanStreamGuest * vkStream,const VkWriteDescriptorSet * forMarshaling)3142 void marshal_VkWriteDescriptorSet(
3143 VulkanStreamGuest* vkStream,
3144 const VkWriteDescriptorSet* forMarshaling)
3145 {
3146 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3147 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3148 vkStream->putBe32(pNext_size);
3149 if (pNext_size)
3150 {
3151 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3152 marshal_extension_struct(vkStream, forMarshaling->pNext);
3153 }
3154 uint64_t cgen_var_104;
3155 vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_104, 1);
3156 vkStream->write((uint64_t*)&cgen_var_104, 1 * 8);
3157 vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
3158 vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
3159 vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3160 vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
3161 // WARNING PTR CHECK
3162 uint64_t cgen_var_105 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
3163 vkStream->putBe64(cgen_var_105);
3164 if (forMarshaling->pImageInfo)
3165 {
3166 for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
3167 {
3168 marshal_VkDescriptorImageInfo(vkStream, (const VkDescriptorImageInfo*)(forMarshaling->pImageInfo + i));
3169 }
3170 }
3171 // WARNING PTR CHECK
3172 uint64_t cgen_var_106 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
3173 vkStream->putBe64(cgen_var_106);
3174 if (forMarshaling->pBufferInfo)
3175 {
3176 for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
3177 {
3178 marshal_VkDescriptorBufferInfo(vkStream, (const VkDescriptorBufferInfo*)(forMarshaling->pBufferInfo + i));
3179 }
3180 }
3181 // WARNING PTR CHECK
3182 uint64_t cgen_var_107 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
3183 vkStream->putBe64(cgen_var_107);
3184 if (forMarshaling->pTexelBufferView)
3185 {
3186 if (forMarshaling->descriptorCount)
3187 {
3188 uint64_t* cgen_var_108;
3189 vkStream->alloc((void**)&cgen_var_108, forMarshaling->descriptorCount * 8);
3190 vkStream->handleMapping()->mapHandles_VkBufferView_u64(forMarshaling->pTexelBufferView, cgen_var_108, forMarshaling->descriptorCount);
3191 vkStream->write((uint64_t*)cgen_var_108, forMarshaling->descriptorCount * 8);
3192 }
3193 }
3194 }
3195
unmarshal_VkWriteDescriptorSet(VulkanStreamGuest * vkStream,VkWriteDescriptorSet * forUnmarshaling)3196 void unmarshal_VkWriteDescriptorSet(
3197 VulkanStreamGuest* vkStream,
3198 VkWriteDescriptorSet* forUnmarshaling)
3199 {
3200 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3201 size_t pNext_size;
3202 pNext_size = vkStream->getBe32();
3203 if (pNext_size)
3204 {
3205 uint64_t pNext_placeholder;
3206 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3207 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3208 }
3209 uint64_t cgen_var_109;
3210 vkStream->read((uint64_t*)&cgen_var_109, 1 * 8);
3211 vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_109, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
3212 vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
3213 vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
3214 vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3215 vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
3216 // WARNING PTR CHECK
3217 const VkDescriptorImageInfo* check_pImageInfo;
3218 check_pImageInfo = (const VkDescriptorImageInfo*)(uintptr_t)vkStream->getBe64();
3219 if (forUnmarshaling->pImageInfo)
3220 {
3221 if (!(check_pImageInfo))
3222 {
3223 fprintf(stderr, "fatal: forUnmarshaling->pImageInfo inconsistent between guest and host\n");
3224 }
3225 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
3226 {
3227 unmarshal_VkDescriptorImageInfo(vkStream, (VkDescriptorImageInfo*)(forUnmarshaling->pImageInfo + i));
3228 }
3229 }
3230 // WARNING PTR CHECK
3231 const VkDescriptorBufferInfo* check_pBufferInfo;
3232 check_pBufferInfo = (const VkDescriptorBufferInfo*)(uintptr_t)vkStream->getBe64();
3233 if (forUnmarshaling->pBufferInfo)
3234 {
3235 if (!(check_pBufferInfo))
3236 {
3237 fprintf(stderr, "fatal: forUnmarshaling->pBufferInfo inconsistent between guest and host\n");
3238 }
3239 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
3240 {
3241 unmarshal_VkDescriptorBufferInfo(vkStream, (VkDescriptorBufferInfo*)(forUnmarshaling->pBufferInfo + i));
3242 }
3243 }
3244 // WARNING PTR CHECK
3245 const VkBufferView* check_pTexelBufferView;
3246 check_pTexelBufferView = (const VkBufferView*)(uintptr_t)vkStream->getBe64();
3247 if (forUnmarshaling->pTexelBufferView)
3248 {
3249 if (!(check_pTexelBufferView))
3250 {
3251 fprintf(stderr, "fatal: forUnmarshaling->pTexelBufferView inconsistent between guest and host\n");
3252 }
3253 if (forUnmarshaling->descriptorCount)
3254 {
3255 uint64_t* cgen_var_113;
3256 vkStream->alloc((void**)&cgen_var_113, forUnmarshaling->descriptorCount * 8);
3257 vkStream->read((uint64_t*)cgen_var_113, forUnmarshaling->descriptorCount * 8);
3258 vkStream->handleMapping()->mapHandles_u64_VkBufferView(cgen_var_113, (VkBufferView*)forUnmarshaling->pTexelBufferView, forUnmarshaling->descriptorCount);
3259 }
3260 }
3261 }
3262
marshal_VkCopyDescriptorSet(VulkanStreamGuest * vkStream,const VkCopyDescriptorSet * forMarshaling)3263 void marshal_VkCopyDescriptorSet(
3264 VulkanStreamGuest* vkStream,
3265 const VkCopyDescriptorSet* forMarshaling)
3266 {
3267 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3268 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3269 vkStream->putBe32(pNext_size);
3270 if (pNext_size)
3271 {
3272 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3273 marshal_extension_struct(vkStream, forMarshaling->pNext);
3274 }
3275 uint64_t cgen_var_114;
3276 vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->srcSet, &cgen_var_114, 1);
3277 vkStream->write((uint64_t*)&cgen_var_114, 1 * 8);
3278 vkStream->write((uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
3279 vkStream->write((uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
3280 uint64_t cgen_var_115;
3281 vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_115, 1);
3282 vkStream->write((uint64_t*)&cgen_var_115, 1 * 8);
3283 vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
3284 vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
3285 vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
3286 }
3287
unmarshal_VkCopyDescriptorSet(VulkanStreamGuest * vkStream,VkCopyDescriptorSet * forUnmarshaling)3288 void unmarshal_VkCopyDescriptorSet(
3289 VulkanStreamGuest* vkStream,
3290 VkCopyDescriptorSet* forUnmarshaling)
3291 {
3292 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3293 size_t pNext_size;
3294 pNext_size = vkStream->getBe32();
3295 if (pNext_size)
3296 {
3297 uint64_t pNext_placeholder;
3298 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3299 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3300 }
3301 uint64_t cgen_var_116;
3302 vkStream->read((uint64_t*)&cgen_var_116, 1 * 8);
3303 vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_116, (VkDescriptorSet*)&forUnmarshaling->srcSet, 1);
3304 vkStream->read((uint32_t*)&forUnmarshaling->srcBinding, sizeof(uint32_t));
3305 vkStream->read((uint32_t*)&forUnmarshaling->srcArrayElement, sizeof(uint32_t));
3306 uint64_t cgen_var_117;
3307 vkStream->read((uint64_t*)&cgen_var_117, 1 * 8);
3308 vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_117, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
3309 vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
3310 vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
3311 vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
3312 }
3313
marshal_VkFramebufferCreateInfo(VulkanStreamGuest * vkStream,const VkFramebufferCreateInfo * forMarshaling)3314 void marshal_VkFramebufferCreateInfo(
3315 VulkanStreamGuest* vkStream,
3316 const VkFramebufferCreateInfo* forMarshaling)
3317 {
3318 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3319 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3320 vkStream->putBe32(pNext_size);
3321 if (pNext_size)
3322 {
3323 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3324 marshal_extension_struct(vkStream, forMarshaling->pNext);
3325 }
3326 vkStream->write((VkFramebufferCreateFlags*)&forMarshaling->flags, sizeof(VkFramebufferCreateFlags));
3327 uint64_t cgen_var_118;
3328 vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_118, 1);
3329 vkStream->write((uint64_t*)&cgen_var_118, 1 * 8);
3330 vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
3331 if (forMarshaling->attachmentCount)
3332 {
3333 uint64_t* cgen_var_119;
3334 vkStream->alloc((void**)&cgen_var_119, forMarshaling->attachmentCount * 8);
3335 vkStream->handleMapping()->mapHandles_VkImageView_u64(forMarshaling->pAttachments, cgen_var_119, forMarshaling->attachmentCount);
3336 vkStream->write((uint64_t*)cgen_var_119, forMarshaling->attachmentCount * 8);
3337 }
3338 vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
3339 vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
3340 vkStream->write((uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
3341 }
3342
unmarshal_VkFramebufferCreateInfo(VulkanStreamGuest * vkStream,VkFramebufferCreateInfo * forUnmarshaling)3343 void unmarshal_VkFramebufferCreateInfo(
3344 VulkanStreamGuest* vkStream,
3345 VkFramebufferCreateInfo* forUnmarshaling)
3346 {
3347 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3348 size_t pNext_size;
3349 pNext_size = vkStream->getBe32();
3350 if (pNext_size)
3351 {
3352 uint64_t pNext_placeholder;
3353 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3354 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3355 }
3356 vkStream->read((VkFramebufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkFramebufferCreateFlags));
3357 uint64_t cgen_var_120;
3358 vkStream->read((uint64_t*)&cgen_var_120, 1 * 8);
3359 vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_120, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
3360 vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
3361 if (forUnmarshaling->attachmentCount)
3362 {
3363 uint64_t* cgen_var_121;
3364 vkStream->alloc((void**)&cgen_var_121, forUnmarshaling->attachmentCount * 8);
3365 vkStream->read((uint64_t*)cgen_var_121, forUnmarshaling->attachmentCount * 8);
3366 vkStream->handleMapping()->mapHandles_u64_VkImageView(cgen_var_121, (VkImageView*)forUnmarshaling->pAttachments, forUnmarshaling->attachmentCount);
3367 }
3368 vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
3369 vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
3370 vkStream->read((uint32_t*)&forUnmarshaling->layers, sizeof(uint32_t));
3371 }
3372
marshal_VkAttachmentDescription(VulkanStreamGuest * vkStream,const VkAttachmentDescription * forMarshaling)3373 void marshal_VkAttachmentDescription(
3374 VulkanStreamGuest* vkStream,
3375 const VkAttachmentDescription* forMarshaling)
3376 {
3377 vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
3378 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
3379 vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
3380 vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
3381 vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
3382 vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
3383 vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
3384 vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
3385 vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
3386 }
3387
unmarshal_VkAttachmentDescription(VulkanStreamGuest * vkStream,VkAttachmentDescription * forUnmarshaling)3388 void unmarshal_VkAttachmentDescription(
3389 VulkanStreamGuest* vkStream,
3390 VkAttachmentDescription* forUnmarshaling)
3391 {
3392 vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
3393 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
3394 vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
3395 vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
3396 vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
3397 vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
3398 vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
3399 vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
3400 vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
3401 }
3402
marshal_VkAttachmentReference(VulkanStreamGuest * vkStream,const VkAttachmentReference * forMarshaling)3403 void marshal_VkAttachmentReference(
3404 VulkanStreamGuest* vkStream,
3405 const VkAttachmentReference* forMarshaling)
3406 {
3407 vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
3408 vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
3409 }
3410
unmarshal_VkAttachmentReference(VulkanStreamGuest * vkStream,VkAttachmentReference * forUnmarshaling)3411 void unmarshal_VkAttachmentReference(
3412 VulkanStreamGuest* vkStream,
3413 VkAttachmentReference* forUnmarshaling)
3414 {
3415 vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
3416 vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
3417 }
3418
marshal_VkSubpassDescription(VulkanStreamGuest * vkStream,const VkSubpassDescription * forMarshaling)3419 void marshal_VkSubpassDescription(
3420 VulkanStreamGuest* vkStream,
3421 const VkSubpassDescription* forMarshaling)
3422 {
3423 vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
3424 vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
3425 vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
3426 for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
3427 {
3428 marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pInputAttachments + i));
3429 }
3430 vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
3431 for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
3432 {
3433 marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i));
3434 }
3435 // WARNING PTR CHECK
3436 uint64_t cgen_var_122 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
3437 vkStream->putBe64(cgen_var_122);
3438 if (forMarshaling->pResolveAttachments)
3439 {
3440 for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
3441 {
3442 marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pResolveAttachments + i));
3443 }
3444 }
3445 // WARNING PTR CHECK
3446 uint64_t cgen_var_123 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
3447 vkStream->putBe64(cgen_var_123);
3448 if (forMarshaling->pDepthStencilAttachment)
3449 {
3450 marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pDepthStencilAttachment));
3451 }
3452 vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
3453 vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3454 }
3455
unmarshal_VkSubpassDescription(VulkanStreamGuest * vkStream,VkSubpassDescription * forUnmarshaling)3456 void unmarshal_VkSubpassDescription(
3457 VulkanStreamGuest* vkStream,
3458 VkSubpassDescription* forUnmarshaling)
3459 {
3460 vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
3461 vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
3462 vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
3463 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
3464 {
3465 unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pInputAttachments + i));
3466 }
3467 vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
3468 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
3469 {
3470 unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pColorAttachments + i));
3471 }
3472 // WARNING PTR CHECK
3473 const VkAttachmentReference* check_pResolveAttachments;
3474 check_pResolveAttachments = (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
3475 if (forUnmarshaling->pResolveAttachments)
3476 {
3477 if (!(check_pResolveAttachments))
3478 {
3479 fprintf(stderr, "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and host\n");
3480 }
3481 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
3482 {
3483 unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pResolveAttachments + i));
3484 }
3485 }
3486 // WARNING PTR CHECK
3487 const VkAttachmentReference* check_pDepthStencilAttachment;
3488 check_pDepthStencilAttachment = (const VkAttachmentReference*)(uintptr_t)vkStream->getBe64();
3489 if (forUnmarshaling->pDepthStencilAttachment)
3490 {
3491 if (!(check_pDepthStencilAttachment))
3492 {
3493 fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest and host\n");
3494 }
3495 unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pDepthStencilAttachment));
3496 }
3497 vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
3498 vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments, forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3499 }
3500
marshal_VkSubpassDependency(VulkanStreamGuest * vkStream,const VkSubpassDependency * forMarshaling)3501 void marshal_VkSubpassDependency(
3502 VulkanStreamGuest* vkStream,
3503 const VkSubpassDependency* forMarshaling)
3504 {
3505 vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
3506 vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
3507 vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
3508 vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
3509 vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
3510 vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
3511 vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
3512 }
3513
unmarshal_VkSubpassDependency(VulkanStreamGuest * vkStream,VkSubpassDependency * forUnmarshaling)3514 void unmarshal_VkSubpassDependency(
3515 VulkanStreamGuest* vkStream,
3516 VkSubpassDependency* forUnmarshaling)
3517 {
3518 vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
3519 vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
3520 vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
3521 vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
3522 vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
3523 vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
3524 vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, sizeof(VkDependencyFlags));
3525 }
3526
marshal_VkRenderPassCreateInfo(VulkanStreamGuest * vkStream,const VkRenderPassCreateInfo * forMarshaling)3527 void marshal_VkRenderPassCreateInfo(
3528 VulkanStreamGuest* vkStream,
3529 const VkRenderPassCreateInfo* forMarshaling)
3530 {
3531 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3532 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3533 vkStream->putBe32(pNext_size);
3534 if (pNext_size)
3535 {
3536 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3537 marshal_extension_struct(vkStream, forMarshaling->pNext);
3538 }
3539 vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
3540 vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
3541 for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
3542 {
3543 marshal_VkAttachmentDescription(vkStream, (const VkAttachmentDescription*)(forMarshaling->pAttachments + i));
3544 }
3545 vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
3546 for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
3547 {
3548 marshal_VkSubpassDescription(vkStream, (const VkSubpassDescription*)(forMarshaling->pSubpasses + i));
3549 }
3550 vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
3551 for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
3552 {
3553 marshal_VkSubpassDependency(vkStream, (const VkSubpassDependency*)(forMarshaling->pDependencies + i));
3554 }
3555 }
3556
unmarshal_VkRenderPassCreateInfo(VulkanStreamGuest * vkStream,VkRenderPassCreateInfo * forUnmarshaling)3557 void unmarshal_VkRenderPassCreateInfo(
3558 VulkanStreamGuest* vkStream,
3559 VkRenderPassCreateInfo* forUnmarshaling)
3560 {
3561 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3562 size_t pNext_size;
3563 pNext_size = vkStream->getBe32();
3564 if (pNext_size)
3565 {
3566 uint64_t pNext_placeholder;
3567 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3568 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3569 }
3570 vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags, sizeof(VkRenderPassCreateFlags));
3571 vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
3572 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
3573 {
3574 unmarshal_VkAttachmentDescription(vkStream, (VkAttachmentDescription*)(forUnmarshaling->pAttachments + i));
3575 }
3576 vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
3577 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
3578 {
3579 unmarshal_VkSubpassDescription(vkStream, (VkSubpassDescription*)(forUnmarshaling->pSubpasses + i));
3580 }
3581 vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
3582 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
3583 {
3584 unmarshal_VkSubpassDependency(vkStream, (VkSubpassDependency*)(forUnmarshaling->pDependencies + i));
3585 }
3586 }
3587
marshal_VkCommandPoolCreateInfo(VulkanStreamGuest * vkStream,const VkCommandPoolCreateInfo * forMarshaling)3588 void marshal_VkCommandPoolCreateInfo(
3589 VulkanStreamGuest* vkStream,
3590 const VkCommandPoolCreateInfo* forMarshaling)
3591 {
3592 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3593 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3594 vkStream->putBe32(pNext_size);
3595 if (pNext_size)
3596 {
3597 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3598 marshal_extension_struct(vkStream, forMarshaling->pNext);
3599 }
3600 vkStream->write((VkCommandPoolCreateFlags*)&forMarshaling->flags, sizeof(VkCommandPoolCreateFlags));
3601 vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
3602 }
3603
unmarshal_VkCommandPoolCreateInfo(VulkanStreamGuest * vkStream,VkCommandPoolCreateInfo * forUnmarshaling)3604 void unmarshal_VkCommandPoolCreateInfo(
3605 VulkanStreamGuest* vkStream,
3606 VkCommandPoolCreateInfo* forUnmarshaling)
3607 {
3608 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3609 size_t pNext_size;
3610 pNext_size = vkStream->getBe32();
3611 if (pNext_size)
3612 {
3613 uint64_t pNext_placeholder;
3614 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3615 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3616 }
3617 vkStream->read((VkCommandPoolCreateFlags*)&forUnmarshaling->flags, sizeof(VkCommandPoolCreateFlags));
3618 vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
3619 }
3620
marshal_VkCommandBufferAllocateInfo(VulkanStreamGuest * vkStream,const VkCommandBufferAllocateInfo * forMarshaling)3621 void marshal_VkCommandBufferAllocateInfo(
3622 VulkanStreamGuest* vkStream,
3623 const VkCommandBufferAllocateInfo* forMarshaling)
3624 {
3625 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3626 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3627 vkStream->putBe32(pNext_size);
3628 if (pNext_size)
3629 {
3630 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3631 marshal_extension_struct(vkStream, forMarshaling->pNext);
3632 }
3633 uint64_t cgen_var_126;
3634 vkStream->handleMapping()->mapHandles_VkCommandPool_u64(&forMarshaling->commandPool, &cgen_var_126, 1);
3635 vkStream->write((uint64_t*)&cgen_var_126, 1 * 8);
3636 vkStream->write((VkCommandBufferLevel*)&forMarshaling->level, sizeof(VkCommandBufferLevel));
3637 vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
3638 }
3639
unmarshal_VkCommandBufferAllocateInfo(VulkanStreamGuest * vkStream,VkCommandBufferAllocateInfo * forUnmarshaling)3640 void unmarshal_VkCommandBufferAllocateInfo(
3641 VulkanStreamGuest* vkStream,
3642 VkCommandBufferAllocateInfo* forUnmarshaling)
3643 {
3644 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3645 size_t pNext_size;
3646 pNext_size = vkStream->getBe32();
3647 if (pNext_size)
3648 {
3649 uint64_t pNext_placeholder;
3650 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3651 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3652 }
3653 uint64_t cgen_var_127;
3654 vkStream->read((uint64_t*)&cgen_var_127, 1 * 8);
3655 vkStream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_127, (VkCommandPool*)&forUnmarshaling->commandPool, 1);
3656 vkStream->read((VkCommandBufferLevel*)&forUnmarshaling->level, sizeof(VkCommandBufferLevel));
3657 vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
3658 }
3659
marshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest * vkStream,const VkCommandBufferInheritanceInfo * forMarshaling)3660 void marshal_VkCommandBufferInheritanceInfo(
3661 VulkanStreamGuest* vkStream,
3662 const VkCommandBufferInheritanceInfo* forMarshaling)
3663 {
3664 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3665 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3666 vkStream->putBe32(pNext_size);
3667 if (pNext_size)
3668 {
3669 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3670 marshal_extension_struct(vkStream, forMarshaling->pNext);
3671 }
3672 uint64_t cgen_var_128;
3673 vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_128, 1);
3674 vkStream->write((uint64_t*)&cgen_var_128, 1 * 8);
3675 vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
3676 uint64_t cgen_var_129;
3677 vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_129, 1);
3678 vkStream->write((uint64_t*)&cgen_var_129, 1 * 8);
3679 vkStream->write((VkBool32*)&forMarshaling->occlusionQueryEnable, sizeof(VkBool32));
3680 vkStream->write((VkQueryControlFlags*)&forMarshaling->queryFlags, sizeof(VkQueryControlFlags));
3681 vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
3682 }
3683
unmarshal_VkCommandBufferInheritanceInfo(VulkanStreamGuest * vkStream,VkCommandBufferInheritanceInfo * forUnmarshaling)3684 void unmarshal_VkCommandBufferInheritanceInfo(
3685 VulkanStreamGuest* vkStream,
3686 VkCommandBufferInheritanceInfo* forUnmarshaling)
3687 {
3688 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3689 size_t pNext_size;
3690 pNext_size = vkStream->getBe32();
3691 if (pNext_size)
3692 {
3693 uint64_t pNext_placeholder;
3694 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3695 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3696 }
3697 uint64_t cgen_var_130;
3698 vkStream->read((uint64_t*)&cgen_var_130, 1 * 8);
3699 vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_130, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
3700 vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
3701 uint64_t cgen_var_131;
3702 vkStream->read((uint64_t*)&cgen_var_131, 1 * 8);
3703 vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_131, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
3704 vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryEnable, sizeof(VkBool32));
3705 vkStream->read((VkQueryControlFlags*)&forUnmarshaling->queryFlags, sizeof(VkQueryControlFlags));
3706 vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
3707 }
3708
marshal_VkCommandBufferBeginInfo(VulkanStreamGuest * vkStream,const VkCommandBufferBeginInfo * forMarshaling)3709 void marshal_VkCommandBufferBeginInfo(
3710 VulkanStreamGuest* vkStream,
3711 const VkCommandBufferBeginInfo* forMarshaling)
3712 {
3713 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3714 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3715 vkStream->putBe32(pNext_size);
3716 if (pNext_size)
3717 {
3718 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3719 marshal_extension_struct(vkStream, forMarshaling->pNext);
3720 }
3721 vkStream->write((VkCommandBufferUsageFlags*)&forMarshaling->flags, sizeof(VkCommandBufferUsageFlags));
3722 // WARNING PTR CHECK
3723 uint64_t cgen_var_132 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
3724 vkStream->putBe64(cgen_var_132);
3725 if (forMarshaling->pInheritanceInfo)
3726 {
3727 marshal_VkCommandBufferInheritanceInfo(vkStream, (const VkCommandBufferInheritanceInfo*)(forMarshaling->pInheritanceInfo));
3728 }
3729 }
3730
unmarshal_VkCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkCommandBufferBeginInfo * forUnmarshaling)3731 void unmarshal_VkCommandBufferBeginInfo(
3732 VulkanStreamGuest* vkStream,
3733 VkCommandBufferBeginInfo* forUnmarshaling)
3734 {
3735 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3736 size_t pNext_size;
3737 pNext_size = vkStream->getBe32();
3738 if (pNext_size)
3739 {
3740 uint64_t pNext_placeholder;
3741 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
3742 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
3743 }
3744 vkStream->read((VkCommandBufferUsageFlags*)&forUnmarshaling->flags, sizeof(VkCommandBufferUsageFlags));
3745 // WARNING PTR CHECK
3746 const VkCommandBufferInheritanceInfo* check_pInheritanceInfo;
3747 check_pInheritanceInfo = (const VkCommandBufferInheritanceInfo*)(uintptr_t)vkStream->getBe64();
3748 if (forUnmarshaling->pInheritanceInfo)
3749 {
3750 if (!(check_pInheritanceInfo))
3751 {
3752 fprintf(stderr, "fatal: forUnmarshaling->pInheritanceInfo inconsistent between guest and host\n");
3753 }
3754 unmarshal_VkCommandBufferInheritanceInfo(vkStream, (VkCommandBufferInheritanceInfo*)(forUnmarshaling->pInheritanceInfo));
3755 }
3756 }
3757
marshal_VkBufferCopy(VulkanStreamGuest * vkStream,const VkBufferCopy * forMarshaling)3758 void marshal_VkBufferCopy(
3759 VulkanStreamGuest* vkStream,
3760 const VkBufferCopy* forMarshaling)
3761 {
3762 vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
3763 vkStream->write((VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
3764 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
3765 }
3766
unmarshal_VkBufferCopy(VulkanStreamGuest * vkStream,VkBufferCopy * forUnmarshaling)3767 void unmarshal_VkBufferCopy(
3768 VulkanStreamGuest* vkStream,
3769 VkBufferCopy* forUnmarshaling)
3770 {
3771 vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
3772 vkStream->read((VkDeviceSize*)&forUnmarshaling->dstOffset, sizeof(VkDeviceSize));
3773 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
3774 }
3775
marshal_VkImageSubresourceLayers(VulkanStreamGuest * vkStream,const VkImageSubresourceLayers * forMarshaling)3776 void marshal_VkImageSubresourceLayers(
3777 VulkanStreamGuest* vkStream,
3778 const VkImageSubresourceLayers* forMarshaling)
3779 {
3780 vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
3781 vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
3782 vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
3783 vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
3784 }
3785
unmarshal_VkImageSubresourceLayers(VulkanStreamGuest * vkStream,VkImageSubresourceLayers * forUnmarshaling)3786 void unmarshal_VkImageSubresourceLayers(
3787 VulkanStreamGuest* vkStream,
3788 VkImageSubresourceLayers* forUnmarshaling)
3789 {
3790 vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
3791 vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
3792 vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
3793 vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
3794 }
3795
marshal_VkImageCopy(VulkanStreamGuest * vkStream,const VkImageCopy * forMarshaling)3796 void marshal_VkImageCopy(
3797 VulkanStreamGuest* vkStream,
3798 const VkImageCopy* forMarshaling)
3799 {
3800 marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
3801 marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
3802 marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
3803 marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
3804 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
3805 }
3806
unmarshal_VkImageCopy(VulkanStreamGuest * vkStream,VkImageCopy * forUnmarshaling)3807 void unmarshal_VkImageCopy(
3808 VulkanStreamGuest* vkStream,
3809 VkImageCopy* forUnmarshaling)
3810 {
3811 unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
3812 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
3813 unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
3814 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
3815 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
3816 }
3817
marshal_VkImageBlit(VulkanStreamGuest * vkStream,const VkImageBlit * forMarshaling)3818 void marshal_VkImageBlit(
3819 VulkanStreamGuest* vkStream,
3820 const VkImageBlit* forMarshaling)
3821 {
3822 marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
3823 for (uint32_t i = 0; i < (uint32_t)2; ++i)
3824 {
3825 marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i));
3826 }
3827 marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
3828 for (uint32_t i = 0; i < (uint32_t)2; ++i)
3829 {
3830 marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i));
3831 }
3832 }
3833
unmarshal_VkImageBlit(VulkanStreamGuest * vkStream,VkImageBlit * forUnmarshaling)3834 void unmarshal_VkImageBlit(
3835 VulkanStreamGuest* vkStream,
3836 VkImageBlit* forUnmarshaling)
3837 {
3838 unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
3839 for (uint32_t i = 0; i < (uint32_t)2; ++i)
3840 {
3841 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
3842 }
3843 unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
3844 for (uint32_t i = 0; i < (uint32_t)2; ++i)
3845 {
3846 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
3847 }
3848 }
3849
marshal_VkBufferImageCopy(VulkanStreamGuest * vkStream,const VkBufferImageCopy * forMarshaling)3850 void marshal_VkBufferImageCopy(
3851 VulkanStreamGuest* vkStream,
3852 const VkBufferImageCopy* forMarshaling)
3853 {
3854 vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
3855 vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
3856 vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
3857 marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
3858 marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->imageOffset));
3859 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->imageExtent));
3860 }
3861
unmarshal_VkBufferImageCopy(VulkanStreamGuest * vkStream,VkBufferImageCopy * forUnmarshaling)3862 void unmarshal_VkBufferImageCopy(
3863 VulkanStreamGuest* vkStream,
3864 VkBufferImageCopy* forUnmarshaling)
3865 {
3866 vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
3867 vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
3868 vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
3869 unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
3870 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->imageOffset));
3871 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->imageExtent));
3872 }
3873
marshal_VkClearColorValue(VulkanStreamGuest * vkStream,const VkClearColorValue * forMarshaling)3874 void marshal_VkClearColorValue(
3875 VulkanStreamGuest* vkStream,
3876 const VkClearColorValue* forMarshaling)
3877 {
3878 vkStream->write((float*)forMarshaling->float32, 4 * sizeof(float));
3879 }
3880
unmarshal_VkClearColorValue(VulkanStreamGuest * vkStream,VkClearColorValue * forUnmarshaling)3881 void unmarshal_VkClearColorValue(
3882 VulkanStreamGuest* vkStream,
3883 VkClearColorValue* forUnmarshaling)
3884 {
3885 vkStream->read((float*)forUnmarshaling->float32, 4 * sizeof(float));
3886 }
3887
marshal_VkClearDepthStencilValue(VulkanStreamGuest * vkStream,const VkClearDepthStencilValue * forMarshaling)3888 void marshal_VkClearDepthStencilValue(
3889 VulkanStreamGuest* vkStream,
3890 const VkClearDepthStencilValue* forMarshaling)
3891 {
3892 vkStream->write((float*)&forMarshaling->depth, sizeof(float));
3893 vkStream->write((uint32_t*)&forMarshaling->stencil, sizeof(uint32_t));
3894 }
3895
unmarshal_VkClearDepthStencilValue(VulkanStreamGuest * vkStream,VkClearDepthStencilValue * forUnmarshaling)3896 void unmarshal_VkClearDepthStencilValue(
3897 VulkanStreamGuest* vkStream,
3898 VkClearDepthStencilValue* forUnmarshaling)
3899 {
3900 vkStream->read((float*)&forUnmarshaling->depth, sizeof(float));
3901 vkStream->read((uint32_t*)&forUnmarshaling->stencil, sizeof(uint32_t));
3902 }
3903
marshal_VkClearValue(VulkanStreamGuest * vkStream,const VkClearValue * forMarshaling)3904 void marshal_VkClearValue(
3905 VulkanStreamGuest* vkStream,
3906 const VkClearValue* forMarshaling)
3907 {
3908 marshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forMarshaling->color));
3909 }
3910
unmarshal_VkClearValue(VulkanStreamGuest * vkStream,VkClearValue * forUnmarshaling)3911 void unmarshal_VkClearValue(
3912 VulkanStreamGuest* vkStream,
3913 VkClearValue* forUnmarshaling)
3914 {
3915 unmarshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forUnmarshaling->color));
3916 }
3917
marshal_VkClearAttachment(VulkanStreamGuest * vkStream,const VkClearAttachment * forMarshaling)3918 void marshal_VkClearAttachment(
3919 VulkanStreamGuest* vkStream,
3920 const VkClearAttachment* forMarshaling)
3921 {
3922 vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
3923 vkStream->write((uint32_t*)&forMarshaling->colorAttachment, sizeof(uint32_t));
3924 marshal_VkClearValue(vkStream, (VkClearValue*)(&forMarshaling->clearValue));
3925 }
3926
unmarshal_VkClearAttachment(VulkanStreamGuest * vkStream,VkClearAttachment * forUnmarshaling)3927 void unmarshal_VkClearAttachment(
3928 VulkanStreamGuest* vkStream,
3929 VkClearAttachment* forUnmarshaling)
3930 {
3931 vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
3932 vkStream->read((uint32_t*)&forUnmarshaling->colorAttachment, sizeof(uint32_t));
3933 unmarshal_VkClearValue(vkStream, (VkClearValue*)(&forUnmarshaling->clearValue));
3934 }
3935
marshal_VkClearRect(VulkanStreamGuest * vkStream,const VkClearRect * forMarshaling)3936 void marshal_VkClearRect(
3937 VulkanStreamGuest* vkStream,
3938 const VkClearRect* forMarshaling)
3939 {
3940 marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->rect));
3941 vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
3942 vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
3943 }
3944
unmarshal_VkClearRect(VulkanStreamGuest * vkStream,VkClearRect * forUnmarshaling)3945 void unmarshal_VkClearRect(
3946 VulkanStreamGuest* vkStream,
3947 VkClearRect* forUnmarshaling)
3948 {
3949 unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->rect));
3950 vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
3951 vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
3952 }
3953
marshal_VkImageResolve(VulkanStreamGuest * vkStream,const VkImageResolve * forMarshaling)3954 void marshal_VkImageResolve(
3955 VulkanStreamGuest* vkStream,
3956 const VkImageResolve* forMarshaling)
3957 {
3958 marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
3959 marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
3960 marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
3961 marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
3962 marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
3963 }
3964
unmarshal_VkImageResolve(VulkanStreamGuest * vkStream,VkImageResolve * forUnmarshaling)3965 void unmarshal_VkImageResolve(
3966 VulkanStreamGuest* vkStream,
3967 VkImageResolve* forUnmarshaling)
3968 {
3969 unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
3970 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
3971 unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
3972 unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
3973 unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
3974 }
3975
marshal_VkMemoryBarrier(VulkanStreamGuest * vkStream,const VkMemoryBarrier * forMarshaling)3976 void marshal_VkMemoryBarrier(
3977 VulkanStreamGuest* vkStream,
3978 const VkMemoryBarrier* forMarshaling)
3979 {
3980 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
3981 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
3982 vkStream->putBe32(pNext_size);
3983 if (pNext_size)
3984 {
3985 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
3986 marshal_extension_struct(vkStream, forMarshaling->pNext);
3987 }
3988 vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
3989 vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
3990 }
3991
unmarshal_VkMemoryBarrier(VulkanStreamGuest * vkStream,VkMemoryBarrier * forUnmarshaling)3992 void unmarshal_VkMemoryBarrier(
3993 VulkanStreamGuest* vkStream,
3994 VkMemoryBarrier* forUnmarshaling)
3995 {
3996 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
3997 size_t pNext_size;
3998 pNext_size = vkStream->getBe32();
3999 if (pNext_size)
4000 {
4001 uint64_t pNext_placeholder;
4002 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4003 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4004 }
4005 vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
4006 vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
4007 }
4008
marshal_VkBufferMemoryBarrier(VulkanStreamGuest * vkStream,const VkBufferMemoryBarrier * forMarshaling)4009 void marshal_VkBufferMemoryBarrier(
4010 VulkanStreamGuest* vkStream,
4011 const VkBufferMemoryBarrier* forMarshaling)
4012 {
4013 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4014 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4015 vkStream->putBe32(pNext_size);
4016 if (pNext_size)
4017 {
4018 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4019 marshal_extension_struct(vkStream, forMarshaling->pNext);
4020 }
4021 vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
4022 vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
4023 vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4024 vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4025 uint64_t cgen_var_134;
4026 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_134, 1);
4027 vkStream->write((uint64_t*)&cgen_var_134, 1 * 8);
4028 vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
4029 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
4030 }
4031
unmarshal_VkBufferMemoryBarrier(VulkanStreamGuest * vkStream,VkBufferMemoryBarrier * forUnmarshaling)4032 void unmarshal_VkBufferMemoryBarrier(
4033 VulkanStreamGuest* vkStream,
4034 VkBufferMemoryBarrier* forUnmarshaling)
4035 {
4036 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4037 size_t pNext_size;
4038 pNext_size = vkStream->getBe32();
4039 if (pNext_size)
4040 {
4041 uint64_t pNext_placeholder;
4042 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4043 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4044 }
4045 vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
4046 vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
4047 vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4048 vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4049 uint64_t cgen_var_135;
4050 vkStream->read((uint64_t*)&cgen_var_135, 1 * 8);
4051 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_135, (VkBuffer*)&forUnmarshaling->buffer, 1);
4052 vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
4053 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
4054 }
4055
marshal_VkImageMemoryBarrier(VulkanStreamGuest * vkStream,const VkImageMemoryBarrier * forMarshaling)4056 void marshal_VkImageMemoryBarrier(
4057 VulkanStreamGuest* vkStream,
4058 const VkImageMemoryBarrier* forMarshaling)
4059 {
4060 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4061 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4062 vkStream->putBe32(pNext_size);
4063 if (pNext_size)
4064 {
4065 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4066 marshal_extension_struct(vkStream, forMarshaling->pNext);
4067 }
4068 vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
4069 vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
4070 vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
4071 vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
4072 vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4073 vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4074 uint64_t cgen_var_136;
4075 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_136, 1);
4076 vkStream->write((uint64_t*)&cgen_var_136, 1 * 8);
4077 marshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
4078 }
4079
unmarshal_VkImageMemoryBarrier(VulkanStreamGuest * vkStream,VkImageMemoryBarrier * forUnmarshaling)4080 void unmarshal_VkImageMemoryBarrier(
4081 VulkanStreamGuest* vkStream,
4082 VkImageMemoryBarrier* forUnmarshaling)
4083 {
4084 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4085 size_t pNext_size;
4086 pNext_size = vkStream->getBe32();
4087 if (pNext_size)
4088 {
4089 uint64_t pNext_placeholder;
4090 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4091 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4092 }
4093 vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
4094 vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
4095 vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
4096 vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
4097 vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
4098 vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
4099 uint64_t cgen_var_137;
4100 vkStream->read((uint64_t*)&cgen_var_137, 1 * 8);
4101 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_137, (VkImage*)&forUnmarshaling->image, 1);
4102 unmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
4103 }
4104
marshal_VkRenderPassBeginInfo(VulkanStreamGuest * vkStream,const VkRenderPassBeginInfo * forMarshaling)4105 void marshal_VkRenderPassBeginInfo(
4106 VulkanStreamGuest* vkStream,
4107 const VkRenderPassBeginInfo* forMarshaling)
4108 {
4109 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4110 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4111 vkStream->putBe32(pNext_size);
4112 if (pNext_size)
4113 {
4114 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4115 marshal_extension_struct(vkStream, forMarshaling->pNext);
4116 }
4117 uint64_t cgen_var_138;
4118 vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_138, 1);
4119 vkStream->write((uint64_t*)&cgen_var_138, 1 * 8);
4120 uint64_t cgen_var_139;
4121 vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_139, 1);
4122 vkStream->write((uint64_t*)&cgen_var_139, 1 * 8);
4123 marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->renderArea));
4124 vkStream->write((uint32_t*)&forMarshaling->clearValueCount, sizeof(uint32_t));
4125 // WARNING PTR CHECK
4126 uint64_t cgen_var_140 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
4127 vkStream->putBe64(cgen_var_140);
4128 if (forMarshaling->pClearValues)
4129 {
4130 for (uint32_t i = 0; i < (uint32_t)forMarshaling->clearValueCount; ++i)
4131 {
4132 marshal_VkClearValue(vkStream, (const VkClearValue*)(forMarshaling->pClearValues + i));
4133 }
4134 }
4135 }
4136
unmarshal_VkRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkRenderPassBeginInfo * forUnmarshaling)4137 void unmarshal_VkRenderPassBeginInfo(
4138 VulkanStreamGuest* vkStream,
4139 VkRenderPassBeginInfo* forUnmarshaling)
4140 {
4141 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4142 size_t pNext_size;
4143 pNext_size = vkStream->getBe32();
4144 if (pNext_size)
4145 {
4146 uint64_t pNext_placeholder;
4147 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4148 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4149 }
4150 uint64_t cgen_var_141;
4151 vkStream->read((uint64_t*)&cgen_var_141, 1 * 8);
4152 vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_141, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
4153 uint64_t cgen_var_142;
4154 vkStream->read((uint64_t*)&cgen_var_142, 1 * 8);
4155 vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_142, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
4156 unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->renderArea));
4157 vkStream->read((uint32_t*)&forUnmarshaling->clearValueCount, sizeof(uint32_t));
4158 // WARNING PTR CHECK
4159 const VkClearValue* check_pClearValues;
4160 check_pClearValues = (const VkClearValue*)(uintptr_t)vkStream->getBe64();
4161 if (forUnmarshaling->pClearValues)
4162 {
4163 if (!(check_pClearValues))
4164 {
4165 fprintf(stderr, "fatal: forUnmarshaling->pClearValues inconsistent between guest and host\n");
4166 }
4167 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->clearValueCount; ++i)
4168 {
4169 unmarshal_VkClearValue(vkStream, (VkClearValue*)(forUnmarshaling->pClearValues + i));
4170 }
4171 }
4172 }
4173
marshal_VkDispatchIndirectCommand(VulkanStreamGuest * vkStream,const VkDispatchIndirectCommand * forMarshaling)4174 void marshal_VkDispatchIndirectCommand(
4175 VulkanStreamGuest* vkStream,
4176 const VkDispatchIndirectCommand* forMarshaling)
4177 {
4178 vkStream->write((uint32_t*)&forMarshaling->x, sizeof(uint32_t));
4179 vkStream->write((uint32_t*)&forMarshaling->y, sizeof(uint32_t));
4180 vkStream->write((uint32_t*)&forMarshaling->z, sizeof(uint32_t));
4181 }
4182
unmarshal_VkDispatchIndirectCommand(VulkanStreamGuest * vkStream,VkDispatchIndirectCommand * forUnmarshaling)4183 void unmarshal_VkDispatchIndirectCommand(
4184 VulkanStreamGuest* vkStream,
4185 VkDispatchIndirectCommand* forUnmarshaling)
4186 {
4187 vkStream->read((uint32_t*)&forUnmarshaling->x, sizeof(uint32_t));
4188 vkStream->read((uint32_t*)&forUnmarshaling->y, sizeof(uint32_t));
4189 vkStream->read((uint32_t*)&forUnmarshaling->z, sizeof(uint32_t));
4190 }
4191
marshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest * vkStream,const VkDrawIndexedIndirectCommand * forMarshaling)4192 void marshal_VkDrawIndexedIndirectCommand(
4193 VulkanStreamGuest* vkStream,
4194 const VkDrawIndexedIndirectCommand* forMarshaling)
4195 {
4196 vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
4197 vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
4198 vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
4199 vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
4200 vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
4201 }
4202
unmarshal_VkDrawIndexedIndirectCommand(VulkanStreamGuest * vkStream,VkDrawIndexedIndirectCommand * forUnmarshaling)4203 void unmarshal_VkDrawIndexedIndirectCommand(
4204 VulkanStreamGuest* vkStream,
4205 VkDrawIndexedIndirectCommand* forUnmarshaling)
4206 {
4207 vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
4208 vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
4209 vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
4210 vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
4211 vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
4212 }
4213
marshal_VkDrawIndirectCommand(VulkanStreamGuest * vkStream,const VkDrawIndirectCommand * forMarshaling)4214 void marshal_VkDrawIndirectCommand(
4215 VulkanStreamGuest* vkStream,
4216 const VkDrawIndirectCommand* forMarshaling)
4217 {
4218 vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
4219 vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
4220 vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
4221 vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
4222 }
4223
unmarshal_VkDrawIndirectCommand(VulkanStreamGuest * vkStream,VkDrawIndirectCommand * forUnmarshaling)4224 void unmarshal_VkDrawIndirectCommand(
4225 VulkanStreamGuest* vkStream,
4226 VkDrawIndirectCommand* forUnmarshaling)
4227 {
4228 vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
4229 vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
4230 vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
4231 vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
4232 }
4233
marshal_VkBaseOutStructure(VulkanStreamGuest * vkStream,const VkBaseOutStructure * forMarshaling)4234 void marshal_VkBaseOutStructure(
4235 VulkanStreamGuest* vkStream,
4236 const VkBaseOutStructure* forMarshaling)
4237 {
4238 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4239 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4240 vkStream->putBe32(pNext_size);
4241 if (pNext_size)
4242 {
4243 vkStream->write((VkBaseOutStructure*)forMarshaling->pNext, sizeof(VkStructureType));
4244 marshal_extension_struct(vkStream, forMarshaling->pNext);
4245 }
4246 }
4247
unmarshal_VkBaseOutStructure(VulkanStreamGuest * vkStream,VkBaseOutStructure * forUnmarshaling)4248 void unmarshal_VkBaseOutStructure(
4249 VulkanStreamGuest* vkStream,
4250 VkBaseOutStructure* forUnmarshaling)
4251 {
4252 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4253 size_t pNext_size;
4254 pNext_size = vkStream->getBe32();
4255 if (pNext_size)
4256 {
4257 uint64_t pNext_placeholder;
4258 vkStream->read((VkBaseOutStructure*)(&pNext_placeholder), sizeof(VkStructureType));
4259 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4260 }
4261 }
4262
marshal_VkBaseInStructure(VulkanStreamGuest * vkStream,const VkBaseInStructure * forMarshaling)4263 void marshal_VkBaseInStructure(
4264 VulkanStreamGuest* vkStream,
4265 const VkBaseInStructure* forMarshaling)
4266 {
4267 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4268 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4269 vkStream->putBe32(pNext_size);
4270 if (pNext_size)
4271 {
4272 vkStream->write((const VkBaseInStructure*)forMarshaling->pNext, sizeof(VkStructureType));
4273 marshal_extension_struct(vkStream, forMarshaling->pNext);
4274 }
4275 }
4276
unmarshal_VkBaseInStructure(VulkanStreamGuest * vkStream,VkBaseInStructure * forUnmarshaling)4277 void unmarshal_VkBaseInStructure(
4278 VulkanStreamGuest* vkStream,
4279 VkBaseInStructure* forUnmarshaling)
4280 {
4281 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4282 size_t pNext_size;
4283 pNext_size = vkStream->getBe32();
4284 if (pNext_size)
4285 {
4286 uint64_t pNext_placeholder;
4287 vkStream->read((VkBaseInStructure*)(&pNext_placeholder), sizeof(VkStructureType));
4288 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4289 }
4290 }
4291
4292 #endif
4293 #ifdef VK_VERSION_1_1
marshal_VkPhysicalDeviceSubgroupProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSubgroupProperties * forMarshaling)4294 void marshal_VkPhysicalDeviceSubgroupProperties(
4295 VulkanStreamGuest* vkStream,
4296 const VkPhysicalDeviceSubgroupProperties* forMarshaling)
4297 {
4298 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4299 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4300 vkStream->putBe32(pNext_size);
4301 if (pNext_size)
4302 {
4303 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4304 marshal_extension_struct(vkStream, forMarshaling->pNext);
4305 }
4306 vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
4307 vkStream->write((VkShaderStageFlags*)&forMarshaling->supportedStages, sizeof(VkShaderStageFlags));
4308 vkStream->write((VkSubgroupFeatureFlags*)&forMarshaling->supportedOperations, sizeof(VkSubgroupFeatureFlags));
4309 vkStream->write((VkBool32*)&forMarshaling->quadOperationsInAllStages, sizeof(VkBool32));
4310 }
4311
unmarshal_VkPhysicalDeviceSubgroupProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceSubgroupProperties * forUnmarshaling)4312 void unmarshal_VkPhysicalDeviceSubgroupProperties(
4313 VulkanStreamGuest* vkStream,
4314 VkPhysicalDeviceSubgroupProperties* forUnmarshaling)
4315 {
4316 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4317 size_t pNext_size;
4318 pNext_size = vkStream->getBe32();
4319 if (pNext_size)
4320 {
4321 uint64_t pNext_placeholder;
4322 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4323 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4324 }
4325 vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
4326 vkStream->read((VkShaderStageFlags*)&forUnmarshaling->supportedStages, sizeof(VkShaderStageFlags));
4327 vkStream->read((VkSubgroupFeatureFlags*)&forUnmarshaling->supportedOperations, sizeof(VkSubgroupFeatureFlags));
4328 vkStream->read((VkBool32*)&forUnmarshaling->quadOperationsInAllStages, sizeof(VkBool32));
4329 }
4330
marshal_VkBindBufferMemoryInfo(VulkanStreamGuest * vkStream,const VkBindBufferMemoryInfo * forMarshaling)4331 void marshal_VkBindBufferMemoryInfo(
4332 VulkanStreamGuest* vkStream,
4333 const VkBindBufferMemoryInfo* forMarshaling)
4334 {
4335 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4336 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4337 vkStream->putBe32(pNext_size);
4338 if (pNext_size)
4339 {
4340 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4341 marshal_extension_struct(vkStream, forMarshaling->pNext);
4342 }
4343 uint64_t cgen_var_144;
4344 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_144, 1);
4345 vkStream->write((uint64_t*)&cgen_var_144, 1 * 8);
4346 uint64_t cgen_var_145;
4347 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_145, 1);
4348 vkStream->write((uint64_t*)&cgen_var_145, 1 * 8);
4349 vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
4350 }
4351
unmarshal_VkBindBufferMemoryInfo(VulkanStreamGuest * vkStream,VkBindBufferMemoryInfo * forUnmarshaling)4352 void unmarshal_VkBindBufferMemoryInfo(
4353 VulkanStreamGuest* vkStream,
4354 VkBindBufferMemoryInfo* forUnmarshaling)
4355 {
4356 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4357 size_t pNext_size;
4358 pNext_size = vkStream->getBe32();
4359 if (pNext_size)
4360 {
4361 uint64_t pNext_placeholder;
4362 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4363 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4364 }
4365 uint64_t cgen_var_146;
4366 vkStream->read((uint64_t*)&cgen_var_146, 1 * 8);
4367 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_146, (VkBuffer*)&forUnmarshaling->buffer, 1);
4368 uint64_t cgen_var_147;
4369 vkStream->read((uint64_t*)&cgen_var_147, 1 * 8);
4370 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_147, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
4371 vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
4372 }
4373
marshal_VkBindImageMemoryInfo(VulkanStreamGuest * vkStream,const VkBindImageMemoryInfo * forMarshaling)4374 void marshal_VkBindImageMemoryInfo(
4375 VulkanStreamGuest* vkStream,
4376 const VkBindImageMemoryInfo* forMarshaling)
4377 {
4378 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4379 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4380 vkStream->putBe32(pNext_size);
4381 if (pNext_size)
4382 {
4383 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4384 marshal_extension_struct(vkStream, forMarshaling->pNext);
4385 }
4386 uint64_t cgen_var_148;
4387 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_148, 1);
4388 vkStream->write((uint64_t*)&cgen_var_148, 1 * 8);
4389 uint64_t cgen_var_149;
4390 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_149, 1);
4391 vkStream->write((uint64_t*)&cgen_var_149, 1 * 8);
4392 vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
4393 }
4394
unmarshal_VkBindImageMemoryInfo(VulkanStreamGuest * vkStream,VkBindImageMemoryInfo * forUnmarshaling)4395 void unmarshal_VkBindImageMemoryInfo(
4396 VulkanStreamGuest* vkStream,
4397 VkBindImageMemoryInfo* forUnmarshaling)
4398 {
4399 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4400 size_t pNext_size;
4401 pNext_size = vkStream->getBe32();
4402 if (pNext_size)
4403 {
4404 uint64_t pNext_placeholder;
4405 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4406 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4407 }
4408 uint64_t cgen_var_150;
4409 vkStream->read((uint64_t*)&cgen_var_150, 1 * 8);
4410 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_150, (VkImage*)&forUnmarshaling->image, 1);
4411 uint64_t cgen_var_151;
4412 vkStream->read((uint64_t*)&cgen_var_151, 1 * 8);
4413 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_151, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
4414 vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
4415 }
4416
marshal_VkPhysicalDevice16BitStorageFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDevice16BitStorageFeatures * forMarshaling)4417 void marshal_VkPhysicalDevice16BitStorageFeatures(
4418 VulkanStreamGuest* vkStream,
4419 const VkPhysicalDevice16BitStorageFeatures* forMarshaling)
4420 {
4421 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4422 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4423 vkStream->putBe32(pNext_size);
4424 if (pNext_size)
4425 {
4426 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4427 marshal_extension_struct(vkStream, forMarshaling->pNext);
4428 }
4429 vkStream->write((VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
4430 vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
4431 vkStream->write((VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
4432 vkStream->write((VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
4433 }
4434
unmarshal_VkPhysicalDevice16BitStorageFeatures(VulkanStreamGuest * vkStream,VkPhysicalDevice16BitStorageFeatures * forUnmarshaling)4435 void unmarshal_VkPhysicalDevice16BitStorageFeatures(
4436 VulkanStreamGuest* vkStream,
4437 VkPhysicalDevice16BitStorageFeatures* forUnmarshaling)
4438 {
4439 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4440 size_t pNext_size;
4441 pNext_size = vkStream->getBe32();
4442 if (pNext_size)
4443 {
4444 uint64_t pNext_placeholder;
4445 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4446 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4447 }
4448 vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
4449 vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
4450 vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant16, sizeof(VkBool32));
4451 vkStream->read((VkBool32*)&forUnmarshaling->storageInputOutput16, sizeof(VkBool32));
4452 }
4453
marshal_VkMemoryDedicatedRequirements(VulkanStreamGuest * vkStream,const VkMemoryDedicatedRequirements * forMarshaling)4454 void marshal_VkMemoryDedicatedRequirements(
4455 VulkanStreamGuest* vkStream,
4456 const VkMemoryDedicatedRequirements* forMarshaling)
4457 {
4458 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4459 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4460 vkStream->putBe32(pNext_size);
4461 if (pNext_size)
4462 {
4463 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4464 marshal_extension_struct(vkStream, forMarshaling->pNext);
4465 }
4466 vkStream->write((VkBool32*)&forMarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
4467 vkStream->write((VkBool32*)&forMarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
4468 }
4469
unmarshal_VkMemoryDedicatedRequirements(VulkanStreamGuest * vkStream,VkMemoryDedicatedRequirements * forUnmarshaling)4470 void unmarshal_VkMemoryDedicatedRequirements(
4471 VulkanStreamGuest* vkStream,
4472 VkMemoryDedicatedRequirements* forUnmarshaling)
4473 {
4474 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4475 size_t pNext_size;
4476 pNext_size = vkStream->getBe32();
4477 if (pNext_size)
4478 {
4479 uint64_t pNext_placeholder;
4480 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4481 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4482 }
4483 vkStream->read((VkBool32*)&forUnmarshaling->prefersDedicatedAllocation, sizeof(VkBool32));
4484 vkStream->read((VkBool32*)&forUnmarshaling->requiresDedicatedAllocation, sizeof(VkBool32));
4485 }
4486
marshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest * vkStream,const VkMemoryDedicatedAllocateInfo * forMarshaling)4487 void marshal_VkMemoryDedicatedAllocateInfo(
4488 VulkanStreamGuest* vkStream,
4489 const VkMemoryDedicatedAllocateInfo* forMarshaling)
4490 {
4491 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4492 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4493 vkStream->putBe32(pNext_size);
4494 if (pNext_size)
4495 {
4496 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4497 marshal_extension_struct(vkStream, forMarshaling->pNext);
4498 }
4499 uint64_t cgen_var_152;
4500 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_152, 1);
4501 vkStream->write((uint64_t*)&cgen_var_152, 1 * 8);
4502 uint64_t cgen_var_153;
4503 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_153, 1);
4504 vkStream->write((uint64_t*)&cgen_var_153, 1 * 8);
4505 }
4506
unmarshal_VkMemoryDedicatedAllocateInfo(VulkanStreamGuest * vkStream,VkMemoryDedicatedAllocateInfo * forUnmarshaling)4507 void unmarshal_VkMemoryDedicatedAllocateInfo(
4508 VulkanStreamGuest* vkStream,
4509 VkMemoryDedicatedAllocateInfo* forUnmarshaling)
4510 {
4511 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4512 size_t pNext_size;
4513 pNext_size = vkStream->getBe32();
4514 if (pNext_size)
4515 {
4516 uint64_t pNext_placeholder;
4517 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4518 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4519 }
4520 uint64_t cgen_var_154;
4521 vkStream->read((uint64_t*)&cgen_var_154, 1 * 8);
4522 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_154, (VkImage*)&forUnmarshaling->image, 1);
4523 uint64_t cgen_var_155;
4524 vkStream->read((uint64_t*)&cgen_var_155, 1 * 8);
4525 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_155, (VkBuffer*)&forUnmarshaling->buffer, 1);
4526 }
4527
marshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest * vkStream,const VkMemoryAllocateFlagsInfo * forMarshaling)4528 void marshal_VkMemoryAllocateFlagsInfo(
4529 VulkanStreamGuest* vkStream,
4530 const VkMemoryAllocateFlagsInfo* forMarshaling)
4531 {
4532 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4533 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4534 vkStream->putBe32(pNext_size);
4535 if (pNext_size)
4536 {
4537 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4538 marshal_extension_struct(vkStream, forMarshaling->pNext);
4539 }
4540 vkStream->write((VkMemoryAllocateFlags*)&forMarshaling->flags, sizeof(VkMemoryAllocateFlags));
4541 vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4542 }
4543
unmarshal_VkMemoryAllocateFlagsInfo(VulkanStreamGuest * vkStream,VkMemoryAllocateFlagsInfo * forUnmarshaling)4544 void unmarshal_VkMemoryAllocateFlagsInfo(
4545 VulkanStreamGuest* vkStream,
4546 VkMemoryAllocateFlagsInfo* forUnmarshaling)
4547 {
4548 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4549 size_t pNext_size;
4550 pNext_size = vkStream->getBe32();
4551 if (pNext_size)
4552 {
4553 uint64_t pNext_placeholder;
4554 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4555 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4556 }
4557 vkStream->read((VkMemoryAllocateFlags*)&forUnmarshaling->flags, sizeof(VkMemoryAllocateFlags));
4558 vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4559 }
4560
marshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupRenderPassBeginInfo * forMarshaling)4561 void marshal_VkDeviceGroupRenderPassBeginInfo(
4562 VulkanStreamGuest* vkStream,
4563 const VkDeviceGroupRenderPassBeginInfo* forMarshaling)
4564 {
4565 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4566 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4567 vkStream->putBe32(pNext_size);
4568 if (pNext_size)
4569 {
4570 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4571 marshal_extension_struct(vkStream, forMarshaling->pNext);
4572 }
4573 vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4574 vkStream->write((uint32_t*)&forMarshaling->deviceRenderAreaCount, sizeof(uint32_t));
4575 for (uint32_t i = 0; i < (uint32_t)forMarshaling->deviceRenderAreaCount; ++i)
4576 {
4577 marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDeviceRenderAreas + i));
4578 }
4579 }
4580
unmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStreamGuest * vkStream,VkDeviceGroupRenderPassBeginInfo * forUnmarshaling)4581 void unmarshal_VkDeviceGroupRenderPassBeginInfo(
4582 VulkanStreamGuest* vkStream,
4583 VkDeviceGroupRenderPassBeginInfo* forUnmarshaling)
4584 {
4585 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4586 size_t pNext_size;
4587 pNext_size = vkStream->getBe32();
4588 if (pNext_size)
4589 {
4590 uint64_t pNext_placeholder;
4591 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4592 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4593 }
4594 vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4595 vkStream->read((uint32_t*)&forUnmarshaling->deviceRenderAreaCount, sizeof(uint32_t));
4596 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->deviceRenderAreaCount; ++i)
4597 {
4598 unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDeviceRenderAreas + i));
4599 }
4600 }
4601
marshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupCommandBufferBeginInfo * forMarshaling)4602 void marshal_VkDeviceGroupCommandBufferBeginInfo(
4603 VulkanStreamGuest* vkStream,
4604 const VkDeviceGroupCommandBufferBeginInfo* forMarshaling)
4605 {
4606 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4607 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4608 vkStream->putBe32(pNext_size);
4609 if (pNext_size)
4610 {
4611 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4612 marshal_extension_struct(vkStream, forMarshaling->pNext);
4613 }
4614 vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
4615 }
4616
unmarshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStreamGuest * vkStream,VkDeviceGroupCommandBufferBeginInfo * forUnmarshaling)4617 void unmarshal_VkDeviceGroupCommandBufferBeginInfo(
4618 VulkanStreamGuest* vkStream,
4619 VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling)
4620 {
4621 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4622 size_t pNext_size;
4623 pNext_size = vkStream->getBe32();
4624 if (pNext_size)
4625 {
4626 uint64_t pNext_placeholder;
4627 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4628 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4629 }
4630 vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
4631 }
4632
marshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupSubmitInfo * forMarshaling)4633 void marshal_VkDeviceGroupSubmitInfo(
4634 VulkanStreamGuest* vkStream,
4635 const VkDeviceGroupSubmitInfo* forMarshaling)
4636 {
4637 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4638 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4639 vkStream->putBe32(pNext_size);
4640 if (pNext_size)
4641 {
4642 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4643 marshal_extension_struct(vkStream, forMarshaling->pNext);
4644 }
4645 vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
4646 vkStream->write((const uint32_t*)forMarshaling->pWaitSemaphoreDeviceIndices, forMarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4647 vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
4648 vkStream->write((const uint32_t*)forMarshaling->pCommandBufferDeviceMasks, forMarshaling->commandBufferCount * sizeof(const uint32_t));
4649 vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
4650 vkStream->write((const uint32_t*)forMarshaling->pSignalSemaphoreDeviceIndices, forMarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4651 }
4652
unmarshal_VkDeviceGroupSubmitInfo(VulkanStreamGuest * vkStream,VkDeviceGroupSubmitInfo * forUnmarshaling)4653 void unmarshal_VkDeviceGroupSubmitInfo(
4654 VulkanStreamGuest* vkStream,
4655 VkDeviceGroupSubmitInfo* 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((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
4667 vkStream->read((uint32_t*)forUnmarshaling->pWaitSemaphoreDeviceIndices, forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4668 vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
4669 vkStream->read((uint32_t*)forUnmarshaling->pCommandBufferDeviceMasks, forUnmarshaling->commandBufferCount * sizeof(const uint32_t));
4670 vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
4671 vkStream->read((uint32_t*)forUnmarshaling->pSignalSemaphoreDeviceIndices, forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4672 }
4673
marshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupBindSparseInfo * forMarshaling)4674 void marshal_VkDeviceGroupBindSparseInfo(
4675 VulkanStreamGuest* vkStream,
4676 const VkDeviceGroupBindSparseInfo* forMarshaling)
4677 {
4678 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4679 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4680 vkStream->putBe32(pNext_size);
4681 if (pNext_size)
4682 {
4683 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4684 marshal_extension_struct(vkStream, forMarshaling->pNext);
4685 }
4686 vkStream->write((uint32_t*)&forMarshaling->resourceDeviceIndex, sizeof(uint32_t));
4687 vkStream->write((uint32_t*)&forMarshaling->memoryDeviceIndex, sizeof(uint32_t));
4688 }
4689
unmarshal_VkDeviceGroupBindSparseInfo(VulkanStreamGuest * vkStream,VkDeviceGroupBindSparseInfo * forUnmarshaling)4690 void unmarshal_VkDeviceGroupBindSparseInfo(
4691 VulkanStreamGuest* vkStream,
4692 VkDeviceGroupBindSparseInfo* forUnmarshaling)
4693 {
4694 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4695 size_t pNext_size;
4696 pNext_size = vkStream->getBe32();
4697 if (pNext_size)
4698 {
4699 uint64_t pNext_placeholder;
4700 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4701 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4702 }
4703 vkStream->read((uint32_t*)&forUnmarshaling->resourceDeviceIndex, sizeof(uint32_t));
4704 vkStream->read((uint32_t*)&forUnmarshaling->memoryDeviceIndex, sizeof(uint32_t));
4705 }
4706
marshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,const VkBindBufferMemoryDeviceGroupInfo * forMarshaling)4707 void marshal_VkBindBufferMemoryDeviceGroupInfo(
4708 VulkanStreamGuest* vkStream,
4709 const VkBindBufferMemoryDeviceGroupInfo* forMarshaling)
4710 {
4711 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4712 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4713 vkStream->putBe32(pNext_size);
4714 if (pNext_size)
4715 {
4716 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4717 marshal_extension_struct(vkStream, forMarshaling->pNext);
4718 }
4719 vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
4720 vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices, forMarshaling->deviceIndexCount * sizeof(const uint32_t));
4721 }
4722
unmarshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkBindBufferMemoryDeviceGroupInfo * forUnmarshaling)4723 void unmarshal_VkBindBufferMemoryDeviceGroupInfo(
4724 VulkanStreamGuest* vkStream,
4725 VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling)
4726 {
4727 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4728 size_t pNext_size;
4729 pNext_size = vkStream->getBe32();
4730 if (pNext_size)
4731 {
4732 uint64_t pNext_placeholder;
4733 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4734 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4735 }
4736 vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
4737 vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices, forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4738 }
4739
marshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,const VkBindImageMemoryDeviceGroupInfo * forMarshaling)4740 void marshal_VkBindImageMemoryDeviceGroupInfo(
4741 VulkanStreamGuest* vkStream,
4742 const VkBindImageMemoryDeviceGroupInfo* forMarshaling)
4743 {
4744 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4745 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4746 vkStream->putBe32(pNext_size);
4747 if (pNext_size)
4748 {
4749 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4750 marshal_extension_struct(vkStream, forMarshaling->pNext);
4751 }
4752 vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
4753 vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices, forMarshaling->deviceIndexCount * sizeof(const uint32_t));
4754 vkStream->write((uint32_t*)&forMarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
4755 for (uint32_t i = 0; i < (uint32_t)forMarshaling->splitInstanceBindRegionCount; ++i)
4756 {
4757 marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pSplitInstanceBindRegions + i));
4758 }
4759 }
4760
unmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStreamGuest * vkStream,VkBindImageMemoryDeviceGroupInfo * forUnmarshaling)4761 void unmarshal_VkBindImageMemoryDeviceGroupInfo(
4762 VulkanStreamGuest* vkStream,
4763 VkBindImageMemoryDeviceGroupInfo* forUnmarshaling)
4764 {
4765 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4766 size_t pNext_size;
4767 pNext_size = vkStream->getBe32();
4768 if (pNext_size)
4769 {
4770 uint64_t pNext_placeholder;
4771 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4772 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4773 }
4774 vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
4775 vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices, forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4776 vkStream->read((uint32_t*)&forUnmarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
4777 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->splitInstanceBindRegionCount; ++i)
4778 {
4779 unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pSplitInstanceBindRegions + i));
4780 }
4781 }
4782
marshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceGroupProperties * forMarshaling)4783 void marshal_VkPhysicalDeviceGroupProperties(
4784 VulkanStreamGuest* vkStream,
4785 const VkPhysicalDeviceGroupProperties* forMarshaling)
4786 {
4787 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4788 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4789 vkStream->putBe32(pNext_size);
4790 if (pNext_size)
4791 {
4792 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4793 marshal_extension_struct(vkStream, forMarshaling->pNext);
4794 }
4795 vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
4796 vkStream->write((VkPhysicalDevice*)forMarshaling->physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
4797 vkStream->write((VkBool32*)&forMarshaling->subsetAllocation, sizeof(VkBool32));
4798 }
4799
unmarshal_VkPhysicalDeviceGroupProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceGroupProperties * forUnmarshaling)4800 void unmarshal_VkPhysicalDeviceGroupProperties(
4801 VulkanStreamGuest* vkStream,
4802 VkPhysicalDeviceGroupProperties* forUnmarshaling)
4803 {
4804 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4805 size_t pNext_size;
4806 pNext_size = vkStream->getBe32();
4807 if (pNext_size)
4808 {
4809 uint64_t pNext_placeholder;
4810 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4811 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4812 }
4813 vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
4814 vkStream->read((VkPhysicalDevice*)forUnmarshaling->physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
4815 vkStream->read((VkBool32*)&forUnmarshaling->subsetAllocation, sizeof(VkBool32));
4816 }
4817
marshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest * vkStream,const VkDeviceGroupDeviceCreateInfo * forMarshaling)4818 void marshal_VkDeviceGroupDeviceCreateInfo(
4819 VulkanStreamGuest* vkStream,
4820 const VkDeviceGroupDeviceCreateInfo* forMarshaling)
4821 {
4822 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4823 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4824 vkStream->putBe32(pNext_size);
4825 if (pNext_size)
4826 {
4827 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4828 marshal_extension_struct(vkStream, forMarshaling->pNext);
4829 }
4830 vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
4831 if (forMarshaling->physicalDeviceCount)
4832 {
4833 uint64_t* cgen_var_156;
4834 vkStream->alloc((void**)&cgen_var_156, forMarshaling->physicalDeviceCount * 8);
4835 vkStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(forMarshaling->pPhysicalDevices, cgen_var_156, forMarshaling->physicalDeviceCount);
4836 vkStream->write((uint64_t*)cgen_var_156, forMarshaling->physicalDeviceCount * 8);
4837 }
4838 }
4839
unmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStreamGuest * vkStream,VkDeviceGroupDeviceCreateInfo * forUnmarshaling)4840 void unmarshal_VkDeviceGroupDeviceCreateInfo(
4841 VulkanStreamGuest* vkStream,
4842 VkDeviceGroupDeviceCreateInfo* forUnmarshaling)
4843 {
4844 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4845 size_t pNext_size;
4846 pNext_size = vkStream->getBe32();
4847 if (pNext_size)
4848 {
4849 uint64_t pNext_placeholder;
4850 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4851 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4852 }
4853 vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
4854 if (forUnmarshaling->physicalDeviceCount)
4855 {
4856 uint64_t* cgen_var_157;
4857 vkStream->alloc((void**)&cgen_var_157, forUnmarshaling->physicalDeviceCount * 8);
4858 vkStream->read((uint64_t*)cgen_var_157, forUnmarshaling->physicalDeviceCount * 8);
4859 vkStream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_157, (VkPhysicalDevice*)forUnmarshaling->pPhysicalDevices, forUnmarshaling->physicalDeviceCount);
4860 }
4861 }
4862
marshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,const VkBufferMemoryRequirementsInfo2 * forMarshaling)4863 void marshal_VkBufferMemoryRequirementsInfo2(
4864 VulkanStreamGuest* vkStream,
4865 const VkBufferMemoryRequirementsInfo2* forMarshaling)
4866 {
4867 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4868 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4869 vkStream->putBe32(pNext_size);
4870 if (pNext_size)
4871 {
4872 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4873 marshal_extension_struct(vkStream, forMarshaling->pNext);
4874 }
4875 uint64_t cgen_var_158;
4876 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_158, 1);
4877 vkStream->write((uint64_t*)&cgen_var_158, 1 * 8);
4878 }
4879
unmarshal_VkBufferMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkBufferMemoryRequirementsInfo2 * forUnmarshaling)4880 void unmarshal_VkBufferMemoryRequirementsInfo2(
4881 VulkanStreamGuest* vkStream,
4882 VkBufferMemoryRequirementsInfo2* forUnmarshaling)
4883 {
4884 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4885 size_t pNext_size;
4886 pNext_size = vkStream->getBe32();
4887 if (pNext_size)
4888 {
4889 uint64_t pNext_placeholder;
4890 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4891 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4892 }
4893 uint64_t cgen_var_159;
4894 vkStream->read((uint64_t*)&cgen_var_159, 1 * 8);
4895 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_159, (VkBuffer*)&forUnmarshaling->buffer, 1);
4896 }
4897
marshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,const VkImageMemoryRequirementsInfo2 * forMarshaling)4898 void marshal_VkImageMemoryRequirementsInfo2(
4899 VulkanStreamGuest* vkStream,
4900 const VkImageMemoryRequirementsInfo2* forMarshaling)
4901 {
4902 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4903 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4904 vkStream->putBe32(pNext_size);
4905 if (pNext_size)
4906 {
4907 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4908 marshal_extension_struct(vkStream, forMarshaling->pNext);
4909 }
4910 uint64_t cgen_var_160;
4911 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_160, 1);
4912 vkStream->write((uint64_t*)&cgen_var_160, 1 * 8);
4913 }
4914
unmarshal_VkImageMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkImageMemoryRequirementsInfo2 * forUnmarshaling)4915 void unmarshal_VkImageMemoryRequirementsInfo2(
4916 VulkanStreamGuest* vkStream,
4917 VkImageMemoryRequirementsInfo2* forUnmarshaling)
4918 {
4919 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4920 size_t pNext_size;
4921 pNext_size = vkStream->getBe32();
4922 if (pNext_size)
4923 {
4924 uint64_t pNext_placeholder;
4925 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4926 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4927 }
4928 uint64_t cgen_var_161;
4929 vkStream->read((uint64_t*)&cgen_var_161, 1 * 8);
4930 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_161, (VkImage*)&forUnmarshaling->image, 1);
4931 }
4932
marshal_VkImageSparseMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,const VkImageSparseMemoryRequirementsInfo2 * forMarshaling)4933 void marshal_VkImageSparseMemoryRequirementsInfo2(
4934 VulkanStreamGuest* vkStream,
4935 const VkImageSparseMemoryRequirementsInfo2* forMarshaling)
4936 {
4937 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4938 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4939 vkStream->putBe32(pNext_size);
4940 if (pNext_size)
4941 {
4942 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
4943 marshal_extension_struct(vkStream, forMarshaling->pNext);
4944 }
4945 uint64_t cgen_var_162;
4946 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_162, 1);
4947 vkStream->write((uint64_t*)&cgen_var_162, 1 * 8);
4948 }
4949
unmarshal_VkImageSparseMemoryRequirementsInfo2(VulkanStreamGuest * vkStream,VkImageSparseMemoryRequirementsInfo2 * forUnmarshaling)4950 void unmarshal_VkImageSparseMemoryRequirementsInfo2(
4951 VulkanStreamGuest* vkStream,
4952 VkImageSparseMemoryRequirementsInfo2* forUnmarshaling)
4953 {
4954 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4955 size_t pNext_size;
4956 pNext_size = vkStream->getBe32();
4957 if (pNext_size)
4958 {
4959 uint64_t pNext_placeholder;
4960 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4961 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4962 }
4963 uint64_t cgen_var_163;
4964 vkStream->read((uint64_t*)&cgen_var_163, 1 * 8);
4965 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_163, (VkImage*)&forUnmarshaling->image, 1);
4966 }
4967
marshal_VkMemoryRequirements2(VulkanStreamGuest * vkStream,const VkMemoryRequirements2 * forMarshaling)4968 void marshal_VkMemoryRequirements2(
4969 VulkanStreamGuest* vkStream,
4970 const VkMemoryRequirements2* forMarshaling)
4971 {
4972 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
4973 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
4974 vkStream->putBe32(pNext_size);
4975 if (pNext_size)
4976 {
4977 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
4978 marshal_extension_struct(vkStream, forMarshaling->pNext);
4979 }
4980 marshal_VkMemoryRequirements(vkStream, (VkMemoryRequirements*)(&forMarshaling->memoryRequirements));
4981 }
4982
unmarshal_VkMemoryRequirements2(VulkanStreamGuest * vkStream,VkMemoryRequirements2 * forUnmarshaling)4983 void unmarshal_VkMemoryRequirements2(
4984 VulkanStreamGuest* vkStream,
4985 VkMemoryRequirements2* forUnmarshaling)
4986 {
4987 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
4988 size_t pNext_size;
4989 pNext_size = vkStream->getBe32();
4990 if (pNext_size)
4991 {
4992 uint64_t pNext_placeholder;
4993 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
4994 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
4995 }
4996 unmarshal_VkMemoryRequirements(vkStream, (VkMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
4997 }
4998
marshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest * vkStream,const VkSparseImageMemoryRequirements2 * forMarshaling)4999 void marshal_VkSparseImageMemoryRequirements2(
5000 VulkanStreamGuest* vkStream,
5001 const VkSparseImageMemoryRequirements2* forMarshaling)
5002 {
5003 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5004 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5005 vkStream->putBe32(pNext_size);
5006 if (pNext_size)
5007 {
5008 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5009 marshal_extension_struct(vkStream, forMarshaling->pNext);
5010 }
5011 marshal_VkSparseImageMemoryRequirements(vkStream, (VkSparseImageMemoryRequirements*)(&forMarshaling->memoryRequirements));
5012 }
5013
unmarshal_VkSparseImageMemoryRequirements2(VulkanStreamGuest * vkStream,VkSparseImageMemoryRequirements2 * forUnmarshaling)5014 void unmarshal_VkSparseImageMemoryRequirements2(
5015 VulkanStreamGuest* vkStream,
5016 VkSparseImageMemoryRequirements2* forUnmarshaling)
5017 {
5018 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5019 size_t pNext_size;
5020 pNext_size = vkStream->getBe32();
5021 if (pNext_size)
5022 {
5023 uint64_t pNext_placeholder;
5024 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5025 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5026 }
5027 unmarshal_VkSparseImageMemoryRequirements(vkStream, (VkSparseImageMemoryRequirements*)(&forUnmarshaling->memoryRequirements));
5028 }
5029
marshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceFeatures2 * forMarshaling)5030 void marshal_VkPhysicalDeviceFeatures2(
5031 VulkanStreamGuest* vkStream,
5032 const VkPhysicalDeviceFeatures2* forMarshaling)
5033 {
5034 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5035 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5036 vkStream->putBe32(pNext_size);
5037 if (pNext_size)
5038 {
5039 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5040 marshal_extension_struct(vkStream, forMarshaling->pNext);
5041 }
5042 marshal_VkPhysicalDeviceFeatures(vkStream, (VkPhysicalDeviceFeatures*)(&forMarshaling->features));
5043 }
5044
unmarshal_VkPhysicalDeviceFeatures2(VulkanStreamGuest * vkStream,VkPhysicalDeviceFeatures2 * forUnmarshaling)5045 void unmarshal_VkPhysicalDeviceFeatures2(
5046 VulkanStreamGuest* vkStream,
5047 VkPhysicalDeviceFeatures2* forUnmarshaling)
5048 {
5049 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5050 size_t pNext_size;
5051 pNext_size = vkStream->getBe32();
5052 if (pNext_size)
5053 {
5054 uint64_t pNext_placeholder;
5055 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5056 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5057 }
5058 unmarshal_VkPhysicalDeviceFeatures(vkStream, (VkPhysicalDeviceFeatures*)(&forUnmarshaling->features));
5059 }
5060
marshal_VkPhysicalDeviceProperties2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProperties2 * forMarshaling)5061 void marshal_VkPhysicalDeviceProperties2(
5062 VulkanStreamGuest* vkStream,
5063 const VkPhysicalDeviceProperties2* forMarshaling)
5064 {
5065 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5066 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5067 vkStream->putBe32(pNext_size);
5068 if (pNext_size)
5069 {
5070 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5071 marshal_extension_struct(vkStream, forMarshaling->pNext);
5072 }
5073 marshal_VkPhysicalDeviceProperties(vkStream, (VkPhysicalDeviceProperties*)(&forMarshaling->properties));
5074 }
5075
unmarshal_VkPhysicalDeviceProperties2(VulkanStreamGuest * vkStream,VkPhysicalDeviceProperties2 * forUnmarshaling)5076 void unmarshal_VkPhysicalDeviceProperties2(
5077 VulkanStreamGuest* vkStream,
5078 VkPhysicalDeviceProperties2* forUnmarshaling)
5079 {
5080 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5081 size_t pNext_size;
5082 pNext_size = vkStream->getBe32();
5083 if (pNext_size)
5084 {
5085 uint64_t pNext_placeholder;
5086 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5087 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5088 }
5089 unmarshal_VkPhysicalDeviceProperties(vkStream, (VkPhysicalDeviceProperties*)(&forUnmarshaling->properties));
5090 }
5091
marshal_VkFormatProperties2(VulkanStreamGuest * vkStream,const VkFormatProperties2 * forMarshaling)5092 void marshal_VkFormatProperties2(
5093 VulkanStreamGuest* vkStream,
5094 const VkFormatProperties2* forMarshaling)
5095 {
5096 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5097 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5098 vkStream->putBe32(pNext_size);
5099 if (pNext_size)
5100 {
5101 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5102 marshal_extension_struct(vkStream, forMarshaling->pNext);
5103 }
5104 marshal_VkFormatProperties(vkStream, (VkFormatProperties*)(&forMarshaling->formatProperties));
5105 }
5106
unmarshal_VkFormatProperties2(VulkanStreamGuest * vkStream,VkFormatProperties2 * forUnmarshaling)5107 void unmarshal_VkFormatProperties2(
5108 VulkanStreamGuest* vkStream,
5109 VkFormatProperties2* forUnmarshaling)
5110 {
5111 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5112 size_t pNext_size;
5113 pNext_size = vkStream->getBe32();
5114 if (pNext_size)
5115 {
5116 uint64_t pNext_placeholder;
5117 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5118 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5119 }
5120 unmarshal_VkFormatProperties(vkStream, (VkFormatProperties*)(&forUnmarshaling->formatProperties));
5121 }
5122
marshal_VkImageFormatProperties2(VulkanStreamGuest * vkStream,const VkImageFormatProperties2 * forMarshaling)5123 void marshal_VkImageFormatProperties2(
5124 VulkanStreamGuest* vkStream,
5125 const VkImageFormatProperties2* forMarshaling)
5126 {
5127 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5128 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5129 vkStream->putBe32(pNext_size);
5130 if (pNext_size)
5131 {
5132 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5133 marshal_extension_struct(vkStream, forMarshaling->pNext);
5134 }
5135 marshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
5136 }
5137
unmarshal_VkImageFormatProperties2(VulkanStreamGuest * vkStream,VkImageFormatProperties2 * forUnmarshaling)5138 void unmarshal_VkImageFormatProperties2(
5139 VulkanStreamGuest* vkStream,
5140 VkImageFormatProperties2* forUnmarshaling)
5141 {
5142 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5143 size_t pNext_size;
5144 pNext_size = vkStream->getBe32();
5145 if (pNext_size)
5146 {
5147 uint64_t pNext_placeholder;
5148 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5149 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5150 }
5151 unmarshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
5152 }
5153
marshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceImageFormatInfo2 * forMarshaling)5154 void marshal_VkPhysicalDeviceImageFormatInfo2(
5155 VulkanStreamGuest* vkStream,
5156 const VkPhysicalDeviceImageFormatInfo2* forMarshaling)
5157 {
5158 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5159 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5160 vkStream->putBe32(pNext_size);
5161 if (pNext_size)
5162 {
5163 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5164 marshal_extension_struct(vkStream, forMarshaling->pNext);
5165 }
5166 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5167 vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
5168 vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
5169 vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5170 vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
5171 }
5172
unmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStreamGuest * vkStream,VkPhysicalDeviceImageFormatInfo2 * forUnmarshaling)5173 void unmarshal_VkPhysicalDeviceImageFormatInfo2(
5174 VulkanStreamGuest* vkStream,
5175 VkPhysicalDeviceImageFormatInfo2* forUnmarshaling)
5176 {
5177 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5178 size_t pNext_size;
5179 pNext_size = vkStream->getBe32();
5180 if (pNext_size)
5181 {
5182 uint64_t pNext_placeholder;
5183 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5184 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5185 }
5186 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5187 vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
5188 vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
5189 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5190 vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
5191 }
5192
marshal_VkQueueFamilyProperties2(VulkanStreamGuest * vkStream,const VkQueueFamilyProperties2 * forMarshaling)5193 void marshal_VkQueueFamilyProperties2(
5194 VulkanStreamGuest* vkStream,
5195 const VkQueueFamilyProperties2* forMarshaling)
5196 {
5197 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5198 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5199 vkStream->putBe32(pNext_size);
5200 if (pNext_size)
5201 {
5202 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5203 marshal_extension_struct(vkStream, forMarshaling->pNext);
5204 }
5205 marshal_VkQueueFamilyProperties(vkStream, (VkQueueFamilyProperties*)(&forMarshaling->queueFamilyProperties));
5206 }
5207
unmarshal_VkQueueFamilyProperties2(VulkanStreamGuest * vkStream,VkQueueFamilyProperties2 * forUnmarshaling)5208 void unmarshal_VkQueueFamilyProperties2(
5209 VulkanStreamGuest* vkStream,
5210 VkQueueFamilyProperties2* forUnmarshaling)
5211 {
5212 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5213 size_t pNext_size;
5214 pNext_size = vkStream->getBe32();
5215 if (pNext_size)
5216 {
5217 uint64_t pNext_placeholder;
5218 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5219 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5220 }
5221 unmarshal_VkQueueFamilyProperties(vkStream, (VkQueueFamilyProperties*)(&forUnmarshaling->queueFamilyProperties));
5222 }
5223
marshal_VkPhysicalDeviceMemoryProperties2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMemoryProperties2 * forMarshaling)5224 void marshal_VkPhysicalDeviceMemoryProperties2(
5225 VulkanStreamGuest* vkStream,
5226 const VkPhysicalDeviceMemoryProperties2* forMarshaling)
5227 {
5228 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5229 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5230 vkStream->putBe32(pNext_size);
5231 if (pNext_size)
5232 {
5233 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5234 marshal_extension_struct(vkStream, forMarshaling->pNext);
5235 }
5236 marshal_VkPhysicalDeviceMemoryProperties(vkStream, (VkPhysicalDeviceMemoryProperties*)(&forMarshaling->memoryProperties));
5237 }
5238
unmarshal_VkPhysicalDeviceMemoryProperties2(VulkanStreamGuest * vkStream,VkPhysicalDeviceMemoryProperties2 * forUnmarshaling)5239 void unmarshal_VkPhysicalDeviceMemoryProperties2(
5240 VulkanStreamGuest* vkStream,
5241 VkPhysicalDeviceMemoryProperties2* forUnmarshaling)
5242 {
5243 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5244 size_t pNext_size;
5245 pNext_size = vkStream->getBe32();
5246 if (pNext_size)
5247 {
5248 uint64_t pNext_placeholder;
5249 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5250 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5251 }
5252 unmarshal_VkPhysicalDeviceMemoryProperties(vkStream, (VkPhysicalDeviceMemoryProperties*)(&forUnmarshaling->memoryProperties));
5253 }
5254
marshal_VkSparseImageFormatProperties2(VulkanStreamGuest * vkStream,const VkSparseImageFormatProperties2 * forMarshaling)5255 void marshal_VkSparseImageFormatProperties2(
5256 VulkanStreamGuest* vkStream,
5257 const VkSparseImageFormatProperties2* forMarshaling)
5258 {
5259 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5260 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5261 vkStream->putBe32(pNext_size);
5262 if (pNext_size)
5263 {
5264 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5265 marshal_extension_struct(vkStream, forMarshaling->pNext);
5266 }
5267 marshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forMarshaling->properties));
5268 }
5269
unmarshal_VkSparseImageFormatProperties2(VulkanStreamGuest * vkStream,VkSparseImageFormatProperties2 * forUnmarshaling)5270 void unmarshal_VkSparseImageFormatProperties2(
5271 VulkanStreamGuest* vkStream,
5272 VkSparseImageFormatProperties2* forUnmarshaling)
5273 {
5274 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5275 size_t pNext_size;
5276 pNext_size = vkStream->getBe32();
5277 if (pNext_size)
5278 {
5279 uint64_t pNext_placeholder;
5280 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5281 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5282 }
5283 unmarshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forUnmarshaling->properties));
5284 }
5285
marshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSparseImageFormatInfo2 * forMarshaling)5286 void marshal_VkPhysicalDeviceSparseImageFormatInfo2(
5287 VulkanStreamGuest* vkStream,
5288 const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling)
5289 {
5290 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5291 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5292 vkStream->putBe32(pNext_size);
5293 if (pNext_size)
5294 {
5295 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5296 marshal_extension_struct(vkStream, forMarshaling->pNext);
5297 }
5298 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5299 vkStream->write((VkImageType*)&forMarshaling->type, sizeof(VkImageType));
5300 vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
5301 vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5302 vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
5303 }
5304
unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStreamGuest * vkStream,VkPhysicalDeviceSparseImageFormatInfo2 * forUnmarshaling)5305 void unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
5306 VulkanStreamGuest* vkStream,
5307 VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling)
5308 {
5309 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5310 size_t pNext_size;
5311 pNext_size = vkStream->getBe32();
5312 if (pNext_size)
5313 {
5314 uint64_t pNext_placeholder;
5315 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5316 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5317 }
5318 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5319 vkStream->read((VkImageType*)&forUnmarshaling->type, sizeof(VkImageType));
5320 vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
5321 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5322 vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
5323 }
5324
marshal_VkPhysicalDevicePointClippingProperties(VulkanStreamGuest * vkStream,const VkPhysicalDevicePointClippingProperties * forMarshaling)5325 void marshal_VkPhysicalDevicePointClippingProperties(
5326 VulkanStreamGuest* vkStream,
5327 const VkPhysicalDevicePointClippingProperties* forMarshaling)
5328 {
5329 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5330 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5331 vkStream->putBe32(pNext_size);
5332 if (pNext_size)
5333 {
5334 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5335 marshal_extension_struct(vkStream, forMarshaling->pNext);
5336 }
5337 vkStream->write((VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior, sizeof(VkPointClippingBehavior));
5338 }
5339
unmarshal_VkPhysicalDevicePointClippingProperties(VulkanStreamGuest * vkStream,VkPhysicalDevicePointClippingProperties * forUnmarshaling)5340 void unmarshal_VkPhysicalDevicePointClippingProperties(
5341 VulkanStreamGuest* vkStream,
5342 VkPhysicalDevicePointClippingProperties* forUnmarshaling)
5343 {
5344 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5345 size_t pNext_size;
5346 pNext_size = vkStream->getBe32();
5347 if (pNext_size)
5348 {
5349 uint64_t pNext_placeholder;
5350 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5351 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5352 }
5353 vkStream->read((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior, sizeof(VkPointClippingBehavior));
5354 }
5355
marshal_VkInputAttachmentAspectReference(VulkanStreamGuest * vkStream,const VkInputAttachmentAspectReference * forMarshaling)5356 void marshal_VkInputAttachmentAspectReference(
5357 VulkanStreamGuest* vkStream,
5358 const VkInputAttachmentAspectReference* forMarshaling)
5359 {
5360 vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
5361 vkStream->write((uint32_t*)&forMarshaling->inputAttachmentIndex, sizeof(uint32_t));
5362 vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
5363 }
5364
unmarshal_VkInputAttachmentAspectReference(VulkanStreamGuest * vkStream,VkInputAttachmentAspectReference * forUnmarshaling)5365 void unmarshal_VkInputAttachmentAspectReference(
5366 VulkanStreamGuest* vkStream,
5367 VkInputAttachmentAspectReference* forUnmarshaling)
5368 {
5369 vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
5370 vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentIndex, sizeof(uint32_t));
5371 vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
5372 }
5373
marshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStreamGuest * vkStream,const VkRenderPassInputAttachmentAspectCreateInfo * forMarshaling)5374 void marshal_VkRenderPassInputAttachmentAspectCreateInfo(
5375 VulkanStreamGuest* vkStream,
5376 const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling)
5377 {
5378 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5379 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5380 vkStream->putBe32(pNext_size);
5381 if (pNext_size)
5382 {
5383 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5384 marshal_extension_struct(vkStream, forMarshaling->pNext);
5385 }
5386 vkStream->write((uint32_t*)&forMarshaling->aspectReferenceCount, sizeof(uint32_t));
5387 for (uint32_t i = 0; i < (uint32_t)forMarshaling->aspectReferenceCount; ++i)
5388 {
5389 marshal_VkInputAttachmentAspectReference(vkStream, (const VkInputAttachmentAspectReference*)(forMarshaling->pAspectReferences + i));
5390 }
5391 }
5392
unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStreamGuest * vkStream,VkRenderPassInputAttachmentAspectCreateInfo * forUnmarshaling)5393 void unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
5394 VulkanStreamGuest* vkStream,
5395 VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling)
5396 {
5397 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5398 size_t pNext_size;
5399 pNext_size = vkStream->getBe32();
5400 if (pNext_size)
5401 {
5402 uint64_t pNext_placeholder;
5403 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5404 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5405 }
5406 vkStream->read((uint32_t*)&forUnmarshaling->aspectReferenceCount, sizeof(uint32_t));
5407 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->aspectReferenceCount; ++i)
5408 {
5409 unmarshal_VkInputAttachmentAspectReference(vkStream, (VkInputAttachmentAspectReference*)(forUnmarshaling->pAspectReferences + i));
5410 }
5411 }
5412
marshal_VkImageViewUsageCreateInfo(VulkanStreamGuest * vkStream,const VkImageViewUsageCreateInfo * forMarshaling)5413 void marshal_VkImageViewUsageCreateInfo(
5414 VulkanStreamGuest* vkStream,
5415 const VkImageViewUsageCreateInfo* forMarshaling)
5416 {
5417 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5418 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5419 vkStream->putBe32(pNext_size);
5420 if (pNext_size)
5421 {
5422 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5423 marshal_extension_struct(vkStream, forMarshaling->pNext);
5424 }
5425 vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
5426 }
5427
unmarshal_VkImageViewUsageCreateInfo(VulkanStreamGuest * vkStream,VkImageViewUsageCreateInfo * forUnmarshaling)5428 void unmarshal_VkImageViewUsageCreateInfo(
5429 VulkanStreamGuest* vkStream,
5430 VkImageViewUsageCreateInfo* forUnmarshaling)
5431 {
5432 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5433 size_t pNext_size;
5434 pNext_size = vkStream->getBe32();
5435 if (pNext_size)
5436 {
5437 uint64_t pNext_placeholder;
5438 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5439 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5440 }
5441 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
5442 }
5443
marshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStreamGuest * vkStream,const VkPipelineTessellationDomainOriginStateCreateInfo * forMarshaling)5444 void marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
5445 VulkanStreamGuest* vkStream,
5446 const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling)
5447 {
5448 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5449 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5450 vkStream->putBe32(pNext_size);
5451 if (pNext_size)
5452 {
5453 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5454 marshal_extension_struct(vkStream, forMarshaling->pNext);
5455 }
5456 vkStream->write((VkTessellationDomainOrigin*)&forMarshaling->domainOrigin, sizeof(VkTessellationDomainOrigin));
5457 }
5458
unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStreamGuest * vkStream,VkPipelineTessellationDomainOriginStateCreateInfo * forUnmarshaling)5459 void unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
5460 VulkanStreamGuest* vkStream,
5461 VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling)
5462 {
5463 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5464 size_t pNext_size;
5465 pNext_size = vkStream->getBe32();
5466 if (pNext_size)
5467 {
5468 uint64_t pNext_placeholder;
5469 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5470 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5471 }
5472 vkStream->read((VkTessellationDomainOrigin*)&forUnmarshaling->domainOrigin, sizeof(VkTessellationDomainOrigin));
5473 }
5474
marshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest * vkStream,const VkRenderPassMultiviewCreateInfo * forMarshaling)5475 void marshal_VkRenderPassMultiviewCreateInfo(
5476 VulkanStreamGuest* vkStream,
5477 const VkRenderPassMultiviewCreateInfo* forMarshaling)
5478 {
5479 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5480 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5481 vkStream->putBe32(pNext_size);
5482 if (pNext_size)
5483 {
5484 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5485 marshal_extension_struct(vkStream, forMarshaling->pNext);
5486 }
5487 vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
5488 vkStream->write((const uint32_t*)forMarshaling->pViewMasks, forMarshaling->subpassCount * sizeof(const uint32_t));
5489 vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
5490 vkStream->write((const int32_t*)forMarshaling->pViewOffsets, forMarshaling->dependencyCount * sizeof(const int32_t));
5491 vkStream->write((uint32_t*)&forMarshaling->correlationMaskCount, sizeof(uint32_t));
5492 vkStream->write((const uint32_t*)forMarshaling->pCorrelationMasks, forMarshaling->correlationMaskCount * sizeof(const uint32_t));
5493 }
5494
unmarshal_VkRenderPassMultiviewCreateInfo(VulkanStreamGuest * vkStream,VkRenderPassMultiviewCreateInfo * forUnmarshaling)5495 void unmarshal_VkRenderPassMultiviewCreateInfo(
5496 VulkanStreamGuest* vkStream,
5497 VkRenderPassMultiviewCreateInfo* forUnmarshaling)
5498 {
5499 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5500 size_t pNext_size;
5501 pNext_size = vkStream->getBe32();
5502 if (pNext_size)
5503 {
5504 uint64_t pNext_placeholder;
5505 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5506 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5507 }
5508 vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
5509 vkStream->read((uint32_t*)forUnmarshaling->pViewMasks, forUnmarshaling->subpassCount * sizeof(const uint32_t));
5510 vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
5511 vkStream->read((int32_t*)forUnmarshaling->pViewOffsets, forUnmarshaling->dependencyCount * sizeof(const int32_t));
5512 vkStream->read((uint32_t*)&forUnmarshaling->correlationMaskCount, sizeof(uint32_t));
5513 vkStream->read((uint32_t*)forUnmarshaling->pCorrelationMasks, forUnmarshaling->correlationMaskCount * sizeof(const uint32_t));
5514 }
5515
marshal_VkPhysicalDeviceMultiviewFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMultiviewFeatures * forMarshaling)5516 void marshal_VkPhysicalDeviceMultiviewFeatures(
5517 VulkanStreamGuest* vkStream,
5518 const VkPhysicalDeviceMultiviewFeatures* forMarshaling)
5519 {
5520 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5521 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5522 vkStream->putBe32(pNext_size);
5523 if (pNext_size)
5524 {
5525 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5526 marshal_extension_struct(vkStream, forMarshaling->pNext);
5527 }
5528 vkStream->write((VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
5529 vkStream->write((VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
5530 vkStream->write((VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
5531 }
5532
unmarshal_VkPhysicalDeviceMultiviewFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceMultiviewFeatures * forUnmarshaling)5533 void unmarshal_VkPhysicalDeviceMultiviewFeatures(
5534 VulkanStreamGuest* vkStream,
5535 VkPhysicalDeviceMultiviewFeatures* forUnmarshaling)
5536 {
5537 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5538 size_t pNext_size;
5539 pNext_size = vkStream->getBe32();
5540 if (pNext_size)
5541 {
5542 uint64_t pNext_placeholder;
5543 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5544 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5545 }
5546 vkStream->read((VkBool32*)&forUnmarshaling->multiview, sizeof(VkBool32));
5547 vkStream->read((VkBool32*)&forUnmarshaling->multiviewGeometryShader, sizeof(VkBool32));
5548 vkStream->read((VkBool32*)&forUnmarshaling->multiviewTessellationShader, sizeof(VkBool32));
5549 }
5550
marshal_VkPhysicalDeviceMultiviewProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMultiviewProperties * forMarshaling)5551 void marshal_VkPhysicalDeviceMultiviewProperties(
5552 VulkanStreamGuest* vkStream,
5553 const VkPhysicalDeviceMultiviewProperties* forMarshaling)
5554 {
5555 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5556 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5557 vkStream->putBe32(pNext_size);
5558 if (pNext_size)
5559 {
5560 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5561 marshal_extension_struct(vkStream, forMarshaling->pNext);
5562 }
5563 vkStream->write((uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
5564 vkStream->write((uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
5565 }
5566
unmarshal_VkPhysicalDeviceMultiviewProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceMultiviewProperties * forUnmarshaling)5567 void unmarshal_VkPhysicalDeviceMultiviewProperties(
5568 VulkanStreamGuest* vkStream,
5569 VkPhysicalDeviceMultiviewProperties* forUnmarshaling)
5570 {
5571 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5572 size_t pNext_size;
5573 pNext_size = vkStream->getBe32();
5574 if (pNext_size)
5575 {
5576 uint64_t pNext_placeholder;
5577 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5578 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5579 }
5580 vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, sizeof(uint32_t));
5581 vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
5582 }
5583
marshal_VkPhysicalDeviceVariablePointerFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceVariablePointerFeatures * forMarshaling)5584 void marshal_VkPhysicalDeviceVariablePointerFeatures(
5585 VulkanStreamGuest* vkStream,
5586 const VkPhysicalDeviceVariablePointerFeatures* forMarshaling)
5587 {
5588 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5589 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5590 vkStream->putBe32(pNext_size);
5591 if (pNext_size)
5592 {
5593 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5594 marshal_extension_struct(vkStream, forMarshaling->pNext);
5595 }
5596 vkStream->write((VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
5597 vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
5598 }
5599
unmarshal_VkPhysicalDeviceVariablePointerFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceVariablePointerFeatures * forUnmarshaling)5600 void unmarshal_VkPhysicalDeviceVariablePointerFeatures(
5601 VulkanStreamGuest* vkStream,
5602 VkPhysicalDeviceVariablePointerFeatures* forUnmarshaling)
5603 {
5604 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5605 size_t pNext_size;
5606 pNext_size = vkStream->getBe32();
5607 if (pNext_size)
5608 {
5609 uint64_t pNext_placeholder;
5610 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5611 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5612 }
5613 vkStream->read((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
5614 vkStream->read((VkBool32*)&forUnmarshaling->variablePointers, sizeof(VkBool32));
5615 }
5616
marshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProtectedMemoryFeatures * forMarshaling)5617 void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
5618 VulkanStreamGuest* vkStream,
5619 const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling)
5620 {
5621 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5622 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5623 vkStream->putBe32(pNext_size);
5624 if (pNext_size)
5625 {
5626 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5627 marshal_extension_struct(vkStream, forMarshaling->pNext);
5628 }
5629 vkStream->write((VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
5630 }
5631
unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceProtectedMemoryFeatures * forUnmarshaling)5632 void unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
5633 VulkanStreamGuest* vkStream,
5634 VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling)
5635 {
5636 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5637 size_t pNext_size;
5638 pNext_size = vkStream->getBe32();
5639 if (pNext_size)
5640 {
5641 uint64_t pNext_placeholder;
5642 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5643 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5644 }
5645 vkStream->read((VkBool32*)&forUnmarshaling->protectedMemory, sizeof(VkBool32));
5646 }
5647
marshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceProtectedMemoryProperties * forMarshaling)5648 void marshal_VkPhysicalDeviceProtectedMemoryProperties(
5649 VulkanStreamGuest* vkStream,
5650 const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling)
5651 {
5652 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5653 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5654 vkStream->putBe32(pNext_size);
5655 if (pNext_size)
5656 {
5657 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5658 marshal_extension_struct(vkStream, forMarshaling->pNext);
5659 }
5660 vkStream->write((VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
5661 }
5662
unmarshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceProtectedMemoryProperties * forUnmarshaling)5663 void unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
5664 VulkanStreamGuest* vkStream,
5665 VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling)
5666 {
5667 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5668 size_t pNext_size;
5669 pNext_size = vkStream->getBe32();
5670 if (pNext_size)
5671 {
5672 uint64_t pNext_placeholder;
5673 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5674 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5675 }
5676 vkStream->read((VkBool32*)&forUnmarshaling->protectedNoFault, sizeof(VkBool32));
5677 }
5678
marshal_VkDeviceQueueInfo2(VulkanStreamGuest * vkStream,const VkDeviceQueueInfo2 * forMarshaling)5679 void marshal_VkDeviceQueueInfo2(
5680 VulkanStreamGuest* vkStream,
5681 const VkDeviceQueueInfo2* forMarshaling)
5682 {
5683 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5684 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5685 vkStream->putBe32(pNext_size);
5686 if (pNext_size)
5687 {
5688 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5689 marshal_extension_struct(vkStream, forMarshaling->pNext);
5690 }
5691 vkStream->write((VkDeviceQueueCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
5692 vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
5693 vkStream->write((uint32_t*)&forMarshaling->queueIndex, sizeof(uint32_t));
5694 }
5695
unmarshal_VkDeviceQueueInfo2(VulkanStreamGuest * vkStream,VkDeviceQueueInfo2 * forUnmarshaling)5696 void unmarshal_VkDeviceQueueInfo2(
5697 VulkanStreamGuest* vkStream,
5698 VkDeviceQueueInfo2* forUnmarshaling)
5699 {
5700 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5701 size_t pNext_size;
5702 pNext_size = vkStream->getBe32();
5703 if (pNext_size)
5704 {
5705 uint64_t pNext_placeholder;
5706 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5707 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5708 }
5709 vkStream->read((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceQueueCreateFlags));
5710 vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
5711 vkStream->read((uint32_t*)&forUnmarshaling->queueIndex, sizeof(uint32_t));
5712 }
5713
marshal_VkProtectedSubmitInfo(VulkanStreamGuest * vkStream,const VkProtectedSubmitInfo * forMarshaling)5714 void marshal_VkProtectedSubmitInfo(
5715 VulkanStreamGuest* vkStream,
5716 const VkProtectedSubmitInfo* forMarshaling)
5717 {
5718 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5719 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5720 vkStream->putBe32(pNext_size);
5721 if (pNext_size)
5722 {
5723 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5724 marshal_extension_struct(vkStream, forMarshaling->pNext);
5725 }
5726 vkStream->write((VkBool32*)&forMarshaling->protectedSubmit, sizeof(VkBool32));
5727 }
5728
unmarshal_VkProtectedSubmitInfo(VulkanStreamGuest * vkStream,VkProtectedSubmitInfo * forUnmarshaling)5729 void unmarshal_VkProtectedSubmitInfo(
5730 VulkanStreamGuest* vkStream,
5731 VkProtectedSubmitInfo* forUnmarshaling)
5732 {
5733 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5734 size_t pNext_size;
5735 pNext_size = vkStream->getBe32();
5736 if (pNext_size)
5737 {
5738 uint64_t pNext_placeholder;
5739 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5740 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5741 }
5742 vkStream->read((VkBool32*)&forUnmarshaling->protectedSubmit, sizeof(VkBool32));
5743 }
5744
marshal_VkSamplerYcbcrConversionCreateInfo(VulkanStreamGuest * vkStream,const VkSamplerYcbcrConversionCreateInfo * forMarshaling)5745 void marshal_VkSamplerYcbcrConversionCreateInfo(
5746 VulkanStreamGuest* vkStream,
5747 const VkSamplerYcbcrConversionCreateInfo* forMarshaling)
5748 {
5749 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5750 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5751 vkStream->putBe32(pNext_size);
5752 if (pNext_size)
5753 {
5754 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5755 marshal_extension_struct(vkStream, forMarshaling->pNext);
5756 }
5757 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
5758 vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->ycbcrModel, sizeof(VkSamplerYcbcrModelConversion));
5759 vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
5760 marshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forMarshaling->components));
5761 vkStream->write((VkChromaLocation*)&forMarshaling->xChromaOffset, sizeof(VkChromaLocation));
5762 vkStream->write((VkChromaLocation*)&forMarshaling->yChromaOffset, sizeof(VkChromaLocation));
5763 vkStream->write((VkFilter*)&forMarshaling->chromaFilter, sizeof(VkFilter));
5764 vkStream->write((VkBool32*)&forMarshaling->forceExplicitReconstruction, sizeof(VkBool32));
5765 }
5766
unmarshal_VkSamplerYcbcrConversionCreateInfo(VulkanStreamGuest * vkStream,VkSamplerYcbcrConversionCreateInfo * forUnmarshaling)5767 void unmarshal_VkSamplerYcbcrConversionCreateInfo(
5768 VulkanStreamGuest* vkStream,
5769 VkSamplerYcbcrConversionCreateInfo* forUnmarshaling)
5770 {
5771 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5772 size_t pNext_size;
5773 pNext_size = vkStream->getBe32();
5774 if (pNext_size)
5775 {
5776 uint64_t pNext_placeholder;
5777 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5778 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5779 }
5780 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
5781 vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->ycbcrModel, sizeof(VkSamplerYcbcrModelConversion));
5782 vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->ycbcrRange, sizeof(VkSamplerYcbcrRange));
5783 unmarshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forUnmarshaling->components));
5784 vkStream->read((VkChromaLocation*)&forUnmarshaling->xChromaOffset, sizeof(VkChromaLocation));
5785 vkStream->read((VkChromaLocation*)&forUnmarshaling->yChromaOffset, sizeof(VkChromaLocation));
5786 vkStream->read((VkFilter*)&forUnmarshaling->chromaFilter, sizeof(VkFilter));
5787 vkStream->read((VkBool32*)&forUnmarshaling->forceExplicitReconstruction, sizeof(VkBool32));
5788 }
5789
marshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest * vkStream,const VkSamplerYcbcrConversionInfo * forMarshaling)5790 void marshal_VkSamplerYcbcrConversionInfo(
5791 VulkanStreamGuest* vkStream,
5792 const VkSamplerYcbcrConversionInfo* forMarshaling)
5793 {
5794 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5795 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5796 vkStream->putBe32(pNext_size);
5797 if (pNext_size)
5798 {
5799 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5800 marshal_extension_struct(vkStream, forMarshaling->pNext);
5801 }
5802 uint64_t cgen_var_164;
5803 vkStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&forMarshaling->conversion, &cgen_var_164, 1);
5804 vkStream->write((uint64_t*)&cgen_var_164, 1 * 8);
5805 }
5806
unmarshal_VkSamplerYcbcrConversionInfo(VulkanStreamGuest * vkStream,VkSamplerYcbcrConversionInfo * forUnmarshaling)5807 void unmarshal_VkSamplerYcbcrConversionInfo(
5808 VulkanStreamGuest* vkStream,
5809 VkSamplerYcbcrConversionInfo* forUnmarshaling)
5810 {
5811 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5812 size_t pNext_size;
5813 pNext_size = vkStream->getBe32();
5814 if (pNext_size)
5815 {
5816 uint64_t pNext_placeholder;
5817 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5818 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5819 }
5820 uint64_t cgen_var_165;
5821 vkStream->read((uint64_t*)&cgen_var_165, 1 * 8);
5822 vkStream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_165, (VkSamplerYcbcrConversion*)&forUnmarshaling->conversion, 1);
5823 }
5824
marshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest * vkStream,const VkBindImagePlaneMemoryInfo * forMarshaling)5825 void marshal_VkBindImagePlaneMemoryInfo(
5826 VulkanStreamGuest* vkStream,
5827 const VkBindImagePlaneMemoryInfo* forMarshaling)
5828 {
5829 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5830 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5831 vkStream->putBe32(pNext_size);
5832 if (pNext_size)
5833 {
5834 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5835 marshal_extension_struct(vkStream, forMarshaling->pNext);
5836 }
5837 vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
5838 }
5839
unmarshal_VkBindImagePlaneMemoryInfo(VulkanStreamGuest * vkStream,VkBindImagePlaneMemoryInfo * forUnmarshaling)5840 void unmarshal_VkBindImagePlaneMemoryInfo(
5841 VulkanStreamGuest* vkStream,
5842 VkBindImagePlaneMemoryInfo* forUnmarshaling)
5843 {
5844 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5845 size_t pNext_size;
5846 pNext_size = vkStream->getBe32();
5847 if (pNext_size)
5848 {
5849 uint64_t pNext_placeholder;
5850 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5851 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5852 }
5853 vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
5854 }
5855
marshal_VkImagePlaneMemoryRequirementsInfo(VulkanStreamGuest * vkStream,const VkImagePlaneMemoryRequirementsInfo * forMarshaling)5856 void marshal_VkImagePlaneMemoryRequirementsInfo(
5857 VulkanStreamGuest* vkStream,
5858 const VkImagePlaneMemoryRequirementsInfo* forMarshaling)
5859 {
5860 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5861 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5862 vkStream->putBe32(pNext_size);
5863 if (pNext_size)
5864 {
5865 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
5866 marshal_extension_struct(vkStream, forMarshaling->pNext);
5867 }
5868 vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
5869 }
5870
unmarshal_VkImagePlaneMemoryRequirementsInfo(VulkanStreamGuest * vkStream,VkImagePlaneMemoryRequirementsInfo * forUnmarshaling)5871 void unmarshal_VkImagePlaneMemoryRequirementsInfo(
5872 VulkanStreamGuest* vkStream,
5873 VkImagePlaneMemoryRequirementsInfo* forUnmarshaling)
5874 {
5875 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5876 size_t pNext_size;
5877 pNext_size = vkStream->getBe32();
5878 if (pNext_size)
5879 {
5880 uint64_t pNext_placeholder;
5881 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5882 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5883 }
5884 vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
5885 }
5886
marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSamplerYcbcrConversionFeatures * forMarshaling)5887 void marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
5888 VulkanStreamGuest* vkStream,
5889 const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling)
5890 {
5891 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5892 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5893 vkStream->putBe32(pNext_size);
5894 if (pNext_size)
5895 {
5896 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5897 marshal_extension_struct(vkStream, forMarshaling->pNext);
5898 }
5899 vkStream->write((VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
5900 }
5901
unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceSamplerYcbcrConversionFeatures * forUnmarshaling)5902 void unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
5903 VulkanStreamGuest* vkStream,
5904 VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling)
5905 {
5906 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5907 size_t pNext_size;
5908 pNext_size = vkStream->getBe32();
5909 if (pNext_size)
5910 {
5911 uint64_t pNext_placeholder;
5912 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5913 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5914 }
5915 vkStream->read((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, sizeof(VkBool32));
5916 }
5917
marshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStreamGuest * vkStream,const VkSamplerYcbcrConversionImageFormatProperties * forMarshaling)5918 void marshal_VkSamplerYcbcrConversionImageFormatProperties(
5919 VulkanStreamGuest* vkStream,
5920 const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling)
5921 {
5922 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5923 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5924 vkStream->putBe32(pNext_size);
5925 if (pNext_size)
5926 {
5927 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5928 marshal_extension_struct(vkStream, forMarshaling->pNext);
5929 }
5930 vkStream->write((uint32_t*)&forMarshaling->combinedImageSamplerDescriptorCount, sizeof(uint32_t));
5931 }
5932
unmarshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStreamGuest * vkStream,VkSamplerYcbcrConversionImageFormatProperties * forUnmarshaling)5933 void unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
5934 VulkanStreamGuest* vkStream,
5935 VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling)
5936 {
5937 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
5938 size_t pNext_size;
5939 pNext_size = vkStream->getBe32();
5940 if (pNext_size)
5941 {
5942 uint64_t pNext_placeholder;
5943 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
5944 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
5945 }
5946 vkStream->read((uint32_t*)&forUnmarshaling->combinedImageSamplerDescriptorCount, sizeof(uint32_t));
5947 }
5948
marshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest * vkStream,const VkDescriptorUpdateTemplateEntry * forMarshaling)5949 void marshal_VkDescriptorUpdateTemplateEntry(
5950 VulkanStreamGuest* vkStream,
5951 const VkDescriptorUpdateTemplateEntry* forMarshaling)
5952 {
5953 vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
5954 vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
5955 vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
5956 vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
5957 uint64_t cgen_var_166 = (uint64_t)forMarshaling->offset;
5958 vkStream->putBe64(cgen_var_166);
5959 uint64_t cgen_var_167 = (uint64_t)forMarshaling->stride;
5960 vkStream->putBe64(cgen_var_167);
5961 }
5962
unmarshal_VkDescriptorUpdateTemplateEntry(VulkanStreamGuest * vkStream,VkDescriptorUpdateTemplateEntry * forUnmarshaling)5963 void unmarshal_VkDescriptorUpdateTemplateEntry(
5964 VulkanStreamGuest* vkStream,
5965 VkDescriptorUpdateTemplateEntry* forUnmarshaling)
5966 {
5967 vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
5968 vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
5969 vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
5970 vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
5971 forUnmarshaling->offset = (size_t)vkStream->getBe64();
5972 forUnmarshaling->stride = (size_t)vkStream->getBe64();
5973 }
5974
marshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStreamGuest * vkStream,const VkDescriptorUpdateTemplateCreateInfo * forMarshaling)5975 void marshal_VkDescriptorUpdateTemplateCreateInfo(
5976 VulkanStreamGuest* vkStream,
5977 const VkDescriptorUpdateTemplateCreateInfo* forMarshaling)
5978 {
5979 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
5980 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
5981 vkStream->putBe32(pNext_size);
5982 if (pNext_size)
5983 {
5984 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
5985 marshal_extension_struct(vkStream, forMarshaling->pNext);
5986 }
5987 vkStream->write((VkDescriptorUpdateTemplateCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorUpdateTemplateCreateFlags));
5988 vkStream->write((uint32_t*)&forMarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
5989 for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorUpdateEntryCount; ++i)
5990 {
5991 marshal_VkDescriptorUpdateTemplateEntry(vkStream, (const VkDescriptorUpdateTemplateEntry*)(forMarshaling->pDescriptorUpdateEntries + i));
5992 }
5993 vkStream->write((VkDescriptorUpdateTemplateType*)&forMarshaling->templateType, sizeof(VkDescriptorUpdateTemplateType));
5994 uint64_t cgen_var_170;
5995 vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&forMarshaling->descriptorSetLayout, &cgen_var_170, 1);
5996 vkStream->write((uint64_t*)&cgen_var_170, 1 * 8);
5997 vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
5998 uint64_t cgen_var_171;
5999 vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_171, 1);
6000 vkStream->write((uint64_t*)&cgen_var_171, 1 * 8);
6001 vkStream->write((uint32_t*)&forMarshaling->set, sizeof(uint32_t));
6002 }
6003
unmarshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStreamGuest * vkStream,VkDescriptorUpdateTemplateCreateInfo * forUnmarshaling)6004 void unmarshal_VkDescriptorUpdateTemplateCreateInfo(
6005 VulkanStreamGuest* vkStream,
6006 VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling)
6007 {
6008 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6009 size_t pNext_size;
6010 pNext_size = vkStream->getBe32();
6011 if (pNext_size)
6012 {
6013 uint64_t pNext_placeholder;
6014 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6015 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6016 }
6017 vkStream->read((VkDescriptorUpdateTemplateCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorUpdateTemplateCreateFlags));
6018 vkStream->read((uint32_t*)&forUnmarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
6019 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorUpdateEntryCount; ++i)
6020 {
6021 unmarshal_VkDescriptorUpdateTemplateEntry(vkStream, (VkDescriptorUpdateTemplateEntry*)(forUnmarshaling->pDescriptorUpdateEntries + i));
6022 }
6023 vkStream->read((VkDescriptorUpdateTemplateType*)&forUnmarshaling->templateType, sizeof(VkDescriptorUpdateTemplateType));
6024 uint64_t cgen_var_172;
6025 vkStream->read((uint64_t*)&cgen_var_172, 1 * 8);
6026 vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_172, (VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout, 1);
6027 vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
6028 uint64_t cgen_var_173;
6029 vkStream->read((uint64_t*)&cgen_var_173, 1 * 8);
6030 vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_173, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
6031 vkStream->read((uint32_t*)&forUnmarshaling->set, sizeof(uint32_t));
6032 }
6033
marshal_VkExternalMemoryProperties(VulkanStreamGuest * vkStream,const VkExternalMemoryProperties * forMarshaling)6034 void marshal_VkExternalMemoryProperties(
6035 VulkanStreamGuest* vkStream,
6036 const VkExternalMemoryProperties* forMarshaling)
6037 {
6038 vkStream->write((VkExternalMemoryFeatureFlags*)&forMarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlags));
6039 vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6040 vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6041 }
6042
unmarshal_VkExternalMemoryProperties(VulkanStreamGuest * vkStream,VkExternalMemoryProperties * forUnmarshaling)6043 void unmarshal_VkExternalMemoryProperties(
6044 VulkanStreamGuest* vkStream,
6045 VkExternalMemoryProperties* forUnmarshaling)
6046 {
6047 vkStream->read((VkExternalMemoryFeatureFlags*)&forUnmarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlags));
6048 vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6049 vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6050 }
6051
marshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalImageFormatInfo * forMarshaling)6052 void marshal_VkPhysicalDeviceExternalImageFormatInfo(
6053 VulkanStreamGuest* vkStream,
6054 const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling)
6055 {
6056 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6057 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6058 vkStream->putBe32(pNext_size);
6059 if (pNext_size)
6060 {
6061 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6062 marshal_extension_struct(vkStream, forMarshaling->pNext);
6063 }
6064 vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6065 }
6066
unmarshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalImageFormatInfo * forUnmarshaling)6067 void unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
6068 VulkanStreamGuest* vkStream,
6069 VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling)
6070 {
6071 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6072 size_t pNext_size;
6073 pNext_size = vkStream->getBe32();
6074 if (pNext_size)
6075 {
6076 uint64_t pNext_placeholder;
6077 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6078 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6079 }
6080 vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6081 }
6082
marshal_VkExternalImageFormatProperties(VulkanStreamGuest * vkStream,const VkExternalImageFormatProperties * forMarshaling)6083 void marshal_VkExternalImageFormatProperties(
6084 VulkanStreamGuest* vkStream,
6085 const VkExternalImageFormatProperties* forMarshaling)
6086 {
6087 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6088 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6089 vkStream->putBe32(pNext_size);
6090 if (pNext_size)
6091 {
6092 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6093 marshal_extension_struct(vkStream, forMarshaling->pNext);
6094 }
6095 marshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
6096 }
6097
unmarshal_VkExternalImageFormatProperties(VulkanStreamGuest * vkStream,VkExternalImageFormatProperties * forUnmarshaling)6098 void unmarshal_VkExternalImageFormatProperties(
6099 VulkanStreamGuest* vkStream,
6100 VkExternalImageFormatProperties* forUnmarshaling)
6101 {
6102 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6103 size_t pNext_size;
6104 pNext_size = vkStream->getBe32();
6105 if (pNext_size)
6106 {
6107 uint64_t pNext_placeholder;
6108 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6109 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6110 }
6111 unmarshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
6112 }
6113
marshal_VkPhysicalDeviceExternalBufferInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalBufferInfo * forMarshaling)6114 void marshal_VkPhysicalDeviceExternalBufferInfo(
6115 VulkanStreamGuest* vkStream,
6116 const VkPhysicalDeviceExternalBufferInfo* forMarshaling)
6117 {
6118 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6119 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6120 vkStream->putBe32(pNext_size);
6121 if (pNext_size)
6122 {
6123 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6124 marshal_extension_struct(vkStream, forMarshaling->pNext);
6125 }
6126 vkStream->write((VkBufferCreateFlags*)&forMarshaling->flags, sizeof(VkBufferCreateFlags));
6127 vkStream->write((VkBufferUsageFlags*)&forMarshaling->usage, sizeof(VkBufferUsageFlags));
6128 vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6129 }
6130
unmarshal_VkPhysicalDeviceExternalBufferInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalBufferInfo * forUnmarshaling)6131 void unmarshal_VkPhysicalDeviceExternalBufferInfo(
6132 VulkanStreamGuest* vkStream,
6133 VkPhysicalDeviceExternalBufferInfo* forUnmarshaling)
6134 {
6135 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6136 size_t pNext_size;
6137 pNext_size = vkStream->getBe32();
6138 if (pNext_size)
6139 {
6140 uint64_t pNext_placeholder;
6141 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6142 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6143 }
6144 vkStream->read((VkBufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferCreateFlags));
6145 vkStream->read((VkBufferUsageFlags*)&forUnmarshaling->usage, sizeof(VkBufferUsageFlags));
6146 vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
6147 }
6148
marshal_VkExternalBufferProperties(VulkanStreamGuest * vkStream,const VkExternalBufferProperties * forMarshaling)6149 void marshal_VkExternalBufferProperties(
6150 VulkanStreamGuest* vkStream,
6151 const VkExternalBufferProperties* forMarshaling)
6152 {
6153 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6154 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6155 vkStream->putBe32(pNext_size);
6156 if (pNext_size)
6157 {
6158 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6159 marshal_extension_struct(vkStream, forMarshaling->pNext);
6160 }
6161 marshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forMarshaling->externalMemoryProperties));
6162 }
6163
unmarshal_VkExternalBufferProperties(VulkanStreamGuest * vkStream,VkExternalBufferProperties * forUnmarshaling)6164 void unmarshal_VkExternalBufferProperties(
6165 VulkanStreamGuest* vkStream,
6166 VkExternalBufferProperties* forUnmarshaling)
6167 {
6168 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6169 size_t pNext_size;
6170 pNext_size = vkStream->getBe32();
6171 if (pNext_size)
6172 {
6173 uint64_t pNext_placeholder;
6174 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6175 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6176 }
6177 unmarshal_VkExternalMemoryProperties(vkStream, (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties));
6178 }
6179
marshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceIDProperties * forMarshaling)6180 void marshal_VkPhysicalDeviceIDProperties(
6181 VulkanStreamGuest* vkStream,
6182 const VkPhysicalDeviceIDProperties* forMarshaling)
6183 {
6184 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6185 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6186 vkStream->putBe32(pNext_size);
6187 if (pNext_size)
6188 {
6189 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6190 marshal_extension_struct(vkStream, forMarshaling->pNext);
6191 }
6192 vkStream->write((uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6193 vkStream->write((uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6194 vkStream->write((uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6195 vkStream->write((uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
6196 vkStream->write((VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
6197 }
6198
unmarshal_VkPhysicalDeviceIDProperties(VulkanStreamGuest * vkStream,VkPhysicalDeviceIDProperties * forUnmarshaling)6199 void unmarshal_VkPhysicalDeviceIDProperties(
6200 VulkanStreamGuest* vkStream,
6201 VkPhysicalDeviceIDProperties* forUnmarshaling)
6202 {
6203 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6204 size_t pNext_size;
6205 pNext_size = vkStream->getBe32();
6206 if (pNext_size)
6207 {
6208 uint64_t pNext_placeholder;
6209 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6210 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6211 }
6212 vkStream->read((uint8_t*)forUnmarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
6213 vkStream->read((uint8_t*)forUnmarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
6214 vkStream->read((uint8_t*)forUnmarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
6215 vkStream->read((uint32_t*)&forUnmarshaling->deviceNodeMask, sizeof(uint32_t));
6216 vkStream->read((VkBool32*)&forUnmarshaling->deviceLUIDValid, sizeof(VkBool32));
6217 }
6218
marshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest * vkStream,const VkExternalMemoryImageCreateInfo * forMarshaling)6219 void marshal_VkExternalMemoryImageCreateInfo(
6220 VulkanStreamGuest* vkStream,
6221 const VkExternalMemoryImageCreateInfo* forMarshaling)
6222 {
6223 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6224 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6225 vkStream->putBe32(pNext_size);
6226 if (pNext_size)
6227 {
6228 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6229 marshal_extension_struct(vkStream, forMarshaling->pNext);
6230 }
6231 vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6232 }
6233
unmarshal_VkExternalMemoryImageCreateInfo(VulkanStreamGuest * vkStream,VkExternalMemoryImageCreateInfo * forUnmarshaling)6234 void unmarshal_VkExternalMemoryImageCreateInfo(
6235 VulkanStreamGuest* vkStream,
6236 VkExternalMemoryImageCreateInfo* forUnmarshaling)
6237 {
6238 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6239 size_t pNext_size;
6240 pNext_size = vkStream->getBe32();
6241 if (pNext_size)
6242 {
6243 uint64_t pNext_placeholder;
6244 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6245 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6246 }
6247 vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6248 }
6249
marshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest * vkStream,const VkExternalMemoryBufferCreateInfo * forMarshaling)6250 void marshal_VkExternalMemoryBufferCreateInfo(
6251 VulkanStreamGuest* vkStream,
6252 const VkExternalMemoryBufferCreateInfo* forMarshaling)
6253 {
6254 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6255 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6256 vkStream->putBe32(pNext_size);
6257 if (pNext_size)
6258 {
6259 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6260 marshal_extension_struct(vkStream, forMarshaling->pNext);
6261 }
6262 vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6263 }
6264
unmarshal_VkExternalMemoryBufferCreateInfo(VulkanStreamGuest * vkStream,VkExternalMemoryBufferCreateInfo * forUnmarshaling)6265 void unmarshal_VkExternalMemoryBufferCreateInfo(
6266 VulkanStreamGuest* vkStream,
6267 VkExternalMemoryBufferCreateInfo* forUnmarshaling)
6268 {
6269 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6270 size_t pNext_size;
6271 pNext_size = vkStream->getBe32();
6272 if (pNext_size)
6273 {
6274 uint64_t pNext_placeholder;
6275 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6276 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6277 }
6278 vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6279 }
6280
marshal_VkExportMemoryAllocateInfo(VulkanStreamGuest * vkStream,const VkExportMemoryAllocateInfo * forMarshaling)6281 void marshal_VkExportMemoryAllocateInfo(
6282 VulkanStreamGuest* vkStream,
6283 const VkExportMemoryAllocateInfo* forMarshaling)
6284 {
6285 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6286 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6287 vkStream->putBe32(pNext_size);
6288 if (pNext_size)
6289 {
6290 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6291 marshal_extension_struct(vkStream, forMarshaling->pNext);
6292 }
6293 vkStream->write((VkExternalMemoryHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6294 }
6295
unmarshal_VkExportMemoryAllocateInfo(VulkanStreamGuest * vkStream,VkExportMemoryAllocateInfo * forUnmarshaling)6296 void unmarshal_VkExportMemoryAllocateInfo(
6297 VulkanStreamGuest* vkStream,
6298 VkExportMemoryAllocateInfo* forUnmarshaling)
6299 {
6300 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6301 size_t pNext_size;
6302 pNext_size = vkStream->getBe32();
6303 if (pNext_size)
6304 {
6305 uint64_t pNext_placeholder;
6306 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6307 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6308 }
6309 vkStream->read((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlags));
6310 }
6311
marshal_VkPhysicalDeviceExternalFenceInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalFenceInfo * forMarshaling)6312 void marshal_VkPhysicalDeviceExternalFenceInfo(
6313 VulkanStreamGuest* vkStream,
6314 const VkPhysicalDeviceExternalFenceInfo* forMarshaling)
6315 {
6316 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6317 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6318 vkStream->putBe32(pNext_size);
6319 if (pNext_size)
6320 {
6321 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6322 marshal_extension_struct(vkStream, forMarshaling->pNext);
6323 }
6324 vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
6325 }
6326
unmarshal_VkPhysicalDeviceExternalFenceInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalFenceInfo * forUnmarshaling)6327 void unmarshal_VkPhysicalDeviceExternalFenceInfo(
6328 VulkanStreamGuest* vkStream,
6329 VkPhysicalDeviceExternalFenceInfo* forUnmarshaling)
6330 {
6331 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6332 size_t pNext_size;
6333 pNext_size = vkStream->getBe32();
6334 if (pNext_size)
6335 {
6336 uint64_t pNext_placeholder;
6337 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6338 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6339 }
6340 vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
6341 }
6342
marshal_VkExternalFenceProperties(VulkanStreamGuest * vkStream,const VkExternalFenceProperties * forMarshaling)6343 void marshal_VkExternalFenceProperties(
6344 VulkanStreamGuest* vkStream,
6345 const VkExternalFenceProperties* forMarshaling)
6346 {
6347 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6348 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6349 vkStream->putBe32(pNext_size);
6350 if (pNext_size)
6351 {
6352 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6353 marshal_extension_struct(vkStream, forMarshaling->pNext);
6354 }
6355 vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6356 vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6357 vkStream->write((VkExternalFenceFeatureFlags*)&forMarshaling->externalFenceFeatures, sizeof(VkExternalFenceFeatureFlags));
6358 }
6359
unmarshal_VkExternalFenceProperties(VulkanStreamGuest * vkStream,VkExternalFenceProperties * forUnmarshaling)6360 void unmarshal_VkExternalFenceProperties(
6361 VulkanStreamGuest* vkStream,
6362 VkExternalFenceProperties* forUnmarshaling)
6363 {
6364 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6365 size_t pNext_size;
6366 pNext_size = vkStream->getBe32();
6367 if (pNext_size)
6368 {
6369 uint64_t pNext_placeholder;
6370 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6371 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6372 }
6373 vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6374 vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6375 vkStream->read((VkExternalFenceFeatureFlags*)&forUnmarshaling->externalFenceFeatures, sizeof(VkExternalFenceFeatureFlags));
6376 }
6377
marshal_VkExportFenceCreateInfo(VulkanStreamGuest * vkStream,const VkExportFenceCreateInfo * forMarshaling)6378 void marshal_VkExportFenceCreateInfo(
6379 VulkanStreamGuest* vkStream,
6380 const VkExportFenceCreateInfo* forMarshaling)
6381 {
6382 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6383 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6384 vkStream->putBe32(pNext_size);
6385 if (pNext_size)
6386 {
6387 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6388 marshal_extension_struct(vkStream, forMarshaling->pNext);
6389 }
6390 vkStream->write((VkExternalFenceHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6391 }
6392
unmarshal_VkExportFenceCreateInfo(VulkanStreamGuest * vkStream,VkExportFenceCreateInfo * forUnmarshaling)6393 void unmarshal_VkExportFenceCreateInfo(
6394 VulkanStreamGuest* vkStream,
6395 VkExportFenceCreateInfo* forUnmarshaling)
6396 {
6397 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6398 size_t pNext_size;
6399 pNext_size = vkStream->getBe32();
6400 if (pNext_size)
6401 {
6402 uint64_t pNext_placeholder;
6403 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6404 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6405 }
6406 vkStream->read((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalFenceHandleTypeFlags));
6407 }
6408
marshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest * vkStream,const VkExportSemaphoreCreateInfo * forMarshaling)6409 void marshal_VkExportSemaphoreCreateInfo(
6410 VulkanStreamGuest* vkStream,
6411 const VkExportSemaphoreCreateInfo* forMarshaling)
6412 {
6413 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6414 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6415 vkStream->putBe32(pNext_size);
6416 if (pNext_size)
6417 {
6418 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6419 marshal_extension_struct(vkStream, forMarshaling->pNext);
6420 }
6421 vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->handleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6422 }
6423
unmarshal_VkExportSemaphoreCreateInfo(VulkanStreamGuest * vkStream,VkExportSemaphoreCreateInfo * forUnmarshaling)6424 void unmarshal_VkExportSemaphoreCreateInfo(
6425 VulkanStreamGuest* vkStream,
6426 VkExportSemaphoreCreateInfo* forUnmarshaling)
6427 {
6428 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6429 size_t pNext_size;
6430 pNext_size = vkStream->getBe32();
6431 if (pNext_size)
6432 {
6433 uint64_t pNext_placeholder;
6434 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6435 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6436 }
6437 vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->handleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6438 }
6439
marshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalSemaphoreInfo * forMarshaling)6440 void marshal_VkPhysicalDeviceExternalSemaphoreInfo(
6441 VulkanStreamGuest* vkStream,
6442 const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling)
6443 {
6444 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6445 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6446 vkStream->putBe32(pNext_size);
6447 if (pNext_size)
6448 {
6449 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6450 marshal_extension_struct(vkStream, forMarshaling->pNext);
6451 }
6452 vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
6453 }
6454
unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalSemaphoreInfo * forUnmarshaling)6455 void unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
6456 VulkanStreamGuest* vkStream,
6457 VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling)
6458 {
6459 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6460 size_t pNext_size;
6461 pNext_size = vkStream->getBe32();
6462 if (pNext_size)
6463 {
6464 uint64_t pNext_placeholder;
6465 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6466 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6467 }
6468 vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
6469 }
6470
marshal_VkExternalSemaphoreProperties(VulkanStreamGuest * vkStream,const VkExternalSemaphoreProperties * forMarshaling)6471 void marshal_VkExternalSemaphoreProperties(
6472 VulkanStreamGuest* vkStream,
6473 const VkExternalSemaphoreProperties* forMarshaling)
6474 {
6475 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6476 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6477 vkStream->putBe32(pNext_size);
6478 if (pNext_size)
6479 {
6480 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6481 marshal_extension_struct(vkStream, forMarshaling->pNext);
6482 }
6483 vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6484 vkStream->write((VkExternalSemaphoreHandleTypeFlags*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6485 vkStream->write((VkExternalSemaphoreFeatureFlags*)&forMarshaling->externalSemaphoreFeatures, sizeof(VkExternalSemaphoreFeatureFlags));
6486 }
6487
unmarshal_VkExternalSemaphoreProperties(VulkanStreamGuest * vkStream,VkExternalSemaphoreProperties * forUnmarshaling)6488 void unmarshal_VkExternalSemaphoreProperties(
6489 VulkanStreamGuest* vkStream,
6490 VkExternalSemaphoreProperties* forUnmarshaling)
6491 {
6492 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6493 size_t pNext_size;
6494 pNext_size = vkStream->getBe32();
6495 if (pNext_size)
6496 {
6497 uint64_t pNext_placeholder;
6498 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6499 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6500 }
6501 vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6502 vkStream->read((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalSemaphoreHandleTypeFlags));
6503 vkStream->read((VkExternalSemaphoreFeatureFlags*)&forUnmarshaling->externalSemaphoreFeatures, sizeof(VkExternalSemaphoreFeatureFlags));
6504 }
6505
marshal_VkPhysicalDeviceMaintenance3Properties(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMaintenance3Properties * forMarshaling)6506 void marshal_VkPhysicalDeviceMaintenance3Properties(
6507 VulkanStreamGuest* vkStream,
6508 const VkPhysicalDeviceMaintenance3Properties* forMarshaling)
6509 {
6510 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6511 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6512 vkStream->putBe32(pNext_size);
6513 if (pNext_size)
6514 {
6515 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6516 marshal_extension_struct(vkStream, forMarshaling->pNext);
6517 }
6518 vkStream->write((uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6519 vkStream->write((VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6520 }
6521
unmarshal_VkPhysicalDeviceMaintenance3Properties(VulkanStreamGuest * vkStream,VkPhysicalDeviceMaintenance3Properties * forUnmarshaling)6522 void unmarshal_VkPhysicalDeviceMaintenance3Properties(
6523 VulkanStreamGuest* vkStream,
6524 VkPhysicalDeviceMaintenance3Properties* forUnmarshaling)
6525 {
6526 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6527 size_t pNext_size;
6528 pNext_size = vkStream->getBe32();
6529 if (pNext_size)
6530 {
6531 uint64_t pNext_placeholder;
6532 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6533 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6534 }
6535 vkStream->read((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, sizeof(uint32_t));
6536 vkStream->read((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
6537 }
6538
marshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutSupport * forMarshaling)6539 void marshal_VkDescriptorSetLayoutSupport(
6540 VulkanStreamGuest* vkStream,
6541 const VkDescriptorSetLayoutSupport* forMarshaling)
6542 {
6543 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6544 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6545 vkStream->putBe32(pNext_size);
6546 if (pNext_size)
6547 {
6548 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6549 marshal_extension_struct(vkStream, forMarshaling->pNext);
6550 }
6551 vkStream->write((VkBool32*)&forMarshaling->supported, sizeof(VkBool32));
6552 }
6553
unmarshal_VkDescriptorSetLayoutSupport(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutSupport * forUnmarshaling)6554 void unmarshal_VkDescriptorSetLayoutSupport(
6555 VulkanStreamGuest* vkStream,
6556 VkDescriptorSetLayoutSupport* forUnmarshaling)
6557 {
6558 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6559 size_t pNext_size;
6560 pNext_size = vkStream->getBe32();
6561 if (pNext_size)
6562 {
6563 uint64_t pNext_placeholder;
6564 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6565 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6566 }
6567 vkStream->read((VkBool32*)&forUnmarshaling->supported, sizeof(VkBool32));
6568 }
6569
marshal_VkPhysicalDeviceShaderDrawParameterFeatures(VulkanStreamGuest * vkStream,const VkPhysicalDeviceShaderDrawParameterFeatures * forMarshaling)6570 void marshal_VkPhysicalDeviceShaderDrawParameterFeatures(
6571 VulkanStreamGuest* vkStream,
6572 const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling)
6573 {
6574 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6575 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6576 vkStream->putBe32(pNext_size);
6577 if (pNext_size)
6578 {
6579 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
6580 marshal_extension_struct(vkStream, forMarshaling->pNext);
6581 }
6582 vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
6583 }
6584
unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(VulkanStreamGuest * vkStream,VkPhysicalDeviceShaderDrawParameterFeatures * forUnmarshaling)6585 void unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
6586 VulkanStreamGuest* vkStream,
6587 VkPhysicalDeviceShaderDrawParameterFeatures* forUnmarshaling)
6588 {
6589 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6590 size_t pNext_size;
6591 pNext_size = vkStream->getBe32();
6592 if (pNext_size)
6593 {
6594 uint64_t pNext_placeholder;
6595 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6596 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6597 }
6598 vkStream->read((VkBool32*)&forUnmarshaling->shaderDrawParameters, sizeof(VkBool32));
6599 }
6600
6601 #endif
6602 #ifdef VK_KHR_surface
marshal_VkSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkSurfaceCapabilitiesKHR * forMarshaling)6603 void marshal_VkSurfaceCapabilitiesKHR(
6604 VulkanStreamGuest* vkStream,
6605 const VkSurfaceCapabilitiesKHR* forMarshaling)
6606 {
6607 vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
6608 vkStream->write((uint32_t*)&forMarshaling->maxImageCount, sizeof(uint32_t));
6609 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->currentExtent));
6610 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minImageExtent));
6611 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxImageExtent));
6612 vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
6613 vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
6614 vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6615 vkStream->write((VkCompositeAlphaFlagsKHR*)&forMarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
6616 vkStream->write((VkImageUsageFlags*)&forMarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
6617 }
6618
unmarshal_VkSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,VkSurfaceCapabilitiesKHR * forUnmarshaling)6619 void unmarshal_VkSurfaceCapabilitiesKHR(
6620 VulkanStreamGuest* vkStream,
6621 VkSurfaceCapabilitiesKHR* forUnmarshaling)
6622 {
6623 vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
6624 vkStream->read((uint32_t*)&forUnmarshaling->maxImageCount, sizeof(uint32_t));
6625 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->currentExtent));
6626 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minImageExtent));
6627 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxImageExtent));
6628 vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
6629 vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
6630 vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6631 vkStream->read((VkCompositeAlphaFlagsKHR*)&forUnmarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
6632 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
6633 }
6634
marshal_VkSurfaceFormatKHR(VulkanStreamGuest * vkStream,const VkSurfaceFormatKHR * forMarshaling)6635 void marshal_VkSurfaceFormatKHR(
6636 VulkanStreamGuest* vkStream,
6637 const VkSurfaceFormatKHR* forMarshaling)
6638 {
6639 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
6640 vkStream->write((VkColorSpaceKHR*)&forMarshaling->colorSpace, sizeof(VkColorSpaceKHR));
6641 }
6642
unmarshal_VkSurfaceFormatKHR(VulkanStreamGuest * vkStream,VkSurfaceFormatKHR * forUnmarshaling)6643 void unmarshal_VkSurfaceFormatKHR(
6644 VulkanStreamGuest* vkStream,
6645 VkSurfaceFormatKHR* forUnmarshaling)
6646 {
6647 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
6648 vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->colorSpace, sizeof(VkColorSpaceKHR));
6649 }
6650
6651 #endif
6652 #ifdef VK_KHR_swapchain
marshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,const VkSwapchainCreateInfoKHR * forMarshaling)6653 void marshal_VkSwapchainCreateInfoKHR(
6654 VulkanStreamGuest* vkStream,
6655 const VkSwapchainCreateInfoKHR* forMarshaling)
6656 {
6657 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6658 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6659 vkStream->putBe32(pNext_size);
6660 if (pNext_size)
6661 {
6662 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6663 marshal_extension_struct(vkStream, forMarshaling->pNext);
6664 }
6665 vkStream->write((VkSwapchainCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkSwapchainCreateFlagsKHR));
6666 uint64_t cgen_var_174;
6667 vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_174, 1);
6668 vkStream->write((uint64_t*)&cgen_var_174, 1 * 8);
6669 vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
6670 vkStream->write((VkFormat*)&forMarshaling->imageFormat, sizeof(VkFormat));
6671 vkStream->write((VkColorSpaceKHR*)&forMarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
6672 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->imageExtent));
6673 vkStream->write((uint32_t*)&forMarshaling->imageArrayLayers, sizeof(uint32_t));
6674 vkStream->write((VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
6675 vkStream->write((VkSharingMode*)&forMarshaling->imageSharingMode, sizeof(VkSharingMode));
6676 vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
6677 // WARNING PTR CHECK
6678 uint64_t cgen_var_175 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
6679 vkStream->putBe64(cgen_var_175);
6680 if (forMarshaling->pQueueFamilyIndices)
6681 {
6682 vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
6683 }
6684 vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->preTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6685 vkStream->write((VkCompositeAlphaFlagBitsKHR*)&forMarshaling->compositeAlpha, sizeof(VkCompositeAlphaFlagBitsKHR));
6686 vkStream->write((VkPresentModeKHR*)&forMarshaling->presentMode, sizeof(VkPresentModeKHR));
6687 vkStream->write((VkBool32*)&forMarshaling->clipped, sizeof(VkBool32));
6688 uint64_t cgen_var_176;
6689 vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->oldSwapchain, &cgen_var_176, 1);
6690 vkStream->write((uint64_t*)&cgen_var_176, 1 * 8);
6691 }
6692
unmarshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,VkSwapchainCreateInfoKHR * forUnmarshaling)6693 void unmarshal_VkSwapchainCreateInfoKHR(
6694 VulkanStreamGuest* vkStream,
6695 VkSwapchainCreateInfoKHR* forUnmarshaling)
6696 {
6697 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6698 size_t pNext_size;
6699 pNext_size = vkStream->getBe32();
6700 if (pNext_size)
6701 {
6702 uint64_t pNext_placeholder;
6703 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6704 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6705 }
6706 vkStream->read((VkSwapchainCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkSwapchainCreateFlagsKHR));
6707 uint64_t cgen_var_177;
6708 vkStream->read((uint64_t*)&cgen_var_177, 1 * 8);
6709 vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_177, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
6710 vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
6711 vkStream->read((VkFormat*)&forUnmarshaling->imageFormat, sizeof(VkFormat));
6712 vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
6713 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->imageExtent));
6714 vkStream->read((uint32_t*)&forUnmarshaling->imageArrayLayers, sizeof(uint32_t));
6715 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->imageUsage, sizeof(VkImageUsageFlags));
6716 vkStream->read((VkSharingMode*)&forUnmarshaling->imageSharingMode, sizeof(VkSharingMode));
6717 vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
6718 // WARNING PTR CHECK
6719 const uint32_t* check_pQueueFamilyIndices;
6720 check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
6721 if (forUnmarshaling->pQueueFamilyIndices)
6722 {
6723 if (!(check_pQueueFamilyIndices))
6724 {
6725 fprintf(stderr, "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and host\n");
6726 }
6727 vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices, forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
6728 }
6729 vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->preTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
6730 vkStream->read((VkCompositeAlphaFlagBitsKHR*)&forUnmarshaling->compositeAlpha, sizeof(VkCompositeAlphaFlagBitsKHR));
6731 vkStream->read((VkPresentModeKHR*)&forUnmarshaling->presentMode, sizeof(VkPresentModeKHR));
6732 vkStream->read((VkBool32*)&forUnmarshaling->clipped, sizeof(VkBool32));
6733 uint64_t cgen_var_179;
6734 vkStream->read((uint64_t*)&cgen_var_179, 1 * 8);
6735 vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_179, (VkSwapchainKHR*)&forUnmarshaling->oldSwapchain, 1);
6736 }
6737
marshal_VkPresentInfoKHR(VulkanStreamGuest * vkStream,const VkPresentInfoKHR * forMarshaling)6738 void marshal_VkPresentInfoKHR(
6739 VulkanStreamGuest* vkStream,
6740 const VkPresentInfoKHR* forMarshaling)
6741 {
6742 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6743 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6744 vkStream->putBe32(pNext_size);
6745 if (pNext_size)
6746 {
6747 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6748 marshal_extension_struct(vkStream, forMarshaling->pNext);
6749 }
6750 vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
6751 if (forMarshaling->waitSemaphoreCount)
6752 {
6753 uint64_t* cgen_var_180;
6754 vkStream->alloc((void**)&cgen_var_180, forMarshaling->waitSemaphoreCount * 8);
6755 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_180, forMarshaling->waitSemaphoreCount);
6756 vkStream->write((uint64_t*)cgen_var_180, forMarshaling->waitSemaphoreCount * 8);
6757 }
6758 vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
6759 if (forMarshaling->swapchainCount)
6760 {
6761 uint64_t* cgen_var_181;
6762 vkStream->alloc((void**)&cgen_var_181, forMarshaling->swapchainCount * 8);
6763 vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(forMarshaling->pSwapchains, cgen_var_181, forMarshaling->swapchainCount);
6764 vkStream->write((uint64_t*)cgen_var_181, forMarshaling->swapchainCount * 8);
6765 }
6766 vkStream->write((const uint32_t*)forMarshaling->pImageIndices, forMarshaling->swapchainCount * sizeof(const uint32_t));
6767 // WARNING PTR CHECK
6768 uint64_t cgen_var_182 = (uint64_t)(uintptr_t)forMarshaling->pResults;
6769 vkStream->putBe64(cgen_var_182);
6770 if (forMarshaling->pResults)
6771 {
6772 vkStream->write((VkResult*)forMarshaling->pResults, forMarshaling->swapchainCount * sizeof(VkResult));
6773 }
6774 }
6775
unmarshal_VkPresentInfoKHR(VulkanStreamGuest * vkStream,VkPresentInfoKHR * forUnmarshaling)6776 void unmarshal_VkPresentInfoKHR(
6777 VulkanStreamGuest* vkStream,
6778 VkPresentInfoKHR* forUnmarshaling)
6779 {
6780 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6781 size_t pNext_size;
6782 pNext_size = vkStream->getBe32();
6783 if (pNext_size)
6784 {
6785 uint64_t pNext_placeholder;
6786 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6787 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6788 }
6789 vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
6790 if (forUnmarshaling->waitSemaphoreCount)
6791 {
6792 uint64_t* cgen_var_183;
6793 vkStream->alloc((void**)&cgen_var_183, forUnmarshaling->waitSemaphoreCount * 8);
6794 vkStream->read((uint64_t*)cgen_var_183, forUnmarshaling->waitSemaphoreCount * 8);
6795 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_183, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
6796 }
6797 vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
6798 if (forUnmarshaling->swapchainCount)
6799 {
6800 uint64_t* cgen_var_184;
6801 vkStream->alloc((void**)&cgen_var_184, forUnmarshaling->swapchainCount * 8);
6802 vkStream->read((uint64_t*)cgen_var_184, forUnmarshaling->swapchainCount * 8);
6803 vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_184, (VkSwapchainKHR*)forUnmarshaling->pSwapchains, forUnmarshaling->swapchainCount);
6804 }
6805 vkStream->read((uint32_t*)forUnmarshaling->pImageIndices, forUnmarshaling->swapchainCount * sizeof(const uint32_t));
6806 // WARNING PTR CHECK
6807 VkResult* check_pResults;
6808 check_pResults = (VkResult*)(uintptr_t)vkStream->getBe64();
6809 if (forUnmarshaling->pResults)
6810 {
6811 if (!(check_pResults))
6812 {
6813 fprintf(stderr, "fatal: forUnmarshaling->pResults inconsistent between guest and host\n");
6814 }
6815 vkStream->read((VkResult*)forUnmarshaling->pResults, forUnmarshaling->swapchainCount * sizeof(VkResult));
6816 }
6817 }
6818
marshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,const VkImageSwapchainCreateInfoKHR * forMarshaling)6819 void marshal_VkImageSwapchainCreateInfoKHR(
6820 VulkanStreamGuest* vkStream,
6821 const VkImageSwapchainCreateInfoKHR* forMarshaling)
6822 {
6823 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6824 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6825 vkStream->putBe32(pNext_size);
6826 if (pNext_size)
6827 {
6828 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6829 marshal_extension_struct(vkStream, forMarshaling->pNext);
6830 }
6831 uint64_t cgen_var_186;
6832 vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_186, 1);
6833 vkStream->write((uint64_t*)&cgen_var_186, 1 * 8);
6834 }
6835
unmarshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,VkImageSwapchainCreateInfoKHR * forUnmarshaling)6836 void unmarshal_VkImageSwapchainCreateInfoKHR(
6837 VulkanStreamGuest* vkStream,
6838 VkImageSwapchainCreateInfoKHR* forUnmarshaling)
6839 {
6840 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6841 size_t pNext_size;
6842 pNext_size = vkStream->getBe32();
6843 if (pNext_size)
6844 {
6845 uint64_t pNext_placeholder;
6846 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6847 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6848 }
6849 uint64_t cgen_var_187;
6850 vkStream->read((uint64_t*)&cgen_var_187, 1 * 8);
6851 vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_187, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
6852 }
6853
marshal_VkBindImageMemorySwapchainInfoKHR(VulkanStreamGuest * vkStream,const VkBindImageMemorySwapchainInfoKHR * forMarshaling)6854 void marshal_VkBindImageMemorySwapchainInfoKHR(
6855 VulkanStreamGuest* vkStream,
6856 const VkBindImageMemorySwapchainInfoKHR* forMarshaling)
6857 {
6858 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6859 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6860 vkStream->putBe32(pNext_size);
6861 if (pNext_size)
6862 {
6863 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6864 marshal_extension_struct(vkStream, forMarshaling->pNext);
6865 }
6866 uint64_t cgen_var_188;
6867 vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_188, 1);
6868 vkStream->write((uint64_t*)&cgen_var_188, 1 * 8);
6869 vkStream->write((uint32_t*)&forMarshaling->imageIndex, sizeof(uint32_t));
6870 }
6871
unmarshal_VkBindImageMemorySwapchainInfoKHR(VulkanStreamGuest * vkStream,VkBindImageMemorySwapchainInfoKHR * forUnmarshaling)6872 void unmarshal_VkBindImageMemorySwapchainInfoKHR(
6873 VulkanStreamGuest* vkStream,
6874 VkBindImageMemorySwapchainInfoKHR* forUnmarshaling)
6875 {
6876 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6877 size_t pNext_size;
6878 pNext_size = vkStream->getBe32();
6879 if (pNext_size)
6880 {
6881 uint64_t pNext_placeholder;
6882 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6883 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6884 }
6885 uint64_t cgen_var_189;
6886 vkStream->read((uint64_t*)&cgen_var_189, 1 * 8);
6887 vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_189, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
6888 vkStream->read((uint32_t*)&forUnmarshaling->imageIndex, sizeof(uint32_t));
6889 }
6890
marshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest * vkStream,const VkAcquireNextImageInfoKHR * forMarshaling)6891 void marshal_VkAcquireNextImageInfoKHR(
6892 VulkanStreamGuest* vkStream,
6893 const VkAcquireNextImageInfoKHR* forMarshaling)
6894 {
6895 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6896 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6897 vkStream->putBe32(pNext_size);
6898 if (pNext_size)
6899 {
6900 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6901 marshal_extension_struct(vkStream, forMarshaling->pNext);
6902 }
6903 uint64_t cgen_var_190;
6904 vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_190, 1);
6905 vkStream->write((uint64_t*)&cgen_var_190, 1 * 8);
6906 vkStream->write((uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
6907 uint64_t cgen_var_191;
6908 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_191, 1);
6909 vkStream->write((uint64_t*)&cgen_var_191, 1 * 8);
6910 uint64_t cgen_var_192;
6911 vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_192, 1);
6912 vkStream->write((uint64_t*)&cgen_var_192, 1 * 8);
6913 vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
6914 }
6915
unmarshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest * vkStream,VkAcquireNextImageInfoKHR * forUnmarshaling)6916 void unmarshal_VkAcquireNextImageInfoKHR(
6917 VulkanStreamGuest* vkStream,
6918 VkAcquireNextImageInfoKHR* forUnmarshaling)
6919 {
6920 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6921 size_t pNext_size;
6922 pNext_size = vkStream->getBe32();
6923 if (pNext_size)
6924 {
6925 uint64_t pNext_placeholder;
6926 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6927 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6928 }
6929 uint64_t cgen_var_193;
6930 vkStream->read((uint64_t*)&cgen_var_193, 1 * 8);
6931 vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_193, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
6932 vkStream->read((uint64_t*)&forUnmarshaling->timeout, sizeof(uint64_t));
6933 uint64_t cgen_var_194;
6934 vkStream->read((uint64_t*)&cgen_var_194, 1 * 8);
6935 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_194, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
6936 uint64_t cgen_var_195;
6937 vkStream->read((uint64_t*)&cgen_var_195, 1 * 8);
6938 vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_195, (VkFence*)&forUnmarshaling->fence, 1);
6939 vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
6940 }
6941
marshal_VkDeviceGroupPresentCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkDeviceGroupPresentCapabilitiesKHR * forMarshaling)6942 void marshal_VkDeviceGroupPresentCapabilitiesKHR(
6943 VulkanStreamGuest* vkStream,
6944 const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling)
6945 {
6946 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6947 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6948 vkStream->putBe32(pNext_size);
6949 if (pNext_size)
6950 {
6951 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6952 marshal_extension_struct(vkStream, forMarshaling->pNext);
6953 }
6954 vkStream->write((uint32_t*)forMarshaling->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
6955 vkStream->write((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
6956 }
6957
unmarshal_VkDeviceGroupPresentCapabilitiesKHR(VulkanStreamGuest * vkStream,VkDeviceGroupPresentCapabilitiesKHR * forUnmarshaling)6958 void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
6959 VulkanStreamGuest* vkStream,
6960 VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling)
6961 {
6962 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6963 size_t pNext_size;
6964 pNext_size = vkStream->getBe32();
6965 if (pNext_size)
6966 {
6967 uint64_t pNext_placeholder;
6968 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
6969 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
6970 }
6971 vkStream->read((uint32_t*)forUnmarshaling->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
6972 vkStream->read((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
6973 }
6974
marshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest * vkStream,const VkDeviceGroupPresentInfoKHR * forMarshaling)6975 void marshal_VkDeviceGroupPresentInfoKHR(
6976 VulkanStreamGuest* vkStream,
6977 const VkDeviceGroupPresentInfoKHR* forMarshaling)
6978 {
6979 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
6980 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
6981 vkStream->putBe32(pNext_size);
6982 if (pNext_size)
6983 {
6984 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
6985 marshal_extension_struct(vkStream, forMarshaling->pNext);
6986 }
6987 vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
6988 vkStream->write((const uint32_t*)forMarshaling->pDeviceMasks, forMarshaling->swapchainCount * sizeof(const uint32_t));
6989 vkStream->write((VkDeviceGroupPresentModeFlagBitsKHR*)&forMarshaling->mode, sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
6990 }
6991
unmarshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest * vkStream,VkDeviceGroupPresentInfoKHR * forUnmarshaling)6992 void unmarshal_VkDeviceGroupPresentInfoKHR(
6993 VulkanStreamGuest* vkStream,
6994 VkDeviceGroupPresentInfoKHR* forUnmarshaling)
6995 {
6996 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
6997 size_t pNext_size;
6998 pNext_size = vkStream->getBe32();
6999 if (pNext_size)
7000 {
7001 uint64_t pNext_placeholder;
7002 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7003 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7004 }
7005 vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
7006 vkStream->read((uint32_t*)forUnmarshaling->pDeviceMasks, forUnmarshaling->swapchainCount * sizeof(const uint32_t));
7007 vkStream->read((VkDeviceGroupPresentModeFlagBitsKHR*)&forUnmarshaling->mode, sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
7008 }
7009
marshal_VkDeviceGroupSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,const VkDeviceGroupSwapchainCreateInfoKHR * forMarshaling)7010 void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
7011 VulkanStreamGuest* vkStream,
7012 const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling)
7013 {
7014 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7015 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7016 vkStream->putBe32(pNext_size);
7017 if (pNext_size)
7018 {
7019 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7020 marshal_extension_struct(vkStream, forMarshaling->pNext);
7021 }
7022 vkStream->write((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
7023 }
7024
unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(VulkanStreamGuest * vkStream,VkDeviceGroupSwapchainCreateInfoKHR * forUnmarshaling)7025 void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
7026 VulkanStreamGuest* vkStream,
7027 VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling)
7028 {
7029 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7030 size_t pNext_size;
7031 pNext_size = vkStream->getBe32();
7032 if (pNext_size)
7033 {
7034 uint64_t pNext_placeholder;
7035 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7036 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7037 }
7038 vkStream->read((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
7039 }
7040
7041 #endif
7042 #ifdef VK_KHR_display
marshal_VkDisplayPropertiesKHR(VulkanStreamGuest * vkStream,const VkDisplayPropertiesKHR * forMarshaling)7043 void marshal_VkDisplayPropertiesKHR(
7044 VulkanStreamGuest* vkStream,
7045 const VkDisplayPropertiesKHR* forMarshaling)
7046 {
7047 uint64_t cgen_var_196;
7048 vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->display, &cgen_var_196, 1);
7049 vkStream->write((uint64_t*)&cgen_var_196, 1 * 8);
7050 vkStream->putString(forMarshaling->displayName);
7051 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalDimensions));
7052 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalResolution));
7053 vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
7054 vkStream->write((VkBool32*)&forMarshaling->planeReorderPossible, sizeof(VkBool32));
7055 vkStream->write((VkBool32*)&forMarshaling->persistentContent, sizeof(VkBool32));
7056 }
7057
unmarshal_VkDisplayPropertiesKHR(VulkanStreamGuest * vkStream,VkDisplayPropertiesKHR * forUnmarshaling)7058 void unmarshal_VkDisplayPropertiesKHR(
7059 VulkanStreamGuest* vkStream,
7060 VkDisplayPropertiesKHR* forUnmarshaling)
7061 {
7062 uint64_t cgen_var_197;
7063 vkStream->read((uint64_t*)&cgen_var_197, 1 * 8);
7064 vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_197, (VkDisplayKHR*)&forUnmarshaling->display, 1);
7065 vkStream->loadStringInPlace((char**)&forUnmarshaling->displayName);
7066 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalDimensions));
7067 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalResolution));
7068 vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
7069 vkStream->read((VkBool32*)&forUnmarshaling->planeReorderPossible, sizeof(VkBool32));
7070 vkStream->read((VkBool32*)&forUnmarshaling->persistentContent, sizeof(VkBool32));
7071 }
7072
marshal_VkDisplayModeParametersKHR(VulkanStreamGuest * vkStream,const VkDisplayModeParametersKHR * forMarshaling)7073 void marshal_VkDisplayModeParametersKHR(
7074 VulkanStreamGuest* vkStream,
7075 const VkDisplayModeParametersKHR* forMarshaling)
7076 {
7077 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->visibleRegion));
7078 vkStream->write((uint32_t*)&forMarshaling->refreshRate, sizeof(uint32_t));
7079 }
7080
unmarshal_VkDisplayModeParametersKHR(VulkanStreamGuest * vkStream,VkDisplayModeParametersKHR * forUnmarshaling)7081 void unmarshal_VkDisplayModeParametersKHR(
7082 VulkanStreamGuest* vkStream,
7083 VkDisplayModeParametersKHR* forUnmarshaling)
7084 {
7085 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->visibleRegion));
7086 vkStream->read((uint32_t*)&forUnmarshaling->refreshRate, sizeof(uint32_t));
7087 }
7088
marshal_VkDisplayModePropertiesKHR(VulkanStreamGuest * vkStream,const VkDisplayModePropertiesKHR * forMarshaling)7089 void marshal_VkDisplayModePropertiesKHR(
7090 VulkanStreamGuest* vkStream,
7091 const VkDisplayModePropertiesKHR* forMarshaling)
7092 {
7093 uint64_t cgen_var_198;
7094 vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_198, 1);
7095 vkStream->write((uint64_t*)&cgen_var_198, 1 * 8);
7096 marshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
7097 }
7098
unmarshal_VkDisplayModePropertiesKHR(VulkanStreamGuest * vkStream,VkDisplayModePropertiesKHR * forUnmarshaling)7099 void unmarshal_VkDisplayModePropertiesKHR(
7100 VulkanStreamGuest* vkStream,
7101 VkDisplayModePropertiesKHR* forUnmarshaling)
7102 {
7103 uint64_t cgen_var_199;
7104 vkStream->read((uint64_t*)&cgen_var_199, 1 * 8);
7105 vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_199, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
7106 unmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
7107 }
7108
marshal_VkDisplayModeCreateInfoKHR(VulkanStreamGuest * vkStream,const VkDisplayModeCreateInfoKHR * forMarshaling)7109 void marshal_VkDisplayModeCreateInfoKHR(
7110 VulkanStreamGuest* vkStream,
7111 const VkDisplayModeCreateInfoKHR* 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 vkStream->write((VkDisplayModeCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkDisplayModeCreateFlagsKHR));
7122 marshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
7123 }
7124
unmarshal_VkDisplayModeCreateInfoKHR(VulkanStreamGuest * vkStream,VkDisplayModeCreateInfoKHR * forUnmarshaling)7125 void unmarshal_VkDisplayModeCreateInfoKHR(
7126 VulkanStreamGuest* vkStream,
7127 VkDisplayModeCreateInfoKHR* forUnmarshaling)
7128 {
7129 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7130 size_t pNext_size;
7131 pNext_size = vkStream->getBe32();
7132 if (pNext_size)
7133 {
7134 uint64_t pNext_placeholder;
7135 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7136 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7137 }
7138 vkStream->read((VkDisplayModeCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkDisplayModeCreateFlagsKHR));
7139 unmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
7140 }
7141
marshal_VkDisplayPlaneCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneCapabilitiesKHR * forMarshaling)7142 void marshal_VkDisplayPlaneCapabilitiesKHR(
7143 VulkanStreamGuest* vkStream,
7144 const VkDisplayPlaneCapabilitiesKHR* forMarshaling)
7145 {
7146 vkStream->write((VkDisplayPlaneAlphaFlagsKHR*)&forMarshaling->supportedAlpha, sizeof(VkDisplayPlaneAlphaFlagsKHR));
7147 marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->minSrcPosition));
7148 marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->maxSrcPosition));
7149 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minSrcExtent));
7150 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxSrcExtent));
7151 marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->minDstPosition));
7152 marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->maxDstPosition));
7153 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minDstExtent));
7154 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxDstExtent));
7155 }
7156
unmarshal_VkDisplayPlaneCapabilitiesKHR(VulkanStreamGuest * vkStream,VkDisplayPlaneCapabilitiesKHR * forUnmarshaling)7157 void unmarshal_VkDisplayPlaneCapabilitiesKHR(
7158 VulkanStreamGuest* vkStream,
7159 VkDisplayPlaneCapabilitiesKHR* forUnmarshaling)
7160 {
7161 vkStream->read((VkDisplayPlaneAlphaFlagsKHR*)&forUnmarshaling->supportedAlpha, sizeof(VkDisplayPlaneAlphaFlagsKHR));
7162 unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->minSrcPosition));
7163 unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->maxSrcPosition));
7164 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minSrcExtent));
7165 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxSrcExtent));
7166 unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->minDstPosition));
7167 unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->maxDstPosition));
7168 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minDstExtent));
7169 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxDstExtent));
7170 }
7171
marshal_VkDisplayPlanePropertiesKHR(VulkanStreamGuest * vkStream,const VkDisplayPlanePropertiesKHR * forMarshaling)7172 void marshal_VkDisplayPlanePropertiesKHR(
7173 VulkanStreamGuest* vkStream,
7174 const VkDisplayPlanePropertiesKHR* forMarshaling)
7175 {
7176 uint64_t cgen_var_200;
7177 vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->currentDisplay, &cgen_var_200, 1);
7178 vkStream->write((uint64_t*)&cgen_var_200, 1 * 8);
7179 vkStream->write((uint32_t*)&forMarshaling->currentStackIndex, sizeof(uint32_t));
7180 }
7181
unmarshal_VkDisplayPlanePropertiesKHR(VulkanStreamGuest * vkStream,VkDisplayPlanePropertiesKHR * forUnmarshaling)7182 void unmarshal_VkDisplayPlanePropertiesKHR(
7183 VulkanStreamGuest* vkStream,
7184 VkDisplayPlanePropertiesKHR* forUnmarshaling)
7185 {
7186 uint64_t cgen_var_201;
7187 vkStream->read((uint64_t*)&cgen_var_201, 1 * 8);
7188 vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_201, (VkDisplayKHR*)&forUnmarshaling->currentDisplay, 1);
7189 vkStream->read((uint32_t*)&forUnmarshaling->currentStackIndex, sizeof(uint32_t));
7190 }
7191
marshal_VkDisplaySurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkDisplaySurfaceCreateInfoKHR * forMarshaling)7192 void marshal_VkDisplaySurfaceCreateInfoKHR(
7193 VulkanStreamGuest* vkStream,
7194 const VkDisplaySurfaceCreateInfoKHR* forMarshaling)
7195 {
7196 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7197 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7198 vkStream->putBe32(pNext_size);
7199 if (pNext_size)
7200 {
7201 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7202 marshal_extension_struct(vkStream, forMarshaling->pNext);
7203 }
7204 vkStream->write((VkDisplaySurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkDisplaySurfaceCreateFlagsKHR));
7205 uint64_t cgen_var_202;
7206 vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_202, 1);
7207 vkStream->write((uint64_t*)&cgen_var_202, 1 * 8);
7208 vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
7209 vkStream->write((uint32_t*)&forMarshaling->planeStackIndex, sizeof(uint32_t));
7210 vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
7211 vkStream->write((float*)&forMarshaling->globalAlpha, sizeof(float));
7212 vkStream->write((VkDisplayPlaneAlphaFlagBitsKHR*)&forMarshaling->alphaMode, sizeof(VkDisplayPlaneAlphaFlagBitsKHR));
7213 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->imageExtent));
7214 }
7215
unmarshal_VkDisplaySurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkDisplaySurfaceCreateInfoKHR * forUnmarshaling)7216 void unmarshal_VkDisplaySurfaceCreateInfoKHR(
7217 VulkanStreamGuest* vkStream,
7218 VkDisplaySurfaceCreateInfoKHR* forUnmarshaling)
7219 {
7220 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7221 size_t pNext_size;
7222 pNext_size = vkStream->getBe32();
7223 if (pNext_size)
7224 {
7225 uint64_t pNext_placeholder;
7226 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7227 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7228 }
7229 vkStream->read((VkDisplaySurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkDisplaySurfaceCreateFlagsKHR));
7230 uint64_t cgen_var_203;
7231 vkStream->read((uint64_t*)&cgen_var_203, 1 * 8);
7232 vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_203, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
7233 vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
7234 vkStream->read((uint32_t*)&forUnmarshaling->planeStackIndex, sizeof(uint32_t));
7235 vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
7236 vkStream->read((float*)&forUnmarshaling->globalAlpha, sizeof(float));
7237 vkStream->read((VkDisplayPlaneAlphaFlagBitsKHR*)&forUnmarshaling->alphaMode, sizeof(VkDisplayPlaneAlphaFlagBitsKHR));
7238 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->imageExtent));
7239 }
7240
7241 #endif
7242 #ifdef VK_KHR_display_swapchain
marshal_VkDisplayPresentInfoKHR(VulkanStreamGuest * vkStream,const VkDisplayPresentInfoKHR * forMarshaling)7243 void marshal_VkDisplayPresentInfoKHR(
7244 VulkanStreamGuest* vkStream,
7245 const VkDisplayPresentInfoKHR* forMarshaling)
7246 {
7247 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7248 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7249 vkStream->putBe32(pNext_size);
7250 if (pNext_size)
7251 {
7252 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7253 marshal_extension_struct(vkStream, forMarshaling->pNext);
7254 }
7255 marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->srcRect));
7256 marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->dstRect));
7257 vkStream->write((VkBool32*)&forMarshaling->persistent, sizeof(VkBool32));
7258 }
7259
unmarshal_VkDisplayPresentInfoKHR(VulkanStreamGuest * vkStream,VkDisplayPresentInfoKHR * forUnmarshaling)7260 void unmarshal_VkDisplayPresentInfoKHR(
7261 VulkanStreamGuest* vkStream,
7262 VkDisplayPresentInfoKHR* forUnmarshaling)
7263 {
7264 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7265 size_t pNext_size;
7266 pNext_size = vkStream->getBe32();
7267 if (pNext_size)
7268 {
7269 uint64_t pNext_placeholder;
7270 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7271 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7272 }
7273 unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->srcRect));
7274 unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->dstRect));
7275 vkStream->read((VkBool32*)&forUnmarshaling->persistent, sizeof(VkBool32));
7276 }
7277
7278 #endif
7279 #ifdef VK_KHR_xlib_surface
marshal_VkXlibSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkXlibSurfaceCreateInfoKHR * forMarshaling)7280 void marshal_VkXlibSurfaceCreateInfoKHR(
7281 VulkanStreamGuest* vkStream,
7282 const VkXlibSurfaceCreateInfoKHR* forMarshaling)
7283 {
7284 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7285 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7286 vkStream->putBe32(pNext_size);
7287 if (pNext_size)
7288 {
7289 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7290 marshal_extension_struct(vkStream, forMarshaling->pNext);
7291 }
7292 vkStream->write((VkXlibSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXlibSurfaceCreateFlagsKHR));
7293 // WARNING PTR CHECK
7294 uint64_t cgen_var_204 = (uint64_t)(uintptr_t)forMarshaling->dpy;
7295 vkStream->putBe64(cgen_var_204);
7296 if (forMarshaling->dpy)
7297 {
7298 vkStream->write((Display*)forMarshaling->dpy, sizeof(Display));
7299 }
7300 vkStream->write((Window*)&forMarshaling->window, sizeof(Window));
7301 }
7302
unmarshal_VkXlibSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkXlibSurfaceCreateInfoKHR * forUnmarshaling)7303 void unmarshal_VkXlibSurfaceCreateInfoKHR(
7304 VulkanStreamGuest* vkStream,
7305 VkXlibSurfaceCreateInfoKHR* forUnmarshaling)
7306 {
7307 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7308 size_t pNext_size;
7309 pNext_size = vkStream->getBe32();
7310 if (pNext_size)
7311 {
7312 uint64_t pNext_placeholder;
7313 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7314 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7315 }
7316 vkStream->read((VkXlibSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkXlibSurfaceCreateFlagsKHR));
7317 // WARNING PTR CHECK
7318 Display* check_dpy;
7319 check_dpy = (Display*)(uintptr_t)vkStream->getBe64();
7320 if (forUnmarshaling->dpy)
7321 {
7322 if (!(check_dpy))
7323 {
7324 fprintf(stderr, "fatal: forUnmarshaling->dpy inconsistent between guest and host\n");
7325 }
7326 vkStream->read((Display*)forUnmarshaling->dpy, sizeof(Display));
7327 }
7328 vkStream->read((Window*)&forUnmarshaling->window, sizeof(Window));
7329 }
7330
7331 #endif
7332 #ifdef VK_KHR_xcb_surface
marshal_VkXcbSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkXcbSurfaceCreateInfoKHR * forMarshaling)7333 void marshal_VkXcbSurfaceCreateInfoKHR(
7334 VulkanStreamGuest* vkStream,
7335 const VkXcbSurfaceCreateInfoKHR* forMarshaling)
7336 {
7337 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7338 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7339 vkStream->putBe32(pNext_size);
7340 if (pNext_size)
7341 {
7342 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7343 marshal_extension_struct(vkStream, forMarshaling->pNext);
7344 }
7345 vkStream->write((VkXcbSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXcbSurfaceCreateFlagsKHR));
7346 // WARNING PTR CHECK
7347 uint64_t cgen_var_206 = (uint64_t)(uintptr_t)forMarshaling->connection;
7348 vkStream->putBe64(cgen_var_206);
7349 if (forMarshaling->connection)
7350 {
7351 vkStream->write((xcb_connection_t*)forMarshaling->connection, sizeof(xcb_connection_t));
7352 }
7353 vkStream->write((xcb_window_t*)&forMarshaling->window, sizeof(xcb_window_t));
7354 }
7355
unmarshal_VkXcbSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkXcbSurfaceCreateInfoKHR * forUnmarshaling)7356 void unmarshal_VkXcbSurfaceCreateInfoKHR(
7357 VulkanStreamGuest* vkStream,
7358 VkXcbSurfaceCreateInfoKHR* forUnmarshaling)
7359 {
7360 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7361 size_t pNext_size;
7362 pNext_size = vkStream->getBe32();
7363 if (pNext_size)
7364 {
7365 uint64_t pNext_placeholder;
7366 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7367 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7368 }
7369 vkStream->read((VkXcbSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkXcbSurfaceCreateFlagsKHR));
7370 // WARNING PTR CHECK
7371 xcb_connection_t* check_connection;
7372 check_connection = (xcb_connection_t*)(uintptr_t)vkStream->getBe64();
7373 if (forUnmarshaling->connection)
7374 {
7375 if (!(check_connection))
7376 {
7377 fprintf(stderr, "fatal: forUnmarshaling->connection inconsistent between guest and host\n");
7378 }
7379 vkStream->read((xcb_connection_t*)forUnmarshaling->connection, sizeof(xcb_connection_t));
7380 }
7381 vkStream->read((xcb_window_t*)&forUnmarshaling->window, sizeof(xcb_window_t));
7382 }
7383
7384 #endif
7385 #ifdef VK_KHR_wayland_surface
marshal_VkWaylandSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkWaylandSurfaceCreateInfoKHR * forMarshaling)7386 void marshal_VkWaylandSurfaceCreateInfoKHR(
7387 VulkanStreamGuest* vkStream,
7388 const VkWaylandSurfaceCreateInfoKHR* forMarshaling)
7389 {
7390 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7391 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7392 vkStream->putBe32(pNext_size);
7393 if (pNext_size)
7394 {
7395 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7396 marshal_extension_struct(vkStream, forMarshaling->pNext);
7397 }
7398 vkStream->write((VkWaylandSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkWaylandSurfaceCreateFlagsKHR));
7399 // WARNING PTR CHECK
7400 uint64_t cgen_var_208 = (uint64_t)(uintptr_t)forMarshaling->display;
7401 vkStream->putBe64(cgen_var_208);
7402 if (forMarshaling->display)
7403 {
7404 vkStream->write((wl_display*)forMarshaling->display, sizeof(wl_display));
7405 }
7406 // WARNING PTR CHECK
7407 uint64_t cgen_var_209 = (uint64_t)(uintptr_t)forMarshaling->surface;
7408 vkStream->putBe64(cgen_var_209);
7409 if (forMarshaling->surface)
7410 {
7411 vkStream->write((wl_surface*)forMarshaling->surface, sizeof(wl_surface));
7412 }
7413 }
7414
unmarshal_VkWaylandSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkWaylandSurfaceCreateInfoKHR * forUnmarshaling)7415 void unmarshal_VkWaylandSurfaceCreateInfoKHR(
7416 VulkanStreamGuest* vkStream,
7417 VkWaylandSurfaceCreateInfoKHR* forUnmarshaling)
7418 {
7419 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7420 size_t pNext_size;
7421 pNext_size = vkStream->getBe32();
7422 if (pNext_size)
7423 {
7424 uint64_t pNext_placeholder;
7425 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7426 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7427 }
7428 vkStream->read((VkWaylandSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkWaylandSurfaceCreateFlagsKHR));
7429 // WARNING PTR CHECK
7430 wl_display* check_display;
7431 check_display = (wl_display*)(uintptr_t)vkStream->getBe64();
7432 if (forUnmarshaling->display)
7433 {
7434 if (!(check_display))
7435 {
7436 fprintf(stderr, "fatal: forUnmarshaling->display inconsistent between guest and host\n");
7437 }
7438 vkStream->read((wl_display*)forUnmarshaling->display, sizeof(wl_display));
7439 }
7440 // WARNING PTR CHECK
7441 wl_surface* check_surface;
7442 check_surface = (wl_surface*)(uintptr_t)vkStream->getBe64();
7443 if (forUnmarshaling->surface)
7444 {
7445 if (!(check_surface))
7446 {
7447 fprintf(stderr, "fatal: forUnmarshaling->surface inconsistent between guest and host\n");
7448 }
7449 vkStream->read((wl_surface*)forUnmarshaling->surface, sizeof(wl_surface));
7450 }
7451 }
7452
7453 #endif
7454 #ifdef VK_KHR_mir_surface
marshal_VkMirSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkMirSurfaceCreateInfoKHR * forMarshaling)7455 void marshal_VkMirSurfaceCreateInfoKHR(
7456 VulkanStreamGuest* vkStream,
7457 const VkMirSurfaceCreateInfoKHR* forMarshaling)
7458 {
7459 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7460 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7461 vkStream->putBe32(pNext_size);
7462 if (pNext_size)
7463 {
7464 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7465 marshal_extension_struct(vkStream, forMarshaling->pNext);
7466 }
7467 vkStream->write((VkMirSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkMirSurfaceCreateFlagsKHR));
7468 // WARNING PTR CHECK
7469 uint64_t cgen_var_212 = (uint64_t)(uintptr_t)forMarshaling->connection;
7470 vkStream->putBe64(cgen_var_212);
7471 if (forMarshaling->connection)
7472 {
7473 vkStream->write((MirConnection*)forMarshaling->connection, sizeof(MirConnection));
7474 }
7475 // WARNING PTR CHECK
7476 uint64_t cgen_var_213 = (uint64_t)(uintptr_t)forMarshaling->mirSurface;
7477 vkStream->putBe64(cgen_var_213);
7478 if (forMarshaling->mirSurface)
7479 {
7480 vkStream->write((MirSurface*)forMarshaling->mirSurface, sizeof(MirSurface));
7481 }
7482 }
7483
unmarshal_VkMirSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkMirSurfaceCreateInfoKHR * forUnmarshaling)7484 void unmarshal_VkMirSurfaceCreateInfoKHR(
7485 VulkanStreamGuest* vkStream,
7486 VkMirSurfaceCreateInfoKHR* forUnmarshaling)
7487 {
7488 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7489 size_t pNext_size;
7490 pNext_size = vkStream->getBe32();
7491 if (pNext_size)
7492 {
7493 uint64_t pNext_placeholder;
7494 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7495 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7496 }
7497 vkStream->read((VkMirSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkMirSurfaceCreateFlagsKHR));
7498 // WARNING PTR CHECK
7499 MirConnection* check_connection;
7500 check_connection = (MirConnection*)(uintptr_t)vkStream->getBe64();
7501 if (forUnmarshaling->connection)
7502 {
7503 if (!(check_connection))
7504 {
7505 fprintf(stderr, "fatal: forUnmarshaling->connection inconsistent between guest and host\n");
7506 }
7507 vkStream->read((MirConnection*)forUnmarshaling->connection, sizeof(MirConnection));
7508 }
7509 // WARNING PTR CHECK
7510 MirSurface* check_mirSurface;
7511 check_mirSurface = (MirSurface*)(uintptr_t)vkStream->getBe64();
7512 if (forUnmarshaling->mirSurface)
7513 {
7514 if (!(check_mirSurface))
7515 {
7516 fprintf(stderr, "fatal: forUnmarshaling->mirSurface inconsistent between guest and host\n");
7517 }
7518 vkStream->read((MirSurface*)forUnmarshaling->mirSurface, sizeof(MirSurface));
7519 }
7520 }
7521
7522 #endif
7523 #ifdef VK_KHR_android_surface
marshal_VkAndroidSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkAndroidSurfaceCreateInfoKHR * forMarshaling)7524 void marshal_VkAndroidSurfaceCreateInfoKHR(
7525 VulkanStreamGuest* vkStream,
7526 const VkAndroidSurfaceCreateInfoKHR* forMarshaling)
7527 {
7528 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7529 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7530 vkStream->putBe32(pNext_size);
7531 if (pNext_size)
7532 {
7533 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7534 marshal_extension_struct(vkStream, forMarshaling->pNext);
7535 }
7536 vkStream->write((VkAndroidSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkAndroidSurfaceCreateFlagsKHR));
7537 // WARNING PTR CHECK
7538 uint64_t cgen_var_216 = (uint64_t)(uintptr_t)forMarshaling->window;
7539 vkStream->putBe64(cgen_var_216);
7540 if (forMarshaling->window)
7541 {
7542 vkStream->write((ANativeWindow*)forMarshaling->window, sizeof(ANativeWindow));
7543 }
7544 }
7545
unmarshal_VkAndroidSurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkAndroidSurfaceCreateInfoKHR * forUnmarshaling)7546 void unmarshal_VkAndroidSurfaceCreateInfoKHR(
7547 VulkanStreamGuest* vkStream,
7548 VkAndroidSurfaceCreateInfoKHR* forUnmarshaling)
7549 {
7550 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7551 size_t pNext_size;
7552 pNext_size = vkStream->getBe32();
7553 if (pNext_size)
7554 {
7555 uint64_t pNext_placeholder;
7556 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7557 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7558 }
7559 vkStream->read((VkAndroidSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkAndroidSurfaceCreateFlagsKHR));
7560 // WARNING PTR CHECK
7561 ANativeWindow* check_window;
7562 check_window = (ANativeWindow*)(uintptr_t)vkStream->getBe64();
7563 if (forUnmarshaling->window)
7564 {
7565 if (!(check_window))
7566 {
7567 fprintf(stderr, "fatal: forUnmarshaling->window inconsistent between guest and host\n");
7568 }
7569 vkStream->read((ANativeWindow*)forUnmarshaling->window, sizeof(ANativeWindow));
7570 }
7571 }
7572
7573 #endif
7574 #ifdef VK_KHR_win32_surface
marshal_VkWin32SurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,const VkWin32SurfaceCreateInfoKHR * forMarshaling)7575 void marshal_VkWin32SurfaceCreateInfoKHR(
7576 VulkanStreamGuest* vkStream,
7577 const VkWin32SurfaceCreateInfoKHR* forMarshaling)
7578 {
7579 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7580 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7581 vkStream->putBe32(pNext_size);
7582 if (pNext_size)
7583 {
7584 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7585 marshal_extension_struct(vkStream, forMarshaling->pNext);
7586 }
7587 vkStream->write((VkWin32SurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkWin32SurfaceCreateFlagsKHR));
7588 vkStream->write((HINSTANCE*)&forMarshaling->hinstance, sizeof(HINSTANCE));
7589 vkStream->write((HWND*)&forMarshaling->hwnd, sizeof(HWND));
7590 }
7591
unmarshal_VkWin32SurfaceCreateInfoKHR(VulkanStreamGuest * vkStream,VkWin32SurfaceCreateInfoKHR * forUnmarshaling)7592 void unmarshal_VkWin32SurfaceCreateInfoKHR(
7593 VulkanStreamGuest* vkStream,
7594 VkWin32SurfaceCreateInfoKHR* forUnmarshaling)
7595 {
7596 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7597 size_t pNext_size;
7598 pNext_size = vkStream->getBe32();
7599 if (pNext_size)
7600 {
7601 uint64_t pNext_placeholder;
7602 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7603 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7604 }
7605 vkStream->read((VkWin32SurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkWin32SurfaceCreateFlagsKHR));
7606 vkStream->read((HINSTANCE*)&forUnmarshaling->hinstance, sizeof(HINSTANCE));
7607 vkStream->read((HWND*)&forUnmarshaling->hwnd, sizeof(HWND));
7608 }
7609
7610 #endif
7611 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
7612 #endif
7613 #ifdef VK_KHR_multiview
7614 #endif
7615 #ifdef VK_KHR_get_physical_device_properties2
7616 #endif
7617 #ifdef VK_KHR_device_group
7618 #endif
7619 #ifdef VK_KHR_shader_draw_parameters
7620 #endif
7621 #ifdef VK_KHR_maintenance1
7622 #endif
7623 #ifdef VK_KHR_device_group_creation
7624 #endif
7625 #ifdef VK_KHR_external_memory_capabilities
7626 #endif
7627 #ifdef VK_KHR_external_memory
7628 #endif
7629 #ifdef VK_KHR_external_memory_win32
marshal_VkImportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkImportMemoryWin32HandleInfoKHR * forMarshaling)7630 void marshal_VkImportMemoryWin32HandleInfoKHR(
7631 VulkanStreamGuest* vkStream,
7632 const VkImportMemoryWin32HandleInfoKHR* forMarshaling)
7633 {
7634 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7635 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7636 vkStream->putBe32(pNext_size);
7637 if (pNext_size)
7638 {
7639 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7640 marshal_extension_struct(vkStream, forMarshaling->pNext);
7641 }
7642 vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7643 vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
7644 vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
7645 }
7646
unmarshal_VkImportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkImportMemoryWin32HandleInfoKHR * forUnmarshaling)7647 void unmarshal_VkImportMemoryWin32HandleInfoKHR(
7648 VulkanStreamGuest* vkStream,
7649 VkImportMemoryWin32HandleInfoKHR* forUnmarshaling)
7650 {
7651 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7652 size_t pNext_size;
7653 pNext_size = vkStream->getBe32();
7654 if (pNext_size)
7655 {
7656 uint64_t pNext_placeholder;
7657 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7658 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7659 }
7660 vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7661 vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
7662 vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
7663 }
7664
marshal_VkExportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkExportMemoryWin32HandleInfoKHR * forMarshaling)7665 void marshal_VkExportMemoryWin32HandleInfoKHR(
7666 VulkanStreamGuest* vkStream,
7667 const VkExportMemoryWin32HandleInfoKHR* forMarshaling)
7668 {
7669 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7670 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7671 vkStream->putBe32(pNext_size);
7672 if (pNext_size)
7673 {
7674 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7675 marshal_extension_struct(vkStream, forMarshaling->pNext);
7676 }
7677 // WARNING PTR CHECK
7678 uint64_t cgen_var_218 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
7679 vkStream->putBe64(cgen_var_218);
7680 if (forMarshaling->pAttributes)
7681 {
7682 vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
7683 }
7684 vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
7685 vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
7686 }
7687
unmarshal_VkExportMemoryWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkExportMemoryWin32HandleInfoKHR * forUnmarshaling)7688 void unmarshal_VkExportMemoryWin32HandleInfoKHR(
7689 VulkanStreamGuest* vkStream,
7690 VkExportMemoryWin32HandleInfoKHR* forUnmarshaling)
7691 {
7692 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7693 size_t pNext_size;
7694 pNext_size = vkStream->getBe32();
7695 if (pNext_size)
7696 {
7697 uint64_t pNext_placeholder;
7698 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7699 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7700 }
7701 // WARNING PTR CHECK
7702 const SECURITY_ATTRIBUTES* check_pAttributes;
7703 check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
7704 if (forUnmarshaling->pAttributes)
7705 {
7706 if (!(check_pAttributes))
7707 {
7708 fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
7709 }
7710 vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
7711 }
7712 vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
7713 vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
7714 }
7715
marshal_VkMemoryWin32HandlePropertiesKHR(VulkanStreamGuest * vkStream,const VkMemoryWin32HandlePropertiesKHR * forMarshaling)7716 void marshal_VkMemoryWin32HandlePropertiesKHR(
7717 VulkanStreamGuest* vkStream,
7718 const VkMemoryWin32HandlePropertiesKHR* forMarshaling)
7719 {
7720 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7721 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7722 vkStream->putBe32(pNext_size);
7723 if (pNext_size)
7724 {
7725 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
7726 marshal_extension_struct(vkStream, forMarshaling->pNext);
7727 }
7728 vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
7729 }
7730
unmarshal_VkMemoryWin32HandlePropertiesKHR(VulkanStreamGuest * vkStream,VkMemoryWin32HandlePropertiesKHR * forUnmarshaling)7731 void unmarshal_VkMemoryWin32HandlePropertiesKHR(
7732 VulkanStreamGuest* vkStream,
7733 VkMemoryWin32HandlePropertiesKHR* forUnmarshaling)
7734 {
7735 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7736 size_t pNext_size;
7737 pNext_size = vkStream->getBe32();
7738 if (pNext_size)
7739 {
7740 uint64_t pNext_placeholder;
7741 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7742 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7743 }
7744 vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
7745 }
7746
marshal_VkMemoryGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkMemoryGetWin32HandleInfoKHR * forMarshaling)7747 void marshal_VkMemoryGetWin32HandleInfoKHR(
7748 VulkanStreamGuest* vkStream,
7749 const VkMemoryGetWin32HandleInfoKHR* forMarshaling)
7750 {
7751 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7752 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7753 vkStream->putBe32(pNext_size);
7754 if (pNext_size)
7755 {
7756 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7757 marshal_extension_struct(vkStream, forMarshaling->pNext);
7758 }
7759 uint64_t cgen_var_220;
7760 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_220, 1);
7761 vkStream->write((uint64_t*)&cgen_var_220, 1 * 8);
7762 vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7763 }
7764
unmarshal_VkMemoryGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkMemoryGetWin32HandleInfoKHR * forUnmarshaling)7765 void unmarshal_VkMemoryGetWin32HandleInfoKHR(
7766 VulkanStreamGuest* vkStream,
7767 VkMemoryGetWin32HandleInfoKHR* forUnmarshaling)
7768 {
7769 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7770 size_t pNext_size;
7771 pNext_size = vkStream->getBe32();
7772 if (pNext_size)
7773 {
7774 uint64_t pNext_placeholder;
7775 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7776 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7777 }
7778 uint64_t cgen_var_221;
7779 vkStream->read((uint64_t*)&cgen_var_221, 1 * 8);
7780 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_221, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
7781 vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7782 }
7783
7784 #endif
7785 #ifdef VK_KHR_external_memory_fd
marshal_VkImportMemoryFdInfoKHR(VulkanStreamGuest * vkStream,const VkImportMemoryFdInfoKHR * forMarshaling)7786 void marshal_VkImportMemoryFdInfoKHR(
7787 VulkanStreamGuest* vkStream,
7788 const VkImportMemoryFdInfoKHR* forMarshaling)
7789 {
7790 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7791 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7792 vkStream->putBe32(pNext_size);
7793 if (pNext_size)
7794 {
7795 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7796 marshal_extension_struct(vkStream, forMarshaling->pNext);
7797 }
7798 vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7799 vkStream->write((int*)&forMarshaling->fd, sizeof(int));
7800 }
7801
unmarshal_VkImportMemoryFdInfoKHR(VulkanStreamGuest * vkStream,VkImportMemoryFdInfoKHR * forUnmarshaling)7802 void unmarshal_VkImportMemoryFdInfoKHR(
7803 VulkanStreamGuest* vkStream,
7804 VkImportMemoryFdInfoKHR* forUnmarshaling)
7805 {
7806 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7807 size_t pNext_size;
7808 pNext_size = vkStream->getBe32();
7809 if (pNext_size)
7810 {
7811 uint64_t pNext_placeholder;
7812 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7813 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7814 }
7815 vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7816 vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
7817 }
7818
marshal_VkMemoryFdPropertiesKHR(VulkanStreamGuest * vkStream,const VkMemoryFdPropertiesKHR * forMarshaling)7819 void marshal_VkMemoryFdPropertiesKHR(
7820 VulkanStreamGuest* vkStream,
7821 const VkMemoryFdPropertiesKHR* forMarshaling)
7822 {
7823 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7824 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7825 vkStream->putBe32(pNext_size);
7826 if (pNext_size)
7827 {
7828 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
7829 marshal_extension_struct(vkStream, forMarshaling->pNext);
7830 }
7831 vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
7832 }
7833
unmarshal_VkMemoryFdPropertiesKHR(VulkanStreamGuest * vkStream,VkMemoryFdPropertiesKHR * forUnmarshaling)7834 void unmarshal_VkMemoryFdPropertiesKHR(
7835 VulkanStreamGuest* vkStream,
7836 VkMemoryFdPropertiesKHR* forUnmarshaling)
7837 {
7838 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7839 size_t pNext_size;
7840 pNext_size = vkStream->getBe32();
7841 if (pNext_size)
7842 {
7843 uint64_t pNext_placeholder;
7844 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7845 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7846 }
7847 vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
7848 }
7849
marshal_VkMemoryGetFdInfoKHR(VulkanStreamGuest * vkStream,const VkMemoryGetFdInfoKHR * forMarshaling)7850 void marshal_VkMemoryGetFdInfoKHR(
7851 VulkanStreamGuest* vkStream,
7852 const VkMemoryGetFdInfoKHR* forMarshaling)
7853 {
7854 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7855 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7856 vkStream->putBe32(pNext_size);
7857 if (pNext_size)
7858 {
7859 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7860 marshal_extension_struct(vkStream, forMarshaling->pNext);
7861 }
7862 uint64_t cgen_var_222;
7863 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_222, 1);
7864 vkStream->write((uint64_t*)&cgen_var_222, 1 * 8);
7865 vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7866 }
7867
unmarshal_VkMemoryGetFdInfoKHR(VulkanStreamGuest * vkStream,VkMemoryGetFdInfoKHR * forUnmarshaling)7868 void unmarshal_VkMemoryGetFdInfoKHR(
7869 VulkanStreamGuest* vkStream,
7870 VkMemoryGetFdInfoKHR* forUnmarshaling)
7871 {
7872 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7873 size_t pNext_size;
7874 pNext_size = vkStream->getBe32();
7875 if (pNext_size)
7876 {
7877 uint64_t pNext_placeholder;
7878 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7879 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7880 }
7881 uint64_t cgen_var_223;
7882 vkStream->read((uint64_t*)&cgen_var_223, 1 * 8);
7883 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_223, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
7884 vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
7885 }
7886
7887 #endif
7888 #ifdef VK_KHR_win32_keyed_mutex
marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(VulkanStreamGuest * vkStream,const VkWin32KeyedMutexAcquireReleaseInfoKHR * forMarshaling)7889 void marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
7890 VulkanStreamGuest* vkStream,
7891 const VkWin32KeyedMutexAcquireReleaseInfoKHR* forMarshaling)
7892 {
7893 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7894 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7895 vkStream->putBe32(pNext_size);
7896 if (pNext_size)
7897 {
7898 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7899 marshal_extension_struct(vkStream, forMarshaling->pNext);
7900 }
7901 vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
7902 if (forMarshaling->acquireCount)
7903 {
7904 uint64_t* cgen_var_224;
7905 vkStream->alloc((void**)&cgen_var_224, forMarshaling->acquireCount * 8);
7906 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_224, forMarshaling->acquireCount);
7907 vkStream->write((uint64_t*)cgen_var_224, forMarshaling->acquireCount * 8);
7908 }
7909 vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys, forMarshaling->acquireCount * sizeof(const uint64_t));
7910 vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeouts, forMarshaling->acquireCount * sizeof(const uint32_t));
7911 vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
7912 if (forMarshaling->releaseCount)
7913 {
7914 uint64_t* cgen_var_225;
7915 vkStream->alloc((void**)&cgen_var_225, forMarshaling->releaseCount * 8);
7916 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_225, forMarshaling->releaseCount);
7917 vkStream->write((uint64_t*)cgen_var_225, forMarshaling->releaseCount * 8);
7918 }
7919 vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys, forMarshaling->releaseCount * sizeof(const uint64_t));
7920 }
7921
unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(VulkanStreamGuest * vkStream,VkWin32KeyedMutexAcquireReleaseInfoKHR * forUnmarshaling)7922 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
7923 VulkanStreamGuest* vkStream,
7924 VkWin32KeyedMutexAcquireReleaseInfoKHR* forUnmarshaling)
7925 {
7926 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
7927 size_t pNext_size;
7928 pNext_size = vkStream->getBe32();
7929 if (pNext_size)
7930 {
7931 uint64_t pNext_placeholder;
7932 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
7933 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
7934 }
7935 vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
7936 if (forUnmarshaling->acquireCount)
7937 {
7938 uint64_t* cgen_var_226;
7939 vkStream->alloc((void**)&cgen_var_226, forUnmarshaling->acquireCount * 8);
7940 vkStream->read((uint64_t*)cgen_var_226, forUnmarshaling->acquireCount * 8);
7941 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_226, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
7942 }
7943 vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
7944 vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeouts, forUnmarshaling->acquireCount * sizeof(const uint32_t));
7945 vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
7946 if (forUnmarshaling->releaseCount)
7947 {
7948 uint64_t* cgen_var_227;
7949 vkStream->alloc((void**)&cgen_var_227, forUnmarshaling->releaseCount * 8);
7950 vkStream->read((uint64_t*)cgen_var_227, forUnmarshaling->releaseCount * 8);
7951 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_227, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
7952 }
7953 vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
7954 }
7955
7956 #endif
7957 #ifdef VK_KHR_external_semaphore_capabilities
7958 #endif
7959 #ifdef VK_KHR_external_semaphore
7960 #endif
7961 #ifdef VK_KHR_external_semaphore_win32
marshal_VkImportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkImportSemaphoreWin32HandleInfoKHR * forMarshaling)7962 void marshal_VkImportSemaphoreWin32HandleInfoKHR(
7963 VulkanStreamGuest* vkStream,
7964 const VkImportSemaphoreWin32HandleInfoKHR* forMarshaling)
7965 {
7966 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
7967 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
7968 vkStream->putBe32(pNext_size);
7969 if (pNext_size)
7970 {
7971 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
7972 marshal_extension_struct(vkStream, forMarshaling->pNext);
7973 }
7974 uint64_t cgen_var_228;
7975 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_228, 1);
7976 vkStream->write((uint64_t*)&cgen_var_228, 1 * 8);
7977 vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
7978 vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
7979 vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
7980 vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
7981 }
7982
unmarshal_VkImportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkImportSemaphoreWin32HandleInfoKHR * forUnmarshaling)7983 void unmarshal_VkImportSemaphoreWin32HandleInfoKHR(
7984 VulkanStreamGuest* vkStream,
7985 VkImportSemaphoreWin32HandleInfoKHR* 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_229;
7997 vkStream->read((uint64_t*)&cgen_var_229, 1 * 8);
7998 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_229, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
7999 vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreImportFlags));
8000 vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8001 vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
8002 vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
8003 }
8004
marshal_VkExportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkExportSemaphoreWin32HandleInfoKHR * forMarshaling)8005 void marshal_VkExportSemaphoreWin32HandleInfoKHR(
8006 VulkanStreamGuest* vkStream,
8007 const VkExportSemaphoreWin32HandleInfoKHR* forMarshaling)
8008 {
8009 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8010 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8011 vkStream->putBe32(pNext_size);
8012 if (pNext_size)
8013 {
8014 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8015 marshal_extension_struct(vkStream, forMarshaling->pNext);
8016 }
8017 // WARNING PTR CHECK
8018 uint64_t cgen_var_230 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
8019 vkStream->putBe64(cgen_var_230);
8020 if (forMarshaling->pAttributes)
8021 {
8022 vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
8023 }
8024 vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
8025 vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
8026 }
8027
unmarshal_VkExportSemaphoreWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkExportSemaphoreWin32HandleInfoKHR * forUnmarshaling)8028 void unmarshal_VkExportSemaphoreWin32HandleInfoKHR(
8029 VulkanStreamGuest* vkStream,
8030 VkExportSemaphoreWin32HandleInfoKHR* forUnmarshaling)
8031 {
8032 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8033 size_t pNext_size;
8034 pNext_size = vkStream->getBe32();
8035 if (pNext_size)
8036 {
8037 uint64_t pNext_placeholder;
8038 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8039 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8040 }
8041 // WARNING PTR CHECK
8042 const SECURITY_ATTRIBUTES* check_pAttributes;
8043 check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
8044 if (forUnmarshaling->pAttributes)
8045 {
8046 if (!(check_pAttributes))
8047 {
8048 fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
8049 }
8050 vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
8051 }
8052 vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
8053 vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
8054 }
8055
marshal_VkD3D12FenceSubmitInfoKHR(VulkanStreamGuest * vkStream,const VkD3D12FenceSubmitInfoKHR * forMarshaling)8056 void marshal_VkD3D12FenceSubmitInfoKHR(
8057 VulkanStreamGuest* vkStream,
8058 const VkD3D12FenceSubmitInfoKHR* forMarshaling)
8059 {
8060 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8061 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8062 vkStream->putBe32(pNext_size);
8063 if (pNext_size)
8064 {
8065 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8066 marshal_extension_struct(vkStream, forMarshaling->pNext);
8067 }
8068 vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
8069 // WARNING PTR CHECK
8070 uint64_t cgen_var_232 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
8071 vkStream->putBe64(cgen_var_232);
8072 if (forMarshaling->pWaitSemaphoreValues)
8073 {
8074 vkStream->write((const uint64_t*)forMarshaling->pWaitSemaphoreValues, forMarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
8075 }
8076 vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
8077 // WARNING PTR CHECK
8078 uint64_t cgen_var_233 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
8079 vkStream->putBe64(cgen_var_233);
8080 if (forMarshaling->pSignalSemaphoreValues)
8081 {
8082 vkStream->write((const uint64_t*)forMarshaling->pSignalSemaphoreValues, forMarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
8083 }
8084 }
8085
unmarshal_VkD3D12FenceSubmitInfoKHR(VulkanStreamGuest * vkStream,VkD3D12FenceSubmitInfoKHR * forUnmarshaling)8086 void unmarshal_VkD3D12FenceSubmitInfoKHR(
8087 VulkanStreamGuest* vkStream,
8088 VkD3D12FenceSubmitInfoKHR* 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 vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
8100 // WARNING PTR CHECK
8101 const uint64_t* check_pWaitSemaphoreValues;
8102 check_pWaitSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
8103 if (forUnmarshaling->pWaitSemaphoreValues)
8104 {
8105 if (!(check_pWaitSemaphoreValues))
8106 {
8107 fprintf(stderr, "fatal: forUnmarshaling->pWaitSemaphoreValues inconsistent between guest and host\n");
8108 }
8109 vkStream->read((uint64_t*)forUnmarshaling->pWaitSemaphoreValues, forUnmarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
8110 }
8111 vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
8112 // WARNING PTR CHECK
8113 const uint64_t* check_pSignalSemaphoreValues;
8114 check_pSignalSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
8115 if (forUnmarshaling->pSignalSemaphoreValues)
8116 {
8117 if (!(check_pSignalSemaphoreValues))
8118 {
8119 fprintf(stderr, "fatal: forUnmarshaling->pSignalSemaphoreValues inconsistent between guest and host\n");
8120 }
8121 vkStream->read((uint64_t*)forUnmarshaling->pSignalSemaphoreValues, forUnmarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
8122 }
8123 }
8124
marshal_VkSemaphoreGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkSemaphoreGetWin32HandleInfoKHR * forMarshaling)8125 void marshal_VkSemaphoreGetWin32HandleInfoKHR(
8126 VulkanStreamGuest* vkStream,
8127 const VkSemaphoreGetWin32HandleInfoKHR* forMarshaling)
8128 {
8129 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8130 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8131 vkStream->putBe32(pNext_size);
8132 if (pNext_size)
8133 {
8134 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8135 marshal_extension_struct(vkStream, forMarshaling->pNext);
8136 }
8137 uint64_t cgen_var_236;
8138 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_236, 1);
8139 vkStream->write((uint64_t*)&cgen_var_236, 1 * 8);
8140 vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8141 }
8142
unmarshal_VkSemaphoreGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkSemaphoreGetWin32HandleInfoKHR * forUnmarshaling)8143 void unmarshal_VkSemaphoreGetWin32HandleInfoKHR(
8144 VulkanStreamGuest* vkStream,
8145 VkSemaphoreGetWin32HandleInfoKHR* forUnmarshaling)
8146 {
8147 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8148 size_t pNext_size;
8149 pNext_size = vkStream->getBe32();
8150 if (pNext_size)
8151 {
8152 uint64_t pNext_placeholder;
8153 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8154 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8155 }
8156 uint64_t cgen_var_237;
8157 vkStream->read((uint64_t*)&cgen_var_237, 1 * 8);
8158 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_237, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8159 vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8160 }
8161
8162 #endif
8163 #ifdef VK_KHR_external_semaphore_fd
marshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,const VkImportSemaphoreFdInfoKHR * forMarshaling)8164 void marshal_VkImportSemaphoreFdInfoKHR(
8165 VulkanStreamGuest* vkStream,
8166 const VkImportSemaphoreFdInfoKHR* forMarshaling)
8167 {
8168 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8169 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8170 vkStream->putBe32(pNext_size);
8171 if (pNext_size)
8172 {
8173 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8174 marshal_extension_struct(vkStream, forMarshaling->pNext);
8175 }
8176 uint64_t cgen_var_238;
8177 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_238, 1);
8178 vkStream->write((uint64_t*)&cgen_var_238, 1 * 8);
8179 vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
8180 vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8181 vkStream->write((int*)&forMarshaling->fd, sizeof(int));
8182 }
8183
unmarshal_VkImportSemaphoreFdInfoKHR(VulkanStreamGuest * vkStream,VkImportSemaphoreFdInfoKHR * forUnmarshaling)8184 void unmarshal_VkImportSemaphoreFdInfoKHR(
8185 VulkanStreamGuest* vkStream,
8186 VkImportSemaphoreFdInfoKHR* forUnmarshaling)
8187 {
8188 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8189 size_t pNext_size;
8190 pNext_size = vkStream->getBe32();
8191 if (pNext_size)
8192 {
8193 uint64_t pNext_placeholder;
8194 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8195 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8196 }
8197 uint64_t cgen_var_239;
8198 vkStream->read((uint64_t*)&cgen_var_239, 1 * 8);
8199 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_239, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8200 vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreImportFlags));
8201 vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8202 vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
8203 }
8204
marshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,const VkSemaphoreGetFdInfoKHR * forMarshaling)8205 void marshal_VkSemaphoreGetFdInfoKHR(
8206 VulkanStreamGuest* vkStream,
8207 const VkSemaphoreGetFdInfoKHR* forMarshaling)
8208 {
8209 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8210 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8211 vkStream->putBe32(pNext_size);
8212 if (pNext_size)
8213 {
8214 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8215 marshal_extension_struct(vkStream, forMarshaling->pNext);
8216 }
8217 uint64_t cgen_var_240;
8218 vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_240, 1);
8219 vkStream->write((uint64_t*)&cgen_var_240, 1 * 8);
8220 vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8221 }
8222
unmarshal_VkSemaphoreGetFdInfoKHR(VulkanStreamGuest * vkStream,VkSemaphoreGetFdInfoKHR * forUnmarshaling)8223 void unmarshal_VkSemaphoreGetFdInfoKHR(
8224 VulkanStreamGuest* vkStream,
8225 VkSemaphoreGetFdInfoKHR* forUnmarshaling)
8226 {
8227 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8228 size_t pNext_size;
8229 pNext_size = vkStream->getBe32();
8230 if (pNext_size)
8231 {
8232 uint64_t pNext_placeholder;
8233 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8234 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8235 }
8236 uint64_t cgen_var_241;
8237 vkStream->read((uint64_t*)&cgen_var_241, 1 * 8);
8238 vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_241, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
8239 vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
8240 }
8241
8242 #endif
8243 #ifdef VK_KHR_push_descriptor
marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(VulkanStreamGuest * vkStream,const VkPhysicalDevicePushDescriptorPropertiesKHR * forMarshaling)8244 void marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
8245 VulkanStreamGuest* vkStream,
8246 const VkPhysicalDevicePushDescriptorPropertiesKHR* forMarshaling)
8247 {
8248 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8249 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8250 vkStream->putBe32(pNext_size);
8251 if (pNext_size)
8252 {
8253 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
8254 marshal_extension_struct(vkStream, forMarshaling->pNext);
8255 }
8256 vkStream->write((uint32_t*)&forMarshaling->maxPushDescriptors, sizeof(uint32_t));
8257 }
8258
unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(VulkanStreamGuest * vkStream,VkPhysicalDevicePushDescriptorPropertiesKHR * forUnmarshaling)8259 void unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
8260 VulkanStreamGuest* vkStream,
8261 VkPhysicalDevicePushDescriptorPropertiesKHR* forUnmarshaling)
8262 {
8263 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8264 size_t pNext_size;
8265 pNext_size = vkStream->getBe32();
8266 if (pNext_size)
8267 {
8268 uint64_t pNext_placeholder;
8269 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8270 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8271 }
8272 vkStream->read((uint32_t*)&forUnmarshaling->maxPushDescriptors, sizeof(uint32_t));
8273 }
8274
8275 #endif
8276 #ifdef VK_KHR_16bit_storage
8277 #endif
8278 #ifdef VK_KHR_incremental_present
marshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,const VkRectLayerKHR * forMarshaling)8279 void marshal_VkRectLayerKHR(
8280 VulkanStreamGuest* vkStream,
8281 const VkRectLayerKHR* forMarshaling)
8282 {
8283 marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
8284 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent));
8285 vkStream->write((uint32_t*)&forMarshaling->layer, sizeof(uint32_t));
8286 }
8287
unmarshal_VkRectLayerKHR(VulkanStreamGuest * vkStream,VkRectLayerKHR * forUnmarshaling)8288 void unmarshal_VkRectLayerKHR(
8289 VulkanStreamGuest* vkStream,
8290 VkRectLayerKHR* forUnmarshaling)
8291 {
8292 unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
8293 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->extent));
8294 vkStream->read((uint32_t*)&forUnmarshaling->layer, sizeof(uint32_t));
8295 }
8296
marshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,const VkPresentRegionKHR * forMarshaling)8297 void marshal_VkPresentRegionKHR(
8298 VulkanStreamGuest* vkStream,
8299 const VkPresentRegionKHR* forMarshaling)
8300 {
8301 vkStream->write((uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
8302 // WARNING PTR CHECK
8303 uint64_t cgen_var_242 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
8304 vkStream->putBe64(cgen_var_242);
8305 if (forMarshaling->pRectangles)
8306 {
8307 for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i)
8308 {
8309 marshal_VkRectLayerKHR(vkStream, (const VkRectLayerKHR*)(forMarshaling->pRectangles + i));
8310 }
8311 }
8312 }
8313
unmarshal_VkPresentRegionKHR(VulkanStreamGuest * vkStream,VkPresentRegionKHR * forUnmarshaling)8314 void unmarshal_VkPresentRegionKHR(
8315 VulkanStreamGuest* vkStream,
8316 VkPresentRegionKHR* forUnmarshaling)
8317 {
8318 vkStream->read((uint32_t*)&forUnmarshaling->rectangleCount, sizeof(uint32_t));
8319 // WARNING PTR CHECK
8320 const VkRectLayerKHR* check_pRectangles;
8321 check_pRectangles = (const VkRectLayerKHR*)(uintptr_t)vkStream->getBe64();
8322 if (forUnmarshaling->pRectangles)
8323 {
8324 if (!(check_pRectangles))
8325 {
8326 fprintf(stderr, "fatal: forUnmarshaling->pRectangles inconsistent between guest and host\n");
8327 }
8328 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i)
8329 {
8330 unmarshal_VkRectLayerKHR(vkStream, (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i));
8331 }
8332 }
8333 }
8334
marshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,const VkPresentRegionsKHR * forMarshaling)8335 void marshal_VkPresentRegionsKHR(
8336 VulkanStreamGuest* vkStream,
8337 const VkPresentRegionsKHR* forMarshaling)
8338 {
8339 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8340 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8341 vkStream->putBe32(pNext_size);
8342 if (pNext_size)
8343 {
8344 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8345 marshal_extension_struct(vkStream, forMarshaling->pNext);
8346 }
8347 vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
8348 // WARNING PTR CHECK
8349 uint64_t cgen_var_244 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
8350 vkStream->putBe64(cgen_var_244);
8351 if (forMarshaling->pRegions)
8352 {
8353 for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
8354 {
8355 marshal_VkPresentRegionKHR(vkStream, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i));
8356 }
8357 }
8358 }
8359
unmarshal_VkPresentRegionsKHR(VulkanStreamGuest * vkStream,VkPresentRegionsKHR * forUnmarshaling)8360 void unmarshal_VkPresentRegionsKHR(
8361 VulkanStreamGuest* vkStream,
8362 VkPresentRegionsKHR* forUnmarshaling)
8363 {
8364 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8365 size_t pNext_size;
8366 pNext_size = vkStream->getBe32();
8367 if (pNext_size)
8368 {
8369 uint64_t pNext_placeholder;
8370 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8371 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8372 }
8373 vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
8374 // WARNING PTR CHECK
8375 const VkPresentRegionKHR* check_pRegions;
8376 check_pRegions = (const VkPresentRegionKHR*)(uintptr_t)vkStream->getBe64();
8377 if (forUnmarshaling->pRegions)
8378 {
8379 if (!(check_pRegions))
8380 {
8381 fprintf(stderr, "fatal: forUnmarshaling->pRegions inconsistent between guest and host\n");
8382 }
8383 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
8384 {
8385 unmarshal_VkPresentRegionKHR(vkStream, (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i));
8386 }
8387 }
8388 }
8389
8390 #endif
8391 #ifdef VK_KHR_descriptor_update_template
8392 #endif
8393 #ifdef VK_KHR_create_renderpass2
marshal_VkAttachmentDescription2KHR(VulkanStreamGuest * vkStream,const VkAttachmentDescription2KHR * forMarshaling)8394 void marshal_VkAttachmentDescription2KHR(
8395 VulkanStreamGuest* vkStream,
8396 const VkAttachmentDescription2KHR* forMarshaling)
8397 {
8398 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8399 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8400 vkStream->putBe32(pNext_size);
8401 if (pNext_size)
8402 {
8403 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8404 marshal_extension_struct(vkStream, forMarshaling->pNext);
8405 }
8406 vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
8407 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
8408 vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
8409 vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
8410 vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
8411 vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
8412 vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
8413 vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
8414 vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
8415 }
8416
unmarshal_VkAttachmentDescription2KHR(VulkanStreamGuest * vkStream,VkAttachmentDescription2KHR * forUnmarshaling)8417 void unmarshal_VkAttachmentDescription2KHR(
8418 VulkanStreamGuest* vkStream,
8419 VkAttachmentDescription2KHR* forUnmarshaling)
8420 {
8421 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8422 size_t pNext_size;
8423 pNext_size = vkStream->getBe32();
8424 if (pNext_size)
8425 {
8426 uint64_t pNext_placeholder;
8427 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8428 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8429 }
8430 vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
8431 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
8432 vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
8433 vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
8434 vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
8435 vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
8436 vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
8437 vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
8438 vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
8439 }
8440
marshal_VkAttachmentReference2KHR(VulkanStreamGuest * vkStream,const VkAttachmentReference2KHR * forMarshaling)8441 void marshal_VkAttachmentReference2KHR(
8442 VulkanStreamGuest* vkStream,
8443 const VkAttachmentReference2KHR* forMarshaling)
8444 {
8445 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8446 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8447 vkStream->putBe32(pNext_size);
8448 if (pNext_size)
8449 {
8450 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8451 marshal_extension_struct(vkStream, forMarshaling->pNext);
8452 }
8453 vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
8454 vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
8455 vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
8456 }
8457
unmarshal_VkAttachmentReference2KHR(VulkanStreamGuest * vkStream,VkAttachmentReference2KHR * forUnmarshaling)8458 void unmarshal_VkAttachmentReference2KHR(
8459 VulkanStreamGuest* vkStream,
8460 VkAttachmentReference2KHR* forUnmarshaling)
8461 {
8462 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8463 size_t pNext_size;
8464 pNext_size = vkStream->getBe32();
8465 if (pNext_size)
8466 {
8467 uint64_t pNext_placeholder;
8468 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8469 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8470 }
8471 vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
8472 vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
8473 vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
8474 }
8475
marshal_VkSubpassDescription2KHR(VulkanStreamGuest * vkStream,const VkSubpassDescription2KHR * forMarshaling)8476 void marshal_VkSubpassDescription2KHR(
8477 VulkanStreamGuest* vkStream,
8478 const VkSubpassDescription2KHR* forMarshaling)
8479 {
8480 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8481 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8482 vkStream->putBe32(pNext_size);
8483 if (pNext_size)
8484 {
8485 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8486 marshal_extension_struct(vkStream, forMarshaling->pNext);
8487 }
8488 vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
8489 vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
8490 vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
8491 vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
8492 for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
8493 {
8494 marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pInputAttachments + i));
8495 }
8496 vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
8497 for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
8498 {
8499 marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pColorAttachments + i));
8500 }
8501 // WARNING PTR CHECK
8502 uint64_t cgen_var_246 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
8503 vkStream->putBe64(cgen_var_246);
8504 if (forMarshaling->pResolveAttachments)
8505 {
8506 for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
8507 {
8508 marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pResolveAttachments + i));
8509 }
8510 }
8511 // WARNING PTR CHECK
8512 uint64_t cgen_var_247 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
8513 vkStream->putBe64(cgen_var_247);
8514 if (forMarshaling->pDepthStencilAttachment)
8515 {
8516 marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pDepthStencilAttachment));
8517 }
8518 vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
8519 vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
8520 }
8521
unmarshal_VkSubpassDescription2KHR(VulkanStreamGuest * vkStream,VkSubpassDescription2KHR * forUnmarshaling)8522 void unmarshal_VkSubpassDescription2KHR(
8523 VulkanStreamGuest* vkStream,
8524 VkSubpassDescription2KHR* forUnmarshaling)
8525 {
8526 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8527 size_t pNext_size;
8528 pNext_size = vkStream->getBe32();
8529 if (pNext_size)
8530 {
8531 uint64_t pNext_placeholder;
8532 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8533 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8534 }
8535 vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
8536 vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
8537 vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
8538 vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
8539 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
8540 {
8541 unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pInputAttachments + i));
8542 }
8543 vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
8544 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
8545 {
8546 unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pColorAttachments + i));
8547 }
8548 // WARNING PTR CHECK
8549 const VkAttachmentReference2KHR* check_pResolveAttachments;
8550 check_pResolveAttachments = (const VkAttachmentReference2KHR*)(uintptr_t)vkStream->getBe64();
8551 if (forUnmarshaling->pResolveAttachments)
8552 {
8553 if (!(check_pResolveAttachments))
8554 {
8555 fprintf(stderr, "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and host\n");
8556 }
8557 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
8558 {
8559 unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pResolveAttachments + i));
8560 }
8561 }
8562 // WARNING PTR CHECK
8563 const VkAttachmentReference2KHR* check_pDepthStencilAttachment;
8564 check_pDepthStencilAttachment = (const VkAttachmentReference2KHR*)(uintptr_t)vkStream->getBe64();
8565 if (forUnmarshaling->pDepthStencilAttachment)
8566 {
8567 if (!(check_pDepthStencilAttachment))
8568 {
8569 fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest and host\n");
8570 }
8571 unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pDepthStencilAttachment));
8572 }
8573 vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
8574 vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments, forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
8575 }
8576
marshal_VkSubpassDependency2KHR(VulkanStreamGuest * vkStream,const VkSubpassDependency2KHR * forMarshaling)8577 void marshal_VkSubpassDependency2KHR(
8578 VulkanStreamGuest* vkStream,
8579 const VkSubpassDependency2KHR* forMarshaling)
8580 {
8581 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8582 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8583 vkStream->putBe32(pNext_size);
8584 if (pNext_size)
8585 {
8586 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8587 marshal_extension_struct(vkStream, forMarshaling->pNext);
8588 }
8589 vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
8590 vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
8591 vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
8592 vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
8593 vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
8594 vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
8595 vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
8596 vkStream->write((int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
8597 }
8598
unmarshal_VkSubpassDependency2KHR(VulkanStreamGuest * vkStream,VkSubpassDependency2KHR * forUnmarshaling)8599 void unmarshal_VkSubpassDependency2KHR(
8600 VulkanStreamGuest* vkStream,
8601 VkSubpassDependency2KHR* forUnmarshaling)
8602 {
8603 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8604 size_t pNext_size;
8605 pNext_size = vkStream->getBe32();
8606 if (pNext_size)
8607 {
8608 uint64_t pNext_placeholder;
8609 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8610 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8611 }
8612 vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
8613 vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
8614 vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
8615 vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
8616 vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
8617 vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
8618 vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, sizeof(VkDependencyFlags));
8619 vkStream->read((int32_t*)&forUnmarshaling->viewOffset, sizeof(int32_t));
8620 }
8621
marshal_VkRenderPassCreateInfo2KHR(VulkanStreamGuest * vkStream,const VkRenderPassCreateInfo2KHR * forMarshaling)8622 void marshal_VkRenderPassCreateInfo2KHR(
8623 VulkanStreamGuest* vkStream,
8624 const VkRenderPassCreateInfo2KHR* forMarshaling)
8625 {
8626 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8627 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8628 vkStream->putBe32(pNext_size);
8629 if (pNext_size)
8630 {
8631 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8632 marshal_extension_struct(vkStream, forMarshaling->pNext);
8633 }
8634 vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
8635 vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
8636 for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
8637 {
8638 marshal_VkAttachmentDescription2KHR(vkStream, (const VkAttachmentDescription2KHR*)(forMarshaling->pAttachments + i));
8639 }
8640 vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
8641 for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
8642 {
8643 marshal_VkSubpassDescription2KHR(vkStream, (const VkSubpassDescription2KHR*)(forMarshaling->pSubpasses + i));
8644 }
8645 vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
8646 for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
8647 {
8648 marshal_VkSubpassDependency2KHR(vkStream, (const VkSubpassDependency2KHR*)(forMarshaling->pDependencies + i));
8649 }
8650 vkStream->write((uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
8651 vkStream->write((const uint32_t*)forMarshaling->pCorrelatedViewMasks, forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
8652 }
8653
unmarshal_VkRenderPassCreateInfo2KHR(VulkanStreamGuest * vkStream,VkRenderPassCreateInfo2KHR * forUnmarshaling)8654 void unmarshal_VkRenderPassCreateInfo2KHR(
8655 VulkanStreamGuest* vkStream,
8656 VkRenderPassCreateInfo2KHR* forUnmarshaling)
8657 {
8658 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8659 size_t pNext_size;
8660 pNext_size = vkStream->getBe32();
8661 if (pNext_size)
8662 {
8663 uint64_t pNext_placeholder;
8664 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8665 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8666 }
8667 vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags, sizeof(VkRenderPassCreateFlags));
8668 vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
8669 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
8670 {
8671 unmarshal_VkAttachmentDescription2KHR(vkStream, (VkAttachmentDescription2KHR*)(forUnmarshaling->pAttachments + i));
8672 }
8673 vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
8674 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
8675 {
8676 unmarshal_VkSubpassDescription2KHR(vkStream, (VkSubpassDescription2KHR*)(forUnmarshaling->pSubpasses + i));
8677 }
8678 vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
8679 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
8680 {
8681 unmarshal_VkSubpassDependency2KHR(vkStream, (VkSubpassDependency2KHR*)(forUnmarshaling->pDependencies + i));
8682 }
8683 vkStream->read((uint32_t*)&forUnmarshaling->correlatedViewMaskCount, sizeof(uint32_t));
8684 vkStream->read((uint32_t*)forUnmarshaling->pCorrelatedViewMasks, forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
8685 }
8686
marshal_VkSubpassBeginInfoKHR(VulkanStreamGuest * vkStream,const VkSubpassBeginInfoKHR * forMarshaling)8687 void marshal_VkSubpassBeginInfoKHR(
8688 VulkanStreamGuest* vkStream,
8689 const VkSubpassBeginInfoKHR* forMarshaling)
8690 {
8691 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8692 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8693 vkStream->putBe32(pNext_size);
8694 if (pNext_size)
8695 {
8696 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8697 marshal_extension_struct(vkStream, forMarshaling->pNext);
8698 }
8699 vkStream->write((VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
8700 }
8701
unmarshal_VkSubpassBeginInfoKHR(VulkanStreamGuest * vkStream,VkSubpassBeginInfoKHR * forUnmarshaling)8702 void unmarshal_VkSubpassBeginInfoKHR(
8703 VulkanStreamGuest* vkStream,
8704 VkSubpassBeginInfoKHR* forUnmarshaling)
8705 {
8706 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8707 size_t pNext_size;
8708 pNext_size = vkStream->getBe32();
8709 if (pNext_size)
8710 {
8711 uint64_t pNext_placeholder;
8712 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8713 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8714 }
8715 vkStream->read((VkSubpassContents*)&forUnmarshaling->contents, sizeof(VkSubpassContents));
8716 }
8717
marshal_VkSubpassEndInfoKHR(VulkanStreamGuest * vkStream,const VkSubpassEndInfoKHR * forMarshaling)8718 void marshal_VkSubpassEndInfoKHR(
8719 VulkanStreamGuest* vkStream,
8720 const VkSubpassEndInfoKHR* forMarshaling)
8721 {
8722 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8723 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8724 vkStream->putBe32(pNext_size);
8725 if (pNext_size)
8726 {
8727 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8728 marshal_extension_struct(vkStream, forMarshaling->pNext);
8729 }
8730 }
8731
unmarshal_VkSubpassEndInfoKHR(VulkanStreamGuest * vkStream,VkSubpassEndInfoKHR * forUnmarshaling)8732 void unmarshal_VkSubpassEndInfoKHR(
8733 VulkanStreamGuest* vkStream,
8734 VkSubpassEndInfoKHR* forUnmarshaling)
8735 {
8736 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8737 size_t pNext_size;
8738 pNext_size = vkStream->getBe32();
8739 if (pNext_size)
8740 {
8741 uint64_t pNext_placeholder;
8742 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8743 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8744 }
8745 }
8746
8747 #endif
8748 #ifdef VK_KHR_shared_presentable_image
marshal_VkSharedPresentSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,const VkSharedPresentSurfaceCapabilitiesKHR * forMarshaling)8749 void marshal_VkSharedPresentSurfaceCapabilitiesKHR(
8750 VulkanStreamGuest* vkStream,
8751 const VkSharedPresentSurfaceCapabilitiesKHR* forMarshaling)
8752 {
8753 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8754 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8755 vkStream->putBe32(pNext_size);
8756 if (pNext_size)
8757 {
8758 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
8759 marshal_extension_struct(vkStream, forMarshaling->pNext);
8760 }
8761 vkStream->write((VkImageUsageFlags*)&forMarshaling->sharedPresentSupportedUsageFlags, sizeof(VkImageUsageFlags));
8762 }
8763
unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(VulkanStreamGuest * vkStream,VkSharedPresentSurfaceCapabilitiesKHR * forUnmarshaling)8764 void unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
8765 VulkanStreamGuest* vkStream,
8766 VkSharedPresentSurfaceCapabilitiesKHR* forUnmarshaling)
8767 {
8768 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8769 size_t pNext_size;
8770 pNext_size = vkStream->getBe32();
8771 if (pNext_size)
8772 {
8773 uint64_t pNext_placeholder;
8774 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8775 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8776 }
8777 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->sharedPresentSupportedUsageFlags, sizeof(VkImageUsageFlags));
8778 }
8779
8780 #endif
8781 #ifdef VK_KHR_external_fence_capabilities
8782 #endif
8783 #ifdef VK_KHR_external_fence
8784 #endif
8785 #ifdef VK_KHR_external_fence_win32
marshal_VkImportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkImportFenceWin32HandleInfoKHR * forMarshaling)8786 void marshal_VkImportFenceWin32HandleInfoKHR(
8787 VulkanStreamGuest* vkStream,
8788 const VkImportFenceWin32HandleInfoKHR* forMarshaling)
8789 {
8790 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8791 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8792 vkStream->putBe32(pNext_size);
8793 if (pNext_size)
8794 {
8795 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8796 marshal_extension_struct(vkStream, forMarshaling->pNext);
8797 }
8798 uint64_t cgen_var_250;
8799 vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_250, 1);
8800 vkStream->write((uint64_t*)&cgen_var_250, 1 * 8);
8801 vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
8802 vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8803 vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
8804 vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
8805 }
8806
unmarshal_VkImportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkImportFenceWin32HandleInfoKHR * forUnmarshaling)8807 void unmarshal_VkImportFenceWin32HandleInfoKHR(
8808 VulkanStreamGuest* vkStream,
8809 VkImportFenceWin32HandleInfoKHR* forUnmarshaling)
8810 {
8811 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8812 size_t pNext_size;
8813 pNext_size = vkStream->getBe32();
8814 if (pNext_size)
8815 {
8816 uint64_t pNext_placeholder;
8817 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8818 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8819 }
8820 uint64_t cgen_var_251;
8821 vkStream->read((uint64_t*)&cgen_var_251, 1 * 8);
8822 vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_251, (VkFence*)&forUnmarshaling->fence, 1);
8823 vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
8824 vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8825 vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
8826 vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
8827 }
8828
marshal_VkExportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkExportFenceWin32HandleInfoKHR * forMarshaling)8829 void marshal_VkExportFenceWin32HandleInfoKHR(
8830 VulkanStreamGuest* vkStream,
8831 const VkExportFenceWin32HandleInfoKHR* forMarshaling)
8832 {
8833 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8834 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8835 vkStream->putBe32(pNext_size);
8836 if (pNext_size)
8837 {
8838 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8839 marshal_extension_struct(vkStream, forMarshaling->pNext);
8840 }
8841 // WARNING PTR CHECK
8842 uint64_t cgen_var_252 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
8843 vkStream->putBe64(cgen_var_252);
8844 if (forMarshaling->pAttributes)
8845 {
8846 vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
8847 }
8848 vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
8849 vkStream->write((LPCWSTR*)&forMarshaling->name, sizeof(LPCWSTR));
8850 }
8851
unmarshal_VkExportFenceWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkExportFenceWin32HandleInfoKHR * forUnmarshaling)8852 void unmarshal_VkExportFenceWin32HandleInfoKHR(
8853 VulkanStreamGuest* vkStream,
8854 VkExportFenceWin32HandleInfoKHR* forUnmarshaling)
8855 {
8856 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8857 size_t pNext_size;
8858 pNext_size = vkStream->getBe32();
8859 if (pNext_size)
8860 {
8861 uint64_t pNext_placeholder;
8862 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8863 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8864 }
8865 // WARNING PTR CHECK
8866 const SECURITY_ATTRIBUTES* check_pAttributes;
8867 check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
8868 if (forUnmarshaling->pAttributes)
8869 {
8870 if (!(check_pAttributes))
8871 {
8872 fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
8873 }
8874 vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
8875 }
8876 vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
8877 vkStream->read((LPCWSTR*)&forUnmarshaling->name, sizeof(LPCWSTR));
8878 }
8879
marshal_VkFenceGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,const VkFenceGetWin32HandleInfoKHR * forMarshaling)8880 void marshal_VkFenceGetWin32HandleInfoKHR(
8881 VulkanStreamGuest* vkStream,
8882 const VkFenceGetWin32HandleInfoKHR* forMarshaling)
8883 {
8884 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8885 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8886 vkStream->putBe32(pNext_size);
8887 if (pNext_size)
8888 {
8889 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8890 marshal_extension_struct(vkStream, forMarshaling->pNext);
8891 }
8892 uint64_t cgen_var_254;
8893 vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_254, 1);
8894 vkStream->write((uint64_t*)&cgen_var_254, 1 * 8);
8895 vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8896 }
8897
unmarshal_VkFenceGetWin32HandleInfoKHR(VulkanStreamGuest * vkStream,VkFenceGetWin32HandleInfoKHR * forUnmarshaling)8898 void unmarshal_VkFenceGetWin32HandleInfoKHR(
8899 VulkanStreamGuest* vkStream,
8900 VkFenceGetWin32HandleInfoKHR* forUnmarshaling)
8901 {
8902 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8903 size_t pNext_size;
8904 pNext_size = vkStream->getBe32();
8905 if (pNext_size)
8906 {
8907 uint64_t pNext_placeholder;
8908 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8909 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8910 }
8911 uint64_t cgen_var_255;
8912 vkStream->read((uint64_t*)&cgen_var_255, 1 * 8);
8913 vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_255, (VkFence*)&forUnmarshaling->fence, 1);
8914 vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8915 }
8916
8917 #endif
8918 #ifdef VK_KHR_external_fence_fd
marshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,const VkImportFenceFdInfoKHR * forMarshaling)8919 void marshal_VkImportFenceFdInfoKHR(
8920 VulkanStreamGuest* vkStream,
8921 const VkImportFenceFdInfoKHR* forMarshaling)
8922 {
8923 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8924 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8925 vkStream->putBe32(pNext_size);
8926 if (pNext_size)
8927 {
8928 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8929 marshal_extension_struct(vkStream, forMarshaling->pNext);
8930 }
8931 uint64_t cgen_var_256;
8932 vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_256, 1);
8933 vkStream->write((uint64_t*)&cgen_var_256, 1 * 8);
8934 vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
8935 vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8936 vkStream->write((int*)&forMarshaling->fd, sizeof(int));
8937 }
8938
unmarshal_VkImportFenceFdInfoKHR(VulkanStreamGuest * vkStream,VkImportFenceFdInfoKHR * forUnmarshaling)8939 void unmarshal_VkImportFenceFdInfoKHR(
8940 VulkanStreamGuest* vkStream,
8941 VkImportFenceFdInfoKHR* forUnmarshaling)
8942 {
8943 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8944 size_t pNext_size;
8945 pNext_size = vkStream->getBe32();
8946 if (pNext_size)
8947 {
8948 uint64_t pNext_placeholder;
8949 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8950 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8951 }
8952 uint64_t cgen_var_257;
8953 vkStream->read((uint64_t*)&cgen_var_257, 1 * 8);
8954 vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_257, (VkFence*)&forUnmarshaling->fence, 1);
8955 vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
8956 vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8957 vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
8958 }
8959
marshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,const VkFenceGetFdInfoKHR * forMarshaling)8960 void marshal_VkFenceGetFdInfoKHR(
8961 VulkanStreamGuest* vkStream,
8962 const VkFenceGetFdInfoKHR* forMarshaling)
8963 {
8964 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
8965 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
8966 vkStream->putBe32(pNext_size);
8967 if (pNext_size)
8968 {
8969 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
8970 marshal_extension_struct(vkStream, forMarshaling->pNext);
8971 }
8972 uint64_t cgen_var_258;
8973 vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_258, 1);
8974 vkStream->write((uint64_t*)&cgen_var_258, 1 * 8);
8975 vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8976 }
8977
unmarshal_VkFenceGetFdInfoKHR(VulkanStreamGuest * vkStream,VkFenceGetFdInfoKHR * forUnmarshaling)8978 void unmarshal_VkFenceGetFdInfoKHR(
8979 VulkanStreamGuest* vkStream,
8980 VkFenceGetFdInfoKHR* forUnmarshaling)
8981 {
8982 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
8983 size_t pNext_size;
8984 pNext_size = vkStream->getBe32();
8985 if (pNext_size)
8986 {
8987 uint64_t pNext_placeholder;
8988 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
8989 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
8990 }
8991 uint64_t cgen_var_259;
8992 vkStream->read((uint64_t*)&cgen_var_259, 1 * 8);
8993 vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_259, (VkFence*)&forUnmarshaling->fence, 1);
8994 vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
8995 }
8996
8997 #endif
8998 #ifdef VK_KHR_maintenance2
8999 #endif
9000 #ifdef VK_KHR_get_surface_capabilities2
marshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSurfaceInfo2KHR * forMarshaling)9001 void marshal_VkPhysicalDeviceSurfaceInfo2KHR(
9002 VulkanStreamGuest* vkStream,
9003 const VkPhysicalDeviceSurfaceInfo2KHR* forMarshaling)
9004 {
9005 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9006 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9007 vkStream->putBe32(pNext_size);
9008 if (pNext_size)
9009 {
9010 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9011 marshal_extension_struct(vkStream, forMarshaling->pNext);
9012 }
9013 uint64_t cgen_var_260;
9014 vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_260, 1);
9015 vkStream->write((uint64_t*)&cgen_var_260, 1 * 8);
9016 }
9017
unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(VulkanStreamGuest * vkStream,VkPhysicalDeviceSurfaceInfo2KHR * forUnmarshaling)9018 void unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(
9019 VulkanStreamGuest* vkStream,
9020 VkPhysicalDeviceSurfaceInfo2KHR* forUnmarshaling)
9021 {
9022 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9023 size_t pNext_size;
9024 pNext_size = vkStream->getBe32();
9025 if (pNext_size)
9026 {
9027 uint64_t pNext_placeholder;
9028 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9029 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9030 }
9031 uint64_t cgen_var_261;
9032 vkStream->read((uint64_t*)&cgen_var_261, 1 * 8);
9033 vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_261, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
9034 }
9035
marshal_VkSurfaceCapabilities2KHR(VulkanStreamGuest * vkStream,const VkSurfaceCapabilities2KHR * forMarshaling)9036 void marshal_VkSurfaceCapabilities2KHR(
9037 VulkanStreamGuest* vkStream,
9038 const VkSurfaceCapabilities2KHR* forMarshaling)
9039 {
9040 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9041 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9042 vkStream->putBe32(pNext_size);
9043 if (pNext_size)
9044 {
9045 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9046 marshal_extension_struct(vkStream, forMarshaling->pNext);
9047 }
9048 marshal_VkSurfaceCapabilitiesKHR(vkStream, (VkSurfaceCapabilitiesKHR*)(&forMarshaling->surfaceCapabilities));
9049 }
9050
unmarshal_VkSurfaceCapabilities2KHR(VulkanStreamGuest * vkStream,VkSurfaceCapabilities2KHR * forUnmarshaling)9051 void unmarshal_VkSurfaceCapabilities2KHR(
9052 VulkanStreamGuest* vkStream,
9053 VkSurfaceCapabilities2KHR* forUnmarshaling)
9054 {
9055 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9056 size_t pNext_size;
9057 pNext_size = vkStream->getBe32();
9058 if (pNext_size)
9059 {
9060 uint64_t pNext_placeholder;
9061 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9062 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9063 }
9064 unmarshal_VkSurfaceCapabilitiesKHR(vkStream, (VkSurfaceCapabilitiesKHR*)(&forUnmarshaling->surfaceCapabilities));
9065 }
9066
marshal_VkSurfaceFormat2KHR(VulkanStreamGuest * vkStream,const VkSurfaceFormat2KHR * forMarshaling)9067 void marshal_VkSurfaceFormat2KHR(
9068 VulkanStreamGuest* vkStream,
9069 const VkSurfaceFormat2KHR* forMarshaling)
9070 {
9071 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9072 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9073 vkStream->putBe32(pNext_size);
9074 if (pNext_size)
9075 {
9076 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9077 marshal_extension_struct(vkStream, forMarshaling->pNext);
9078 }
9079 marshal_VkSurfaceFormatKHR(vkStream, (VkSurfaceFormatKHR*)(&forMarshaling->surfaceFormat));
9080 }
9081
unmarshal_VkSurfaceFormat2KHR(VulkanStreamGuest * vkStream,VkSurfaceFormat2KHR * forUnmarshaling)9082 void unmarshal_VkSurfaceFormat2KHR(
9083 VulkanStreamGuest* vkStream,
9084 VkSurfaceFormat2KHR* forUnmarshaling)
9085 {
9086 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9087 size_t pNext_size;
9088 pNext_size = vkStream->getBe32();
9089 if (pNext_size)
9090 {
9091 uint64_t pNext_placeholder;
9092 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9093 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9094 }
9095 unmarshal_VkSurfaceFormatKHR(vkStream, (VkSurfaceFormatKHR*)(&forUnmarshaling->surfaceFormat));
9096 }
9097
9098 #endif
9099 #ifdef VK_KHR_variable_pointers
9100 #endif
9101 #ifdef VK_KHR_get_display_properties2
marshal_VkDisplayProperties2KHR(VulkanStreamGuest * vkStream,const VkDisplayProperties2KHR * forMarshaling)9102 void marshal_VkDisplayProperties2KHR(
9103 VulkanStreamGuest* vkStream,
9104 const VkDisplayProperties2KHR* forMarshaling)
9105 {
9106 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9107 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9108 vkStream->putBe32(pNext_size);
9109 if (pNext_size)
9110 {
9111 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9112 marshal_extension_struct(vkStream, forMarshaling->pNext);
9113 }
9114 marshal_VkDisplayPropertiesKHR(vkStream, (VkDisplayPropertiesKHR*)(&forMarshaling->displayProperties));
9115 }
9116
unmarshal_VkDisplayProperties2KHR(VulkanStreamGuest * vkStream,VkDisplayProperties2KHR * forUnmarshaling)9117 void unmarshal_VkDisplayProperties2KHR(
9118 VulkanStreamGuest* vkStream,
9119 VkDisplayProperties2KHR* forUnmarshaling)
9120 {
9121 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9122 size_t pNext_size;
9123 pNext_size = vkStream->getBe32();
9124 if (pNext_size)
9125 {
9126 uint64_t pNext_placeholder;
9127 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9128 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9129 }
9130 unmarshal_VkDisplayPropertiesKHR(vkStream, (VkDisplayPropertiesKHR*)(&forUnmarshaling->displayProperties));
9131 }
9132
marshal_VkDisplayPlaneProperties2KHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneProperties2KHR * forMarshaling)9133 void marshal_VkDisplayPlaneProperties2KHR(
9134 VulkanStreamGuest* vkStream,
9135 const VkDisplayPlaneProperties2KHR* forMarshaling)
9136 {
9137 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9138 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9139 vkStream->putBe32(pNext_size);
9140 if (pNext_size)
9141 {
9142 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9143 marshal_extension_struct(vkStream, forMarshaling->pNext);
9144 }
9145 marshal_VkDisplayPlanePropertiesKHR(vkStream, (VkDisplayPlanePropertiesKHR*)(&forMarshaling->displayPlaneProperties));
9146 }
9147
unmarshal_VkDisplayPlaneProperties2KHR(VulkanStreamGuest * vkStream,VkDisplayPlaneProperties2KHR * forUnmarshaling)9148 void unmarshal_VkDisplayPlaneProperties2KHR(
9149 VulkanStreamGuest* vkStream,
9150 VkDisplayPlaneProperties2KHR* forUnmarshaling)
9151 {
9152 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9153 size_t pNext_size;
9154 pNext_size = vkStream->getBe32();
9155 if (pNext_size)
9156 {
9157 uint64_t pNext_placeholder;
9158 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9159 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9160 }
9161 unmarshal_VkDisplayPlanePropertiesKHR(vkStream, (VkDisplayPlanePropertiesKHR*)(&forUnmarshaling->displayPlaneProperties));
9162 }
9163
marshal_VkDisplayModeProperties2KHR(VulkanStreamGuest * vkStream,const VkDisplayModeProperties2KHR * forMarshaling)9164 void marshal_VkDisplayModeProperties2KHR(
9165 VulkanStreamGuest* vkStream,
9166 const VkDisplayModeProperties2KHR* forMarshaling)
9167 {
9168 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9169 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9170 vkStream->putBe32(pNext_size);
9171 if (pNext_size)
9172 {
9173 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9174 marshal_extension_struct(vkStream, forMarshaling->pNext);
9175 }
9176 marshal_VkDisplayModePropertiesKHR(vkStream, (VkDisplayModePropertiesKHR*)(&forMarshaling->displayModeProperties));
9177 }
9178
unmarshal_VkDisplayModeProperties2KHR(VulkanStreamGuest * vkStream,VkDisplayModeProperties2KHR * forUnmarshaling)9179 void unmarshal_VkDisplayModeProperties2KHR(
9180 VulkanStreamGuest* vkStream,
9181 VkDisplayModeProperties2KHR* forUnmarshaling)
9182 {
9183 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9184 size_t pNext_size;
9185 pNext_size = vkStream->getBe32();
9186 if (pNext_size)
9187 {
9188 uint64_t pNext_placeholder;
9189 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9190 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9191 }
9192 unmarshal_VkDisplayModePropertiesKHR(vkStream, (VkDisplayModePropertiesKHR*)(&forUnmarshaling->displayModeProperties));
9193 }
9194
marshal_VkDisplayPlaneInfo2KHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneInfo2KHR * forMarshaling)9195 void marshal_VkDisplayPlaneInfo2KHR(
9196 VulkanStreamGuest* vkStream,
9197 const VkDisplayPlaneInfo2KHR* forMarshaling)
9198 {
9199 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9200 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9201 vkStream->putBe32(pNext_size);
9202 if (pNext_size)
9203 {
9204 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9205 marshal_extension_struct(vkStream, forMarshaling->pNext);
9206 }
9207 uint64_t cgen_var_262;
9208 vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->mode, &cgen_var_262, 1);
9209 vkStream->write((uint64_t*)&cgen_var_262, 1 * 8);
9210 vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
9211 }
9212
unmarshal_VkDisplayPlaneInfo2KHR(VulkanStreamGuest * vkStream,VkDisplayPlaneInfo2KHR * forUnmarshaling)9213 void unmarshal_VkDisplayPlaneInfo2KHR(
9214 VulkanStreamGuest* vkStream,
9215 VkDisplayPlaneInfo2KHR* forUnmarshaling)
9216 {
9217 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9218 size_t pNext_size;
9219 pNext_size = vkStream->getBe32();
9220 if (pNext_size)
9221 {
9222 uint64_t pNext_placeholder;
9223 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9224 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9225 }
9226 uint64_t cgen_var_263;
9227 vkStream->read((uint64_t*)&cgen_var_263, 1 * 8);
9228 vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_263, (VkDisplayModeKHR*)&forUnmarshaling->mode, 1);
9229 vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
9230 }
9231
marshal_VkDisplayPlaneCapabilities2KHR(VulkanStreamGuest * vkStream,const VkDisplayPlaneCapabilities2KHR * forMarshaling)9232 void marshal_VkDisplayPlaneCapabilities2KHR(
9233 VulkanStreamGuest* vkStream,
9234 const VkDisplayPlaneCapabilities2KHR* forMarshaling)
9235 {
9236 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9237 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9238 vkStream->putBe32(pNext_size);
9239 if (pNext_size)
9240 {
9241 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9242 marshal_extension_struct(vkStream, forMarshaling->pNext);
9243 }
9244 marshal_VkDisplayPlaneCapabilitiesKHR(vkStream, (VkDisplayPlaneCapabilitiesKHR*)(&forMarshaling->capabilities));
9245 }
9246
unmarshal_VkDisplayPlaneCapabilities2KHR(VulkanStreamGuest * vkStream,VkDisplayPlaneCapabilities2KHR * forUnmarshaling)9247 void unmarshal_VkDisplayPlaneCapabilities2KHR(
9248 VulkanStreamGuest* vkStream,
9249 VkDisplayPlaneCapabilities2KHR* forUnmarshaling)
9250 {
9251 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9252 size_t pNext_size;
9253 pNext_size = vkStream->getBe32();
9254 if (pNext_size)
9255 {
9256 uint64_t pNext_placeholder;
9257 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9258 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9259 }
9260 unmarshal_VkDisplayPlaneCapabilitiesKHR(vkStream, (VkDisplayPlaneCapabilitiesKHR*)(&forUnmarshaling->capabilities));
9261 }
9262
9263 #endif
9264 #ifdef VK_KHR_dedicated_allocation
9265 #endif
9266 #ifdef VK_KHR_storage_buffer_storage_class
9267 #endif
9268 #ifdef VK_KHR_relaxed_block_layout
9269 #endif
9270 #ifdef VK_KHR_get_memory_requirements2
9271 #endif
9272 #ifdef VK_KHR_image_format_list
marshal_VkImageFormatListCreateInfoKHR(VulkanStreamGuest * vkStream,const VkImageFormatListCreateInfoKHR * forMarshaling)9273 void marshal_VkImageFormatListCreateInfoKHR(
9274 VulkanStreamGuest* vkStream,
9275 const VkImageFormatListCreateInfoKHR* forMarshaling)
9276 {
9277 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9278 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9279 vkStream->putBe32(pNext_size);
9280 if (pNext_size)
9281 {
9282 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9283 marshal_extension_struct(vkStream, forMarshaling->pNext);
9284 }
9285 vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
9286 vkStream->write((const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
9287 }
9288
unmarshal_VkImageFormatListCreateInfoKHR(VulkanStreamGuest * vkStream,VkImageFormatListCreateInfoKHR * forUnmarshaling)9289 void unmarshal_VkImageFormatListCreateInfoKHR(
9290 VulkanStreamGuest* vkStream,
9291 VkImageFormatListCreateInfoKHR* forUnmarshaling)
9292 {
9293 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9294 size_t pNext_size;
9295 pNext_size = vkStream->getBe32();
9296 if (pNext_size)
9297 {
9298 uint64_t pNext_placeholder;
9299 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9300 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9301 }
9302 vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
9303 vkStream->read((VkFormat*)forUnmarshaling->pViewFormats, forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
9304 }
9305
9306 #endif
9307 #ifdef VK_KHR_sampler_ycbcr_conversion
9308 #endif
9309 #ifdef VK_KHR_bind_memory2
9310 #endif
9311 #ifdef VK_KHR_maintenance3
9312 #endif
9313 #ifdef VK_KHR_draw_indirect_count
9314 #endif
9315 #ifdef VK_KHR_8bit_storage
marshal_VkPhysicalDevice8BitStorageFeaturesKHR(VulkanStreamGuest * vkStream,const VkPhysicalDevice8BitStorageFeaturesKHR * forMarshaling)9316 void marshal_VkPhysicalDevice8BitStorageFeaturesKHR(
9317 VulkanStreamGuest* vkStream,
9318 const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling)
9319 {
9320 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9321 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9322 vkStream->putBe32(pNext_size);
9323 if (pNext_size)
9324 {
9325 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9326 marshal_extension_struct(vkStream, forMarshaling->pNext);
9327 }
9328 vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
9329 vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
9330 vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
9331 }
9332
unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(VulkanStreamGuest * vkStream,VkPhysicalDevice8BitStorageFeaturesKHR * forUnmarshaling)9333 void unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
9334 VulkanStreamGuest* vkStream,
9335 VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling)
9336 {
9337 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9338 size_t pNext_size;
9339 pNext_size = vkStream->getBe32();
9340 if (pNext_size)
9341 {
9342 uint64_t pNext_placeholder;
9343 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9344 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9345 }
9346 vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
9347 vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
9348 vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
9349 }
9350
9351 #endif
9352 #ifdef VK_ANDROID_native_buffer
marshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,const VkNativeBufferANDROID * forMarshaling)9353 void marshal_VkNativeBufferANDROID(
9354 VulkanStreamGuest* vkStream,
9355 const VkNativeBufferANDROID* forMarshaling)
9356 {
9357 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9358 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9359 vkStream->putBe32(pNext_size);
9360 if (pNext_size)
9361 {
9362 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9363 marshal_extension_struct(vkStream, forMarshaling->pNext);
9364 }
9365 // WARNING PTR CHECK
9366 uint64_t cgen_var_264 = (uint64_t)(uintptr_t)forMarshaling->handle;
9367 vkStream->putBe64(cgen_var_264);
9368 if (forMarshaling->handle)
9369 {
9370 vkStream->write((const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
9371 }
9372 vkStream->write((int*)&forMarshaling->stride, sizeof(int));
9373 vkStream->write((int*)&forMarshaling->format, sizeof(int));
9374 vkStream->write((int*)&forMarshaling->usage, sizeof(int));
9375 vkStream->write((uint64_t*)&forMarshaling->consumer, sizeof(uint64_t));
9376 vkStream->write((uint64_t*)&forMarshaling->producer, sizeof(uint64_t));
9377 }
9378
unmarshal_VkNativeBufferANDROID(VulkanStreamGuest * vkStream,VkNativeBufferANDROID * forUnmarshaling)9379 void unmarshal_VkNativeBufferANDROID(
9380 VulkanStreamGuest* vkStream,
9381 VkNativeBufferANDROID* forUnmarshaling)
9382 {
9383 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9384 size_t pNext_size;
9385 pNext_size = vkStream->getBe32();
9386 if (pNext_size)
9387 {
9388 uint64_t pNext_placeholder;
9389 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9390 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9391 }
9392 // WARNING PTR CHECK
9393 const uint32_t* check_handle;
9394 check_handle = (const uint32_t*)(uintptr_t)vkStream->getBe64();
9395 if (forUnmarshaling->handle)
9396 {
9397 if (!(check_handle))
9398 {
9399 fprintf(stderr, "fatal: forUnmarshaling->handle inconsistent between guest and host\n");
9400 }
9401 vkStream->read((uint32_t*)forUnmarshaling->handle, sizeof(const uint32_t));
9402 }
9403 vkStream->read((int*)&forUnmarshaling->stride, sizeof(int));
9404 vkStream->read((int*)&forUnmarshaling->format, sizeof(int));
9405 vkStream->read((int*)&forUnmarshaling->usage, sizeof(int));
9406 vkStream->read((uint64_t*)&forUnmarshaling->consumer, sizeof(uint64_t));
9407 vkStream->read((uint64_t*)&forUnmarshaling->producer, sizeof(uint64_t));
9408 }
9409
9410 #endif
9411 #ifdef VK_EXT_debug_report
marshal_VkDebugReportCallbackCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDebugReportCallbackCreateInfoEXT * forMarshaling)9412 void marshal_VkDebugReportCallbackCreateInfoEXT(
9413 VulkanStreamGuest* vkStream,
9414 const VkDebugReportCallbackCreateInfoEXT* forMarshaling)
9415 {
9416 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9417 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9418 vkStream->putBe32(pNext_size);
9419 if (pNext_size)
9420 {
9421 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9422 marshal_extension_struct(vkStream, forMarshaling->pNext);
9423 }
9424 vkStream->write((VkDebugReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugReportFlagsEXT));
9425 uint64_t cgen_var_266 = (uint64_t)forMarshaling->pfnCallback;
9426 vkStream->putBe64(cgen_var_266);
9427 // WARNING PTR CHECK
9428 uint64_t cgen_var_267 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
9429 vkStream->putBe64(cgen_var_267);
9430 if (forMarshaling->pUserData)
9431 {
9432 vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
9433 }
9434 }
9435
unmarshal_VkDebugReportCallbackCreateInfoEXT(VulkanStreamGuest * vkStream,VkDebugReportCallbackCreateInfoEXT * forUnmarshaling)9436 void unmarshal_VkDebugReportCallbackCreateInfoEXT(
9437 VulkanStreamGuest* vkStream,
9438 VkDebugReportCallbackCreateInfoEXT* forUnmarshaling)
9439 {
9440 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9441 size_t pNext_size;
9442 pNext_size = vkStream->getBe32();
9443 if (pNext_size)
9444 {
9445 uint64_t pNext_placeholder;
9446 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9447 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9448 }
9449 vkStream->read((VkDebugReportFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDebugReportFlagsEXT));
9450 forUnmarshaling->pfnCallback = (PFN_vkDebugReportCallbackEXT)vkStream->getBe64();
9451 // WARNING PTR CHECK
9452 void* check_pUserData;
9453 check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
9454 if (forUnmarshaling->pUserData)
9455 {
9456 if (!(check_pUserData))
9457 {
9458 fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
9459 }
9460 vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
9461 }
9462 }
9463
9464 #endif
9465 #ifdef VK_NV_glsl_shader
9466 #endif
9467 #ifdef VK_EXT_depth_range_unrestricted
9468 #endif
9469 #ifdef VK_IMG_filter_cubic
9470 #endif
9471 #ifdef VK_AMD_rasterization_order
marshal_VkPipelineRasterizationStateRasterizationOrderAMD(VulkanStreamGuest * vkStream,const VkPipelineRasterizationStateRasterizationOrderAMD * forMarshaling)9472 void marshal_VkPipelineRasterizationStateRasterizationOrderAMD(
9473 VulkanStreamGuest* vkStream,
9474 const VkPipelineRasterizationStateRasterizationOrderAMD* forMarshaling)
9475 {
9476 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9477 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9478 vkStream->putBe32(pNext_size);
9479 if (pNext_size)
9480 {
9481 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9482 marshal_extension_struct(vkStream, forMarshaling->pNext);
9483 }
9484 vkStream->write((VkRasterizationOrderAMD*)&forMarshaling->rasterizationOrder, sizeof(VkRasterizationOrderAMD));
9485 }
9486
unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(VulkanStreamGuest * vkStream,VkPipelineRasterizationStateRasterizationOrderAMD * forUnmarshaling)9487 void unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(
9488 VulkanStreamGuest* vkStream,
9489 VkPipelineRasterizationStateRasterizationOrderAMD* forUnmarshaling)
9490 {
9491 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9492 size_t pNext_size;
9493 pNext_size = vkStream->getBe32();
9494 if (pNext_size)
9495 {
9496 uint64_t pNext_placeholder;
9497 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9498 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9499 }
9500 vkStream->read((VkRasterizationOrderAMD*)&forUnmarshaling->rasterizationOrder, sizeof(VkRasterizationOrderAMD));
9501 }
9502
9503 #endif
9504 #ifdef VK_AMD_shader_trinary_minmax
9505 #endif
9506 #ifdef VK_AMD_shader_explicit_vertex_parameter
9507 #endif
9508 #ifdef VK_EXT_debug_marker
marshal_VkDebugMarkerObjectNameInfoEXT(VulkanStreamGuest * vkStream,const VkDebugMarkerObjectNameInfoEXT * forMarshaling)9509 void marshal_VkDebugMarkerObjectNameInfoEXT(
9510 VulkanStreamGuest* vkStream,
9511 const VkDebugMarkerObjectNameInfoEXT* forMarshaling)
9512 {
9513 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9514 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9515 vkStream->putBe32(pNext_size);
9516 if (pNext_size)
9517 {
9518 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9519 marshal_extension_struct(vkStream, forMarshaling->pNext);
9520 }
9521 vkStream->write((VkDebugReportObjectTypeEXT*)&forMarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9522 vkStream->write((uint64_t*)&forMarshaling->object, sizeof(uint64_t));
9523 vkStream->putString(forMarshaling->pObjectName);
9524 }
9525
unmarshal_VkDebugMarkerObjectNameInfoEXT(VulkanStreamGuest * vkStream,VkDebugMarkerObjectNameInfoEXT * forUnmarshaling)9526 void unmarshal_VkDebugMarkerObjectNameInfoEXT(
9527 VulkanStreamGuest* vkStream,
9528 VkDebugMarkerObjectNameInfoEXT* forUnmarshaling)
9529 {
9530 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9531 size_t pNext_size;
9532 pNext_size = vkStream->getBe32();
9533 if (pNext_size)
9534 {
9535 uint64_t pNext_placeholder;
9536 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9537 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9538 }
9539 vkStream->read((VkDebugReportObjectTypeEXT*)&forUnmarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9540 vkStream->read((uint64_t*)&forUnmarshaling->object, sizeof(uint64_t));
9541 vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
9542 }
9543
marshal_VkDebugMarkerObjectTagInfoEXT(VulkanStreamGuest * vkStream,const VkDebugMarkerObjectTagInfoEXT * forMarshaling)9544 void marshal_VkDebugMarkerObjectTagInfoEXT(
9545 VulkanStreamGuest* vkStream,
9546 const VkDebugMarkerObjectTagInfoEXT* forMarshaling)
9547 {
9548 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9549 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9550 vkStream->putBe32(pNext_size);
9551 if (pNext_size)
9552 {
9553 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9554 marshal_extension_struct(vkStream, forMarshaling->pNext);
9555 }
9556 vkStream->write((VkDebugReportObjectTypeEXT*)&forMarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9557 vkStream->write((uint64_t*)&forMarshaling->object, sizeof(uint64_t));
9558 vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
9559 uint64_t cgen_var_270 = (uint64_t)forMarshaling->tagSize;
9560 vkStream->putBe64(cgen_var_270);
9561 vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
9562 }
9563
unmarshal_VkDebugMarkerObjectTagInfoEXT(VulkanStreamGuest * vkStream,VkDebugMarkerObjectTagInfoEXT * forUnmarshaling)9564 void unmarshal_VkDebugMarkerObjectTagInfoEXT(
9565 VulkanStreamGuest* vkStream,
9566 VkDebugMarkerObjectTagInfoEXT* forUnmarshaling)
9567 {
9568 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9569 size_t pNext_size;
9570 pNext_size = vkStream->getBe32();
9571 if (pNext_size)
9572 {
9573 uint64_t pNext_placeholder;
9574 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9575 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9576 }
9577 vkStream->read((VkDebugReportObjectTypeEXT*)&forUnmarshaling->objectType, sizeof(VkDebugReportObjectTypeEXT));
9578 vkStream->read((uint64_t*)&forUnmarshaling->object, sizeof(uint64_t));
9579 vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
9580 forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
9581 vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
9582 }
9583
marshal_VkDebugMarkerMarkerInfoEXT(VulkanStreamGuest * vkStream,const VkDebugMarkerMarkerInfoEXT * forMarshaling)9584 void marshal_VkDebugMarkerMarkerInfoEXT(
9585 VulkanStreamGuest* vkStream,
9586 const VkDebugMarkerMarkerInfoEXT* forMarshaling)
9587 {
9588 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9589 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9590 vkStream->putBe32(pNext_size);
9591 if (pNext_size)
9592 {
9593 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9594 marshal_extension_struct(vkStream, forMarshaling->pNext);
9595 }
9596 vkStream->putString(forMarshaling->pMarkerName);
9597 vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
9598 }
9599
unmarshal_VkDebugMarkerMarkerInfoEXT(VulkanStreamGuest * vkStream,VkDebugMarkerMarkerInfoEXT * forUnmarshaling)9600 void unmarshal_VkDebugMarkerMarkerInfoEXT(
9601 VulkanStreamGuest* vkStream,
9602 VkDebugMarkerMarkerInfoEXT* forUnmarshaling)
9603 {
9604 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9605 size_t pNext_size;
9606 pNext_size = vkStream->getBe32();
9607 if (pNext_size)
9608 {
9609 uint64_t pNext_placeholder;
9610 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9611 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9612 }
9613 vkStream->loadStringInPlace((char**)&forUnmarshaling->pMarkerName);
9614 vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
9615 }
9616
9617 #endif
9618 #ifdef VK_AMD_gcn_shader
9619 #endif
9620 #ifdef VK_NV_dedicated_allocation
marshal_VkDedicatedAllocationImageCreateInfoNV(VulkanStreamGuest * vkStream,const VkDedicatedAllocationImageCreateInfoNV * forMarshaling)9621 void marshal_VkDedicatedAllocationImageCreateInfoNV(
9622 VulkanStreamGuest* vkStream,
9623 const VkDedicatedAllocationImageCreateInfoNV* forMarshaling)
9624 {
9625 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9626 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9627 vkStream->putBe32(pNext_size);
9628 if (pNext_size)
9629 {
9630 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9631 marshal_extension_struct(vkStream, forMarshaling->pNext);
9632 }
9633 vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocation, sizeof(VkBool32));
9634 }
9635
unmarshal_VkDedicatedAllocationImageCreateInfoNV(VulkanStreamGuest * vkStream,VkDedicatedAllocationImageCreateInfoNV * forUnmarshaling)9636 void unmarshal_VkDedicatedAllocationImageCreateInfoNV(
9637 VulkanStreamGuest* vkStream,
9638 VkDedicatedAllocationImageCreateInfoNV* forUnmarshaling)
9639 {
9640 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9641 size_t pNext_size;
9642 pNext_size = vkStream->getBe32();
9643 if (pNext_size)
9644 {
9645 uint64_t pNext_placeholder;
9646 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9647 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9648 }
9649 vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocation, sizeof(VkBool32));
9650 }
9651
marshal_VkDedicatedAllocationBufferCreateInfoNV(VulkanStreamGuest * vkStream,const VkDedicatedAllocationBufferCreateInfoNV * forMarshaling)9652 void marshal_VkDedicatedAllocationBufferCreateInfoNV(
9653 VulkanStreamGuest* vkStream,
9654 const VkDedicatedAllocationBufferCreateInfoNV* forMarshaling)
9655 {
9656 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9657 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9658 vkStream->putBe32(pNext_size);
9659 if (pNext_size)
9660 {
9661 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9662 marshal_extension_struct(vkStream, forMarshaling->pNext);
9663 }
9664 vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocation, sizeof(VkBool32));
9665 }
9666
unmarshal_VkDedicatedAllocationBufferCreateInfoNV(VulkanStreamGuest * vkStream,VkDedicatedAllocationBufferCreateInfoNV * forUnmarshaling)9667 void unmarshal_VkDedicatedAllocationBufferCreateInfoNV(
9668 VulkanStreamGuest* vkStream,
9669 VkDedicatedAllocationBufferCreateInfoNV* forUnmarshaling)
9670 {
9671 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9672 size_t pNext_size;
9673 pNext_size = vkStream->getBe32();
9674 if (pNext_size)
9675 {
9676 uint64_t pNext_placeholder;
9677 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9678 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9679 }
9680 vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocation, sizeof(VkBool32));
9681 }
9682
marshal_VkDedicatedAllocationMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,const VkDedicatedAllocationMemoryAllocateInfoNV * forMarshaling)9683 void marshal_VkDedicatedAllocationMemoryAllocateInfoNV(
9684 VulkanStreamGuest* vkStream,
9685 const VkDedicatedAllocationMemoryAllocateInfoNV* forMarshaling)
9686 {
9687 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9688 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9689 vkStream->putBe32(pNext_size);
9690 if (pNext_size)
9691 {
9692 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9693 marshal_extension_struct(vkStream, forMarshaling->pNext);
9694 }
9695 uint64_t cgen_var_272;
9696 vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_272, 1);
9697 vkStream->write((uint64_t*)&cgen_var_272, 1 * 8);
9698 uint64_t cgen_var_273;
9699 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_273, 1);
9700 vkStream->write((uint64_t*)&cgen_var_273, 1 * 8);
9701 }
9702
unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,VkDedicatedAllocationMemoryAllocateInfoNV * forUnmarshaling)9703 void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
9704 VulkanStreamGuest* vkStream,
9705 VkDedicatedAllocationMemoryAllocateInfoNV* forUnmarshaling)
9706 {
9707 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9708 size_t pNext_size;
9709 pNext_size = vkStream->getBe32();
9710 if (pNext_size)
9711 {
9712 uint64_t pNext_placeholder;
9713 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9714 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9715 }
9716 uint64_t cgen_var_274;
9717 vkStream->read((uint64_t*)&cgen_var_274, 1 * 8);
9718 vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_274, (VkImage*)&forUnmarshaling->image, 1);
9719 uint64_t cgen_var_275;
9720 vkStream->read((uint64_t*)&cgen_var_275, 1 * 8);
9721 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_275, (VkBuffer*)&forUnmarshaling->buffer, 1);
9722 }
9723
9724 #endif
9725 #ifdef VK_AMD_draw_indirect_count
9726 #endif
9727 #ifdef VK_AMD_negative_viewport_height
9728 #endif
9729 #ifdef VK_AMD_gpu_shader_half_float
9730 #endif
9731 #ifdef VK_AMD_shader_ballot
9732 #endif
9733 #ifdef VK_AMD_texture_gather_bias_lod
marshal_VkTextureLODGatherFormatPropertiesAMD(VulkanStreamGuest * vkStream,const VkTextureLODGatherFormatPropertiesAMD * forMarshaling)9734 void marshal_VkTextureLODGatherFormatPropertiesAMD(
9735 VulkanStreamGuest* vkStream,
9736 const VkTextureLODGatherFormatPropertiesAMD* forMarshaling)
9737 {
9738 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9739 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9740 vkStream->putBe32(pNext_size);
9741 if (pNext_size)
9742 {
9743 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
9744 marshal_extension_struct(vkStream, forMarshaling->pNext);
9745 }
9746 vkStream->write((VkBool32*)&forMarshaling->supportsTextureGatherLODBiasAMD, sizeof(VkBool32));
9747 }
9748
unmarshal_VkTextureLODGatherFormatPropertiesAMD(VulkanStreamGuest * vkStream,VkTextureLODGatherFormatPropertiesAMD * forUnmarshaling)9749 void unmarshal_VkTextureLODGatherFormatPropertiesAMD(
9750 VulkanStreamGuest* vkStream,
9751 VkTextureLODGatherFormatPropertiesAMD* forUnmarshaling)
9752 {
9753 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9754 size_t pNext_size;
9755 pNext_size = vkStream->getBe32();
9756 if (pNext_size)
9757 {
9758 uint64_t pNext_placeholder;
9759 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9760 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9761 }
9762 vkStream->read((VkBool32*)&forUnmarshaling->supportsTextureGatherLODBiasAMD, sizeof(VkBool32));
9763 }
9764
9765 #endif
9766 #ifdef VK_AMD_shader_info
marshal_VkShaderResourceUsageAMD(VulkanStreamGuest * vkStream,const VkShaderResourceUsageAMD * forMarshaling)9767 void marshal_VkShaderResourceUsageAMD(
9768 VulkanStreamGuest* vkStream,
9769 const VkShaderResourceUsageAMD* forMarshaling)
9770 {
9771 vkStream->write((uint32_t*)&forMarshaling->numUsedVgprs, sizeof(uint32_t));
9772 vkStream->write((uint32_t*)&forMarshaling->numUsedSgprs, sizeof(uint32_t));
9773 vkStream->write((uint32_t*)&forMarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
9774 uint64_t cgen_var_276 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
9775 vkStream->putBe64(cgen_var_276);
9776 uint64_t cgen_var_277 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
9777 vkStream->putBe64(cgen_var_277);
9778 }
9779
unmarshal_VkShaderResourceUsageAMD(VulkanStreamGuest * vkStream,VkShaderResourceUsageAMD * forUnmarshaling)9780 void unmarshal_VkShaderResourceUsageAMD(
9781 VulkanStreamGuest* vkStream,
9782 VkShaderResourceUsageAMD* forUnmarshaling)
9783 {
9784 vkStream->read((uint32_t*)&forUnmarshaling->numUsedVgprs, sizeof(uint32_t));
9785 vkStream->read((uint32_t*)&forUnmarshaling->numUsedSgprs, sizeof(uint32_t));
9786 vkStream->read((uint32_t*)&forUnmarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
9787 forUnmarshaling->ldsUsageSizeInBytes = (size_t)vkStream->getBe64();
9788 forUnmarshaling->scratchMemUsageInBytes = (size_t)vkStream->getBe64();
9789 }
9790
marshal_VkShaderStatisticsInfoAMD(VulkanStreamGuest * vkStream,const VkShaderStatisticsInfoAMD * forMarshaling)9791 void marshal_VkShaderStatisticsInfoAMD(
9792 VulkanStreamGuest* vkStream,
9793 const VkShaderStatisticsInfoAMD* forMarshaling)
9794 {
9795 vkStream->write((VkShaderStageFlags*)&forMarshaling->shaderStageMask, sizeof(VkShaderStageFlags));
9796 marshal_VkShaderResourceUsageAMD(vkStream, (VkShaderResourceUsageAMD*)(&forMarshaling->resourceUsage));
9797 vkStream->write((uint32_t*)&forMarshaling->numPhysicalVgprs, sizeof(uint32_t));
9798 vkStream->write((uint32_t*)&forMarshaling->numPhysicalSgprs, sizeof(uint32_t));
9799 vkStream->write((uint32_t*)&forMarshaling->numAvailableVgprs, sizeof(uint32_t));
9800 vkStream->write((uint32_t*)&forMarshaling->numAvailableSgprs, sizeof(uint32_t));
9801 vkStream->write((uint32_t*)forMarshaling->computeWorkGroupSize, 3 * sizeof(uint32_t));
9802 }
9803
unmarshal_VkShaderStatisticsInfoAMD(VulkanStreamGuest * vkStream,VkShaderStatisticsInfoAMD * forUnmarshaling)9804 void unmarshal_VkShaderStatisticsInfoAMD(
9805 VulkanStreamGuest* vkStream,
9806 VkShaderStatisticsInfoAMD* forUnmarshaling)
9807 {
9808 vkStream->read((VkShaderStageFlags*)&forUnmarshaling->shaderStageMask, sizeof(VkShaderStageFlags));
9809 unmarshal_VkShaderResourceUsageAMD(vkStream, (VkShaderResourceUsageAMD*)(&forUnmarshaling->resourceUsage));
9810 vkStream->read((uint32_t*)&forUnmarshaling->numPhysicalVgprs, sizeof(uint32_t));
9811 vkStream->read((uint32_t*)&forUnmarshaling->numPhysicalSgprs, sizeof(uint32_t));
9812 vkStream->read((uint32_t*)&forUnmarshaling->numAvailableVgprs, sizeof(uint32_t));
9813 vkStream->read((uint32_t*)&forUnmarshaling->numAvailableSgprs, sizeof(uint32_t));
9814 vkStream->read((uint32_t*)forUnmarshaling->computeWorkGroupSize, 3 * sizeof(uint32_t));
9815 }
9816
9817 #endif
9818 #ifdef VK_AMD_shader_image_load_store_lod
9819 #endif
9820 #ifdef VK_IMG_format_pvrtc
9821 #endif
9822 #ifdef VK_NV_external_memory_capabilities
marshal_VkExternalImageFormatPropertiesNV(VulkanStreamGuest * vkStream,const VkExternalImageFormatPropertiesNV * forMarshaling)9823 void marshal_VkExternalImageFormatPropertiesNV(
9824 VulkanStreamGuest* vkStream,
9825 const VkExternalImageFormatPropertiesNV* forMarshaling)
9826 {
9827 marshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
9828 vkStream->write((VkExternalMemoryFeatureFlagsNV*)&forMarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlagsNV));
9829 vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9830 vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9831 }
9832
unmarshal_VkExternalImageFormatPropertiesNV(VulkanStreamGuest * vkStream,VkExternalImageFormatPropertiesNV * forUnmarshaling)9833 void unmarshal_VkExternalImageFormatPropertiesNV(
9834 VulkanStreamGuest* vkStream,
9835 VkExternalImageFormatPropertiesNV* forUnmarshaling)
9836 {
9837 unmarshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
9838 vkStream->read((VkExternalMemoryFeatureFlagsNV*)&forUnmarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlagsNV));
9839 vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->exportFromImportedHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9840 vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->compatibleHandleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9841 }
9842
9843 #endif
9844 #ifdef VK_NV_external_memory
marshal_VkExternalMemoryImageCreateInfoNV(VulkanStreamGuest * vkStream,const VkExternalMemoryImageCreateInfoNV * forMarshaling)9845 void marshal_VkExternalMemoryImageCreateInfoNV(
9846 VulkanStreamGuest* vkStream,
9847 const VkExternalMemoryImageCreateInfoNV* forMarshaling)
9848 {
9849 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9850 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9851 vkStream->putBe32(pNext_size);
9852 if (pNext_size)
9853 {
9854 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9855 marshal_extension_struct(vkStream, forMarshaling->pNext);
9856 }
9857 vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9858 }
9859
unmarshal_VkExternalMemoryImageCreateInfoNV(VulkanStreamGuest * vkStream,VkExternalMemoryImageCreateInfoNV * forUnmarshaling)9860 void unmarshal_VkExternalMemoryImageCreateInfoNV(
9861 VulkanStreamGuest* vkStream,
9862 VkExternalMemoryImageCreateInfoNV* forUnmarshaling)
9863 {
9864 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9865 size_t pNext_size;
9866 pNext_size = vkStream->getBe32();
9867 if (pNext_size)
9868 {
9869 uint64_t pNext_placeholder;
9870 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9871 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9872 }
9873 vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9874 }
9875
marshal_VkExportMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,const VkExportMemoryAllocateInfoNV * forMarshaling)9876 void marshal_VkExportMemoryAllocateInfoNV(
9877 VulkanStreamGuest* vkStream,
9878 const VkExportMemoryAllocateInfoNV* forMarshaling)
9879 {
9880 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9881 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9882 vkStream->putBe32(pNext_size);
9883 if (pNext_size)
9884 {
9885 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9886 marshal_extension_struct(vkStream, forMarshaling->pNext);
9887 }
9888 vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9889 }
9890
unmarshal_VkExportMemoryAllocateInfoNV(VulkanStreamGuest * vkStream,VkExportMemoryAllocateInfoNV * forUnmarshaling)9891 void unmarshal_VkExportMemoryAllocateInfoNV(
9892 VulkanStreamGuest* vkStream,
9893 VkExportMemoryAllocateInfoNV* forUnmarshaling)
9894 {
9895 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9896 size_t pNext_size;
9897 pNext_size = vkStream->getBe32();
9898 if (pNext_size)
9899 {
9900 uint64_t pNext_placeholder;
9901 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9902 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9903 }
9904 vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleTypes, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9905 }
9906
9907 #endif
9908 #ifdef VK_NV_external_memory_win32
marshal_VkImportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,const VkImportMemoryWin32HandleInfoNV * forMarshaling)9909 void marshal_VkImportMemoryWin32HandleInfoNV(
9910 VulkanStreamGuest* vkStream,
9911 const VkImportMemoryWin32HandleInfoNV* forMarshaling)
9912 {
9913 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9914 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9915 vkStream->putBe32(pNext_size);
9916 if (pNext_size)
9917 {
9918 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9919 marshal_extension_struct(vkStream, forMarshaling->pNext);
9920 }
9921 vkStream->write((VkExternalMemoryHandleTypeFlagsNV*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9922 vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
9923 }
9924
unmarshal_VkImportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,VkImportMemoryWin32HandleInfoNV * forUnmarshaling)9925 void unmarshal_VkImportMemoryWin32HandleInfoNV(
9926 VulkanStreamGuest* vkStream,
9927 VkImportMemoryWin32HandleInfoNV* forUnmarshaling)
9928 {
9929 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9930 size_t pNext_size;
9931 pNext_size = vkStream->getBe32();
9932 if (pNext_size)
9933 {
9934 uint64_t pNext_placeholder;
9935 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9936 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9937 }
9938 vkStream->read((VkExternalMemoryHandleTypeFlagsNV*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
9939 vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
9940 }
9941
marshal_VkExportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,const VkExportMemoryWin32HandleInfoNV * forMarshaling)9942 void marshal_VkExportMemoryWin32HandleInfoNV(
9943 VulkanStreamGuest* vkStream,
9944 const VkExportMemoryWin32HandleInfoNV* forMarshaling)
9945 {
9946 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9947 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9948 vkStream->putBe32(pNext_size);
9949 if (pNext_size)
9950 {
9951 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
9952 marshal_extension_struct(vkStream, forMarshaling->pNext);
9953 }
9954 // WARNING PTR CHECK
9955 uint64_t cgen_var_280 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
9956 vkStream->putBe64(cgen_var_280);
9957 if (forMarshaling->pAttributes)
9958 {
9959 vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
9960 }
9961 vkStream->write((DWORD*)&forMarshaling->dwAccess, sizeof(DWORD));
9962 }
9963
unmarshal_VkExportMemoryWin32HandleInfoNV(VulkanStreamGuest * vkStream,VkExportMemoryWin32HandleInfoNV * forUnmarshaling)9964 void unmarshal_VkExportMemoryWin32HandleInfoNV(
9965 VulkanStreamGuest* vkStream,
9966 VkExportMemoryWin32HandleInfoNV* forUnmarshaling)
9967 {
9968 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
9969 size_t pNext_size;
9970 pNext_size = vkStream->getBe32();
9971 if (pNext_size)
9972 {
9973 uint64_t pNext_placeholder;
9974 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
9975 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
9976 }
9977 // WARNING PTR CHECK
9978 const SECURITY_ATTRIBUTES* check_pAttributes;
9979 check_pAttributes = (const SECURITY_ATTRIBUTES*)(uintptr_t)vkStream->getBe64();
9980 if (forUnmarshaling->pAttributes)
9981 {
9982 if (!(check_pAttributes))
9983 {
9984 fprintf(stderr, "fatal: forUnmarshaling->pAttributes inconsistent between guest and host\n");
9985 }
9986 vkStream->read((SECURITY_ATTRIBUTES*)forUnmarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
9987 }
9988 vkStream->read((DWORD*)&forUnmarshaling->dwAccess, sizeof(DWORD));
9989 }
9990
9991 #endif
9992 #ifdef VK_NV_win32_keyed_mutex
marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(VulkanStreamGuest * vkStream,const VkWin32KeyedMutexAcquireReleaseInfoNV * forMarshaling)9993 void marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
9994 VulkanStreamGuest* vkStream,
9995 const VkWin32KeyedMutexAcquireReleaseInfoNV* forMarshaling)
9996 {
9997 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
9998 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
9999 vkStream->putBe32(pNext_size);
10000 if (pNext_size)
10001 {
10002 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10003 marshal_extension_struct(vkStream, forMarshaling->pNext);
10004 }
10005 vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
10006 if (forMarshaling->acquireCount)
10007 {
10008 uint64_t* cgen_var_282;
10009 vkStream->alloc((void**)&cgen_var_282, forMarshaling->acquireCount * 8);
10010 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_282, forMarshaling->acquireCount);
10011 vkStream->write((uint64_t*)cgen_var_282, forMarshaling->acquireCount * 8);
10012 }
10013 vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys, forMarshaling->acquireCount * sizeof(const uint64_t));
10014 vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeoutMilliseconds, forMarshaling->acquireCount * sizeof(const uint32_t));
10015 vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
10016 if (forMarshaling->releaseCount)
10017 {
10018 uint64_t* cgen_var_283;
10019 vkStream->alloc((void**)&cgen_var_283, forMarshaling->releaseCount * 8);
10020 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_283, forMarshaling->releaseCount);
10021 vkStream->write((uint64_t*)cgen_var_283, forMarshaling->releaseCount * 8);
10022 }
10023 vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys, forMarshaling->releaseCount * sizeof(const uint64_t));
10024 }
10025
unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(VulkanStreamGuest * vkStream,VkWin32KeyedMutexAcquireReleaseInfoNV * forUnmarshaling)10026 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
10027 VulkanStreamGuest* vkStream,
10028 VkWin32KeyedMutexAcquireReleaseInfoNV* forUnmarshaling)
10029 {
10030 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10031 size_t pNext_size;
10032 pNext_size = vkStream->getBe32();
10033 if (pNext_size)
10034 {
10035 uint64_t pNext_placeholder;
10036 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10037 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10038 }
10039 vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
10040 if (forUnmarshaling->acquireCount)
10041 {
10042 uint64_t* cgen_var_284;
10043 vkStream->alloc((void**)&cgen_var_284, forUnmarshaling->acquireCount * 8);
10044 vkStream->read((uint64_t*)cgen_var_284, forUnmarshaling->acquireCount * 8);
10045 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_284, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
10046 }
10047 vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
10048 vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeoutMilliseconds, forUnmarshaling->acquireCount * sizeof(const uint32_t));
10049 vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
10050 if (forUnmarshaling->releaseCount)
10051 {
10052 uint64_t* cgen_var_285;
10053 vkStream->alloc((void**)&cgen_var_285, forUnmarshaling->releaseCount * 8);
10054 vkStream->read((uint64_t*)cgen_var_285, forUnmarshaling->releaseCount * 8);
10055 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_285, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
10056 }
10057 vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
10058 }
10059
10060 #endif
10061 #ifdef VK_EXT_validation_flags
marshal_VkValidationFlagsEXT(VulkanStreamGuest * vkStream,const VkValidationFlagsEXT * forMarshaling)10062 void marshal_VkValidationFlagsEXT(
10063 VulkanStreamGuest* vkStream,
10064 const VkValidationFlagsEXT* forMarshaling)
10065 {
10066 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10067 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10068 vkStream->putBe32(pNext_size);
10069 if (pNext_size)
10070 {
10071 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10072 marshal_extension_struct(vkStream, forMarshaling->pNext);
10073 }
10074 vkStream->write((uint32_t*)&forMarshaling->disabledValidationCheckCount, sizeof(uint32_t));
10075 vkStream->write((const VkValidationCheckEXT*)forMarshaling->pDisabledValidationChecks, forMarshaling->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
10076 }
10077
unmarshal_VkValidationFlagsEXT(VulkanStreamGuest * vkStream,VkValidationFlagsEXT * forUnmarshaling)10078 void unmarshal_VkValidationFlagsEXT(
10079 VulkanStreamGuest* vkStream,
10080 VkValidationFlagsEXT* 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((uint32_t*)&forUnmarshaling->disabledValidationCheckCount, sizeof(uint32_t));
10092 vkStream->read((VkValidationCheckEXT*)forUnmarshaling->pDisabledValidationChecks, forUnmarshaling->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
10093 }
10094
10095 #endif
10096 #ifdef VK_NN_vi_surface
marshal_VkViSurfaceCreateInfoNN(VulkanStreamGuest * vkStream,const VkViSurfaceCreateInfoNN * forMarshaling)10097 void marshal_VkViSurfaceCreateInfoNN(
10098 VulkanStreamGuest* vkStream,
10099 const VkViSurfaceCreateInfoNN* forMarshaling)
10100 {
10101 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10102 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10103 vkStream->putBe32(pNext_size);
10104 if (pNext_size)
10105 {
10106 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10107 marshal_extension_struct(vkStream, forMarshaling->pNext);
10108 }
10109 vkStream->write((VkViSurfaceCreateFlagsNN*)&forMarshaling->flags, sizeof(VkViSurfaceCreateFlagsNN));
10110 // WARNING PTR CHECK
10111 uint64_t cgen_var_286 = (uint64_t)(uintptr_t)forMarshaling->window;
10112 vkStream->putBe64(cgen_var_286);
10113 if (forMarshaling->window)
10114 {
10115 vkStream->write((void*)forMarshaling->window, sizeof(uint8_t));
10116 }
10117 }
10118
unmarshal_VkViSurfaceCreateInfoNN(VulkanStreamGuest * vkStream,VkViSurfaceCreateInfoNN * forUnmarshaling)10119 void unmarshal_VkViSurfaceCreateInfoNN(
10120 VulkanStreamGuest* vkStream,
10121 VkViSurfaceCreateInfoNN* forUnmarshaling)
10122 {
10123 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10124 size_t pNext_size;
10125 pNext_size = vkStream->getBe32();
10126 if (pNext_size)
10127 {
10128 uint64_t pNext_placeholder;
10129 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10130 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10131 }
10132 vkStream->read((VkViSurfaceCreateFlagsNN*)&forUnmarshaling->flags, sizeof(VkViSurfaceCreateFlagsNN));
10133 // WARNING PTR CHECK
10134 void* check_window;
10135 check_window = (void*)(uintptr_t)vkStream->getBe64();
10136 if (forUnmarshaling->window)
10137 {
10138 if (!(check_window))
10139 {
10140 fprintf(stderr, "fatal: forUnmarshaling->window inconsistent between guest and host\n");
10141 }
10142 vkStream->read((void*)forUnmarshaling->window, sizeof(uint8_t));
10143 }
10144 }
10145
10146 #endif
10147 #ifdef VK_EXT_shader_subgroup_ballot
10148 #endif
10149 #ifdef VK_EXT_shader_subgroup_vote
10150 #endif
10151 #ifdef VK_EXT_conditional_rendering
marshal_VkConditionalRenderingBeginInfoEXT(VulkanStreamGuest * vkStream,const VkConditionalRenderingBeginInfoEXT * forMarshaling)10152 void marshal_VkConditionalRenderingBeginInfoEXT(
10153 VulkanStreamGuest* vkStream,
10154 const VkConditionalRenderingBeginInfoEXT* forMarshaling)
10155 {
10156 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10157 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10158 vkStream->putBe32(pNext_size);
10159 if (pNext_size)
10160 {
10161 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10162 marshal_extension_struct(vkStream, forMarshaling->pNext);
10163 }
10164 uint64_t cgen_var_288;
10165 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_288, 1);
10166 vkStream->write((uint64_t*)&cgen_var_288, 1 * 8);
10167 vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
10168 vkStream->write((VkConditionalRenderingFlagsEXT*)&forMarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
10169 }
10170
unmarshal_VkConditionalRenderingBeginInfoEXT(VulkanStreamGuest * vkStream,VkConditionalRenderingBeginInfoEXT * forUnmarshaling)10171 void unmarshal_VkConditionalRenderingBeginInfoEXT(
10172 VulkanStreamGuest* vkStream,
10173 VkConditionalRenderingBeginInfoEXT* forUnmarshaling)
10174 {
10175 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10176 size_t pNext_size;
10177 pNext_size = vkStream->getBe32();
10178 if (pNext_size)
10179 {
10180 uint64_t pNext_placeholder;
10181 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10182 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10183 }
10184 uint64_t cgen_var_289;
10185 vkStream->read((uint64_t*)&cgen_var_289, 1 * 8);
10186 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_289, (VkBuffer*)&forUnmarshaling->buffer, 1);
10187 vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
10188 vkStream->read((VkConditionalRenderingFlagsEXT*)&forUnmarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
10189 }
10190
marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceConditionalRenderingFeaturesEXT * forMarshaling)10191 void marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
10192 VulkanStreamGuest* vkStream,
10193 const VkPhysicalDeviceConditionalRenderingFeaturesEXT* forMarshaling)
10194 {
10195 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10196 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10197 vkStream->putBe32(pNext_size);
10198 if (pNext_size)
10199 {
10200 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
10201 marshal_extension_struct(vkStream, forMarshaling->pNext);
10202 }
10203 vkStream->write((VkBool32*)&forMarshaling->conditionalRendering, sizeof(VkBool32));
10204 vkStream->write((VkBool32*)&forMarshaling->inheritedConditionalRendering, sizeof(VkBool32));
10205 }
10206
unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceConditionalRenderingFeaturesEXT * forUnmarshaling)10207 void unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
10208 VulkanStreamGuest* vkStream,
10209 VkPhysicalDeviceConditionalRenderingFeaturesEXT* forUnmarshaling)
10210 {
10211 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10212 size_t pNext_size;
10213 pNext_size = vkStream->getBe32();
10214 if (pNext_size)
10215 {
10216 uint64_t pNext_placeholder;
10217 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10218 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10219 }
10220 vkStream->read((VkBool32*)&forUnmarshaling->conditionalRendering, sizeof(VkBool32));
10221 vkStream->read((VkBool32*)&forUnmarshaling->inheritedConditionalRendering, sizeof(VkBool32));
10222 }
10223
marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(VulkanStreamGuest * vkStream,const VkCommandBufferInheritanceConditionalRenderingInfoEXT * forMarshaling)10224 void marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
10225 VulkanStreamGuest* vkStream,
10226 const VkCommandBufferInheritanceConditionalRenderingInfoEXT* forMarshaling)
10227 {
10228 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10229 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10230 vkStream->putBe32(pNext_size);
10231 if (pNext_size)
10232 {
10233 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10234 marshal_extension_struct(vkStream, forMarshaling->pNext);
10235 }
10236 vkStream->write((VkBool32*)&forMarshaling->conditionalRenderingEnable, sizeof(VkBool32));
10237 }
10238
unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(VulkanStreamGuest * vkStream,VkCommandBufferInheritanceConditionalRenderingInfoEXT * forUnmarshaling)10239 void unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
10240 VulkanStreamGuest* vkStream,
10241 VkCommandBufferInheritanceConditionalRenderingInfoEXT* forUnmarshaling)
10242 {
10243 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10244 size_t pNext_size;
10245 pNext_size = vkStream->getBe32();
10246 if (pNext_size)
10247 {
10248 uint64_t pNext_placeholder;
10249 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10250 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10251 }
10252 vkStream->read((VkBool32*)&forUnmarshaling->conditionalRenderingEnable, sizeof(VkBool32));
10253 }
10254
10255 #endif
10256 #ifdef VK_NVX_device_generated_commands
marshal_VkDeviceGeneratedCommandsFeaturesNVX(VulkanStreamGuest * vkStream,const VkDeviceGeneratedCommandsFeaturesNVX * forMarshaling)10257 void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
10258 VulkanStreamGuest* vkStream,
10259 const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling)
10260 {
10261 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10262 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10263 vkStream->putBe32(pNext_size);
10264 if (pNext_size)
10265 {
10266 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10267 marshal_extension_struct(vkStream, forMarshaling->pNext);
10268 }
10269 vkStream->write((VkBool32*)&forMarshaling->computeBindingPointSupport, sizeof(VkBool32));
10270 }
10271
unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(VulkanStreamGuest * vkStream,VkDeviceGeneratedCommandsFeaturesNVX * forUnmarshaling)10272 void unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
10273 VulkanStreamGuest* vkStream,
10274 VkDeviceGeneratedCommandsFeaturesNVX* forUnmarshaling)
10275 {
10276 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10277 size_t pNext_size;
10278 pNext_size = vkStream->getBe32();
10279 if (pNext_size)
10280 {
10281 uint64_t pNext_placeholder;
10282 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10283 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10284 }
10285 vkStream->read((VkBool32*)&forUnmarshaling->computeBindingPointSupport, sizeof(VkBool32));
10286 }
10287
marshal_VkDeviceGeneratedCommandsLimitsNVX(VulkanStreamGuest * vkStream,const VkDeviceGeneratedCommandsLimitsNVX * forMarshaling)10288 void marshal_VkDeviceGeneratedCommandsLimitsNVX(
10289 VulkanStreamGuest* vkStream,
10290 const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling)
10291 {
10292 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10293 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10294 vkStream->putBe32(pNext_size);
10295 if (pNext_size)
10296 {
10297 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10298 marshal_extension_struct(vkStream, forMarshaling->pNext);
10299 }
10300 vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsLayoutTokenCount, sizeof(uint32_t));
10301 vkStream->write((uint32_t*)&forMarshaling->maxObjectEntryCounts, sizeof(uint32_t));
10302 vkStream->write((uint32_t*)&forMarshaling->minSequenceCountBufferOffsetAlignment, sizeof(uint32_t));
10303 vkStream->write((uint32_t*)&forMarshaling->minSequenceIndexBufferOffsetAlignment, sizeof(uint32_t));
10304 vkStream->write((uint32_t*)&forMarshaling->minCommandsTokenBufferOffsetAlignment, sizeof(uint32_t));
10305 }
10306
unmarshal_VkDeviceGeneratedCommandsLimitsNVX(VulkanStreamGuest * vkStream,VkDeviceGeneratedCommandsLimitsNVX * forUnmarshaling)10307 void unmarshal_VkDeviceGeneratedCommandsLimitsNVX(
10308 VulkanStreamGuest* vkStream,
10309 VkDeviceGeneratedCommandsLimitsNVX* forUnmarshaling)
10310 {
10311 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10312 size_t pNext_size;
10313 pNext_size = vkStream->getBe32();
10314 if (pNext_size)
10315 {
10316 uint64_t pNext_placeholder;
10317 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10318 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10319 }
10320 vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsLayoutTokenCount, sizeof(uint32_t));
10321 vkStream->read((uint32_t*)&forUnmarshaling->maxObjectEntryCounts, sizeof(uint32_t));
10322 vkStream->read((uint32_t*)&forUnmarshaling->minSequenceCountBufferOffsetAlignment, sizeof(uint32_t));
10323 vkStream->read((uint32_t*)&forUnmarshaling->minSequenceIndexBufferOffsetAlignment, sizeof(uint32_t));
10324 vkStream->read((uint32_t*)&forUnmarshaling->minCommandsTokenBufferOffsetAlignment, sizeof(uint32_t));
10325 }
10326
marshal_VkIndirectCommandsTokenNVX(VulkanStreamGuest * vkStream,const VkIndirectCommandsTokenNVX * forMarshaling)10327 void marshal_VkIndirectCommandsTokenNVX(
10328 VulkanStreamGuest* vkStream,
10329 const VkIndirectCommandsTokenNVX* forMarshaling)
10330 {
10331 vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10332 uint64_t cgen_var_290;
10333 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_290, 1);
10334 vkStream->write((uint64_t*)&cgen_var_290, 1 * 8);
10335 vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
10336 }
10337
unmarshal_VkIndirectCommandsTokenNVX(VulkanStreamGuest * vkStream,VkIndirectCommandsTokenNVX * forUnmarshaling)10338 void unmarshal_VkIndirectCommandsTokenNVX(
10339 VulkanStreamGuest* vkStream,
10340 VkIndirectCommandsTokenNVX* forUnmarshaling)
10341 {
10342 vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10343 uint64_t cgen_var_291;
10344 vkStream->read((uint64_t*)&cgen_var_291, 1 * 8);
10345 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_291, (VkBuffer*)&forUnmarshaling->buffer, 1);
10346 vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
10347 }
10348
marshal_VkIndirectCommandsLayoutTokenNVX(VulkanStreamGuest * vkStream,const VkIndirectCommandsLayoutTokenNVX * forMarshaling)10349 void marshal_VkIndirectCommandsLayoutTokenNVX(
10350 VulkanStreamGuest* vkStream,
10351 const VkIndirectCommandsLayoutTokenNVX* forMarshaling)
10352 {
10353 vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10354 vkStream->write((uint32_t*)&forMarshaling->bindingUnit, sizeof(uint32_t));
10355 vkStream->write((uint32_t*)&forMarshaling->dynamicCount, sizeof(uint32_t));
10356 vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
10357 }
10358
unmarshal_VkIndirectCommandsLayoutTokenNVX(VulkanStreamGuest * vkStream,VkIndirectCommandsLayoutTokenNVX * forUnmarshaling)10359 void unmarshal_VkIndirectCommandsLayoutTokenNVX(
10360 VulkanStreamGuest* vkStream,
10361 VkIndirectCommandsLayoutTokenNVX* forUnmarshaling)
10362 {
10363 vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
10364 vkStream->read((uint32_t*)&forUnmarshaling->bindingUnit, sizeof(uint32_t));
10365 vkStream->read((uint32_t*)&forUnmarshaling->dynamicCount, sizeof(uint32_t));
10366 vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
10367 }
10368
marshal_VkIndirectCommandsLayoutCreateInfoNVX(VulkanStreamGuest * vkStream,const VkIndirectCommandsLayoutCreateInfoNVX * forMarshaling)10369 void marshal_VkIndirectCommandsLayoutCreateInfoNVX(
10370 VulkanStreamGuest* vkStream,
10371 const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling)
10372 {
10373 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10374 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10375 vkStream->putBe32(pNext_size);
10376 if (pNext_size)
10377 {
10378 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10379 marshal_extension_struct(vkStream, forMarshaling->pNext);
10380 }
10381 vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
10382 vkStream->write((VkIndirectCommandsLayoutUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNVX));
10383 vkStream->write((uint32_t*)&forMarshaling->tokenCount, sizeof(uint32_t));
10384 for (uint32_t i = 0; i < (uint32_t)forMarshaling->tokenCount; ++i)
10385 {
10386 marshal_VkIndirectCommandsLayoutTokenNVX(vkStream, (const VkIndirectCommandsLayoutTokenNVX*)(forMarshaling->pTokens + i));
10387 }
10388 }
10389
unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(VulkanStreamGuest * vkStream,VkIndirectCommandsLayoutCreateInfoNVX * forUnmarshaling)10390 void unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
10391 VulkanStreamGuest* vkStream,
10392 VkIndirectCommandsLayoutCreateInfoNVX* forUnmarshaling)
10393 {
10394 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10395 size_t pNext_size;
10396 pNext_size = vkStream->getBe32();
10397 if (pNext_size)
10398 {
10399 uint64_t pNext_placeholder;
10400 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10401 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10402 }
10403 vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
10404 vkStream->read((VkIndirectCommandsLayoutUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNVX));
10405 vkStream->read((uint32_t*)&forUnmarshaling->tokenCount, sizeof(uint32_t));
10406 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->tokenCount; ++i)
10407 {
10408 unmarshal_VkIndirectCommandsLayoutTokenNVX(vkStream, (VkIndirectCommandsLayoutTokenNVX*)(forUnmarshaling->pTokens + i));
10409 }
10410 }
10411
marshal_VkCmdProcessCommandsInfoNVX(VulkanStreamGuest * vkStream,const VkCmdProcessCommandsInfoNVX * forMarshaling)10412 void marshal_VkCmdProcessCommandsInfoNVX(
10413 VulkanStreamGuest* vkStream,
10414 const VkCmdProcessCommandsInfoNVX* forMarshaling)
10415 {
10416 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10417 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10418 vkStream->putBe32(pNext_size);
10419 if (pNext_size)
10420 {
10421 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10422 marshal_extension_struct(vkStream, forMarshaling->pNext);
10423 }
10424 uint64_t cgen_var_292;
10425 vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_292, 1);
10426 vkStream->write((uint64_t*)&cgen_var_292, 1 * 8);
10427 uint64_t cgen_var_293;
10428 vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_293, 1);
10429 vkStream->write((uint64_t*)&cgen_var_293, 1 * 8);
10430 vkStream->write((uint32_t*)&forMarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
10431 for (uint32_t i = 0; i < (uint32_t)forMarshaling->indirectCommandsTokenCount; ++i)
10432 {
10433 marshal_VkIndirectCommandsTokenNVX(vkStream, (const VkIndirectCommandsTokenNVX*)(forMarshaling->pIndirectCommandsTokens + i));
10434 }
10435 vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
10436 uint64_t cgen_var_294;
10437 vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->targetCommandBuffer, &cgen_var_294, 1);
10438 vkStream->write((uint64_t*)&cgen_var_294, 1 * 8);
10439 uint64_t cgen_var_295;
10440 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesCountBuffer, &cgen_var_295, 1);
10441 vkStream->write((uint64_t*)&cgen_var_295, 1 * 8);
10442 vkStream->write((VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
10443 uint64_t cgen_var_296;
10444 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesIndexBuffer, &cgen_var_296, 1);
10445 vkStream->write((uint64_t*)&cgen_var_296, 1 * 8);
10446 vkStream->write((VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
10447 }
10448
unmarshal_VkCmdProcessCommandsInfoNVX(VulkanStreamGuest * vkStream,VkCmdProcessCommandsInfoNVX * forUnmarshaling)10449 void unmarshal_VkCmdProcessCommandsInfoNVX(
10450 VulkanStreamGuest* vkStream,
10451 VkCmdProcessCommandsInfoNVX* forUnmarshaling)
10452 {
10453 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10454 size_t pNext_size;
10455 pNext_size = vkStream->getBe32();
10456 if (pNext_size)
10457 {
10458 uint64_t pNext_placeholder;
10459 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10460 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10461 }
10462 uint64_t cgen_var_297;
10463 vkStream->read((uint64_t*)&cgen_var_297, 1 * 8);
10464 vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_297, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
10465 uint64_t cgen_var_298;
10466 vkStream->read((uint64_t*)&cgen_var_298, 1 * 8);
10467 vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_298, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
10468 vkStream->read((uint32_t*)&forUnmarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
10469 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->indirectCommandsTokenCount; ++i)
10470 {
10471 unmarshal_VkIndirectCommandsTokenNVX(vkStream, (VkIndirectCommandsTokenNVX*)(forUnmarshaling->pIndirectCommandsTokens + i));
10472 }
10473 vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
10474 uint64_t cgen_var_299;
10475 vkStream->read((uint64_t*)&cgen_var_299, 1 * 8);
10476 vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(&cgen_var_299, (VkCommandBuffer*)&forUnmarshaling->targetCommandBuffer, 1);
10477 uint64_t cgen_var_300;
10478 vkStream->read((uint64_t*)&cgen_var_300, 1 * 8);
10479 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_300, (VkBuffer*)&forUnmarshaling->sequencesCountBuffer, 1);
10480 vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
10481 uint64_t cgen_var_301;
10482 vkStream->read((uint64_t*)&cgen_var_301, 1 * 8);
10483 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_301, (VkBuffer*)&forUnmarshaling->sequencesIndexBuffer, 1);
10484 vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
10485 }
10486
marshal_VkCmdReserveSpaceForCommandsInfoNVX(VulkanStreamGuest * vkStream,const VkCmdReserveSpaceForCommandsInfoNVX * forMarshaling)10487 void marshal_VkCmdReserveSpaceForCommandsInfoNVX(
10488 VulkanStreamGuest* vkStream,
10489 const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling)
10490 {
10491 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10492 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10493 vkStream->putBe32(pNext_size);
10494 if (pNext_size)
10495 {
10496 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10497 marshal_extension_struct(vkStream, forMarshaling->pNext);
10498 }
10499 uint64_t cgen_var_302;
10500 vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_302, 1);
10501 vkStream->write((uint64_t*)&cgen_var_302, 1 * 8);
10502 uint64_t cgen_var_303;
10503 vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_303, 1);
10504 vkStream->write((uint64_t*)&cgen_var_303, 1 * 8);
10505 vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
10506 }
10507
unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(VulkanStreamGuest * vkStream,VkCmdReserveSpaceForCommandsInfoNVX * forUnmarshaling)10508 void unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
10509 VulkanStreamGuest* vkStream,
10510 VkCmdReserveSpaceForCommandsInfoNVX* forUnmarshaling)
10511 {
10512 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10513 size_t pNext_size;
10514 pNext_size = vkStream->getBe32();
10515 if (pNext_size)
10516 {
10517 uint64_t pNext_placeholder;
10518 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10519 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10520 }
10521 uint64_t cgen_var_304;
10522 vkStream->read((uint64_t*)&cgen_var_304, 1 * 8);
10523 vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_304, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
10524 uint64_t cgen_var_305;
10525 vkStream->read((uint64_t*)&cgen_var_305, 1 * 8);
10526 vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_305, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
10527 vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
10528 }
10529
marshal_VkObjectTableCreateInfoNVX(VulkanStreamGuest * vkStream,const VkObjectTableCreateInfoNVX * forMarshaling)10530 void marshal_VkObjectTableCreateInfoNVX(
10531 VulkanStreamGuest* vkStream,
10532 const VkObjectTableCreateInfoNVX* forMarshaling)
10533 {
10534 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10535 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10536 vkStream->putBe32(pNext_size);
10537 if (pNext_size)
10538 {
10539 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10540 marshal_extension_struct(vkStream, forMarshaling->pNext);
10541 }
10542 vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
10543 vkStream->write((const VkObjectEntryTypeNVX*)forMarshaling->pObjectEntryTypes, forMarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX));
10544 vkStream->write((const uint32_t*)forMarshaling->pObjectEntryCounts, forMarshaling->objectCount * sizeof(const uint32_t));
10545 vkStream->write((const VkObjectEntryUsageFlagsNVX*)forMarshaling->pObjectEntryUsageFlags, forMarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
10546 vkStream->write((uint32_t*)&forMarshaling->maxUniformBuffersPerDescriptor, sizeof(uint32_t));
10547 vkStream->write((uint32_t*)&forMarshaling->maxStorageBuffersPerDescriptor, sizeof(uint32_t));
10548 vkStream->write((uint32_t*)&forMarshaling->maxStorageImagesPerDescriptor, sizeof(uint32_t));
10549 vkStream->write((uint32_t*)&forMarshaling->maxSampledImagesPerDescriptor, sizeof(uint32_t));
10550 vkStream->write((uint32_t*)&forMarshaling->maxPipelineLayouts, sizeof(uint32_t));
10551 }
10552
unmarshal_VkObjectTableCreateInfoNVX(VulkanStreamGuest * vkStream,VkObjectTableCreateInfoNVX * forUnmarshaling)10553 void unmarshal_VkObjectTableCreateInfoNVX(
10554 VulkanStreamGuest* vkStream,
10555 VkObjectTableCreateInfoNVX* forUnmarshaling)
10556 {
10557 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10558 size_t pNext_size;
10559 pNext_size = vkStream->getBe32();
10560 if (pNext_size)
10561 {
10562 uint64_t pNext_placeholder;
10563 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10564 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10565 }
10566 vkStream->read((uint32_t*)&forUnmarshaling->objectCount, sizeof(uint32_t));
10567 vkStream->read((VkObjectEntryTypeNVX*)forUnmarshaling->pObjectEntryTypes, forUnmarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX));
10568 vkStream->read((uint32_t*)forUnmarshaling->pObjectEntryCounts, forUnmarshaling->objectCount * sizeof(const uint32_t));
10569 vkStream->read((VkObjectEntryUsageFlagsNVX*)forUnmarshaling->pObjectEntryUsageFlags, forUnmarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
10570 vkStream->read((uint32_t*)&forUnmarshaling->maxUniformBuffersPerDescriptor, sizeof(uint32_t));
10571 vkStream->read((uint32_t*)&forUnmarshaling->maxStorageBuffersPerDescriptor, sizeof(uint32_t));
10572 vkStream->read((uint32_t*)&forUnmarshaling->maxStorageImagesPerDescriptor, sizeof(uint32_t));
10573 vkStream->read((uint32_t*)&forUnmarshaling->maxSampledImagesPerDescriptor, sizeof(uint32_t));
10574 vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineLayouts, sizeof(uint32_t));
10575 }
10576
marshal_VkObjectTableEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableEntryNVX * forMarshaling)10577 void marshal_VkObjectTableEntryNVX(
10578 VulkanStreamGuest* vkStream,
10579 const VkObjectTableEntryNVX* forMarshaling)
10580 {
10581 vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10582 vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10583 }
10584
unmarshal_VkObjectTableEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableEntryNVX * forUnmarshaling)10585 void unmarshal_VkObjectTableEntryNVX(
10586 VulkanStreamGuest* vkStream,
10587 VkObjectTableEntryNVX* forUnmarshaling)
10588 {
10589 vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10590 vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10591 }
10592
marshal_VkObjectTablePipelineEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTablePipelineEntryNVX * forMarshaling)10593 void marshal_VkObjectTablePipelineEntryNVX(
10594 VulkanStreamGuest* vkStream,
10595 const VkObjectTablePipelineEntryNVX* forMarshaling)
10596 {
10597 vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10598 vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10599 uint64_t cgen_var_306;
10600 vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_306, 1);
10601 vkStream->write((uint64_t*)&cgen_var_306, 1 * 8);
10602 }
10603
unmarshal_VkObjectTablePipelineEntryNVX(VulkanStreamGuest * vkStream,VkObjectTablePipelineEntryNVX * forUnmarshaling)10604 void unmarshal_VkObjectTablePipelineEntryNVX(
10605 VulkanStreamGuest* vkStream,
10606 VkObjectTablePipelineEntryNVX* forUnmarshaling)
10607 {
10608 vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10609 vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10610 uint64_t cgen_var_307;
10611 vkStream->read((uint64_t*)&cgen_var_307, 1 * 8);
10612 vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_307, (VkPipeline*)&forUnmarshaling->pipeline, 1);
10613 }
10614
marshal_VkObjectTableDescriptorSetEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableDescriptorSetEntryNVX * forMarshaling)10615 void marshal_VkObjectTableDescriptorSetEntryNVX(
10616 VulkanStreamGuest* vkStream,
10617 const VkObjectTableDescriptorSetEntryNVX* forMarshaling)
10618 {
10619 vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10620 vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10621 uint64_t cgen_var_308;
10622 vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_308, 1);
10623 vkStream->write((uint64_t*)&cgen_var_308, 1 * 8);
10624 uint64_t cgen_var_309;
10625 vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->descriptorSet, &cgen_var_309, 1);
10626 vkStream->write((uint64_t*)&cgen_var_309, 1 * 8);
10627 }
10628
unmarshal_VkObjectTableDescriptorSetEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableDescriptorSetEntryNVX * forUnmarshaling)10629 void unmarshal_VkObjectTableDescriptorSetEntryNVX(
10630 VulkanStreamGuest* vkStream,
10631 VkObjectTableDescriptorSetEntryNVX* forUnmarshaling)
10632 {
10633 vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10634 vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10635 uint64_t cgen_var_310;
10636 vkStream->read((uint64_t*)&cgen_var_310, 1 * 8);
10637 vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_310, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
10638 uint64_t cgen_var_311;
10639 vkStream->read((uint64_t*)&cgen_var_311, 1 * 8);
10640 vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_311, (VkDescriptorSet*)&forUnmarshaling->descriptorSet, 1);
10641 }
10642
marshal_VkObjectTableVertexBufferEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableVertexBufferEntryNVX * forMarshaling)10643 void marshal_VkObjectTableVertexBufferEntryNVX(
10644 VulkanStreamGuest* vkStream,
10645 const VkObjectTableVertexBufferEntryNVX* forMarshaling)
10646 {
10647 vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10648 vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10649 uint64_t cgen_var_312;
10650 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_312, 1);
10651 vkStream->write((uint64_t*)&cgen_var_312, 1 * 8);
10652 }
10653
unmarshal_VkObjectTableVertexBufferEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableVertexBufferEntryNVX * forUnmarshaling)10654 void unmarshal_VkObjectTableVertexBufferEntryNVX(
10655 VulkanStreamGuest* vkStream,
10656 VkObjectTableVertexBufferEntryNVX* forUnmarshaling)
10657 {
10658 vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10659 vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10660 uint64_t cgen_var_313;
10661 vkStream->read((uint64_t*)&cgen_var_313, 1 * 8);
10662 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_313, (VkBuffer*)&forUnmarshaling->buffer, 1);
10663 }
10664
marshal_VkObjectTableIndexBufferEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTableIndexBufferEntryNVX * forMarshaling)10665 void marshal_VkObjectTableIndexBufferEntryNVX(
10666 VulkanStreamGuest* vkStream,
10667 const VkObjectTableIndexBufferEntryNVX* forMarshaling)
10668 {
10669 vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10670 vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10671 uint64_t cgen_var_314;
10672 vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_314, 1);
10673 vkStream->write((uint64_t*)&cgen_var_314, 1 * 8);
10674 vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
10675 }
10676
unmarshal_VkObjectTableIndexBufferEntryNVX(VulkanStreamGuest * vkStream,VkObjectTableIndexBufferEntryNVX * forUnmarshaling)10677 void unmarshal_VkObjectTableIndexBufferEntryNVX(
10678 VulkanStreamGuest* vkStream,
10679 VkObjectTableIndexBufferEntryNVX* forUnmarshaling)
10680 {
10681 vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10682 vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10683 uint64_t cgen_var_315;
10684 vkStream->read((uint64_t*)&cgen_var_315, 1 * 8);
10685 vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_315, (VkBuffer*)&forUnmarshaling->buffer, 1);
10686 vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
10687 }
10688
marshal_VkObjectTablePushConstantEntryNVX(VulkanStreamGuest * vkStream,const VkObjectTablePushConstantEntryNVX * forMarshaling)10689 void marshal_VkObjectTablePushConstantEntryNVX(
10690 VulkanStreamGuest* vkStream,
10691 const VkObjectTablePushConstantEntryNVX* forMarshaling)
10692 {
10693 vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
10694 vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10695 uint64_t cgen_var_316;
10696 vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_316, 1);
10697 vkStream->write((uint64_t*)&cgen_var_316, 1 * 8);
10698 vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
10699 }
10700
unmarshal_VkObjectTablePushConstantEntryNVX(VulkanStreamGuest * vkStream,VkObjectTablePushConstantEntryNVX * forUnmarshaling)10701 void unmarshal_VkObjectTablePushConstantEntryNVX(
10702 VulkanStreamGuest* vkStream,
10703 VkObjectTablePushConstantEntryNVX* forUnmarshaling)
10704 {
10705 vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
10706 vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
10707 uint64_t cgen_var_317;
10708 vkStream->read((uint64_t*)&cgen_var_317, 1 * 8);
10709 vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_317, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
10710 vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
10711 }
10712
10713 #endif
10714 #ifdef VK_NV_clip_space_w_scaling
marshal_VkViewportWScalingNV(VulkanStreamGuest * vkStream,const VkViewportWScalingNV * forMarshaling)10715 void marshal_VkViewportWScalingNV(
10716 VulkanStreamGuest* vkStream,
10717 const VkViewportWScalingNV* forMarshaling)
10718 {
10719 vkStream->write((float*)&forMarshaling->xcoeff, sizeof(float));
10720 vkStream->write((float*)&forMarshaling->ycoeff, sizeof(float));
10721 }
10722
unmarshal_VkViewportWScalingNV(VulkanStreamGuest * vkStream,VkViewportWScalingNV * forUnmarshaling)10723 void unmarshal_VkViewportWScalingNV(
10724 VulkanStreamGuest* vkStream,
10725 VkViewportWScalingNV* forUnmarshaling)
10726 {
10727 vkStream->read((float*)&forUnmarshaling->xcoeff, sizeof(float));
10728 vkStream->read((float*)&forUnmarshaling->ycoeff, sizeof(float));
10729 }
10730
marshal_VkPipelineViewportWScalingStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineViewportWScalingStateCreateInfoNV * forMarshaling)10731 void marshal_VkPipelineViewportWScalingStateCreateInfoNV(
10732 VulkanStreamGuest* vkStream,
10733 const VkPipelineViewportWScalingStateCreateInfoNV* forMarshaling)
10734 {
10735 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10736 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10737 vkStream->putBe32(pNext_size);
10738 if (pNext_size)
10739 {
10740 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10741 marshal_extension_struct(vkStream, forMarshaling->pNext);
10742 }
10743 vkStream->write((VkBool32*)&forMarshaling->viewportWScalingEnable, sizeof(VkBool32));
10744 vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
10745 // WARNING PTR CHECK
10746 uint64_t cgen_var_318 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
10747 vkStream->putBe64(cgen_var_318);
10748 if (forMarshaling->pViewportWScalings)
10749 {
10750 for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
10751 {
10752 marshal_VkViewportWScalingNV(vkStream, (const VkViewportWScalingNV*)(forMarshaling->pViewportWScalings + i));
10753 }
10754 }
10755 }
10756
unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineViewportWScalingStateCreateInfoNV * forUnmarshaling)10757 void unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(
10758 VulkanStreamGuest* vkStream,
10759 VkPipelineViewportWScalingStateCreateInfoNV* forUnmarshaling)
10760 {
10761 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10762 size_t pNext_size;
10763 pNext_size = vkStream->getBe32();
10764 if (pNext_size)
10765 {
10766 uint64_t pNext_placeholder;
10767 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10768 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10769 }
10770 vkStream->read((VkBool32*)&forUnmarshaling->viewportWScalingEnable, sizeof(VkBool32));
10771 vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
10772 // WARNING PTR CHECK
10773 const VkViewportWScalingNV* check_pViewportWScalings;
10774 check_pViewportWScalings = (const VkViewportWScalingNV*)(uintptr_t)vkStream->getBe64();
10775 if (forUnmarshaling->pViewportWScalings)
10776 {
10777 if (!(check_pViewportWScalings))
10778 {
10779 fprintf(stderr, "fatal: forUnmarshaling->pViewportWScalings inconsistent between guest and host\n");
10780 }
10781 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
10782 {
10783 unmarshal_VkViewportWScalingNV(vkStream, (VkViewportWScalingNV*)(forUnmarshaling->pViewportWScalings + i));
10784 }
10785 }
10786 }
10787
10788 #endif
10789 #ifdef VK_EXT_direct_mode_display
10790 #endif
10791 #ifdef VK_EXT_acquire_xlib_display
10792 #endif
10793 #ifdef VK_EXT_display_surface_counter
marshal_VkSurfaceCapabilities2EXT(VulkanStreamGuest * vkStream,const VkSurfaceCapabilities2EXT * forMarshaling)10794 void marshal_VkSurfaceCapabilities2EXT(
10795 VulkanStreamGuest* vkStream,
10796 const VkSurfaceCapabilities2EXT* forMarshaling)
10797 {
10798 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10799 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10800 vkStream->putBe32(pNext_size);
10801 if (pNext_size)
10802 {
10803 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
10804 marshal_extension_struct(vkStream, forMarshaling->pNext);
10805 }
10806 vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
10807 vkStream->write((uint32_t*)&forMarshaling->maxImageCount, sizeof(uint32_t));
10808 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->currentExtent));
10809 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minImageExtent));
10810 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxImageExtent));
10811 vkStream->write((uint32_t*)&forMarshaling->maxImageArrayLayers, sizeof(uint32_t));
10812 vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
10813 vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
10814 vkStream->write((VkCompositeAlphaFlagsKHR*)&forMarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
10815 vkStream->write((VkImageUsageFlags*)&forMarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
10816 vkStream->write((VkSurfaceCounterFlagsEXT*)&forMarshaling->supportedSurfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
10817 }
10818
unmarshal_VkSurfaceCapabilities2EXT(VulkanStreamGuest * vkStream,VkSurfaceCapabilities2EXT * forUnmarshaling)10819 void unmarshal_VkSurfaceCapabilities2EXT(
10820 VulkanStreamGuest* vkStream,
10821 VkSurfaceCapabilities2EXT* forUnmarshaling)
10822 {
10823 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10824 size_t pNext_size;
10825 pNext_size = vkStream->getBe32();
10826 if (pNext_size)
10827 {
10828 uint64_t pNext_placeholder;
10829 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10830 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10831 }
10832 vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
10833 vkStream->read((uint32_t*)&forUnmarshaling->maxImageCount, sizeof(uint32_t));
10834 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->currentExtent));
10835 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minImageExtent));
10836 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxImageExtent));
10837 vkStream->read((uint32_t*)&forUnmarshaling->maxImageArrayLayers, sizeof(uint32_t));
10838 vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
10839 vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->currentTransform, sizeof(VkSurfaceTransformFlagBitsKHR));
10840 vkStream->read((VkCompositeAlphaFlagsKHR*)&forUnmarshaling->supportedCompositeAlpha, sizeof(VkCompositeAlphaFlagsKHR));
10841 vkStream->read((VkImageUsageFlags*)&forUnmarshaling->supportedUsageFlags, sizeof(VkImageUsageFlags));
10842 vkStream->read((VkSurfaceCounterFlagsEXT*)&forUnmarshaling->supportedSurfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
10843 }
10844
10845 #endif
10846 #ifdef VK_EXT_display_control
marshal_VkDisplayPowerInfoEXT(VulkanStreamGuest * vkStream,const VkDisplayPowerInfoEXT * forMarshaling)10847 void marshal_VkDisplayPowerInfoEXT(
10848 VulkanStreamGuest* vkStream,
10849 const VkDisplayPowerInfoEXT* forMarshaling)
10850 {
10851 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10852 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10853 vkStream->putBe32(pNext_size);
10854 if (pNext_size)
10855 {
10856 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10857 marshal_extension_struct(vkStream, forMarshaling->pNext);
10858 }
10859 vkStream->write((VkDisplayPowerStateEXT*)&forMarshaling->powerState, sizeof(VkDisplayPowerStateEXT));
10860 }
10861
unmarshal_VkDisplayPowerInfoEXT(VulkanStreamGuest * vkStream,VkDisplayPowerInfoEXT * forUnmarshaling)10862 void unmarshal_VkDisplayPowerInfoEXT(
10863 VulkanStreamGuest* vkStream,
10864 VkDisplayPowerInfoEXT* forUnmarshaling)
10865 {
10866 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10867 size_t pNext_size;
10868 pNext_size = vkStream->getBe32();
10869 if (pNext_size)
10870 {
10871 uint64_t pNext_placeholder;
10872 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10873 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10874 }
10875 vkStream->read((VkDisplayPowerStateEXT*)&forUnmarshaling->powerState, sizeof(VkDisplayPowerStateEXT));
10876 }
10877
marshal_VkDeviceEventInfoEXT(VulkanStreamGuest * vkStream,const VkDeviceEventInfoEXT * forMarshaling)10878 void marshal_VkDeviceEventInfoEXT(
10879 VulkanStreamGuest* vkStream,
10880 const VkDeviceEventInfoEXT* forMarshaling)
10881 {
10882 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10883 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10884 vkStream->putBe32(pNext_size);
10885 if (pNext_size)
10886 {
10887 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10888 marshal_extension_struct(vkStream, forMarshaling->pNext);
10889 }
10890 vkStream->write((VkDeviceEventTypeEXT*)&forMarshaling->deviceEvent, sizeof(VkDeviceEventTypeEXT));
10891 }
10892
unmarshal_VkDeviceEventInfoEXT(VulkanStreamGuest * vkStream,VkDeviceEventInfoEXT * forUnmarshaling)10893 void unmarshal_VkDeviceEventInfoEXT(
10894 VulkanStreamGuest* vkStream,
10895 VkDeviceEventInfoEXT* forUnmarshaling)
10896 {
10897 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10898 size_t pNext_size;
10899 pNext_size = vkStream->getBe32();
10900 if (pNext_size)
10901 {
10902 uint64_t pNext_placeholder;
10903 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10904 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10905 }
10906 vkStream->read((VkDeviceEventTypeEXT*)&forUnmarshaling->deviceEvent, sizeof(VkDeviceEventTypeEXT));
10907 }
10908
marshal_VkDisplayEventInfoEXT(VulkanStreamGuest * vkStream,const VkDisplayEventInfoEXT * forMarshaling)10909 void marshal_VkDisplayEventInfoEXT(
10910 VulkanStreamGuest* vkStream,
10911 const VkDisplayEventInfoEXT* forMarshaling)
10912 {
10913 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10914 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10915 vkStream->putBe32(pNext_size);
10916 if (pNext_size)
10917 {
10918 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10919 marshal_extension_struct(vkStream, forMarshaling->pNext);
10920 }
10921 vkStream->write((VkDisplayEventTypeEXT*)&forMarshaling->displayEvent, sizeof(VkDisplayEventTypeEXT));
10922 }
10923
unmarshal_VkDisplayEventInfoEXT(VulkanStreamGuest * vkStream,VkDisplayEventInfoEXT * forUnmarshaling)10924 void unmarshal_VkDisplayEventInfoEXT(
10925 VulkanStreamGuest* vkStream,
10926 VkDisplayEventInfoEXT* forUnmarshaling)
10927 {
10928 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10929 size_t pNext_size;
10930 pNext_size = vkStream->getBe32();
10931 if (pNext_size)
10932 {
10933 uint64_t pNext_placeholder;
10934 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10935 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10936 }
10937 vkStream->read((VkDisplayEventTypeEXT*)&forUnmarshaling->displayEvent, sizeof(VkDisplayEventTypeEXT));
10938 }
10939
marshal_VkSwapchainCounterCreateInfoEXT(VulkanStreamGuest * vkStream,const VkSwapchainCounterCreateInfoEXT * forMarshaling)10940 void marshal_VkSwapchainCounterCreateInfoEXT(
10941 VulkanStreamGuest* vkStream,
10942 const VkSwapchainCounterCreateInfoEXT* forMarshaling)
10943 {
10944 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
10945 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
10946 vkStream->putBe32(pNext_size);
10947 if (pNext_size)
10948 {
10949 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
10950 marshal_extension_struct(vkStream, forMarshaling->pNext);
10951 }
10952 vkStream->write((VkSurfaceCounterFlagsEXT*)&forMarshaling->surfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
10953 }
10954
unmarshal_VkSwapchainCounterCreateInfoEXT(VulkanStreamGuest * vkStream,VkSwapchainCounterCreateInfoEXT * forUnmarshaling)10955 void unmarshal_VkSwapchainCounterCreateInfoEXT(
10956 VulkanStreamGuest* vkStream,
10957 VkSwapchainCounterCreateInfoEXT* forUnmarshaling)
10958 {
10959 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
10960 size_t pNext_size;
10961 pNext_size = vkStream->getBe32();
10962 if (pNext_size)
10963 {
10964 uint64_t pNext_placeholder;
10965 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
10966 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
10967 }
10968 vkStream->read((VkSurfaceCounterFlagsEXT*)&forUnmarshaling->surfaceCounters, sizeof(VkSurfaceCounterFlagsEXT));
10969 }
10970
10971 #endif
10972 #ifdef VK_GOOGLE_display_timing
marshal_VkRefreshCycleDurationGOOGLE(VulkanStreamGuest * vkStream,const VkRefreshCycleDurationGOOGLE * forMarshaling)10973 void marshal_VkRefreshCycleDurationGOOGLE(
10974 VulkanStreamGuest* vkStream,
10975 const VkRefreshCycleDurationGOOGLE* forMarshaling)
10976 {
10977 vkStream->write((uint64_t*)&forMarshaling->refreshDuration, sizeof(uint64_t));
10978 }
10979
unmarshal_VkRefreshCycleDurationGOOGLE(VulkanStreamGuest * vkStream,VkRefreshCycleDurationGOOGLE * forUnmarshaling)10980 void unmarshal_VkRefreshCycleDurationGOOGLE(
10981 VulkanStreamGuest* vkStream,
10982 VkRefreshCycleDurationGOOGLE* forUnmarshaling)
10983 {
10984 vkStream->read((uint64_t*)&forUnmarshaling->refreshDuration, sizeof(uint64_t));
10985 }
10986
marshal_VkPastPresentationTimingGOOGLE(VulkanStreamGuest * vkStream,const VkPastPresentationTimingGOOGLE * forMarshaling)10987 void marshal_VkPastPresentationTimingGOOGLE(
10988 VulkanStreamGuest* vkStream,
10989 const VkPastPresentationTimingGOOGLE* forMarshaling)
10990 {
10991 vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
10992 vkStream->write((uint64_t*)&forMarshaling->desiredPresentTime, sizeof(uint64_t));
10993 vkStream->write((uint64_t*)&forMarshaling->actualPresentTime, sizeof(uint64_t));
10994 vkStream->write((uint64_t*)&forMarshaling->earliestPresentTime, sizeof(uint64_t));
10995 vkStream->write((uint64_t*)&forMarshaling->presentMargin, sizeof(uint64_t));
10996 }
10997
unmarshal_VkPastPresentationTimingGOOGLE(VulkanStreamGuest * vkStream,VkPastPresentationTimingGOOGLE * forUnmarshaling)10998 void unmarshal_VkPastPresentationTimingGOOGLE(
10999 VulkanStreamGuest* vkStream,
11000 VkPastPresentationTimingGOOGLE* forUnmarshaling)
11001 {
11002 vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
11003 vkStream->read((uint64_t*)&forUnmarshaling->desiredPresentTime, sizeof(uint64_t));
11004 vkStream->read((uint64_t*)&forUnmarshaling->actualPresentTime, sizeof(uint64_t));
11005 vkStream->read((uint64_t*)&forUnmarshaling->earliestPresentTime, sizeof(uint64_t));
11006 vkStream->read((uint64_t*)&forUnmarshaling->presentMargin, sizeof(uint64_t));
11007 }
11008
marshal_VkPresentTimeGOOGLE(VulkanStreamGuest * vkStream,const VkPresentTimeGOOGLE * forMarshaling)11009 void marshal_VkPresentTimeGOOGLE(
11010 VulkanStreamGuest* vkStream,
11011 const VkPresentTimeGOOGLE* forMarshaling)
11012 {
11013 vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
11014 vkStream->write((uint64_t*)&forMarshaling->desiredPresentTime, sizeof(uint64_t));
11015 }
11016
unmarshal_VkPresentTimeGOOGLE(VulkanStreamGuest * vkStream,VkPresentTimeGOOGLE * forUnmarshaling)11017 void unmarshal_VkPresentTimeGOOGLE(
11018 VulkanStreamGuest* vkStream,
11019 VkPresentTimeGOOGLE* forUnmarshaling)
11020 {
11021 vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
11022 vkStream->read((uint64_t*)&forUnmarshaling->desiredPresentTime, sizeof(uint64_t));
11023 }
11024
marshal_VkPresentTimesInfoGOOGLE(VulkanStreamGuest * vkStream,const VkPresentTimesInfoGOOGLE * forMarshaling)11025 void marshal_VkPresentTimesInfoGOOGLE(
11026 VulkanStreamGuest* vkStream,
11027 const VkPresentTimesInfoGOOGLE* forMarshaling)
11028 {
11029 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11030 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11031 vkStream->putBe32(pNext_size);
11032 if (pNext_size)
11033 {
11034 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11035 marshal_extension_struct(vkStream, forMarshaling->pNext);
11036 }
11037 vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
11038 // WARNING PTR CHECK
11039 uint64_t cgen_var_320 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
11040 vkStream->putBe64(cgen_var_320);
11041 if (forMarshaling->pTimes)
11042 {
11043 for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
11044 {
11045 marshal_VkPresentTimeGOOGLE(vkStream, (const VkPresentTimeGOOGLE*)(forMarshaling->pTimes + i));
11046 }
11047 }
11048 }
11049
unmarshal_VkPresentTimesInfoGOOGLE(VulkanStreamGuest * vkStream,VkPresentTimesInfoGOOGLE * forUnmarshaling)11050 void unmarshal_VkPresentTimesInfoGOOGLE(
11051 VulkanStreamGuest* vkStream,
11052 VkPresentTimesInfoGOOGLE* forUnmarshaling)
11053 {
11054 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11055 size_t pNext_size;
11056 pNext_size = vkStream->getBe32();
11057 if (pNext_size)
11058 {
11059 uint64_t pNext_placeholder;
11060 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11061 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11062 }
11063 vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
11064 // WARNING PTR CHECK
11065 const VkPresentTimeGOOGLE* check_pTimes;
11066 check_pTimes = (const VkPresentTimeGOOGLE*)(uintptr_t)vkStream->getBe64();
11067 if (forUnmarshaling->pTimes)
11068 {
11069 if (!(check_pTimes))
11070 {
11071 fprintf(stderr, "fatal: forUnmarshaling->pTimes inconsistent between guest and host\n");
11072 }
11073 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
11074 {
11075 unmarshal_VkPresentTimeGOOGLE(vkStream, (VkPresentTimeGOOGLE*)(forUnmarshaling->pTimes + i));
11076 }
11077 }
11078 }
11079
11080 #endif
11081 #ifdef VK_NV_sample_mask_override_coverage
11082 #endif
11083 #ifdef VK_NV_geometry_shader_passthrough
11084 #endif
11085 #ifdef VK_NV_viewport_array2
11086 #endif
11087 #ifdef VK_NVX_multiview_per_view_attributes
marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VulkanStreamGuest * vkStream,const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * forMarshaling)11088 void marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
11089 VulkanStreamGuest* vkStream,
11090 const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forMarshaling)
11091 {
11092 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11093 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11094 vkStream->putBe32(pNext_size);
11095 if (pNext_size)
11096 {
11097 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11098 marshal_extension_struct(vkStream, forMarshaling->pNext);
11099 }
11100 vkStream->write((VkBool32*)&forMarshaling->perViewPositionAllComponents, sizeof(VkBool32));
11101 }
11102
unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VulkanStreamGuest * vkStream,VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX * forUnmarshaling)11103 void unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
11104 VulkanStreamGuest* vkStream,
11105 VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forUnmarshaling)
11106 {
11107 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11108 size_t pNext_size;
11109 pNext_size = vkStream->getBe32();
11110 if (pNext_size)
11111 {
11112 uint64_t pNext_placeholder;
11113 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11114 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11115 }
11116 vkStream->read((VkBool32*)&forUnmarshaling->perViewPositionAllComponents, sizeof(VkBool32));
11117 }
11118
11119 #endif
11120 #ifdef VK_NV_viewport_swizzle
marshal_VkViewportSwizzleNV(VulkanStreamGuest * vkStream,const VkViewportSwizzleNV * forMarshaling)11121 void marshal_VkViewportSwizzleNV(
11122 VulkanStreamGuest* vkStream,
11123 const VkViewportSwizzleNV* forMarshaling)
11124 {
11125 vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->x, sizeof(VkViewportCoordinateSwizzleNV));
11126 vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->y, sizeof(VkViewportCoordinateSwizzleNV));
11127 vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->z, sizeof(VkViewportCoordinateSwizzleNV));
11128 vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->w, sizeof(VkViewportCoordinateSwizzleNV));
11129 }
11130
unmarshal_VkViewportSwizzleNV(VulkanStreamGuest * vkStream,VkViewportSwizzleNV * forUnmarshaling)11131 void unmarshal_VkViewportSwizzleNV(
11132 VulkanStreamGuest* vkStream,
11133 VkViewportSwizzleNV* forUnmarshaling)
11134 {
11135 vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->x, sizeof(VkViewportCoordinateSwizzleNV));
11136 vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->y, sizeof(VkViewportCoordinateSwizzleNV));
11137 vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->z, sizeof(VkViewportCoordinateSwizzleNV));
11138 vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->w, sizeof(VkViewportCoordinateSwizzleNV));
11139 }
11140
marshal_VkPipelineViewportSwizzleStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineViewportSwizzleStateCreateInfoNV * forMarshaling)11141 void marshal_VkPipelineViewportSwizzleStateCreateInfoNV(
11142 VulkanStreamGuest* vkStream,
11143 const VkPipelineViewportSwizzleStateCreateInfoNV* forMarshaling)
11144 {
11145 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11146 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11147 vkStream->putBe32(pNext_size);
11148 if (pNext_size)
11149 {
11150 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11151 marshal_extension_struct(vkStream, forMarshaling->pNext);
11152 }
11153 vkStream->write((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
11154 vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
11155 // WARNING PTR CHECK
11156 uint64_t cgen_var_322 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
11157 vkStream->putBe64(cgen_var_322);
11158 if (forMarshaling->pViewportSwizzles)
11159 {
11160 for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
11161 {
11162 marshal_VkViewportSwizzleNV(vkStream, (const VkViewportSwizzleNV*)(forMarshaling->pViewportSwizzles + i));
11163 }
11164 }
11165 }
11166
unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineViewportSwizzleStateCreateInfoNV * forUnmarshaling)11167 void unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(
11168 VulkanStreamGuest* vkStream,
11169 VkPipelineViewportSwizzleStateCreateInfoNV* forUnmarshaling)
11170 {
11171 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11172 size_t pNext_size;
11173 pNext_size = vkStream->getBe32();
11174 if (pNext_size)
11175 {
11176 uint64_t pNext_placeholder;
11177 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11178 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11179 }
11180 vkStream->read((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forUnmarshaling->flags, sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
11181 vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
11182 // WARNING PTR CHECK
11183 const VkViewportSwizzleNV* check_pViewportSwizzles;
11184 check_pViewportSwizzles = (const VkViewportSwizzleNV*)(uintptr_t)vkStream->getBe64();
11185 if (forUnmarshaling->pViewportSwizzles)
11186 {
11187 if (!(check_pViewportSwizzles))
11188 {
11189 fprintf(stderr, "fatal: forUnmarshaling->pViewportSwizzles inconsistent between guest and host\n");
11190 }
11191 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
11192 {
11193 unmarshal_VkViewportSwizzleNV(vkStream, (VkViewportSwizzleNV*)(forUnmarshaling->pViewportSwizzles + i));
11194 }
11195 }
11196 }
11197
11198 #endif
11199 #ifdef VK_EXT_discard_rectangles
marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceDiscardRectanglePropertiesEXT * forMarshaling)11200 void marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
11201 VulkanStreamGuest* vkStream,
11202 const VkPhysicalDeviceDiscardRectanglePropertiesEXT* forMarshaling)
11203 {
11204 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11205 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11206 vkStream->putBe32(pNext_size);
11207 if (pNext_size)
11208 {
11209 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11210 marshal_extension_struct(vkStream, forMarshaling->pNext);
11211 }
11212 vkStream->write((uint32_t*)&forMarshaling->maxDiscardRectangles, sizeof(uint32_t));
11213 }
11214
unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceDiscardRectanglePropertiesEXT * forUnmarshaling)11215 void unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
11216 VulkanStreamGuest* vkStream,
11217 VkPhysicalDeviceDiscardRectanglePropertiesEXT* forUnmarshaling)
11218 {
11219 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11220 size_t pNext_size;
11221 pNext_size = vkStream->getBe32();
11222 if (pNext_size)
11223 {
11224 uint64_t pNext_placeholder;
11225 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11226 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11227 }
11228 vkStream->read((uint32_t*)&forUnmarshaling->maxDiscardRectangles, sizeof(uint32_t));
11229 }
11230
marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineDiscardRectangleStateCreateInfoEXT * forMarshaling)11231 void marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
11232 VulkanStreamGuest* vkStream,
11233 const VkPipelineDiscardRectangleStateCreateInfoEXT* forMarshaling)
11234 {
11235 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11236 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11237 vkStream->putBe32(pNext_size);
11238 if (pNext_size)
11239 {
11240 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11241 marshal_extension_struct(vkStream, forMarshaling->pNext);
11242 }
11243 vkStream->write((VkPipelineDiscardRectangleStateCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineDiscardRectangleStateCreateFlagsEXT));
11244 vkStream->write((VkDiscardRectangleModeEXT*)&forMarshaling->discardRectangleMode, sizeof(VkDiscardRectangleModeEXT));
11245 vkStream->write((uint32_t*)&forMarshaling->discardRectangleCount, sizeof(uint32_t));
11246 // WARNING PTR CHECK
11247 uint64_t cgen_var_324 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
11248 vkStream->putBe64(cgen_var_324);
11249 if (forMarshaling->pDiscardRectangles)
11250 {
11251 for (uint32_t i = 0; i < (uint32_t)forMarshaling->discardRectangleCount; ++i)
11252 {
11253 marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDiscardRectangles + i));
11254 }
11255 }
11256 }
11257
unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineDiscardRectangleStateCreateInfoEXT * forUnmarshaling)11258 void unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
11259 VulkanStreamGuest* vkStream,
11260 VkPipelineDiscardRectangleStateCreateInfoEXT* forUnmarshaling)
11261 {
11262 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11263 size_t pNext_size;
11264 pNext_size = vkStream->getBe32();
11265 if (pNext_size)
11266 {
11267 uint64_t pNext_placeholder;
11268 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11269 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11270 }
11271 vkStream->read((VkPipelineDiscardRectangleStateCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPipelineDiscardRectangleStateCreateFlagsEXT));
11272 vkStream->read((VkDiscardRectangleModeEXT*)&forUnmarshaling->discardRectangleMode, sizeof(VkDiscardRectangleModeEXT));
11273 vkStream->read((uint32_t*)&forUnmarshaling->discardRectangleCount, sizeof(uint32_t));
11274 // WARNING PTR CHECK
11275 const VkRect2D* check_pDiscardRectangles;
11276 check_pDiscardRectangles = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
11277 if (forUnmarshaling->pDiscardRectangles)
11278 {
11279 if (!(check_pDiscardRectangles))
11280 {
11281 fprintf(stderr, "fatal: forUnmarshaling->pDiscardRectangles inconsistent between guest and host\n");
11282 }
11283 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->discardRectangleCount; ++i)
11284 {
11285 unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDiscardRectangles + i));
11286 }
11287 }
11288 }
11289
11290 #endif
11291 #ifdef VK_EXT_conservative_rasterization
marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceConservativeRasterizationPropertiesEXT * forMarshaling)11292 void marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
11293 VulkanStreamGuest* vkStream,
11294 const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forMarshaling)
11295 {
11296 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11297 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11298 vkStream->putBe32(pNext_size);
11299 if (pNext_size)
11300 {
11301 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11302 marshal_extension_struct(vkStream, forMarshaling->pNext);
11303 }
11304 vkStream->write((float*)&forMarshaling->primitiveOverestimationSize, sizeof(float));
11305 vkStream->write((float*)&forMarshaling->maxExtraPrimitiveOverestimationSize, sizeof(float));
11306 vkStream->write((float*)&forMarshaling->extraPrimitiveOverestimationSizeGranularity, sizeof(float));
11307 vkStream->write((VkBool32*)&forMarshaling->primitiveUnderestimation, sizeof(VkBool32));
11308 vkStream->write((VkBool32*)&forMarshaling->conservativePointAndLineRasterization, sizeof(VkBool32));
11309 vkStream->write((VkBool32*)&forMarshaling->degenerateTrianglesRasterized, sizeof(VkBool32));
11310 vkStream->write((VkBool32*)&forMarshaling->degenerateLinesRasterized, sizeof(VkBool32));
11311 vkStream->write((VkBool32*)&forMarshaling->fullyCoveredFragmentShaderInputVariable, sizeof(VkBool32));
11312 vkStream->write((VkBool32*)&forMarshaling->conservativeRasterizationPostDepthCoverage, sizeof(VkBool32));
11313 }
11314
unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceConservativeRasterizationPropertiesEXT * forUnmarshaling)11315 void unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
11316 VulkanStreamGuest* vkStream,
11317 VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forUnmarshaling)
11318 {
11319 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11320 size_t pNext_size;
11321 pNext_size = vkStream->getBe32();
11322 if (pNext_size)
11323 {
11324 uint64_t pNext_placeholder;
11325 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11326 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11327 }
11328 vkStream->read((float*)&forUnmarshaling->primitiveOverestimationSize, sizeof(float));
11329 vkStream->read((float*)&forUnmarshaling->maxExtraPrimitiveOverestimationSize, sizeof(float));
11330 vkStream->read((float*)&forUnmarshaling->extraPrimitiveOverestimationSizeGranularity, sizeof(float));
11331 vkStream->read((VkBool32*)&forUnmarshaling->primitiveUnderestimation, sizeof(VkBool32));
11332 vkStream->read((VkBool32*)&forUnmarshaling->conservativePointAndLineRasterization, sizeof(VkBool32));
11333 vkStream->read((VkBool32*)&forUnmarshaling->degenerateTrianglesRasterized, sizeof(VkBool32));
11334 vkStream->read((VkBool32*)&forUnmarshaling->degenerateLinesRasterized, sizeof(VkBool32));
11335 vkStream->read((VkBool32*)&forUnmarshaling->fullyCoveredFragmentShaderInputVariable, sizeof(VkBool32));
11336 vkStream->read((VkBool32*)&forUnmarshaling->conservativeRasterizationPostDepthCoverage, sizeof(VkBool32));
11337 }
11338
marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineRasterizationConservativeStateCreateInfoEXT * forMarshaling)11339 void marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
11340 VulkanStreamGuest* vkStream,
11341 const VkPipelineRasterizationConservativeStateCreateInfoEXT* forMarshaling)
11342 {
11343 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11344 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11345 vkStream->putBe32(pNext_size);
11346 if (pNext_size)
11347 {
11348 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11349 marshal_extension_struct(vkStream, forMarshaling->pNext);
11350 }
11351 vkStream->write((VkPipelineRasterizationConservativeStateCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineRasterizationConservativeStateCreateFlagsEXT));
11352 vkStream->write((VkConservativeRasterizationModeEXT*)&forMarshaling->conservativeRasterizationMode, sizeof(VkConservativeRasterizationModeEXT));
11353 vkStream->write((float*)&forMarshaling->extraPrimitiveOverestimationSize, sizeof(float));
11354 }
11355
unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineRasterizationConservativeStateCreateInfoEXT * forUnmarshaling)11356 void unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
11357 VulkanStreamGuest* vkStream,
11358 VkPipelineRasterizationConservativeStateCreateInfoEXT* forUnmarshaling)
11359 {
11360 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11361 size_t pNext_size;
11362 pNext_size = vkStream->getBe32();
11363 if (pNext_size)
11364 {
11365 uint64_t pNext_placeholder;
11366 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11367 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11368 }
11369 vkStream->read((VkPipelineRasterizationConservativeStateCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPipelineRasterizationConservativeStateCreateFlagsEXT));
11370 vkStream->read((VkConservativeRasterizationModeEXT*)&forUnmarshaling->conservativeRasterizationMode, sizeof(VkConservativeRasterizationModeEXT));
11371 vkStream->read((float*)&forUnmarshaling->extraPrimitiveOverestimationSize, sizeof(float));
11372 }
11373
11374 #endif
11375 #ifdef VK_EXT_swapchain_colorspace
11376 #endif
11377 #ifdef VK_EXT_hdr_metadata
marshal_VkXYColorEXT(VulkanStreamGuest * vkStream,const VkXYColorEXT * forMarshaling)11378 void marshal_VkXYColorEXT(
11379 VulkanStreamGuest* vkStream,
11380 const VkXYColorEXT* forMarshaling)
11381 {
11382 vkStream->write((float*)&forMarshaling->x, sizeof(float));
11383 vkStream->write((float*)&forMarshaling->y, sizeof(float));
11384 }
11385
unmarshal_VkXYColorEXT(VulkanStreamGuest * vkStream,VkXYColorEXT * forUnmarshaling)11386 void unmarshal_VkXYColorEXT(
11387 VulkanStreamGuest* vkStream,
11388 VkXYColorEXT* forUnmarshaling)
11389 {
11390 vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
11391 vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
11392 }
11393
marshal_VkHdrMetadataEXT(VulkanStreamGuest * vkStream,const VkHdrMetadataEXT * forMarshaling)11394 void marshal_VkHdrMetadataEXT(
11395 VulkanStreamGuest* vkStream,
11396 const VkHdrMetadataEXT* forMarshaling)
11397 {
11398 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11399 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11400 vkStream->putBe32(pNext_size);
11401 if (pNext_size)
11402 {
11403 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11404 marshal_extension_struct(vkStream, forMarshaling->pNext);
11405 }
11406 marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->displayPrimaryRed));
11407 marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->displayPrimaryGreen));
11408 marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->displayPrimaryBlue));
11409 marshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forMarshaling->whitePoint));
11410 vkStream->write((float*)&forMarshaling->maxLuminance, sizeof(float));
11411 vkStream->write((float*)&forMarshaling->minLuminance, sizeof(float));
11412 vkStream->write((float*)&forMarshaling->maxContentLightLevel, sizeof(float));
11413 vkStream->write((float*)&forMarshaling->maxFrameAverageLightLevel, sizeof(float));
11414 }
11415
unmarshal_VkHdrMetadataEXT(VulkanStreamGuest * vkStream,VkHdrMetadataEXT * forUnmarshaling)11416 void unmarshal_VkHdrMetadataEXT(
11417 VulkanStreamGuest* vkStream,
11418 VkHdrMetadataEXT* forUnmarshaling)
11419 {
11420 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11421 size_t pNext_size;
11422 pNext_size = vkStream->getBe32();
11423 if (pNext_size)
11424 {
11425 uint64_t pNext_placeholder;
11426 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11427 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11428 }
11429 unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryRed));
11430 unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryGreen));
11431 unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->displayPrimaryBlue));
11432 unmarshal_VkXYColorEXT(vkStream, (VkXYColorEXT*)(&forUnmarshaling->whitePoint));
11433 vkStream->read((float*)&forUnmarshaling->maxLuminance, sizeof(float));
11434 vkStream->read((float*)&forUnmarshaling->minLuminance, sizeof(float));
11435 vkStream->read((float*)&forUnmarshaling->maxContentLightLevel, sizeof(float));
11436 vkStream->read((float*)&forUnmarshaling->maxFrameAverageLightLevel, sizeof(float));
11437 }
11438
11439 #endif
11440 #ifdef VK_MVK_ios_surface
marshal_VkIOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,const VkIOSSurfaceCreateInfoMVK * forMarshaling)11441 void marshal_VkIOSSurfaceCreateInfoMVK(
11442 VulkanStreamGuest* vkStream,
11443 const VkIOSSurfaceCreateInfoMVK* forMarshaling)
11444 {
11445 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11446 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11447 vkStream->putBe32(pNext_size);
11448 if (pNext_size)
11449 {
11450 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11451 marshal_extension_struct(vkStream, forMarshaling->pNext);
11452 }
11453 vkStream->write((VkIOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkIOSSurfaceCreateFlagsMVK));
11454 // WARNING PTR CHECK
11455 uint64_t cgen_var_326 = (uint64_t)(uintptr_t)forMarshaling->pView;
11456 vkStream->putBe64(cgen_var_326);
11457 if (forMarshaling->pView)
11458 {
11459 vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
11460 }
11461 }
11462
unmarshal_VkIOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,VkIOSSurfaceCreateInfoMVK * forUnmarshaling)11463 void unmarshal_VkIOSSurfaceCreateInfoMVK(
11464 VulkanStreamGuest* vkStream,
11465 VkIOSSurfaceCreateInfoMVK* forUnmarshaling)
11466 {
11467 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11468 size_t pNext_size;
11469 pNext_size = vkStream->getBe32();
11470 if (pNext_size)
11471 {
11472 uint64_t pNext_placeholder;
11473 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11474 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11475 }
11476 vkStream->read((VkIOSSurfaceCreateFlagsMVK*)&forUnmarshaling->flags, sizeof(VkIOSSurfaceCreateFlagsMVK));
11477 // WARNING PTR CHECK
11478 const void* check_pView;
11479 check_pView = (const void*)(uintptr_t)vkStream->getBe64();
11480 if (forUnmarshaling->pView)
11481 {
11482 if (!(check_pView))
11483 {
11484 fprintf(stderr, "fatal: forUnmarshaling->pView inconsistent between guest and host\n");
11485 }
11486 vkStream->read((void*)forUnmarshaling->pView, sizeof(const uint8_t));
11487 }
11488 }
11489
11490 #endif
11491 #ifdef VK_MVK_macos_surface
marshal_VkMacOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,const VkMacOSSurfaceCreateInfoMVK * forMarshaling)11492 void marshal_VkMacOSSurfaceCreateInfoMVK(
11493 VulkanStreamGuest* vkStream,
11494 const VkMacOSSurfaceCreateInfoMVK* forMarshaling)
11495 {
11496 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11497 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11498 vkStream->putBe32(pNext_size);
11499 if (pNext_size)
11500 {
11501 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11502 marshal_extension_struct(vkStream, forMarshaling->pNext);
11503 }
11504 vkStream->write((VkMacOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkMacOSSurfaceCreateFlagsMVK));
11505 // WARNING PTR CHECK
11506 uint64_t cgen_var_328 = (uint64_t)(uintptr_t)forMarshaling->pView;
11507 vkStream->putBe64(cgen_var_328);
11508 if (forMarshaling->pView)
11509 {
11510 vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
11511 }
11512 }
11513
unmarshal_VkMacOSSurfaceCreateInfoMVK(VulkanStreamGuest * vkStream,VkMacOSSurfaceCreateInfoMVK * forUnmarshaling)11514 void unmarshal_VkMacOSSurfaceCreateInfoMVK(
11515 VulkanStreamGuest* vkStream,
11516 VkMacOSSurfaceCreateInfoMVK* forUnmarshaling)
11517 {
11518 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11519 size_t pNext_size;
11520 pNext_size = vkStream->getBe32();
11521 if (pNext_size)
11522 {
11523 uint64_t pNext_placeholder;
11524 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11525 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11526 }
11527 vkStream->read((VkMacOSSurfaceCreateFlagsMVK*)&forUnmarshaling->flags, sizeof(VkMacOSSurfaceCreateFlagsMVK));
11528 // WARNING PTR CHECK
11529 const void* check_pView;
11530 check_pView = (const void*)(uintptr_t)vkStream->getBe64();
11531 if (forUnmarshaling->pView)
11532 {
11533 if (!(check_pView))
11534 {
11535 fprintf(stderr, "fatal: forUnmarshaling->pView inconsistent between guest and host\n");
11536 }
11537 vkStream->read((void*)forUnmarshaling->pView, sizeof(const uint8_t));
11538 }
11539 }
11540
11541 #endif
11542 #ifdef VK_EXT_external_memory_dma_buf
11543 #endif
11544 #ifdef VK_EXT_queue_family_foreign
11545 #endif
11546 #ifdef VK_EXT_debug_utils
marshal_VkDebugUtilsObjectNameInfoEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsObjectNameInfoEXT * forMarshaling)11547 void marshal_VkDebugUtilsObjectNameInfoEXT(
11548 VulkanStreamGuest* vkStream,
11549 const VkDebugUtilsObjectNameInfoEXT* forMarshaling)
11550 {
11551 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11552 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11553 vkStream->putBe32(pNext_size);
11554 if (pNext_size)
11555 {
11556 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11557 marshal_extension_struct(vkStream, forMarshaling->pNext);
11558 }
11559 vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
11560 vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
11561 vkStream->putString(forMarshaling->pObjectName);
11562 }
11563
unmarshal_VkDebugUtilsObjectNameInfoEXT(VulkanStreamGuest * vkStream,VkDebugUtilsObjectNameInfoEXT * forUnmarshaling)11564 void unmarshal_VkDebugUtilsObjectNameInfoEXT(
11565 VulkanStreamGuest* vkStream,
11566 VkDebugUtilsObjectNameInfoEXT* forUnmarshaling)
11567 {
11568 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11569 size_t pNext_size;
11570 pNext_size = vkStream->getBe32();
11571 if (pNext_size)
11572 {
11573 uint64_t pNext_placeholder;
11574 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11575 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11576 }
11577 vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
11578 vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
11579 vkStream->loadStringInPlace((char**)&forUnmarshaling->pObjectName);
11580 }
11581
marshal_VkDebugUtilsObjectTagInfoEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsObjectTagInfoEXT * forMarshaling)11582 void marshal_VkDebugUtilsObjectTagInfoEXT(
11583 VulkanStreamGuest* vkStream,
11584 const VkDebugUtilsObjectTagInfoEXT* forMarshaling)
11585 {
11586 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11587 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11588 vkStream->putBe32(pNext_size);
11589 if (pNext_size)
11590 {
11591 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11592 marshal_extension_struct(vkStream, forMarshaling->pNext);
11593 }
11594 vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
11595 vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
11596 vkStream->write((uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
11597 uint64_t cgen_var_330 = (uint64_t)forMarshaling->tagSize;
11598 vkStream->putBe64(cgen_var_330);
11599 vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
11600 }
11601
unmarshal_VkDebugUtilsObjectTagInfoEXT(VulkanStreamGuest * vkStream,VkDebugUtilsObjectTagInfoEXT * forUnmarshaling)11602 void unmarshal_VkDebugUtilsObjectTagInfoEXT(
11603 VulkanStreamGuest* vkStream,
11604 VkDebugUtilsObjectTagInfoEXT* forUnmarshaling)
11605 {
11606 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11607 size_t pNext_size;
11608 pNext_size = vkStream->getBe32();
11609 if (pNext_size)
11610 {
11611 uint64_t pNext_placeholder;
11612 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11613 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11614 }
11615 vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
11616 vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
11617 vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
11618 forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
11619 vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
11620 }
11621
marshal_VkDebugUtilsLabelEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsLabelEXT * forMarshaling)11622 void marshal_VkDebugUtilsLabelEXT(
11623 VulkanStreamGuest* vkStream,
11624 const VkDebugUtilsLabelEXT* forMarshaling)
11625 {
11626 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11627 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11628 vkStream->putBe32(pNext_size);
11629 if (pNext_size)
11630 {
11631 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11632 marshal_extension_struct(vkStream, forMarshaling->pNext);
11633 }
11634 vkStream->putString(forMarshaling->pLabelName);
11635 vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
11636 }
11637
unmarshal_VkDebugUtilsLabelEXT(VulkanStreamGuest * vkStream,VkDebugUtilsLabelEXT * forUnmarshaling)11638 void unmarshal_VkDebugUtilsLabelEXT(
11639 VulkanStreamGuest* vkStream,
11640 VkDebugUtilsLabelEXT* forUnmarshaling)
11641 {
11642 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11643 size_t pNext_size;
11644 pNext_size = vkStream->getBe32();
11645 if (pNext_size)
11646 {
11647 uint64_t pNext_placeholder;
11648 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11649 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11650 }
11651 vkStream->loadStringInPlace((char**)&forUnmarshaling->pLabelName);
11652 vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
11653 }
11654
marshal_VkDebugUtilsMessengerCallbackDataEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsMessengerCallbackDataEXT * forMarshaling)11655 void marshal_VkDebugUtilsMessengerCallbackDataEXT(
11656 VulkanStreamGuest* vkStream,
11657 const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling)
11658 {
11659 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11660 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11661 vkStream->putBe32(pNext_size);
11662 if (pNext_size)
11663 {
11664 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11665 marshal_extension_struct(vkStream, forMarshaling->pNext);
11666 }
11667 vkStream->write((VkDebugUtilsMessengerCallbackDataFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT));
11668 vkStream->putString(forMarshaling->pMessageIdName);
11669 vkStream->write((int32_t*)&forMarshaling->messageIdNumber, sizeof(int32_t));
11670 vkStream->putString(forMarshaling->pMessage);
11671 vkStream->write((uint32_t*)&forMarshaling->queueLabelCount, sizeof(uint32_t));
11672 // WARNING PTR CHECK
11673 uint64_t cgen_var_332 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
11674 vkStream->putBe64(cgen_var_332);
11675 if (forMarshaling->pQueueLabels)
11676 {
11677 for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueLabelCount; ++i)
11678 {
11679 marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pQueueLabels + i));
11680 }
11681 }
11682 vkStream->write((uint32_t*)&forMarshaling->cmdBufLabelCount, sizeof(uint32_t));
11683 // WARNING PTR CHECK
11684 uint64_t cgen_var_333 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
11685 vkStream->putBe64(cgen_var_333);
11686 if (forMarshaling->pCmdBufLabels)
11687 {
11688 for (uint32_t i = 0; i < (uint32_t)forMarshaling->cmdBufLabelCount; ++i)
11689 {
11690 marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pCmdBufLabels + i));
11691 }
11692 }
11693 vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
11694 // WARNING PTR CHECK
11695 uint64_t cgen_var_334 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
11696 vkStream->putBe64(cgen_var_334);
11697 if (forMarshaling->pObjects)
11698 {
11699 for (uint32_t i = 0; i < (uint32_t)forMarshaling->objectCount; ++i)
11700 {
11701 marshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forMarshaling->pObjects + i));
11702 }
11703 }
11704 }
11705
unmarshal_VkDebugUtilsMessengerCallbackDataEXT(VulkanStreamGuest * vkStream,VkDebugUtilsMessengerCallbackDataEXT * forUnmarshaling)11706 void unmarshal_VkDebugUtilsMessengerCallbackDataEXT(
11707 VulkanStreamGuest* vkStream,
11708 VkDebugUtilsMessengerCallbackDataEXT* forUnmarshaling)
11709 {
11710 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11711 size_t pNext_size;
11712 pNext_size = vkStream->getBe32();
11713 if (pNext_size)
11714 {
11715 uint64_t pNext_placeholder;
11716 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11717 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11718 }
11719 vkStream->read((VkDebugUtilsMessengerCallbackDataFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT));
11720 vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessageIdName);
11721 vkStream->read((int32_t*)&forUnmarshaling->messageIdNumber, sizeof(int32_t));
11722 vkStream->loadStringInPlace((char**)&forUnmarshaling->pMessage);
11723 vkStream->read((uint32_t*)&forUnmarshaling->queueLabelCount, sizeof(uint32_t));
11724 // WARNING PTR CHECK
11725 VkDebugUtilsLabelEXT* check_pQueueLabels;
11726 check_pQueueLabels = (VkDebugUtilsLabelEXT*)(uintptr_t)vkStream->getBe64();
11727 if (forUnmarshaling->pQueueLabels)
11728 {
11729 if (!(check_pQueueLabels))
11730 {
11731 fprintf(stderr, "fatal: forUnmarshaling->pQueueLabels inconsistent between guest and host\n");
11732 }
11733 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueLabelCount; ++i)
11734 {
11735 unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pQueueLabels + i));
11736 }
11737 }
11738 vkStream->read((uint32_t*)&forUnmarshaling->cmdBufLabelCount, sizeof(uint32_t));
11739 // WARNING PTR CHECK
11740 VkDebugUtilsLabelEXT* check_pCmdBufLabels;
11741 check_pCmdBufLabels = (VkDebugUtilsLabelEXT*)(uintptr_t)vkStream->getBe64();
11742 if (forUnmarshaling->pCmdBufLabels)
11743 {
11744 if (!(check_pCmdBufLabels))
11745 {
11746 fprintf(stderr, "fatal: forUnmarshaling->pCmdBufLabels inconsistent between guest and host\n");
11747 }
11748 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->cmdBufLabelCount; ++i)
11749 {
11750 unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pCmdBufLabels + i));
11751 }
11752 }
11753 vkStream->read((uint32_t*)&forUnmarshaling->objectCount, sizeof(uint32_t));
11754 // WARNING PTR CHECK
11755 VkDebugUtilsObjectNameInfoEXT* check_pObjects;
11756 check_pObjects = (VkDebugUtilsObjectNameInfoEXT*)(uintptr_t)vkStream->getBe64();
11757 if (forUnmarshaling->pObjects)
11758 {
11759 if (!(check_pObjects))
11760 {
11761 fprintf(stderr, "fatal: forUnmarshaling->pObjects inconsistent between guest and host\n");
11762 }
11763 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->objectCount; ++i)
11764 {
11765 unmarshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forUnmarshaling->pObjects + i));
11766 }
11767 }
11768 }
11769
marshal_VkDebugUtilsMessengerCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDebugUtilsMessengerCreateInfoEXT * forMarshaling)11770 void marshal_VkDebugUtilsMessengerCreateInfoEXT(
11771 VulkanStreamGuest* vkStream,
11772 const VkDebugUtilsMessengerCreateInfoEXT* forMarshaling)
11773 {
11774 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11775 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11776 vkStream->putBe32(pNext_size);
11777 if (pNext_size)
11778 {
11779 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11780 marshal_extension_struct(vkStream, forMarshaling->pNext);
11781 }
11782 vkStream->write((VkDebugUtilsMessengerCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
11783 vkStream->write((VkDebugUtilsMessageSeverityFlagsEXT*)&forMarshaling->messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
11784 vkStream->write((VkDebugUtilsMessageTypeFlagsEXT*)&forMarshaling->messageType, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
11785 uint64_t cgen_var_338 = (uint64_t)forMarshaling->pfnUserCallback;
11786 vkStream->putBe64(cgen_var_338);
11787 // WARNING PTR CHECK
11788 uint64_t cgen_var_339 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
11789 vkStream->putBe64(cgen_var_339);
11790 if (forMarshaling->pUserData)
11791 {
11792 vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
11793 }
11794 }
11795
unmarshal_VkDebugUtilsMessengerCreateInfoEXT(VulkanStreamGuest * vkStream,VkDebugUtilsMessengerCreateInfoEXT * forUnmarshaling)11796 void unmarshal_VkDebugUtilsMessengerCreateInfoEXT(
11797 VulkanStreamGuest* vkStream,
11798 VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling)
11799 {
11800 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11801 size_t pNext_size;
11802 pNext_size = vkStream->getBe32();
11803 if (pNext_size)
11804 {
11805 uint64_t pNext_placeholder;
11806 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11807 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11808 }
11809 vkStream->read((VkDebugUtilsMessengerCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
11810 vkStream->read((VkDebugUtilsMessageSeverityFlagsEXT*)&forUnmarshaling->messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
11811 vkStream->read((VkDebugUtilsMessageTypeFlagsEXT*)&forUnmarshaling->messageType, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
11812 forUnmarshaling->pfnUserCallback = (PFN_vkDebugUtilsMessengerCallbackEXT)vkStream->getBe64();
11813 // WARNING PTR CHECK
11814 void* check_pUserData;
11815 check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
11816 if (forUnmarshaling->pUserData)
11817 {
11818 if (!(check_pUserData))
11819 {
11820 fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
11821 }
11822 vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
11823 }
11824 }
11825
11826 #endif
11827 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
marshal_VkAndroidHardwareBufferUsageANDROID(VulkanStreamGuest * vkStream,const VkAndroidHardwareBufferUsageANDROID * forMarshaling)11828 void marshal_VkAndroidHardwareBufferUsageANDROID(
11829 VulkanStreamGuest* vkStream,
11830 const VkAndroidHardwareBufferUsageANDROID* forMarshaling)
11831 {
11832 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11833 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11834 vkStream->putBe32(pNext_size);
11835 if (pNext_size)
11836 {
11837 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11838 marshal_extension_struct(vkStream, forMarshaling->pNext);
11839 }
11840 vkStream->write((uint64_t*)&forMarshaling->androidHardwareBufferUsage, sizeof(uint64_t));
11841 }
11842
unmarshal_VkAndroidHardwareBufferUsageANDROID(VulkanStreamGuest * vkStream,VkAndroidHardwareBufferUsageANDROID * forUnmarshaling)11843 void unmarshal_VkAndroidHardwareBufferUsageANDROID(
11844 VulkanStreamGuest* vkStream,
11845 VkAndroidHardwareBufferUsageANDROID* forUnmarshaling)
11846 {
11847 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11848 size_t pNext_size;
11849 pNext_size = vkStream->getBe32();
11850 if (pNext_size)
11851 {
11852 uint64_t pNext_placeholder;
11853 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11854 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11855 }
11856 vkStream->read((uint64_t*)&forUnmarshaling->androidHardwareBufferUsage, sizeof(uint64_t));
11857 }
11858
marshal_VkAndroidHardwareBufferPropertiesANDROID(VulkanStreamGuest * vkStream,const VkAndroidHardwareBufferPropertiesANDROID * forMarshaling)11859 void marshal_VkAndroidHardwareBufferPropertiesANDROID(
11860 VulkanStreamGuest* vkStream,
11861 const VkAndroidHardwareBufferPropertiesANDROID* forMarshaling)
11862 {
11863 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11864 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11865 vkStream->putBe32(pNext_size);
11866 if (pNext_size)
11867 {
11868 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11869 marshal_extension_struct(vkStream, forMarshaling->pNext);
11870 }
11871 vkStream->write((VkDeviceSize*)&forMarshaling->allocationSize, sizeof(VkDeviceSize));
11872 vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
11873 }
11874
unmarshal_VkAndroidHardwareBufferPropertiesANDROID(VulkanStreamGuest * vkStream,VkAndroidHardwareBufferPropertiesANDROID * forUnmarshaling)11875 void unmarshal_VkAndroidHardwareBufferPropertiesANDROID(
11876 VulkanStreamGuest* vkStream,
11877 VkAndroidHardwareBufferPropertiesANDROID* forUnmarshaling)
11878 {
11879 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11880 size_t pNext_size;
11881 pNext_size = vkStream->getBe32();
11882 if (pNext_size)
11883 {
11884 uint64_t pNext_placeholder;
11885 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11886 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11887 }
11888 vkStream->read((VkDeviceSize*)&forUnmarshaling->allocationSize, sizeof(VkDeviceSize));
11889 vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
11890 }
11891
marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(VulkanStreamGuest * vkStream,const VkAndroidHardwareBufferFormatPropertiesANDROID * forMarshaling)11892 void marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
11893 VulkanStreamGuest* vkStream,
11894 const VkAndroidHardwareBufferFormatPropertiesANDROID* forMarshaling)
11895 {
11896 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11897 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11898 vkStream->putBe32(pNext_size);
11899 if (pNext_size)
11900 {
11901 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
11902 marshal_extension_struct(vkStream, forMarshaling->pNext);
11903 }
11904 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
11905 vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
11906 vkStream->write((VkFormatFeatureFlags*)&forMarshaling->formatFeatures, sizeof(VkFormatFeatureFlags));
11907 marshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents));
11908 vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
11909 vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
11910 vkStream->write((VkChromaLocation*)&forMarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
11911 vkStream->write((VkChromaLocation*)&forMarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
11912 }
11913
unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(VulkanStreamGuest * vkStream,VkAndroidHardwareBufferFormatPropertiesANDROID * forUnmarshaling)11914 void unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
11915 VulkanStreamGuest* vkStream,
11916 VkAndroidHardwareBufferFormatPropertiesANDROID* forUnmarshaling)
11917 {
11918 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11919 size_t pNext_size;
11920 pNext_size = vkStream->getBe32();
11921 if (pNext_size)
11922 {
11923 uint64_t pNext_placeholder;
11924 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11925 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11926 }
11927 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
11928 vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
11929 vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->formatFeatures, sizeof(VkFormatFeatureFlags));
11930 unmarshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forUnmarshaling->samplerYcbcrConversionComponents));
11931 vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
11932 vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
11933 vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
11934 vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
11935 }
11936
marshal_VkImportAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,const VkImportAndroidHardwareBufferInfoANDROID * forMarshaling)11937 void marshal_VkImportAndroidHardwareBufferInfoANDROID(
11938 VulkanStreamGuest* vkStream,
11939 const VkImportAndroidHardwareBufferInfoANDROID* forMarshaling)
11940 {
11941 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11942 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11943 vkStream->putBe32(pNext_size);
11944 if (pNext_size)
11945 {
11946 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11947 marshal_extension_struct(vkStream, forMarshaling->pNext);
11948 }
11949 vkStream->write((AHardwareBuffer*)forMarshaling->buffer, sizeof(AHardwareBuffer));
11950 }
11951
unmarshal_VkImportAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,VkImportAndroidHardwareBufferInfoANDROID * forUnmarshaling)11952 void unmarshal_VkImportAndroidHardwareBufferInfoANDROID(
11953 VulkanStreamGuest* vkStream,
11954 VkImportAndroidHardwareBufferInfoANDROID* forUnmarshaling)
11955 {
11956 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11957 size_t pNext_size;
11958 pNext_size = vkStream->getBe32();
11959 if (pNext_size)
11960 {
11961 uint64_t pNext_placeholder;
11962 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11963 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11964 }
11965 vkStream->read((AHardwareBuffer*)forUnmarshaling->buffer, sizeof(AHardwareBuffer));
11966 }
11967
marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,const VkMemoryGetAndroidHardwareBufferInfoANDROID * forMarshaling)11968 void marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
11969 VulkanStreamGuest* vkStream,
11970 const VkMemoryGetAndroidHardwareBufferInfoANDROID* forMarshaling)
11971 {
11972 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
11973 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
11974 vkStream->putBe32(pNext_size);
11975 if (pNext_size)
11976 {
11977 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
11978 marshal_extension_struct(vkStream, forMarshaling->pNext);
11979 }
11980 uint64_t cgen_var_342;
11981 vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_342, 1);
11982 vkStream->write((uint64_t*)&cgen_var_342, 1 * 8);
11983 }
11984
unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(VulkanStreamGuest * vkStream,VkMemoryGetAndroidHardwareBufferInfoANDROID * forUnmarshaling)11985 void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
11986 VulkanStreamGuest* vkStream,
11987 VkMemoryGetAndroidHardwareBufferInfoANDROID* forUnmarshaling)
11988 {
11989 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
11990 size_t pNext_size;
11991 pNext_size = vkStream->getBe32();
11992 if (pNext_size)
11993 {
11994 uint64_t pNext_placeholder;
11995 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
11996 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
11997 }
11998 uint64_t cgen_var_343;
11999 vkStream->read((uint64_t*)&cgen_var_343, 1 * 8);
12000 vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_343, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
12001 }
12002
marshal_VkExternalFormatANDROID(VulkanStreamGuest * vkStream,const VkExternalFormatANDROID * forMarshaling)12003 void marshal_VkExternalFormatANDROID(
12004 VulkanStreamGuest* vkStream,
12005 const VkExternalFormatANDROID* forMarshaling)
12006 {
12007 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12008 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12009 vkStream->putBe32(pNext_size);
12010 if (pNext_size)
12011 {
12012 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12013 marshal_extension_struct(vkStream, forMarshaling->pNext);
12014 }
12015 vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
12016 }
12017
unmarshal_VkExternalFormatANDROID(VulkanStreamGuest * vkStream,VkExternalFormatANDROID * forUnmarshaling)12018 void unmarshal_VkExternalFormatANDROID(
12019 VulkanStreamGuest* vkStream,
12020 VkExternalFormatANDROID* forUnmarshaling)
12021 {
12022 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12023 size_t pNext_size;
12024 pNext_size = vkStream->getBe32();
12025 if (pNext_size)
12026 {
12027 uint64_t pNext_placeholder;
12028 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12029 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12030 }
12031 vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
12032 }
12033
12034 #endif
12035 #ifdef VK_EXT_sampler_filter_minmax
marshal_VkSamplerReductionModeCreateInfoEXT(VulkanStreamGuest * vkStream,const VkSamplerReductionModeCreateInfoEXT * forMarshaling)12036 void marshal_VkSamplerReductionModeCreateInfoEXT(
12037 VulkanStreamGuest* vkStream,
12038 const VkSamplerReductionModeCreateInfoEXT* forMarshaling)
12039 {
12040 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12041 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12042 vkStream->putBe32(pNext_size);
12043 if (pNext_size)
12044 {
12045 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12046 marshal_extension_struct(vkStream, forMarshaling->pNext);
12047 }
12048 vkStream->write((VkSamplerReductionModeEXT*)&forMarshaling->reductionMode, sizeof(VkSamplerReductionModeEXT));
12049 }
12050
unmarshal_VkSamplerReductionModeCreateInfoEXT(VulkanStreamGuest * vkStream,VkSamplerReductionModeCreateInfoEXT * forUnmarshaling)12051 void unmarshal_VkSamplerReductionModeCreateInfoEXT(
12052 VulkanStreamGuest* vkStream,
12053 VkSamplerReductionModeCreateInfoEXT* forUnmarshaling)
12054 {
12055 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12056 size_t pNext_size;
12057 pNext_size = vkStream->getBe32();
12058 if (pNext_size)
12059 {
12060 uint64_t pNext_placeholder;
12061 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12062 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12063 }
12064 vkStream->read((VkSamplerReductionModeEXT*)&forUnmarshaling->reductionMode, sizeof(VkSamplerReductionModeEXT));
12065 }
12066
marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT * forMarshaling)12067 void marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
12068 VulkanStreamGuest* vkStream,
12069 const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling)
12070 {
12071 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12072 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12073 vkStream->putBe32(pNext_size);
12074 if (pNext_size)
12075 {
12076 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12077 marshal_extension_struct(vkStream, forMarshaling->pNext);
12078 }
12079 vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
12080 vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
12081 }
12082
unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT * forUnmarshaling)12083 void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
12084 VulkanStreamGuest* vkStream,
12085 VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forUnmarshaling)
12086 {
12087 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12088 size_t pNext_size;
12089 pNext_size = vkStream->getBe32();
12090 if (pNext_size)
12091 {
12092 uint64_t pNext_placeholder;
12093 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12094 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12095 }
12096 vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
12097 vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
12098 }
12099
12100 #endif
12101 #ifdef VK_AMD_gpu_shader_int16
12102 #endif
12103 #ifdef VK_AMD_mixed_attachment_samples
12104 #endif
12105 #ifdef VK_AMD_shader_fragment_mask
12106 #endif
12107 #ifdef VK_EXT_shader_stencil_export
12108 #endif
12109 #ifdef VK_EXT_sample_locations
marshal_VkSampleLocationEXT(VulkanStreamGuest * vkStream,const VkSampleLocationEXT * forMarshaling)12110 void marshal_VkSampleLocationEXT(
12111 VulkanStreamGuest* vkStream,
12112 const VkSampleLocationEXT* forMarshaling)
12113 {
12114 vkStream->write((float*)&forMarshaling->x, sizeof(float));
12115 vkStream->write((float*)&forMarshaling->y, sizeof(float));
12116 }
12117
unmarshal_VkSampleLocationEXT(VulkanStreamGuest * vkStream,VkSampleLocationEXT * forUnmarshaling)12118 void unmarshal_VkSampleLocationEXT(
12119 VulkanStreamGuest* vkStream,
12120 VkSampleLocationEXT* forUnmarshaling)
12121 {
12122 vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
12123 vkStream->read((float*)&forUnmarshaling->y, sizeof(float));
12124 }
12125
marshal_VkSampleLocationsInfoEXT(VulkanStreamGuest * vkStream,const VkSampleLocationsInfoEXT * forMarshaling)12126 void marshal_VkSampleLocationsInfoEXT(
12127 VulkanStreamGuest* vkStream,
12128 const VkSampleLocationsInfoEXT* forMarshaling)
12129 {
12130 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12131 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12132 vkStream->putBe32(pNext_size);
12133 if (pNext_size)
12134 {
12135 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12136 marshal_extension_struct(vkStream, forMarshaling->pNext);
12137 }
12138 vkStream->write((VkSampleCountFlagBits*)&forMarshaling->sampleLocationsPerPixel, sizeof(VkSampleCountFlagBits));
12139 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->sampleLocationGridSize));
12140 vkStream->write((uint32_t*)&forMarshaling->sampleLocationsCount, sizeof(uint32_t));
12141 for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationsCount; ++i)
12142 {
12143 marshal_VkSampleLocationEXT(vkStream, (const VkSampleLocationEXT*)(forMarshaling->pSampleLocations + i));
12144 }
12145 }
12146
unmarshal_VkSampleLocationsInfoEXT(VulkanStreamGuest * vkStream,VkSampleLocationsInfoEXT * forUnmarshaling)12147 void unmarshal_VkSampleLocationsInfoEXT(
12148 VulkanStreamGuest* vkStream,
12149 VkSampleLocationsInfoEXT* forUnmarshaling)
12150 {
12151 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12152 size_t pNext_size;
12153 pNext_size = vkStream->getBe32();
12154 if (pNext_size)
12155 {
12156 uint64_t pNext_placeholder;
12157 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12158 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12159 }
12160 vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->sampleLocationsPerPixel, sizeof(VkSampleCountFlagBits));
12161 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->sampleLocationGridSize));
12162 vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationsCount, sizeof(uint32_t));
12163 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->sampleLocationsCount; ++i)
12164 {
12165 unmarshal_VkSampleLocationEXT(vkStream, (VkSampleLocationEXT*)(forUnmarshaling->pSampleLocations + i));
12166 }
12167 }
12168
marshal_VkAttachmentSampleLocationsEXT(VulkanStreamGuest * vkStream,const VkAttachmentSampleLocationsEXT * forMarshaling)12169 void marshal_VkAttachmentSampleLocationsEXT(
12170 VulkanStreamGuest* vkStream,
12171 const VkAttachmentSampleLocationsEXT* forMarshaling)
12172 {
12173 vkStream->write((uint32_t*)&forMarshaling->attachmentIndex, sizeof(uint32_t));
12174 marshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
12175 }
12176
unmarshal_VkAttachmentSampleLocationsEXT(VulkanStreamGuest * vkStream,VkAttachmentSampleLocationsEXT * forUnmarshaling)12177 void unmarshal_VkAttachmentSampleLocationsEXT(
12178 VulkanStreamGuest* vkStream,
12179 VkAttachmentSampleLocationsEXT* forUnmarshaling)
12180 {
12181 vkStream->read((uint32_t*)&forUnmarshaling->attachmentIndex, sizeof(uint32_t));
12182 unmarshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
12183 }
12184
marshal_VkSubpassSampleLocationsEXT(VulkanStreamGuest * vkStream,const VkSubpassSampleLocationsEXT * forMarshaling)12185 void marshal_VkSubpassSampleLocationsEXT(
12186 VulkanStreamGuest* vkStream,
12187 const VkSubpassSampleLocationsEXT* forMarshaling)
12188 {
12189 vkStream->write((uint32_t*)&forMarshaling->subpassIndex, sizeof(uint32_t));
12190 marshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
12191 }
12192
unmarshal_VkSubpassSampleLocationsEXT(VulkanStreamGuest * vkStream,VkSubpassSampleLocationsEXT * forUnmarshaling)12193 void unmarshal_VkSubpassSampleLocationsEXT(
12194 VulkanStreamGuest* vkStream,
12195 VkSubpassSampleLocationsEXT* forUnmarshaling)
12196 {
12197 vkStream->read((uint32_t*)&forUnmarshaling->subpassIndex, sizeof(uint32_t));
12198 unmarshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
12199 }
12200
marshal_VkRenderPassSampleLocationsBeginInfoEXT(VulkanStreamGuest * vkStream,const VkRenderPassSampleLocationsBeginInfoEXT * forMarshaling)12201 void marshal_VkRenderPassSampleLocationsBeginInfoEXT(
12202 VulkanStreamGuest* vkStream,
12203 const VkRenderPassSampleLocationsBeginInfoEXT* forMarshaling)
12204 {
12205 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12206 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12207 vkStream->putBe32(pNext_size);
12208 if (pNext_size)
12209 {
12210 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12211 marshal_extension_struct(vkStream, forMarshaling->pNext);
12212 }
12213 vkStream->write((uint32_t*)&forMarshaling->attachmentInitialSampleLocationsCount, sizeof(uint32_t));
12214 for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentInitialSampleLocationsCount; ++i)
12215 {
12216 marshal_VkAttachmentSampleLocationsEXT(vkStream, (const VkAttachmentSampleLocationsEXT*)(forMarshaling->pAttachmentInitialSampleLocations + i));
12217 }
12218 vkStream->write((uint32_t*)&forMarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
12219 for (uint32_t i = 0; i < (uint32_t)forMarshaling->postSubpassSampleLocationsCount; ++i)
12220 {
12221 marshal_VkSubpassSampleLocationsEXT(vkStream, (const VkSubpassSampleLocationsEXT*)(forMarshaling->pPostSubpassSampleLocations + i));
12222 }
12223 }
12224
unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(VulkanStreamGuest * vkStream,VkRenderPassSampleLocationsBeginInfoEXT * forUnmarshaling)12225 void unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(
12226 VulkanStreamGuest* vkStream,
12227 VkRenderPassSampleLocationsBeginInfoEXT* forUnmarshaling)
12228 {
12229 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12230 size_t pNext_size;
12231 pNext_size = vkStream->getBe32();
12232 if (pNext_size)
12233 {
12234 uint64_t pNext_placeholder;
12235 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12236 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12237 }
12238 vkStream->read((uint32_t*)&forUnmarshaling->attachmentInitialSampleLocationsCount, sizeof(uint32_t));
12239 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentInitialSampleLocationsCount; ++i)
12240 {
12241 unmarshal_VkAttachmentSampleLocationsEXT(vkStream, (VkAttachmentSampleLocationsEXT*)(forUnmarshaling->pAttachmentInitialSampleLocations + i));
12242 }
12243 vkStream->read((uint32_t*)&forUnmarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
12244 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->postSubpassSampleLocationsCount; ++i)
12245 {
12246 unmarshal_VkSubpassSampleLocationsEXT(vkStream, (VkSubpassSampleLocationsEXT*)(forUnmarshaling->pPostSubpassSampleLocations + i));
12247 }
12248 }
12249
marshal_VkPipelineSampleLocationsStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineSampleLocationsStateCreateInfoEXT * forMarshaling)12250 void marshal_VkPipelineSampleLocationsStateCreateInfoEXT(
12251 VulkanStreamGuest* vkStream,
12252 const VkPipelineSampleLocationsStateCreateInfoEXT* forMarshaling)
12253 {
12254 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12255 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12256 vkStream->putBe32(pNext_size);
12257 if (pNext_size)
12258 {
12259 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12260 marshal_extension_struct(vkStream, forMarshaling->pNext);
12261 }
12262 vkStream->write((VkBool32*)&forMarshaling->sampleLocationsEnable, sizeof(VkBool32));
12263 marshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forMarshaling->sampleLocationsInfo));
12264 }
12265
unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineSampleLocationsStateCreateInfoEXT * forUnmarshaling)12266 void unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(
12267 VulkanStreamGuest* vkStream,
12268 VkPipelineSampleLocationsStateCreateInfoEXT* forUnmarshaling)
12269 {
12270 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12271 size_t pNext_size;
12272 pNext_size = vkStream->getBe32();
12273 if (pNext_size)
12274 {
12275 uint64_t pNext_placeholder;
12276 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12277 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12278 }
12279 vkStream->read((VkBool32*)&forUnmarshaling->sampleLocationsEnable, sizeof(VkBool32));
12280 unmarshal_VkSampleLocationsInfoEXT(vkStream, (VkSampleLocationsInfoEXT*)(&forUnmarshaling->sampleLocationsInfo));
12281 }
12282
marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceSampleLocationsPropertiesEXT * forMarshaling)12283 void marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
12284 VulkanStreamGuest* vkStream,
12285 const VkPhysicalDeviceSampleLocationsPropertiesEXT* forMarshaling)
12286 {
12287 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12288 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12289 vkStream->putBe32(pNext_size);
12290 if (pNext_size)
12291 {
12292 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12293 marshal_extension_struct(vkStream, forMarshaling->pNext);
12294 }
12295 vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleLocationSampleCounts, sizeof(VkSampleCountFlags));
12296 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxSampleLocationGridSize));
12297 vkStream->write((float*)forMarshaling->sampleLocationCoordinateRange, 2 * sizeof(float));
12298 vkStream->write((uint32_t*)&forMarshaling->sampleLocationSubPixelBits, sizeof(uint32_t));
12299 vkStream->write((VkBool32*)&forMarshaling->variableSampleLocations, sizeof(VkBool32));
12300 }
12301
unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceSampleLocationsPropertiesEXT * forUnmarshaling)12302 void unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
12303 VulkanStreamGuest* vkStream,
12304 VkPhysicalDeviceSampleLocationsPropertiesEXT* forUnmarshaling)
12305 {
12306 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12307 size_t pNext_size;
12308 pNext_size = vkStream->getBe32();
12309 if (pNext_size)
12310 {
12311 uint64_t pNext_placeholder;
12312 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12313 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12314 }
12315 vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleLocationSampleCounts, sizeof(VkSampleCountFlags));
12316 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxSampleLocationGridSize));
12317 vkStream->read((float*)forUnmarshaling->sampleLocationCoordinateRange, 2 * sizeof(float));
12318 vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationSubPixelBits, sizeof(uint32_t));
12319 vkStream->read((VkBool32*)&forUnmarshaling->variableSampleLocations, sizeof(VkBool32));
12320 }
12321
marshal_VkMultisamplePropertiesEXT(VulkanStreamGuest * vkStream,const VkMultisamplePropertiesEXT * forMarshaling)12322 void marshal_VkMultisamplePropertiesEXT(
12323 VulkanStreamGuest* vkStream,
12324 const VkMultisamplePropertiesEXT* forMarshaling)
12325 {
12326 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12327 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12328 vkStream->putBe32(pNext_size);
12329 if (pNext_size)
12330 {
12331 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12332 marshal_extension_struct(vkStream, forMarshaling->pNext);
12333 }
12334 marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxSampleLocationGridSize));
12335 }
12336
unmarshal_VkMultisamplePropertiesEXT(VulkanStreamGuest * vkStream,VkMultisamplePropertiesEXT * forUnmarshaling)12337 void unmarshal_VkMultisamplePropertiesEXT(
12338 VulkanStreamGuest* vkStream,
12339 VkMultisamplePropertiesEXT* forUnmarshaling)
12340 {
12341 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12342 size_t pNext_size;
12343 pNext_size = vkStream->getBe32();
12344 if (pNext_size)
12345 {
12346 uint64_t pNext_placeholder;
12347 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12348 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12349 }
12350 unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxSampleLocationGridSize));
12351 }
12352
12353 #endif
12354 #ifdef VK_EXT_blend_operation_advanced
marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * forMarshaling)12355 void marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
12356 VulkanStreamGuest* vkStream,
12357 const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forMarshaling)
12358 {
12359 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12360 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12361 vkStream->putBe32(pNext_size);
12362 if (pNext_size)
12363 {
12364 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12365 marshal_extension_struct(vkStream, forMarshaling->pNext);
12366 }
12367 vkStream->write((VkBool32*)&forMarshaling->advancedBlendCoherentOperations, sizeof(VkBool32));
12368 }
12369
unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT * forUnmarshaling)12370 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
12371 VulkanStreamGuest* vkStream,
12372 VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forUnmarshaling)
12373 {
12374 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12375 size_t pNext_size;
12376 pNext_size = vkStream->getBe32();
12377 if (pNext_size)
12378 {
12379 uint64_t pNext_placeholder;
12380 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12381 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12382 }
12383 vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendCoherentOperations, sizeof(VkBool32));
12384 }
12385
marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * forMarshaling)12386 void marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
12387 VulkanStreamGuest* vkStream,
12388 const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forMarshaling)
12389 {
12390 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12391 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12392 vkStream->putBe32(pNext_size);
12393 if (pNext_size)
12394 {
12395 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12396 marshal_extension_struct(vkStream, forMarshaling->pNext);
12397 }
12398 vkStream->write((uint32_t*)&forMarshaling->advancedBlendMaxColorAttachments, sizeof(uint32_t));
12399 vkStream->write((VkBool32*)&forMarshaling->advancedBlendIndependentBlend, sizeof(VkBool32));
12400 vkStream->write((VkBool32*)&forMarshaling->advancedBlendNonPremultipliedSrcColor, sizeof(VkBool32));
12401 vkStream->write((VkBool32*)&forMarshaling->advancedBlendNonPremultipliedDstColor, sizeof(VkBool32));
12402 vkStream->write((VkBool32*)&forMarshaling->advancedBlendCorrelatedOverlap, sizeof(VkBool32));
12403 vkStream->write((VkBool32*)&forMarshaling->advancedBlendAllOperations, sizeof(VkBool32));
12404 }
12405
unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT * forUnmarshaling)12406 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
12407 VulkanStreamGuest* vkStream,
12408 VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forUnmarshaling)
12409 {
12410 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12411 size_t pNext_size;
12412 pNext_size = vkStream->getBe32();
12413 if (pNext_size)
12414 {
12415 uint64_t pNext_placeholder;
12416 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12417 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12418 }
12419 vkStream->read((uint32_t*)&forUnmarshaling->advancedBlendMaxColorAttachments, sizeof(uint32_t));
12420 vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendIndependentBlend, sizeof(VkBool32));
12421 vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendNonPremultipliedSrcColor, sizeof(VkBool32));
12422 vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendNonPremultipliedDstColor, sizeof(VkBool32));
12423 vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendCorrelatedOverlap, sizeof(VkBool32));
12424 vkStream->read((VkBool32*)&forUnmarshaling->advancedBlendAllOperations, sizeof(VkBool32));
12425 }
12426
marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineColorBlendAdvancedStateCreateInfoEXT * forMarshaling)12427 void marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
12428 VulkanStreamGuest* vkStream,
12429 const VkPipelineColorBlendAdvancedStateCreateInfoEXT* forMarshaling)
12430 {
12431 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12432 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12433 vkStream->putBe32(pNext_size);
12434 if (pNext_size)
12435 {
12436 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12437 marshal_extension_struct(vkStream, forMarshaling->pNext);
12438 }
12439 vkStream->write((VkBool32*)&forMarshaling->srcPremultiplied, sizeof(VkBool32));
12440 vkStream->write((VkBool32*)&forMarshaling->dstPremultiplied, sizeof(VkBool32));
12441 vkStream->write((VkBlendOverlapEXT*)&forMarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
12442 }
12443
unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineColorBlendAdvancedStateCreateInfoEXT * forUnmarshaling)12444 void unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
12445 VulkanStreamGuest* vkStream,
12446 VkPipelineColorBlendAdvancedStateCreateInfoEXT* forUnmarshaling)
12447 {
12448 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12449 size_t pNext_size;
12450 pNext_size = vkStream->getBe32();
12451 if (pNext_size)
12452 {
12453 uint64_t pNext_placeholder;
12454 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12455 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12456 }
12457 vkStream->read((VkBool32*)&forUnmarshaling->srcPremultiplied, sizeof(VkBool32));
12458 vkStream->read((VkBool32*)&forUnmarshaling->dstPremultiplied, sizeof(VkBool32));
12459 vkStream->read((VkBlendOverlapEXT*)&forUnmarshaling->blendOverlap, sizeof(VkBlendOverlapEXT));
12460 }
12461
12462 #endif
12463 #ifdef VK_NV_fragment_coverage_to_color
marshal_VkPipelineCoverageToColorStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineCoverageToColorStateCreateInfoNV * forMarshaling)12464 void marshal_VkPipelineCoverageToColorStateCreateInfoNV(
12465 VulkanStreamGuest* vkStream,
12466 const VkPipelineCoverageToColorStateCreateInfoNV* forMarshaling)
12467 {
12468 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12469 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12470 vkStream->putBe32(pNext_size);
12471 if (pNext_size)
12472 {
12473 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12474 marshal_extension_struct(vkStream, forMarshaling->pNext);
12475 }
12476 vkStream->write((VkPipelineCoverageToColorStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineCoverageToColorStateCreateFlagsNV));
12477 vkStream->write((VkBool32*)&forMarshaling->coverageToColorEnable, sizeof(VkBool32));
12478 vkStream->write((uint32_t*)&forMarshaling->coverageToColorLocation, sizeof(uint32_t));
12479 }
12480
unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineCoverageToColorStateCreateInfoNV * forUnmarshaling)12481 void unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(
12482 VulkanStreamGuest* vkStream,
12483 VkPipelineCoverageToColorStateCreateInfoNV* forUnmarshaling)
12484 {
12485 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12486 size_t pNext_size;
12487 pNext_size = vkStream->getBe32();
12488 if (pNext_size)
12489 {
12490 uint64_t pNext_placeholder;
12491 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12492 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12493 }
12494 vkStream->read((VkPipelineCoverageToColorStateCreateFlagsNV*)&forUnmarshaling->flags, sizeof(VkPipelineCoverageToColorStateCreateFlagsNV));
12495 vkStream->read((VkBool32*)&forUnmarshaling->coverageToColorEnable, sizeof(VkBool32));
12496 vkStream->read((uint32_t*)&forUnmarshaling->coverageToColorLocation, sizeof(uint32_t));
12497 }
12498
12499 #endif
12500 #ifdef VK_NV_framebuffer_mixed_samples
marshal_VkPipelineCoverageModulationStateCreateInfoNV(VulkanStreamGuest * vkStream,const VkPipelineCoverageModulationStateCreateInfoNV * forMarshaling)12501 void marshal_VkPipelineCoverageModulationStateCreateInfoNV(
12502 VulkanStreamGuest* vkStream,
12503 const VkPipelineCoverageModulationStateCreateInfoNV* forMarshaling)
12504 {
12505 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12506 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12507 vkStream->putBe32(pNext_size);
12508 if (pNext_size)
12509 {
12510 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12511 marshal_extension_struct(vkStream, forMarshaling->pNext);
12512 }
12513 vkStream->write((VkPipelineCoverageModulationStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineCoverageModulationStateCreateFlagsNV));
12514 vkStream->write((VkCoverageModulationModeNV*)&forMarshaling->coverageModulationMode, sizeof(VkCoverageModulationModeNV));
12515 vkStream->write((VkBool32*)&forMarshaling->coverageModulationTableEnable, sizeof(VkBool32));
12516 vkStream->write((uint32_t*)&forMarshaling->coverageModulationTableCount, sizeof(uint32_t));
12517 // WARNING PTR CHECK
12518 uint64_t cgen_var_344 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
12519 vkStream->putBe64(cgen_var_344);
12520 if (forMarshaling->pCoverageModulationTable)
12521 {
12522 vkStream->write((const float*)forMarshaling->pCoverageModulationTable, forMarshaling->coverageModulationTableCount * sizeof(const float));
12523 }
12524 }
12525
unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(VulkanStreamGuest * vkStream,VkPipelineCoverageModulationStateCreateInfoNV * forUnmarshaling)12526 void unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(
12527 VulkanStreamGuest* vkStream,
12528 VkPipelineCoverageModulationStateCreateInfoNV* forUnmarshaling)
12529 {
12530 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12531 size_t pNext_size;
12532 pNext_size = vkStream->getBe32();
12533 if (pNext_size)
12534 {
12535 uint64_t pNext_placeholder;
12536 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12537 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12538 }
12539 vkStream->read((VkPipelineCoverageModulationStateCreateFlagsNV*)&forUnmarshaling->flags, sizeof(VkPipelineCoverageModulationStateCreateFlagsNV));
12540 vkStream->read((VkCoverageModulationModeNV*)&forUnmarshaling->coverageModulationMode, sizeof(VkCoverageModulationModeNV));
12541 vkStream->read((VkBool32*)&forUnmarshaling->coverageModulationTableEnable, sizeof(VkBool32));
12542 vkStream->read((uint32_t*)&forUnmarshaling->coverageModulationTableCount, sizeof(uint32_t));
12543 // WARNING PTR CHECK
12544 const float* check_pCoverageModulationTable;
12545 check_pCoverageModulationTable = (const float*)(uintptr_t)vkStream->getBe64();
12546 if (forUnmarshaling->pCoverageModulationTable)
12547 {
12548 if (!(check_pCoverageModulationTable))
12549 {
12550 fprintf(stderr, "fatal: forUnmarshaling->pCoverageModulationTable inconsistent between guest and host\n");
12551 }
12552 vkStream->read((float*)forUnmarshaling->pCoverageModulationTable, forUnmarshaling->coverageModulationTableCount * sizeof(const float));
12553 }
12554 }
12555
12556 #endif
12557 #ifdef VK_NV_fill_rectangle
12558 #endif
12559 #ifdef VK_EXT_post_depth_coverage
12560 #endif
12561 #ifdef VK_EXT_validation_cache
marshal_VkValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,const VkValidationCacheCreateInfoEXT * forMarshaling)12562 void marshal_VkValidationCacheCreateInfoEXT(
12563 VulkanStreamGuest* vkStream,
12564 const VkValidationCacheCreateInfoEXT* forMarshaling)
12565 {
12566 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12567 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12568 vkStream->putBe32(pNext_size);
12569 if (pNext_size)
12570 {
12571 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12572 marshal_extension_struct(vkStream, forMarshaling->pNext);
12573 }
12574 vkStream->write((VkValidationCacheCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkValidationCacheCreateFlagsEXT));
12575 uint64_t cgen_var_346 = (uint64_t)forMarshaling->initialDataSize;
12576 vkStream->putBe64(cgen_var_346);
12577 vkStream->write((const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
12578 }
12579
unmarshal_VkValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,VkValidationCacheCreateInfoEXT * forUnmarshaling)12580 void unmarshal_VkValidationCacheCreateInfoEXT(
12581 VulkanStreamGuest* vkStream,
12582 VkValidationCacheCreateInfoEXT* 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((VkValidationCacheCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkValidationCacheCreateFlagsEXT));
12594 forUnmarshaling->initialDataSize = (size_t)vkStream->getBe64();
12595 vkStream->read((void*)forUnmarshaling->pInitialData, forUnmarshaling->initialDataSize * sizeof(const uint8_t));
12596 }
12597
marshal_VkShaderModuleValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,const VkShaderModuleValidationCacheCreateInfoEXT * forMarshaling)12598 void marshal_VkShaderModuleValidationCacheCreateInfoEXT(
12599 VulkanStreamGuest* vkStream,
12600 const VkShaderModuleValidationCacheCreateInfoEXT* forMarshaling)
12601 {
12602 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12603 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12604 vkStream->putBe32(pNext_size);
12605 if (pNext_size)
12606 {
12607 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12608 marshal_extension_struct(vkStream, forMarshaling->pNext);
12609 }
12610 uint64_t cgen_var_348;
12611 vkStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&forMarshaling->validationCache, &cgen_var_348, 1);
12612 vkStream->write((uint64_t*)&cgen_var_348, 1 * 8);
12613 }
12614
unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(VulkanStreamGuest * vkStream,VkShaderModuleValidationCacheCreateInfoEXT * forUnmarshaling)12615 void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
12616 VulkanStreamGuest* vkStream,
12617 VkShaderModuleValidationCacheCreateInfoEXT* 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 uint64_t cgen_var_349;
12629 vkStream->read((uint64_t*)&cgen_var_349, 1 * 8);
12630 vkStream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_349, (VkValidationCacheEXT*)&forUnmarshaling->validationCache, 1);
12631 }
12632
12633 #endif
12634 #ifdef VK_EXT_descriptor_indexing
marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT * forMarshaling)12635 void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
12636 VulkanStreamGuest* vkStream,
12637 const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling)
12638 {
12639 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12640 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12641 vkStream->putBe32(pNext_size);
12642 if (pNext_size)
12643 {
12644 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12645 marshal_extension_struct(vkStream, forMarshaling->pNext);
12646 }
12647 vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
12648 vkStream->write((const VkDescriptorBindingFlagsEXT*)forMarshaling->pBindingFlags, forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
12649 }
12650
unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(VulkanStreamGuest * vkStream,VkDescriptorSetLayoutBindingFlagsCreateInfoEXT * forUnmarshaling)12651 void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
12652 VulkanStreamGuest* vkStream,
12653 VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forUnmarshaling)
12654 {
12655 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12656 size_t pNext_size;
12657 pNext_size = vkStream->getBe32();
12658 if (pNext_size)
12659 {
12660 uint64_t pNext_placeholder;
12661 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12662 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12663 }
12664 vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
12665 vkStream->read((VkDescriptorBindingFlagsEXT*)forUnmarshaling->pBindingFlags, forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
12666 }
12667
marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceDescriptorIndexingFeaturesEXT * forMarshaling)12668 void marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
12669 VulkanStreamGuest* vkStream,
12670 const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling)
12671 {
12672 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12673 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12674 vkStream->putBe32(pNext_size);
12675 if (pNext_size)
12676 {
12677 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12678 marshal_extension_struct(vkStream, forMarshaling->pNext);
12679 }
12680 vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
12681 vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12682 vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12683 vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
12684 vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
12685 vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
12686 vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
12687 vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
12688 vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
12689 vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
12690 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
12691 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
12692 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
12693 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
12694 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
12695 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
12696 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
12697 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
12698 vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
12699 vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
12700 }
12701
unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceDescriptorIndexingFeaturesEXT * forUnmarshaling)12702 void unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
12703 VulkanStreamGuest* vkStream,
12704 VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forUnmarshaling)
12705 {
12706 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12707 size_t pNext_size;
12708 pNext_size = vkStream->getBe32();
12709 if (pNext_size)
12710 {
12711 uint64_t pNext_placeholder;
12712 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12713 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12714 }
12715 vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
12716 vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12717 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
12718 vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
12719 vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
12720 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
12721 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
12722 vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
12723 vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
12724 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
12725 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
12726 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
12727 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
12728 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
12729 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
12730 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
12731 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
12732 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
12733 vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
12734 vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
12735 }
12736
marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceDescriptorIndexingPropertiesEXT * forMarshaling)12737 void marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
12738 VulkanStreamGuest* vkStream,
12739 const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling)
12740 {
12741 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12742 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12743 vkStream->putBe32(pNext_size);
12744 if (pNext_size)
12745 {
12746 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12747 marshal_extension_struct(vkStream, forMarshaling->pNext);
12748 }
12749 vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
12750 vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
12751 vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
12752 vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
12753 vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
12754 vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
12755 vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
12756 vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
12757 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
12758 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
12759 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
12760 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
12761 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
12762 vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
12763 vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
12764 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
12765 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
12766 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
12767 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
12768 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
12769 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
12770 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
12771 vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
12772 }
12773
unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceDescriptorIndexingPropertiesEXT * forUnmarshaling)12774 void unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
12775 VulkanStreamGuest* vkStream,
12776 VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forUnmarshaling)
12777 {
12778 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12779 size_t pNext_size;
12780 pNext_size = vkStream->getBe32();
12781 if (pNext_size)
12782 {
12783 uint64_t pNext_placeholder;
12784 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12785 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12786 }
12787 vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
12788 vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
12789 vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
12790 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
12791 vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
12792 vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
12793 vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
12794 vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
12795 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
12796 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
12797 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
12798 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
12799 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
12800 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
12801 vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
12802 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
12803 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
12804 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
12805 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
12806 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
12807 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
12808 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
12809 vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
12810 }
12811
marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(VulkanStreamGuest * vkStream,const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT * forMarshaling)12812 void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
12813 VulkanStreamGuest* vkStream,
12814 const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling)
12815 {
12816 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12817 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12818 vkStream->putBe32(pNext_size);
12819 if (pNext_size)
12820 {
12821 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12822 marshal_extension_struct(vkStream, forMarshaling->pNext);
12823 }
12824 vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
12825 vkStream->write((const uint32_t*)forMarshaling->pDescriptorCounts, forMarshaling->descriptorSetCount * sizeof(const uint32_t));
12826 }
12827
unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(VulkanStreamGuest * vkStream,VkDescriptorSetVariableDescriptorCountAllocateInfoEXT * forUnmarshaling)12828 void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
12829 VulkanStreamGuest* vkStream,
12830 VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forUnmarshaling)
12831 {
12832 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12833 size_t pNext_size;
12834 pNext_size = vkStream->getBe32();
12835 if (pNext_size)
12836 {
12837 uint64_t pNext_placeholder;
12838 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12839 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12840 }
12841 vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
12842 vkStream->read((uint32_t*)forUnmarshaling->pDescriptorCounts, forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
12843 }
12844
marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(VulkanStreamGuest * vkStream,const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT * forMarshaling)12845 void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
12846 VulkanStreamGuest* vkStream,
12847 const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling)
12848 {
12849 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12850 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12851 vkStream->putBe32(pNext_size);
12852 if (pNext_size)
12853 {
12854 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12855 marshal_extension_struct(vkStream, forMarshaling->pNext);
12856 }
12857 vkStream->write((uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
12858 }
12859
unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(VulkanStreamGuest * vkStream,VkDescriptorSetVariableDescriptorCountLayoutSupportEXT * forUnmarshaling)12860 void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
12861 VulkanStreamGuest* vkStream,
12862 VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forUnmarshaling)
12863 {
12864 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12865 size_t pNext_size;
12866 pNext_size = vkStream->getBe32();
12867 if (pNext_size)
12868 {
12869 uint64_t pNext_placeholder;
12870 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12871 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12872 }
12873 vkStream->read((uint32_t*)&forUnmarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
12874 }
12875
12876 #endif
12877 #ifdef VK_EXT_shader_viewport_index_layer
12878 #endif
12879 #ifdef VK_EXT_global_priority
marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(VulkanStreamGuest * vkStream,const VkDeviceQueueGlobalPriorityCreateInfoEXT * forMarshaling)12880 void marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
12881 VulkanStreamGuest* vkStream,
12882 const VkDeviceQueueGlobalPriorityCreateInfoEXT* forMarshaling)
12883 {
12884 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12885 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12886 vkStream->putBe32(pNext_size);
12887 if (pNext_size)
12888 {
12889 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
12890 marshal_extension_struct(vkStream, forMarshaling->pNext);
12891 }
12892 vkStream->write((VkQueueGlobalPriorityEXT*)&forMarshaling->globalPriority, sizeof(VkQueueGlobalPriorityEXT));
12893 }
12894
unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(VulkanStreamGuest * vkStream,VkDeviceQueueGlobalPriorityCreateInfoEXT * forUnmarshaling)12895 void unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
12896 VulkanStreamGuest* vkStream,
12897 VkDeviceQueueGlobalPriorityCreateInfoEXT* forUnmarshaling)
12898 {
12899 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12900 size_t pNext_size;
12901 pNext_size = vkStream->getBe32();
12902 if (pNext_size)
12903 {
12904 uint64_t pNext_placeholder;
12905 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12906 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12907 }
12908 vkStream->read((VkQueueGlobalPriorityEXT*)&forUnmarshaling->globalPriority, sizeof(VkQueueGlobalPriorityEXT));
12909 }
12910
12911 #endif
12912 #ifdef VK_EXT_external_memory_host
marshal_VkImportMemoryHostPointerInfoEXT(VulkanStreamGuest * vkStream,const VkImportMemoryHostPointerInfoEXT * forMarshaling)12913 void marshal_VkImportMemoryHostPointerInfoEXT(
12914 VulkanStreamGuest* vkStream,
12915 const VkImportMemoryHostPointerInfoEXT* 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((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
12926 // WARNING PTR CHECK
12927 uint64_t cgen_var_350 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
12928 vkStream->putBe64(cgen_var_350);
12929 if (forMarshaling->pHostPointer)
12930 {
12931 vkStream->write((void*)forMarshaling->pHostPointer, sizeof(uint8_t));
12932 }
12933 }
12934
unmarshal_VkImportMemoryHostPointerInfoEXT(VulkanStreamGuest * vkStream,VkImportMemoryHostPointerInfoEXT * forUnmarshaling)12935 void unmarshal_VkImportMemoryHostPointerInfoEXT(
12936 VulkanStreamGuest* vkStream,
12937 VkImportMemoryHostPointerInfoEXT* forUnmarshaling)
12938 {
12939 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12940 size_t pNext_size;
12941 pNext_size = vkStream->getBe32();
12942 if (pNext_size)
12943 {
12944 uint64_t pNext_placeholder;
12945 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12946 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12947 }
12948 vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
12949 // WARNING PTR CHECK
12950 void* check_pHostPointer;
12951 check_pHostPointer = (void*)(uintptr_t)vkStream->getBe64();
12952 if (forUnmarshaling->pHostPointer)
12953 {
12954 if (!(check_pHostPointer))
12955 {
12956 fprintf(stderr, "fatal: forUnmarshaling->pHostPointer inconsistent between guest and host\n");
12957 }
12958 vkStream->read((void*)forUnmarshaling->pHostPointer, sizeof(uint8_t));
12959 }
12960 }
12961
marshal_VkMemoryHostPointerPropertiesEXT(VulkanStreamGuest * vkStream,const VkMemoryHostPointerPropertiesEXT * forMarshaling)12962 void marshal_VkMemoryHostPointerPropertiesEXT(
12963 VulkanStreamGuest* vkStream,
12964 const VkMemoryHostPointerPropertiesEXT* forMarshaling)
12965 {
12966 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12967 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12968 vkStream->putBe32(pNext_size);
12969 if (pNext_size)
12970 {
12971 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
12972 marshal_extension_struct(vkStream, forMarshaling->pNext);
12973 }
12974 vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
12975 }
12976
unmarshal_VkMemoryHostPointerPropertiesEXT(VulkanStreamGuest * vkStream,VkMemoryHostPointerPropertiesEXT * forUnmarshaling)12977 void unmarshal_VkMemoryHostPointerPropertiesEXT(
12978 VulkanStreamGuest* vkStream,
12979 VkMemoryHostPointerPropertiesEXT* forUnmarshaling)
12980 {
12981 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
12982 size_t pNext_size;
12983 pNext_size = vkStream->getBe32();
12984 if (pNext_size)
12985 {
12986 uint64_t pNext_placeholder;
12987 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
12988 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
12989 }
12990 vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
12991 }
12992
marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceExternalMemoryHostPropertiesEXT * forMarshaling)12993 void marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
12994 VulkanStreamGuest* vkStream,
12995 const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forMarshaling)
12996 {
12997 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
12998 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
12999 vkStream->putBe32(pNext_size);
13000 if (pNext_size)
13001 {
13002 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13003 marshal_extension_struct(vkStream, forMarshaling->pNext);
13004 }
13005 vkStream->write((VkDeviceSize*)&forMarshaling->minImportedHostPointerAlignment, sizeof(VkDeviceSize));
13006 }
13007
unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceExternalMemoryHostPropertiesEXT * forUnmarshaling)13008 void unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
13009 VulkanStreamGuest* vkStream,
13010 VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling)
13011 {
13012 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13013 size_t pNext_size;
13014 pNext_size = vkStream->getBe32();
13015 if (pNext_size)
13016 {
13017 uint64_t pNext_placeholder;
13018 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13019 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13020 }
13021 vkStream->read((VkDeviceSize*)&forUnmarshaling->minImportedHostPointerAlignment, sizeof(VkDeviceSize));
13022 }
13023
13024 #endif
13025 #ifdef VK_AMD_buffer_marker
13026 #endif
13027 #ifdef VK_AMD_shader_core_properties
marshal_VkPhysicalDeviceShaderCorePropertiesAMD(VulkanStreamGuest * vkStream,const VkPhysicalDeviceShaderCorePropertiesAMD * forMarshaling)13028 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
13029 VulkanStreamGuest* vkStream,
13030 const VkPhysicalDeviceShaderCorePropertiesAMD* forMarshaling)
13031 {
13032 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13033 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13034 vkStream->putBe32(pNext_size);
13035 if (pNext_size)
13036 {
13037 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13038 marshal_extension_struct(vkStream, forMarshaling->pNext);
13039 }
13040 vkStream->write((uint32_t*)&forMarshaling->shaderEngineCount, sizeof(uint32_t));
13041 vkStream->write((uint32_t*)&forMarshaling->shaderArraysPerEngineCount, sizeof(uint32_t));
13042 vkStream->write((uint32_t*)&forMarshaling->computeUnitsPerShaderArray, sizeof(uint32_t));
13043 vkStream->write((uint32_t*)&forMarshaling->simdPerComputeUnit, sizeof(uint32_t));
13044 vkStream->write((uint32_t*)&forMarshaling->wavefrontsPerSimd, sizeof(uint32_t));
13045 vkStream->write((uint32_t*)&forMarshaling->wavefrontSize, sizeof(uint32_t));
13046 vkStream->write((uint32_t*)&forMarshaling->sgprsPerSimd, sizeof(uint32_t));
13047 vkStream->write((uint32_t*)&forMarshaling->minSgprAllocation, sizeof(uint32_t));
13048 vkStream->write((uint32_t*)&forMarshaling->maxSgprAllocation, sizeof(uint32_t));
13049 vkStream->write((uint32_t*)&forMarshaling->sgprAllocationGranularity, sizeof(uint32_t));
13050 vkStream->write((uint32_t*)&forMarshaling->vgprsPerSimd, sizeof(uint32_t));
13051 vkStream->write((uint32_t*)&forMarshaling->minVgprAllocation, sizeof(uint32_t));
13052 vkStream->write((uint32_t*)&forMarshaling->maxVgprAllocation, sizeof(uint32_t));
13053 vkStream->write((uint32_t*)&forMarshaling->vgprAllocationGranularity, sizeof(uint32_t));
13054 }
13055
unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(VulkanStreamGuest * vkStream,VkPhysicalDeviceShaderCorePropertiesAMD * forUnmarshaling)13056 void unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
13057 VulkanStreamGuest* vkStream,
13058 VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling)
13059 {
13060 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13061 size_t pNext_size;
13062 pNext_size = vkStream->getBe32();
13063 if (pNext_size)
13064 {
13065 uint64_t pNext_placeholder;
13066 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13067 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13068 }
13069 vkStream->read((uint32_t*)&forUnmarshaling->shaderEngineCount, sizeof(uint32_t));
13070 vkStream->read((uint32_t*)&forUnmarshaling->shaderArraysPerEngineCount, sizeof(uint32_t));
13071 vkStream->read((uint32_t*)&forUnmarshaling->computeUnitsPerShaderArray, sizeof(uint32_t));
13072 vkStream->read((uint32_t*)&forUnmarshaling->simdPerComputeUnit, sizeof(uint32_t));
13073 vkStream->read((uint32_t*)&forUnmarshaling->wavefrontsPerSimd, sizeof(uint32_t));
13074 vkStream->read((uint32_t*)&forUnmarshaling->wavefrontSize, sizeof(uint32_t));
13075 vkStream->read((uint32_t*)&forUnmarshaling->sgprsPerSimd, sizeof(uint32_t));
13076 vkStream->read((uint32_t*)&forUnmarshaling->minSgprAllocation, sizeof(uint32_t));
13077 vkStream->read((uint32_t*)&forUnmarshaling->maxSgprAllocation, sizeof(uint32_t));
13078 vkStream->read((uint32_t*)&forUnmarshaling->sgprAllocationGranularity, sizeof(uint32_t));
13079 vkStream->read((uint32_t*)&forUnmarshaling->vgprsPerSimd, sizeof(uint32_t));
13080 vkStream->read((uint32_t*)&forUnmarshaling->minVgprAllocation, sizeof(uint32_t));
13081 vkStream->read((uint32_t*)&forUnmarshaling->maxVgprAllocation, sizeof(uint32_t));
13082 vkStream->read((uint32_t*)&forUnmarshaling->vgprAllocationGranularity, sizeof(uint32_t));
13083 }
13084
13085 #endif
13086 #ifdef VK_EXT_vertex_attribute_divisor
marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forMarshaling)13087 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
13088 VulkanStreamGuest* vkStream,
13089 const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling)
13090 {
13091 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13092 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13093 vkStream->putBe32(pNext_size);
13094 if (pNext_size)
13095 {
13096 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13097 marshal_extension_struct(vkStream, forMarshaling->pNext);
13098 }
13099 vkStream->write((uint32_t*)&forMarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
13100 }
13101
unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStreamGuest * vkStream,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forUnmarshaling)13102 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
13103 VulkanStreamGuest* vkStream,
13104 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling)
13105 {
13106 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13107 size_t pNext_size;
13108 pNext_size = vkStream->getBe32();
13109 if (pNext_size)
13110 {
13111 uint64_t pNext_placeholder;
13112 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13113 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13114 }
13115 vkStream->read((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, sizeof(uint32_t));
13116 }
13117
marshal_VkVertexInputBindingDivisorDescriptionEXT(VulkanStreamGuest * vkStream,const VkVertexInputBindingDivisorDescriptionEXT * forMarshaling)13118 void marshal_VkVertexInputBindingDivisorDescriptionEXT(
13119 VulkanStreamGuest* vkStream,
13120 const VkVertexInputBindingDivisorDescriptionEXT* forMarshaling)
13121 {
13122 vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
13123 vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
13124 }
13125
unmarshal_VkVertexInputBindingDivisorDescriptionEXT(VulkanStreamGuest * vkStream,VkVertexInputBindingDivisorDescriptionEXT * forUnmarshaling)13126 void unmarshal_VkVertexInputBindingDivisorDescriptionEXT(
13127 VulkanStreamGuest* vkStream,
13128 VkVertexInputBindingDivisorDescriptionEXT* forUnmarshaling)
13129 {
13130 vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
13131 vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
13132 }
13133
marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(VulkanStreamGuest * vkStream,const VkPipelineVertexInputDivisorStateCreateInfoEXT * forMarshaling)13134 void marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
13135 VulkanStreamGuest* vkStream,
13136 const VkPipelineVertexInputDivisorStateCreateInfoEXT* forMarshaling)
13137 {
13138 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13139 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13140 vkStream->putBe32(pNext_size);
13141 if (pNext_size)
13142 {
13143 vkStream->write((const void*)forMarshaling->pNext, sizeof(VkStructureType));
13144 marshal_extension_struct(vkStream, forMarshaling->pNext);
13145 }
13146 vkStream->write((uint32_t*)&forMarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
13147 for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDivisorCount; ++i)
13148 {
13149 marshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (const VkVertexInputBindingDivisorDescriptionEXT*)(forMarshaling->pVertexBindingDivisors + i));
13150 }
13151 }
13152
unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(VulkanStreamGuest * vkStream,VkPipelineVertexInputDivisorStateCreateInfoEXT * forUnmarshaling)13153 void unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
13154 VulkanStreamGuest* vkStream,
13155 VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling)
13156 {
13157 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13158 size_t pNext_size;
13159 pNext_size = vkStream->getBe32();
13160 if (pNext_size)
13161 {
13162 uint64_t pNext_placeholder;
13163 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13164 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13165 }
13166 vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
13167 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDivisorCount; ++i)
13168 {
13169 unmarshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (VkVertexInputBindingDivisorDescriptionEXT*)(forUnmarshaling->pVertexBindingDivisors + i));
13170 }
13171 }
13172
13173 #endif
13174 #ifdef VK_NV_shader_subgroup_partitioned
13175 #endif
13176 #ifdef VK_NV_device_diagnostic_checkpoints
marshal_VkQueueFamilyCheckpointPropertiesNV(VulkanStreamGuest * vkStream,const VkQueueFamilyCheckpointPropertiesNV * forMarshaling)13177 void marshal_VkQueueFamilyCheckpointPropertiesNV(
13178 VulkanStreamGuest* vkStream,
13179 const VkQueueFamilyCheckpointPropertiesNV* forMarshaling)
13180 {
13181 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13182 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13183 vkStream->putBe32(pNext_size);
13184 if (pNext_size)
13185 {
13186 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13187 marshal_extension_struct(vkStream, forMarshaling->pNext);
13188 }
13189 vkStream->write((VkPipelineStageFlags*)&forMarshaling->checkpointExecutionStageMask, sizeof(VkPipelineStageFlags));
13190 }
13191
unmarshal_VkQueueFamilyCheckpointPropertiesNV(VulkanStreamGuest * vkStream,VkQueueFamilyCheckpointPropertiesNV * forUnmarshaling)13192 void unmarshal_VkQueueFamilyCheckpointPropertiesNV(
13193 VulkanStreamGuest* vkStream,
13194 VkQueueFamilyCheckpointPropertiesNV* forUnmarshaling)
13195 {
13196 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13197 size_t pNext_size;
13198 pNext_size = vkStream->getBe32();
13199 if (pNext_size)
13200 {
13201 uint64_t pNext_placeholder;
13202 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13203 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13204 }
13205 vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->checkpointExecutionStageMask, sizeof(VkPipelineStageFlags));
13206 }
13207
marshal_VkCheckpointDataNV(VulkanStreamGuest * vkStream,const VkCheckpointDataNV * forMarshaling)13208 void marshal_VkCheckpointDataNV(
13209 VulkanStreamGuest* vkStream,
13210 const VkCheckpointDataNV* forMarshaling)
13211 {
13212 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13213 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13214 vkStream->putBe32(pNext_size);
13215 if (pNext_size)
13216 {
13217 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13218 marshal_extension_struct(vkStream, forMarshaling->pNext);
13219 }
13220 vkStream->write((VkPipelineStageFlagBits*)&forMarshaling->stage, sizeof(VkPipelineStageFlagBits));
13221 // WARNING PTR CHECK
13222 uint64_t cgen_var_352 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
13223 vkStream->putBe64(cgen_var_352);
13224 if (forMarshaling->pCheckpointMarker)
13225 {
13226 vkStream->write((void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
13227 }
13228 }
13229
unmarshal_VkCheckpointDataNV(VulkanStreamGuest * vkStream,VkCheckpointDataNV * forUnmarshaling)13230 void unmarshal_VkCheckpointDataNV(
13231 VulkanStreamGuest* vkStream,
13232 VkCheckpointDataNV* forUnmarshaling)
13233 {
13234 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13235 size_t pNext_size;
13236 pNext_size = vkStream->getBe32();
13237 if (pNext_size)
13238 {
13239 uint64_t pNext_placeholder;
13240 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13241 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13242 }
13243 vkStream->read((VkPipelineStageFlagBits*)&forUnmarshaling->stage, sizeof(VkPipelineStageFlagBits));
13244 // WARNING PTR CHECK
13245 void* check_pCheckpointMarker;
13246 check_pCheckpointMarker = (void*)(uintptr_t)vkStream->getBe64();
13247 if (forUnmarshaling->pCheckpointMarker)
13248 {
13249 if (!(check_pCheckpointMarker))
13250 {
13251 fprintf(stderr, "fatal: forUnmarshaling->pCheckpointMarker inconsistent between guest and host\n");
13252 }
13253 vkStream->read((void*)forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
13254 }
13255 }
13256
13257 #endif
13258 #ifdef VK_GOOGLE_address_space
13259 #endif
13260 #ifdef VK_GOOGLE_color_buffer
marshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,const VkImportColorBufferGOOGLE * forMarshaling)13261 void marshal_VkImportColorBufferGOOGLE(
13262 VulkanStreamGuest* vkStream,
13263 const VkImportColorBufferGOOGLE* forMarshaling)
13264 {
13265 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13266 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13267 vkStream->putBe32(pNext_size);
13268 if (pNext_size)
13269 {
13270 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13271 marshal_extension_struct(vkStream, forMarshaling->pNext);
13272 }
13273 vkStream->write((uint32_t*)&forMarshaling->colorBuffer, sizeof(uint32_t));
13274 }
13275
unmarshal_VkImportColorBufferGOOGLE(VulkanStreamGuest * vkStream,VkImportColorBufferGOOGLE * forUnmarshaling)13276 void unmarshal_VkImportColorBufferGOOGLE(
13277 VulkanStreamGuest* vkStream,
13278 VkImportColorBufferGOOGLE* forUnmarshaling)
13279 {
13280 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13281 size_t pNext_size;
13282 pNext_size = vkStream->getBe32();
13283 if (pNext_size)
13284 {
13285 uint64_t pNext_placeholder;
13286 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13287 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13288 }
13289 vkStream->read((uint32_t*)&forUnmarshaling->colorBuffer, sizeof(uint32_t));
13290 }
13291
marshal_VkImportPhysicalAddressGOOGLE(VulkanStreamGuest * vkStream,const VkImportPhysicalAddressGOOGLE * forMarshaling)13292 void marshal_VkImportPhysicalAddressGOOGLE(
13293 VulkanStreamGuest* vkStream,
13294 const VkImportPhysicalAddressGOOGLE* forMarshaling)
13295 {
13296 vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
13297 size_t pNext_size = goldfish_vk_extension_struct_size(forMarshaling->pNext);
13298 vkStream->putBe32(pNext_size);
13299 if (pNext_size)
13300 {
13301 vkStream->write((void*)forMarshaling->pNext, sizeof(VkStructureType));
13302 marshal_extension_struct(vkStream, forMarshaling->pNext);
13303 }
13304 vkStream->write((uint64_t*)&forMarshaling->physicalAddress, sizeof(uint64_t));
13305 vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
13306 vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
13307 vkStream->write((VkImageTiling*)&forMarshaling->tiling, sizeof(VkImageTiling));
13308 vkStream->write((uint32_t*)&forMarshaling->tilingParameter, sizeof(uint32_t));
13309 }
13310
unmarshal_VkImportPhysicalAddressGOOGLE(VulkanStreamGuest * vkStream,VkImportPhysicalAddressGOOGLE * forUnmarshaling)13311 void unmarshal_VkImportPhysicalAddressGOOGLE(
13312 VulkanStreamGuest* vkStream,
13313 VkImportPhysicalAddressGOOGLE* forUnmarshaling)
13314 {
13315 vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
13316 size_t pNext_size;
13317 pNext_size = vkStream->getBe32();
13318 if (pNext_size)
13319 {
13320 uint64_t pNext_placeholder;
13321 vkStream->read((void*)(&pNext_placeholder), sizeof(VkStructureType));
13322 unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
13323 }
13324 vkStream->read((uint64_t*)&forUnmarshaling->physicalAddress, sizeof(uint64_t));
13325 vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
13326 vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
13327 vkStream->read((VkImageTiling*)&forUnmarshaling->tiling, sizeof(VkImageTiling));
13328 vkStream->read((uint32_t*)&forUnmarshaling->tilingParameter, sizeof(uint32_t));
13329 }
13330
13331 #endif
13332 #ifdef VK_GOOGLE_sized_descriptor_update_template
13333 #endif
13334 #ifdef VK_GOOGLE_async_command_buffers
13335 #endif
marshal_extension_struct(VulkanStreamGuest * vkStream,const void * structExtension)13336 void marshal_extension_struct(
13337 VulkanStreamGuest* vkStream,
13338 const void* structExtension)
13339 {
13340 if (!structExtension)
13341 {
13342 return;
13343 }
13344 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
13345 switch(structType)
13346 {
13347 #ifdef VK_VERSION_1_1
13348 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
13349 {
13350 marshal_VkPhysicalDeviceSubgroupProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension));
13351 break;
13352 }
13353 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
13354 {
13355 marshal_VkPhysicalDevice16BitStorageFeatures(vkStream, reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension));
13356 break;
13357 }
13358 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
13359 {
13360 marshal_VkMemoryDedicatedRequirements(vkStream, reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension));
13361 break;
13362 }
13363 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
13364 {
13365 marshal_VkMemoryDedicatedAllocateInfo(vkStream, reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension));
13366 break;
13367 }
13368 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
13369 {
13370 marshal_VkMemoryAllocateFlagsInfo(vkStream, reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension));
13371 break;
13372 }
13373 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
13374 {
13375 marshal_VkDeviceGroupRenderPassBeginInfo(vkStream, reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension));
13376 break;
13377 }
13378 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
13379 {
13380 marshal_VkDeviceGroupCommandBufferBeginInfo(vkStream, reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension));
13381 break;
13382 }
13383 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
13384 {
13385 marshal_VkDeviceGroupSubmitInfo(vkStream, reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension));
13386 break;
13387 }
13388 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
13389 {
13390 marshal_VkDeviceGroupBindSparseInfo(vkStream, reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension));
13391 break;
13392 }
13393 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
13394 {
13395 marshal_VkBindBufferMemoryDeviceGroupInfo(vkStream, reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension));
13396 break;
13397 }
13398 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
13399 {
13400 marshal_VkBindImageMemoryDeviceGroupInfo(vkStream, reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension));
13401 break;
13402 }
13403 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
13404 {
13405 marshal_VkDeviceGroupDeviceCreateInfo(vkStream, reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension));
13406 break;
13407 }
13408 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
13409 {
13410 marshal_VkPhysicalDeviceFeatures2(vkStream, reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension));
13411 break;
13412 }
13413 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
13414 {
13415 marshal_VkPhysicalDevicePointClippingProperties(vkStream, reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension));
13416 break;
13417 }
13418 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
13419 {
13420 marshal_VkRenderPassInputAttachmentAspectCreateInfo(vkStream, reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension));
13421 break;
13422 }
13423 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
13424 {
13425 marshal_VkImageViewUsageCreateInfo(vkStream, reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension));
13426 break;
13427 }
13428 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
13429 {
13430 marshal_VkPipelineTessellationDomainOriginStateCreateInfo(vkStream, reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension));
13431 break;
13432 }
13433 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
13434 {
13435 marshal_VkRenderPassMultiviewCreateInfo(vkStream, reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension));
13436 break;
13437 }
13438 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
13439 {
13440 marshal_VkPhysicalDeviceMultiviewFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension));
13441 break;
13442 }
13443 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
13444 {
13445 marshal_VkPhysicalDeviceMultiviewProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension));
13446 break;
13447 }
13448 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
13449 {
13450 marshal_VkPhysicalDeviceVariablePointerFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension));
13451 break;
13452 }
13453 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
13454 {
13455 marshal_VkPhysicalDeviceProtectedMemoryFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension));
13456 break;
13457 }
13458 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
13459 {
13460 marshal_VkPhysicalDeviceProtectedMemoryProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension));
13461 break;
13462 }
13463 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
13464 {
13465 marshal_VkProtectedSubmitInfo(vkStream, reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension));
13466 break;
13467 }
13468 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
13469 {
13470 marshal_VkSamplerYcbcrConversionInfo(vkStream, reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension));
13471 break;
13472 }
13473 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
13474 {
13475 marshal_VkBindImagePlaneMemoryInfo(vkStream, reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension));
13476 break;
13477 }
13478 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
13479 {
13480 marshal_VkImagePlaneMemoryRequirementsInfo(vkStream, reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension));
13481 break;
13482 }
13483 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
13484 {
13485 marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension));
13486 break;
13487 }
13488 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
13489 {
13490 marshal_VkSamplerYcbcrConversionImageFormatProperties(vkStream, reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(structExtension));
13491 break;
13492 }
13493 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
13494 {
13495 marshal_VkPhysicalDeviceExternalImageFormatInfo(vkStream, reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension));
13496 break;
13497 }
13498 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
13499 {
13500 marshal_VkExternalImageFormatProperties(vkStream, reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension));
13501 break;
13502 }
13503 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
13504 {
13505 marshal_VkPhysicalDeviceIDProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension));
13506 break;
13507 }
13508 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
13509 {
13510 marshal_VkExternalMemoryImageCreateInfo(vkStream, reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension));
13511 break;
13512 }
13513 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
13514 {
13515 marshal_VkExternalMemoryBufferCreateInfo(vkStream, reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension));
13516 break;
13517 }
13518 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
13519 {
13520 marshal_VkExportMemoryAllocateInfo(vkStream, reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension));
13521 break;
13522 }
13523 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
13524 {
13525 marshal_VkExportFenceCreateInfo(vkStream, reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension));
13526 break;
13527 }
13528 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
13529 {
13530 marshal_VkExportSemaphoreCreateInfo(vkStream, reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension));
13531 break;
13532 }
13533 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
13534 {
13535 marshal_VkPhysicalDeviceMaintenance3Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension));
13536 break;
13537 }
13538 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
13539 {
13540 marshal_VkPhysicalDeviceShaderDrawParameterFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension));
13541 break;
13542 }
13543 #endif
13544 #ifdef VK_KHR_swapchain
13545 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
13546 {
13547 marshal_VkImageSwapchainCreateInfoKHR(vkStream, reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension));
13548 break;
13549 }
13550 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
13551 {
13552 marshal_VkBindImageMemorySwapchainInfoKHR(vkStream, reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension));
13553 break;
13554 }
13555 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
13556 {
13557 marshal_VkDeviceGroupPresentInfoKHR(vkStream, reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension));
13558 break;
13559 }
13560 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
13561 {
13562 marshal_VkDeviceGroupSwapchainCreateInfoKHR(vkStream, reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension));
13563 break;
13564 }
13565 #endif
13566 #ifdef VK_KHR_display_swapchain
13567 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
13568 {
13569 marshal_VkDisplayPresentInfoKHR(vkStream, reinterpret_cast<const VkDisplayPresentInfoKHR*>(structExtension));
13570 break;
13571 }
13572 #endif
13573 #ifdef VK_KHR_external_memory_win32
13574 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
13575 {
13576 marshal_VkImportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(structExtension));
13577 break;
13578 }
13579 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
13580 {
13581 marshal_VkExportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(structExtension));
13582 break;
13583 }
13584 #endif
13585 #ifdef VK_KHR_external_memory_fd
13586 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
13587 {
13588 marshal_VkImportMemoryFdInfoKHR(vkStream, reinterpret_cast<const VkImportMemoryFdInfoKHR*>(structExtension));
13589 break;
13590 }
13591 #endif
13592 #ifdef VK_KHR_win32_keyed_mutex
13593 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
13594 {
13595 marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(vkStream, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension));
13596 break;
13597 }
13598 #endif
13599 #ifdef VK_KHR_external_semaphore_win32
13600 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
13601 {
13602 marshal_VkExportSemaphoreWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(structExtension));
13603 break;
13604 }
13605 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
13606 {
13607 marshal_VkD3D12FenceSubmitInfoKHR(vkStream, reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(structExtension));
13608 break;
13609 }
13610 #endif
13611 #ifdef VK_KHR_push_descriptor
13612 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
13613 {
13614 marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension));
13615 break;
13616 }
13617 #endif
13618 #ifdef VK_KHR_incremental_present
13619 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
13620 {
13621 marshal_VkPresentRegionsKHR(vkStream, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension));
13622 break;
13623 }
13624 #endif
13625 #ifdef VK_KHR_shared_presentable_image
13626 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
13627 {
13628 marshal_VkSharedPresentSurfaceCapabilitiesKHR(vkStream, reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension));
13629 break;
13630 }
13631 #endif
13632 #ifdef VK_KHR_external_fence_win32
13633 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
13634 {
13635 marshal_VkExportFenceWin32HandleInfoKHR(vkStream, reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(structExtension));
13636 break;
13637 }
13638 #endif
13639 #ifdef VK_KHR_image_format_list
13640 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
13641 {
13642 marshal_VkImageFormatListCreateInfoKHR(vkStream, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension));
13643 break;
13644 }
13645 #endif
13646 #ifdef VK_KHR_8bit_storage
13647 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
13648 {
13649 marshal_VkPhysicalDevice8BitStorageFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension));
13650 break;
13651 }
13652 #endif
13653 #ifdef VK_ANDROID_native_buffer
13654 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
13655 {
13656 marshal_VkNativeBufferANDROID(vkStream, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension));
13657 break;
13658 }
13659 #endif
13660 #ifdef VK_EXT_debug_report
13661 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
13662 {
13663 marshal_VkDebugReportCallbackCreateInfoEXT(vkStream, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(structExtension));
13664 break;
13665 }
13666 #endif
13667 #ifdef VK_AMD_rasterization_order
13668 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
13669 {
13670 marshal_VkPipelineRasterizationStateRasterizationOrderAMD(vkStream, reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension));
13671 break;
13672 }
13673 #endif
13674 #ifdef VK_NV_dedicated_allocation
13675 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
13676 {
13677 marshal_VkDedicatedAllocationImageCreateInfoNV(vkStream, reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(structExtension));
13678 break;
13679 }
13680 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
13681 {
13682 marshal_VkDedicatedAllocationBufferCreateInfoNV(vkStream, reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(structExtension));
13683 break;
13684 }
13685 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
13686 {
13687 marshal_VkDedicatedAllocationMemoryAllocateInfoNV(vkStream, reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension));
13688 break;
13689 }
13690 #endif
13691 #ifdef VK_AMD_texture_gather_bias_lod
13692 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
13693 {
13694 marshal_VkTextureLODGatherFormatPropertiesAMD(vkStream, reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(structExtension));
13695 break;
13696 }
13697 #endif
13698 #ifdef VK_NV_external_memory
13699 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
13700 {
13701 marshal_VkExternalMemoryImageCreateInfoNV(vkStream, reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(structExtension));
13702 break;
13703 }
13704 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
13705 {
13706 marshal_VkExportMemoryAllocateInfoNV(vkStream, reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(structExtension));
13707 break;
13708 }
13709 #endif
13710 #ifdef VK_NV_external_memory_win32
13711 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
13712 {
13713 marshal_VkImportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(structExtension));
13714 break;
13715 }
13716 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
13717 {
13718 marshal_VkExportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(structExtension));
13719 break;
13720 }
13721 #endif
13722 #ifdef VK_NV_win32_keyed_mutex
13723 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
13724 {
13725 marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(vkStream, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension));
13726 break;
13727 }
13728 #endif
13729 #ifdef VK_EXT_validation_flags
13730 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
13731 {
13732 marshal_VkValidationFlagsEXT(vkStream, reinterpret_cast<const VkValidationFlagsEXT*>(structExtension));
13733 break;
13734 }
13735 #endif
13736 #ifdef VK_EXT_conditional_rendering
13737 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
13738 {
13739 marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension));
13740 break;
13741 }
13742 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
13743 {
13744 marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(vkStream, reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension));
13745 break;
13746 }
13747 #endif
13748 #ifdef VK_NV_clip_space_w_scaling
13749 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
13750 {
13751 marshal_VkPipelineViewportWScalingStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension));
13752 break;
13753 }
13754 #endif
13755 #ifdef VK_EXT_display_control
13756 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
13757 {
13758 marshal_VkSwapchainCounterCreateInfoEXT(vkStream, reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(structExtension));
13759 break;
13760 }
13761 #endif
13762 #ifdef VK_GOOGLE_display_timing
13763 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
13764 {
13765 marshal_VkPresentTimesInfoGOOGLE(vkStream, reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(structExtension));
13766 break;
13767 }
13768 #endif
13769 #ifdef VK_NVX_multiview_per_view_attributes
13770 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
13771 {
13772 marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension));
13773 break;
13774 }
13775 #endif
13776 #ifdef VK_NV_viewport_swizzle
13777 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
13778 {
13779 marshal_VkPipelineViewportSwizzleStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension));
13780 break;
13781 }
13782 #endif
13783 #ifdef VK_EXT_discard_rectangles
13784 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
13785 {
13786 marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension));
13787 break;
13788 }
13789 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
13790 {
13791 marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension));
13792 break;
13793 }
13794 #endif
13795 #ifdef VK_EXT_conservative_rasterization
13796 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
13797 {
13798 marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension));
13799 break;
13800 }
13801 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
13802 {
13803 marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension));
13804 break;
13805 }
13806 #endif
13807 #ifdef VK_EXT_debug_utils
13808 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
13809 {
13810 marshal_VkDebugUtilsMessengerCreateInfoEXT(vkStream, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(structExtension));
13811 break;
13812 }
13813 #endif
13814 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
13815 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
13816 {
13817 marshal_VkAndroidHardwareBufferUsageANDROID(vkStream, reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(structExtension));
13818 break;
13819 }
13820 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
13821 {
13822 marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(vkStream, reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension));
13823 break;
13824 }
13825 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
13826 {
13827 marshal_VkImportAndroidHardwareBufferInfoANDROID(vkStream, reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(structExtension));
13828 break;
13829 }
13830 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
13831 {
13832 marshal_VkExternalFormatANDROID(vkStream, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension));
13833 break;
13834 }
13835 #endif
13836 #ifdef VK_EXT_sampler_filter_minmax
13837 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
13838 {
13839 marshal_VkSamplerReductionModeCreateInfoEXT(vkStream, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension));
13840 break;
13841 }
13842 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
13843 {
13844 marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension));
13845 break;
13846 }
13847 #endif
13848 #ifdef VK_EXT_sample_locations
13849 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
13850 {
13851 marshal_VkSampleLocationsInfoEXT(vkStream, reinterpret_cast<const VkSampleLocationsInfoEXT*>(structExtension));
13852 break;
13853 }
13854 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
13855 {
13856 marshal_VkRenderPassSampleLocationsBeginInfoEXT(vkStream, reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension));
13857 break;
13858 }
13859 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
13860 {
13861 marshal_VkPipelineSampleLocationsStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension));
13862 break;
13863 }
13864 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
13865 {
13866 marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension));
13867 break;
13868 }
13869 #endif
13870 #ifdef VK_EXT_blend_operation_advanced
13871 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
13872 {
13873 marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension));
13874 break;
13875 }
13876 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
13877 {
13878 marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension));
13879 break;
13880 }
13881 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
13882 {
13883 marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension));
13884 break;
13885 }
13886 #endif
13887 #ifdef VK_NV_fragment_coverage_to_color
13888 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
13889 {
13890 marshal_VkPipelineCoverageToColorStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension));
13891 break;
13892 }
13893 #endif
13894 #ifdef VK_NV_framebuffer_mixed_samples
13895 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
13896 {
13897 marshal_VkPipelineCoverageModulationStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension));
13898 break;
13899 }
13900 #endif
13901 #ifdef VK_EXT_validation_cache
13902 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
13903 {
13904 marshal_VkShaderModuleValidationCacheCreateInfoEXT(vkStream, reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension));
13905 break;
13906 }
13907 #endif
13908 #ifdef VK_EXT_descriptor_indexing
13909 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
13910 {
13911 marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension));
13912 break;
13913 }
13914 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
13915 {
13916 marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension));
13917 break;
13918 }
13919 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
13920 {
13921 marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension));
13922 break;
13923 }
13924 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
13925 {
13926 marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension));
13927 break;
13928 }
13929 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
13930 {
13931 marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension));
13932 break;
13933 }
13934 #endif
13935 #ifdef VK_EXT_global_priority
13936 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
13937 {
13938 marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(vkStream, reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension));
13939 break;
13940 }
13941 #endif
13942 #ifdef VK_EXT_external_memory_host
13943 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
13944 {
13945 marshal_VkImportMemoryHostPointerInfoEXT(vkStream, reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(structExtension));
13946 break;
13947 }
13948 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
13949 {
13950 marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension));
13951 break;
13952 }
13953 #endif
13954 #ifdef VK_AMD_shader_core_properties
13955 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
13956 {
13957 marshal_VkPhysicalDeviceShaderCorePropertiesAMD(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension));
13958 break;
13959 }
13960 #endif
13961 #ifdef VK_EXT_vertex_attribute_divisor
13962 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
13963 {
13964 marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension));
13965 break;
13966 }
13967 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
13968 {
13969 marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension));
13970 break;
13971 }
13972 #endif
13973 #ifdef VK_NV_device_diagnostic_checkpoints
13974 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
13975 {
13976 marshal_VkQueueFamilyCheckpointPropertiesNV(vkStream, reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(structExtension));
13977 break;
13978 }
13979 #endif
13980 #ifdef VK_GOOGLE_color_buffer
13981 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
13982 {
13983 marshal_VkImportColorBufferGOOGLE(vkStream, reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension));
13984 break;
13985 }
13986 case VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE:
13987 {
13988 marshal_VkImportPhysicalAddressGOOGLE(vkStream, reinterpret_cast<const VkImportPhysicalAddressGOOGLE*>(structExtension));
13989 break;
13990 }
13991 #endif
13992 default:
13993 {
13994 return;
13995 }
13996 }
13997 }
13998
unmarshal_extension_struct(VulkanStreamGuest * vkStream,void * structExtension_out)13999 void unmarshal_extension_struct(
14000 VulkanStreamGuest* vkStream,
14001 void* structExtension_out)
14002 {
14003 if (!structExtension_out)
14004 {
14005 return;
14006 }
14007 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
14008 switch(structType)
14009 {
14010 #ifdef VK_VERSION_1_1
14011 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
14012 {
14013 unmarshal_VkPhysicalDeviceSubgroupProperties(vkStream, reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
14014 break;
14015 }
14016 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
14017 {
14018 unmarshal_VkPhysicalDevice16BitStorageFeatures(vkStream, reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
14019 break;
14020 }
14021 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
14022 {
14023 unmarshal_VkMemoryDedicatedRequirements(vkStream, reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
14024 break;
14025 }
14026 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
14027 {
14028 unmarshal_VkMemoryDedicatedAllocateInfo(vkStream, reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
14029 break;
14030 }
14031 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
14032 {
14033 unmarshal_VkMemoryAllocateFlagsInfo(vkStream, reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
14034 break;
14035 }
14036 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
14037 {
14038 unmarshal_VkDeviceGroupRenderPassBeginInfo(vkStream, reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
14039 break;
14040 }
14041 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
14042 {
14043 unmarshal_VkDeviceGroupCommandBufferBeginInfo(vkStream, reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
14044 break;
14045 }
14046 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
14047 {
14048 unmarshal_VkDeviceGroupSubmitInfo(vkStream, reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
14049 break;
14050 }
14051 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
14052 {
14053 unmarshal_VkDeviceGroupBindSparseInfo(vkStream, reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
14054 break;
14055 }
14056 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
14057 {
14058 unmarshal_VkBindBufferMemoryDeviceGroupInfo(vkStream, reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
14059 break;
14060 }
14061 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
14062 {
14063 unmarshal_VkBindImageMemoryDeviceGroupInfo(vkStream, reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
14064 break;
14065 }
14066 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
14067 {
14068 unmarshal_VkDeviceGroupDeviceCreateInfo(vkStream, reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
14069 break;
14070 }
14071 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
14072 {
14073 unmarshal_VkPhysicalDeviceFeatures2(vkStream, reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
14074 break;
14075 }
14076 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
14077 {
14078 unmarshal_VkPhysicalDevicePointClippingProperties(vkStream, reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
14079 break;
14080 }
14081 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
14082 {
14083 unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(vkStream, reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out));
14084 break;
14085 }
14086 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
14087 {
14088 unmarshal_VkImageViewUsageCreateInfo(vkStream, reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
14089 break;
14090 }
14091 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
14092 {
14093 unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(vkStream, reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension_out));
14094 break;
14095 }
14096 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
14097 {
14098 unmarshal_VkRenderPassMultiviewCreateInfo(vkStream, reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
14099 break;
14100 }
14101 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
14102 {
14103 unmarshal_VkPhysicalDeviceMultiviewFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
14104 break;
14105 }
14106 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
14107 {
14108 unmarshal_VkPhysicalDeviceMultiviewProperties(vkStream, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
14109 break;
14110 }
14111 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
14112 {
14113 unmarshal_VkPhysicalDeviceVariablePointerFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
14114 break;
14115 }
14116 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
14117 {
14118 unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
14119 break;
14120 }
14121 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
14122 {
14123 unmarshal_VkPhysicalDeviceProtectedMemoryProperties(vkStream, reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
14124 break;
14125 }
14126 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
14127 {
14128 unmarshal_VkProtectedSubmitInfo(vkStream, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
14129 break;
14130 }
14131 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
14132 {
14133 unmarshal_VkSamplerYcbcrConversionInfo(vkStream, reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
14134 break;
14135 }
14136 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
14137 {
14138 unmarshal_VkBindImagePlaneMemoryInfo(vkStream, reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
14139 break;
14140 }
14141 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
14142 {
14143 unmarshal_VkImagePlaneMemoryRequirementsInfo(vkStream, reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
14144 break;
14145 }
14146 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
14147 {
14148 unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension_out));
14149 break;
14150 }
14151 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
14152 {
14153 unmarshal_VkSamplerYcbcrConversionImageFormatProperties(vkStream, reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(structExtension_out));
14154 break;
14155 }
14156 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
14157 {
14158 unmarshal_VkPhysicalDeviceExternalImageFormatInfo(vkStream, reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
14159 break;
14160 }
14161 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
14162 {
14163 unmarshal_VkExternalImageFormatProperties(vkStream, reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
14164 break;
14165 }
14166 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
14167 {
14168 unmarshal_VkPhysicalDeviceIDProperties(vkStream, reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
14169 break;
14170 }
14171 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
14172 {
14173 unmarshal_VkExternalMemoryImageCreateInfo(vkStream, reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
14174 break;
14175 }
14176 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
14177 {
14178 unmarshal_VkExternalMemoryBufferCreateInfo(vkStream, reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
14179 break;
14180 }
14181 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
14182 {
14183 unmarshal_VkExportMemoryAllocateInfo(vkStream, reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
14184 break;
14185 }
14186 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
14187 {
14188 unmarshal_VkExportFenceCreateInfo(vkStream, reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
14189 break;
14190 }
14191 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
14192 {
14193 unmarshal_VkExportSemaphoreCreateInfo(vkStream, reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
14194 break;
14195 }
14196 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
14197 {
14198 unmarshal_VkPhysicalDeviceMaintenance3Properties(vkStream, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
14199 break;
14200 }
14201 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
14202 {
14203 unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
14204 break;
14205 }
14206 #endif
14207 #ifdef VK_KHR_swapchain
14208 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
14209 {
14210 unmarshal_VkImageSwapchainCreateInfoKHR(vkStream, reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
14211 break;
14212 }
14213 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
14214 {
14215 unmarshal_VkBindImageMemorySwapchainInfoKHR(vkStream, reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
14216 break;
14217 }
14218 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
14219 {
14220 unmarshal_VkDeviceGroupPresentInfoKHR(vkStream, reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
14221 break;
14222 }
14223 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
14224 {
14225 unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(vkStream, reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
14226 break;
14227 }
14228 #endif
14229 #ifdef VK_KHR_display_swapchain
14230 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
14231 {
14232 unmarshal_VkDisplayPresentInfoKHR(vkStream, reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out));
14233 break;
14234 }
14235 #endif
14236 #ifdef VK_KHR_external_memory_win32
14237 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
14238 {
14239 unmarshal_VkImportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out));
14240 break;
14241 }
14242 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
14243 {
14244 unmarshal_VkExportMemoryWin32HandleInfoKHR(vkStream, reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out));
14245 break;
14246 }
14247 #endif
14248 #ifdef VK_KHR_external_memory_fd
14249 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
14250 {
14251 unmarshal_VkImportMemoryFdInfoKHR(vkStream, reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out));
14252 break;
14253 }
14254 #endif
14255 #ifdef VK_KHR_win32_keyed_mutex
14256 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
14257 {
14258 unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(vkStream, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out));
14259 break;
14260 }
14261 #endif
14262 #ifdef VK_KHR_external_semaphore_win32
14263 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
14264 {
14265 unmarshal_VkExportSemaphoreWin32HandleInfoKHR(vkStream, reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out));
14266 break;
14267 }
14268 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
14269 {
14270 unmarshal_VkD3D12FenceSubmitInfoKHR(vkStream, reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out));
14271 break;
14272 }
14273 #endif
14274 #ifdef VK_KHR_push_descriptor
14275 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
14276 {
14277 unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(vkStream, reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension_out));
14278 break;
14279 }
14280 #endif
14281 #ifdef VK_KHR_incremental_present
14282 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
14283 {
14284 unmarshal_VkPresentRegionsKHR(vkStream, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
14285 break;
14286 }
14287 #endif
14288 #ifdef VK_KHR_shared_presentable_image
14289 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
14290 {
14291 unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(vkStream, reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out));
14292 break;
14293 }
14294 #endif
14295 #ifdef VK_KHR_external_fence_win32
14296 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
14297 {
14298 unmarshal_VkExportFenceWin32HandleInfoKHR(vkStream, reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out));
14299 break;
14300 }
14301 #endif
14302 #ifdef VK_KHR_image_format_list
14303 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
14304 {
14305 unmarshal_VkImageFormatListCreateInfoKHR(vkStream, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
14306 break;
14307 }
14308 #endif
14309 #ifdef VK_KHR_8bit_storage
14310 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
14311 {
14312 unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
14313 break;
14314 }
14315 #endif
14316 #ifdef VK_ANDROID_native_buffer
14317 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
14318 {
14319 unmarshal_VkNativeBufferANDROID(vkStream, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
14320 break;
14321 }
14322 #endif
14323 #ifdef VK_EXT_debug_report
14324 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
14325 {
14326 unmarshal_VkDebugReportCallbackCreateInfoEXT(vkStream, reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out));
14327 break;
14328 }
14329 #endif
14330 #ifdef VK_AMD_rasterization_order
14331 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
14332 {
14333 unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(vkStream, reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension_out));
14334 break;
14335 }
14336 #endif
14337 #ifdef VK_NV_dedicated_allocation
14338 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
14339 {
14340 unmarshal_VkDedicatedAllocationImageCreateInfoNV(vkStream, reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out));
14341 break;
14342 }
14343 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
14344 {
14345 unmarshal_VkDedicatedAllocationBufferCreateInfoNV(vkStream, reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out));
14346 break;
14347 }
14348 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
14349 {
14350 unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(vkStream, reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out));
14351 break;
14352 }
14353 #endif
14354 #ifdef VK_AMD_texture_gather_bias_lod
14355 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
14356 {
14357 unmarshal_VkTextureLODGatherFormatPropertiesAMD(vkStream, reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out));
14358 break;
14359 }
14360 #endif
14361 #ifdef VK_NV_external_memory
14362 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
14363 {
14364 unmarshal_VkExternalMemoryImageCreateInfoNV(vkStream, reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out));
14365 break;
14366 }
14367 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
14368 {
14369 unmarshal_VkExportMemoryAllocateInfoNV(vkStream, reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out));
14370 break;
14371 }
14372 #endif
14373 #ifdef VK_NV_external_memory_win32
14374 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
14375 {
14376 unmarshal_VkImportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out));
14377 break;
14378 }
14379 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
14380 {
14381 unmarshal_VkExportMemoryWin32HandleInfoNV(vkStream, reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out));
14382 break;
14383 }
14384 #endif
14385 #ifdef VK_NV_win32_keyed_mutex
14386 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
14387 {
14388 unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(vkStream, reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out));
14389 break;
14390 }
14391 #endif
14392 #ifdef VK_EXT_validation_flags
14393 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
14394 {
14395 unmarshal_VkValidationFlagsEXT(vkStream, reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out));
14396 break;
14397 }
14398 #endif
14399 #ifdef VK_EXT_conditional_rendering
14400 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
14401 {
14402 unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension_out));
14403 break;
14404 }
14405 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
14406 {
14407 unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(vkStream, reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension_out));
14408 break;
14409 }
14410 #endif
14411 #ifdef VK_NV_clip_space_w_scaling
14412 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
14413 {
14414 unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension_out));
14415 break;
14416 }
14417 #endif
14418 #ifdef VK_EXT_display_control
14419 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
14420 {
14421 unmarshal_VkSwapchainCounterCreateInfoEXT(vkStream, reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out));
14422 break;
14423 }
14424 #endif
14425 #ifdef VK_GOOGLE_display_timing
14426 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
14427 {
14428 unmarshal_VkPresentTimesInfoGOOGLE(vkStream, reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out));
14429 break;
14430 }
14431 #endif
14432 #ifdef VK_NVX_multiview_per_view_attributes
14433 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
14434 {
14435 unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(vkStream, reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension_out));
14436 break;
14437 }
14438 #endif
14439 #ifdef VK_NV_viewport_swizzle
14440 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
14441 {
14442 unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out));
14443 break;
14444 }
14445 #endif
14446 #ifdef VK_EXT_discard_rectangles
14447 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
14448 {
14449 unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension_out));
14450 break;
14451 }
14452 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
14453 {
14454 unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension_out));
14455 break;
14456 }
14457 #endif
14458 #ifdef VK_EXT_conservative_rasterization
14459 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
14460 {
14461 unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension_out));
14462 break;
14463 }
14464 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
14465 {
14466 unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension_out));
14467 break;
14468 }
14469 #endif
14470 #ifdef VK_EXT_debug_utils
14471 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
14472 {
14473 unmarshal_VkDebugUtilsMessengerCreateInfoEXT(vkStream, reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out));
14474 break;
14475 }
14476 #endif
14477 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
14478 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
14479 {
14480 unmarshal_VkAndroidHardwareBufferUsageANDROID(vkStream, reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out));
14481 break;
14482 }
14483 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
14484 {
14485 unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(vkStream, reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension_out));
14486 break;
14487 }
14488 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
14489 {
14490 unmarshal_VkImportAndroidHardwareBufferInfoANDROID(vkStream, reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out));
14491 break;
14492 }
14493 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
14494 {
14495 unmarshal_VkExternalFormatANDROID(vkStream, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
14496 break;
14497 }
14498 #endif
14499 #ifdef VK_EXT_sampler_filter_minmax
14500 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
14501 {
14502 unmarshal_VkSamplerReductionModeCreateInfoEXT(vkStream, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
14503 break;
14504 }
14505 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
14506 {
14507 unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
14508 break;
14509 }
14510 #endif
14511 #ifdef VK_EXT_sample_locations
14512 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
14513 {
14514 unmarshal_VkSampleLocationsInfoEXT(vkStream, reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out));
14515 break;
14516 }
14517 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
14518 {
14519 unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(vkStream, reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out));
14520 break;
14521 }
14522 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
14523 {
14524 unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension_out));
14525 break;
14526 }
14527 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
14528 {
14529 unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension_out));
14530 break;
14531 }
14532 #endif
14533 #ifdef VK_EXT_blend_operation_advanced
14534 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
14535 {
14536 unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension_out));
14537 break;
14538 }
14539 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
14540 {
14541 unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension_out));
14542 break;
14543 }
14544 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
14545 {
14546 unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension_out));
14547 break;
14548 }
14549 #endif
14550 #ifdef VK_NV_fragment_coverage_to_color
14551 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
14552 {
14553 unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out));
14554 break;
14555 }
14556 #endif
14557 #ifdef VK_NV_framebuffer_mixed_samples
14558 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
14559 {
14560 unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension_out));
14561 break;
14562 }
14563 #endif
14564 #ifdef VK_EXT_validation_cache
14565 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
14566 {
14567 unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(vkStream, reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out));
14568 break;
14569 }
14570 #endif
14571 #ifdef VK_EXT_descriptor_indexing
14572 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
14573 {
14574 unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(vkStream, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
14575 break;
14576 }
14577 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
14578 {
14579 unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
14580 break;
14581 }
14582 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
14583 {
14584 unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
14585 break;
14586 }
14587 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
14588 {
14589 unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
14590 break;
14591 }
14592 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
14593 {
14594 unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
14595 break;
14596 }
14597 #endif
14598 #ifdef VK_EXT_global_priority
14599 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
14600 {
14601 unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(vkStream, reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension_out));
14602 break;
14603 }
14604 #endif
14605 #ifdef VK_EXT_external_memory_host
14606 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
14607 {
14608 unmarshal_VkImportMemoryHostPointerInfoEXT(vkStream, reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out));
14609 break;
14610 }
14611 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
14612 {
14613 unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension_out));
14614 break;
14615 }
14616 #endif
14617 #ifdef VK_AMD_shader_core_properties
14618 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
14619 {
14620 unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(vkStream, reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out));
14621 break;
14622 }
14623 #endif
14624 #ifdef VK_EXT_vertex_attribute_divisor
14625 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
14626 {
14627 unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension_out));
14628 break;
14629 }
14630 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
14631 {
14632 unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
14633 break;
14634 }
14635 #endif
14636 #ifdef VK_NV_device_diagnostic_checkpoints
14637 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
14638 {
14639 unmarshal_VkQueueFamilyCheckpointPropertiesNV(vkStream, reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out));
14640 break;
14641 }
14642 #endif
14643 #ifdef VK_GOOGLE_color_buffer
14644 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
14645 {
14646 unmarshal_VkImportColorBufferGOOGLE(vkStream, reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
14647 break;
14648 }
14649 case VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE:
14650 {
14651 unmarshal_VkImportPhysicalAddressGOOGLE(vkStream, reinterpret_cast<VkImportPhysicalAddressGOOGLE*>(structExtension_out));
14652 break;
14653 }
14654 #endif
14655 default:
14656 {
14657 return;
14658 }
14659 }
14660 }
14661
14662
14663 } // namespace goldfish_vk
14664