1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15
16 // Autogenerated module goldfish_vk_reserved_marshaling
17 //
18 // (impl) generated by scripts/genvk.py -registry
19 // ../../../../../hardware/google/gfxstream/codegen/vulkan/vulkan-docs-next/xml/vk.xml
20 // -registryGfxstream xml/vk_gfxstream.xml cereal -o
21 // ../../../../../hardware/google/gfxstream/host/vulkan/cereal
22 //
23 // Please do not modify directly;
24 // re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.sh,
25 // or directly from Python by defining:
26 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
27 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
28 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
29 //
30 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
31 // $CEREAL_OUTPUT_DIR
32 //
33
34 #include "goldfish_vk_reserved_marshaling.h"
35
36 #include <string.h>
37
38 #include "goldfish_vk_extension_structs.h"
39 #include "goldfish_vk_private_defs.h"
40
41 namespace gfxstream {
42 namespace vk {
43
44 void reservedmarshal_extension_struct(VulkanStream* vkStream, VkStructureType rootType,
45 const void* structExtension, uint8_t** ptr);
46
47 void reservedunmarshal_extension_struct(VulkanStream* vkStream, VkStructureType rootType,
48 void* structExtension_out, uint8_t** ptr);
49
50 #ifdef VK_VERSION_1_0
reservedunmarshal_VkExtent2D(VulkanStream * vkStream,VkStructureType rootType,VkExtent2D * forUnmarshaling,uint8_t ** ptr)51 void reservedunmarshal_VkExtent2D(VulkanStream* vkStream, VkStructureType rootType,
52 VkExtent2D* forUnmarshaling, uint8_t** ptr) {
53 memcpy((uint32_t*)&forUnmarshaling->width, *ptr, sizeof(uint32_t));
54 *ptr += sizeof(uint32_t);
55 memcpy((uint32_t*)&forUnmarshaling->height, *ptr, sizeof(uint32_t));
56 *ptr += sizeof(uint32_t);
57 }
58
reservedunmarshal_VkExtent3D(VulkanStream * vkStream,VkStructureType rootType,VkExtent3D * forUnmarshaling,uint8_t ** ptr)59 void reservedunmarshal_VkExtent3D(VulkanStream* vkStream, VkStructureType rootType,
60 VkExtent3D* forUnmarshaling, uint8_t** ptr) {
61 memcpy((uint32_t*)&forUnmarshaling->width, *ptr, sizeof(uint32_t));
62 *ptr += sizeof(uint32_t);
63 memcpy((uint32_t*)&forUnmarshaling->height, *ptr, sizeof(uint32_t));
64 *ptr += sizeof(uint32_t);
65 memcpy((uint32_t*)&forUnmarshaling->depth, *ptr, sizeof(uint32_t));
66 *ptr += sizeof(uint32_t);
67 }
68
reservedunmarshal_VkOffset2D(VulkanStream * vkStream,VkStructureType rootType,VkOffset2D * forUnmarshaling,uint8_t ** ptr)69 void reservedunmarshal_VkOffset2D(VulkanStream* vkStream, VkStructureType rootType,
70 VkOffset2D* forUnmarshaling, uint8_t** ptr) {
71 memcpy((int32_t*)&forUnmarshaling->x, *ptr, sizeof(int32_t));
72 *ptr += sizeof(int32_t);
73 memcpy((int32_t*)&forUnmarshaling->y, *ptr, sizeof(int32_t));
74 *ptr += sizeof(int32_t);
75 }
76
reservedunmarshal_VkOffset3D(VulkanStream * vkStream,VkStructureType rootType,VkOffset3D * forUnmarshaling,uint8_t ** ptr)77 void reservedunmarshal_VkOffset3D(VulkanStream* vkStream, VkStructureType rootType,
78 VkOffset3D* forUnmarshaling, uint8_t** ptr) {
79 memcpy((int32_t*)&forUnmarshaling->x, *ptr, sizeof(int32_t));
80 *ptr += sizeof(int32_t);
81 memcpy((int32_t*)&forUnmarshaling->y, *ptr, sizeof(int32_t));
82 *ptr += sizeof(int32_t);
83 memcpy((int32_t*)&forUnmarshaling->z, *ptr, sizeof(int32_t));
84 *ptr += sizeof(int32_t);
85 }
86
reservedunmarshal_VkRect2D(VulkanStream * vkStream,VkStructureType rootType,VkRect2D * forUnmarshaling,uint8_t ** ptr)87 void reservedunmarshal_VkRect2D(VulkanStream* vkStream, VkStructureType rootType,
88 VkRect2D* forUnmarshaling, uint8_t** ptr) {
89 reservedunmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->offset), ptr);
90 reservedunmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->extent), ptr);
91 }
92
reservedunmarshal_VkBaseInStructure(VulkanStream * vkStream,VkStructureType rootType,VkBaseInStructure * forUnmarshaling,uint8_t ** ptr)93 void reservedunmarshal_VkBaseInStructure(VulkanStream* vkStream, VkStructureType rootType,
94 VkBaseInStructure* forUnmarshaling, uint8_t** ptr) {
95 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
96 *ptr += sizeof(VkStructureType);
97 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
98 rootType = forUnmarshaling->sType;
99 }
100 uint32_t pNext_size;
101 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
102 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
103 *ptr += sizeof(uint32_t);
104 forUnmarshaling->pNext = nullptr;
105 if (pNext_size) {
106 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
107 memcpy((VkBaseInStructure*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
108 *ptr += sizeof(VkStructureType);
109 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
110 vkStream->alloc((void**)&forUnmarshaling->pNext,
111 goldfish_vk_extension_struct_size_with_stream_features(
112 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
113 *(VkStructureType*)forUnmarshaling->pNext = extType;
114 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
115 ptr);
116 }
117 }
118
reservedunmarshal_VkBaseOutStructure(VulkanStream * vkStream,VkStructureType rootType,VkBaseOutStructure * forUnmarshaling,uint8_t ** ptr)119 void reservedunmarshal_VkBaseOutStructure(VulkanStream* vkStream, VkStructureType rootType,
120 VkBaseOutStructure* forUnmarshaling, uint8_t** ptr) {
121 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
122 *ptr += sizeof(VkStructureType);
123 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
124 rootType = forUnmarshaling->sType;
125 }
126 uint32_t pNext_size;
127 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
128 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
129 *ptr += sizeof(uint32_t);
130 forUnmarshaling->pNext = nullptr;
131 if (pNext_size) {
132 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
133 memcpy((VkBaseOutStructure*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
134 *ptr += sizeof(VkStructureType);
135 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
136 vkStream->alloc((void**)&forUnmarshaling->pNext,
137 goldfish_vk_extension_struct_size_with_stream_features(
138 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
139 *(VkStructureType*)forUnmarshaling->pNext = extType;
140 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
141 ptr);
142 }
143 }
144
reservedunmarshal_VkBufferMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,VkBufferMemoryBarrier * forUnmarshaling,uint8_t ** ptr)145 void reservedunmarshal_VkBufferMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
146 VkBufferMemoryBarrier* forUnmarshaling,
147 uint8_t** ptr) {
148 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
149 *ptr += sizeof(VkStructureType);
150 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
151 rootType = forUnmarshaling->sType;
152 }
153 uint32_t pNext_size;
154 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
155 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
156 *ptr += sizeof(uint32_t);
157 forUnmarshaling->pNext = nullptr;
158 if (pNext_size) {
159 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
160 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
161 *ptr += sizeof(VkStructureType);
162 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
163 vkStream->alloc((void**)&forUnmarshaling->pNext,
164 goldfish_vk_extension_struct_size_with_stream_features(
165 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
166 *(VkStructureType*)forUnmarshaling->pNext = extType;
167 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
168 ptr);
169 }
170 memcpy((VkAccessFlags*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags));
171 *ptr += sizeof(VkAccessFlags);
172 memcpy((VkAccessFlags*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags));
173 *ptr += sizeof(VkAccessFlags);
174 memcpy((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, *ptr, sizeof(uint32_t));
175 *ptr += sizeof(uint32_t);
176 memcpy((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, *ptr, sizeof(uint32_t));
177 *ptr += sizeof(uint32_t);
178 uint64_t cgen_var_0;
179 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
180 *ptr += 1 * 8;
181 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
182 memcpy((VkDeviceSize*)&forUnmarshaling->offset, *ptr, sizeof(VkDeviceSize));
183 *ptr += sizeof(VkDeviceSize);
184 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
185 *ptr += sizeof(VkDeviceSize);
186 }
187
reservedunmarshal_VkDispatchIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,VkDispatchIndirectCommand * forUnmarshaling,uint8_t ** ptr)188 void reservedunmarshal_VkDispatchIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
189 VkDispatchIndirectCommand* forUnmarshaling,
190 uint8_t** ptr) {
191 memcpy((uint32_t*)&forUnmarshaling->x, *ptr, sizeof(uint32_t));
192 *ptr += sizeof(uint32_t);
193 memcpy((uint32_t*)&forUnmarshaling->y, *ptr, sizeof(uint32_t));
194 *ptr += sizeof(uint32_t);
195 memcpy((uint32_t*)&forUnmarshaling->z, *ptr, sizeof(uint32_t));
196 *ptr += sizeof(uint32_t);
197 }
198
reservedunmarshal_VkDrawIndexedIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,VkDrawIndexedIndirectCommand * forUnmarshaling,uint8_t ** ptr)199 void reservedunmarshal_VkDrawIndexedIndirectCommand(VulkanStream* vkStream,
200 VkStructureType rootType,
201 VkDrawIndexedIndirectCommand* forUnmarshaling,
202 uint8_t** ptr) {
203 memcpy((uint32_t*)&forUnmarshaling->indexCount, *ptr, sizeof(uint32_t));
204 *ptr += sizeof(uint32_t);
205 memcpy((uint32_t*)&forUnmarshaling->instanceCount, *ptr, sizeof(uint32_t));
206 *ptr += sizeof(uint32_t);
207 memcpy((uint32_t*)&forUnmarshaling->firstIndex, *ptr, sizeof(uint32_t));
208 *ptr += sizeof(uint32_t);
209 memcpy((int32_t*)&forUnmarshaling->vertexOffset, *ptr, sizeof(int32_t));
210 *ptr += sizeof(int32_t);
211 memcpy((uint32_t*)&forUnmarshaling->firstInstance, *ptr, sizeof(uint32_t));
212 *ptr += sizeof(uint32_t);
213 }
214
reservedunmarshal_VkDrawIndirectCommand(VulkanStream * vkStream,VkStructureType rootType,VkDrawIndirectCommand * forUnmarshaling,uint8_t ** ptr)215 void reservedunmarshal_VkDrawIndirectCommand(VulkanStream* vkStream, VkStructureType rootType,
216 VkDrawIndirectCommand* forUnmarshaling,
217 uint8_t** ptr) {
218 memcpy((uint32_t*)&forUnmarshaling->vertexCount, *ptr, sizeof(uint32_t));
219 *ptr += sizeof(uint32_t);
220 memcpy((uint32_t*)&forUnmarshaling->instanceCount, *ptr, sizeof(uint32_t));
221 *ptr += sizeof(uint32_t);
222 memcpy((uint32_t*)&forUnmarshaling->firstVertex, *ptr, sizeof(uint32_t));
223 *ptr += sizeof(uint32_t);
224 memcpy((uint32_t*)&forUnmarshaling->firstInstance, *ptr, sizeof(uint32_t));
225 *ptr += sizeof(uint32_t);
226 }
227
reservedunmarshal_VkImageSubresourceRange(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresourceRange * forUnmarshaling,uint8_t ** ptr)228 void reservedunmarshal_VkImageSubresourceRange(VulkanStream* vkStream, VkStructureType rootType,
229 VkImageSubresourceRange* forUnmarshaling,
230 uint8_t** ptr) {
231 memcpy((VkImageAspectFlags*)&forUnmarshaling->aspectMask, *ptr, sizeof(VkImageAspectFlags));
232 *ptr += sizeof(VkImageAspectFlags);
233 memcpy((uint32_t*)&forUnmarshaling->baseMipLevel, *ptr, sizeof(uint32_t));
234 *ptr += sizeof(uint32_t);
235 memcpy((uint32_t*)&forUnmarshaling->levelCount, *ptr, sizeof(uint32_t));
236 *ptr += sizeof(uint32_t);
237 memcpy((uint32_t*)&forUnmarshaling->baseArrayLayer, *ptr, sizeof(uint32_t));
238 *ptr += sizeof(uint32_t);
239 memcpy((uint32_t*)&forUnmarshaling->layerCount, *ptr, sizeof(uint32_t));
240 *ptr += sizeof(uint32_t);
241 }
242
reservedunmarshal_VkImageMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,VkImageMemoryBarrier * forUnmarshaling,uint8_t ** ptr)243 void reservedunmarshal_VkImageMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
244 VkImageMemoryBarrier* forUnmarshaling, uint8_t** ptr) {
245 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
246 *ptr += sizeof(VkStructureType);
247 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
248 rootType = forUnmarshaling->sType;
249 }
250 uint32_t pNext_size;
251 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
252 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
253 *ptr += sizeof(uint32_t);
254 forUnmarshaling->pNext = nullptr;
255 if (pNext_size) {
256 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
257 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
258 *ptr += sizeof(VkStructureType);
259 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
260 vkStream->alloc((void**)&forUnmarshaling->pNext,
261 goldfish_vk_extension_struct_size_with_stream_features(
262 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
263 *(VkStructureType*)forUnmarshaling->pNext = extType;
264 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
265 ptr);
266 }
267 memcpy((VkAccessFlags*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags));
268 *ptr += sizeof(VkAccessFlags);
269 memcpy((VkAccessFlags*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags));
270 *ptr += sizeof(VkAccessFlags);
271 memcpy((VkImageLayout*)&forUnmarshaling->oldLayout, *ptr, sizeof(VkImageLayout));
272 *ptr += sizeof(VkImageLayout);
273 memcpy((VkImageLayout*)&forUnmarshaling->newLayout, *ptr, sizeof(VkImageLayout));
274 *ptr += sizeof(VkImageLayout);
275 memcpy((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, *ptr, sizeof(uint32_t));
276 *ptr += sizeof(uint32_t);
277 memcpy((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, *ptr, sizeof(uint32_t));
278 *ptr += sizeof(uint32_t);
279 uint64_t cgen_var_0;
280 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
281 *ptr += 1 * 8;
282 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
283 reservedunmarshal_VkImageSubresourceRange(
284 vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange), ptr);
285 }
286
reservedunmarshal_VkMemoryBarrier(VulkanStream * vkStream,VkStructureType rootType,VkMemoryBarrier * forUnmarshaling,uint8_t ** ptr)287 void reservedunmarshal_VkMemoryBarrier(VulkanStream* vkStream, VkStructureType rootType,
288 VkMemoryBarrier* forUnmarshaling, uint8_t** ptr) {
289 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
290 *ptr += sizeof(VkStructureType);
291 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
292 rootType = forUnmarshaling->sType;
293 }
294 uint32_t pNext_size;
295 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
296 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
297 *ptr += sizeof(uint32_t);
298 forUnmarshaling->pNext = nullptr;
299 if (pNext_size) {
300 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
301 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
302 *ptr += sizeof(VkStructureType);
303 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
304 vkStream->alloc((void**)&forUnmarshaling->pNext,
305 goldfish_vk_extension_struct_size_with_stream_features(
306 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
307 *(VkStructureType*)forUnmarshaling->pNext = extType;
308 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
309 ptr);
310 }
311 memcpy((VkAccessFlags*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags));
312 *ptr += sizeof(VkAccessFlags);
313 memcpy((VkAccessFlags*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags));
314 *ptr += sizeof(VkAccessFlags);
315 }
316
reservedunmarshal_VkPipelineCacheHeaderVersionOne(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCacheHeaderVersionOne * forUnmarshaling,uint8_t ** ptr)317 void reservedunmarshal_VkPipelineCacheHeaderVersionOne(
318 VulkanStream* vkStream, VkStructureType rootType,
319 VkPipelineCacheHeaderVersionOne* forUnmarshaling, uint8_t** ptr) {
320 memcpy((uint32_t*)&forUnmarshaling->headerSize, *ptr, sizeof(uint32_t));
321 *ptr += sizeof(uint32_t);
322 memcpy((VkPipelineCacheHeaderVersion*)&forUnmarshaling->headerVersion, *ptr,
323 sizeof(VkPipelineCacheHeaderVersion));
324 *ptr += sizeof(VkPipelineCacheHeaderVersion);
325 memcpy((uint32_t*)&forUnmarshaling->vendorID, *ptr, sizeof(uint32_t));
326 *ptr += sizeof(uint32_t);
327 memcpy((uint32_t*)&forUnmarshaling->deviceID, *ptr, sizeof(uint32_t));
328 *ptr += sizeof(uint32_t);
329 memcpy((uint8_t*)forUnmarshaling->pipelineCacheUUID, *ptr, VK_UUID_SIZE * sizeof(uint8_t));
330 *ptr += VK_UUID_SIZE * sizeof(uint8_t);
331 }
332
reservedunmarshal_VkAllocationCallbacks(VulkanStream * vkStream,VkStructureType rootType,VkAllocationCallbacks * forUnmarshaling,uint8_t ** ptr)333 void reservedunmarshal_VkAllocationCallbacks(VulkanStream* vkStream, VkStructureType rootType,
334 VkAllocationCallbacks* forUnmarshaling,
335 uint8_t** ptr) {
336 // WARNING PTR CHECK
337 memcpy((void**)&forUnmarshaling->pUserData, (*ptr), 8);
338 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pUserData);
339 *ptr += 8;
340 if (forUnmarshaling->pUserData) {
341 vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
342 memcpy((void*)forUnmarshaling->pUserData, *ptr, sizeof(uint8_t));
343 *ptr += sizeof(uint8_t);
344 }
345 memcpy((PFN_vkAllocationFunction*)&forUnmarshaling->pfnAllocation, (*ptr), 8);
346 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnAllocation);
347 *ptr += 8;
348 memcpy((PFN_vkReallocationFunction*)&forUnmarshaling->pfnReallocation, (*ptr), 8);
349 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnReallocation);
350 *ptr += 8;
351 memcpy((PFN_vkFreeFunction*)&forUnmarshaling->pfnFree, (*ptr), 8);
352 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnFree);
353 *ptr += 8;
354 memcpy((PFN_vkInternalAllocationNotification*)&forUnmarshaling->pfnInternalAllocation, (*ptr),
355 8);
356 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnInternalAllocation);
357 *ptr += 8;
358 memcpy((PFN_vkInternalFreeNotification*)&forUnmarshaling->pfnInternalFree, (*ptr), 8);
359 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnInternalFree);
360 *ptr += 8;
361 }
362
reservedunmarshal_VkApplicationInfo(VulkanStream * vkStream,VkStructureType rootType,VkApplicationInfo * forUnmarshaling,uint8_t ** ptr)363 void reservedunmarshal_VkApplicationInfo(VulkanStream* vkStream, VkStructureType rootType,
364 VkApplicationInfo* forUnmarshaling, uint8_t** ptr) {
365 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
366 *ptr += sizeof(VkStructureType);
367 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
368 rootType = forUnmarshaling->sType;
369 }
370 uint32_t pNext_size;
371 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
372 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
373 *ptr += sizeof(uint32_t);
374 forUnmarshaling->pNext = nullptr;
375 if (pNext_size) {
376 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
377 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
378 *ptr += sizeof(VkStructureType);
379 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
380 vkStream->alloc((void**)&forUnmarshaling->pNext,
381 goldfish_vk_extension_struct_size_with_stream_features(
382 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
383 *(VkStructureType*)forUnmarshaling->pNext = extType;
384 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
385 ptr);
386 }
387 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
388 // WARNING PTR CHECK
389 memcpy((char**)&forUnmarshaling->pApplicationName, (*ptr), 8);
390 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pApplicationName);
391 *ptr += 8;
392 if (forUnmarshaling->pApplicationName) {
393 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pApplicationName,
394 ptr);
395 }
396 } else {
397 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pApplicationName, ptr);
398 }
399 memcpy((uint32_t*)&forUnmarshaling->applicationVersion, *ptr, sizeof(uint32_t));
400 *ptr += sizeof(uint32_t);
401 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
402 // WARNING PTR CHECK
403 memcpy((char**)&forUnmarshaling->pEngineName, (*ptr), 8);
404 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pEngineName);
405 *ptr += 8;
406 if (forUnmarshaling->pEngineName) {
407 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pEngineName, ptr);
408 }
409 } else {
410 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pEngineName, ptr);
411 }
412 memcpy((uint32_t*)&forUnmarshaling->engineVersion, *ptr, sizeof(uint32_t));
413 *ptr += sizeof(uint32_t);
414 memcpy((uint32_t*)&forUnmarshaling->apiVersion, *ptr, sizeof(uint32_t));
415 *ptr += sizeof(uint32_t);
416 }
417
reservedunmarshal_VkFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkFormatProperties * forUnmarshaling,uint8_t ** ptr)418 void reservedunmarshal_VkFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
419 VkFormatProperties* forUnmarshaling, uint8_t** ptr) {
420 memcpy((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures, *ptr,
421 sizeof(VkFormatFeatureFlags));
422 *ptr += sizeof(VkFormatFeatureFlags);
423 memcpy((VkFormatFeatureFlags*)&forUnmarshaling->optimalTilingFeatures, *ptr,
424 sizeof(VkFormatFeatureFlags));
425 *ptr += sizeof(VkFormatFeatureFlags);
426 memcpy((VkFormatFeatureFlags*)&forUnmarshaling->bufferFeatures, *ptr,
427 sizeof(VkFormatFeatureFlags));
428 *ptr += sizeof(VkFormatFeatureFlags);
429 }
430
reservedunmarshal_VkImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkImageFormatProperties * forUnmarshaling,uint8_t ** ptr)431 void reservedunmarshal_VkImageFormatProperties(VulkanStream* vkStream, VkStructureType rootType,
432 VkImageFormatProperties* forUnmarshaling,
433 uint8_t** ptr) {
434 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->maxExtent),
435 ptr);
436 memcpy((uint32_t*)&forUnmarshaling->maxMipLevels, *ptr, sizeof(uint32_t));
437 *ptr += sizeof(uint32_t);
438 memcpy((uint32_t*)&forUnmarshaling->maxArrayLayers, *ptr, sizeof(uint32_t));
439 *ptr += sizeof(uint32_t);
440 memcpy((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, *ptr, sizeof(VkSampleCountFlags));
441 *ptr += sizeof(VkSampleCountFlags);
442 memcpy((VkDeviceSize*)&forUnmarshaling->maxResourceSize, *ptr, sizeof(VkDeviceSize));
443 *ptr += sizeof(VkDeviceSize);
444 }
445
reservedunmarshal_VkInstanceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkInstanceCreateInfo * forUnmarshaling,uint8_t ** ptr)446 void reservedunmarshal_VkInstanceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
447 VkInstanceCreateInfo* forUnmarshaling, uint8_t** ptr) {
448 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
449 *ptr += sizeof(VkStructureType);
450 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
451 rootType = forUnmarshaling->sType;
452 }
453 uint32_t pNext_size;
454 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
455 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
456 *ptr += sizeof(uint32_t);
457 forUnmarshaling->pNext = nullptr;
458 if (pNext_size) {
459 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
460 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
461 *ptr += sizeof(VkStructureType);
462 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
463 vkStream->alloc((void**)&forUnmarshaling->pNext,
464 goldfish_vk_extension_struct_size_with_stream_features(
465 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
466 *(VkStructureType*)forUnmarshaling->pNext = extType;
467 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
468 ptr);
469 }
470 memcpy((VkInstanceCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkInstanceCreateFlags));
471 *ptr += sizeof(VkInstanceCreateFlags);
472 // WARNING PTR CHECK
473 memcpy((VkApplicationInfo**)&forUnmarshaling->pApplicationInfo, (*ptr), 8);
474 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pApplicationInfo);
475 *ptr += 8;
476 if (forUnmarshaling->pApplicationInfo) {
477 vkStream->alloc((void**)&forUnmarshaling->pApplicationInfo,
478 sizeof(const VkApplicationInfo));
479 reservedunmarshal_VkApplicationInfo(
480 vkStream, rootType, (VkApplicationInfo*)(forUnmarshaling->pApplicationInfo), ptr);
481 }
482 memcpy((uint32_t*)&forUnmarshaling->enabledLayerCount, *ptr, sizeof(uint32_t));
483 *ptr += sizeof(uint32_t);
484 vkStream->loadStringArrayInPlaceWithStreamPtr((char***)&forUnmarshaling->ppEnabledLayerNames,
485 ptr);
486 memcpy((uint32_t*)&forUnmarshaling->enabledExtensionCount, *ptr, sizeof(uint32_t));
487 *ptr += sizeof(uint32_t);
488 vkStream->loadStringArrayInPlaceWithStreamPtr(
489 (char***)&forUnmarshaling->ppEnabledExtensionNames, ptr);
490 }
491
reservedunmarshal_VkMemoryHeap(VulkanStream * vkStream,VkStructureType rootType,VkMemoryHeap * forUnmarshaling,uint8_t ** ptr)492 void reservedunmarshal_VkMemoryHeap(VulkanStream* vkStream, VkStructureType rootType,
493 VkMemoryHeap* forUnmarshaling, uint8_t** ptr) {
494 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
495 *ptr += sizeof(VkDeviceSize);
496 memcpy((VkMemoryHeapFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkMemoryHeapFlags));
497 *ptr += sizeof(VkMemoryHeapFlags);
498 }
499
reservedunmarshal_VkMemoryType(VulkanStream * vkStream,VkStructureType rootType,VkMemoryType * forUnmarshaling,uint8_t ** ptr)500 void reservedunmarshal_VkMemoryType(VulkanStream* vkStream, VkStructureType rootType,
501 VkMemoryType* forUnmarshaling, uint8_t** ptr) {
502 memcpy((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags, *ptr,
503 sizeof(VkMemoryPropertyFlags));
504 *ptr += sizeof(VkMemoryPropertyFlags);
505 memcpy((uint32_t*)&forUnmarshaling->heapIndex, *ptr, sizeof(uint32_t));
506 *ptr += sizeof(uint32_t);
507 }
508
reservedunmarshal_VkPhysicalDeviceFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFeatures * forUnmarshaling,uint8_t ** ptr)509 void reservedunmarshal_VkPhysicalDeviceFeatures(VulkanStream* vkStream, VkStructureType rootType,
510 VkPhysicalDeviceFeatures* forUnmarshaling,
511 uint8_t** ptr) {
512 memcpy((VkBool32*)&forUnmarshaling->robustBufferAccess, *ptr, sizeof(VkBool32));
513 *ptr += sizeof(VkBool32);
514 memcpy((VkBool32*)&forUnmarshaling->fullDrawIndexUint32, *ptr, sizeof(VkBool32));
515 *ptr += sizeof(VkBool32);
516 memcpy((VkBool32*)&forUnmarshaling->imageCubeArray, *ptr, sizeof(VkBool32));
517 *ptr += sizeof(VkBool32);
518 memcpy((VkBool32*)&forUnmarshaling->independentBlend, *ptr, sizeof(VkBool32));
519 *ptr += sizeof(VkBool32);
520 memcpy((VkBool32*)&forUnmarshaling->geometryShader, *ptr, sizeof(VkBool32));
521 *ptr += sizeof(VkBool32);
522 memcpy((VkBool32*)&forUnmarshaling->tessellationShader, *ptr, sizeof(VkBool32));
523 *ptr += sizeof(VkBool32);
524 memcpy((VkBool32*)&forUnmarshaling->sampleRateShading, *ptr, sizeof(VkBool32));
525 *ptr += sizeof(VkBool32);
526 memcpy((VkBool32*)&forUnmarshaling->dualSrcBlend, *ptr, sizeof(VkBool32));
527 *ptr += sizeof(VkBool32);
528 memcpy((VkBool32*)&forUnmarshaling->logicOp, *ptr, sizeof(VkBool32));
529 *ptr += sizeof(VkBool32);
530 memcpy((VkBool32*)&forUnmarshaling->multiDrawIndirect, *ptr, sizeof(VkBool32));
531 *ptr += sizeof(VkBool32);
532 memcpy((VkBool32*)&forUnmarshaling->drawIndirectFirstInstance, *ptr, sizeof(VkBool32));
533 *ptr += sizeof(VkBool32);
534 memcpy((VkBool32*)&forUnmarshaling->depthClamp, *ptr, sizeof(VkBool32));
535 *ptr += sizeof(VkBool32);
536 memcpy((VkBool32*)&forUnmarshaling->depthBiasClamp, *ptr, sizeof(VkBool32));
537 *ptr += sizeof(VkBool32);
538 memcpy((VkBool32*)&forUnmarshaling->fillModeNonSolid, *ptr, sizeof(VkBool32));
539 *ptr += sizeof(VkBool32);
540 memcpy((VkBool32*)&forUnmarshaling->depthBounds, *ptr, sizeof(VkBool32));
541 *ptr += sizeof(VkBool32);
542 memcpy((VkBool32*)&forUnmarshaling->wideLines, *ptr, sizeof(VkBool32));
543 *ptr += sizeof(VkBool32);
544 memcpy((VkBool32*)&forUnmarshaling->largePoints, *ptr, sizeof(VkBool32));
545 *ptr += sizeof(VkBool32);
546 memcpy((VkBool32*)&forUnmarshaling->alphaToOne, *ptr, sizeof(VkBool32));
547 *ptr += sizeof(VkBool32);
548 memcpy((VkBool32*)&forUnmarshaling->multiViewport, *ptr, sizeof(VkBool32));
549 *ptr += sizeof(VkBool32);
550 memcpy((VkBool32*)&forUnmarshaling->samplerAnisotropy, *ptr, sizeof(VkBool32));
551 *ptr += sizeof(VkBool32);
552 memcpy((VkBool32*)&forUnmarshaling->textureCompressionETC2, *ptr, sizeof(VkBool32));
553 *ptr += sizeof(VkBool32);
554 memcpy((VkBool32*)&forUnmarshaling->textureCompressionASTC_LDR, *ptr, sizeof(VkBool32));
555 *ptr += sizeof(VkBool32);
556 memcpy((VkBool32*)&forUnmarshaling->textureCompressionBC, *ptr, sizeof(VkBool32));
557 *ptr += sizeof(VkBool32);
558 memcpy((VkBool32*)&forUnmarshaling->occlusionQueryPrecise, *ptr, sizeof(VkBool32));
559 *ptr += sizeof(VkBool32);
560 memcpy((VkBool32*)&forUnmarshaling->pipelineStatisticsQuery, *ptr, sizeof(VkBool32));
561 *ptr += sizeof(VkBool32);
562 memcpy((VkBool32*)&forUnmarshaling->vertexPipelineStoresAndAtomics, *ptr, sizeof(VkBool32));
563 *ptr += sizeof(VkBool32);
564 memcpy((VkBool32*)&forUnmarshaling->fragmentStoresAndAtomics, *ptr, sizeof(VkBool32));
565 *ptr += sizeof(VkBool32);
566 memcpy((VkBool32*)&forUnmarshaling->shaderTessellationAndGeometryPointSize, *ptr,
567 sizeof(VkBool32));
568 *ptr += sizeof(VkBool32);
569 memcpy((VkBool32*)&forUnmarshaling->shaderImageGatherExtended, *ptr, sizeof(VkBool32));
570 *ptr += sizeof(VkBool32);
571 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageExtendedFormats, *ptr, sizeof(VkBool32));
572 *ptr += sizeof(VkBool32);
573 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageMultisample, *ptr, sizeof(VkBool32));
574 *ptr += sizeof(VkBool32);
575 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageReadWithoutFormat, *ptr,
576 sizeof(VkBool32));
577 *ptr += sizeof(VkBool32);
578 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageWriteWithoutFormat, *ptr,
579 sizeof(VkBool32));
580 *ptr += sizeof(VkBool32);
581 memcpy((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayDynamicIndexing, *ptr,
582 sizeof(VkBool32));
583 *ptr += sizeof(VkBool32);
584 memcpy((VkBool32*)&forUnmarshaling->shaderSampledImageArrayDynamicIndexing, *ptr,
585 sizeof(VkBool32));
586 *ptr += sizeof(VkBool32);
587 memcpy((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayDynamicIndexing, *ptr,
588 sizeof(VkBool32));
589 *ptr += sizeof(VkBool32);
590 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageArrayDynamicIndexing, *ptr,
591 sizeof(VkBool32));
592 *ptr += sizeof(VkBool32);
593 memcpy((VkBool32*)&forUnmarshaling->shaderClipDistance, *ptr, sizeof(VkBool32));
594 *ptr += sizeof(VkBool32);
595 memcpy((VkBool32*)&forUnmarshaling->shaderCullDistance, *ptr, sizeof(VkBool32));
596 *ptr += sizeof(VkBool32);
597 memcpy((VkBool32*)&forUnmarshaling->shaderFloat64, *ptr, sizeof(VkBool32));
598 *ptr += sizeof(VkBool32);
599 memcpy((VkBool32*)&forUnmarshaling->shaderInt64, *ptr, sizeof(VkBool32));
600 *ptr += sizeof(VkBool32);
601 memcpy((VkBool32*)&forUnmarshaling->shaderInt16, *ptr, sizeof(VkBool32));
602 *ptr += sizeof(VkBool32);
603 memcpy((VkBool32*)&forUnmarshaling->shaderResourceResidency, *ptr, sizeof(VkBool32));
604 *ptr += sizeof(VkBool32);
605 memcpy((VkBool32*)&forUnmarshaling->shaderResourceMinLod, *ptr, sizeof(VkBool32));
606 *ptr += sizeof(VkBool32);
607 memcpy((VkBool32*)&forUnmarshaling->sparseBinding, *ptr, sizeof(VkBool32));
608 *ptr += sizeof(VkBool32);
609 memcpy((VkBool32*)&forUnmarshaling->sparseResidencyBuffer, *ptr, sizeof(VkBool32));
610 *ptr += sizeof(VkBool32);
611 memcpy((VkBool32*)&forUnmarshaling->sparseResidencyImage2D, *ptr, sizeof(VkBool32));
612 *ptr += sizeof(VkBool32);
613 memcpy((VkBool32*)&forUnmarshaling->sparseResidencyImage3D, *ptr, sizeof(VkBool32));
614 *ptr += sizeof(VkBool32);
615 memcpy((VkBool32*)&forUnmarshaling->sparseResidency2Samples, *ptr, sizeof(VkBool32));
616 *ptr += sizeof(VkBool32);
617 memcpy((VkBool32*)&forUnmarshaling->sparseResidency4Samples, *ptr, sizeof(VkBool32));
618 *ptr += sizeof(VkBool32);
619 memcpy((VkBool32*)&forUnmarshaling->sparseResidency8Samples, *ptr, sizeof(VkBool32));
620 *ptr += sizeof(VkBool32);
621 memcpy((VkBool32*)&forUnmarshaling->sparseResidency16Samples, *ptr, sizeof(VkBool32));
622 *ptr += sizeof(VkBool32);
623 memcpy((VkBool32*)&forUnmarshaling->sparseResidencyAliased, *ptr, sizeof(VkBool32));
624 *ptr += sizeof(VkBool32);
625 memcpy((VkBool32*)&forUnmarshaling->variableMultisampleRate, *ptr, sizeof(VkBool32));
626 *ptr += sizeof(VkBool32);
627 memcpy((VkBool32*)&forUnmarshaling->inheritedQueries, *ptr, sizeof(VkBool32));
628 *ptr += sizeof(VkBool32);
629 }
630
reservedunmarshal_VkPhysicalDeviceLimits(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLimits * forUnmarshaling,uint8_t ** ptr)631 void reservedunmarshal_VkPhysicalDeviceLimits(VulkanStream* vkStream, VkStructureType rootType,
632 VkPhysicalDeviceLimits* forUnmarshaling,
633 uint8_t** ptr) {
634 memcpy((uint32_t*)&forUnmarshaling->maxImageDimension1D, *ptr, sizeof(uint32_t));
635 *ptr += sizeof(uint32_t);
636 memcpy((uint32_t*)&forUnmarshaling->maxImageDimension2D, *ptr, sizeof(uint32_t));
637 *ptr += sizeof(uint32_t);
638 memcpy((uint32_t*)&forUnmarshaling->maxImageDimension3D, *ptr, sizeof(uint32_t));
639 *ptr += sizeof(uint32_t);
640 memcpy((uint32_t*)&forUnmarshaling->maxImageDimensionCube, *ptr, sizeof(uint32_t));
641 *ptr += sizeof(uint32_t);
642 memcpy((uint32_t*)&forUnmarshaling->maxImageArrayLayers, *ptr, sizeof(uint32_t));
643 *ptr += sizeof(uint32_t);
644 memcpy((uint32_t*)&forUnmarshaling->maxTexelBufferElements, *ptr, sizeof(uint32_t));
645 *ptr += sizeof(uint32_t);
646 memcpy((uint32_t*)&forUnmarshaling->maxUniformBufferRange, *ptr, sizeof(uint32_t));
647 *ptr += sizeof(uint32_t);
648 memcpy((uint32_t*)&forUnmarshaling->maxStorageBufferRange, *ptr, sizeof(uint32_t));
649 *ptr += sizeof(uint32_t);
650 memcpy((uint32_t*)&forUnmarshaling->maxPushConstantsSize, *ptr, sizeof(uint32_t));
651 *ptr += sizeof(uint32_t);
652 memcpy((uint32_t*)&forUnmarshaling->maxMemoryAllocationCount, *ptr, sizeof(uint32_t));
653 *ptr += sizeof(uint32_t);
654 memcpy((uint32_t*)&forUnmarshaling->maxSamplerAllocationCount, *ptr, sizeof(uint32_t));
655 *ptr += sizeof(uint32_t);
656 memcpy((VkDeviceSize*)&forUnmarshaling->bufferImageGranularity, *ptr, sizeof(VkDeviceSize));
657 *ptr += sizeof(VkDeviceSize);
658 memcpy((VkDeviceSize*)&forUnmarshaling->sparseAddressSpaceSize, *ptr, sizeof(VkDeviceSize));
659 *ptr += sizeof(VkDeviceSize);
660 memcpy((uint32_t*)&forUnmarshaling->maxBoundDescriptorSets, *ptr, sizeof(uint32_t));
661 *ptr += sizeof(uint32_t);
662 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSamplers, *ptr, sizeof(uint32_t));
663 *ptr += sizeof(uint32_t);
664 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUniformBuffers, *ptr,
665 sizeof(uint32_t));
666 *ptr += sizeof(uint32_t);
667 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageBuffers, *ptr,
668 sizeof(uint32_t));
669 *ptr += sizeof(uint32_t);
670 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorSampledImages, *ptr, sizeof(uint32_t));
671 *ptr += sizeof(uint32_t);
672 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorStorageImages, *ptr, sizeof(uint32_t));
673 *ptr += sizeof(uint32_t);
674 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInputAttachments, *ptr,
675 sizeof(uint32_t));
676 *ptr += sizeof(uint32_t);
677 memcpy((uint32_t*)&forUnmarshaling->maxPerStageResources, *ptr, sizeof(uint32_t));
678 *ptr += sizeof(uint32_t);
679 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetSamplers, *ptr, sizeof(uint32_t));
680 *ptr += sizeof(uint32_t);
681 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffers, *ptr, sizeof(uint32_t));
682 *ptr += sizeof(uint32_t);
683 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUniformBuffersDynamic, *ptr,
684 sizeof(uint32_t));
685 *ptr += sizeof(uint32_t);
686 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffers, *ptr, sizeof(uint32_t));
687 *ptr += sizeof(uint32_t);
688 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageBuffersDynamic, *ptr,
689 sizeof(uint32_t));
690 *ptr += sizeof(uint32_t);
691 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetSampledImages, *ptr, sizeof(uint32_t));
692 *ptr += sizeof(uint32_t);
693 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetStorageImages, *ptr, sizeof(uint32_t));
694 *ptr += sizeof(uint32_t);
695 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetInputAttachments, *ptr, sizeof(uint32_t));
696 *ptr += sizeof(uint32_t);
697 memcpy((uint32_t*)&forUnmarshaling->maxVertexInputAttributes, *ptr, sizeof(uint32_t));
698 *ptr += sizeof(uint32_t);
699 memcpy((uint32_t*)&forUnmarshaling->maxVertexInputBindings, *ptr, sizeof(uint32_t));
700 *ptr += sizeof(uint32_t);
701 memcpy((uint32_t*)&forUnmarshaling->maxVertexInputAttributeOffset, *ptr, sizeof(uint32_t));
702 *ptr += sizeof(uint32_t);
703 memcpy((uint32_t*)&forUnmarshaling->maxVertexInputBindingStride, *ptr, sizeof(uint32_t));
704 *ptr += sizeof(uint32_t);
705 memcpy((uint32_t*)&forUnmarshaling->maxVertexOutputComponents, *ptr, sizeof(uint32_t));
706 *ptr += sizeof(uint32_t);
707 memcpy((uint32_t*)&forUnmarshaling->maxTessellationGenerationLevel, *ptr, sizeof(uint32_t));
708 *ptr += sizeof(uint32_t);
709 memcpy((uint32_t*)&forUnmarshaling->maxTessellationPatchSize, *ptr, sizeof(uint32_t));
710 *ptr += sizeof(uint32_t);
711 memcpy((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexInputComponents, *ptr,
712 sizeof(uint32_t));
713 *ptr += sizeof(uint32_t);
714 memcpy((uint32_t*)&forUnmarshaling->maxTessellationControlPerVertexOutputComponents, *ptr,
715 sizeof(uint32_t));
716 *ptr += sizeof(uint32_t);
717 memcpy((uint32_t*)&forUnmarshaling->maxTessellationControlPerPatchOutputComponents, *ptr,
718 sizeof(uint32_t));
719 *ptr += sizeof(uint32_t);
720 memcpy((uint32_t*)&forUnmarshaling->maxTessellationControlTotalOutputComponents, *ptr,
721 sizeof(uint32_t));
722 *ptr += sizeof(uint32_t);
723 memcpy((uint32_t*)&forUnmarshaling->maxTessellationEvaluationInputComponents, *ptr,
724 sizeof(uint32_t));
725 *ptr += sizeof(uint32_t);
726 memcpy((uint32_t*)&forUnmarshaling->maxTessellationEvaluationOutputComponents, *ptr,
727 sizeof(uint32_t));
728 *ptr += sizeof(uint32_t);
729 memcpy((uint32_t*)&forUnmarshaling->maxGeometryShaderInvocations, *ptr, sizeof(uint32_t));
730 *ptr += sizeof(uint32_t);
731 memcpy((uint32_t*)&forUnmarshaling->maxGeometryInputComponents, *ptr, sizeof(uint32_t));
732 *ptr += sizeof(uint32_t);
733 memcpy((uint32_t*)&forUnmarshaling->maxGeometryOutputComponents, *ptr, sizeof(uint32_t));
734 *ptr += sizeof(uint32_t);
735 memcpy((uint32_t*)&forUnmarshaling->maxGeometryOutputVertices, *ptr, sizeof(uint32_t));
736 *ptr += sizeof(uint32_t);
737 memcpy((uint32_t*)&forUnmarshaling->maxGeometryTotalOutputComponents, *ptr, sizeof(uint32_t));
738 *ptr += sizeof(uint32_t);
739 memcpy((uint32_t*)&forUnmarshaling->maxFragmentInputComponents, *ptr, sizeof(uint32_t));
740 *ptr += sizeof(uint32_t);
741 memcpy((uint32_t*)&forUnmarshaling->maxFragmentOutputAttachments, *ptr, sizeof(uint32_t));
742 *ptr += sizeof(uint32_t);
743 memcpy((uint32_t*)&forUnmarshaling->maxFragmentDualSrcAttachments, *ptr, sizeof(uint32_t));
744 *ptr += sizeof(uint32_t);
745 memcpy((uint32_t*)&forUnmarshaling->maxFragmentCombinedOutputResources, *ptr, sizeof(uint32_t));
746 *ptr += sizeof(uint32_t);
747 memcpy((uint32_t*)&forUnmarshaling->maxComputeSharedMemorySize, *ptr, sizeof(uint32_t));
748 *ptr += sizeof(uint32_t);
749 memcpy((uint32_t*)forUnmarshaling->maxComputeWorkGroupCount, *ptr, 3 * sizeof(uint32_t));
750 *ptr += 3 * sizeof(uint32_t);
751 memcpy((uint32_t*)&forUnmarshaling->maxComputeWorkGroupInvocations, *ptr, sizeof(uint32_t));
752 *ptr += sizeof(uint32_t);
753 memcpy((uint32_t*)forUnmarshaling->maxComputeWorkGroupSize, *ptr, 3 * sizeof(uint32_t));
754 *ptr += 3 * sizeof(uint32_t);
755 memcpy((uint32_t*)&forUnmarshaling->subPixelPrecisionBits, *ptr, sizeof(uint32_t));
756 *ptr += sizeof(uint32_t);
757 memcpy((uint32_t*)&forUnmarshaling->subTexelPrecisionBits, *ptr, sizeof(uint32_t));
758 *ptr += sizeof(uint32_t);
759 memcpy((uint32_t*)&forUnmarshaling->mipmapPrecisionBits, *ptr, sizeof(uint32_t));
760 *ptr += sizeof(uint32_t);
761 memcpy((uint32_t*)&forUnmarshaling->maxDrawIndexedIndexValue, *ptr, sizeof(uint32_t));
762 *ptr += sizeof(uint32_t);
763 memcpy((uint32_t*)&forUnmarshaling->maxDrawIndirectCount, *ptr, sizeof(uint32_t));
764 *ptr += sizeof(uint32_t);
765 memcpy((float*)&forUnmarshaling->maxSamplerLodBias, *ptr, sizeof(float));
766 *ptr += sizeof(float);
767 memcpy((float*)&forUnmarshaling->maxSamplerAnisotropy, *ptr, sizeof(float));
768 *ptr += sizeof(float);
769 memcpy((uint32_t*)&forUnmarshaling->maxViewports, *ptr, sizeof(uint32_t));
770 *ptr += sizeof(uint32_t);
771 memcpy((uint32_t*)forUnmarshaling->maxViewportDimensions, *ptr, 2 * sizeof(uint32_t));
772 *ptr += 2 * sizeof(uint32_t);
773 memcpy((float*)forUnmarshaling->viewportBoundsRange, *ptr, 2 * sizeof(float));
774 *ptr += 2 * sizeof(float);
775 memcpy((uint32_t*)&forUnmarshaling->viewportSubPixelBits, *ptr, sizeof(uint32_t));
776 *ptr += sizeof(uint32_t);
777 memcpy((size_t*)&forUnmarshaling->minMemoryMapAlignment, (*ptr), 8);
778 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->minMemoryMapAlignment);
779 *ptr += 8;
780 memcpy((VkDeviceSize*)&forUnmarshaling->minTexelBufferOffsetAlignment, *ptr,
781 sizeof(VkDeviceSize));
782 *ptr += sizeof(VkDeviceSize);
783 memcpy((VkDeviceSize*)&forUnmarshaling->minUniformBufferOffsetAlignment, *ptr,
784 sizeof(VkDeviceSize));
785 *ptr += sizeof(VkDeviceSize);
786 memcpy((VkDeviceSize*)&forUnmarshaling->minStorageBufferOffsetAlignment, *ptr,
787 sizeof(VkDeviceSize));
788 *ptr += sizeof(VkDeviceSize);
789 memcpy((int32_t*)&forUnmarshaling->minTexelOffset, *ptr, sizeof(int32_t));
790 *ptr += sizeof(int32_t);
791 memcpy((uint32_t*)&forUnmarshaling->maxTexelOffset, *ptr, sizeof(uint32_t));
792 *ptr += sizeof(uint32_t);
793 memcpy((int32_t*)&forUnmarshaling->minTexelGatherOffset, *ptr, sizeof(int32_t));
794 *ptr += sizeof(int32_t);
795 memcpy((uint32_t*)&forUnmarshaling->maxTexelGatherOffset, *ptr, sizeof(uint32_t));
796 *ptr += sizeof(uint32_t);
797 memcpy((float*)&forUnmarshaling->minInterpolationOffset, *ptr, sizeof(float));
798 *ptr += sizeof(float);
799 memcpy((float*)&forUnmarshaling->maxInterpolationOffset, *ptr, sizeof(float));
800 *ptr += sizeof(float);
801 memcpy((uint32_t*)&forUnmarshaling->subPixelInterpolationOffsetBits, *ptr, sizeof(uint32_t));
802 *ptr += sizeof(uint32_t);
803 memcpy((uint32_t*)&forUnmarshaling->maxFramebufferWidth, *ptr, sizeof(uint32_t));
804 *ptr += sizeof(uint32_t);
805 memcpy((uint32_t*)&forUnmarshaling->maxFramebufferHeight, *ptr, sizeof(uint32_t));
806 *ptr += sizeof(uint32_t);
807 memcpy((uint32_t*)&forUnmarshaling->maxFramebufferLayers, *ptr, sizeof(uint32_t));
808 *ptr += sizeof(uint32_t);
809 memcpy((VkSampleCountFlags*)&forUnmarshaling->framebufferColorSampleCounts, *ptr,
810 sizeof(VkSampleCountFlags));
811 *ptr += sizeof(VkSampleCountFlags);
812 memcpy((VkSampleCountFlags*)&forUnmarshaling->framebufferDepthSampleCounts, *ptr,
813 sizeof(VkSampleCountFlags));
814 *ptr += sizeof(VkSampleCountFlags);
815 memcpy((VkSampleCountFlags*)&forUnmarshaling->framebufferStencilSampleCounts, *ptr,
816 sizeof(VkSampleCountFlags));
817 *ptr += sizeof(VkSampleCountFlags);
818 memcpy((VkSampleCountFlags*)&forUnmarshaling->framebufferNoAttachmentsSampleCounts, *ptr,
819 sizeof(VkSampleCountFlags));
820 *ptr += sizeof(VkSampleCountFlags);
821 memcpy((uint32_t*)&forUnmarshaling->maxColorAttachments, *ptr, sizeof(uint32_t));
822 *ptr += sizeof(uint32_t);
823 memcpy((VkSampleCountFlags*)&forUnmarshaling->sampledImageColorSampleCounts, *ptr,
824 sizeof(VkSampleCountFlags));
825 *ptr += sizeof(VkSampleCountFlags);
826 memcpy((VkSampleCountFlags*)&forUnmarshaling->sampledImageIntegerSampleCounts, *ptr,
827 sizeof(VkSampleCountFlags));
828 *ptr += sizeof(VkSampleCountFlags);
829 memcpy((VkSampleCountFlags*)&forUnmarshaling->sampledImageDepthSampleCounts, *ptr,
830 sizeof(VkSampleCountFlags));
831 *ptr += sizeof(VkSampleCountFlags);
832 memcpy((VkSampleCountFlags*)&forUnmarshaling->sampledImageStencilSampleCounts, *ptr,
833 sizeof(VkSampleCountFlags));
834 *ptr += sizeof(VkSampleCountFlags);
835 memcpy((VkSampleCountFlags*)&forUnmarshaling->storageImageSampleCounts, *ptr,
836 sizeof(VkSampleCountFlags));
837 *ptr += sizeof(VkSampleCountFlags);
838 memcpy((uint32_t*)&forUnmarshaling->maxSampleMaskWords, *ptr, sizeof(uint32_t));
839 *ptr += sizeof(uint32_t);
840 memcpy((VkBool32*)&forUnmarshaling->timestampComputeAndGraphics, *ptr, sizeof(VkBool32));
841 *ptr += sizeof(VkBool32);
842 memcpy((float*)&forUnmarshaling->timestampPeriod, *ptr, sizeof(float));
843 *ptr += sizeof(float);
844 memcpy((uint32_t*)&forUnmarshaling->maxClipDistances, *ptr, sizeof(uint32_t));
845 *ptr += sizeof(uint32_t);
846 memcpy((uint32_t*)&forUnmarshaling->maxCullDistances, *ptr, sizeof(uint32_t));
847 *ptr += sizeof(uint32_t);
848 memcpy((uint32_t*)&forUnmarshaling->maxCombinedClipAndCullDistances, *ptr, sizeof(uint32_t));
849 *ptr += sizeof(uint32_t);
850 memcpy((uint32_t*)&forUnmarshaling->discreteQueuePriorities, *ptr, sizeof(uint32_t));
851 *ptr += sizeof(uint32_t);
852 memcpy((float*)forUnmarshaling->pointSizeRange, *ptr, 2 * sizeof(float));
853 *ptr += 2 * sizeof(float);
854 memcpy((float*)forUnmarshaling->lineWidthRange, *ptr, 2 * sizeof(float));
855 *ptr += 2 * sizeof(float);
856 memcpy((float*)&forUnmarshaling->pointSizeGranularity, *ptr, sizeof(float));
857 *ptr += sizeof(float);
858 memcpy((float*)&forUnmarshaling->lineWidthGranularity, *ptr, sizeof(float));
859 *ptr += sizeof(float);
860 memcpy((VkBool32*)&forUnmarshaling->strictLines, *ptr, sizeof(VkBool32));
861 *ptr += sizeof(VkBool32);
862 memcpy((VkBool32*)&forUnmarshaling->standardSampleLocations, *ptr, sizeof(VkBool32));
863 *ptr += sizeof(VkBool32);
864 memcpy((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyOffsetAlignment, *ptr,
865 sizeof(VkDeviceSize));
866 *ptr += sizeof(VkDeviceSize);
867 memcpy((VkDeviceSize*)&forUnmarshaling->optimalBufferCopyRowPitchAlignment, *ptr,
868 sizeof(VkDeviceSize));
869 *ptr += sizeof(VkDeviceSize);
870 memcpy((VkDeviceSize*)&forUnmarshaling->nonCoherentAtomSize, *ptr, sizeof(VkDeviceSize));
871 *ptr += sizeof(VkDeviceSize);
872 }
873
reservedunmarshal_VkPhysicalDeviceMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryProperties * forUnmarshaling,uint8_t ** ptr)874 void reservedunmarshal_VkPhysicalDeviceMemoryProperties(
875 VulkanStream* vkStream, VkStructureType rootType,
876 VkPhysicalDeviceMemoryProperties* forUnmarshaling, uint8_t** ptr) {
877 memcpy((uint32_t*)&forUnmarshaling->memoryTypeCount, *ptr, sizeof(uint32_t));
878 *ptr += sizeof(uint32_t);
879 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
880 reservedunmarshal_VkMemoryType(vkStream, rootType,
881 (VkMemoryType*)(forUnmarshaling->memoryTypes + i), ptr);
882 }
883 memcpy((uint32_t*)&forUnmarshaling->memoryHeapCount, *ptr, sizeof(uint32_t));
884 *ptr += sizeof(uint32_t);
885 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
886 reservedunmarshal_VkMemoryHeap(vkStream, rootType,
887 (VkMemoryHeap*)(forUnmarshaling->memoryHeaps + i), ptr);
888 }
889 }
890
reservedunmarshal_VkPhysicalDeviceSparseProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSparseProperties * forUnmarshaling,uint8_t ** ptr)891 void reservedunmarshal_VkPhysicalDeviceSparseProperties(
892 VulkanStream* vkStream, VkStructureType rootType,
893 VkPhysicalDeviceSparseProperties* forUnmarshaling, uint8_t** ptr) {
894 memcpy((VkBool32*)&forUnmarshaling->residencyStandard2DBlockShape, *ptr, sizeof(VkBool32));
895 *ptr += sizeof(VkBool32);
896 memcpy((VkBool32*)&forUnmarshaling->residencyStandard2DMultisampleBlockShape, *ptr,
897 sizeof(VkBool32));
898 *ptr += sizeof(VkBool32);
899 memcpy((VkBool32*)&forUnmarshaling->residencyStandard3DBlockShape, *ptr, sizeof(VkBool32));
900 *ptr += sizeof(VkBool32);
901 memcpy((VkBool32*)&forUnmarshaling->residencyAlignedMipSize, *ptr, sizeof(VkBool32));
902 *ptr += sizeof(VkBool32);
903 memcpy((VkBool32*)&forUnmarshaling->residencyNonResidentStrict, *ptr, sizeof(VkBool32));
904 *ptr += sizeof(VkBool32);
905 }
906
reservedunmarshal_VkPhysicalDeviceProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProperties * forUnmarshaling,uint8_t ** ptr)907 void reservedunmarshal_VkPhysicalDeviceProperties(VulkanStream* vkStream, VkStructureType rootType,
908 VkPhysicalDeviceProperties* forUnmarshaling,
909 uint8_t** ptr) {
910 memcpy((uint32_t*)&forUnmarshaling->apiVersion, *ptr, sizeof(uint32_t));
911 *ptr += sizeof(uint32_t);
912 memcpy((uint32_t*)&forUnmarshaling->driverVersion, *ptr, sizeof(uint32_t));
913 *ptr += sizeof(uint32_t);
914 memcpy((uint32_t*)&forUnmarshaling->vendorID, *ptr, sizeof(uint32_t));
915 *ptr += sizeof(uint32_t);
916 memcpy((uint32_t*)&forUnmarshaling->deviceID, *ptr, sizeof(uint32_t));
917 *ptr += sizeof(uint32_t);
918 memcpy((VkPhysicalDeviceType*)&forUnmarshaling->deviceType, *ptr, sizeof(VkPhysicalDeviceType));
919 *ptr += sizeof(VkPhysicalDeviceType);
920 memcpy((char*)forUnmarshaling->deviceName, *ptr,
921 VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
922 *ptr += VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char);
923 memcpy((uint8_t*)forUnmarshaling->pipelineCacheUUID, *ptr, VK_UUID_SIZE * sizeof(uint8_t));
924 *ptr += VK_UUID_SIZE * sizeof(uint8_t);
925 reservedunmarshal_VkPhysicalDeviceLimits(
926 vkStream, rootType, (VkPhysicalDeviceLimits*)(&forUnmarshaling->limits), ptr);
927 reservedunmarshal_VkPhysicalDeviceSparseProperties(
928 vkStream, rootType, (VkPhysicalDeviceSparseProperties*)(&forUnmarshaling->sparseProperties),
929 ptr);
930 }
931
reservedunmarshal_VkQueueFamilyProperties(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyProperties * forUnmarshaling,uint8_t ** ptr)932 void reservedunmarshal_VkQueueFamilyProperties(VulkanStream* vkStream, VkStructureType rootType,
933 VkQueueFamilyProperties* forUnmarshaling,
934 uint8_t** ptr) {
935 memcpy((VkQueueFlags*)&forUnmarshaling->queueFlags, *ptr, sizeof(VkQueueFlags));
936 *ptr += sizeof(VkQueueFlags);
937 memcpy((uint32_t*)&forUnmarshaling->queueCount, *ptr, sizeof(uint32_t));
938 *ptr += sizeof(uint32_t);
939 memcpy((uint32_t*)&forUnmarshaling->timestampValidBits, *ptr, sizeof(uint32_t));
940 *ptr += sizeof(uint32_t);
941 reservedunmarshal_VkExtent3D(vkStream, rootType,
942 (VkExtent3D*)(&forUnmarshaling->minImageTransferGranularity), ptr);
943 }
944
reservedunmarshal_VkDeviceQueueCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceQueueCreateInfo * forUnmarshaling,uint8_t ** ptr)945 void reservedunmarshal_VkDeviceQueueCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
946 VkDeviceQueueCreateInfo* forUnmarshaling,
947 uint8_t** ptr) {
948 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
949 *ptr += sizeof(VkStructureType);
950 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
951 rootType = forUnmarshaling->sType;
952 }
953 uint32_t pNext_size;
954 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
955 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
956 *ptr += sizeof(uint32_t);
957 forUnmarshaling->pNext = nullptr;
958 if (pNext_size) {
959 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
960 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
961 *ptr += sizeof(VkStructureType);
962 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
963 vkStream->alloc((void**)&forUnmarshaling->pNext,
964 goldfish_vk_extension_struct_size_with_stream_features(
965 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
966 *(VkStructureType*)forUnmarshaling->pNext = extType;
967 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
968 ptr);
969 }
970 memcpy((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags, *ptr,
971 sizeof(VkDeviceQueueCreateFlags));
972 *ptr += sizeof(VkDeviceQueueCreateFlags);
973 memcpy((uint32_t*)&forUnmarshaling->queueFamilyIndex, *ptr, sizeof(uint32_t));
974 *ptr += sizeof(uint32_t);
975 memcpy((uint32_t*)&forUnmarshaling->queueCount, *ptr, sizeof(uint32_t));
976 *ptr += sizeof(uint32_t);
977 vkStream->alloc((void**)&forUnmarshaling->pQueuePriorities,
978 forUnmarshaling->queueCount * sizeof(const float));
979 memcpy((float*)forUnmarshaling->pQueuePriorities, *ptr,
980 forUnmarshaling->queueCount * sizeof(const float));
981 *ptr += forUnmarshaling->queueCount * sizeof(const float);
982 }
983
reservedunmarshal_VkDeviceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceCreateInfo * forUnmarshaling,uint8_t ** ptr)984 void reservedunmarshal_VkDeviceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
985 VkDeviceCreateInfo* forUnmarshaling, uint8_t** ptr) {
986 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
987 *ptr += sizeof(VkStructureType);
988 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
989 rootType = forUnmarshaling->sType;
990 }
991 uint32_t pNext_size;
992 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
993 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
994 *ptr += sizeof(uint32_t);
995 forUnmarshaling->pNext = nullptr;
996 if (pNext_size) {
997 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
998 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
999 *ptr += sizeof(VkStructureType);
1000 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1001 vkStream->alloc((void**)&forUnmarshaling->pNext,
1002 goldfish_vk_extension_struct_size_with_stream_features(
1003 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1004 *(VkStructureType*)forUnmarshaling->pNext = extType;
1005 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1006 ptr);
1007 }
1008 memcpy((VkDeviceCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkDeviceCreateFlags));
1009 *ptr += sizeof(VkDeviceCreateFlags);
1010 memcpy((uint32_t*)&forUnmarshaling->queueCreateInfoCount, *ptr, sizeof(uint32_t));
1011 *ptr += sizeof(uint32_t);
1012 vkStream->alloc((void**)&forUnmarshaling->pQueueCreateInfos,
1013 forUnmarshaling->queueCreateInfoCount * sizeof(const VkDeviceQueueCreateInfo));
1014 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueCreateInfoCount; ++i) {
1015 reservedunmarshal_VkDeviceQueueCreateInfo(
1016 vkStream, rootType, (VkDeviceQueueCreateInfo*)(forUnmarshaling->pQueueCreateInfos + i),
1017 ptr);
1018 }
1019 memcpy((uint32_t*)&forUnmarshaling->enabledLayerCount, *ptr, sizeof(uint32_t));
1020 *ptr += sizeof(uint32_t);
1021 vkStream->loadStringArrayInPlaceWithStreamPtr((char***)&forUnmarshaling->ppEnabledLayerNames,
1022 ptr);
1023 memcpy((uint32_t*)&forUnmarshaling->enabledExtensionCount, *ptr, sizeof(uint32_t));
1024 *ptr += sizeof(uint32_t);
1025 vkStream->loadStringArrayInPlaceWithStreamPtr(
1026 (char***)&forUnmarshaling->ppEnabledExtensionNames, ptr);
1027 // WARNING PTR CHECK
1028 memcpy((VkPhysicalDeviceFeatures**)&forUnmarshaling->pEnabledFeatures, (*ptr), 8);
1029 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pEnabledFeatures);
1030 *ptr += 8;
1031 if (forUnmarshaling->pEnabledFeatures) {
1032 vkStream->alloc((void**)&forUnmarshaling->pEnabledFeatures,
1033 sizeof(const VkPhysicalDeviceFeatures));
1034 reservedunmarshal_VkPhysicalDeviceFeatures(
1035 vkStream, rootType, (VkPhysicalDeviceFeatures*)(forUnmarshaling->pEnabledFeatures),
1036 ptr);
1037 }
1038 }
1039
reservedunmarshal_VkExtensionProperties(VulkanStream * vkStream,VkStructureType rootType,VkExtensionProperties * forUnmarshaling,uint8_t ** ptr)1040 void reservedunmarshal_VkExtensionProperties(VulkanStream* vkStream, VkStructureType rootType,
1041 VkExtensionProperties* forUnmarshaling,
1042 uint8_t** ptr) {
1043 memcpy((char*)forUnmarshaling->extensionName, *ptr, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1044 *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
1045 memcpy((uint32_t*)&forUnmarshaling->specVersion, *ptr, sizeof(uint32_t));
1046 *ptr += sizeof(uint32_t);
1047 }
1048
reservedunmarshal_VkLayerProperties(VulkanStream * vkStream,VkStructureType rootType,VkLayerProperties * forUnmarshaling,uint8_t ** ptr)1049 void reservedunmarshal_VkLayerProperties(VulkanStream* vkStream, VkStructureType rootType,
1050 VkLayerProperties* forUnmarshaling, uint8_t** ptr) {
1051 memcpy((char*)forUnmarshaling->layerName, *ptr, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
1052 *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
1053 memcpy((uint32_t*)&forUnmarshaling->specVersion, *ptr, sizeof(uint32_t));
1054 *ptr += sizeof(uint32_t);
1055 memcpy((uint32_t*)&forUnmarshaling->implementationVersion, *ptr, sizeof(uint32_t));
1056 *ptr += sizeof(uint32_t);
1057 memcpy((char*)forUnmarshaling->description, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
1058 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
1059 }
1060
reservedunmarshal_VkSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkSubmitInfo * forUnmarshaling,uint8_t ** ptr)1061 void reservedunmarshal_VkSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
1062 VkSubmitInfo* forUnmarshaling, uint8_t** ptr) {
1063 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1064 *ptr += sizeof(VkStructureType);
1065 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1066 rootType = forUnmarshaling->sType;
1067 }
1068 uint32_t pNext_size;
1069 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1070 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1071 *ptr += sizeof(uint32_t);
1072 forUnmarshaling->pNext = nullptr;
1073 if (pNext_size) {
1074 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1075 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1076 *ptr += sizeof(VkStructureType);
1077 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1078 vkStream->alloc((void**)&forUnmarshaling->pNext,
1079 goldfish_vk_extension_struct_size_with_stream_features(
1080 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1081 *(VkStructureType*)forUnmarshaling->pNext = extType;
1082 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1083 ptr);
1084 }
1085 memcpy((uint32_t*)&forUnmarshaling->waitSemaphoreCount, *ptr, sizeof(uint32_t));
1086 *ptr += sizeof(uint32_t);
1087 vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphores,
1088 forUnmarshaling->waitSemaphoreCount * sizeof(const VkSemaphore));
1089 if (forUnmarshaling->waitSemaphoreCount) {
1090 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
1091 *ptr += 8 * forUnmarshaling->waitSemaphoreCount;
1092 if (forUnmarshaling) {
1093 for (uint32_t k = 0; k < forUnmarshaling->waitSemaphoreCount; ++k) {
1094 uint64_t tmpval;
1095 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
1096 *(((VkSemaphore*)forUnmarshaling->pWaitSemaphores) + k) =
1097 tmpval ? (VkSemaphore)unbox_VkSemaphore((VkSemaphore)tmpval) : VK_NULL_HANDLE;
1098 }
1099 }
1100 }
1101 vkStream->alloc((void**)&forUnmarshaling->pWaitDstStageMask,
1102 forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1103 memcpy((VkPipelineStageFlags*)forUnmarshaling->pWaitDstStageMask, *ptr,
1104 forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
1105 *ptr += forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags);
1106 memcpy((uint32_t*)&forUnmarshaling->commandBufferCount, *ptr, sizeof(uint32_t));
1107 *ptr += sizeof(uint32_t);
1108 vkStream->alloc((void**)&forUnmarshaling->pCommandBuffers,
1109 forUnmarshaling->commandBufferCount * sizeof(const VkCommandBuffer));
1110 if (forUnmarshaling->commandBufferCount) {
1111 uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
1112 *ptr += 8 * forUnmarshaling->commandBufferCount;
1113 if (forUnmarshaling) {
1114 for (uint32_t k = 0; k < forUnmarshaling->commandBufferCount; ++k) {
1115 uint64_t tmpval;
1116 memcpy(&tmpval, cgen_var_1_ptr + k * 8, sizeof(uint64_t));
1117 *(((VkCommandBuffer*)forUnmarshaling->pCommandBuffers) + k) =
1118 tmpval ? (VkCommandBuffer)unbox_VkCommandBuffer((VkCommandBuffer)tmpval)
1119 : VK_NULL_HANDLE;
1120 }
1121 }
1122 }
1123 memcpy((uint32_t*)&forUnmarshaling->signalSemaphoreCount, *ptr, sizeof(uint32_t));
1124 *ptr += sizeof(uint32_t);
1125 vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphores,
1126 forUnmarshaling->signalSemaphoreCount * sizeof(const VkSemaphore));
1127 if (forUnmarshaling->signalSemaphoreCount) {
1128 uint8_t* cgen_var_2_ptr = (uint8_t*)(*ptr);
1129 *ptr += 8 * forUnmarshaling->signalSemaphoreCount;
1130 if (forUnmarshaling) {
1131 for (uint32_t k = 0; k < forUnmarshaling->signalSemaphoreCount; ++k) {
1132 uint64_t tmpval;
1133 memcpy(&tmpval, cgen_var_2_ptr + k * 8, sizeof(uint64_t));
1134 *(((VkSemaphore*)forUnmarshaling->pSignalSemaphores) + k) =
1135 tmpval ? (VkSemaphore)unbox_VkSemaphore((VkSemaphore)tmpval) : VK_NULL_HANDLE;
1136 }
1137 }
1138 }
1139 }
1140
reservedunmarshal_VkMappedMemoryRange(VulkanStream * vkStream,VkStructureType rootType,VkMappedMemoryRange * forUnmarshaling,uint8_t ** ptr)1141 void reservedunmarshal_VkMappedMemoryRange(VulkanStream* vkStream, VkStructureType rootType,
1142 VkMappedMemoryRange* forUnmarshaling, uint8_t** ptr) {
1143 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1144 *ptr += sizeof(VkStructureType);
1145 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1146 rootType = forUnmarshaling->sType;
1147 }
1148 uint32_t pNext_size;
1149 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1150 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1151 *ptr += sizeof(uint32_t);
1152 forUnmarshaling->pNext = nullptr;
1153 if (pNext_size) {
1154 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1155 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1156 *ptr += sizeof(VkStructureType);
1157 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1158 vkStream->alloc((void**)&forUnmarshaling->pNext,
1159 goldfish_vk_extension_struct_size_with_stream_features(
1160 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1161 *(VkStructureType*)forUnmarshaling->pNext = extType;
1162 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1163 ptr);
1164 }
1165 uint64_t cgen_var_0;
1166 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1167 *ptr += 1 * 8;
1168 *(VkDeviceMemory*)&forUnmarshaling->memory =
1169 (VkDeviceMemory)unbox_VkDeviceMemory((VkDeviceMemory)(*&cgen_var_0));
1170 memcpy((VkDeviceSize*)&forUnmarshaling->offset, *ptr, sizeof(VkDeviceSize));
1171 *ptr += sizeof(VkDeviceSize);
1172 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
1173 *ptr += sizeof(VkDeviceSize);
1174 }
1175
reservedunmarshal_VkMemoryAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryAllocateInfo * forUnmarshaling,uint8_t ** ptr)1176 void reservedunmarshal_VkMemoryAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
1177 VkMemoryAllocateInfo* forUnmarshaling, uint8_t** ptr) {
1178 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1179 *ptr += sizeof(VkStructureType);
1180 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1181 rootType = forUnmarshaling->sType;
1182 }
1183 uint32_t pNext_size;
1184 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1185 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1186 *ptr += sizeof(uint32_t);
1187 forUnmarshaling->pNext = nullptr;
1188 if (pNext_size) {
1189 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1190 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1191 *ptr += sizeof(VkStructureType);
1192 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1193 vkStream->alloc((void**)&forUnmarshaling->pNext,
1194 goldfish_vk_extension_struct_size_with_stream_features(
1195 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1196 *(VkStructureType*)forUnmarshaling->pNext = extType;
1197 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1198 ptr);
1199 }
1200 memcpy((VkDeviceSize*)&forUnmarshaling->allocationSize, *ptr, sizeof(VkDeviceSize));
1201 *ptr += sizeof(VkDeviceSize);
1202 memcpy((uint32_t*)&forUnmarshaling->memoryTypeIndex, *ptr, sizeof(uint32_t));
1203 *ptr += sizeof(uint32_t);
1204 }
1205
reservedunmarshal_VkMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkMemoryRequirements * forUnmarshaling,uint8_t ** ptr)1206 void reservedunmarshal_VkMemoryRequirements(VulkanStream* vkStream, VkStructureType rootType,
1207 VkMemoryRequirements* forUnmarshaling, uint8_t** ptr) {
1208 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
1209 *ptr += sizeof(VkDeviceSize);
1210 memcpy((VkDeviceSize*)&forUnmarshaling->alignment, *ptr, sizeof(VkDeviceSize));
1211 *ptr += sizeof(VkDeviceSize);
1212 memcpy((uint32_t*)&forUnmarshaling->memoryTypeBits, *ptr, sizeof(uint32_t));
1213 *ptr += sizeof(uint32_t);
1214 }
1215
reservedunmarshal_VkSparseMemoryBind(VulkanStream * vkStream,VkStructureType rootType,VkSparseMemoryBind * forUnmarshaling,uint8_t ** ptr)1216 void reservedunmarshal_VkSparseMemoryBind(VulkanStream* vkStream, VkStructureType rootType,
1217 VkSparseMemoryBind* forUnmarshaling, uint8_t** ptr) {
1218 memcpy((VkDeviceSize*)&forUnmarshaling->resourceOffset, *ptr, sizeof(VkDeviceSize));
1219 *ptr += sizeof(VkDeviceSize);
1220 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
1221 *ptr += sizeof(VkDeviceSize);
1222 uint64_t cgen_var_0;
1223 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1224 *ptr += 1 * 8;
1225 *(VkDeviceMemory*)&forUnmarshaling->memory =
1226 (VkDeviceMemory)unbox_VkDeviceMemory((VkDeviceMemory)(*&cgen_var_0));
1227 memcpy((VkDeviceSize*)&forUnmarshaling->memoryOffset, *ptr, sizeof(VkDeviceSize));
1228 *ptr += sizeof(VkDeviceSize);
1229 memcpy((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, *ptr,
1230 sizeof(VkSparseMemoryBindFlags));
1231 *ptr += sizeof(VkSparseMemoryBindFlags);
1232 }
1233
reservedunmarshal_VkSparseBufferMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,VkSparseBufferMemoryBindInfo * forUnmarshaling,uint8_t ** ptr)1234 void reservedunmarshal_VkSparseBufferMemoryBindInfo(VulkanStream* vkStream,
1235 VkStructureType rootType,
1236 VkSparseBufferMemoryBindInfo* forUnmarshaling,
1237 uint8_t** ptr) {
1238 uint64_t cgen_var_0;
1239 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1240 *ptr += 1 * 8;
1241 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
1242 memcpy((uint32_t*)&forUnmarshaling->bindCount, *ptr, sizeof(uint32_t));
1243 *ptr += sizeof(uint32_t);
1244 vkStream->alloc((void**)&forUnmarshaling->pBinds,
1245 forUnmarshaling->bindCount * sizeof(const VkSparseMemoryBind));
1246 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1247 reservedunmarshal_VkSparseMemoryBind(
1248 vkStream, rootType, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i), ptr);
1249 }
1250 }
1251
reservedunmarshal_VkSparseImageOpaqueMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageOpaqueMemoryBindInfo * forUnmarshaling,uint8_t ** ptr)1252 void reservedunmarshal_VkSparseImageOpaqueMemoryBindInfo(
1253 VulkanStream* vkStream, VkStructureType rootType,
1254 VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling, uint8_t** ptr) {
1255 uint64_t cgen_var_0;
1256 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1257 *ptr += 1 * 8;
1258 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
1259 memcpy((uint32_t*)&forUnmarshaling->bindCount, *ptr, sizeof(uint32_t));
1260 *ptr += sizeof(uint32_t);
1261 vkStream->alloc((void**)&forUnmarshaling->pBinds,
1262 forUnmarshaling->bindCount * sizeof(const VkSparseMemoryBind));
1263 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1264 reservedunmarshal_VkSparseMemoryBind(
1265 vkStream, rootType, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i), ptr);
1266 }
1267 }
1268
reservedunmarshal_VkImageSubresource(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresource * forUnmarshaling,uint8_t ** ptr)1269 void reservedunmarshal_VkImageSubresource(VulkanStream* vkStream, VkStructureType rootType,
1270 VkImageSubresource* forUnmarshaling, uint8_t** ptr) {
1271 memcpy((VkImageAspectFlags*)&forUnmarshaling->aspectMask, *ptr, sizeof(VkImageAspectFlags));
1272 *ptr += sizeof(VkImageAspectFlags);
1273 memcpy((uint32_t*)&forUnmarshaling->mipLevel, *ptr, sizeof(uint32_t));
1274 *ptr += sizeof(uint32_t);
1275 memcpy((uint32_t*)&forUnmarshaling->arrayLayer, *ptr, sizeof(uint32_t));
1276 *ptr += sizeof(uint32_t);
1277 }
1278
reservedunmarshal_VkSparseImageMemoryBind(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryBind * forUnmarshaling,uint8_t ** ptr)1279 void reservedunmarshal_VkSparseImageMemoryBind(VulkanStream* vkStream, VkStructureType rootType,
1280 VkSparseImageMemoryBind* forUnmarshaling,
1281 uint8_t** ptr) {
1282 reservedunmarshal_VkImageSubresource(vkStream, rootType,
1283 (VkImageSubresource*)(&forUnmarshaling->subresource), ptr);
1284 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->offset), ptr);
1285 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent), ptr);
1286 uint64_t cgen_var_0;
1287 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1288 *ptr += 1 * 8;
1289 *(VkDeviceMemory*)&forUnmarshaling->memory =
1290 (VkDeviceMemory)unbox_VkDeviceMemory((VkDeviceMemory)(*&cgen_var_0));
1291 memcpy((VkDeviceSize*)&forUnmarshaling->memoryOffset, *ptr, sizeof(VkDeviceSize));
1292 *ptr += sizeof(VkDeviceSize);
1293 memcpy((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, *ptr,
1294 sizeof(VkSparseMemoryBindFlags));
1295 *ptr += sizeof(VkSparseMemoryBindFlags);
1296 }
1297
reservedunmarshal_VkSparseImageMemoryBindInfo(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryBindInfo * forUnmarshaling,uint8_t ** ptr)1298 void reservedunmarshal_VkSparseImageMemoryBindInfo(VulkanStream* vkStream, VkStructureType rootType,
1299 VkSparseImageMemoryBindInfo* forUnmarshaling,
1300 uint8_t** ptr) {
1301 uint64_t cgen_var_0;
1302 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1303 *ptr += 1 * 8;
1304 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
1305 memcpy((uint32_t*)&forUnmarshaling->bindCount, *ptr, sizeof(uint32_t));
1306 *ptr += sizeof(uint32_t);
1307 vkStream->alloc((void**)&forUnmarshaling->pBinds,
1308 forUnmarshaling->bindCount * sizeof(const VkSparseImageMemoryBind));
1309 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i) {
1310 reservedunmarshal_VkSparseImageMemoryBind(
1311 vkStream, rootType, (VkSparseImageMemoryBind*)(forUnmarshaling->pBinds + i), ptr);
1312 }
1313 }
1314
reservedunmarshal_VkBindSparseInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindSparseInfo * forUnmarshaling,uint8_t ** ptr)1315 void reservedunmarshal_VkBindSparseInfo(VulkanStream* vkStream, VkStructureType rootType,
1316 VkBindSparseInfo* forUnmarshaling, uint8_t** ptr) {
1317 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1318 *ptr += sizeof(VkStructureType);
1319 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1320 rootType = forUnmarshaling->sType;
1321 }
1322 uint32_t pNext_size;
1323 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1324 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1325 *ptr += sizeof(uint32_t);
1326 forUnmarshaling->pNext = nullptr;
1327 if (pNext_size) {
1328 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1329 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1330 *ptr += sizeof(VkStructureType);
1331 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1332 vkStream->alloc((void**)&forUnmarshaling->pNext,
1333 goldfish_vk_extension_struct_size_with_stream_features(
1334 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1335 *(VkStructureType*)forUnmarshaling->pNext = extType;
1336 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1337 ptr);
1338 }
1339 memcpy((uint32_t*)&forUnmarshaling->waitSemaphoreCount, *ptr, sizeof(uint32_t));
1340 *ptr += sizeof(uint32_t);
1341 vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphores,
1342 forUnmarshaling->waitSemaphoreCount * sizeof(const VkSemaphore));
1343 if (forUnmarshaling->waitSemaphoreCount) {
1344 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
1345 *ptr += 8 * forUnmarshaling->waitSemaphoreCount;
1346 if (forUnmarshaling) {
1347 for (uint32_t k = 0; k < forUnmarshaling->waitSemaphoreCount; ++k) {
1348 uint64_t tmpval;
1349 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
1350 *(((VkSemaphore*)forUnmarshaling->pWaitSemaphores) + k) =
1351 tmpval ? (VkSemaphore)unbox_VkSemaphore((VkSemaphore)tmpval) : VK_NULL_HANDLE;
1352 }
1353 }
1354 }
1355 memcpy((uint32_t*)&forUnmarshaling->bufferBindCount, *ptr, sizeof(uint32_t));
1356 *ptr += sizeof(uint32_t);
1357 vkStream->alloc((void**)&forUnmarshaling->pBufferBinds,
1358 forUnmarshaling->bufferBindCount * sizeof(const VkSparseBufferMemoryBindInfo));
1359 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferBindCount; ++i) {
1360 reservedunmarshal_VkSparseBufferMemoryBindInfo(
1361 vkStream, rootType, (VkSparseBufferMemoryBindInfo*)(forUnmarshaling->pBufferBinds + i),
1362 ptr);
1363 }
1364 memcpy((uint32_t*)&forUnmarshaling->imageOpaqueBindCount, *ptr, sizeof(uint32_t));
1365 *ptr += sizeof(uint32_t);
1366 vkStream->alloc(
1367 (void**)&forUnmarshaling->pImageOpaqueBinds,
1368 forUnmarshaling->imageOpaqueBindCount * sizeof(const VkSparseImageOpaqueMemoryBindInfo));
1369 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageOpaqueBindCount; ++i) {
1370 reservedunmarshal_VkSparseImageOpaqueMemoryBindInfo(
1371 vkStream, rootType,
1372 (VkSparseImageOpaqueMemoryBindInfo*)(forUnmarshaling->pImageOpaqueBinds + i), ptr);
1373 }
1374 memcpy((uint32_t*)&forUnmarshaling->imageBindCount, *ptr, sizeof(uint32_t));
1375 *ptr += sizeof(uint32_t);
1376 vkStream->alloc((void**)&forUnmarshaling->pImageBinds,
1377 forUnmarshaling->imageBindCount * sizeof(const VkSparseImageMemoryBindInfo));
1378 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageBindCount; ++i) {
1379 reservedunmarshal_VkSparseImageMemoryBindInfo(
1380 vkStream, rootType, (VkSparseImageMemoryBindInfo*)(forUnmarshaling->pImageBinds + i),
1381 ptr);
1382 }
1383 memcpy((uint32_t*)&forUnmarshaling->signalSemaphoreCount, *ptr, sizeof(uint32_t));
1384 *ptr += sizeof(uint32_t);
1385 vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphores,
1386 forUnmarshaling->signalSemaphoreCount * sizeof(const VkSemaphore));
1387 if (forUnmarshaling->signalSemaphoreCount) {
1388 uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
1389 *ptr += 8 * forUnmarshaling->signalSemaphoreCount;
1390 if (forUnmarshaling) {
1391 for (uint32_t k = 0; k < forUnmarshaling->signalSemaphoreCount; ++k) {
1392 uint64_t tmpval;
1393 memcpy(&tmpval, cgen_var_1_ptr + k * 8, sizeof(uint64_t));
1394 *(((VkSemaphore*)forUnmarshaling->pSignalSemaphores) + k) =
1395 tmpval ? (VkSemaphore)unbox_VkSemaphore((VkSemaphore)tmpval) : VK_NULL_HANDLE;
1396 }
1397 }
1398 }
1399 }
1400
reservedunmarshal_VkSparseImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageFormatProperties * forUnmarshaling,uint8_t ** ptr)1401 void reservedunmarshal_VkSparseImageFormatProperties(VulkanStream* vkStream,
1402 VkStructureType rootType,
1403 VkSparseImageFormatProperties* forUnmarshaling,
1404 uint8_t** ptr) {
1405 memcpy((VkImageAspectFlags*)&forUnmarshaling->aspectMask, *ptr, sizeof(VkImageAspectFlags));
1406 *ptr += sizeof(VkImageAspectFlags);
1407 reservedunmarshal_VkExtent3D(vkStream, rootType,
1408 (VkExtent3D*)(&forUnmarshaling->imageGranularity), ptr);
1409 memcpy((VkSparseImageFormatFlags*)&forUnmarshaling->flags, *ptr,
1410 sizeof(VkSparseImageFormatFlags));
1411 *ptr += sizeof(VkSparseImageFormatFlags);
1412 }
1413
reservedunmarshal_VkSparseImageMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryRequirements * forUnmarshaling,uint8_t ** ptr)1414 void reservedunmarshal_VkSparseImageMemoryRequirements(
1415 VulkanStream* vkStream, VkStructureType rootType,
1416 VkSparseImageMemoryRequirements* forUnmarshaling, uint8_t** ptr) {
1417 reservedunmarshal_VkSparseImageFormatProperties(
1418 vkStream, rootType, (VkSparseImageFormatProperties*)(&forUnmarshaling->formatProperties),
1419 ptr);
1420 memcpy((uint32_t*)&forUnmarshaling->imageMipTailFirstLod, *ptr, sizeof(uint32_t));
1421 *ptr += sizeof(uint32_t);
1422 memcpy((VkDeviceSize*)&forUnmarshaling->imageMipTailSize, *ptr, sizeof(VkDeviceSize));
1423 *ptr += sizeof(VkDeviceSize);
1424 memcpy((VkDeviceSize*)&forUnmarshaling->imageMipTailOffset, *ptr, sizeof(VkDeviceSize));
1425 *ptr += sizeof(VkDeviceSize);
1426 memcpy((VkDeviceSize*)&forUnmarshaling->imageMipTailStride, *ptr, sizeof(VkDeviceSize));
1427 *ptr += sizeof(VkDeviceSize);
1428 }
1429
reservedunmarshal_VkFenceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkFenceCreateInfo * forUnmarshaling,uint8_t ** ptr)1430 void reservedunmarshal_VkFenceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1431 VkFenceCreateInfo* forUnmarshaling, uint8_t** ptr) {
1432 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1433 *ptr += sizeof(VkStructureType);
1434 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1435 rootType = forUnmarshaling->sType;
1436 }
1437 uint32_t pNext_size;
1438 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1439 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1440 *ptr += sizeof(uint32_t);
1441 forUnmarshaling->pNext = nullptr;
1442 if (pNext_size) {
1443 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1444 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1445 *ptr += sizeof(VkStructureType);
1446 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1447 vkStream->alloc((void**)&forUnmarshaling->pNext,
1448 goldfish_vk_extension_struct_size_with_stream_features(
1449 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1450 *(VkStructureType*)forUnmarshaling->pNext = extType;
1451 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1452 ptr);
1453 }
1454 memcpy((VkFenceCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkFenceCreateFlags));
1455 *ptr += sizeof(VkFenceCreateFlags);
1456 }
1457
reservedunmarshal_VkSemaphoreCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreCreateInfo * forUnmarshaling,uint8_t ** ptr)1458 void reservedunmarshal_VkSemaphoreCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1459 VkSemaphoreCreateInfo* forUnmarshaling,
1460 uint8_t** ptr) {
1461 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1462 *ptr += sizeof(VkStructureType);
1463 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1464 rootType = forUnmarshaling->sType;
1465 }
1466 uint32_t pNext_size;
1467 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1468 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1469 *ptr += sizeof(uint32_t);
1470 forUnmarshaling->pNext = nullptr;
1471 if (pNext_size) {
1472 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1473 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1474 *ptr += sizeof(VkStructureType);
1475 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1476 vkStream->alloc((void**)&forUnmarshaling->pNext,
1477 goldfish_vk_extension_struct_size_with_stream_features(
1478 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1479 *(VkStructureType*)forUnmarshaling->pNext = extType;
1480 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1481 ptr);
1482 }
1483 memcpy((VkSemaphoreCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkSemaphoreCreateFlags));
1484 *ptr += sizeof(VkSemaphoreCreateFlags);
1485 }
1486
reservedunmarshal_VkEventCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkEventCreateInfo * forUnmarshaling,uint8_t ** ptr)1487 void reservedunmarshal_VkEventCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1488 VkEventCreateInfo* forUnmarshaling, uint8_t** ptr) {
1489 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1490 *ptr += sizeof(VkStructureType);
1491 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1492 rootType = forUnmarshaling->sType;
1493 }
1494 uint32_t pNext_size;
1495 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1496 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1497 *ptr += sizeof(uint32_t);
1498 forUnmarshaling->pNext = nullptr;
1499 if (pNext_size) {
1500 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1501 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1502 *ptr += sizeof(VkStructureType);
1503 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1504 vkStream->alloc((void**)&forUnmarshaling->pNext,
1505 goldfish_vk_extension_struct_size_with_stream_features(
1506 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1507 *(VkStructureType*)forUnmarshaling->pNext = extType;
1508 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1509 ptr);
1510 }
1511 memcpy((VkEventCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkEventCreateFlags));
1512 *ptr += sizeof(VkEventCreateFlags);
1513 }
1514
reservedunmarshal_VkQueryPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkQueryPoolCreateInfo * forUnmarshaling,uint8_t ** ptr)1515 void reservedunmarshal_VkQueryPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1516 VkQueryPoolCreateInfo* forUnmarshaling,
1517 uint8_t** ptr) {
1518 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1519 *ptr += sizeof(VkStructureType);
1520 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1521 rootType = forUnmarshaling->sType;
1522 }
1523 uint32_t pNext_size;
1524 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1525 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1526 *ptr += sizeof(uint32_t);
1527 forUnmarshaling->pNext = nullptr;
1528 if (pNext_size) {
1529 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1530 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1531 *ptr += sizeof(VkStructureType);
1532 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1533 vkStream->alloc((void**)&forUnmarshaling->pNext,
1534 goldfish_vk_extension_struct_size_with_stream_features(
1535 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1536 *(VkStructureType*)forUnmarshaling->pNext = extType;
1537 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1538 ptr);
1539 }
1540 memcpy((VkQueryPoolCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkQueryPoolCreateFlags));
1541 *ptr += sizeof(VkQueryPoolCreateFlags);
1542 memcpy((VkQueryType*)&forUnmarshaling->queryType, *ptr, sizeof(VkQueryType));
1543 *ptr += sizeof(VkQueryType);
1544 memcpy((uint32_t*)&forUnmarshaling->queryCount, *ptr, sizeof(uint32_t));
1545 *ptr += sizeof(uint32_t);
1546 memcpy((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics, *ptr,
1547 sizeof(VkQueryPipelineStatisticFlags));
1548 *ptr += sizeof(VkQueryPipelineStatisticFlags);
1549 }
1550
reservedunmarshal_VkBufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferCreateInfo * forUnmarshaling,uint8_t ** ptr)1551 void reservedunmarshal_VkBufferCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1552 VkBufferCreateInfo* forUnmarshaling, uint8_t** ptr) {
1553 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1554 *ptr += sizeof(VkStructureType);
1555 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1556 rootType = forUnmarshaling->sType;
1557 }
1558 uint32_t pNext_size;
1559 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1560 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1561 *ptr += sizeof(uint32_t);
1562 forUnmarshaling->pNext = nullptr;
1563 if (pNext_size) {
1564 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1565 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1566 *ptr += sizeof(VkStructureType);
1567 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1568 vkStream->alloc((void**)&forUnmarshaling->pNext,
1569 goldfish_vk_extension_struct_size_with_stream_features(
1570 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1571 *(VkStructureType*)forUnmarshaling->pNext = extType;
1572 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1573 ptr);
1574 }
1575 memcpy((VkBufferCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkBufferCreateFlags));
1576 *ptr += sizeof(VkBufferCreateFlags);
1577 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
1578 *ptr += sizeof(VkDeviceSize);
1579 memcpy((VkBufferUsageFlags*)&forUnmarshaling->usage, *ptr, sizeof(VkBufferUsageFlags));
1580 *ptr += sizeof(VkBufferUsageFlags);
1581 memcpy((VkSharingMode*)&forUnmarshaling->sharingMode, *ptr, sizeof(VkSharingMode));
1582 *ptr += sizeof(VkSharingMode);
1583 memcpy((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, *ptr, sizeof(uint32_t));
1584 *ptr += sizeof(uint32_t);
1585 // WARNING PTR CHECK
1586 memcpy((uint32_t**)&forUnmarshaling->pQueueFamilyIndices, (*ptr), 8);
1587 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pQueueFamilyIndices);
1588 *ptr += 8;
1589 if (forUnmarshaling->pQueueFamilyIndices) {
1590 vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
1591 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1592 memcpy((uint32_t*)forUnmarshaling->pQueueFamilyIndices, *ptr,
1593 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1594 *ptr += forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
1595 }
1596 }
1597
reservedunmarshal_VkBufferViewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferViewCreateInfo * forUnmarshaling,uint8_t ** ptr)1598 void reservedunmarshal_VkBufferViewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1599 VkBufferViewCreateInfo* forUnmarshaling,
1600 uint8_t** ptr) {
1601 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1602 *ptr += sizeof(VkStructureType);
1603 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1604 rootType = forUnmarshaling->sType;
1605 }
1606 uint32_t pNext_size;
1607 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1608 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1609 *ptr += sizeof(uint32_t);
1610 forUnmarshaling->pNext = nullptr;
1611 if (pNext_size) {
1612 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1613 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1614 *ptr += sizeof(VkStructureType);
1615 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1616 vkStream->alloc((void**)&forUnmarshaling->pNext,
1617 goldfish_vk_extension_struct_size_with_stream_features(
1618 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1619 *(VkStructureType*)forUnmarshaling->pNext = extType;
1620 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1621 ptr);
1622 }
1623 memcpy((VkBufferViewCreateFlags*)&forUnmarshaling->flags, *ptr,
1624 sizeof(VkBufferViewCreateFlags));
1625 *ptr += sizeof(VkBufferViewCreateFlags);
1626 uint64_t cgen_var_0;
1627 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1628 *ptr += 1 * 8;
1629 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
1630 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
1631 *ptr += sizeof(VkFormat);
1632 memcpy((VkDeviceSize*)&forUnmarshaling->offset, *ptr, sizeof(VkDeviceSize));
1633 *ptr += sizeof(VkDeviceSize);
1634 memcpy((VkDeviceSize*)&forUnmarshaling->range, *ptr, sizeof(VkDeviceSize));
1635 *ptr += sizeof(VkDeviceSize);
1636 }
1637
reservedunmarshal_VkImageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageCreateInfo * forUnmarshaling,uint8_t ** ptr)1638 void reservedunmarshal_VkImageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1639 VkImageCreateInfo* forUnmarshaling, uint8_t** ptr) {
1640 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1641 *ptr += sizeof(VkStructureType);
1642 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1643 rootType = forUnmarshaling->sType;
1644 }
1645 uint32_t pNext_size;
1646 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1647 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1648 *ptr += sizeof(uint32_t);
1649 forUnmarshaling->pNext = nullptr;
1650 if (pNext_size) {
1651 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1652 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1653 *ptr += sizeof(VkStructureType);
1654 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1655 vkStream->alloc((void**)&forUnmarshaling->pNext,
1656 goldfish_vk_extension_struct_size_with_stream_features(
1657 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1658 *(VkStructureType*)forUnmarshaling->pNext = extType;
1659 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1660 ptr);
1661 }
1662 memcpy((VkImageCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkImageCreateFlags));
1663 *ptr += sizeof(VkImageCreateFlags);
1664 memcpy((VkImageType*)&forUnmarshaling->imageType, *ptr, sizeof(VkImageType));
1665 *ptr += sizeof(VkImageType);
1666 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
1667 *ptr += sizeof(VkFormat);
1668 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent), ptr);
1669 memcpy((uint32_t*)&forUnmarshaling->mipLevels, *ptr, sizeof(uint32_t));
1670 *ptr += sizeof(uint32_t);
1671 memcpy((uint32_t*)&forUnmarshaling->arrayLayers, *ptr, sizeof(uint32_t));
1672 *ptr += sizeof(uint32_t);
1673 memcpy((VkSampleCountFlagBits*)&forUnmarshaling->samples, *ptr, sizeof(VkSampleCountFlagBits));
1674 *ptr += sizeof(VkSampleCountFlagBits);
1675 memcpy((VkImageTiling*)&forUnmarshaling->tiling, *ptr, sizeof(VkImageTiling));
1676 *ptr += sizeof(VkImageTiling);
1677 memcpy((VkImageUsageFlags*)&forUnmarshaling->usage, *ptr, sizeof(VkImageUsageFlags));
1678 *ptr += sizeof(VkImageUsageFlags);
1679 memcpy((VkSharingMode*)&forUnmarshaling->sharingMode, *ptr, sizeof(VkSharingMode));
1680 *ptr += sizeof(VkSharingMode);
1681 memcpy((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, *ptr, sizeof(uint32_t));
1682 *ptr += sizeof(uint32_t);
1683 // WARNING PTR CHECK
1684 memcpy((uint32_t**)&forUnmarshaling->pQueueFamilyIndices, (*ptr), 8);
1685 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pQueueFamilyIndices);
1686 *ptr += 8;
1687 if (forUnmarshaling->pQueueFamilyIndices) {
1688 vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
1689 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1690 memcpy((uint32_t*)forUnmarshaling->pQueueFamilyIndices, *ptr,
1691 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
1692 *ptr += forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
1693 }
1694 memcpy((VkImageLayout*)&forUnmarshaling->initialLayout, *ptr, sizeof(VkImageLayout));
1695 *ptr += sizeof(VkImageLayout);
1696 }
1697
reservedunmarshal_VkSubresourceLayout(VulkanStream * vkStream,VkStructureType rootType,VkSubresourceLayout * forUnmarshaling,uint8_t ** ptr)1698 void reservedunmarshal_VkSubresourceLayout(VulkanStream* vkStream, VkStructureType rootType,
1699 VkSubresourceLayout* forUnmarshaling, uint8_t** ptr) {
1700 memcpy((VkDeviceSize*)&forUnmarshaling->offset, *ptr, sizeof(VkDeviceSize));
1701 *ptr += sizeof(VkDeviceSize);
1702 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
1703 *ptr += sizeof(VkDeviceSize);
1704 memcpy((VkDeviceSize*)&forUnmarshaling->rowPitch, *ptr, sizeof(VkDeviceSize));
1705 *ptr += sizeof(VkDeviceSize);
1706 memcpy((VkDeviceSize*)&forUnmarshaling->arrayPitch, *ptr, sizeof(VkDeviceSize));
1707 *ptr += sizeof(VkDeviceSize);
1708 memcpy((VkDeviceSize*)&forUnmarshaling->depthPitch, *ptr, sizeof(VkDeviceSize));
1709 *ptr += sizeof(VkDeviceSize);
1710 }
1711
reservedunmarshal_VkComponentMapping(VulkanStream * vkStream,VkStructureType rootType,VkComponentMapping * forUnmarshaling,uint8_t ** ptr)1712 void reservedunmarshal_VkComponentMapping(VulkanStream* vkStream, VkStructureType rootType,
1713 VkComponentMapping* forUnmarshaling, uint8_t** ptr) {
1714 memcpy((VkComponentSwizzle*)&forUnmarshaling->r, *ptr, sizeof(VkComponentSwizzle));
1715 *ptr += sizeof(VkComponentSwizzle);
1716 memcpy((VkComponentSwizzle*)&forUnmarshaling->g, *ptr, sizeof(VkComponentSwizzle));
1717 *ptr += sizeof(VkComponentSwizzle);
1718 memcpy((VkComponentSwizzle*)&forUnmarshaling->b, *ptr, sizeof(VkComponentSwizzle));
1719 *ptr += sizeof(VkComponentSwizzle);
1720 memcpy((VkComponentSwizzle*)&forUnmarshaling->a, *ptr, sizeof(VkComponentSwizzle));
1721 *ptr += sizeof(VkComponentSwizzle);
1722 }
1723
reservedunmarshal_VkImageViewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageViewCreateInfo * forUnmarshaling,uint8_t ** ptr)1724 void reservedunmarshal_VkImageViewCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1725 VkImageViewCreateInfo* forUnmarshaling,
1726 uint8_t** ptr) {
1727 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1728 *ptr += sizeof(VkStructureType);
1729 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1730 rootType = forUnmarshaling->sType;
1731 }
1732 uint32_t pNext_size;
1733 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1734 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1735 *ptr += sizeof(uint32_t);
1736 forUnmarshaling->pNext = nullptr;
1737 if (pNext_size) {
1738 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1739 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1740 *ptr += sizeof(VkStructureType);
1741 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1742 vkStream->alloc((void**)&forUnmarshaling->pNext,
1743 goldfish_vk_extension_struct_size_with_stream_features(
1744 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1745 *(VkStructureType*)forUnmarshaling->pNext = extType;
1746 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1747 ptr);
1748 }
1749 memcpy((VkImageViewCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkImageViewCreateFlags));
1750 *ptr += sizeof(VkImageViewCreateFlags);
1751 uint64_t cgen_var_0;
1752 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1753 *ptr += 1 * 8;
1754 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
1755 memcpy((VkImageViewType*)&forUnmarshaling->viewType, *ptr, sizeof(VkImageViewType));
1756 *ptr += sizeof(VkImageViewType);
1757 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
1758 *ptr += sizeof(VkFormat);
1759 reservedunmarshal_VkComponentMapping(vkStream, rootType,
1760 (VkComponentMapping*)(&forUnmarshaling->components), ptr);
1761 reservedunmarshal_VkImageSubresourceRange(
1762 vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange), ptr);
1763 }
1764
reservedunmarshal_VkShaderModuleCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkShaderModuleCreateInfo * forUnmarshaling,uint8_t ** ptr)1765 void reservedunmarshal_VkShaderModuleCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1766 VkShaderModuleCreateInfo* forUnmarshaling,
1767 uint8_t** ptr) {
1768 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1769 *ptr += sizeof(VkStructureType);
1770 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1771 rootType = forUnmarshaling->sType;
1772 }
1773 uint32_t pNext_size;
1774 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1775 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1776 *ptr += sizeof(uint32_t);
1777 forUnmarshaling->pNext = nullptr;
1778 if (pNext_size) {
1779 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1780 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1781 *ptr += sizeof(VkStructureType);
1782 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1783 vkStream->alloc((void**)&forUnmarshaling->pNext,
1784 goldfish_vk_extension_struct_size_with_stream_features(
1785 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1786 *(VkStructureType*)forUnmarshaling->pNext = extType;
1787 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1788 ptr);
1789 }
1790 memcpy((VkShaderModuleCreateFlags*)&forUnmarshaling->flags, *ptr,
1791 sizeof(VkShaderModuleCreateFlags));
1792 *ptr += sizeof(VkShaderModuleCreateFlags);
1793 memcpy((size_t*)&forUnmarshaling->codeSize, (*ptr), 8);
1794 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->codeSize);
1795 *ptr += 8;
1796 vkStream->alloc((void**)&forUnmarshaling->pCode,
1797 (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t));
1798 memcpy((uint32_t*)forUnmarshaling->pCode, *ptr,
1799 (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t));
1800 *ptr += (forUnmarshaling->codeSize / 4) * sizeof(const uint32_t);
1801 }
1802
reservedunmarshal_VkPipelineCacheCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCacheCreateInfo * forUnmarshaling,uint8_t ** ptr)1803 void reservedunmarshal_VkPipelineCacheCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1804 VkPipelineCacheCreateInfo* forUnmarshaling,
1805 uint8_t** ptr) {
1806 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1807 *ptr += sizeof(VkStructureType);
1808 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1809 rootType = forUnmarshaling->sType;
1810 }
1811 uint32_t pNext_size;
1812 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1813 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1814 *ptr += sizeof(uint32_t);
1815 forUnmarshaling->pNext = nullptr;
1816 if (pNext_size) {
1817 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1818 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1819 *ptr += sizeof(VkStructureType);
1820 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1821 vkStream->alloc((void**)&forUnmarshaling->pNext,
1822 goldfish_vk_extension_struct_size_with_stream_features(
1823 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1824 *(VkStructureType*)forUnmarshaling->pNext = extType;
1825 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1826 ptr);
1827 }
1828 memcpy((VkPipelineCacheCreateFlags*)&forUnmarshaling->flags, *ptr,
1829 sizeof(VkPipelineCacheCreateFlags));
1830 *ptr += sizeof(VkPipelineCacheCreateFlags);
1831 memcpy((size_t*)&forUnmarshaling->initialDataSize, (*ptr), 8);
1832 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->initialDataSize);
1833 *ptr += 8;
1834 vkStream->alloc((void**)&forUnmarshaling->pInitialData,
1835 forUnmarshaling->initialDataSize * sizeof(const uint8_t));
1836 memcpy((void*)forUnmarshaling->pInitialData, *ptr,
1837 forUnmarshaling->initialDataSize * sizeof(const uint8_t));
1838 *ptr += forUnmarshaling->initialDataSize * sizeof(const uint8_t);
1839 }
1840
reservedunmarshal_VkSpecializationMapEntry(VulkanStream * vkStream,VkStructureType rootType,VkSpecializationMapEntry * forUnmarshaling,uint8_t ** ptr)1841 void reservedunmarshal_VkSpecializationMapEntry(VulkanStream* vkStream, VkStructureType rootType,
1842 VkSpecializationMapEntry* forUnmarshaling,
1843 uint8_t** ptr) {
1844 memcpy((uint32_t*)&forUnmarshaling->constantID, *ptr, sizeof(uint32_t));
1845 *ptr += sizeof(uint32_t);
1846 memcpy((uint32_t*)&forUnmarshaling->offset, *ptr, sizeof(uint32_t));
1847 *ptr += sizeof(uint32_t);
1848 memcpy((size_t*)&forUnmarshaling->size, (*ptr), 8);
1849 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->size);
1850 *ptr += 8;
1851 }
1852
reservedunmarshal_VkSpecializationInfo(VulkanStream * vkStream,VkStructureType rootType,VkSpecializationInfo * forUnmarshaling,uint8_t ** ptr)1853 void reservedunmarshal_VkSpecializationInfo(VulkanStream* vkStream, VkStructureType rootType,
1854 VkSpecializationInfo* forUnmarshaling, uint8_t** ptr) {
1855 memcpy((uint32_t*)&forUnmarshaling->mapEntryCount, *ptr, sizeof(uint32_t));
1856 *ptr += sizeof(uint32_t);
1857 vkStream->alloc((void**)&forUnmarshaling->pMapEntries,
1858 forUnmarshaling->mapEntryCount * sizeof(const VkSpecializationMapEntry));
1859 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mapEntryCount; ++i) {
1860 reservedunmarshal_VkSpecializationMapEntry(
1861 vkStream, rootType, (VkSpecializationMapEntry*)(forUnmarshaling->pMapEntries + i), ptr);
1862 }
1863 memcpy((size_t*)&forUnmarshaling->dataSize, (*ptr), 8);
1864 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->dataSize);
1865 *ptr += 8;
1866 vkStream->alloc((void**)&forUnmarshaling->pData,
1867 forUnmarshaling->dataSize * sizeof(const uint8_t));
1868 memcpy((void*)forUnmarshaling->pData, *ptr, forUnmarshaling->dataSize * sizeof(const uint8_t));
1869 *ptr += forUnmarshaling->dataSize * sizeof(const uint8_t);
1870 }
1871
reservedunmarshal_VkPipelineShaderStageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineShaderStageCreateInfo * forUnmarshaling,uint8_t ** ptr)1872 void reservedunmarshal_VkPipelineShaderStageCreateInfo(
1873 VulkanStream* vkStream, VkStructureType rootType,
1874 VkPipelineShaderStageCreateInfo* forUnmarshaling, uint8_t** ptr) {
1875 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1876 *ptr += sizeof(VkStructureType);
1877 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1878 rootType = forUnmarshaling->sType;
1879 }
1880 uint32_t pNext_size;
1881 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1882 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1883 *ptr += sizeof(uint32_t);
1884 forUnmarshaling->pNext = nullptr;
1885 if (pNext_size) {
1886 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1887 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1888 *ptr += sizeof(VkStructureType);
1889 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1890 vkStream->alloc((void**)&forUnmarshaling->pNext,
1891 goldfish_vk_extension_struct_size_with_stream_features(
1892 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1893 *(VkStructureType*)forUnmarshaling->pNext = extType;
1894 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1895 ptr);
1896 }
1897 memcpy((VkPipelineShaderStageCreateFlags*)&forUnmarshaling->flags, *ptr,
1898 sizeof(VkPipelineShaderStageCreateFlags));
1899 *ptr += sizeof(VkPipelineShaderStageCreateFlags);
1900 memcpy((VkShaderStageFlagBits*)&forUnmarshaling->stage, *ptr, sizeof(VkShaderStageFlagBits));
1901 *ptr += sizeof(VkShaderStageFlagBits);
1902 uint64_t cgen_var_0;
1903 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1904 *ptr += 1 * 8;
1905 *(VkShaderModule*)&forUnmarshaling->module =
1906 (VkShaderModule)unbox_VkShaderModule((VkShaderModule)(*&cgen_var_0));
1907 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pName, ptr);
1908 // WARNING PTR CHECK
1909 memcpy((VkSpecializationInfo**)&forUnmarshaling->pSpecializationInfo, (*ptr), 8);
1910 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pSpecializationInfo);
1911 *ptr += 8;
1912 if (forUnmarshaling->pSpecializationInfo) {
1913 vkStream->alloc((void**)&forUnmarshaling->pSpecializationInfo,
1914 sizeof(const VkSpecializationInfo));
1915 reservedunmarshal_VkSpecializationInfo(
1916 vkStream, rootType, (VkSpecializationInfo*)(forUnmarshaling->pSpecializationInfo), ptr);
1917 }
1918 }
1919
reservedunmarshal_VkComputePipelineCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkComputePipelineCreateInfo * forUnmarshaling,uint8_t ** ptr)1920 void reservedunmarshal_VkComputePipelineCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
1921 VkComputePipelineCreateInfo* forUnmarshaling,
1922 uint8_t** ptr) {
1923 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1924 *ptr += sizeof(VkStructureType);
1925 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1926 rootType = forUnmarshaling->sType;
1927 }
1928 uint32_t pNext_size;
1929 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1930 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1931 *ptr += sizeof(uint32_t);
1932 forUnmarshaling->pNext = nullptr;
1933 if (pNext_size) {
1934 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
1935 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
1936 *ptr += sizeof(VkStructureType);
1937 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
1938 vkStream->alloc((void**)&forUnmarshaling->pNext,
1939 goldfish_vk_extension_struct_size_with_stream_features(
1940 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
1941 *(VkStructureType*)forUnmarshaling->pNext = extType;
1942 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
1943 ptr);
1944 }
1945 memcpy((VkPipelineCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkPipelineCreateFlags));
1946 *ptr += sizeof(VkPipelineCreateFlags);
1947 reservedunmarshal_VkPipelineShaderStageCreateInfo(
1948 vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(&forUnmarshaling->stage), ptr);
1949 uint64_t cgen_var_0;
1950 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
1951 *ptr += 1 * 8;
1952 *(VkPipelineLayout*)&forUnmarshaling->layout =
1953 (VkPipelineLayout)unbox_VkPipelineLayout((VkPipelineLayout)(*&cgen_var_0));
1954 uint64_t cgen_var_1;
1955 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
1956 *ptr += 1 * 8;
1957 *(VkPipeline*)&forUnmarshaling->basePipelineHandle =
1958 (VkPipeline)unbox_VkPipeline((VkPipeline)(*&cgen_var_1));
1959 memcpy((int32_t*)&forUnmarshaling->basePipelineIndex, *ptr, sizeof(int32_t));
1960 *ptr += sizeof(int32_t);
1961 }
1962
reservedunmarshal_VkVertexInputBindingDescription(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputBindingDescription * forUnmarshaling,uint8_t ** ptr)1963 void reservedunmarshal_VkVertexInputBindingDescription(
1964 VulkanStream* vkStream, VkStructureType rootType,
1965 VkVertexInputBindingDescription* forUnmarshaling, uint8_t** ptr) {
1966 memcpy((uint32_t*)&forUnmarshaling->binding, *ptr, sizeof(uint32_t));
1967 *ptr += sizeof(uint32_t);
1968 memcpy((uint32_t*)&forUnmarshaling->stride, *ptr, sizeof(uint32_t));
1969 *ptr += sizeof(uint32_t);
1970 memcpy((VkVertexInputRate*)&forUnmarshaling->inputRate, *ptr, sizeof(VkVertexInputRate));
1971 *ptr += sizeof(VkVertexInputRate);
1972 }
1973
reservedunmarshal_VkVertexInputAttributeDescription(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputAttributeDescription * forUnmarshaling,uint8_t ** ptr)1974 void reservedunmarshal_VkVertexInputAttributeDescription(
1975 VulkanStream* vkStream, VkStructureType rootType,
1976 VkVertexInputAttributeDescription* forUnmarshaling, uint8_t** ptr) {
1977 memcpy((uint32_t*)&forUnmarshaling->location, *ptr, sizeof(uint32_t));
1978 *ptr += sizeof(uint32_t);
1979 memcpy((uint32_t*)&forUnmarshaling->binding, *ptr, sizeof(uint32_t));
1980 *ptr += sizeof(uint32_t);
1981 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
1982 *ptr += sizeof(VkFormat);
1983 memcpy((uint32_t*)&forUnmarshaling->offset, *ptr, sizeof(uint32_t));
1984 *ptr += sizeof(uint32_t);
1985 }
1986
reservedunmarshal_VkPipelineVertexInputStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineVertexInputStateCreateInfo * forUnmarshaling,uint8_t ** ptr)1987 void reservedunmarshal_VkPipelineVertexInputStateCreateInfo(
1988 VulkanStream* vkStream, VkStructureType rootType,
1989 VkPipelineVertexInputStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
1990 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
1991 *ptr += sizeof(VkStructureType);
1992 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
1993 rootType = forUnmarshaling->sType;
1994 }
1995 uint32_t pNext_size;
1996 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
1997 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
1998 *ptr += sizeof(uint32_t);
1999 forUnmarshaling->pNext = nullptr;
2000 if (pNext_size) {
2001 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2002 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2003 *ptr += sizeof(VkStructureType);
2004 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2005 vkStream->alloc((void**)&forUnmarshaling->pNext,
2006 goldfish_vk_extension_struct_size_with_stream_features(
2007 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2008 *(VkStructureType*)forUnmarshaling->pNext = extType;
2009 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2010 ptr);
2011 }
2012 memcpy((VkPipelineVertexInputStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2013 sizeof(VkPipelineVertexInputStateCreateFlags));
2014 *ptr += sizeof(VkPipelineVertexInputStateCreateFlags);
2015 memcpy((uint32_t*)&forUnmarshaling->vertexBindingDescriptionCount, *ptr, sizeof(uint32_t));
2016 *ptr += sizeof(uint32_t);
2017 vkStream->alloc((void**)&forUnmarshaling->pVertexBindingDescriptions,
2018 forUnmarshaling->vertexBindingDescriptionCount *
2019 sizeof(const VkVertexInputBindingDescription));
2020 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDescriptionCount; ++i) {
2021 reservedunmarshal_VkVertexInputBindingDescription(
2022 vkStream, rootType,
2023 (VkVertexInputBindingDescription*)(forUnmarshaling->pVertexBindingDescriptions + i),
2024 ptr);
2025 }
2026 memcpy((uint32_t*)&forUnmarshaling->vertexAttributeDescriptionCount, *ptr, sizeof(uint32_t));
2027 *ptr += sizeof(uint32_t);
2028 vkStream->alloc((void**)&forUnmarshaling->pVertexAttributeDescriptions,
2029 forUnmarshaling->vertexAttributeDescriptionCount *
2030 sizeof(const VkVertexInputAttributeDescription));
2031 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexAttributeDescriptionCount; ++i) {
2032 reservedunmarshal_VkVertexInputAttributeDescription(
2033 vkStream, rootType,
2034 (VkVertexInputAttributeDescription*)(forUnmarshaling->pVertexAttributeDescriptions + i),
2035 ptr);
2036 }
2037 }
2038
reservedunmarshal_VkPipelineInputAssemblyStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineInputAssemblyStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2039 void reservedunmarshal_VkPipelineInputAssemblyStateCreateInfo(
2040 VulkanStream* vkStream, VkStructureType rootType,
2041 VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2042 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2043 *ptr += sizeof(VkStructureType);
2044 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2045 rootType = forUnmarshaling->sType;
2046 }
2047 uint32_t pNext_size;
2048 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2049 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2050 *ptr += sizeof(uint32_t);
2051 forUnmarshaling->pNext = nullptr;
2052 if (pNext_size) {
2053 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2054 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2055 *ptr += sizeof(VkStructureType);
2056 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2057 vkStream->alloc((void**)&forUnmarshaling->pNext,
2058 goldfish_vk_extension_struct_size_with_stream_features(
2059 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2060 *(VkStructureType*)forUnmarshaling->pNext = extType;
2061 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2062 ptr);
2063 }
2064 memcpy((VkPipelineInputAssemblyStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2065 sizeof(VkPipelineInputAssemblyStateCreateFlags));
2066 *ptr += sizeof(VkPipelineInputAssemblyStateCreateFlags);
2067 memcpy((VkPrimitiveTopology*)&forUnmarshaling->topology, *ptr, sizeof(VkPrimitiveTopology));
2068 *ptr += sizeof(VkPrimitiveTopology);
2069 memcpy((VkBool32*)&forUnmarshaling->primitiveRestartEnable, *ptr, sizeof(VkBool32));
2070 *ptr += sizeof(VkBool32);
2071 }
2072
reservedunmarshal_VkPipelineTessellationStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineTessellationStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2073 void reservedunmarshal_VkPipelineTessellationStateCreateInfo(
2074 VulkanStream* vkStream, VkStructureType rootType,
2075 VkPipelineTessellationStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2076 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2077 *ptr += sizeof(VkStructureType);
2078 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2079 rootType = forUnmarshaling->sType;
2080 }
2081 uint32_t pNext_size;
2082 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2083 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2084 *ptr += sizeof(uint32_t);
2085 forUnmarshaling->pNext = nullptr;
2086 if (pNext_size) {
2087 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2088 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2089 *ptr += sizeof(VkStructureType);
2090 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2091 vkStream->alloc((void**)&forUnmarshaling->pNext,
2092 goldfish_vk_extension_struct_size_with_stream_features(
2093 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2094 *(VkStructureType*)forUnmarshaling->pNext = extType;
2095 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2096 ptr);
2097 }
2098 memcpy((VkPipelineTessellationStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2099 sizeof(VkPipelineTessellationStateCreateFlags));
2100 *ptr += sizeof(VkPipelineTessellationStateCreateFlags);
2101 memcpy((uint32_t*)&forUnmarshaling->patchControlPoints, *ptr, sizeof(uint32_t));
2102 *ptr += sizeof(uint32_t);
2103 }
2104
reservedunmarshal_VkViewport(VulkanStream * vkStream,VkStructureType rootType,VkViewport * forUnmarshaling,uint8_t ** ptr)2105 void reservedunmarshal_VkViewport(VulkanStream* vkStream, VkStructureType rootType,
2106 VkViewport* forUnmarshaling, uint8_t** ptr) {
2107 memcpy((float*)&forUnmarshaling->x, *ptr, sizeof(float));
2108 *ptr += sizeof(float);
2109 memcpy((float*)&forUnmarshaling->y, *ptr, sizeof(float));
2110 *ptr += sizeof(float);
2111 memcpy((float*)&forUnmarshaling->width, *ptr, sizeof(float));
2112 *ptr += sizeof(float);
2113 memcpy((float*)&forUnmarshaling->height, *ptr, sizeof(float));
2114 *ptr += sizeof(float);
2115 memcpy((float*)&forUnmarshaling->minDepth, *ptr, sizeof(float));
2116 *ptr += sizeof(float);
2117 memcpy((float*)&forUnmarshaling->maxDepth, *ptr, sizeof(float));
2118 *ptr += sizeof(float);
2119 }
2120
reservedunmarshal_VkPipelineViewportStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineViewportStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2121 void reservedunmarshal_VkPipelineViewportStateCreateInfo(
2122 VulkanStream* vkStream, VkStructureType rootType,
2123 VkPipelineViewportStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2124 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2125 *ptr += sizeof(VkStructureType);
2126 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2127 rootType = forUnmarshaling->sType;
2128 }
2129 uint32_t pNext_size;
2130 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2131 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2132 *ptr += sizeof(uint32_t);
2133 forUnmarshaling->pNext = nullptr;
2134 if (pNext_size) {
2135 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2136 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2137 *ptr += sizeof(VkStructureType);
2138 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2139 vkStream->alloc((void**)&forUnmarshaling->pNext,
2140 goldfish_vk_extension_struct_size_with_stream_features(
2141 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2142 *(VkStructureType*)forUnmarshaling->pNext = extType;
2143 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2144 ptr);
2145 }
2146 memcpy((VkPipelineViewportStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2147 sizeof(VkPipelineViewportStateCreateFlags));
2148 *ptr += sizeof(VkPipelineViewportStateCreateFlags);
2149 memcpy((uint32_t*)&forUnmarshaling->viewportCount, *ptr, sizeof(uint32_t));
2150 *ptr += sizeof(uint32_t);
2151 // WARNING PTR CHECK
2152 memcpy((VkViewport**)&forUnmarshaling->pViewports, (*ptr), 8);
2153 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pViewports);
2154 *ptr += 8;
2155 if (forUnmarshaling->pViewports) {
2156 vkStream->alloc((void**)&forUnmarshaling->pViewports,
2157 forUnmarshaling->viewportCount * sizeof(const VkViewport));
2158 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i) {
2159 reservedunmarshal_VkViewport(vkStream, rootType,
2160 (VkViewport*)(forUnmarshaling->pViewports + i), ptr);
2161 }
2162 }
2163 memcpy((uint32_t*)&forUnmarshaling->scissorCount, *ptr, sizeof(uint32_t));
2164 *ptr += sizeof(uint32_t);
2165 // WARNING PTR CHECK
2166 memcpy((VkRect2D**)&forUnmarshaling->pScissors, (*ptr), 8);
2167 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pScissors);
2168 *ptr += 8;
2169 if (forUnmarshaling->pScissors) {
2170 vkStream->alloc((void**)&forUnmarshaling->pScissors,
2171 forUnmarshaling->scissorCount * sizeof(const VkRect2D));
2172 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->scissorCount; ++i) {
2173 reservedunmarshal_VkRect2D(vkStream, rootType,
2174 (VkRect2D*)(forUnmarshaling->pScissors + i), ptr);
2175 }
2176 }
2177 }
2178
reservedunmarshal_VkPipelineRasterizationStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2179 void reservedunmarshal_VkPipelineRasterizationStateCreateInfo(
2180 VulkanStream* vkStream, VkStructureType rootType,
2181 VkPipelineRasterizationStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2182 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2183 *ptr += sizeof(VkStructureType);
2184 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2185 rootType = forUnmarshaling->sType;
2186 }
2187 uint32_t pNext_size;
2188 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2189 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2190 *ptr += sizeof(uint32_t);
2191 forUnmarshaling->pNext = nullptr;
2192 if (pNext_size) {
2193 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2194 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2195 *ptr += sizeof(VkStructureType);
2196 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2197 vkStream->alloc((void**)&forUnmarshaling->pNext,
2198 goldfish_vk_extension_struct_size_with_stream_features(
2199 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2200 *(VkStructureType*)forUnmarshaling->pNext = extType;
2201 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2202 ptr);
2203 }
2204 memcpy((VkPipelineRasterizationStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2205 sizeof(VkPipelineRasterizationStateCreateFlags));
2206 *ptr += sizeof(VkPipelineRasterizationStateCreateFlags);
2207 memcpy((VkBool32*)&forUnmarshaling->depthClampEnable, *ptr, sizeof(VkBool32));
2208 *ptr += sizeof(VkBool32);
2209 memcpy((VkBool32*)&forUnmarshaling->rasterizerDiscardEnable, *ptr, sizeof(VkBool32));
2210 *ptr += sizeof(VkBool32);
2211 memcpy((VkPolygonMode*)&forUnmarshaling->polygonMode, *ptr, sizeof(VkPolygonMode));
2212 *ptr += sizeof(VkPolygonMode);
2213 memcpy((VkCullModeFlags*)&forUnmarshaling->cullMode, *ptr, sizeof(VkCullModeFlags));
2214 *ptr += sizeof(VkCullModeFlags);
2215 memcpy((VkFrontFace*)&forUnmarshaling->frontFace, *ptr, sizeof(VkFrontFace));
2216 *ptr += sizeof(VkFrontFace);
2217 memcpy((VkBool32*)&forUnmarshaling->depthBiasEnable, *ptr, sizeof(VkBool32));
2218 *ptr += sizeof(VkBool32);
2219 memcpy((float*)&forUnmarshaling->depthBiasConstantFactor, *ptr, sizeof(float));
2220 *ptr += sizeof(float);
2221 memcpy((float*)&forUnmarshaling->depthBiasClamp, *ptr, sizeof(float));
2222 *ptr += sizeof(float);
2223 memcpy((float*)&forUnmarshaling->depthBiasSlopeFactor, *ptr, sizeof(float));
2224 *ptr += sizeof(float);
2225 memcpy((float*)&forUnmarshaling->lineWidth, *ptr, sizeof(float));
2226 *ptr += sizeof(float);
2227 }
2228
reservedunmarshal_VkPipelineMultisampleStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineMultisampleStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2229 void reservedunmarshal_VkPipelineMultisampleStateCreateInfo(
2230 VulkanStream* vkStream, VkStructureType rootType,
2231 VkPipelineMultisampleStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2232 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2233 *ptr += sizeof(VkStructureType);
2234 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2235 rootType = forUnmarshaling->sType;
2236 }
2237 uint32_t pNext_size;
2238 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2239 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2240 *ptr += sizeof(uint32_t);
2241 forUnmarshaling->pNext = nullptr;
2242 if (pNext_size) {
2243 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2244 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2245 *ptr += sizeof(VkStructureType);
2246 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2247 vkStream->alloc((void**)&forUnmarshaling->pNext,
2248 goldfish_vk_extension_struct_size_with_stream_features(
2249 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2250 *(VkStructureType*)forUnmarshaling->pNext = extType;
2251 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2252 ptr);
2253 }
2254 memcpy((VkPipelineMultisampleStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2255 sizeof(VkPipelineMultisampleStateCreateFlags));
2256 *ptr += sizeof(VkPipelineMultisampleStateCreateFlags);
2257 memcpy((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples, *ptr,
2258 sizeof(VkSampleCountFlagBits));
2259 *ptr += sizeof(VkSampleCountFlagBits);
2260 memcpy((VkBool32*)&forUnmarshaling->sampleShadingEnable, *ptr, sizeof(VkBool32));
2261 *ptr += sizeof(VkBool32);
2262 memcpy((float*)&forUnmarshaling->minSampleShading, *ptr, sizeof(float));
2263 *ptr += sizeof(float);
2264 // WARNING PTR CHECK
2265 memcpy((VkSampleMask**)&forUnmarshaling->pSampleMask, (*ptr), 8);
2266 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pSampleMask);
2267 *ptr += 8;
2268 if (forUnmarshaling->pSampleMask) {
2269 vkStream->alloc(
2270 (void**)&forUnmarshaling->pSampleMask,
2271 (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2272 memcpy((VkSampleMask*)forUnmarshaling->pSampleMask, *ptr,
2273 (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
2274 *ptr += (((forUnmarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask);
2275 }
2276 memcpy((VkBool32*)&forUnmarshaling->alphaToCoverageEnable, *ptr, sizeof(VkBool32));
2277 *ptr += sizeof(VkBool32);
2278 memcpy((VkBool32*)&forUnmarshaling->alphaToOneEnable, *ptr, sizeof(VkBool32));
2279 *ptr += sizeof(VkBool32);
2280 }
2281
reservedunmarshal_VkStencilOpState(VulkanStream * vkStream,VkStructureType rootType,VkStencilOpState * forUnmarshaling,uint8_t ** ptr)2282 void reservedunmarshal_VkStencilOpState(VulkanStream* vkStream, VkStructureType rootType,
2283 VkStencilOpState* forUnmarshaling, uint8_t** ptr) {
2284 memcpy((VkStencilOp*)&forUnmarshaling->failOp, *ptr, sizeof(VkStencilOp));
2285 *ptr += sizeof(VkStencilOp);
2286 memcpy((VkStencilOp*)&forUnmarshaling->passOp, *ptr, sizeof(VkStencilOp));
2287 *ptr += sizeof(VkStencilOp);
2288 memcpy((VkStencilOp*)&forUnmarshaling->depthFailOp, *ptr, sizeof(VkStencilOp));
2289 *ptr += sizeof(VkStencilOp);
2290 memcpy((VkCompareOp*)&forUnmarshaling->compareOp, *ptr, sizeof(VkCompareOp));
2291 *ptr += sizeof(VkCompareOp);
2292 memcpy((uint32_t*)&forUnmarshaling->compareMask, *ptr, sizeof(uint32_t));
2293 *ptr += sizeof(uint32_t);
2294 memcpy((uint32_t*)&forUnmarshaling->writeMask, *ptr, sizeof(uint32_t));
2295 *ptr += sizeof(uint32_t);
2296 memcpy((uint32_t*)&forUnmarshaling->reference, *ptr, sizeof(uint32_t));
2297 *ptr += sizeof(uint32_t);
2298 }
2299
reservedunmarshal_VkPipelineDepthStencilStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineDepthStencilStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2300 void reservedunmarshal_VkPipelineDepthStencilStateCreateInfo(
2301 VulkanStream* vkStream, VkStructureType rootType,
2302 VkPipelineDepthStencilStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2303 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2304 *ptr += sizeof(VkStructureType);
2305 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2306 rootType = forUnmarshaling->sType;
2307 }
2308 uint32_t pNext_size;
2309 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2310 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2311 *ptr += sizeof(uint32_t);
2312 forUnmarshaling->pNext = nullptr;
2313 if (pNext_size) {
2314 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2315 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2316 *ptr += sizeof(VkStructureType);
2317 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2318 vkStream->alloc((void**)&forUnmarshaling->pNext,
2319 goldfish_vk_extension_struct_size_with_stream_features(
2320 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2321 *(VkStructureType*)forUnmarshaling->pNext = extType;
2322 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2323 ptr);
2324 }
2325 memcpy((VkPipelineDepthStencilStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2326 sizeof(VkPipelineDepthStencilStateCreateFlags));
2327 *ptr += sizeof(VkPipelineDepthStencilStateCreateFlags);
2328 memcpy((VkBool32*)&forUnmarshaling->depthTestEnable, *ptr, sizeof(VkBool32));
2329 *ptr += sizeof(VkBool32);
2330 memcpy((VkBool32*)&forUnmarshaling->depthWriteEnable, *ptr, sizeof(VkBool32));
2331 *ptr += sizeof(VkBool32);
2332 memcpy((VkCompareOp*)&forUnmarshaling->depthCompareOp, *ptr, sizeof(VkCompareOp));
2333 *ptr += sizeof(VkCompareOp);
2334 memcpy((VkBool32*)&forUnmarshaling->depthBoundsTestEnable, *ptr, sizeof(VkBool32));
2335 *ptr += sizeof(VkBool32);
2336 memcpy((VkBool32*)&forUnmarshaling->stencilTestEnable, *ptr, sizeof(VkBool32));
2337 *ptr += sizeof(VkBool32);
2338 reservedunmarshal_VkStencilOpState(vkStream, rootType,
2339 (VkStencilOpState*)(&forUnmarshaling->front), ptr);
2340 reservedunmarshal_VkStencilOpState(vkStream, rootType,
2341 (VkStencilOpState*)(&forUnmarshaling->back), ptr);
2342 memcpy((float*)&forUnmarshaling->minDepthBounds, *ptr, sizeof(float));
2343 *ptr += sizeof(float);
2344 memcpy((float*)&forUnmarshaling->maxDepthBounds, *ptr, sizeof(float));
2345 *ptr += sizeof(float);
2346 }
2347
reservedunmarshal_VkPipelineColorBlendAttachmentState(VulkanStream * vkStream,VkStructureType rootType,VkPipelineColorBlendAttachmentState * forUnmarshaling,uint8_t ** ptr)2348 void reservedunmarshal_VkPipelineColorBlendAttachmentState(
2349 VulkanStream* vkStream, VkStructureType rootType,
2350 VkPipelineColorBlendAttachmentState* forUnmarshaling, uint8_t** ptr) {
2351 memcpy((VkBool32*)&forUnmarshaling->blendEnable, *ptr, sizeof(VkBool32));
2352 *ptr += sizeof(VkBool32);
2353 memcpy((VkBlendFactor*)&forUnmarshaling->srcColorBlendFactor, *ptr, sizeof(VkBlendFactor));
2354 *ptr += sizeof(VkBlendFactor);
2355 memcpy((VkBlendFactor*)&forUnmarshaling->dstColorBlendFactor, *ptr, sizeof(VkBlendFactor));
2356 *ptr += sizeof(VkBlendFactor);
2357 memcpy((VkBlendOp*)&forUnmarshaling->colorBlendOp, *ptr, sizeof(VkBlendOp));
2358 *ptr += sizeof(VkBlendOp);
2359 memcpy((VkBlendFactor*)&forUnmarshaling->srcAlphaBlendFactor, *ptr, sizeof(VkBlendFactor));
2360 *ptr += sizeof(VkBlendFactor);
2361 memcpy((VkBlendFactor*)&forUnmarshaling->dstAlphaBlendFactor, *ptr, sizeof(VkBlendFactor));
2362 *ptr += sizeof(VkBlendFactor);
2363 memcpy((VkBlendOp*)&forUnmarshaling->alphaBlendOp, *ptr, sizeof(VkBlendOp));
2364 *ptr += sizeof(VkBlendOp);
2365 memcpy((VkColorComponentFlags*)&forUnmarshaling->colorWriteMask, *ptr,
2366 sizeof(VkColorComponentFlags));
2367 *ptr += sizeof(VkColorComponentFlags);
2368 }
2369
reservedunmarshal_VkPipelineColorBlendStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineColorBlendStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2370 void reservedunmarshal_VkPipelineColorBlendStateCreateInfo(
2371 VulkanStream* vkStream, VkStructureType rootType,
2372 VkPipelineColorBlendStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2373 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2374 *ptr += sizeof(VkStructureType);
2375 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2376 rootType = forUnmarshaling->sType;
2377 }
2378 uint32_t pNext_size;
2379 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2380 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2381 *ptr += sizeof(uint32_t);
2382 forUnmarshaling->pNext = nullptr;
2383 if (pNext_size) {
2384 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2385 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2386 *ptr += sizeof(VkStructureType);
2387 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2388 vkStream->alloc((void**)&forUnmarshaling->pNext,
2389 goldfish_vk_extension_struct_size_with_stream_features(
2390 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2391 *(VkStructureType*)forUnmarshaling->pNext = extType;
2392 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2393 ptr);
2394 }
2395 memcpy((VkPipelineColorBlendStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2396 sizeof(VkPipelineColorBlendStateCreateFlags));
2397 *ptr += sizeof(VkPipelineColorBlendStateCreateFlags);
2398 memcpy((VkBool32*)&forUnmarshaling->logicOpEnable, *ptr, sizeof(VkBool32));
2399 *ptr += sizeof(VkBool32);
2400 memcpy((VkLogicOp*)&forUnmarshaling->logicOp, *ptr, sizeof(VkLogicOp));
2401 *ptr += sizeof(VkLogicOp);
2402 memcpy((uint32_t*)&forUnmarshaling->attachmentCount, *ptr, sizeof(uint32_t));
2403 *ptr += sizeof(uint32_t);
2404 vkStream->alloc(
2405 (void**)&forUnmarshaling->pAttachments,
2406 forUnmarshaling->attachmentCount * sizeof(const VkPipelineColorBlendAttachmentState));
2407 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
2408 reservedunmarshal_VkPipelineColorBlendAttachmentState(
2409 vkStream, rootType,
2410 (VkPipelineColorBlendAttachmentState*)(forUnmarshaling->pAttachments + i), ptr);
2411 }
2412 memcpy((float*)forUnmarshaling->blendConstants, *ptr, 4 * sizeof(float));
2413 *ptr += 4 * sizeof(float);
2414 }
2415
reservedunmarshal_VkPipelineDynamicStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineDynamicStateCreateInfo * forUnmarshaling,uint8_t ** ptr)2416 void reservedunmarshal_VkPipelineDynamicStateCreateInfo(
2417 VulkanStream* vkStream, VkStructureType rootType,
2418 VkPipelineDynamicStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
2419 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2420 *ptr += sizeof(VkStructureType);
2421 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2422 rootType = forUnmarshaling->sType;
2423 }
2424 uint32_t pNext_size;
2425 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2426 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2427 *ptr += sizeof(uint32_t);
2428 forUnmarshaling->pNext = nullptr;
2429 if (pNext_size) {
2430 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2431 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2432 *ptr += sizeof(VkStructureType);
2433 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2434 vkStream->alloc((void**)&forUnmarshaling->pNext,
2435 goldfish_vk_extension_struct_size_with_stream_features(
2436 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2437 *(VkStructureType*)forUnmarshaling->pNext = extType;
2438 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2439 ptr);
2440 }
2441 memcpy((VkPipelineDynamicStateCreateFlags*)&forUnmarshaling->flags, *ptr,
2442 sizeof(VkPipelineDynamicStateCreateFlags));
2443 *ptr += sizeof(VkPipelineDynamicStateCreateFlags);
2444 memcpy((uint32_t*)&forUnmarshaling->dynamicStateCount, *ptr, sizeof(uint32_t));
2445 *ptr += sizeof(uint32_t);
2446 vkStream->alloc((void**)&forUnmarshaling->pDynamicStates,
2447 forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2448 memcpy((VkDynamicState*)forUnmarshaling->pDynamicStates, *ptr,
2449 forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState));
2450 *ptr += forUnmarshaling->dynamicStateCount * sizeof(const VkDynamicState);
2451 }
2452
reservedunmarshal_VkGraphicsPipelineCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkGraphicsPipelineCreateInfo * forUnmarshaling,uint8_t ** ptr)2453 void reservedunmarshal_VkGraphicsPipelineCreateInfo(VulkanStream* vkStream,
2454 VkStructureType rootType,
2455 VkGraphicsPipelineCreateInfo* forUnmarshaling,
2456 uint8_t** ptr) {
2457 uint32_t hasRasterization = 1;
2458 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2459 memcpy((uint32_t*)&hasRasterization, (*ptr), 4);
2460 android::base::Stream::fromBe32((uint8_t*)&hasRasterization);
2461 *ptr += 4;
2462 }
2463 uint32_t hasTessellation = 1;
2464 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2465 memcpy((uint32_t*)&hasTessellation, (*ptr), 4);
2466 android::base::Stream::fromBe32((uint8_t*)&hasTessellation);
2467 *ptr += 4;
2468 }
2469 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2470 *ptr += sizeof(VkStructureType);
2471 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2472 rootType = forUnmarshaling->sType;
2473 }
2474 uint32_t pNext_size;
2475 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2476 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2477 *ptr += sizeof(uint32_t);
2478 forUnmarshaling->pNext = nullptr;
2479 if (pNext_size) {
2480 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2481 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2482 *ptr += sizeof(VkStructureType);
2483 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2484 vkStream->alloc((void**)&forUnmarshaling->pNext,
2485 goldfish_vk_extension_struct_size_with_stream_features(
2486 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2487 *(VkStructureType*)forUnmarshaling->pNext = extType;
2488 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2489 ptr);
2490 }
2491 memcpy((VkPipelineCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkPipelineCreateFlags));
2492 *ptr += sizeof(VkPipelineCreateFlags);
2493 memcpy((uint32_t*)&forUnmarshaling->stageCount, *ptr, sizeof(uint32_t));
2494 *ptr += sizeof(uint32_t);
2495 vkStream->alloc((void**)&forUnmarshaling->pStages,
2496 forUnmarshaling->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
2497 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i) {
2498 reservedunmarshal_VkPipelineShaderStageCreateInfo(
2499 vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i),
2500 ptr);
2501 }
2502 // WARNING PTR CHECK
2503 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2504 memcpy((VkPipelineVertexInputStateCreateInfo**)&forUnmarshaling->pVertexInputState, (*ptr),
2505 8);
2506 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pVertexInputState);
2507 *ptr += 8;
2508 }
2509 if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2510 forUnmarshaling->pVertexInputState)) {
2511 vkStream->alloc((void**)&forUnmarshaling->pVertexInputState,
2512 sizeof(const VkPipelineVertexInputStateCreateInfo));
2513 reservedunmarshal_VkPipelineVertexInputStateCreateInfo(
2514 vkStream, rootType,
2515 (VkPipelineVertexInputStateCreateInfo*)(forUnmarshaling->pVertexInputState), ptr);
2516 }
2517 // WARNING PTR CHECK
2518 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2519 memcpy((VkPipelineInputAssemblyStateCreateInfo**)&forUnmarshaling->pInputAssemblyState,
2520 (*ptr), 8);
2521 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pInputAssemblyState);
2522 *ptr += 8;
2523 }
2524 if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2525 forUnmarshaling->pInputAssemblyState)) {
2526 vkStream->alloc((void**)&forUnmarshaling->pInputAssemblyState,
2527 sizeof(const VkPipelineInputAssemblyStateCreateInfo));
2528 reservedunmarshal_VkPipelineInputAssemblyStateCreateInfo(
2529 vkStream, rootType,
2530 (VkPipelineInputAssemblyStateCreateInfo*)(forUnmarshaling->pInputAssemblyState), ptr);
2531 }
2532 // WARNING PTR CHECK
2533 memcpy((VkPipelineTessellationStateCreateInfo**)&forUnmarshaling->pTessellationState, (*ptr),
2534 8);
2535 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pTessellationState);
2536 *ptr += 8;
2537 if (forUnmarshaling->pTessellationState) {
2538 if (hasTessellation) {
2539 vkStream->alloc((void**)&forUnmarshaling->pTessellationState,
2540 sizeof(const VkPipelineTessellationStateCreateInfo));
2541 reservedunmarshal_VkPipelineTessellationStateCreateInfo(
2542 vkStream, rootType,
2543 (VkPipelineTessellationStateCreateInfo*)(forUnmarshaling->pTessellationState), ptr);
2544 } else {
2545 forUnmarshaling->pTessellationState = 0;
2546 }
2547 }
2548 // WARNING PTR CHECK
2549 memcpy((VkPipelineViewportStateCreateInfo**)&forUnmarshaling->pViewportState, (*ptr), 8);
2550 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pViewportState);
2551 *ptr += 8;
2552 if (forUnmarshaling->pViewportState) {
2553 if (hasRasterization) {
2554 vkStream->alloc((void**)&forUnmarshaling->pViewportState,
2555 sizeof(const VkPipelineViewportStateCreateInfo));
2556 reservedunmarshal_VkPipelineViewportStateCreateInfo(
2557 vkStream, rootType,
2558 (VkPipelineViewportStateCreateInfo*)(forUnmarshaling->pViewportState), ptr);
2559 } else {
2560 forUnmarshaling->pViewportState = 0;
2561 }
2562 }
2563 // WARNING PTR CHECK
2564 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
2565 memcpy((VkPipelineRasterizationStateCreateInfo**)&forUnmarshaling->pRasterizationState,
2566 (*ptr), 8);
2567 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pRasterizationState);
2568 *ptr += 8;
2569 }
2570 if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
2571 forUnmarshaling->pRasterizationState)) {
2572 vkStream->alloc((void**)&forUnmarshaling->pRasterizationState,
2573 sizeof(const VkPipelineRasterizationStateCreateInfo));
2574 reservedunmarshal_VkPipelineRasterizationStateCreateInfo(
2575 vkStream, rootType,
2576 (VkPipelineRasterizationStateCreateInfo*)(forUnmarshaling->pRasterizationState), ptr);
2577 }
2578 // WARNING PTR CHECK
2579 memcpy((VkPipelineMultisampleStateCreateInfo**)&forUnmarshaling->pMultisampleState, (*ptr), 8);
2580 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pMultisampleState);
2581 *ptr += 8;
2582 if (forUnmarshaling->pMultisampleState) {
2583 if (hasRasterization) {
2584 vkStream->alloc((void**)&forUnmarshaling->pMultisampleState,
2585 sizeof(const VkPipelineMultisampleStateCreateInfo));
2586 reservedunmarshal_VkPipelineMultisampleStateCreateInfo(
2587 vkStream, rootType,
2588 (VkPipelineMultisampleStateCreateInfo*)(forUnmarshaling->pMultisampleState), ptr);
2589 } else {
2590 forUnmarshaling->pMultisampleState = 0;
2591 }
2592 }
2593 // WARNING PTR CHECK
2594 memcpy((VkPipelineDepthStencilStateCreateInfo**)&forUnmarshaling->pDepthStencilState, (*ptr),
2595 8);
2596 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDepthStencilState);
2597 *ptr += 8;
2598 if (forUnmarshaling->pDepthStencilState) {
2599 if (hasRasterization) {
2600 vkStream->alloc((void**)&forUnmarshaling->pDepthStencilState,
2601 sizeof(const VkPipelineDepthStencilStateCreateInfo));
2602 reservedunmarshal_VkPipelineDepthStencilStateCreateInfo(
2603 vkStream, rootType,
2604 (VkPipelineDepthStencilStateCreateInfo*)(forUnmarshaling->pDepthStencilState), ptr);
2605 } else {
2606 forUnmarshaling->pDepthStencilState = 0;
2607 }
2608 }
2609 // WARNING PTR CHECK
2610 memcpy((VkPipelineColorBlendStateCreateInfo**)&forUnmarshaling->pColorBlendState, (*ptr), 8);
2611 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pColorBlendState);
2612 *ptr += 8;
2613 if (forUnmarshaling->pColorBlendState) {
2614 if (hasRasterization) {
2615 vkStream->alloc((void**)&forUnmarshaling->pColorBlendState,
2616 sizeof(const VkPipelineColorBlendStateCreateInfo));
2617 reservedunmarshal_VkPipelineColorBlendStateCreateInfo(
2618 vkStream, rootType,
2619 (VkPipelineColorBlendStateCreateInfo*)(forUnmarshaling->pColorBlendState), ptr);
2620 } else {
2621 forUnmarshaling->pColorBlendState = 0;
2622 }
2623 }
2624 // WARNING PTR CHECK
2625 memcpy((VkPipelineDynamicStateCreateInfo**)&forUnmarshaling->pDynamicState, (*ptr), 8);
2626 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDynamicState);
2627 *ptr += 8;
2628 if (forUnmarshaling->pDynamicState) {
2629 vkStream->alloc((void**)&forUnmarshaling->pDynamicState,
2630 sizeof(const VkPipelineDynamicStateCreateInfo));
2631 reservedunmarshal_VkPipelineDynamicStateCreateInfo(
2632 vkStream, rootType, (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState),
2633 ptr);
2634 }
2635 uint64_t cgen_var_6;
2636 memcpy((uint64_t*)&cgen_var_6, *ptr, 1 * 8);
2637 *ptr += 1 * 8;
2638 *(VkPipelineLayout*)&forUnmarshaling->layout =
2639 (VkPipelineLayout)unbox_VkPipelineLayout((VkPipelineLayout)(*&cgen_var_6));
2640 uint64_t cgen_var_7;
2641 memcpy((uint64_t*)&cgen_var_7, *ptr, 1 * 8);
2642 *ptr += 1 * 8;
2643 *(VkRenderPass*)&forUnmarshaling->renderPass =
2644 (VkRenderPass)unbox_VkRenderPass((VkRenderPass)(*&cgen_var_7));
2645 memcpy((uint32_t*)&forUnmarshaling->subpass, *ptr, sizeof(uint32_t));
2646 *ptr += sizeof(uint32_t);
2647 uint64_t cgen_var_8;
2648 memcpy((uint64_t*)&cgen_var_8, *ptr, 1 * 8);
2649 *ptr += 1 * 8;
2650 *(VkPipeline*)&forUnmarshaling->basePipelineHandle =
2651 (VkPipeline)unbox_VkPipeline((VkPipeline)(*&cgen_var_8));
2652 memcpy((int32_t*)&forUnmarshaling->basePipelineIndex, *ptr, sizeof(int32_t));
2653 *ptr += sizeof(int32_t);
2654 }
2655
reservedunmarshal_VkPushConstantRange(VulkanStream * vkStream,VkStructureType rootType,VkPushConstantRange * forUnmarshaling,uint8_t ** ptr)2656 void reservedunmarshal_VkPushConstantRange(VulkanStream* vkStream, VkStructureType rootType,
2657 VkPushConstantRange* forUnmarshaling, uint8_t** ptr) {
2658 memcpy((VkShaderStageFlags*)&forUnmarshaling->stageFlags, *ptr, sizeof(VkShaderStageFlags));
2659 *ptr += sizeof(VkShaderStageFlags);
2660 memcpy((uint32_t*)&forUnmarshaling->offset, *ptr, sizeof(uint32_t));
2661 *ptr += sizeof(uint32_t);
2662 memcpy((uint32_t*)&forUnmarshaling->size, *ptr, sizeof(uint32_t));
2663 *ptr += sizeof(uint32_t);
2664 }
2665
reservedunmarshal_VkPipelineLayoutCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineLayoutCreateInfo * forUnmarshaling,uint8_t ** ptr)2666 void reservedunmarshal_VkPipelineLayoutCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2667 VkPipelineLayoutCreateInfo* forUnmarshaling,
2668 uint8_t** ptr) {
2669 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2670 *ptr += sizeof(VkStructureType);
2671 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2672 rootType = forUnmarshaling->sType;
2673 }
2674 uint32_t pNext_size;
2675 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2676 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2677 *ptr += sizeof(uint32_t);
2678 forUnmarshaling->pNext = nullptr;
2679 if (pNext_size) {
2680 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2681 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2682 *ptr += sizeof(VkStructureType);
2683 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2684 vkStream->alloc((void**)&forUnmarshaling->pNext,
2685 goldfish_vk_extension_struct_size_with_stream_features(
2686 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2687 *(VkStructureType*)forUnmarshaling->pNext = extType;
2688 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2689 ptr);
2690 }
2691 memcpy((VkPipelineLayoutCreateFlags*)&forUnmarshaling->flags, *ptr,
2692 sizeof(VkPipelineLayoutCreateFlags));
2693 *ptr += sizeof(VkPipelineLayoutCreateFlags);
2694 memcpy((uint32_t*)&forUnmarshaling->setLayoutCount, *ptr, sizeof(uint32_t));
2695 *ptr += sizeof(uint32_t);
2696 vkStream->alloc((void**)&forUnmarshaling->pSetLayouts,
2697 forUnmarshaling->setLayoutCount * sizeof(const VkDescriptorSetLayout));
2698 if (forUnmarshaling->setLayoutCount) {
2699 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
2700 *ptr += 8 * forUnmarshaling->setLayoutCount;
2701 if (forUnmarshaling) {
2702 for (uint32_t k = 0; k < forUnmarshaling->setLayoutCount; ++k) {
2703 uint64_t tmpval;
2704 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
2705 *(((VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts) + k) =
2706 tmpval ? (VkDescriptorSetLayout)unbox_VkDescriptorSetLayout(
2707 (VkDescriptorSetLayout)tmpval)
2708 : VK_NULL_HANDLE;
2709 }
2710 }
2711 }
2712 memcpy((uint32_t*)&forUnmarshaling->pushConstantRangeCount, *ptr, sizeof(uint32_t));
2713 *ptr += sizeof(uint32_t);
2714 vkStream->alloc((void**)&forUnmarshaling->pPushConstantRanges,
2715 forUnmarshaling->pushConstantRangeCount * sizeof(const VkPushConstantRange));
2716 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i) {
2717 reservedunmarshal_VkPushConstantRange(
2718 vkStream, rootType, (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i),
2719 ptr);
2720 }
2721 }
2722
reservedunmarshal_VkSamplerCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerCreateInfo * forUnmarshaling,uint8_t ** ptr)2723 void reservedunmarshal_VkSamplerCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2724 VkSamplerCreateInfo* forUnmarshaling, uint8_t** ptr) {
2725 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2726 *ptr += sizeof(VkStructureType);
2727 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2728 rootType = forUnmarshaling->sType;
2729 }
2730 uint32_t pNext_size;
2731 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2732 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2733 *ptr += sizeof(uint32_t);
2734 forUnmarshaling->pNext = nullptr;
2735 if (pNext_size) {
2736 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2737 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2738 *ptr += sizeof(VkStructureType);
2739 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2740 vkStream->alloc((void**)&forUnmarshaling->pNext,
2741 goldfish_vk_extension_struct_size_with_stream_features(
2742 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2743 *(VkStructureType*)forUnmarshaling->pNext = extType;
2744 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2745 ptr);
2746 }
2747 memcpy((VkSamplerCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkSamplerCreateFlags));
2748 *ptr += sizeof(VkSamplerCreateFlags);
2749 memcpy((VkFilter*)&forUnmarshaling->magFilter, *ptr, sizeof(VkFilter));
2750 *ptr += sizeof(VkFilter);
2751 memcpy((VkFilter*)&forUnmarshaling->minFilter, *ptr, sizeof(VkFilter));
2752 *ptr += sizeof(VkFilter);
2753 memcpy((VkSamplerMipmapMode*)&forUnmarshaling->mipmapMode, *ptr, sizeof(VkSamplerMipmapMode));
2754 *ptr += sizeof(VkSamplerMipmapMode);
2755 memcpy((VkSamplerAddressMode*)&forUnmarshaling->addressModeU, *ptr,
2756 sizeof(VkSamplerAddressMode));
2757 *ptr += sizeof(VkSamplerAddressMode);
2758 memcpy((VkSamplerAddressMode*)&forUnmarshaling->addressModeV, *ptr,
2759 sizeof(VkSamplerAddressMode));
2760 *ptr += sizeof(VkSamplerAddressMode);
2761 memcpy((VkSamplerAddressMode*)&forUnmarshaling->addressModeW, *ptr,
2762 sizeof(VkSamplerAddressMode));
2763 *ptr += sizeof(VkSamplerAddressMode);
2764 memcpy((float*)&forUnmarshaling->mipLodBias, *ptr, sizeof(float));
2765 *ptr += sizeof(float);
2766 memcpy((VkBool32*)&forUnmarshaling->anisotropyEnable, *ptr, sizeof(VkBool32));
2767 *ptr += sizeof(VkBool32);
2768 memcpy((float*)&forUnmarshaling->maxAnisotropy, *ptr, sizeof(float));
2769 *ptr += sizeof(float);
2770 memcpy((VkBool32*)&forUnmarshaling->compareEnable, *ptr, sizeof(VkBool32));
2771 *ptr += sizeof(VkBool32);
2772 memcpy((VkCompareOp*)&forUnmarshaling->compareOp, *ptr, sizeof(VkCompareOp));
2773 *ptr += sizeof(VkCompareOp);
2774 memcpy((float*)&forUnmarshaling->minLod, *ptr, sizeof(float));
2775 *ptr += sizeof(float);
2776 memcpy((float*)&forUnmarshaling->maxLod, *ptr, sizeof(float));
2777 *ptr += sizeof(float);
2778 memcpy((VkBorderColor*)&forUnmarshaling->borderColor, *ptr, sizeof(VkBorderColor));
2779 *ptr += sizeof(VkBorderColor);
2780 memcpy((VkBool32*)&forUnmarshaling->unnormalizedCoordinates, *ptr, sizeof(VkBool32));
2781 *ptr += sizeof(VkBool32);
2782 }
2783
reservedunmarshal_VkCopyDescriptorSet(VulkanStream * vkStream,VkStructureType rootType,VkCopyDescriptorSet * forUnmarshaling,uint8_t ** ptr)2784 void reservedunmarshal_VkCopyDescriptorSet(VulkanStream* vkStream, VkStructureType rootType,
2785 VkCopyDescriptorSet* forUnmarshaling, uint8_t** ptr) {
2786 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2787 *ptr += sizeof(VkStructureType);
2788 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2789 rootType = forUnmarshaling->sType;
2790 }
2791 uint32_t pNext_size;
2792 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2793 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2794 *ptr += sizeof(uint32_t);
2795 forUnmarshaling->pNext = nullptr;
2796 if (pNext_size) {
2797 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2798 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2799 *ptr += sizeof(VkStructureType);
2800 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2801 vkStream->alloc((void**)&forUnmarshaling->pNext,
2802 goldfish_vk_extension_struct_size_with_stream_features(
2803 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2804 *(VkStructureType*)forUnmarshaling->pNext = extType;
2805 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2806 ptr);
2807 }
2808 uint64_t cgen_var_0;
2809 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
2810 *ptr += 1 * 8;
2811 *(VkDescriptorSet*)&forUnmarshaling->srcSet =
2812 (VkDescriptorSet)unbox_VkDescriptorSet((VkDescriptorSet)(*&cgen_var_0));
2813 memcpy((uint32_t*)&forUnmarshaling->srcBinding, *ptr, sizeof(uint32_t));
2814 *ptr += sizeof(uint32_t);
2815 memcpy((uint32_t*)&forUnmarshaling->srcArrayElement, *ptr, sizeof(uint32_t));
2816 *ptr += sizeof(uint32_t);
2817 uint64_t cgen_var_1;
2818 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
2819 *ptr += 1 * 8;
2820 *(VkDescriptorSet*)&forUnmarshaling->dstSet =
2821 (VkDescriptorSet)unbox_VkDescriptorSet((VkDescriptorSet)(*&cgen_var_1));
2822 memcpy((uint32_t*)&forUnmarshaling->dstBinding, *ptr, sizeof(uint32_t));
2823 *ptr += sizeof(uint32_t);
2824 memcpy((uint32_t*)&forUnmarshaling->dstArrayElement, *ptr, sizeof(uint32_t));
2825 *ptr += sizeof(uint32_t);
2826 memcpy((uint32_t*)&forUnmarshaling->descriptorCount, *ptr, sizeof(uint32_t));
2827 *ptr += sizeof(uint32_t);
2828 }
2829
reservedunmarshal_VkDescriptorBufferInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorBufferInfo * forUnmarshaling,uint8_t ** ptr)2830 void reservedunmarshal_VkDescriptorBufferInfo(VulkanStream* vkStream, VkStructureType rootType,
2831 VkDescriptorBufferInfo* forUnmarshaling,
2832 uint8_t** ptr) {
2833 uint64_t cgen_var_0;
2834 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
2835 *ptr += 1 * 8;
2836 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)try_unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
2837 memcpy((VkDeviceSize*)&forUnmarshaling->offset, *ptr, sizeof(VkDeviceSize));
2838 *ptr += sizeof(VkDeviceSize);
2839 memcpy((VkDeviceSize*)&forUnmarshaling->range, *ptr, sizeof(VkDeviceSize));
2840 *ptr += sizeof(VkDeviceSize);
2841 }
2842
reservedunmarshal_VkDescriptorImageInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorImageInfo * forUnmarshaling,uint8_t ** ptr)2843 void reservedunmarshal_VkDescriptorImageInfo(VulkanStream* vkStream, VkStructureType rootType,
2844 VkDescriptorImageInfo* forUnmarshaling,
2845 uint8_t** ptr) {
2846 uint64_t cgen_var_0;
2847 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
2848 *ptr += 1 * 8;
2849 *(VkSampler*)&forUnmarshaling->sampler = (VkSampler)unbox_VkSampler((VkSampler)(*&cgen_var_0));
2850 uint64_t cgen_var_1;
2851 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
2852 *ptr += 1 * 8;
2853 *(VkImageView*)&forUnmarshaling->imageView =
2854 (VkImageView)unbox_VkImageView((VkImageView)(*&cgen_var_1));
2855 memcpy((VkImageLayout*)&forUnmarshaling->imageLayout, *ptr, sizeof(VkImageLayout));
2856 *ptr += sizeof(VkImageLayout);
2857 }
2858
reservedunmarshal_VkDescriptorPoolSize(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorPoolSize * forUnmarshaling,uint8_t ** ptr)2859 void reservedunmarshal_VkDescriptorPoolSize(VulkanStream* vkStream, VkStructureType rootType,
2860 VkDescriptorPoolSize* forUnmarshaling, uint8_t** ptr) {
2861 memcpy((VkDescriptorType*)&forUnmarshaling->type, *ptr, sizeof(VkDescriptorType));
2862 *ptr += sizeof(VkDescriptorType);
2863 memcpy((uint32_t*)&forUnmarshaling->descriptorCount, *ptr, sizeof(uint32_t));
2864 *ptr += sizeof(uint32_t);
2865 }
2866
reservedunmarshal_VkDescriptorPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorPoolCreateInfo * forUnmarshaling,uint8_t ** ptr)2867 void reservedunmarshal_VkDescriptorPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
2868 VkDescriptorPoolCreateInfo* forUnmarshaling,
2869 uint8_t** ptr) {
2870 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2871 *ptr += sizeof(VkStructureType);
2872 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2873 rootType = forUnmarshaling->sType;
2874 }
2875 uint32_t pNext_size;
2876 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2877 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2878 *ptr += sizeof(uint32_t);
2879 forUnmarshaling->pNext = nullptr;
2880 if (pNext_size) {
2881 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2882 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2883 *ptr += sizeof(VkStructureType);
2884 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2885 vkStream->alloc((void**)&forUnmarshaling->pNext,
2886 goldfish_vk_extension_struct_size_with_stream_features(
2887 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2888 *(VkStructureType*)forUnmarshaling->pNext = extType;
2889 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2890 ptr);
2891 }
2892 memcpy((VkDescriptorPoolCreateFlags*)&forUnmarshaling->flags, *ptr,
2893 sizeof(VkDescriptorPoolCreateFlags));
2894 *ptr += sizeof(VkDescriptorPoolCreateFlags);
2895 memcpy((uint32_t*)&forUnmarshaling->maxSets, *ptr, sizeof(uint32_t));
2896 *ptr += sizeof(uint32_t);
2897 memcpy((uint32_t*)&forUnmarshaling->poolSizeCount, *ptr, sizeof(uint32_t));
2898 *ptr += sizeof(uint32_t);
2899 vkStream->alloc((void**)&forUnmarshaling->pPoolSizes,
2900 forUnmarshaling->poolSizeCount * sizeof(const VkDescriptorPoolSize));
2901 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->poolSizeCount; ++i) {
2902 reservedunmarshal_VkDescriptorPoolSize(
2903 vkStream, rootType, (VkDescriptorPoolSize*)(forUnmarshaling->pPoolSizes + i), ptr);
2904 }
2905 }
2906
reservedunmarshal_VkDescriptorSetAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetAllocateInfo * forUnmarshaling,uint8_t ** ptr)2907 void reservedunmarshal_VkDescriptorSetAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
2908 VkDescriptorSetAllocateInfo* forUnmarshaling,
2909 uint8_t** ptr) {
2910 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2911 *ptr += sizeof(VkStructureType);
2912 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2913 rootType = forUnmarshaling->sType;
2914 }
2915 uint32_t pNext_size;
2916 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
2917 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
2918 *ptr += sizeof(uint32_t);
2919 forUnmarshaling->pNext = nullptr;
2920 if (pNext_size) {
2921 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
2922 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
2923 *ptr += sizeof(VkStructureType);
2924 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
2925 vkStream->alloc((void**)&forUnmarshaling->pNext,
2926 goldfish_vk_extension_struct_size_with_stream_features(
2927 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
2928 *(VkStructureType*)forUnmarshaling->pNext = extType;
2929 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
2930 ptr);
2931 }
2932 uint64_t cgen_var_0;
2933 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
2934 *ptr += 1 * 8;
2935 *(VkDescriptorPool*)&forUnmarshaling->descriptorPool =
2936 (VkDescriptorPool)unbox_VkDescriptorPool((VkDescriptorPool)(*&cgen_var_0));
2937 memcpy((uint32_t*)&forUnmarshaling->descriptorSetCount, *ptr, sizeof(uint32_t));
2938 *ptr += sizeof(uint32_t);
2939 vkStream->alloc((void**)&forUnmarshaling->pSetLayouts,
2940 forUnmarshaling->descriptorSetCount * sizeof(const VkDescriptorSetLayout));
2941 if (forUnmarshaling->descriptorSetCount) {
2942 uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
2943 *ptr += 8 * forUnmarshaling->descriptorSetCount;
2944 if (forUnmarshaling) {
2945 for (uint32_t k = 0; k < forUnmarshaling->descriptorSetCount; ++k) {
2946 uint64_t tmpval;
2947 memcpy(&tmpval, cgen_var_1_ptr + k * 8, sizeof(uint64_t));
2948 *(((VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts) + k) =
2949 tmpval ? (VkDescriptorSetLayout)unbox_VkDescriptorSetLayout(
2950 (VkDescriptorSetLayout)tmpval)
2951 : VK_NULL_HANDLE;
2952 }
2953 }
2954 }
2955 }
2956
reservedunmarshal_VkDescriptorSetLayoutBinding(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutBinding * forUnmarshaling,uint8_t ** ptr)2957 void reservedunmarshal_VkDescriptorSetLayoutBinding(VulkanStream* vkStream,
2958 VkStructureType rootType,
2959 VkDescriptorSetLayoutBinding* forUnmarshaling,
2960 uint8_t** ptr) {
2961 memcpy((uint32_t*)&forUnmarshaling->binding, *ptr, sizeof(uint32_t));
2962 *ptr += sizeof(uint32_t);
2963 memcpy((VkDescriptorType*)&forUnmarshaling->descriptorType, *ptr, sizeof(VkDescriptorType));
2964 *ptr += sizeof(VkDescriptorType);
2965 memcpy((uint32_t*)&forUnmarshaling->descriptorCount, *ptr, sizeof(uint32_t));
2966 *ptr += sizeof(uint32_t);
2967 memcpy((VkShaderStageFlags*)&forUnmarshaling->stageFlags, *ptr, sizeof(VkShaderStageFlags));
2968 *ptr += sizeof(VkShaderStageFlags);
2969 // WARNING PTR CHECK
2970 memcpy((VkSampler**)&forUnmarshaling->pImmutableSamplers, (*ptr), 8);
2971 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pImmutableSamplers);
2972 *ptr += 8;
2973 if (forUnmarshaling->pImmutableSamplers) {
2974 vkStream->alloc((void**)&forUnmarshaling->pImmutableSamplers,
2975 forUnmarshaling->descriptorCount * sizeof(const VkSampler));
2976 if (forUnmarshaling->descriptorCount) {
2977 uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*ptr);
2978 *ptr += 8 * forUnmarshaling->descriptorCount;
2979 if (forUnmarshaling) {
2980 for (uint32_t k = 0; k < forUnmarshaling->descriptorCount; ++k) {
2981 uint64_t tmpval;
2982 memcpy(&tmpval, cgen_var_0_0_ptr + k * 8, sizeof(uint64_t));
2983 *(((VkSampler*)forUnmarshaling->pImmutableSamplers) + k) =
2984 tmpval ? (VkSampler)unbox_VkSampler((VkSampler)tmpval) : VK_NULL_HANDLE;
2985 }
2986 }
2987 }
2988 }
2989 }
2990
reservedunmarshal_VkDescriptorSetLayoutCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutCreateInfo * forUnmarshaling,uint8_t ** ptr)2991 void reservedunmarshal_VkDescriptorSetLayoutCreateInfo(
2992 VulkanStream* vkStream, VkStructureType rootType,
2993 VkDescriptorSetLayoutCreateInfo* forUnmarshaling, uint8_t** ptr) {
2994 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
2995 *ptr += sizeof(VkStructureType);
2996 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
2997 rootType = forUnmarshaling->sType;
2998 }
2999 uint32_t pNext_size;
3000 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3001 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3002 *ptr += sizeof(uint32_t);
3003 forUnmarshaling->pNext = nullptr;
3004 if (pNext_size) {
3005 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3006 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3007 *ptr += sizeof(VkStructureType);
3008 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3009 vkStream->alloc((void**)&forUnmarshaling->pNext,
3010 goldfish_vk_extension_struct_size_with_stream_features(
3011 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3012 *(VkStructureType*)forUnmarshaling->pNext = extType;
3013 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3014 ptr);
3015 }
3016 memcpy((VkDescriptorSetLayoutCreateFlags*)&forUnmarshaling->flags, *ptr,
3017 sizeof(VkDescriptorSetLayoutCreateFlags));
3018 *ptr += sizeof(VkDescriptorSetLayoutCreateFlags);
3019 memcpy((uint32_t*)&forUnmarshaling->bindingCount, *ptr, sizeof(uint32_t));
3020 *ptr += sizeof(uint32_t);
3021 vkStream->alloc((void**)&forUnmarshaling->pBindings,
3022 forUnmarshaling->bindingCount * sizeof(const VkDescriptorSetLayoutBinding));
3023 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindingCount; ++i) {
3024 reservedunmarshal_VkDescriptorSetLayoutBinding(
3025 vkStream, rootType, (VkDescriptorSetLayoutBinding*)(forUnmarshaling->pBindings + i),
3026 ptr);
3027 }
3028 }
3029
reservedunmarshal_VkWriteDescriptorSet(VulkanStream * vkStream,VkStructureType rootType,VkWriteDescriptorSet * forUnmarshaling,uint8_t ** ptr)3030 void reservedunmarshal_VkWriteDescriptorSet(VulkanStream* vkStream, VkStructureType rootType,
3031 VkWriteDescriptorSet* forUnmarshaling, uint8_t** ptr) {
3032 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3033 *ptr += sizeof(VkStructureType);
3034 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3035 rootType = forUnmarshaling->sType;
3036 }
3037 uint32_t pNext_size;
3038 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3039 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3040 *ptr += sizeof(uint32_t);
3041 forUnmarshaling->pNext = nullptr;
3042 if (pNext_size) {
3043 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3044 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3045 *ptr += sizeof(VkStructureType);
3046 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3047 vkStream->alloc((void**)&forUnmarshaling->pNext,
3048 goldfish_vk_extension_struct_size_with_stream_features(
3049 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3050 *(VkStructureType*)forUnmarshaling->pNext = extType;
3051 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3052 ptr);
3053 }
3054 uint64_t cgen_var_0;
3055 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3056 *ptr += 1 * 8;
3057 *(VkDescriptorSet*)&forUnmarshaling->dstSet =
3058 (VkDescriptorSet)unbox_VkDescriptorSet((VkDescriptorSet)(*&cgen_var_0));
3059 memcpy((uint32_t*)&forUnmarshaling->dstBinding, *ptr, sizeof(uint32_t));
3060 *ptr += sizeof(uint32_t);
3061 memcpy((uint32_t*)&forUnmarshaling->dstArrayElement, *ptr, sizeof(uint32_t));
3062 *ptr += sizeof(uint32_t);
3063 memcpy((uint32_t*)&forUnmarshaling->descriptorCount, *ptr, sizeof(uint32_t));
3064 *ptr += sizeof(uint32_t);
3065 memcpy((VkDescriptorType*)&forUnmarshaling->descriptorType, *ptr, sizeof(VkDescriptorType));
3066 *ptr += sizeof(VkDescriptorType);
3067 // WARNING PTR CHECK
3068 memcpy((VkDescriptorImageInfo**)&forUnmarshaling->pImageInfo, (*ptr), 8);
3069 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pImageInfo);
3070 *ptr += 8;
3071 if (forUnmarshaling->pImageInfo) {
3072 if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3073 ((VK_DESCRIPTOR_TYPE_SAMPLER == forUnmarshaling->descriptorType) ||
3074 (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forUnmarshaling->descriptorType) ||
3075 (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forUnmarshaling->descriptorType) ||
3076 (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forUnmarshaling->descriptorType) ||
3077 (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forUnmarshaling->descriptorType)))) {
3078 vkStream->alloc((void**)&forUnmarshaling->pImageInfo,
3079 forUnmarshaling->descriptorCount * sizeof(const VkDescriptorImageInfo));
3080 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i) {
3081 reservedunmarshal_VkDescriptorImageInfo(
3082 vkStream, rootType, (VkDescriptorImageInfo*)(forUnmarshaling->pImageInfo + i),
3083 ptr);
3084 }
3085 } else {
3086 forUnmarshaling->pImageInfo = 0;
3087 }
3088 }
3089 // WARNING PTR CHECK
3090 memcpy((VkDescriptorBufferInfo**)&forUnmarshaling->pBufferInfo, (*ptr), 8);
3091 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pBufferInfo);
3092 *ptr += 8;
3093 if (forUnmarshaling->pBufferInfo) {
3094 if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3095 ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forUnmarshaling->descriptorType) ||
3096 (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forUnmarshaling->descriptorType) ||
3097 (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forUnmarshaling->descriptorType) ||
3098 (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forUnmarshaling->descriptorType)))) {
3099 vkStream->alloc(
3100 (void**)&forUnmarshaling->pBufferInfo,
3101 forUnmarshaling->descriptorCount * sizeof(const VkDescriptorBufferInfo));
3102 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i) {
3103 reservedunmarshal_VkDescriptorBufferInfo(
3104 vkStream, rootType, (VkDescriptorBufferInfo*)(forUnmarshaling->pBufferInfo + i),
3105 ptr);
3106 }
3107 } else {
3108 forUnmarshaling->pBufferInfo = 0;
3109 }
3110 }
3111 // WARNING PTR CHECK
3112 memcpy((VkBufferView**)&forUnmarshaling->pTexelBufferView, (*ptr), 8);
3113 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pTexelBufferView);
3114 *ptr += 8;
3115 if (forUnmarshaling->pTexelBufferView) {
3116 if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3117 ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forUnmarshaling->descriptorType) ||
3118 (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forUnmarshaling->descriptorType)))) {
3119 vkStream->alloc((void**)&forUnmarshaling->pTexelBufferView,
3120 forUnmarshaling->descriptorCount * sizeof(const VkBufferView));
3121 if (forUnmarshaling->descriptorCount) {
3122 uint8_t* cgen_var_3_0_ptr = (uint8_t*)(*ptr);
3123 *ptr += 8 * forUnmarshaling->descriptorCount;
3124 if (forUnmarshaling) {
3125 for (uint32_t k = 0; k < forUnmarshaling->descriptorCount; ++k) {
3126 uint64_t tmpval;
3127 memcpy(&tmpval, cgen_var_3_0_ptr + k * 8, sizeof(uint64_t));
3128 *(((VkBufferView*)forUnmarshaling->pTexelBufferView) + k) =
3129 tmpval ? (VkBufferView)unbox_VkBufferView((VkBufferView)tmpval)
3130 : VK_NULL_HANDLE;
3131 }
3132 }
3133 }
3134 } else {
3135 forUnmarshaling->pTexelBufferView = 0;
3136 }
3137 }
3138 }
3139
reservedunmarshal_VkAttachmentDescription(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentDescription * forUnmarshaling,uint8_t ** ptr)3140 void reservedunmarshal_VkAttachmentDescription(VulkanStream* vkStream, VkStructureType rootType,
3141 VkAttachmentDescription* forUnmarshaling,
3142 uint8_t** ptr) {
3143 memcpy((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, *ptr,
3144 sizeof(VkAttachmentDescriptionFlags));
3145 *ptr += sizeof(VkAttachmentDescriptionFlags);
3146 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
3147 *ptr += sizeof(VkFormat);
3148 memcpy((VkSampleCountFlagBits*)&forUnmarshaling->samples, *ptr, sizeof(VkSampleCountFlagBits));
3149 *ptr += sizeof(VkSampleCountFlagBits);
3150 memcpy((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, *ptr, sizeof(VkAttachmentLoadOp));
3151 *ptr += sizeof(VkAttachmentLoadOp);
3152 memcpy((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, *ptr, sizeof(VkAttachmentStoreOp));
3153 *ptr += sizeof(VkAttachmentStoreOp);
3154 memcpy((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, *ptr, sizeof(VkAttachmentLoadOp));
3155 *ptr += sizeof(VkAttachmentLoadOp);
3156 memcpy((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, *ptr,
3157 sizeof(VkAttachmentStoreOp));
3158 *ptr += sizeof(VkAttachmentStoreOp);
3159 memcpy((VkImageLayout*)&forUnmarshaling->initialLayout, *ptr, sizeof(VkImageLayout));
3160 *ptr += sizeof(VkImageLayout);
3161 memcpy((VkImageLayout*)&forUnmarshaling->finalLayout, *ptr, sizeof(VkImageLayout));
3162 *ptr += sizeof(VkImageLayout);
3163 }
3164
reservedunmarshal_VkAttachmentReference(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentReference * forUnmarshaling,uint8_t ** ptr)3165 void reservedunmarshal_VkAttachmentReference(VulkanStream* vkStream, VkStructureType rootType,
3166 VkAttachmentReference* forUnmarshaling,
3167 uint8_t** ptr) {
3168 memcpy((uint32_t*)&forUnmarshaling->attachment, *ptr, sizeof(uint32_t));
3169 *ptr += sizeof(uint32_t);
3170 memcpy((VkImageLayout*)&forUnmarshaling->layout, *ptr, sizeof(VkImageLayout));
3171 *ptr += sizeof(VkImageLayout);
3172 }
3173
reservedunmarshal_VkFramebufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkFramebufferCreateInfo * forUnmarshaling,uint8_t ** ptr)3174 void reservedunmarshal_VkFramebufferCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3175 VkFramebufferCreateInfo* forUnmarshaling,
3176 uint8_t** ptr) {
3177 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3178 *ptr += sizeof(VkStructureType);
3179 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3180 rootType = forUnmarshaling->sType;
3181 }
3182 uint32_t pNext_size;
3183 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3184 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3185 *ptr += sizeof(uint32_t);
3186 forUnmarshaling->pNext = nullptr;
3187 if (pNext_size) {
3188 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3189 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3190 *ptr += sizeof(VkStructureType);
3191 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3192 vkStream->alloc((void**)&forUnmarshaling->pNext,
3193 goldfish_vk_extension_struct_size_with_stream_features(
3194 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3195 *(VkStructureType*)forUnmarshaling->pNext = extType;
3196 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3197 ptr);
3198 }
3199 memcpy((VkFramebufferCreateFlags*)&forUnmarshaling->flags, *ptr,
3200 sizeof(VkFramebufferCreateFlags));
3201 *ptr += sizeof(VkFramebufferCreateFlags);
3202 uint64_t cgen_var_0;
3203 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3204 *ptr += 1 * 8;
3205 *(VkRenderPass*)&forUnmarshaling->renderPass =
3206 (VkRenderPass)unbox_VkRenderPass((VkRenderPass)(*&cgen_var_0));
3207 memcpy((uint32_t*)&forUnmarshaling->attachmentCount, *ptr, sizeof(uint32_t));
3208 *ptr += sizeof(uint32_t);
3209 if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) ||
3210 (((forUnmarshaling->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0)))) {
3211 vkStream->alloc((void**)&forUnmarshaling->pAttachments,
3212 forUnmarshaling->attachmentCount * sizeof(const VkImageView));
3213 if (forUnmarshaling->attachmentCount) {
3214 uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*ptr);
3215 *ptr += 8 * forUnmarshaling->attachmentCount;
3216 if (forUnmarshaling) {
3217 for (uint32_t k = 0; k < forUnmarshaling->attachmentCount; ++k) {
3218 uint64_t tmpval;
3219 memcpy(&tmpval, cgen_var_0_0_ptr + k * 8, sizeof(uint64_t));
3220 *(((VkImageView*)forUnmarshaling->pAttachments) + k) =
3221 tmpval ? (VkImageView)unbox_VkImageView((VkImageView)tmpval)
3222 : VK_NULL_HANDLE;
3223 }
3224 }
3225 }
3226 } else {
3227 forUnmarshaling->pAttachments = 0;
3228 }
3229 memcpy((uint32_t*)&forUnmarshaling->width, *ptr, sizeof(uint32_t));
3230 *ptr += sizeof(uint32_t);
3231 memcpy((uint32_t*)&forUnmarshaling->height, *ptr, sizeof(uint32_t));
3232 *ptr += sizeof(uint32_t);
3233 memcpy((uint32_t*)&forUnmarshaling->layers, *ptr, sizeof(uint32_t));
3234 *ptr += sizeof(uint32_t);
3235 }
3236
reservedunmarshal_VkSubpassDescription(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDescription * forUnmarshaling,uint8_t ** ptr)3237 void reservedunmarshal_VkSubpassDescription(VulkanStream* vkStream, VkStructureType rootType,
3238 VkSubpassDescription* forUnmarshaling, uint8_t** ptr) {
3239 memcpy((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, *ptr,
3240 sizeof(VkSubpassDescriptionFlags));
3241 *ptr += sizeof(VkSubpassDescriptionFlags);
3242 memcpy((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, *ptr,
3243 sizeof(VkPipelineBindPoint));
3244 *ptr += sizeof(VkPipelineBindPoint);
3245 memcpy((uint32_t*)&forUnmarshaling->inputAttachmentCount, *ptr, sizeof(uint32_t));
3246 *ptr += sizeof(uint32_t);
3247 vkStream->alloc((void**)&forUnmarshaling->pInputAttachments,
3248 forUnmarshaling->inputAttachmentCount * sizeof(const VkAttachmentReference));
3249 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i) {
3250 reservedunmarshal_VkAttachmentReference(
3251 vkStream, rootType, (VkAttachmentReference*)(forUnmarshaling->pInputAttachments + i),
3252 ptr);
3253 }
3254 memcpy((uint32_t*)&forUnmarshaling->colorAttachmentCount, *ptr, sizeof(uint32_t));
3255 *ptr += sizeof(uint32_t);
3256 vkStream->alloc((void**)&forUnmarshaling->pColorAttachments,
3257 forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference));
3258 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
3259 reservedunmarshal_VkAttachmentReference(
3260 vkStream, rootType, (VkAttachmentReference*)(forUnmarshaling->pColorAttachments + i),
3261 ptr);
3262 }
3263 // WARNING PTR CHECK
3264 memcpy((VkAttachmentReference**)&forUnmarshaling->pResolveAttachments, (*ptr), 8);
3265 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pResolveAttachments);
3266 *ptr += 8;
3267 if (forUnmarshaling->pResolveAttachments) {
3268 vkStream->alloc(
3269 (void**)&forUnmarshaling->pResolveAttachments,
3270 forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference));
3271 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
3272 reservedunmarshal_VkAttachmentReference(
3273 vkStream, rootType,
3274 (VkAttachmentReference*)(forUnmarshaling->pResolveAttachments + i), ptr);
3275 }
3276 }
3277 // WARNING PTR CHECK
3278 memcpy((VkAttachmentReference**)&forUnmarshaling->pDepthStencilAttachment, (*ptr), 8);
3279 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDepthStencilAttachment);
3280 *ptr += 8;
3281 if (forUnmarshaling->pDepthStencilAttachment) {
3282 vkStream->alloc((void**)&forUnmarshaling->pDepthStencilAttachment,
3283 sizeof(const VkAttachmentReference));
3284 reservedunmarshal_VkAttachmentReference(
3285 vkStream, rootType, (VkAttachmentReference*)(forUnmarshaling->pDepthStencilAttachment),
3286 ptr);
3287 }
3288 memcpy((uint32_t*)&forUnmarshaling->preserveAttachmentCount, *ptr, sizeof(uint32_t));
3289 *ptr += sizeof(uint32_t);
3290 vkStream->alloc((void**)&forUnmarshaling->pPreserveAttachments,
3291 forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3292 memcpy((uint32_t*)forUnmarshaling->pPreserveAttachments, *ptr,
3293 forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
3294 *ptr += forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t);
3295 }
3296
reservedunmarshal_VkSubpassDependency(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDependency * forUnmarshaling,uint8_t ** ptr)3297 void reservedunmarshal_VkSubpassDependency(VulkanStream* vkStream, VkStructureType rootType,
3298 VkSubpassDependency* forUnmarshaling, uint8_t** ptr) {
3299 memcpy((uint32_t*)&forUnmarshaling->srcSubpass, *ptr, sizeof(uint32_t));
3300 *ptr += sizeof(uint32_t);
3301 memcpy((uint32_t*)&forUnmarshaling->dstSubpass, *ptr, sizeof(uint32_t));
3302 *ptr += sizeof(uint32_t);
3303 memcpy((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, *ptr,
3304 sizeof(VkPipelineStageFlags));
3305 *ptr += sizeof(VkPipelineStageFlags);
3306 memcpy((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, *ptr,
3307 sizeof(VkPipelineStageFlags));
3308 *ptr += sizeof(VkPipelineStageFlags);
3309 memcpy((VkAccessFlags*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags));
3310 *ptr += sizeof(VkAccessFlags);
3311 memcpy((VkAccessFlags*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags));
3312 *ptr += sizeof(VkAccessFlags);
3313 memcpy((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, *ptr, sizeof(VkDependencyFlags));
3314 *ptr += sizeof(VkDependencyFlags);
3315 }
3316
reservedunmarshal_VkRenderPassCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassCreateInfo * forUnmarshaling,uint8_t ** ptr)3317 void reservedunmarshal_VkRenderPassCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3318 VkRenderPassCreateInfo* forUnmarshaling,
3319 uint8_t** ptr) {
3320 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3321 *ptr += sizeof(VkStructureType);
3322 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3323 rootType = forUnmarshaling->sType;
3324 }
3325 uint32_t pNext_size;
3326 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3327 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3328 *ptr += sizeof(uint32_t);
3329 forUnmarshaling->pNext = nullptr;
3330 if (pNext_size) {
3331 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3332 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3333 *ptr += sizeof(VkStructureType);
3334 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3335 vkStream->alloc((void**)&forUnmarshaling->pNext,
3336 goldfish_vk_extension_struct_size_with_stream_features(
3337 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3338 *(VkStructureType*)forUnmarshaling->pNext = extType;
3339 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3340 ptr);
3341 }
3342 memcpy((VkRenderPassCreateFlags*)&forUnmarshaling->flags, *ptr,
3343 sizeof(VkRenderPassCreateFlags));
3344 *ptr += sizeof(VkRenderPassCreateFlags);
3345 memcpy((uint32_t*)&forUnmarshaling->attachmentCount, *ptr, sizeof(uint32_t));
3346 *ptr += sizeof(uint32_t);
3347 vkStream->alloc((void**)&forUnmarshaling->pAttachments,
3348 forUnmarshaling->attachmentCount * sizeof(const VkAttachmentDescription));
3349 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
3350 reservedunmarshal_VkAttachmentDescription(
3351 vkStream, rootType, (VkAttachmentDescription*)(forUnmarshaling->pAttachments + i), ptr);
3352 }
3353 memcpy((uint32_t*)&forUnmarshaling->subpassCount, *ptr, sizeof(uint32_t));
3354 *ptr += sizeof(uint32_t);
3355 vkStream->alloc((void**)&forUnmarshaling->pSubpasses,
3356 forUnmarshaling->subpassCount * sizeof(const VkSubpassDescription));
3357 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i) {
3358 reservedunmarshal_VkSubpassDescription(
3359 vkStream, rootType, (VkSubpassDescription*)(forUnmarshaling->pSubpasses + i), ptr);
3360 }
3361 memcpy((uint32_t*)&forUnmarshaling->dependencyCount, *ptr, sizeof(uint32_t));
3362 *ptr += sizeof(uint32_t);
3363 vkStream->alloc((void**)&forUnmarshaling->pDependencies,
3364 forUnmarshaling->dependencyCount * sizeof(const VkSubpassDependency));
3365 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i) {
3366 reservedunmarshal_VkSubpassDependency(
3367 vkStream, rootType, (VkSubpassDependency*)(forUnmarshaling->pDependencies + i), ptr);
3368 }
3369 }
3370
reservedunmarshal_VkCommandPoolCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandPoolCreateInfo * forUnmarshaling,uint8_t ** ptr)3371 void reservedunmarshal_VkCommandPoolCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
3372 VkCommandPoolCreateInfo* forUnmarshaling,
3373 uint8_t** ptr) {
3374 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3375 *ptr += sizeof(VkStructureType);
3376 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3377 rootType = forUnmarshaling->sType;
3378 }
3379 uint32_t pNext_size;
3380 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3381 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3382 *ptr += sizeof(uint32_t);
3383 forUnmarshaling->pNext = nullptr;
3384 if (pNext_size) {
3385 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3386 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3387 *ptr += sizeof(VkStructureType);
3388 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3389 vkStream->alloc((void**)&forUnmarshaling->pNext,
3390 goldfish_vk_extension_struct_size_with_stream_features(
3391 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3392 *(VkStructureType*)forUnmarshaling->pNext = extType;
3393 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3394 ptr);
3395 }
3396 memcpy((VkCommandPoolCreateFlags*)&forUnmarshaling->flags, *ptr,
3397 sizeof(VkCommandPoolCreateFlags));
3398 *ptr += sizeof(VkCommandPoolCreateFlags);
3399 memcpy((uint32_t*)&forUnmarshaling->queueFamilyIndex, *ptr, sizeof(uint32_t));
3400 *ptr += sizeof(uint32_t);
3401 }
3402
reservedunmarshal_VkCommandBufferAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferAllocateInfo * forUnmarshaling,uint8_t ** ptr)3403 void reservedunmarshal_VkCommandBufferAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
3404 VkCommandBufferAllocateInfo* forUnmarshaling,
3405 uint8_t** ptr) {
3406 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3407 *ptr += sizeof(VkStructureType);
3408 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3409 rootType = forUnmarshaling->sType;
3410 }
3411 uint32_t pNext_size;
3412 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3413 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3414 *ptr += sizeof(uint32_t);
3415 forUnmarshaling->pNext = nullptr;
3416 if (pNext_size) {
3417 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3418 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3419 *ptr += sizeof(VkStructureType);
3420 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3421 vkStream->alloc((void**)&forUnmarshaling->pNext,
3422 goldfish_vk_extension_struct_size_with_stream_features(
3423 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3424 *(VkStructureType*)forUnmarshaling->pNext = extType;
3425 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3426 ptr);
3427 }
3428 uint64_t cgen_var_0;
3429 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3430 *ptr += 1 * 8;
3431 *(VkCommandPool*)&forUnmarshaling->commandPool =
3432 (VkCommandPool)unbox_VkCommandPool((VkCommandPool)(*&cgen_var_0));
3433 memcpy((VkCommandBufferLevel*)&forUnmarshaling->level, *ptr, sizeof(VkCommandBufferLevel));
3434 *ptr += sizeof(VkCommandBufferLevel);
3435 memcpy((uint32_t*)&forUnmarshaling->commandBufferCount, *ptr, sizeof(uint32_t));
3436 *ptr += sizeof(uint32_t);
3437 }
3438
reservedunmarshal_VkCommandBufferInheritanceInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferInheritanceInfo * forUnmarshaling,uint8_t ** ptr)3439 void reservedunmarshal_VkCommandBufferInheritanceInfo(
3440 VulkanStream* vkStream, VkStructureType rootType,
3441 VkCommandBufferInheritanceInfo* forUnmarshaling, uint8_t** ptr) {
3442 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3443 *ptr += sizeof(VkStructureType);
3444 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3445 rootType = forUnmarshaling->sType;
3446 }
3447 uint32_t pNext_size;
3448 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3449 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3450 *ptr += sizeof(uint32_t);
3451 forUnmarshaling->pNext = nullptr;
3452 if (pNext_size) {
3453 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3454 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3455 *ptr += sizeof(VkStructureType);
3456 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3457 vkStream->alloc((void**)&forUnmarshaling->pNext,
3458 goldfish_vk_extension_struct_size_with_stream_features(
3459 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3460 *(VkStructureType*)forUnmarshaling->pNext = extType;
3461 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3462 ptr);
3463 }
3464 uint64_t cgen_var_0;
3465 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3466 *ptr += 1 * 8;
3467 *(VkRenderPass*)&forUnmarshaling->renderPass =
3468 (VkRenderPass)unbox_VkRenderPass((VkRenderPass)(*&cgen_var_0));
3469 memcpy((uint32_t*)&forUnmarshaling->subpass, *ptr, sizeof(uint32_t));
3470 *ptr += sizeof(uint32_t);
3471 uint64_t cgen_var_1;
3472 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
3473 *ptr += 1 * 8;
3474 *(VkFramebuffer*)&forUnmarshaling->framebuffer =
3475 (VkFramebuffer)unbox_VkFramebuffer((VkFramebuffer)(*&cgen_var_1));
3476 memcpy((VkBool32*)&forUnmarshaling->occlusionQueryEnable, *ptr, sizeof(VkBool32));
3477 *ptr += sizeof(VkBool32);
3478 memcpy((VkQueryControlFlags*)&forUnmarshaling->queryFlags, *ptr, sizeof(VkQueryControlFlags));
3479 *ptr += sizeof(VkQueryControlFlags);
3480 memcpy((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics, *ptr,
3481 sizeof(VkQueryPipelineStatisticFlags));
3482 *ptr += sizeof(VkQueryPipelineStatisticFlags);
3483 }
3484
reservedunmarshal_VkCommandBufferBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferBeginInfo * forUnmarshaling,uint8_t ** ptr)3485 void reservedunmarshal_VkCommandBufferBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
3486 VkCommandBufferBeginInfo* forUnmarshaling,
3487 uint8_t** ptr) {
3488 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3489 *ptr += sizeof(VkStructureType);
3490 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3491 rootType = forUnmarshaling->sType;
3492 }
3493 uint32_t pNext_size;
3494 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3495 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3496 *ptr += sizeof(uint32_t);
3497 forUnmarshaling->pNext = nullptr;
3498 if (pNext_size) {
3499 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3500 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3501 *ptr += sizeof(VkStructureType);
3502 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3503 vkStream->alloc((void**)&forUnmarshaling->pNext,
3504 goldfish_vk_extension_struct_size_with_stream_features(
3505 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3506 *(VkStructureType*)forUnmarshaling->pNext = extType;
3507 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3508 ptr);
3509 }
3510 memcpy((VkCommandBufferUsageFlags*)&forUnmarshaling->flags, *ptr,
3511 sizeof(VkCommandBufferUsageFlags));
3512 *ptr += sizeof(VkCommandBufferUsageFlags);
3513 // WARNING PTR CHECK
3514 memcpy((VkCommandBufferInheritanceInfo**)&forUnmarshaling->pInheritanceInfo, (*ptr), 8);
3515 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pInheritanceInfo);
3516 *ptr += 8;
3517 if (forUnmarshaling->pInheritanceInfo) {
3518 vkStream->alloc((void**)&forUnmarshaling->pInheritanceInfo,
3519 sizeof(const VkCommandBufferInheritanceInfo));
3520 reservedunmarshal_VkCommandBufferInheritanceInfo(
3521 vkStream, rootType,
3522 (VkCommandBufferInheritanceInfo*)(forUnmarshaling->pInheritanceInfo), ptr);
3523 }
3524 }
3525
reservedunmarshal_VkBufferCopy(VulkanStream * vkStream,VkStructureType rootType,VkBufferCopy * forUnmarshaling,uint8_t ** ptr)3526 void reservedunmarshal_VkBufferCopy(VulkanStream* vkStream, VkStructureType rootType,
3527 VkBufferCopy* forUnmarshaling, uint8_t** ptr) {
3528 memcpy((VkDeviceSize*)&forUnmarshaling->srcOffset, *ptr, sizeof(VkDeviceSize));
3529 *ptr += sizeof(VkDeviceSize);
3530 memcpy((VkDeviceSize*)&forUnmarshaling->dstOffset, *ptr, sizeof(VkDeviceSize));
3531 *ptr += sizeof(VkDeviceSize);
3532 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
3533 *ptr += sizeof(VkDeviceSize);
3534 }
3535
reservedunmarshal_VkImageSubresourceLayers(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresourceLayers * forUnmarshaling,uint8_t ** ptr)3536 void reservedunmarshal_VkImageSubresourceLayers(VulkanStream* vkStream, VkStructureType rootType,
3537 VkImageSubresourceLayers* forUnmarshaling,
3538 uint8_t** ptr) {
3539 memcpy((VkImageAspectFlags*)&forUnmarshaling->aspectMask, *ptr, sizeof(VkImageAspectFlags));
3540 *ptr += sizeof(VkImageAspectFlags);
3541 memcpy((uint32_t*)&forUnmarshaling->mipLevel, *ptr, sizeof(uint32_t));
3542 *ptr += sizeof(uint32_t);
3543 memcpy((uint32_t*)&forUnmarshaling->baseArrayLayer, *ptr, sizeof(uint32_t));
3544 *ptr += sizeof(uint32_t);
3545 memcpy((uint32_t*)&forUnmarshaling->layerCount, *ptr, sizeof(uint32_t));
3546 *ptr += sizeof(uint32_t);
3547 }
3548
reservedunmarshal_VkBufferImageCopy(VulkanStream * vkStream,VkStructureType rootType,VkBufferImageCopy * forUnmarshaling,uint8_t ** ptr)3549 void reservedunmarshal_VkBufferImageCopy(VulkanStream* vkStream, VkStructureType rootType,
3550 VkBufferImageCopy* forUnmarshaling, uint8_t** ptr) {
3551 memcpy((VkDeviceSize*)&forUnmarshaling->bufferOffset, *ptr, sizeof(VkDeviceSize));
3552 *ptr += sizeof(VkDeviceSize);
3553 memcpy((uint32_t*)&forUnmarshaling->bufferRowLength, *ptr, sizeof(uint32_t));
3554 *ptr += sizeof(uint32_t);
3555 memcpy((uint32_t*)&forUnmarshaling->bufferImageHeight, *ptr, sizeof(uint32_t));
3556 *ptr += sizeof(uint32_t);
3557 reservedunmarshal_VkImageSubresourceLayers(
3558 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource), ptr);
3559 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset),
3560 ptr);
3561 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent),
3562 ptr);
3563 }
3564
reservedunmarshal_VkClearColorValue(VulkanStream * vkStream,VkStructureType rootType,VkClearColorValue * forUnmarshaling,uint8_t ** ptr)3565 void reservedunmarshal_VkClearColorValue(VulkanStream* vkStream, VkStructureType rootType,
3566 VkClearColorValue* forUnmarshaling, uint8_t** ptr) {
3567 memcpy((float*)forUnmarshaling->float32, *ptr, 4 * sizeof(float));
3568 *ptr += 4 * sizeof(float);
3569 }
3570
reservedunmarshal_VkClearDepthStencilValue(VulkanStream * vkStream,VkStructureType rootType,VkClearDepthStencilValue * forUnmarshaling,uint8_t ** ptr)3571 void reservedunmarshal_VkClearDepthStencilValue(VulkanStream* vkStream, VkStructureType rootType,
3572 VkClearDepthStencilValue* forUnmarshaling,
3573 uint8_t** ptr) {
3574 memcpy((float*)&forUnmarshaling->depth, *ptr, sizeof(float));
3575 *ptr += sizeof(float);
3576 memcpy((uint32_t*)&forUnmarshaling->stencil, *ptr, sizeof(uint32_t));
3577 *ptr += sizeof(uint32_t);
3578 }
3579
reservedunmarshal_VkClearValue(VulkanStream * vkStream,VkStructureType rootType,VkClearValue * forUnmarshaling,uint8_t ** ptr)3580 void reservedunmarshal_VkClearValue(VulkanStream* vkStream, VkStructureType rootType,
3581 VkClearValue* forUnmarshaling, uint8_t** ptr) {
3582 reservedunmarshal_VkClearColorValue(vkStream, rootType,
3583 (VkClearColorValue*)(&forUnmarshaling->color), ptr);
3584 }
3585
reservedunmarshal_VkClearAttachment(VulkanStream * vkStream,VkStructureType rootType,VkClearAttachment * forUnmarshaling,uint8_t ** ptr)3586 void reservedunmarshal_VkClearAttachment(VulkanStream* vkStream, VkStructureType rootType,
3587 VkClearAttachment* forUnmarshaling, uint8_t** ptr) {
3588 memcpy((VkImageAspectFlags*)&forUnmarshaling->aspectMask, *ptr, sizeof(VkImageAspectFlags));
3589 *ptr += sizeof(VkImageAspectFlags);
3590 memcpy((uint32_t*)&forUnmarshaling->colorAttachment, *ptr, sizeof(uint32_t));
3591 *ptr += sizeof(uint32_t);
3592 reservedunmarshal_VkClearValue(vkStream, rootType,
3593 (VkClearValue*)(&forUnmarshaling->clearValue), ptr);
3594 }
3595
reservedunmarshal_VkClearRect(VulkanStream * vkStream,VkStructureType rootType,VkClearRect * forUnmarshaling,uint8_t ** ptr)3596 void reservedunmarshal_VkClearRect(VulkanStream* vkStream, VkStructureType rootType,
3597 VkClearRect* forUnmarshaling, uint8_t** ptr) {
3598 reservedunmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->rect), ptr);
3599 memcpy((uint32_t*)&forUnmarshaling->baseArrayLayer, *ptr, sizeof(uint32_t));
3600 *ptr += sizeof(uint32_t);
3601 memcpy((uint32_t*)&forUnmarshaling->layerCount, *ptr, sizeof(uint32_t));
3602 *ptr += sizeof(uint32_t);
3603 }
3604
reservedunmarshal_VkImageBlit(VulkanStream * vkStream,VkStructureType rootType,VkImageBlit * forUnmarshaling,uint8_t ** ptr)3605 void reservedunmarshal_VkImageBlit(VulkanStream* vkStream, VkStructureType rootType,
3606 VkImageBlit* forUnmarshaling, uint8_t** ptr) {
3607 reservedunmarshal_VkImageSubresourceLayers(
3608 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource), ptr);
3609 for (uint32_t i = 0; i < (uint32_t)2; ++i) {
3610 reservedunmarshal_VkOffset3D(vkStream, rootType,
3611 (VkOffset3D*)(forUnmarshaling->srcOffsets + i), ptr);
3612 }
3613 reservedunmarshal_VkImageSubresourceLayers(
3614 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource), ptr);
3615 for (uint32_t i = 0; i < (uint32_t)2; ++i) {
3616 reservedunmarshal_VkOffset3D(vkStream, rootType,
3617 (VkOffset3D*)(forUnmarshaling->dstOffsets + i), ptr);
3618 }
3619 }
3620
reservedunmarshal_VkImageCopy(VulkanStream * vkStream,VkStructureType rootType,VkImageCopy * forUnmarshaling,uint8_t ** ptr)3621 void reservedunmarshal_VkImageCopy(VulkanStream* vkStream, VkStructureType rootType,
3622 VkImageCopy* forUnmarshaling, uint8_t** ptr) {
3623 reservedunmarshal_VkImageSubresourceLayers(
3624 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource), ptr);
3625 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset),
3626 ptr);
3627 reservedunmarshal_VkImageSubresourceLayers(
3628 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource), ptr);
3629 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset),
3630 ptr);
3631 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent), ptr);
3632 }
3633
reservedunmarshal_VkImageResolve(VulkanStream * vkStream,VkStructureType rootType,VkImageResolve * forUnmarshaling,uint8_t ** ptr)3634 void reservedunmarshal_VkImageResolve(VulkanStream* vkStream, VkStructureType rootType,
3635 VkImageResolve* forUnmarshaling, uint8_t** ptr) {
3636 reservedunmarshal_VkImageSubresourceLayers(
3637 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource), ptr);
3638 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset),
3639 ptr);
3640 reservedunmarshal_VkImageSubresourceLayers(
3641 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource), ptr);
3642 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset),
3643 ptr);
3644 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent), ptr);
3645 }
3646
reservedunmarshal_VkRenderPassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassBeginInfo * forUnmarshaling,uint8_t ** ptr)3647 void reservedunmarshal_VkRenderPassBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
3648 VkRenderPassBeginInfo* forUnmarshaling,
3649 uint8_t** ptr) {
3650 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3651 *ptr += sizeof(VkStructureType);
3652 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3653 rootType = forUnmarshaling->sType;
3654 }
3655 uint32_t pNext_size;
3656 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3657 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3658 *ptr += sizeof(uint32_t);
3659 forUnmarshaling->pNext = nullptr;
3660 if (pNext_size) {
3661 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3662 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3663 *ptr += sizeof(VkStructureType);
3664 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3665 vkStream->alloc((void**)&forUnmarshaling->pNext,
3666 goldfish_vk_extension_struct_size_with_stream_features(
3667 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3668 *(VkStructureType*)forUnmarshaling->pNext = extType;
3669 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3670 ptr);
3671 }
3672 uint64_t cgen_var_0;
3673 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3674 *ptr += 1 * 8;
3675 *(VkRenderPass*)&forUnmarshaling->renderPass =
3676 (VkRenderPass)unbox_VkRenderPass((VkRenderPass)(*&cgen_var_0));
3677 uint64_t cgen_var_1;
3678 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
3679 *ptr += 1 * 8;
3680 *(VkFramebuffer*)&forUnmarshaling->framebuffer =
3681 (VkFramebuffer)unbox_VkFramebuffer((VkFramebuffer)(*&cgen_var_1));
3682 reservedunmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea), ptr);
3683 memcpy((uint32_t*)&forUnmarshaling->clearValueCount, *ptr, sizeof(uint32_t));
3684 *ptr += sizeof(uint32_t);
3685 // WARNING PTR CHECK
3686 memcpy((VkClearValue**)&forUnmarshaling->pClearValues, (*ptr), 8);
3687 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pClearValues);
3688 *ptr += 8;
3689 if (forUnmarshaling->pClearValues) {
3690 vkStream->alloc((void**)&forUnmarshaling->pClearValues,
3691 forUnmarshaling->clearValueCount * sizeof(const VkClearValue));
3692 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->clearValueCount; ++i) {
3693 reservedunmarshal_VkClearValue(vkStream, rootType,
3694 (VkClearValue*)(forUnmarshaling->pClearValues + i), ptr);
3695 }
3696 }
3697 }
3698
3699 #endif
3700 #ifdef VK_VERSION_1_1
reservedunmarshal_VkPhysicalDeviceSubgroupProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupProperties * forUnmarshaling,uint8_t ** ptr)3701 void reservedunmarshal_VkPhysicalDeviceSubgroupProperties(
3702 VulkanStream* vkStream, VkStructureType rootType,
3703 VkPhysicalDeviceSubgroupProperties* forUnmarshaling, uint8_t** ptr) {
3704 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3705 *ptr += sizeof(VkStructureType);
3706 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3707 rootType = forUnmarshaling->sType;
3708 }
3709 uint32_t pNext_size;
3710 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3711 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3712 *ptr += sizeof(uint32_t);
3713 forUnmarshaling->pNext = nullptr;
3714 if (pNext_size) {
3715 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3716 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3717 *ptr += sizeof(VkStructureType);
3718 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3719 vkStream->alloc((void**)&forUnmarshaling->pNext,
3720 goldfish_vk_extension_struct_size_with_stream_features(
3721 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3722 *(VkStructureType*)forUnmarshaling->pNext = extType;
3723 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3724 ptr);
3725 }
3726 memcpy((uint32_t*)&forUnmarshaling->subgroupSize, *ptr, sizeof(uint32_t));
3727 *ptr += sizeof(uint32_t);
3728 memcpy((VkShaderStageFlags*)&forUnmarshaling->supportedStages, *ptr,
3729 sizeof(VkShaderStageFlags));
3730 *ptr += sizeof(VkShaderStageFlags);
3731 memcpy((VkSubgroupFeatureFlags*)&forUnmarshaling->supportedOperations, *ptr,
3732 sizeof(VkSubgroupFeatureFlags));
3733 *ptr += sizeof(VkSubgroupFeatureFlags);
3734 memcpy((VkBool32*)&forUnmarshaling->quadOperationsInAllStages, *ptr, sizeof(VkBool32));
3735 *ptr += sizeof(VkBool32);
3736 }
3737
reservedunmarshal_VkBindBufferMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindBufferMemoryInfo * forUnmarshaling,uint8_t ** ptr)3738 void reservedunmarshal_VkBindBufferMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
3739 VkBindBufferMemoryInfo* forUnmarshaling,
3740 uint8_t** ptr) {
3741 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3742 *ptr += sizeof(VkStructureType);
3743 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3744 rootType = forUnmarshaling->sType;
3745 }
3746 uint32_t pNext_size;
3747 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3748 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3749 *ptr += sizeof(uint32_t);
3750 forUnmarshaling->pNext = nullptr;
3751 if (pNext_size) {
3752 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3753 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3754 *ptr += sizeof(VkStructureType);
3755 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3756 vkStream->alloc((void**)&forUnmarshaling->pNext,
3757 goldfish_vk_extension_struct_size_with_stream_features(
3758 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3759 *(VkStructureType*)forUnmarshaling->pNext = extType;
3760 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3761 ptr);
3762 }
3763 uint64_t cgen_var_0;
3764 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3765 *ptr += 1 * 8;
3766 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
3767 uint64_t cgen_var_1;
3768 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
3769 *ptr += 1 * 8;
3770 *(VkDeviceMemory*)&forUnmarshaling->memory =
3771 (VkDeviceMemory)unbox_VkDeviceMemory((VkDeviceMemory)(*&cgen_var_1));
3772 memcpy((VkDeviceSize*)&forUnmarshaling->memoryOffset, *ptr, sizeof(VkDeviceSize));
3773 *ptr += sizeof(VkDeviceSize);
3774 }
3775
reservedunmarshal_VkBindImageMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindImageMemoryInfo * forUnmarshaling,uint8_t ** ptr)3776 void reservedunmarshal_VkBindImageMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
3777 VkBindImageMemoryInfo* forUnmarshaling,
3778 uint8_t** ptr) {
3779 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3780 *ptr += sizeof(VkStructureType);
3781 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3782 rootType = forUnmarshaling->sType;
3783 }
3784 uint32_t pNext_size;
3785 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3786 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3787 *ptr += sizeof(uint32_t);
3788 forUnmarshaling->pNext = nullptr;
3789 if (pNext_size) {
3790 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3791 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3792 *ptr += sizeof(VkStructureType);
3793 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3794 vkStream->alloc((void**)&forUnmarshaling->pNext,
3795 goldfish_vk_extension_struct_size_with_stream_features(
3796 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3797 *(VkStructureType*)forUnmarshaling->pNext = extType;
3798 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3799 ptr);
3800 }
3801 uint64_t cgen_var_0;
3802 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3803 *ptr += 1 * 8;
3804 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
3805 uint64_t cgen_var_1;
3806 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
3807 *ptr += 1 * 8;
3808 *(VkDeviceMemory*)&forUnmarshaling->memory =
3809 (VkDeviceMemory)unbox_VkDeviceMemory((VkDeviceMemory)(*&cgen_var_1));
3810 memcpy((VkDeviceSize*)&forUnmarshaling->memoryOffset, *ptr, sizeof(VkDeviceSize));
3811 *ptr += sizeof(VkDeviceSize);
3812 }
3813
reservedunmarshal_VkPhysicalDevice16BitStorageFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevice16BitStorageFeatures * forUnmarshaling,uint8_t ** ptr)3814 void reservedunmarshal_VkPhysicalDevice16BitStorageFeatures(
3815 VulkanStream* vkStream, VkStructureType rootType,
3816 VkPhysicalDevice16BitStorageFeatures* forUnmarshaling, uint8_t** ptr) {
3817 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3818 *ptr += sizeof(VkStructureType);
3819 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3820 rootType = forUnmarshaling->sType;
3821 }
3822 uint32_t pNext_size;
3823 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3824 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3825 *ptr += sizeof(uint32_t);
3826 forUnmarshaling->pNext = nullptr;
3827 if (pNext_size) {
3828 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3829 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3830 *ptr += sizeof(VkStructureType);
3831 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3832 vkStream->alloc((void**)&forUnmarshaling->pNext,
3833 goldfish_vk_extension_struct_size_with_stream_features(
3834 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3835 *(VkStructureType*)forUnmarshaling->pNext = extType;
3836 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3837 ptr);
3838 }
3839 memcpy((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, *ptr, sizeof(VkBool32));
3840 *ptr += sizeof(VkBool32);
3841 memcpy((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess, *ptr, sizeof(VkBool32));
3842 *ptr += sizeof(VkBool32);
3843 memcpy((VkBool32*)&forUnmarshaling->storagePushConstant16, *ptr, sizeof(VkBool32));
3844 *ptr += sizeof(VkBool32);
3845 memcpy((VkBool32*)&forUnmarshaling->storageInputOutput16, *ptr, sizeof(VkBool32));
3846 *ptr += sizeof(VkBool32);
3847 }
3848
reservedunmarshal_VkMemoryDedicatedRequirements(VulkanStream * vkStream,VkStructureType rootType,VkMemoryDedicatedRequirements * forUnmarshaling,uint8_t ** ptr)3849 void reservedunmarshal_VkMemoryDedicatedRequirements(VulkanStream* vkStream,
3850 VkStructureType rootType,
3851 VkMemoryDedicatedRequirements* forUnmarshaling,
3852 uint8_t** ptr) {
3853 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3854 *ptr += sizeof(VkStructureType);
3855 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3856 rootType = forUnmarshaling->sType;
3857 }
3858 uint32_t pNext_size;
3859 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3860 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3861 *ptr += sizeof(uint32_t);
3862 forUnmarshaling->pNext = nullptr;
3863 if (pNext_size) {
3864 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3865 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3866 *ptr += sizeof(VkStructureType);
3867 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3868 vkStream->alloc((void**)&forUnmarshaling->pNext,
3869 goldfish_vk_extension_struct_size_with_stream_features(
3870 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3871 *(VkStructureType*)forUnmarshaling->pNext = extType;
3872 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3873 ptr);
3874 }
3875 memcpy((VkBool32*)&forUnmarshaling->prefersDedicatedAllocation, *ptr, sizeof(VkBool32));
3876 *ptr += sizeof(VkBool32);
3877 memcpy((VkBool32*)&forUnmarshaling->requiresDedicatedAllocation, *ptr, sizeof(VkBool32));
3878 *ptr += sizeof(VkBool32);
3879 }
3880
reservedunmarshal_VkMemoryDedicatedAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryDedicatedAllocateInfo * forUnmarshaling,uint8_t ** ptr)3881 void reservedunmarshal_VkMemoryDedicatedAllocateInfo(VulkanStream* vkStream,
3882 VkStructureType rootType,
3883 VkMemoryDedicatedAllocateInfo* forUnmarshaling,
3884 uint8_t** ptr) {
3885 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3886 *ptr += sizeof(VkStructureType);
3887 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3888 rootType = forUnmarshaling->sType;
3889 }
3890 uint32_t pNext_size;
3891 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3892 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3893 *ptr += sizeof(uint32_t);
3894 forUnmarshaling->pNext = nullptr;
3895 if (pNext_size) {
3896 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3897 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3898 *ptr += sizeof(VkStructureType);
3899 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3900 vkStream->alloc((void**)&forUnmarshaling->pNext,
3901 goldfish_vk_extension_struct_size_with_stream_features(
3902 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3903 *(VkStructureType*)forUnmarshaling->pNext = extType;
3904 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3905 ptr);
3906 }
3907 uint64_t cgen_var_0;
3908 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
3909 *ptr += 1 * 8;
3910 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
3911 uint64_t cgen_var_1;
3912 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
3913 *ptr += 1 * 8;
3914 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_1));
3915 }
3916
reservedunmarshal_VkMemoryAllocateFlagsInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryAllocateFlagsInfo * forUnmarshaling,uint8_t ** ptr)3917 void reservedunmarshal_VkMemoryAllocateFlagsInfo(VulkanStream* vkStream, VkStructureType rootType,
3918 VkMemoryAllocateFlagsInfo* forUnmarshaling,
3919 uint8_t** ptr) {
3920 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3921 *ptr += sizeof(VkStructureType);
3922 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3923 rootType = forUnmarshaling->sType;
3924 }
3925 uint32_t pNext_size;
3926 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3927 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3928 *ptr += sizeof(uint32_t);
3929 forUnmarshaling->pNext = nullptr;
3930 if (pNext_size) {
3931 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3932 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3933 *ptr += sizeof(VkStructureType);
3934 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3935 vkStream->alloc((void**)&forUnmarshaling->pNext,
3936 goldfish_vk_extension_struct_size_with_stream_features(
3937 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3938 *(VkStructureType*)forUnmarshaling->pNext = extType;
3939 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3940 ptr);
3941 }
3942 memcpy((VkMemoryAllocateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkMemoryAllocateFlags));
3943 *ptr += sizeof(VkMemoryAllocateFlags);
3944 memcpy((uint32_t*)&forUnmarshaling->deviceMask, *ptr, sizeof(uint32_t));
3945 *ptr += sizeof(uint32_t);
3946 }
3947
reservedunmarshal_VkDeviceGroupRenderPassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupRenderPassBeginInfo * forUnmarshaling,uint8_t ** ptr)3948 void reservedunmarshal_VkDeviceGroupRenderPassBeginInfo(
3949 VulkanStream* vkStream, VkStructureType rootType,
3950 VkDeviceGroupRenderPassBeginInfo* forUnmarshaling, uint8_t** ptr) {
3951 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3952 *ptr += sizeof(VkStructureType);
3953 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3954 rootType = forUnmarshaling->sType;
3955 }
3956 uint32_t pNext_size;
3957 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3958 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3959 *ptr += sizeof(uint32_t);
3960 forUnmarshaling->pNext = nullptr;
3961 if (pNext_size) {
3962 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
3963 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
3964 *ptr += sizeof(VkStructureType);
3965 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
3966 vkStream->alloc((void**)&forUnmarshaling->pNext,
3967 goldfish_vk_extension_struct_size_with_stream_features(
3968 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
3969 *(VkStructureType*)forUnmarshaling->pNext = extType;
3970 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
3971 ptr);
3972 }
3973 memcpy((uint32_t*)&forUnmarshaling->deviceMask, *ptr, sizeof(uint32_t));
3974 *ptr += sizeof(uint32_t);
3975 memcpy((uint32_t*)&forUnmarshaling->deviceRenderAreaCount, *ptr, sizeof(uint32_t));
3976 *ptr += sizeof(uint32_t);
3977 vkStream->alloc((void**)&forUnmarshaling->pDeviceRenderAreas,
3978 forUnmarshaling->deviceRenderAreaCount * sizeof(const VkRect2D));
3979 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->deviceRenderAreaCount; ++i) {
3980 reservedunmarshal_VkRect2D(vkStream, rootType,
3981 (VkRect2D*)(forUnmarshaling->pDeviceRenderAreas + i), ptr);
3982 }
3983 }
3984
reservedunmarshal_VkDeviceGroupCommandBufferBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupCommandBufferBeginInfo * forUnmarshaling,uint8_t ** ptr)3985 void reservedunmarshal_VkDeviceGroupCommandBufferBeginInfo(
3986 VulkanStream* vkStream, VkStructureType rootType,
3987 VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling, uint8_t** ptr) {
3988 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
3989 *ptr += sizeof(VkStructureType);
3990 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
3991 rootType = forUnmarshaling->sType;
3992 }
3993 uint32_t pNext_size;
3994 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
3995 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
3996 *ptr += sizeof(uint32_t);
3997 forUnmarshaling->pNext = nullptr;
3998 if (pNext_size) {
3999 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4000 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4001 *ptr += sizeof(VkStructureType);
4002 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4003 vkStream->alloc((void**)&forUnmarshaling->pNext,
4004 goldfish_vk_extension_struct_size_with_stream_features(
4005 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4006 *(VkStructureType*)forUnmarshaling->pNext = extType;
4007 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4008 ptr);
4009 }
4010 memcpy((uint32_t*)&forUnmarshaling->deviceMask, *ptr, sizeof(uint32_t));
4011 *ptr += sizeof(uint32_t);
4012 }
4013
reservedunmarshal_VkDeviceGroupSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupSubmitInfo * forUnmarshaling,uint8_t ** ptr)4014 void reservedunmarshal_VkDeviceGroupSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
4015 VkDeviceGroupSubmitInfo* forUnmarshaling,
4016 uint8_t** ptr) {
4017 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4018 *ptr += sizeof(VkStructureType);
4019 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4020 rootType = forUnmarshaling->sType;
4021 }
4022 uint32_t pNext_size;
4023 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4024 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4025 *ptr += sizeof(uint32_t);
4026 forUnmarshaling->pNext = nullptr;
4027 if (pNext_size) {
4028 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4029 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4030 *ptr += sizeof(VkStructureType);
4031 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4032 vkStream->alloc((void**)&forUnmarshaling->pNext,
4033 goldfish_vk_extension_struct_size_with_stream_features(
4034 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4035 *(VkStructureType*)forUnmarshaling->pNext = extType;
4036 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4037 ptr);
4038 }
4039 memcpy((uint32_t*)&forUnmarshaling->waitSemaphoreCount, *ptr, sizeof(uint32_t));
4040 *ptr += sizeof(uint32_t);
4041 vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphoreDeviceIndices,
4042 forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4043 memcpy((uint32_t*)forUnmarshaling->pWaitSemaphoreDeviceIndices, *ptr,
4044 forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t));
4045 *ptr += forUnmarshaling->waitSemaphoreCount * sizeof(const uint32_t);
4046 memcpy((uint32_t*)&forUnmarshaling->commandBufferCount, *ptr, sizeof(uint32_t));
4047 *ptr += sizeof(uint32_t);
4048 vkStream->alloc((void**)&forUnmarshaling->pCommandBufferDeviceMasks,
4049 forUnmarshaling->commandBufferCount * sizeof(const uint32_t));
4050 memcpy((uint32_t*)forUnmarshaling->pCommandBufferDeviceMasks, *ptr,
4051 forUnmarshaling->commandBufferCount * sizeof(const uint32_t));
4052 *ptr += forUnmarshaling->commandBufferCount * sizeof(const uint32_t);
4053 memcpy((uint32_t*)&forUnmarshaling->signalSemaphoreCount, *ptr, sizeof(uint32_t));
4054 *ptr += sizeof(uint32_t);
4055 vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphoreDeviceIndices,
4056 forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4057 memcpy((uint32_t*)forUnmarshaling->pSignalSemaphoreDeviceIndices, *ptr,
4058 forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t));
4059 *ptr += forUnmarshaling->signalSemaphoreCount * sizeof(const uint32_t);
4060 }
4061
reservedunmarshal_VkDeviceGroupBindSparseInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupBindSparseInfo * forUnmarshaling,uint8_t ** ptr)4062 void reservedunmarshal_VkDeviceGroupBindSparseInfo(VulkanStream* vkStream, VkStructureType rootType,
4063 VkDeviceGroupBindSparseInfo* forUnmarshaling,
4064 uint8_t** ptr) {
4065 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4066 *ptr += sizeof(VkStructureType);
4067 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4068 rootType = forUnmarshaling->sType;
4069 }
4070 uint32_t pNext_size;
4071 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4072 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4073 *ptr += sizeof(uint32_t);
4074 forUnmarshaling->pNext = nullptr;
4075 if (pNext_size) {
4076 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4077 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4078 *ptr += sizeof(VkStructureType);
4079 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4080 vkStream->alloc((void**)&forUnmarshaling->pNext,
4081 goldfish_vk_extension_struct_size_with_stream_features(
4082 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4083 *(VkStructureType*)forUnmarshaling->pNext = extType;
4084 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4085 ptr);
4086 }
4087 memcpy((uint32_t*)&forUnmarshaling->resourceDeviceIndex, *ptr, sizeof(uint32_t));
4088 *ptr += sizeof(uint32_t);
4089 memcpy((uint32_t*)&forUnmarshaling->memoryDeviceIndex, *ptr, sizeof(uint32_t));
4090 *ptr += sizeof(uint32_t);
4091 }
4092
reservedunmarshal_VkBindBufferMemoryDeviceGroupInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindBufferMemoryDeviceGroupInfo * forUnmarshaling,uint8_t ** ptr)4093 void reservedunmarshal_VkBindBufferMemoryDeviceGroupInfo(
4094 VulkanStream* vkStream, VkStructureType rootType,
4095 VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling, uint8_t** ptr) {
4096 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4097 *ptr += sizeof(VkStructureType);
4098 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4099 rootType = forUnmarshaling->sType;
4100 }
4101 uint32_t pNext_size;
4102 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4103 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4104 *ptr += sizeof(uint32_t);
4105 forUnmarshaling->pNext = nullptr;
4106 if (pNext_size) {
4107 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4108 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4109 *ptr += sizeof(VkStructureType);
4110 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4111 vkStream->alloc((void**)&forUnmarshaling->pNext,
4112 goldfish_vk_extension_struct_size_with_stream_features(
4113 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4114 *(VkStructureType*)forUnmarshaling->pNext = extType;
4115 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4116 ptr);
4117 }
4118 memcpy((uint32_t*)&forUnmarshaling->deviceIndexCount, *ptr, sizeof(uint32_t));
4119 *ptr += sizeof(uint32_t);
4120 vkStream->alloc((void**)&forUnmarshaling->pDeviceIndices,
4121 forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4122 memcpy((uint32_t*)forUnmarshaling->pDeviceIndices, *ptr,
4123 forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4124 *ptr += forUnmarshaling->deviceIndexCount * sizeof(const uint32_t);
4125 }
4126
reservedunmarshal_VkBindImageMemoryDeviceGroupInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindImageMemoryDeviceGroupInfo * forUnmarshaling,uint8_t ** ptr)4127 void reservedunmarshal_VkBindImageMemoryDeviceGroupInfo(
4128 VulkanStream* vkStream, VkStructureType rootType,
4129 VkBindImageMemoryDeviceGroupInfo* forUnmarshaling, uint8_t** ptr) {
4130 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4131 *ptr += sizeof(VkStructureType);
4132 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4133 rootType = forUnmarshaling->sType;
4134 }
4135 uint32_t pNext_size;
4136 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4137 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4138 *ptr += sizeof(uint32_t);
4139 forUnmarshaling->pNext = nullptr;
4140 if (pNext_size) {
4141 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4142 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4143 *ptr += sizeof(VkStructureType);
4144 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4145 vkStream->alloc((void**)&forUnmarshaling->pNext,
4146 goldfish_vk_extension_struct_size_with_stream_features(
4147 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4148 *(VkStructureType*)forUnmarshaling->pNext = extType;
4149 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4150 ptr);
4151 }
4152 memcpy((uint32_t*)&forUnmarshaling->deviceIndexCount, *ptr, sizeof(uint32_t));
4153 *ptr += sizeof(uint32_t);
4154 vkStream->alloc((void**)&forUnmarshaling->pDeviceIndices,
4155 forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4156 memcpy((uint32_t*)forUnmarshaling->pDeviceIndices, *ptr,
4157 forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
4158 *ptr += forUnmarshaling->deviceIndexCount * sizeof(const uint32_t);
4159 memcpy((uint32_t*)&forUnmarshaling->splitInstanceBindRegionCount, *ptr, sizeof(uint32_t));
4160 *ptr += sizeof(uint32_t);
4161 vkStream->alloc((void**)&forUnmarshaling->pSplitInstanceBindRegions,
4162 forUnmarshaling->splitInstanceBindRegionCount * sizeof(const VkRect2D));
4163 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->splitInstanceBindRegionCount; ++i) {
4164 reservedunmarshal_VkRect2D(
4165 vkStream, rootType, (VkRect2D*)(forUnmarshaling->pSplitInstanceBindRegions + i), ptr);
4166 }
4167 }
4168
reservedunmarshal_VkPhysicalDeviceGroupProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceGroupProperties * forUnmarshaling,uint8_t ** ptr)4169 void reservedunmarshal_VkPhysicalDeviceGroupProperties(
4170 VulkanStream* vkStream, VkStructureType rootType,
4171 VkPhysicalDeviceGroupProperties* forUnmarshaling, uint8_t** ptr) {
4172 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4173 *ptr += sizeof(VkStructureType);
4174 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4175 rootType = forUnmarshaling->sType;
4176 }
4177 uint32_t pNext_size;
4178 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4179 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4180 *ptr += sizeof(uint32_t);
4181 forUnmarshaling->pNext = nullptr;
4182 if (pNext_size) {
4183 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4184 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4185 *ptr += sizeof(VkStructureType);
4186 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4187 vkStream->alloc((void**)&forUnmarshaling->pNext,
4188 goldfish_vk_extension_struct_size_with_stream_features(
4189 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4190 *(VkStructureType*)forUnmarshaling->pNext = extType;
4191 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4192 ptr);
4193 }
4194 memcpy((uint32_t*)&forUnmarshaling->physicalDeviceCount, *ptr, sizeof(uint32_t));
4195 *ptr += sizeof(uint32_t);
4196 memcpy((VkPhysicalDevice*)forUnmarshaling->physicalDevices, *ptr,
4197 VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
4198 *ptr += VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice);
4199 memcpy((VkBool32*)&forUnmarshaling->subsetAllocation, *ptr, sizeof(VkBool32));
4200 *ptr += sizeof(VkBool32);
4201 }
4202
reservedunmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupDeviceCreateInfo * forUnmarshaling,uint8_t ** ptr)4203 void reservedunmarshal_VkDeviceGroupDeviceCreateInfo(VulkanStream* vkStream,
4204 VkStructureType rootType,
4205 VkDeviceGroupDeviceCreateInfo* forUnmarshaling,
4206 uint8_t** ptr) {
4207 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4208 *ptr += sizeof(VkStructureType);
4209 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4210 rootType = forUnmarshaling->sType;
4211 }
4212 uint32_t pNext_size;
4213 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4214 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4215 *ptr += sizeof(uint32_t);
4216 forUnmarshaling->pNext = nullptr;
4217 if (pNext_size) {
4218 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4219 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4220 *ptr += sizeof(VkStructureType);
4221 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4222 vkStream->alloc((void**)&forUnmarshaling->pNext,
4223 goldfish_vk_extension_struct_size_with_stream_features(
4224 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4225 *(VkStructureType*)forUnmarshaling->pNext = extType;
4226 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4227 ptr);
4228 }
4229 memcpy((uint32_t*)&forUnmarshaling->physicalDeviceCount, *ptr, sizeof(uint32_t));
4230 *ptr += sizeof(uint32_t);
4231 vkStream->alloc((void**)&forUnmarshaling->pPhysicalDevices,
4232 forUnmarshaling->physicalDeviceCount * sizeof(const VkPhysicalDevice));
4233 if (forUnmarshaling->physicalDeviceCount) {
4234 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
4235 *ptr += 8 * forUnmarshaling->physicalDeviceCount;
4236 if (forUnmarshaling) {
4237 for (uint32_t k = 0; k < forUnmarshaling->physicalDeviceCount; ++k) {
4238 uint64_t tmpval;
4239 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
4240 *(((VkPhysicalDevice*)forUnmarshaling->pPhysicalDevices) + k) =
4241 tmpval ? (VkPhysicalDevice)unbox_VkPhysicalDevice((VkPhysicalDevice)tmpval)
4242 : VK_NULL_HANDLE;
4243 }
4244 }
4245 }
4246 }
4247
reservedunmarshal_VkBufferMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,VkBufferMemoryRequirementsInfo2 * forUnmarshaling,uint8_t ** ptr)4248 void reservedunmarshal_VkBufferMemoryRequirementsInfo2(
4249 VulkanStream* vkStream, VkStructureType rootType,
4250 VkBufferMemoryRequirementsInfo2* forUnmarshaling, uint8_t** ptr) {
4251 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4252 *ptr += sizeof(VkStructureType);
4253 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4254 rootType = forUnmarshaling->sType;
4255 }
4256 uint32_t pNext_size;
4257 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4258 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4259 *ptr += sizeof(uint32_t);
4260 forUnmarshaling->pNext = nullptr;
4261 if (pNext_size) {
4262 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4263 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4264 *ptr += sizeof(VkStructureType);
4265 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4266 vkStream->alloc((void**)&forUnmarshaling->pNext,
4267 goldfish_vk_extension_struct_size_with_stream_features(
4268 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4269 *(VkStructureType*)forUnmarshaling->pNext = extType;
4270 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4271 ptr);
4272 }
4273 uint64_t cgen_var_0;
4274 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
4275 *ptr += 1 * 8;
4276 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
4277 }
4278
reservedunmarshal_VkImageMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,VkImageMemoryRequirementsInfo2 * forUnmarshaling,uint8_t ** ptr)4279 void reservedunmarshal_VkImageMemoryRequirementsInfo2(
4280 VulkanStream* vkStream, VkStructureType rootType,
4281 VkImageMemoryRequirementsInfo2* forUnmarshaling, uint8_t** ptr) {
4282 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4283 *ptr += sizeof(VkStructureType);
4284 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4285 rootType = forUnmarshaling->sType;
4286 }
4287 uint32_t pNext_size;
4288 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4289 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4290 *ptr += sizeof(uint32_t);
4291 forUnmarshaling->pNext = nullptr;
4292 if (pNext_size) {
4293 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4294 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4295 *ptr += sizeof(VkStructureType);
4296 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4297 vkStream->alloc((void**)&forUnmarshaling->pNext,
4298 goldfish_vk_extension_struct_size_with_stream_features(
4299 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4300 *(VkStructureType*)forUnmarshaling->pNext = extType;
4301 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4302 ptr);
4303 }
4304 uint64_t cgen_var_0;
4305 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
4306 *ptr += 1 * 8;
4307 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
4308 }
4309
reservedunmarshal_VkImageSparseMemoryRequirementsInfo2(VulkanStream * vkStream,VkStructureType rootType,VkImageSparseMemoryRequirementsInfo2 * forUnmarshaling,uint8_t ** ptr)4310 void reservedunmarshal_VkImageSparseMemoryRequirementsInfo2(
4311 VulkanStream* vkStream, VkStructureType rootType,
4312 VkImageSparseMemoryRequirementsInfo2* forUnmarshaling, uint8_t** ptr) {
4313 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4314 *ptr += sizeof(VkStructureType);
4315 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4316 rootType = forUnmarshaling->sType;
4317 }
4318 uint32_t pNext_size;
4319 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4320 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4321 *ptr += sizeof(uint32_t);
4322 forUnmarshaling->pNext = nullptr;
4323 if (pNext_size) {
4324 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4325 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4326 *ptr += sizeof(VkStructureType);
4327 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4328 vkStream->alloc((void**)&forUnmarshaling->pNext,
4329 goldfish_vk_extension_struct_size_with_stream_features(
4330 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4331 *(VkStructureType*)forUnmarshaling->pNext = extType;
4332 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4333 ptr);
4334 }
4335 uint64_t cgen_var_0;
4336 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
4337 *ptr += 1 * 8;
4338 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
4339 }
4340
reservedunmarshal_VkMemoryRequirements2(VulkanStream * vkStream,VkStructureType rootType,VkMemoryRequirements2 * forUnmarshaling,uint8_t ** ptr)4341 void reservedunmarshal_VkMemoryRequirements2(VulkanStream* vkStream, VkStructureType rootType,
4342 VkMemoryRequirements2* forUnmarshaling,
4343 uint8_t** ptr) {
4344 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4345 *ptr += sizeof(VkStructureType);
4346 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4347 rootType = forUnmarshaling->sType;
4348 }
4349 uint32_t pNext_size;
4350 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4351 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4352 *ptr += sizeof(uint32_t);
4353 forUnmarshaling->pNext = nullptr;
4354 if (pNext_size) {
4355 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4356 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4357 *ptr += sizeof(VkStructureType);
4358 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4359 vkStream->alloc((void**)&forUnmarshaling->pNext,
4360 goldfish_vk_extension_struct_size_with_stream_features(
4361 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4362 *(VkStructureType*)forUnmarshaling->pNext = extType;
4363 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4364 ptr);
4365 }
4366 reservedunmarshal_VkMemoryRequirements(
4367 vkStream, rootType, (VkMemoryRequirements*)(&forUnmarshaling->memoryRequirements), ptr);
4368 }
4369
reservedunmarshal_VkSparseImageMemoryRequirements2(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageMemoryRequirements2 * forUnmarshaling,uint8_t ** ptr)4370 void reservedunmarshal_VkSparseImageMemoryRequirements2(
4371 VulkanStream* vkStream, VkStructureType rootType,
4372 VkSparseImageMemoryRequirements2* forUnmarshaling, uint8_t** ptr) {
4373 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4374 *ptr += sizeof(VkStructureType);
4375 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4376 rootType = forUnmarshaling->sType;
4377 }
4378 uint32_t pNext_size;
4379 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4380 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4381 *ptr += sizeof(uint32_t);
4382 forUnmarshaling->pNext = nullptr;
4383 if (pNext_size) {
4384 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4385 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4386 *ptr += sizeof(VkStructureType);
4387 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4388 vkStream->alloc((void**)&forUnmarshaling->pNext,
4389 goldfish_vk_extension_struct_size_with_stream_features(
4390 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4391 *(VkStructureType*)forUnmarshaling->pNext = extType;
4392 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4393 ptr);
4394 }
4395 reservedunmarshal_VkSparseImageMemoryRequirements(
4396 vkStream, rootType,
4397 (VkSparseImageMemoryRequirements*)(&forUnmarshaling->memoryRequirements), ptr);
4398 }
4399
reservedunmarshal_VkPhysicalDeviceFeatures2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFeatures2 * forUnmarshaling,uint8_t ** ptr)4400 void reservedunmarshal_VkPhysicalDeviceFeatures2(VulkanStream* vkStream, VkStructureType rootType,
4401 VkPhysicalDeviceFeatures2* forUnmarshaling,
4402 uint8_t** ptr) {
4403 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4404 *ptr += sizeof(VkStructureType);
4405 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4406 rootType = forUnmarshaling->sType;
4407 }
4408 uint32_t pNext_size;
4409 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4410 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4411 *ptr += sizeof(uint32_t);
4412 forUnmarshaling->pNext = nullptr;
4413 if (pNext_size) {
4414 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4415 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4416 *ptr += sizeof(VkStructureType);
4417 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4418 vkStream->alloc((void**)&forUnmarshaling->pNext,
4419 goldfish_vk_extension_struct_size_with_stream_features(
4420 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4421 *(VkStructureType*)forUnmarshaling->pNext = extType;
4422 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4423 ptr);
4424 }
4425 reservedunmarshal_VkPhysicalDeviceFeatures(
4426 vkStream, rootType, (VkPhysicalDeviceFeatures*)(&forUnmarshaling->features), ptr);
4427 }
4428
reservedunmarshal_VkPhysicalDeviceProperties2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProperties2 * forUnmarshaling,uint8_t ** ptr)4429 void reservedunmarshal_VkPhysicalDeviceProperties2(VulkanStream* vkStream, VkStructureType rootType,
4430 VkPhysicalDeviceProperties2* forUnmarshaling,
4431 uint8_t** ptr) {
4432 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4433 *ptr += sizeof(VkStructureType);
4434 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4435 rootType = forUnmarshaling->sType;
4436 }
4437 uint32_t pNext_size;
4438 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4439 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4440 *ptr += sizeof(uint32_t);
4441 forUnmarshaling->pNext = nullptr;
4442 if (pNext_size) {
4443 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4444 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4445 *ptr += sizeof(VkStructureType);
4446 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4447 vkStream->alloc((void**)&forUnmarshaling->pNext,
4448 goldfish_vk_extension_struct_size_with_stream_features(
4449 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4450 *(VkStructureType*)forUnmarshaling->pNext = extType;
4451 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4452 ptr);
4453 }
4454 reservedunmarshal_VkPhysicalDeviceProperties(
4455 vkStream, rootType, (VkPhysicalDeviceProperties*)(&forUnmarshaling->properties), ptr);
4456 }
4457
reservedunmarshal_VkFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,VkFormatProperties2 * forUnmarshaling,uint8_t ** ptr)4458 void reservedunmarshal_VkFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
4459 VkFormatProperties2* forUnmarshaling, uint8_t** ptr) {
4460 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4461 *ptr += sizeof(VkStructureType);
4462 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4463 rootType = forUnmarshaling->sType;
4464 }
4465 uint32_t pNext_size;
4466 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4467 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4468 *ptr += sizeof(uint32_t);
4469 forUnmarshaling->pNext = nullptr;
4470 if (pNext_size) {
4471 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4472 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4473 *ptr += sizeof(VkStructureType);
4474 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4475 vkStream->alloc((void**)&forUnmarshaling->pNext,
4476 goldfish_vk_extension_struct_size_with_stream_features(
4477 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4478 *(VkStructureType*)forUnmarshaling->pNext = extType;
4479 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4480 ptr);
4481 }
4482 reservedunmarshal_VkFormatProperties(
4483 vkStream, rootType, (VkFormatProperties*)(&forUnmarshaling->formatProperties), ptr);
4484 }
4485
reservedunmarshal_VkImageFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,VkImageFormatProperties2 * forUnmarshaling,uint8_t ** ptr)4486 void reservedunmarshal_VkImageFormatProperties2(VulkanStream* vkStream, VkStructureType rootType,
4487 VkImageFormatProperties2* forUnmarshaling,
4488 uint8_t** ptr) {
4489 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4490 *ptr += sizeof(VkStructureType);
4491 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4492 rootType = forUnmarshaling->sType;
4493 }
4494 uint32_t pNext_size;
4495 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4496 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4497 *ptr += sizeof(uint32_t);
4498 forUnmarshaling->pNext = nullptr;
4499 if (pNext_size) {
4500 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4501 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4502 *ptr += sizeof(VkStructureType);
4503 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4504 vkStream->alloc((void**)&forUnmarshaling->pNext,
4505 goldfish_vk_extension_struct_size_with_stream_features(
4506 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4507 *(VkStructureType*)forUnmarshaling->pNext = extType;
4508 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4509 ptr);
4510 }
4511 reservedunmarshal_VkImageFormatProperties(
4512 vkStream, rootType, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties),
4513 ptr);
4514 }
4515
reservedunmarshal_VkPhysicalDeviceImageFormatInfo2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageFormatInfo2 * forUnmarshaling,uint8_t ** ptr)4516 void reservedunmarshal_VkPhysicalDeviceImageFormatInfo2(
4517 VulkanStream* vkStream, VkStructureType rootType,
4518 VkPhysicalDeviceImageFormatInfo2* forUnmarshaling, uint8_t** ptr) {
4519 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4520 *ptr += sizeof(VkStructureType);
4521 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4522 rootType = forUnmarshaling->sType;
4523 }
4524 uint32_t pNext_size;
4525 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4526 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4527 *ptr += sizeof(uint32_t);
4528 forUnmarshaling->pNext = nullptr;
4529 if (pNext_size) {
4530 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4531 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4532 *ptr += sizeof(VkStructureType);
4533 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4534 vkStream->alloc((void**)&forUnmarshaling->pNext,
4535 goldfish_vk_extension_struct_size_with_stream_features(
4536 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4537 *(VkStructureType*)forUnmarshaling->pNext = extType;
4538 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4539 ptr);
4540 }
4541 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
4542 *ptr += sizeof(VkFormat);
4543 memcpy((VkImageType*)&forUnmarshaling->type, *ptr, sizeof(VkImageType));
4544 *ptr += sizeof(VkImageType);
4545 memcpy((VkImageTiling*)&forUnmarshaling->tiling, *ptr, sizeof(VkImageTiling));
4546 *ptr += sizeof(VkImageTiling);
4547 memcpy((VkImageUsageFlags*)&forUnmarshaling->usage, *ptr, sizeof(VkImageUsageFlags));
4548 *ptr += sizeof(VkImageUsageFlags);
4549 memcpy((VkImageCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkImageCreateFlags));
4550 *ptr += sizeof(VkImageCreateFlags);
4551 }
4552
reservedunmarshal_VkQueueFamilyProperties2(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyProperties2 * forUnmarshaling,uint8_t ** ptr)4553 void reservedunmarshal_VkQueueFamilyProperties2(VulkanStream* vkStream, VkStructureType rootType,
4554 VkQueueFamilyProperties2* forUnmarshaling,
4555 uint8_t** ptr) {
4556 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4557 *ptr += sizeof(VkStructureType);
4558 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4559 rootType = forUnmarshaling->sType;
4560 }
4561 uint32_t pNext_size;
4562 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4563 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4564 *ptr += sizeof(uint32_t);
4565 forUnmarshaling->pNext = nullptr;
4566 if (pNext_size) {
4567 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4568 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4569 *ptr += sizeof(VkStructureType);
4570 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4571 vkStream->alloc((void**)&forUnmarshaling->pNext,
4572 goldfish_vk_extension_struct_size_with_stream_features(
4573 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4574 *(VkStructureType*)forUnmarshaling->pNext = extType;
4575 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4576 ptr);
4577 }
4578 reservedunmarshal_VkQueueFamilyProperties(
4579 vkStream, rootType, (VkQueueFamilyProperties*)(&forUnmarshaling->queueFamilyProperties),
4580 ptr);
4581 }
4582
reservedunmarshal_VkPhysicalDeviceMemoryProperties2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMemoryProperties2 * forUnmarshaling,uint8_t ** ptr)4583 void reservedunmarshal_VkPhysicalDeviceMemoryProperties2(
4584 VulkanStream* vkStream, VkStructureType rootType,
4585 VkPhysicalDeviceMemoryProperties2* forUnmarshaling, uint8_t** ptr) {
4586 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4587 *ptr += sizeof(VkStructureType);
4588 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4589 rootType = forUnmarshaling->sType;
4590 }
4591 uint32_t pNext_size;
4592 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4593 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4594 *ptr += sizeof(uint32_t);
4595 forUnmarshaling->pNext = nullptr;
4596 if (pNext_size) {
4597 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4598 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4599 *ptr += sizeof(VkStructureType);
4600 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4601 vkStream->alloc((void**)&forUnmarshaling->pNext,
4602 goldfish_vk_extension_struct_size_with_stream_features(
4603 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4604 *(VkStructureType*)forUnmarshaling->pNext = extType;
4605 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4606 ptr);
4607 }
4608 reservedunmarshal_VkPhysicalDeviceMemoryProperties(
4609 vkStream, rootType, (VkPhysicalDeviceMemoryProperties*)(&forUnmarshaling->memoryProperties),
4610 ptr);
4611 }
4612
reservedunmarshal_VkSparseImageFormatProperties2(VulkanStream * vkStream,VkStructureType rootType,VkSparseImageFormatProperties2 * forUnmarshaling,uint8_t ** ptr)4613 void reservedunmarshal_VkSparseImageFormatProperties2(
4614 VulkanStream* vkStream, VkStructureType rootType,
4615 VkSparseImageFormatProperties2* forUnmarshaling, uint8_t** ptr) {
4616 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4617 *ptr += sizeof(VkStructureType);
4618 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4619 rootType = forUnmarshaling->sType;
4620 }
4621 uint32_t pNext_size;
4622 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4623 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4624 *ptr += sizeof(uint32_t);
4625 forUnmarshaling->pNext = nullptr;
4626 if (pNext_size) {
4627 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4628 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4629 *ptr += sizeof(VkStructureType);
4630 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4631 vkStream->alloc((void**)&forUnmarshaling->pNext,
4632 goldfish_vk_extension_struct_size_with_stream_features(
4633 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4634 *(VkStructureType*)forUnmarshaling->pNext = extType;
4635 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4636 ptr);
4637 }
4638 reservedunmarshal_VkSparseImageFormatProperties(
4639 vkStream, rootType, (VkSparseImageFormatProperties*)(&forUnmarshaling->properties), ptr);
4640 }
4641
reservedunmarshal_VkPhysicalDeviceSparseImageFormatInfo2(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSparseImageFormatInfo2 * forUnmarshaling,uint8_t ** ptr)4642 void reservedunmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
4643 VulkanStream* vkStream, VkStructureType rootType,
4644 VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling, uint8_t** ptr) {
4645 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4646 *ptr += sizeof(VkStructureType);
4647 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4648 rootType = forUnmarshaling->sType;
4649 }
4650 uint32_t pNext_size;
4651 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4652 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4653 *ptr += sizeof(uint32_t);
4654 forUnmarshaling->pNext = nullptr;
4655 if (pNext_size) {
4656 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4657 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4658 *ptr += sizeof(VkStructureType);
4659 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4660 vkStream->alloc((void**)&forUnmarshaling->pNext,
4661 goldfish_vk_extension_struct_size_with_stream_features(
4662 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4663 *(VkStructureType*)forUnmarshaling->pNext = extType;
4664 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4665 ptr);
4666 }
4667 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
4668 *ptr += sizeof(VkFormat);
4669 memcpy((VkImageType*)&forUnmarshaling->type, *ptr, sizeof(VkImageType));
4670 *ptr += sizeof(VkImageType);
4671 memcpy((VkSampleCountFlagBits*)&forUnmarshaling->samples, *ptr, sizeof(VkSampleCountFlagBits));
4672 *ptr += sizeof(VkSampleCountFlagBits);
4673 memcpy((VkImageUsageFlags*)&forUnmarshaling->usage, *ptr, sizeof(VkImageUsageFlags));
4674 *ptr += sizeof(VkImageUsageFlags);
4675 memcpy((VkImageTiling*)&forUnmarshaling->tiling, *ptr, sizeof(VkImageTiling));
4676 *ptr += sizeof(VkImageTiling);
4677 }
4678
reservedunmarshal_VkPhysicalDevicePointClippingProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePointClippingProperties * forUnmarshaling,uint8_t ** ptr)4679 void reservedunmarshal_VkPhysicalDevicePointClippingProperties(
4680 VulkanStream* vkStream, VkStructureType rootType,
4681 VkPhysicalDevicePointClippingProperties* forUnmarshaling, uint8_t** ptr) {
4682 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4683 *ptr += sizeof(VkStructureType);
4684 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4685 rootType = forUnmarshaling->sType;
4686 }
4687 uint32_t pNext_size;
4688 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4689 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4690 *ptr += sizeof(uint32_t);
4691 forUnmarshaling->pNext = nullptr;
4692 if (pNext_size) {
4693 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4694 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4695 *ptr += sizeof(VkStructureType);
4696 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4697 vkStream->alloc((void**)&forUnmarshaling->pNext,
4698 goldfish_vk_extension_struct_size_with_stream_features(
4699 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4700 *(VkStructureType*)forUnmarshaling->pNext = extType;
4701 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4702 ptr);
4703 }
4704 memcpy((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior, *ptr,
4705 sizeof(VkPointClippingBehavior));
4706 *ptr += sizeof(VkPointClippingBehavior);
4707 }
4708
reservedunmarshal_VkInputAttachmentAspectReference(VulkanStream * vkStream,VkStructureType rootType,VkInputAttachmentAspectReference * forUnmarshaling,uint8_t ** ptr)4709 void reservedunmarshal_VkInputAttachmentAspectReference(
4710 VulkanStream* vkStream, VkStructureType rootType,
4711 VkInputAttachmentAspectReference* forUnmarshaling, uint8_t** ptr) {
4712 memcpy((uint32_t*)&forUnmarshaling->subpass, *ptr, sizeof(uint32_t));
4713 *ptr += sizeof(uint32_t);
4714 memcpy((uint32_t*)&forUnmarshaling->inputAttachmentIndex, *ptr, sizeof(uint32_t));
4715 *ptr += sizeof(uint32_t);
4716 memcpy((VkImageAspectFlags*)&forUnmarshaling->aspectMask, *ptr, sizeof(VkImageAspectFlags));
4717 *ptr += sizeof(VkImageAspectFlags);
4718 }
4719
reservedunmarshal_VkRenderPassInputAttachmentAspectCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassInputAttachmentAspectCreateInfo * forUnmarshaling,uint8_t ** ptr)4720 void reservedunmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
4721 VulkanStream* vkStream, VkStructureType rootType,
4722 VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling, uint8_t** ptr) {
4723 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4724 *ptr += sizeof(VkStructureType);
4725 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4726 rootType = forUnmarshaling->sType;
4727 }
4728 uint32_t pNext_size;
4729 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4730 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4731 *ptr += sizeof(uint32_t);
4732 forUnmarshaling->pNext = nullptr;
4733 if (pNext_size) {
4734 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4735 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4736 *ptr += sizeof(VkStructureType);
4737 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4738 vkStream->alloc((void**)&forUnmarshaling->pNext,
4739 goldfish_vk_extension_struct_size_with_stream_features(
4740 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4741 *(VkStructureType*)forUnmarshaling->pNext = extType;
4742 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4743 ptr);
4744 }
4745 memcpy((uint32_t*)&forUnmarshaling->aspectReferenceCount, *ptr, sizeof(uint32_t));
4746 *ptr += sizeof(uint32_t);
4747 vkStream->alloc(
4748 (void**)&forUnmarshaling->pAspectReferences,
4749 forUnmarshaling->aspectReferenceCount * sizeof(const VkInputAttachmentAspectReference));
4750 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->aspectReferenceCount; ++i) {
4751 reservedunmarshal_VkInputAttachmentAspectReference(
4752 vkStream, rootType,
4753 (VkInputAttachmentAspectReference*)(forUnmarshaling->pAspectReferences + i), ptr);
4754 }
4755 }
4756
reservedunmarshal_VkImageViewUsageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageViewUsageCreateInfo * forUnmarshaling,uint8_t ** ptr)4757 void reservedunmarshal_VkImageViewUsageCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
4758 VkImageViewUsageCreateInfo* forUnmarshaling,
4759 uint8_t** ptr) {
4760 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4761 *ptr += sizeof(VkStructureType);
4762 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4763 rootType = forUnmarshaling->sType;
4764 }
4765 uint32_t pNext_size;
4766 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4767 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4768 *ptr += sizeof(uint32_t);
4769 forUnmarshaling->pNext = nullptr;
4770 if (pNext_size) {
4771 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4772 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4773 *ptr += sizeof(VkStructureType);
4774 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4775 vkStream->alloc((void**)&forUnmarshaling->pNext,
4776 goldfish_vk_extension_struct_size_with_stream_features(
4777 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4778 *(VkStructureType*)forUnmarshaling->pNext = extType;
4779 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4780 ptr);
4781 }
4782 memcpy((VkImageUsageFlags*)&forUnmarshaling->usage, *ptr, sizeof(VkImageUsageFlags));
4783 *ptr += sizeof(VkImageUsageFlags);
4784 }
4785
reservedunmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineTessellationDomainOriginStateCreateInfo * forUnmarshaling,uint8_t ** ptr)4786 void reservedunmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
4787 VulkanStream* vkStream, VkStructureType rootType,
4788 VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling, uint8_t** ptr) {
4789 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4790 *ptr += sizeof(VkStructureType);
4791 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4792 rootType = forUnmarshaling->sType;
4793 }
4794 uint32_t pNext_size;
4795 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4796 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4797 *ptr += sizeof(uint32_t);
4798 forUnmarshaling->pNext = nullptr;
4799 if (pNext_size) {
4800 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4801 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4802 *ptr += sizeof(VkStructureType);
4803 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4804 vkStream->alloc((void**)&forUnmarshaling->pNext,
4805 goldfish_vk_extension_struct_size_with_stream_features(
4806 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4807 *(VkStructureType*)forUnmarshaling->pNext = extType;
4808 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4809 ptr);
4810 }
4811 memcpy((VkTessellationDomainOrigin*)&forUnmarshaling->domainOrigin, *ptr,
4812 sizeof(VkTessellationDomainOrigin));
4813 *ptr += sizeof(VkTessellationDomainOrigin);
4814 }
4815
reservedunmarshal_VkRenderPassMultiviewCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassMultiviewCreateInfo * forUnmarshaling,uint8_t ** ptr)4816 void reservedunmarshal_VkRenderPassMultiviewCreateInfo(
4817 VulkanStream* vkStream, VkStructureType rootType,
4818 VkRenderPassMultiviewCreateInfo* forUnmarshaling, uint8_t** ptr) {
4819 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4820 *ptr += sizeof(VkStructureType);
4821 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4822 rootType = forUnmarshaling->sType;
4823 }
4824 uint32_t pNext_size;
4825 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4826 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4827 *ptr += sizeof(uint32_t);
4828 forUnmarshaling->pNext = nullptr;
4829 if (pNext_size) {
4830 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4831 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4832 *ptr += sizeof(VkStructureType);
4833 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4834 vkStream->alloc((void**)&forUnmarshaling->pNext,
4835 goldfish_vk_extension_struct_size_with_stream_features(
4836 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4837 *(VkStructureType*)forUnmarshaling->pNext = extType;
4838 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4839 ptr);
4840 }
4841 memcpy((uint32_t*)&forUnmarshaling->subpassCount, *ptr, sizeof(uint32_t));
4842 *ptr += sizeof(uint32_t);
4843 vkStream->alloc((void**)&forUnmarshaling->pViewMasks,
4844 forUnmarshaling->subpassCount * sizeof(const uint32_t));
4845 memcpy((uint32_t*)forUnmarshaling->pViewMasks, *ptr,
4846 forUnmarshaling->subpassCount * sizeof(const uint32_t));
4847 *ptr += forUnmarshaling->subpassCount * sizeof(const uint32_t);
4848 memcpy((uint32_t*)&forUnmarshaling->dependencyCount, *ptr, sizeof(uint32_t));
4849 *ptr += sizeof(uint32_t);
4850 vkStream->alloc((void**)&forUnmarshaling->pViewOffsets,
4851 forUnmarshaling->dependencyCount * sizeof(const int32_t));
4852 memcpy((int32_t*)forUnmarshaling->pViewOffsets, *ptr,
4853 forUnmarshaling->dependencyCount * sizeof(const int32_t));
4854 *ptr += forUnmarshaling->dependencyCount * sizeof(const int32_t);
4855 memcpy((uint32_t*)&forUnmarshaling->correlationMaskCount, *ptr, sizeof(uint32_t));
4856 *ptr += sizeof(uint32_t);
4857 vkStream->alloc((void**)&forUnmarshaling->pCorrelationMasks,
4858 forUnmarshaling->correlationMaskCount * sizeof(const uint32_t));
4859 memcpy((uint32_t*)forUnmarshaling->pCorrelationMasks, *ptr,
4860 forUnmarshaling->correlationMaskCount * sizeof(const uint32_t));
4861 *ptr += forUnmarshaling->correlationMaskCount * sizeof(const uint32_t);
4862 }
4863
reservedunmarshal_VkPhysicalDeviceMultiviewFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewFeatures * forUnmarshaling,uint8_t ** ptr)4864 void reservedunmarshal_VkPhysicalDeviceMultiviewFeatures(
4865 VulkanStream* vkStream, VkStructureType rootType,
4866 VkPhysicalDeviceMultiviewFeatures* forUnmarshaling, uint8_t** ptr) {
4867 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4868 *ptr += sizeof(VkStructureType);
4869 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4870 rootType = forUnmarshaling->sType;
4871 }
4872 uint32_t pNext_size;
4873 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4874 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4875 *ptr += sizeof(uint32_t);
4876 forUnmarshaling->pNext = nullptr;
4877 if (pNext_size) {
4878 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4879 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4880 *ptr += sizeof(VkStructureType);
4881 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4882 vkStream->alloc((void**)&forUnmarshaling->pNext,
4883 goldfish_vk_extension_struct_size_with_stream_features(
4884 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4885 *(VkStructureType*)forUnmarshaling->pNext = extType;
4886 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4887 ptr);
4888 }
4889 memcpy((VkBool32*)&forUnmarshaling->multiview, *ptr, sizeof(VkBool32));
4890 *ptr += sizeof(VkBool32);
4891 memcpy((VkBool32*)&forUnmarshaling->multiviewGeometryShader, *ptr, sizeof(VkBool32));
4892 *ptr += sizeof(VkBool32);
4893 memcpy((VkBool32*)&forUnmarshaling->multiviewTessellationShader, *ptr, sizeof(VkBool32));
4894 *ptr += sizeof(VkBool32);
4895 }
4896
reservedunmarshal_VkPhysicalDeviceMultiviewProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMultiviewProperties * forUnmarshaling,uint8_t ** ptr)4897 void reservedunmarshal_VkPhysicalDeviceMultiviewProperties(
4898 VulkanStream* vkStream, VkStructureType rootType,
4899 VkPhysicalDeviceMultiviewProperties* forUnmarshaling, uint8_t** ptr) {
4900 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4901 *ptr += sizeof(VkStructureType);
4902 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4903 rootType = forUnmarshaling->sType;
4904 }
4905 uint32_t pNext_size;
4906 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4907 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4908 *ptr += sizeof(uint32_t);
4909 forUnmarshaling->pNext = nullptr;
4910 if (pNext_size) {
4911 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4912 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4913 *ptr += sizeof(VkStructureType);
4914 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4915 vkStream->alloc((void**)&forUnmarshaling->pNext,
4916 goldfish_vk_extension_struct_size_with_stream_features(
4917 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4918 *(VkStructureType*)forUnmarshaling->pNext = extType;
4919 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4920 ptr);
4921 }
4922 memcpy((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, *ptr, sizeof(uint32_t));
4923 *ptr += sizeof(uint32_t);
4924 memcpy((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, *ptr, sizeof(uint32_t));
4925 *ptr += sizeof(uint32_t);
4926 }
4927
reservedunmarshal_VkPhysicalDeviceVariablePointersFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVariablePointersFeatures * forUnmarshaling,uint8_t ** ptr)4928 void reservedunmarshal_VkPhysicalDeviceVariablePointersFeatures(
4929 VulkanStream* vkStream, VkStructureType rootType,
4930 VkPhysicalDeviceVariablePointersFeatures* forUnmarshaling, uint8_t** ptr) {
4931 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4932 *ptr += sizeof(VkStructureType);
4933 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4934 rootType = forUnmarshaling->sType;
4935 }
4936 uint32_t pNext_size;
4937 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4938 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4939 *ptr += sizeof(uint32_t);
4940 forUnmarshaling->pNext = nullptr;
4941 if (pNext_size) {
4942 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4943 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4944 *ptr += sizeof(VkStructureType);
4945 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4946 vkStream->alloc((void**)&forUnmarshaling->pNext,
4947 goldfish_vk_extension_struct_size_with_stream_features(
4948 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4949 *(VkStructureType*)forUnmarshaling->pNext = extType;
4950 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4951 ptr);
4952 }
4953 memcpy((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, *ptr, sizeof(VkBool32));
4954 *ptr += sizeof(VkBool32);
4955 memcpy((VkBool32*)&forUnmarshaling->variablePointers, *ptr, sizeof(VkBool32));
4956 *ptr += sizeof(VkBool32);
4957 }
4958
reservedunmarshal_VkPhysicalDeviceProtectedMemoryFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProtectedMemoryFeatures * forUnmarshaling,uint8_t ** ptr)4959 void reservedunmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
4960 VulkanStream* vkStream, VkStructureType rootType,
4961 VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling, uint8_t** ptr) {
4962 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4963 *ptr += sizeof(VkStructureType);
4964 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4965 rootType = forUnmarshaling->sType;
4966 }
4967 uint32_t pNext_size;
4968 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4969 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4970 *ptr += sizeof(uint32_t);
4971 forUnmarshaling->pNext = nullptr;
4972 if (pNext_size) {
4973 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
4974 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
4975 *ptr += sizeof(VkStructureType);
4976 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
4977 vkStream->alloc((void**)&forUnmarshaling->pNext,
4978 goldfish_vk_extension_struct_size_with_stream_features(
4979 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
4980 *(VkStructureType*)forUnmarshaling->pNext = extType;
4981 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
4982 ptr);
4983 }
4984 memcpy((VkBool32*)&forUnmarshaling->protectedMemory, *ptr, sizeof(VkBool32));
4985 *ptr += sizeof(VkBool32);
4986 }
4987
reservedunmarshal_VkPhysicalDeviceProtectedMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProtectedMemoryProperties * forUnmarshaling,uint8_t ** ptr)4988 void reservedunmarshal_VkPhysicalDeviceProtectedMemoryProperties(
4989 VulkanStream* vkStream, VkStructureType rootType,
4990 VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling, uint8_t** ptr) {
4991 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
4992 *ptr += sizeof(VkStructureType);
4993 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
4994 rootType = forUnmarshaling->sType;
4995 }
4996 uint32_t pNext_size;
4997 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
4998 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
4999 *ptr += sizeof(uint32_t);
5000 forUnmarshaling->pNext = nullptr;
5001 if (pNext_size) {
5002 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5003 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5004 *ptr += sizeof(VkStructureType);
5005 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5006 vkStream->alloc((void**)&forUnmarshaling->pNext,
5007 goldfish_vk_extension_struct_size_with_stream_features(
5008 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5009 *(VkStructureType*)forUnmarshaling->pNext = extType;
5010 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5011 ptr);
5012 }
5013 memcpy((VkBool32*)&forUnmarshaling->protectedNoFault, *ptr, sizeof(VkBool32));
5014 *ptr += sizeof(VkBool32);
5015 }
5016
reservedunmarshal_VkDeviceQueueInfo2(VulkanStream * vkStream,VkStructureType rootType,VkDeviceQueueInfo2 * forUnmarshaling,uint8_t ** ptr)5017 void reservedunmarshal_VkDeviceQueueInfo2(VulkanStream* vkStream, VkStructureType rootType,
5018 VkDeviceQueueInfo2* forUnmarshaling, uint8_t** ptr) {
5019 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5020 *ptr += sizeof(VkStructureType);
5021 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5022 rootType = forUnmarshaling->sType;
5023 }
5024 uint32_t pNext_size;
5025 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5026 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5027 *ptr += sizeof(uint32_t);
5028 forUnmarshaling->pNext = nullptr;
5029 if (pNext_size) {
5030 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5031 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5032 *ptr += sizeof(VkStructureType);
5033 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5034 vkStream->alloc((void**)&forUnmarshaling->pNext,
5035 goldfish_vk_extension_struct_size_with_stream_features(
5036 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5037 *(VkStructureType*)forUnmarshaling->pNext = extType;
5038 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5039 ptr);
5040 }
5041 memcpy((VkDeviceQueueCreateFlags*)&forUnmarshaling->flags, *ptr,
5042 sizeof(VkDeviceQueueCreateFlags));
5043 *ptr += sizeof(VkDeviceQueueCreateFlags);
5044 memcpy((uint32_t*)&forUnmarshaling->queueFamilyIndex, *ptr, sizeof(uint32_t));
5045 *ptr += sizeof(uint32_t);
5046 memcpy((uint32_t*)&forUnmarshaling->queueIndex, *ptr, sizeof(uint32_t));
5047 *ptr += sizeof(uint32_t);
5048 }
5049
reservedunmarshal_VkProtectedSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkProtectedSubmitInfo * forUnmarshaling,uint8_t ** ptr)5050 void reservedunmarshal_VkProtectedSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
5051 VkProtectedSubmitInfo* forUnmarshaling,
5052 uint8_t** ptr) {
5053 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5054 *ptr += sizeof(VkStructureType);
5055 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5056 rootType = forUnmarshaling->sType;
5057 }
5058 uint32_t pNext_size;
5059 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5060 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5061 *ptr += sizeof(uint32_t);
5062 forUnmarshaling->pNext = nullptr;
5063 if (pNext_size) {
5064 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5065 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5066 *ptr += sizeof(VkStructureType);
5067 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5068 vkStream->alloc((void**)&forUnmarshaling->pNext,
5069 goldfish_vk_extension_struct_size_with_stream_features(
5070 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5071 *(VkStructureType*)forUnmarshaling->pNext = extType;
5072 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5073 ptr);
5074 }
5075 memcpy((VkBool32*)&forUnmarshaling->protectedSubmit, *ptr, sizeof(VkBool32));
5076 *ptr += sizeof(VkBool32);
5077 }
5078
reservedunmarshal_VkSamplerYcbcrConversionCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionCreateInfo * forUnmarshaling,uint8_t ** ptr)5079 void reservedunmarshal_VkSamplerYcbcrConversionCreateInfo(
5080 VulkanStream* vkStream, VkStructureType rootType,
5081 VkSamplerYcbcrConversionCreateInfo* forUnmarshaling, uint8_t** ptr) {
5082 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5083 *ptr += sizeof(VkStructureType);
5084 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5085 rootType = forUnmarshaling->sType;
5086 }
5087 uint32_t pNext_size;
5088 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5089 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5090 *ptr += sizeof(uint32_t);
5091 forUnmarshaling->pNext = nullptr;
5092 if (pNext_size) {
5093 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5094 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5095 *ptr += sizeof(VkStructureType);
5096 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5097 vkStream->alloc((void**)&forUnmarshaling->pNext,
5098 goldfish_vk_extension_struct_size_with_stream_features(
5099 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5100 *(VkStructureType*)forUnmarshaling->pNext = extType;
5101 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5102 ptr);
5103 }
5104 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
5105 *ptr += sizeof(VkFormat);
5106 memcpy((VkSamplerYcbcrModelConversion*)&forUnmarshaling->ycbcrModel, *ptr,
5107 sizeof(VkSamplerYcbcrModelConversion));
5108 *ptr += sizeof(VkSamplerYcbcrModelConversion);
5109 memcpy((VkSamplerYcbcrRange*)&forUnmarshaling->ycbcrRange, *ptr, sizeof(VkSamplerYcbcrRange));
5110 *ptr += sizeof(VkSamplerYcbcrRange);
5111 reservedunmarshal_VkComponentMapping(vkStream, rootType,
5112 (VkComponentMapping*)(&forUnmarshaling->components), ptr);
5113 memcpy((VkChromaLocation*)&forUnmarshaling->xChromaOffset, *ptr, sizeof(VkChromaLocation));
5114 *ptr += sizeof(VkChromaLocation);
5115 memcpy((VkChromaLocation*)&forUnmarshaling->yChromaOffset, *ptr, sizeof(VkChromaLocation));
5116 *ptr += sizeof(VkChromaLocation);
5117 memcpy((VkFilter*)&forUnmarshaling->chromaFilter, *ptr, sizeof(VkFilter));
5118 *ptr += sizeof(VkFilter);
5119 memcpy((VkBool32*)&forUnmarshaling->forceExplicitReconstruction, *ptr, sizeof(VkBool32));
5120 *ptr += sizeof(VkBool32);
5121 }
5122
reservedunmarshal_VkSamplerYcbcrConversionInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionInfo * forUnmarshaling,uint8_t ** ptr)5123 void reservedunmarshal_VkSamplerYcbcrConversionInfo(VulkanStream* vkStream,
5124 VkStructureType rootType,
5125 VkSamplerYcbcrConversionInfo* forUnmarshaling,
5126 uint8_t** ptr) {
5127 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5128 *ptr += sizeof(VkStructureType);
5129 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5130 rootType = forUnmarshaling->sType;
5131 }
5132 uint32_t pNext_size;
5133 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5134 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5135 *ptr += sizeof(uint32_t);
5136 forUnmarshaling->pNext = nullptr;
5137 if (pNext_size) {
5138 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5139 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5140 *ptr += sizeof(VkStructureType);
5141 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5142 vkStream->alloc((void**)&forUnmarshaling->pNext,
5143 goldfish_vk_extension_struct_size_with_stream_features(
5144 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5145 *(VkStructureType*)forUnmarshaling->pNext = extType;
5146 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5147 ptr);
5148 }
5149 uint64_t cgen_var_0;
5150 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
5151 *ptr += 1 * 8;
5152 *(VkSamplerYcbcrConversion*)&forUnmarshaling->conversion =
5153 (VkSamplerYcbcrConversion)unbox_VkSamplerYcbcrConversion(
5154 (VkSamplerYcbcrConversion)(*&cgen_var_0));
5155 }
5156
reservedunmarshal_VkBindImagePlaneMemoryInfo(VulkanStream * vkStream,VkStructureType rootType,VkBindImagePlaneMemoryInfo * forUnmarshaling,uint8_t ** ptr)5157 void reservedunmarshal_VkBindImagePlaneMemoryInfo(VulkanStream* vkStream, VkStructureType rootType,
5158 VkBindImagePlaneMemoryInfo* forUnmarshaling,
5159 uint8_t** ptr) {
5160 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5161 *ptr += sizeof(VkStructureType);
5162 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5163 rootType = forUnmarshaling->sType;
5164 }
5165 uint32_t pNext_size;
5166 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5167 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5168 *ptr += sizeof(uint32_t);
5169 forUnmarshaling->pNext = nullptr;
5170 if (pNext_size) {
5171 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5172 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5173 *ptr += sizeof(VkStructureType);
5174 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5175 vkStream->alloc((void**)&forUnmarshaling->pNext,
5176 goldfish_vk_extension_struct_size_with_stream_features(
5177 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5178 *(VkStructureType*)forUnmarshaling->pNext = extType;
5179 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5180 ptr);
5181 }
5182 memcpy((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, *ptr,
5183 sizeof(VkImageAspectFlagBits));
5184 *ptr += sizeof(VkImageAspectFlagBits);
5185 }
5186
reservedunmarshal_VkImagePlaneMemoryRequirementsInfo(VulkanStream * vkStream,VkStructureType rootType,VkImagePlaneMemoryRequirementsInfo * forUnmarshaling,uint8_t ** ptr)5187 void reservedunmarshal_VkImagePlaneMemoryRequirementsInfo(
5188 VulkanStream* vkStream, VkStructureType rootType,
5189 VkImagePlaneMemoryRequirementsInfo* forUnmarshaling, uint8_t** ptr) {
5190 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5191 *ptr += sizeof(VkStructureType);
5192 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5193 rootType = forUnmarshaling->sType;
5194 }
5195 uint32_t pNext_size;
5196 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5197 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5198 *ptr += sizeof(uint32_t);
5199 forUnmarshaling->pNext = nullptr;
5200 if (pNext_size) {
5201 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5202 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5203 *ptr += sizeof(VkStructureType);
5204 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5205 vkStream->alloc((void**)&forUnmarshaling->pNext,
5206 goldfish_vk_extension_struct_size_with_stream_features(
5207 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5208 *(VkStructureType*)forUnmarshaling->pNext = extType;
5209 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5210 ptr);
5211 }
5212 memcpy((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, *ptr,
5213 sizeof(VkImageAspectFlagBits));
5214 *ptr += sizeof(VkImageAspectFlagBits);
5215 }
5216
reservedunmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSamplerYcbcrConversionFeatures * forUnmarshaling,uint8_t ** ptr)5217 void reservedunmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
5218 VulkanStream* vkStream, VkStructureType rootType,
5219 VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling, uint8_t** ptr) {
5220 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5221 *ptr += sizeof(VkStructureType);
5222 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5223 rootType = forUnmarshaling->sType;
5224 }
5225 uint32_t pNext_size;
5226 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5227 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5228 *ptr += sizeof(uint32_t);
5229 forUnmarshaling->pNext = nullptr;
5230 if (pNext_size) {
5231 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5232 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5233 *ptr += sizeof(VkStructureType);
5234 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5235 vkStream->alloc((void**)&forUnmarshaling->pNext,
5236 goldfish_vk_extension_struct_size_with_stream_features(
5237 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5238 *(VkStructureType*)forUnmarshaling->pNext = extType;
5239 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5240 ptr);
5241 }
5242 memcpy((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, *ptr, sizeof(VkBool32));
5243 *ptr += sizeof(VkBool32);
5244 }
5245
reservedunmarshal_VkSamplerYcbcrConversionImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkSamplerYcbcrConversionImageFormatProperties * forUnmarshaling,uint8_t ** ptr)5246 void reservedunmarshal_VkSamplerYcbcrConversionImageFormatProperties(
5247 VulkanStream* vkStream, VkStructureType rootType,
5248 VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling, uint8_t** ptr) {
5249 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5250 *ptr += sizeof(VkStructureType);
5251 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5252 rootType = forUnmarshaling->sType;
5253 }
5254 uint32_t pNext_size;
5255 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5256 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5257 *ptr += sizeof(uint32_t);
5258 forUnmarshaling->pNext = nullptr;
5259 if (pNext_size) {
5260 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5261 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5262 *ptr += sizeof(VkStructureType);
5263 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5264 vkStream->alloc((void**)&forUnmarshaling->pNext,
5265 goldfish_vk_extension_struct_size_with_stream_features(
5266 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5267 *(VkStructureType*)forUnmarshaling->pNext = extType;
5268 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5269 ptr);
5270 }
5271 memcpy((uint32_t*)&forUnmarshaling->combinedImageSamplerDescriptorCount, *ptr,
5272 sizeof(uint32_t));
5273 *ptr += sizeof(uint32_t);
5274 }
5275
reservedunmarshal_VkDescriptorUpdateTemplateEntry(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorUpdateTemplateEntry * forUnmarshaling,uint8_t ** ptr)5276 void reservedunmarshal_VkDescriptorUpdateTemplateEntry(
5277 VulkanStream* vkStream, VkStructureType rootType,
5278 VkDescriptorUpdateTemplateEntry* forUnmarshaling, uint8_t** ptr) {
5279 memcpy((uint32_t*)&forUnmarshaling->dstBinding, *ptr, sizeof(uint32_t));
5280 *ptr += sizeof(uint32_t);
5281 memcpy((uint32_t*)&forUnmarshaling->dstArrayElement, *ptr, sizeof(uint32_t));
5282 *ptr += sizeof(uint32_t);
5283 memcpy((uint32_t*)&forUnmarshaling->descriptorCount, *ptr, sizeof(uint32_t));
5284 *ptr += sizeof(uint32_t);
5285 memcpy((VkDescriptorType*)&forUnmarshaling->descriptorType, *ptr, sizeof(VkDescriptorType));
5286 *ptr += sizeof(VkDescriptorType);
5287 memcpy((size_t*)&forUnmarshaling->offset, (*ptr), 8);
5288 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->offset);
5289 *ptr += 8;
5290 memcpy((size_t*)&forUnmarshaling->stride, (*ptr), 8);
5291 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->stride);
5292 *ptr += 8;
5293 }
5294
reservedunmarshal_VkDescriptorUpdateTemplateCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorUpdateTemplateCreateInfo * forUnmarshaling,uint8_t ** ptr)5295 void reservedunmarshal_VkDescriptorUpdateTemplateCreateInfo(
5296 VulkanStream* vkStream, VkStructureType rootType,
5297 VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling, uint8_t** ptr) {
5298 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5299 *ptr += sizeof(VkStructureType);
5300 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5301 rootType = forUnmarshaling->sType;
5302 }
5303 uint32_t pNext_size;
5304 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5305 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5306 *ptr += sizeof(uint32_t);
5307 forUnmarshaling->pNext = nullptr;
5308 if (pNext_size) {
5309 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5310 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5311 *ptr += sizeof(VkStructureType);
5312 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5313 vkStream->alloc((void**)&forUnmarshaling->pNext,
5314 goldfish_vk_extension_struct_size_with_stream_features(
5315 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5316 *(VkStructureType*)forUnmarshaling->pNext = extType;
5317 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5318 ptr);
5319 }
5320 memcpy((VkDescriptorUpdateTemplateCreateFlags*)&forUnmarshaling->flags, *ptr,
5321 sizeof(VkDescriptorUpdateTemplateCreateFlags));
5322 *ptr += sizeof(VkDescriptorUpdateTemplateCreateFlags);
5323 memcpy((uint32_t*)&forUnmarshaling->descriptorUpdateEntryCount, *ptr, sizeof(uint32_t));
5324 *ptr += sizeof(uint32_t);
5325 vkStream->alloc((void**)&forUnmarshaling->pDescriptorUpdateEntries,
5326 forUnmarshaling->descriptorUpdateEntryCount *
5327 sizeof(const VkDescriptorUpdateTemplateEntry));
5328 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorUpdateEntryCount; ++i) {
5329 reservedunmarshal_VkDescriptorUpdateTemplateEntry(
5330 vkStream, rootType,
5331 (VkDescriptorUpdateTemplateEntry*)(forUnmarshaling->pDescriptorUpdateEntries + i), ptr);
5332 }
5333 memcpy((VkDescriptorUpdateTemplateType*)&forUnmarshaling->templateType, *ptr,
5334 sizeof(VkDescriptorUpdateTemplateType));
5335 *ptr += sizeof(VkDescriptorUpdateTemplateType);
5336 uint64_t cgen_var_0;
5337 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
5338 *ptr += 1 * 8;
5339 *(VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout =
5340 (VkDescriptorSetLayout)unbox_VkDescriptorSetLayout((VkDescriptorSetLayout)(*&cgen_var_0));
5341 memcpy((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, *ptr,
5342 sizeof(VkPipelineBindPoint));
5343 *ptr += sizeof(VkPipelineBindPoint);
5344 uint64_t cgen_var_1;
5345 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
5346 *ptr += 1 * 8;
5347 *(VkPipelineLayout*)&forUnmarshaling->pipelineLayout =
5348 (VkPipelineLayout)unbox_VkPipelineLayout((VkPipelineLayout)(*&cgen_var_1));
5349 memcpy((uint32_t*)&forUnmarshaling->set, *ptr, sizeof(uint32_t));
5350 *ptr += sizeof(uint32_t);
5351 }
5352
reservedunmarshal_VkExternalMemoryProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalMemoryProperties * forUnmarshaling,uint8_t ** ptr)5353 void reservedunmarshal_VkExternalMemoryProperties(VulkanStream* vkStream, VkStructureType rootType,
5354 VkExternalMemoryProperties* forUnmarshaling,
5355 uint8_t** ptr) {
5356 memcpy((VkExternalMemoryFeatureFlags*)&forUnmarshaling->externalMemoryFeatures, *ptr,
5357 sizeof(VkExternalMemoryFeatureFlags));
5358 *ptr += sizeof(VkExternalMemoryFeatureFlags);
5359 memcpy((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, *ptr,
5360 sizeof(VkExternalMemoryHandleTypeFlags));
5361 *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
5362 memcpy((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, *ptr,
5363 sizeof(VkExternalMemoryHandleTypeFlags));
5364 *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
5365 }
5366
reservedunmarshal_VkPhysicalDeviceExternalImageFormatInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalImageFormatInfo * forUnmarshaling,uint8_t ** ptr)5367 void reservedunmarshal_VkPhysicalDeviceExternalImageFormatInfo(
5368 VulkanStream* vkStream, VkStructureType rootType,
5369 VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling, uint8_t** ptr) {
5370 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5371 *ptr += sizeof(VkStructureType);
5372 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5373 rootType = forUnmarshaling->sType;
5374 }
5375 uint32_t pNext_size;
5376 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5377 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5378 *ptr += sizeof(uint32_t);
5379 forUnmarshaling->pNext = nullptr;
5380 if (pNext_size) {
5381 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5382 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5383 *ptr += sizeof(VkStructureType);
5384 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5385 vkStream->alloc((void**)&forUnmarshaling->pNext,
5386 goldfish_vk_extension_struct_size_with_stream_features(
5387 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5388 *(VkStructureType*)forUnmarshaling->pNext = extType;
5389 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5390 ptr);
5391 }
5392 memcpy((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
5393 sizeof(VkExternalMemoryHandleTypeFlagBits));
5394 *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
5395 }
5396
reservedunmarshal_VkExternalImageFormatProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalImageFormatProperties * forUnmarshaling,uint8_t ** ptr)5397 void reservedunmarshal_VkExternalImageFormatProperties(
5398 VulkanStream* vkStream, VkStructureType rootType,
5399 VkExternalImageFormatProperties* forUnmarshaling, uint8_t** ptr) {
5400 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5401 *ptr += sizeof(VkStructureType);
5402 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5403 rootType = forUnmarshaling->sType;
5404 }
5405 uint32_t pNext_size;
5406 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5407 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5408 *ptr += sizeof(uint32_t);
5409 forUnmarshaling->pNext = nullptr;
5410 if (pNext_size) {
5411 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5412 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5413 *ptr += sizeof(VkStructureType);
5414 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5415 vkStream->alloc((void**)&forUnmarshaling->pNext,
5416 goldfish_vk_extension_struct_size_with_stream_features(
5417 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5418 *(VkStructureType*)forUnmarshaling->pNext = extType;
5419 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5420 ptr);
5421 }
5422 reservedunmarshal_VkExternalMemoryProperties(
5423 vkStream, rootType,
5424 (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties), ptr);
5425 }
5426
reservedunmarshal_VkPhysicalDeviceExternalBufferInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalBufferInfo * forUnmarshaling,uint8_t ** ptr)5427 void reservedunmarshal_VkPhysicalDeviceExternalBufferInfo(
5428 VulkanStream* vkStream, VkStructureType rootType,
5429 VkPhysicalDeviceExternalBufferInfo* forUnmarshaling, uint8_t** ptr) {
5430 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5431 *ptr += sizeof(VkStructureType);
5432 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5433 rootType = forUnmarshaling->sType;
5434 }
5435 uint32_t pNext_size;
5436 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5437 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5438 *ptr += sizeof(uint32_t);
5439 forUnmarshaling->pNext = nullptr;
5440 if (pNext_size) {
5441 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5442 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5443 *ptr += sizeof(VkStructureType);
5444 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5445 vkStream->alloc((void**)&forUnmarshaling->pNext,
5446 goldfish_vk_extension_struct_size_with_stream_features(
5447 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5448 *(VkStructureType*)forUnmarshaling->pNext = extType;
5449 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5450 ptr);
5451 }
5452 memcpy((VkBufferCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkBufferCreateFlags));
5453 *ptr += sizeof(VkBufferCreateFlags);
5454 memcpy((VkBufferUsageFlags*)&forUnmarshaling->usage, *ptr, sizeof(VkBufferUsageFlags));
5455 *ptr += sizeof(VkBufferUsageFlags);
5456 memcpy((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
5457 sizeof(VkExternalMemoryHandleTypeFlagBits));
5458 *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
5459 }
5460
reservedunmarshal_VkExternalBufferProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalBufferProperties * forUnmarshaling,uint8_t ** ptr)5461 void reservedunmarshal_VkExternalBufferProperties(VulkanStream* vkStream, VkStructureType rootType,
5462 VkExternalBufferProperties* forUnmarshaling,
5463 uint8_t** ptr) {
5464 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5465 *ptr += sizeof(VkStructureType);
5466 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5467 rootType = forUnmarshaling->sType;
5468 }
5469 uint32_t pNext_size;
5470 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5471 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5472 *ptr += sizeof(uint32_t);
5473 forUnmarshaling->pNext = nullptr;
5474 if (pNext_size) {
5475 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5476 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5477 *ptr += sizeof(VkStructureType);
5478 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5479 vkStream->alloc((void**)&forUnmarshaling->pNext,
5480 goldfish_vk_extension_struct_size_with_stream_features(
5481 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5482 *(VkStructureType*)forUnmarshaling->pNext = extType;
5483 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5484 ptr);
5485 }
5486 reservedunmarshal_VkExternalMemoryProperties(
5487 vkStream, rootType,
5488 (VkExternalMemoryProperties*)(&forUnmarshaling->externalMemoryProperties), ptr);
5489 }
5490
reservedunmarshal_VkPhysicalDeviceIDProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceIDProperties * forUnmarshaling,uint8_t ** ptr)5491 void reservedunmarshal_VkPhysicalDeviceIDProperties(VulkanStream* vkStream,
5492 VkStructureType rootType,
5493 VkPhysicalDeviceIDProperties* forUnmarshaling,
5494 uint8_t** ptr) {
5495 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5496 *ptr += sizeof(VkStructureType);
5497 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5498 rootType = forUnmarshaling->sType;
5499 }
5500 uint32_t pNext_size;
5501 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5502 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5503 *ptr += sizeof(uint32_t);
5504 forUnmarshaling->pNext = nullptr;
5505 if (pNext_size) {
5506 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5507 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5508 *ptr += sizeof(VkStructureType);
5509 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5510 vkStream->alloc((void**)&forUnmarshaling->pNext,
5511 goldfish_vk_extension_struct_size_with_stream_features(
5512 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5513 *(VkStructureType*)forUnmarshaling->pNext = extType;
5514 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5515 ptr);
5516 }
5517 memcpy((uint8_t*)forUnmarshaling->deviceUUID, *ptr, VK_UUID_SIZE * sizeof(uint8_t));
5518 *ptr += VK_UUID_SIZE * sizeof(uint8_t);
5519 memcpy((uint8_t*)forUnmarshaling->driverUUID, *ptr, VK_UUID_SIZE * sizeof(uint8_t));
5520 *ptr += VK_UUID_SIZE * sizeof(uint8_t);
5521 memcpy((uint8_t*)forUnmarshaling->deviceLUID, *ptr, VK_LUID_SIZE * sizeof(uint8_t));
5522 *ptr += VK_LUID_SIZE * sizeof(uint8_t);
5523 memcpy((uint32_t*)&forUnmarshaling->deviceNodeMask, *ptr, sizeof(uint32_t));
5524 *ptr += sizeof(uint32_t);
5525 memcpy((VkBool32*)&forUnmarshaling->deviceLUIDValid, *ptr, sizeof(VkBool32));
5526 *ptr += sizeof(VkBool32);
5527 }
5528
reservedunmarshal_VkExternalMemoryImageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExternalMemoryImageCreateInfo * forUnmarshaling,uint8_t ** ptr)5529 void reservedunmarshal_VkExternalMemoryImageCreateInfo(
5530 VulkanStream* vkStream, VkStructureType rootType,
5531 VkExternalMemoryImageCreateInfo* forUnmarshaling, uint8_t** ptr) {
5532 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5533 *ptr += sizeof(VkStructureType);
5534 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5535 rootType = forUnmarshaling->sType;
5536 }
5537 uint32_t pNext_size;
5538 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5539 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5540 *ptr += sizeof(uint32_t);
5541 forUnmarshaling->pNext = nullptr;
5542 if (pNext_size) {
5543 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5544 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5545 *ptr += sizeof(VkStructureType);
5546 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5547 vkStream->alloc((void**)&forUnmarshaling->pNext,
5548 goldfish_vk_extension_struct_size_with_stream_features(
5549 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5550 *(VkStructureType*)forUnmarshaling->pNext = extType;
5551 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5552 ptr);
5553 }
5554 memcpy((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, *ptr,
5555 sizeof(VkExternalMemoryHandleTypeFlags));
5556 *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
5557 }
5558
reservedunmarshal_VkExternalMemoryBufferCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExternalMemoryBufferCreateInfo * forUnmarshaling,uint8_t ** ptr)5559 void reservedunmarshal_VkExternalMemoryBufferCreateInfo(
5560 VulkanStream* vkStream, VkStructureType rootType,
5561 VkExternalMemoryBufferCreateInfo* forUnmarshaling, uint8_t** ptr) {
5562 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5563 *ptr += sizeof(VkStructureType);
5564 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5565 rootType = forUnmarshaling->sType;
5566 }
5567 uint32_t pNext_size;
5568 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5569 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5570 *ptr += sizeof(uint32_t);
5571 forUnmarshaling->pNext = nullptr;
5572 if (pNext_size) {
5573 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5574 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5575 *ptr += sizeof(VkStructureType);
5576 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5577 vkStream->alloc((void**)&forUnmarshaling->pNext,
5578 goldfish_vk_extension_struct_size_with_stream_features(
5579 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5580 *(VkStructureType*)forUnmarshaling->pNext = extType;
5581 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5582 ptr);
5583 }
5584 memcpy((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, *ptr,
5585 sizeof(VkExternalMemoryHandleTypeFlags));
5586 *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
5587 }
5588
reservedunmarshal_VkExportMemoryAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExportMemoryAllocateInfo * forUnmarshaling,uint8_t ** ptr)5589 void reservedunmarshal_VkExportMemoryAllocateInfo(VulkanStream* vkStream, VkStructureType rootType,
5590 VkExportMemoryAllocateInfo* forUnmarshaling,
5591 uint8_t** ptr) {
5592 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5593 *ptr += sizeof(VkStructureType);
5594 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5595 rootType = forUnmarshaling->sType;
5596 }
5597 uint32_t pNext_size;
5598 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5599 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5600 *ptr += sizeof(uint32_t);
5601 forUnmarshaling->pNext = nullptr;
5602 if (pNext_size) {
5603 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5604 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5605 *ptr += sizeof(VkStructureType);
5606 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5607 vkStream->alloc((void**)&forUnmarshaling->pNext,
5608 goldfish_vk_extension_struct_size_with_stream_features(
5609 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5610 *(VkStructureType*)forUnmarshaling->pNext = extType;
5611 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5612 ptr);
5613 }
5614 memcpy((VkExternalMemoryHandleTypeFlags*)&forUnmarshaling->handleTypes, *ptr,
5615 sizeof(VkExternalMemoryHandleTypeFlags));
5616 *ptr += sizeof(VkExternalMemoryHandleTypeFlags);
5617 }
5618
reservedunmarshal_VkPhysicalDeviceExternalFenceInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalFenceInfo * forUnmarshaling,uint8_t ** ptr)5619 void reservedunmarshal_VkPhysicalDeviceExternalFenceInfo(
5620 VulkanStream* vkStream, VkStructureType rootType,
5621 VkPhysicalDeviceExternalFenceInfo* forUnmarshaling, uint8_t** ptr) {
5622 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5623 *ptr += sizeof(VkStructureType);
5624 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5625 rootType = forUnmarshaling->sType;
5626 }
5627 uint32_t pNext_size;
5628 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5629 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5630 *ptr += sizeof(uint32_t);
5631 forUnmarshaling->pNext = nullptr;
5632 if (pNext_size) {
5633 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5634 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5635 *ptr += sizeof(VkStructureType);
5636 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5637 vkStream->alloc((void**)&forUnmarshaling->pNext,
5638 goldfish_vk_extension_struct_size_with_stream_features(
5639 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5640 *(VkStructureType*)forUnmarshaling->pNext = extType;
5641 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5642 ptr);
5643 }
5644 memcpy((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
5645 sizeof(VkExternalFenceHandleTypeFlagBits));
5646 *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
5647 }
5648
reservedunmarshal_VkExternalFenceProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalFenceProperties * forUnmarshaling,uint8_t ** ptr)5649 void reservedunmarshal_VkExternalFenceProperties(VulkanStream* vkStream, VkStructureType rootType,
5650 VkExternalFenceProperties* forUnmarshaling,
5651 uint8_t** ptr) {
5652 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5653 *ptr += sizeof(VkStructureType);
5654 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5655 rootType = forUnmarshaling->sType;
5656 }
5657 uint32_t pNext_size;
5658 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5659 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5660 *ptr += sizeof(uint32_t);
5661 forUnmarshaling->pNext = nullptr;
5662 if (pNext_size) {
5663 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5664 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5665 *ptr += sizeof(VkStructureType);
5666 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5667 vkStream->alloc((void**)&forUnmarshaling->pNext,
5668 goldfish_vk_extension_struct_size_with_stream_features(
5669 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5670 *(VkStructureType*)forUnmarshaling->pNext = extType;
5671 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5672 ptr);
5673 }
5674 memcpy((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes, *ptr,
5675 sizeof(VkExternalFenceHandleTypeFlags));
5676 *ptr += sizeof(VkExternalFenceHandleTypeFlags);
5677 memcpy((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, *ptr,
5678 sizeof(VkExternalFenceHandleTypeFlags));
5679 *ptr += sizeof(VkExternalFenceHandleTypeFlags);
5680 memcpy((VkExternalFenceFeatureFlags*)&forUnmarshaling->externalFenceFeatures, *ptr,
5681 sizeof(VkExternalFenceFeatureFlags));
5682 *ptr += sizeof(VkExternalFenceFeatureFlags);
5683 }
5684
reservedunmarshal_VkExportFenceCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExportFenceCreateInfo * forUnmarshaling,uint8_t ** ptr)5685 void reservedunmarshal_VkExportFenceCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
5686 VkExportFenceCreateInfo* forUnmarshaling,
5687 uint8_t** ptr) {
5688 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5689 *ptr += sizeof(VkStructureType);
5690 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5691 rootType = forUnmarshaling->sType;
5692 }
5693 uint32_t pNext_size;
5694 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5695 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5696 *ptr += sizeof(uint32_t);
5697 forUnmarshaling->pNext = nullptr;
5698 if (pNext_size) {
5699 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5700 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5701 *ptr += sizeof(VkStructureType);
5702 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5703 vkStream->alloc((void**)&forUnmarshaling->pNext,
5704 goldfish_vk_extension_struct_size_with_stream_features(
5705 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5706 *(VkStructureType*)forUnmarshaling->pNext = extType;
5707 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5708 ptr);
5709 }
5710 memcpy((VkExternalFenceHandleTypeFlags*)&forUnmarshaling->handleTypes, *ptr,
5711 sizeof(VkExternalFenceHandleTypeFlags));
5712 *ptr += sizeof(VkExternalFenceHandleTypeFlags);
5713 }
5714
reservedunmarshal_VkExportSemaphoreCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkExportSemaphoreCreateInfo * forUnmarshaling,uint8_t ** ptr)5715 void reservedunmarshal_VkExportSemaphoreCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
5716 VkExportSemaphoreCreateInfo* forUnmarshaling,
5717 uint8_t** ptr) {
5718 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5719 *ptr += sizeof(VkStructureType);
5720 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5721 rootType = forUnmarshaling->sType;
5722 }
5723 uint32_t pNext_size;
5724 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5725 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5726 *ptr += sizeof(uint32_t);
5727 forUnmarshaling->pNext = nullptr;
5728 if (pNext_size) {
5729 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5730 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5731 *ptr += sizeof(VkStructureType);
5732 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5733 vkStream->alloc((void**)&forUnmarshaling->pNext,
5734 goldfish_vk_extension_struct_size_with_stream_features(
5735 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5736 *(VkStructureType*)forUnmarshaling->pNext = extType;
5737 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5738 ptr);
5739 }
5740 memcpy((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->handleTypes, *ptr,
5741 sizeof(VkExternalSemaphoreHandleTypeFlags));
5742 *ptr += sizeof(VkExternalSemaphoreHandleTypeFlags);
5743 }
5744
reservedunmarshal_VkPhysicalDeviceExternalSemaphoreInfo(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalSemaphoreInfo * forUnmarshaling,uint8_t ** ptr)5745 void reservedunmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
5746 VulkanStream* vkStream, VkStructureType rootType,
5747 VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling, uint8_t** ptr) {
5748 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5749 *ptr += sizeof(VkStructureType);
5750 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5751 rootType = forUnmarshaling->sType;
5752 }
5753 uint32_t pNext_size;
5754 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5755 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5756 *ptr += sizeof(uint32_t);
5757 forUnmarshaling->pNext = nullptr;
5758 if (pNext_size) {
5759 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5760 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5761 *ptr += sizeof(VkStructureType);
5762 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5763 vkStream->alloc((void**)&forUnmarshaling->pNext,
5764 goldfish_vk_extension_struct_size_with_stream_features(
5765 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5766 *(VkStructureType*)forUnmarshaling->pNext = extType;
5767 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5768 ptr);
5769 }
5770 memcpy((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
5771 sizeof(VkExternalSemaphoreHandleTypeFlagBits));
5772 *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
5773 }
5774
reservedunmarshal_VkExternalSemaphoreProperties(VulkanStream * vkStream,VkStructureType rootType,VkExternalSemaphoreProperties * forUnmarshaling,uint8_t ** ptr)5775 void reservedunmarshal_VkExternalSemaphoreProperties(VulkanStream* vkStream,
5776 VkStructureType rootType,
5777 VkExternalSemaphoreProperties* forUnmarshaling,
5778 uint8_t** ptr) {
5779 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5780 *ptr += sizeof(VkStructureType);
5781 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5782 rootType = forUnmarshaling->sType;
5783 }
5784 uint32_t pNext_size;
5785 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5786 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5787 *ptr += sizeof(uint32_t);
5788 forUnmarshaling->pNext = nullptr;
5789 if (pNext_size) {
5790 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5791 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5792 *ptr += sizeof(VkStructureType);
5793 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5794 vkStream->alloc((void**)&forUnmarshaling->pNext,
5795 goldfish_vk_extension_struct_size_with_stream_features(
5796 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5797 *(VkStructureType*)forUnmarshaling->pNext = extType;
5798 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5799 ptr);
5800 }
5801 memcpy((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->exportFromImportedHandleTypes,
5802 *ptr, sizeof(VkExternalSemaphoreHandleTypeFlags));
5803 *ptr += sizeof(VkExternalSemaphoreHandleTypeFlags);
5804 memcpy((VkExternalSemaphoreHandleTypeFlags*)&forUnmarshaling->compatibleHandleTypes, *ptr,
5805 sizeof(VkExternalSemaphoreHandleTypeFlags));
5806 *ptr += sizeof(VkExternalSemaphoreHandleTypeFlags);
5807 memcpy((VkExternalSemaphoreFeatureFlags*)&forUnmarshaling->externalSemaphoreFeatures, *ptr,
5808 sizeof(VkExternalSemaphoreFeatureFlags));
5809 *ptr += sizeof(VkExternalSemaphoreFeatureFlags);
5810 }
5811
reservedunmarshal_VkPhysicalDeviceMaintenance3Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance3Properties * forUnmarshaling,uint8_t ** ptr)5812 void reservedunmarshal_VkPhysicalDeviceMaintenance3Properties(
5813 VulkanStream* vkStream, VkStructureType rootType,
5814 VkPhysicalDeviceMaintenance3Properties* forUnmarshaling, uint8_t** ptr) {
5815 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5816 *ptr += sizeof(VkStructureType);
5817 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5818 rootType = forUnmarshaling->sType;
5819 }
5820 uint32_t pNext_size;
5821 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5822 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5823 *ptr += sizeof(uint32_t);
5824 forUnmarshaling->pNext = nullptr;
5825 if (pNext_size) {
5826 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5827 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5828 *ptr += sizeof(VkStructureType);
5829 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5830 vkStream->alloc((void**)&forUnmarshaling->pNext,
5831 goldfish_vk_extension_struct_size_with_stream_features(
5832 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5833 *(VkStructureType*)forUnmarshaling->pNext = extType;
5834 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5835 ptr);
5836 }
5837 memcpy((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, *ptr, sizeof(uint32_t));
5838 *ptr += sizeof(uint32_t);
5839 memcpy((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, *ptr, sizeof(VkDeviceSize));
5840 *ptr += sizeof(VkDeviceSize);
5841 }
5842
reservedunmarshal_VkDescriptorSetLayoutSupport(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutSupport * forUnmarshaling,uint8_t ** ptr)5843 void reservedunmarshal_VkDescriptorSetLayoutSupport(VulkanStream* vkStream,
5844 VkStructureType rootType,
5845 VkDescriptorSetLayoutSupport* forUnmarshaling,
5846 uint8_t** ptr) {
5847 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5848 *ptr += sizeof(VkStructureType);
5849 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5850 rootType = forUnmarshaling->sType;
5851 }
5852 uint32_t pNext_size;
5853 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5854 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5855 *ptr += sizeof(uint32_t);
5856 forUnmarshaling->pNext = nullptr;
5857 if (pNext_size) {
5858 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5859 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5860 *ptr += sizeof(VkStructureType);
5861 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5862 vkStream->alloc((void**)&forUnmarshaling->pNext,
5863 goldfish_vk_extension_struct_size_with_stream_features(
5864 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5865 *(VkStructureType*)forUnmarshaling->pNext = extType;
5866 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5867 ptr);
5868 }
5869 memcpy((VkBool32*)&forUnmarshaling->supported, *ptr, sizeof(VkBool32));
5870 *ptr += sizeof(VkBool32);
5871 }
5872
reservedunmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderDrawParametersFeatures * forUnmarshaling,uint8_t ** ptr)5873 void reservedunmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
5874 VulkanStream* vkStream, VkStructureType rootType,
5875 VkPhysicalDeviceShaderDrawParametersFeatures* forUnmarshaling, uint8_t** ptr) {
5876 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5877 *ptr += sizeof(VkStructureType);
5878 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5879 rootType = forUnmarshaling->sType;
5880 }
5881 uint32_t pNext_size;
5882 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5883 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5884 *ptr += sizeof(uint32_t);
5885 forUnmarshaling->pNext = nullptr;
5886 if (pNext_size) {
5887 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5888 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5889 *ptr += sizeof(VkStructureType);
5890 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5891 vkStream->alloc((void**)&forUnmarshaling->pNext,
5892 goldfish_vk_extension_struct_size_with_stream_features(
5893 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5894 *(VkStructureType*)forUnmarshaling->pNext = extType;
5895 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5896 ptr);
5897 }
5898 memcpy((VkBool32*)&forUnmarshaling->shaderDrawParameters, *ptr, sizeof(VkBool32));
5899 *ptr += sizeof(VkBool32);
5900 }
5901
5902 #endif
5903 #ifdef VK_VERSION_1_2
reservedunmarshal_VkPhysicalDeviceVulkan11Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan11Features * forUnmarshaling,uint8_t ** ptr)5904 void reservedunmarshal_VkPhysicalDeviceVulkan11Features(
5905 VulkanStream* vkStream, VkStructureType rootType,
5906 VkPhysicalDeviceVulkan11Features* forUnmarshaling, uint8_t** ptr) {
5907 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5908 *ptr += sizeof(VkStructureType);
5909 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5910 rootType = forUnmarshaling->sType;
5911 }
5912 uint32_t pNext_size;
5913 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5914 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5915 *ptr += sizeof(uint32_t);
5916 forUnmarshaling->pNext = nullptr;
5917 if (pNext_size) {
5918 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5919 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5920 *ptr += sizeof(VkStructureType);
5921 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5922 vkStream->alloc((void**)&forUnmarshaling->pNext,
5923 goldfish_vk_extension_struct_size_with_stream_features(
5924 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5925 *(VkStructureType*)forUnmarshaling->pNext = extType;
5926 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5927 ptr);
5928 }
5929 memcpy((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, *ptr, sizeof(VkBool32));
5930 *ptr += sizeof(VkBool32);
5931 memcpy((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess, *ptr, sizeof(VkBool32));
5932 *ptr += sizeof(VkBool32);
5933 memcpy((VkBool32*)&forUnmarshaling->storagePushConstant16, *ptr, sizeof(VkBool32));
5934 *ptr += sizeof(VkBool32);
5935 memcpy((VkBool32*)&forUnmarshaling->storageInputOutput16, *ptr, sizeof(VkBool32));
5936 *ptr += sizeof(VkBool32);
5937 memcpy((VkBool32*)&forUnmarshaling->multiview, *ptr, sizeof(VkBool32));
5938 *ptr += sizeof(VkBool32);
5939 memcpy((VkBool32*)&forUnmarshaling->multiviewGeometryShader, *ptr, sizeof(VkBool32));
5940 *ptr += sizeof(VkBool32);
5941 memcpy((VkBool32*)&forUnmarshaling->multiviewTessellationShader, *ptr, sizeof(VkBool32));
5942 *ptr += sizeof(VkBool32);
5943 memcpy((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, *ptr, sizeof(VkBool32));
5944 *ptr += sizeof(VkBool32);
5945 memcpy((VkBool32*)&forUnmarshaling->variablePointers, *ptr, sizeof(VkBool32));
5946 *ptr += sizeof(VkBool32);
5947 memcpy((VkBool32*)&forUnmarshaling->protectedMemory, *ptr, sizeof(VkBool32));
5948 *ptr += sizeof(VkBool32);
5949 memcpy((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, *ptr, sizeof(VkBool32));
5950 *ptr += sizeof(VkBool32);
5951 memcpy((VkBool32*)&forUnmarshaling->shaderDrawParameters, *ptr, sizeof(VkBool32));
5952 *ptr += sizeof(VkBool32);
5953 }
5954
reservedunmarshal_VkPhysicalDeviceVulkan11Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan11Properties * forUnmarshaling,uint8_t ** ptr)5955 void reservedunmarshal_VkPhysicalDeviceVulkan11Properties(
5956 VulkanStream* vkStream, VkStructureType rootType,
5957 VkPhysicalDeviceVulkan11Properties* forUnmarshaling, uint8_t** ptr) {
5958 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
5959 *ptr += sizeof(VkStructureType);
5960 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
5961 rootType = forUnmarshaling->sType;
5962 }
5963 uint32_t pNext_size;
5964 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
5965 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
5966 *ptr += sizeof(uint32_t);
5967 forUnmarshaling->pNext = nullptr;
5968 if (pNext_size) {
5969 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
5970 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
5971 *ptr += sizeof(VkStructureType);
5972 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
5973 vkStream->alloc((void**)&forUnmarshaling->pNext,
5974 goldfish_vk_extension_struct_size_with_stream_features(
5975 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
5976 *(VkStructureType*)forUnmarshaling->pNext = extType;
5977 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
5978 ptr);
5979 }
5980 memcpy((uint8_t*)forUnmarshaling->deviceUUID, *ptr, VK_UUID_SIZE * sizeof(uint8_t));
5981 *ptr += VK_UUID_SIZE * sizeof(uint8_t);
5982 memcpy((uint8_t*)forUnmarshaling->driverUUID, *ptr, VK_UUID_SIZE * sizeof(uint8_t));
5983 *ptr += VK_UUID_SIZE * sizeof(uint8_t);
5984 memcpy((uint8_t*)forUnmarshaling->deviceLUID, *ptr, VK_LUID_SIZE * sizeof(uint8_t));
5985 *ptr += VK_LUID_SIZE * sizeof(uint8_t);
5986 memcpy((uint32_t*)&forUnmarshaling->deviceNodeMask, *ptr, sizeof(uint32_t));
5987 *ptr += sizeof(uint32_t);
5988 memcpy((VkBool32*)&forUnmarshaling->deviceLUIDValid, *ptr, sizeof(VkBool32));
5989 *ptr += sizeof(VkBool32);
5990 memcpy((uint32_t*)&forUnmarshaling->subgroupSize, *ptr, sizeof(uint32_t));
5991 *ptr += sizeof(uint32_t);
5992 memcpy((VkShaderStageFlags*)&forUnmarshaling->subgroupSupportedStages, *ptr,
5993 sizeof(VkShaderStageFlags));
5994 *ptr += sizeof(VkShaderStageFlags);
5995 memcpy((VkSubgroupFeatureFlags*)&forUnmarshaling->subgroupSupportedOperations, *ptr,
5996 sizeof(VkSubgroupFeatureFlags));
5997 *ptr += sizeof(VkSubgroupFeatureFlags);
5998 memcpy((VkBool32*)&forUnmarshaling->subgroupQuadOperationsInAllStages, *ptr, sizeof(VkBool32));
5999 *ptr += sizeof(VkBool32);
6000 memcpy((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior, *ptr,
6001 sizeof(VkPointClippingBehavior));
6002 *ptr += sizeof(VkPointClippingBehavior);
6003 memcpy((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, *ptr, sizeof(uint32_t));
6004 *ptr += sizeof(uint32_t);
6005 memcpy((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, *ptr, sizeof(uint32_t));
6006 *ptr += sizeof(uint32_t);
6007 memcpy((VkBool32*)&forUnmarshaling->protectedNoFault, *ptr, sizeof(VkBool32));
6008 *ptr += sizeof(VkBool32);
6009 memcpy((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, *ptr, sizeof(uint32_t));
6010 *ptr += sizeof(uint32_t);
6011 memcpy((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, *ptr, sizeof(VkDeviceSize));
6012 *ptr += sizeof(VkDeviceSize);
6013 }
6014
reservedunmarshal_VkPhysicalDeviceVulkan12Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan12Features * forUnmarshaling,uint8_t ** ptr)6015 void reservedunmarshal_VkPhysicalDeviceVulkan12Features(
6016 VulkanStream* vkStream, VkStructureType rootType,
6017 VkPhysicalDeviceVulkan12Features* forUnmarshaling, uint8_t** ptr) {
6018 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6019 *ptr += sizeof(VkStructureType);
6020 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6021 rootType = forUnmarshaling->sType;
6022 }
6023 uint32_t pNext_size;
6024 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6025 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6026 *ptr += sizeof(uint32_t);
6027 forUnmarshaling->pNext = nullptr;
6028 if (pNext_size) {
6029 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6030 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6031 *ptr += sizeof(VkStructureType);
6032 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6033 vkStream->alloc((void**)&forUnmarshaling->pNext,
6034 goldfish_vk_extension_struct_size_with_stream_features(
6035 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6036 *(VkStructureType*)forUnmarshaling->pNext = extType;
6037 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6038 ptr);
6039 }
6040 memcpy((VkBool32*)&forUnmarshaling->samplerMirrorClampToEdge, *ptr, sizeof(VkBool32));
6041 *ptr += sizeof(VkBool32);
6042 memcpy((VkBool32*)&forUnmarshaling->drawIndirectCount, *ptr, sizeof(VkBool32));
6043 *ptr += sizeof(VkBool32);
6044 memcpy((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, *ptr, sizeof(VkBool32));
6045 *ptr += sizeof(VkBool32);
6046 memcpy((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess, *ptr, sizeof(VkBool32));
6047 *ptr += sizeof(VkBool32);
6048 memcpy((VkBool32*)&forUnmarshaling->storagePushConstant8, *ptr, sizeof(VkBool32));
6049 *ptr += sizeof(VkBool32);
6050 memcpy((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, *ptr, sizeof(VkBool32));
6051 *ptr += sizeof(VkBool32);
6052 memcpy((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, *ptr, sizeof(VkBool32));
6053 *ptr += sizeof(VkBool32);
6054 memcpy((VkBool32*)&forUnmarshaling->shaderFloat16, *ptr, sizeof(VkBool32));
6055 *ptr += sizeof(VkBool32);
6056 memcpy((VkBool32*)&forUnmarshaling->shaderInt8, *ptr, sizeof(VkBool32));
6057 *ptr += sizeof(VkBool32);
6058 memcpy((VkBool32*)&forUnmarshaling->descriptorIndexing, *ptr, sizeof(VkBool32));
6059 *ptr += sizeof(VkBool32);
6060 memcpy((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing, *ptr,
6061 sizeof(VkBool32));
6062 *ptr += sizeof(VkBool32);
6063 memcpy((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing, *ptr,
6064 sizeof(VkBool32));
6065 *ptr += sizeof(VkBool32);
6066 memcpy((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing, *ptr,
6067 sizeof(VkBool32));
6068 *ptr += sizeof(VkBool32);
6069 memcpy((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing, *ptr,
6070 sizeof(VkBool32));
6071 *ptr += sizeof(VkBool32);
6072 memcpy((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing, *ptr,
6073 sizeof(VkBool32));
6074 *ptr += sizeof(VkBool32);
6075 memcpy((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing, *ptr,
6076 sizeof(VkBool32));
6077 *ptr += sizeof(VkBool32);
6078 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing, *ptr,
6079 sizeof(VkBool32));
6080 *ptr += sizeof(VkBool32);
6081 memcpy((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing, *ptr,
6082 sizeof(VkBool32));
6083 *ptr += sizeof(VkBool32);
6084 memcpy((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, *ptr,
6085 sizeof(VkBool32));
6086 *ptr += sizeof(VkBool32);
6087 memcpy((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, *ptr,
6088 sizeof(VkBool32));
6089 *ptr += sizeof(VkBool32);
6090 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind, *ptr,
6091 sizeof(VkBool32));
6092 *ptr += sizeof(VkBool32);
6093 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind, *ptr,
6094 sizeof(VkBool32));
6095 *ptr += sizeof(VkBool32);
6096 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind, *ptr,
6097 sizeof(VkBool32));
6098 *ptr += sizeof(VkBool32);
6099 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind, *ptr,
6100 sizeof(VkBool32));
6101 *ptr += sizeof(VkBool32);
6102 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, *ptr,
6103 sizeof(VkBool32));
6104 *ptr += sizeof(VkBool32);
6105 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, *ptr,
6106 sizeof(VkBool32));
6107 *ptr += sizeof(VkBool32);
6108 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending, *ptr,
6109 sizeof(VkBool32));
6110 *ptr += sizeof(VkBool32);
6111 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, *ptr, sizeof(VkBool32));
6112 *ptr += sizeof(VkBool32);
6113 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount, *ptr,
6114 sizeof(VkBool32));
6115 *ptr += sizeof(VkBool32);
6116 memcpy((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, *ptr, sizeof(VkBool32));
6117 *ptr += sizeof(VkBool32);
6118 memcpy((VkBool32*)&forUnmarshaling->samplerFilterMinmax, *ptr, sizeof(VkBool32));
6119 *ptr += sizeof(VkBool32);
6120 memcpy((VkBool32*)&forUnmarshaling->scalarBlockLayout, *ptr, sizeof(VkBool32));
6121 *ptr += sizeof(VkBool32);
6122 memcpy((VkBool32*)&forUnmarshaling->imagelessFramebuffer, *ptr, sizeof(VkBool32));
6123 *ptr += sizeof(VkBool32);
6124 memcpy((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, *ptr, sizeof(VkBool32));
6125 *ptr += sizeof(VkBool32);
6126 memcpy((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, *ptr, sizeof(VkBool32));
6127 *ptr += sizeof(VkBool32);
6128 memcpy((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, *ptr, sizeof(VkBool32));
6129 *ptr += sizeof(VkBool32);
6130 memcpy((VkBool32*)&forUnmarshaling->hostQueryReset, *ptr, sizeof(VkBool32));
6131 *ptr += sizeof(VkBool32);
6132 memcpy((VkBool32*)&forUnmarshaling->timelineSemaphore, *ptr, sizeof(VkBool32));
6133 *ptr += sizeof(VkBool32);
6134 memcpy((VkBool32*)&forUnmarshaling->bufferDeviceAddress, *ptr, sizeof(VkBool32));
6135 *ptr += sizeof(VkBool32);
6136 memcpy((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, *ptr, sizeof(VkBool32));
6137 *ptr += sizeof(VkBool32);
6138 memcpy((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, *ptr, sizeof(VkBool32));
6139 *ptr += sizeof(VkBool32);
6140 memcpy((VkBool32*)&forUnmarshaling->vulkanMemoryModel, *ptr, sizeof(VkBool32));
6141 *ptr += sizeof(VkBool32);
6142 memcpy((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, *ptr, sizeof(VkBool32));
6143 *ptr += sizeof(VkBool32);
6144 memcpy((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains, *ptr,
6145 sizeof(VkBool32));
6146 *ptr += sizeof(VkBool32);
6147 memcpy((VkBool32*)&forUnmarshaling->shaderOutputViewportIndex, *ptr, sizeof(VkBool32));
6148 *ptr += sizeof(VkBool32);
6149 memcpy((VkBool32*)&forUnmarshaling->shaderOutputLayer, *ptr, sizeof(VkBool32));
6150 *ptr += sizeof(VkBool32);
6151 memcpy((VkBool32*)&forUnmarshaling->subgroupBroadcastDynamicId, *ptr, sizeof(VkBool32));
6152 *ptr += sizeof(VkBool32);
6153 }
6154
reservedunmarshal_VkConformanceVersion(VulkanStream * vkStream,VkStructureType rootType,VkConformanceVersion * forUnmarshaling,uint8_t ** ptr)6155 void reservedunmarshal_VkConformanceVersion(VulkanStream* vkStream, VkStructureType rootType,
6156 VkConformanceVersion* forUnmarshaling, uint8_t** ptr) {
6157 memcpy((uint8_t*)&forUnmarshaling->major, *ptr, sizeof(uint8_t));
6158 *ptr += sizeof(uint8_t);
6159 memcpy((uint8_t*)&forUnmarshaling->minor, *ptr, sizeof(uint8_t));
6160 *ptr += sizeof(uint8_t);
6161 memcpy((uint8_t*)&forUnmarshaling->subminor, *ptr, sizeof(uint8_t));
6162 *ptr += sizeof(uint8_t);
6163 memcpy((uint8_t*)&forUnmarshaling->patch, *ptr, sizeof(uint8_t));
6164 *ptr += sizeof(uint8_t);
6165 }
6166
reservedunmarshal_VkPhysicalDeviceVulkan12Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan12Properties * forUnmarshaling,uint8_t ** ptr)6167 void reservedunmarshal_VkPhysicalDeviceVulkan12Properties(
6168 VulkanStream* vkStream, VkStructureType rootType,
6169 VkPhysicalDeviceVulkan12Properties* forUnmarshaling, uint8_t** ptr) {
6170 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6171 *ptr += sizeof(VkStructureType);
6172 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6173 rootType = forUnmarshaling->sType;
6174 }
6175 uint32_t pNext_size;
6176 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6177 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6178 *ptr += sizeof(uint32_t);
6179 forUnmarshaling->pNext = nullptr;
6180 if (pNext_size) {
6181 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6182 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6183 *ptr += sizeof(VkStructureType);
6184 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6185 vkStream->alloc((void**)&forUnmarshaling->pNext,
6186 goldfish_vk_extension_struct_size_with_stream_features(
6187 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6188 *(VkStructureType*)forUnmarshaling->pNext = extType;
6189 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6190 ptr);
6191 }
6192 memcpy((VkDriverId*)&forUnmarshaling->driverID, *ptr, sizeof(VkDriverId));
6193 *ptr += sizeof(VkDriverId);
6194 memcpy((char*)forUnmarshaling->driverName, *ptr, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
6195 *ptr += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
6196 memcpy((char*)forUnmarshaling->driverInfo, *ptr, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
6197 *ptr += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
6198 reservedunmarshal_VkConformanceVersion(
6199 vkStream, rootType, (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion), ptr);
6200 memcpy((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence, *ptr,
6201 sizeof(VkShaderFloatControlsIndependence));
6202 *ptr += sizeof(VkShaderFloatControlsIndependence);
6203 memcpy((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence, *ptr,
6204 sizeof(VkShaderFloatControlsIndependence));
6205 *ptr += sizeof(VkShaderFloatControlsIndependence);
6206 memcpy((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16, *ptr,
6207 sizeof(VkBool32));
6208 *ptr += sizeof(VkBool32);
6209 memcpy((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32, *ptr,
6210 sizeof(VkBool32));
6211 *ptr += sizeof(VkBool32);
6212 memcpy((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64, *ptr,
6213 sizeof(VkBool32));
6214 *ptr += sizeof(VkBool32);
6215 memcpy((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, *ptr, sizeof(VkBool32));
6216 *ptr += sizeof(VkBool32);
6217 memcpy((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, *ptr, sizeof(VkBool32));
6218 *ptr += sizeof(VkBool32);
6219 memcpy((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, *ptr, sizeof(VkBool32));
6220 *ptr += sizeof(VkBool32);
6221 memcpy((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, *ptr, sizeof(VkBool32));
6222 *ptr += sizeof(VkBool32);
6223 memcpy((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, *ptr, sizeof(VkBool32));
6224 *ptr += sizeof(VkBool32);
6225 memcpy((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, *ptr, sizeof(VkBool32));
6226 *ptr += sizeof(VkBool32);
6227 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, *ptr, sizeof(VkBool32));
6228 *ptr += sizeof(VkBool32);
6229 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, *ptr, sizeof(VkBool32));
6230 *ptr += sizeof(VkBool32);
6231 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, *ptr, sizeof(VkBool32));
6232 *ptr += sizeof(VkBool32);
6233 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, *ptr, sizeof(VkBool32));
6234 *ptr += sizeof(VkBool32);
6235 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, *ptr, sizeof(VkBool32));
6236 *ptr += sizeof(VkBool32);
6237 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, *ptr, sizeof(VkBool32));
6238 *ptr += sizeof(VkBool32);
6239 memcpy((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools, *ptr,
6240 sizeof(uint32_t));
6241 *ptr += sizeof(uint32_t);
6242 memcpy((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative, *ptr,
6243 sizeof(VkBool32));
6244 *ptr += sizeof(VkBool32);
6245 memcpy((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative, *ptr,
6246 sizeof(VkBool32));
6247 *ptr += sizeof(VkBool32);
6248 memcpy((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative, *ptr,
6249 sizeof(VkBool32));
6250 *ptr += sizeof(VkBool32);
6251 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative, *ptr,
6252 sizeof(VkBool32));
6253 *ptr += sizeof(VkBool32);
6254 memcpy((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, *ptr,
6255 sizeof(VkBool32));
6256 *ptr += sizeof(VkBool32);
6257 memcpy((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind, *ptr, sizeof(VkBool32));
6258 *ptr += sizeof(VkBool32);
6259 memcpy((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, *ptr, sizeof(VkBool32));
6260 *ptr += sizeof(VkBool32);
6261 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, *ptr,
6262 sizeof(uint32_t));
6263 *ptr += sizeof(uint32_t);
6264 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, *ptr,
6265 sizeof(uint32_t));
6266 *ptr += sizeof(uint32_t);
6267 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, *ptr,
6268 sizeof(uint32_t));
6269 *ptr += sizeof(uint32_t);
6270 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, *ptr,
6271 sizeof(uint32_t));
6272 *ptr += sizeof(uint32_t);
6273 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, *ptr,
6274 sizeof(uint32_t));
6275 *ptr += sizeof(uint32_t);
6276 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, *ptr,
6277 sizeof(uint32_t));
6278 *ptr += sizeof(uint32_t);
6279 memcpy((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources, *ptr,
6280 sizeof(uint32_t));
6281 *ptr += sizeof(uint32_t);
6282 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers, *ptr,
6283 sizeof(uint32_t));
6284 *ptr += sizeof(uint32_t);
6285 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, *ptr,
6286 sizeof(uint32_t));
6287 *ptr += sizeof(uint32_t);
6288 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, *ptr,
6289 sizeof(uint32_t));
6290 *ptr += sizeof(uint32_t);
6291 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, *ptr,
6292 sizeof(uint32_t));
6293 *ptr += sizeof(uint32_t);
6294 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, *ptr,
6295 sizeof(uint32_t));
6296 *ptr += sizeof(uint32_t);
6297 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages, *ptr,
6298 sizeof(uint32_t));
6299 *ptr += sizeof(uint32_t);
6300 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages, *ptr,
6301 sizeof(uint32_t));
6302 *ptr += sizeof(uint32_t);
6303 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, *ptr,
6304 sizeof(uint32_t));
6305 *ptr += sizeof(uint32_t);
6306 memcpy((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes, *ptr,
6307 sizeof(VkResolveModeFlags));
6308 *ptr += sizeof(VkResolveModeFlags);
6309 memcpy((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes, *ptr,
6310 sizeof(VkResolveModeFlags));
6311 *ptr += sizeof(VkResolveModeFlags);
6312 memcpy((VkBool32*)&forUnmarshaling->independentResolveNone, *ptr, sizeof(VkBool32));
6313 *ptr += sizeof(VkBool32);
6314 memcpy((VkBool32*)&forUnmarshaling->independentResolve, *ptr, sizeof(VkBool32));
6315 *ptr += sizeof(VkBool32);
6316 memcpy((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats, *ptr, sizeof(VkBool32));
6317 *ptr += sizeof(VkBool32);
6318 memcpy((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping, *ptr, sizeof(VkBool32));
6319 *ptr += sizeof(VkBool32);
6320 memcpy((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference, *ptr,
6321 sizeof(uint64_t));
6322 *ptr += sizeof(uint64_t);
6323 memcpy((VkSampleCountFlags*)&forUnmarshaling->framebufferIntegerColorSampleCounts, *ptr,
6324 sizeof(VkSampleCountFlags));
6325 *ptr += sizeof(VkSampleCountFlags);
6326 }
6327
reservedunmarshal_VkImageFormatListCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageFormatListCreateInfo * forUnmarshaling,uint8_t ** ptr)6328 void reservedunmarshal_VkImageFormatListCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
6329 VkImageFormatListCreateInfo* forUnmarshaling,
6330 uint8_t** ptr) {
6331 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6332 *ptr += sizeof(VkStructureType);
6333 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6334 rootType = forUnmarshaling->sType;
6335 }
6336 uint32_t pNext_size;
6337 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6338 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6339 *ptr += sizeof(uint32_t);
6340 forUnmarshaling->pNext = nullptr;
6341 if (pNext_size) {
6342 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6343 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6344 *ptr += sizeof(VkStructureType);
6345 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6346 vkStream->alloc((void**)&forUnmarshaling->pNext,
6347 goldfish_vk_extension_struct_size_with_stream_features(
6348 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6349 *(VkStructureType*)forUnmarshaling->pNext = extType;
6350 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6351 ptr);
6352 }
6353 memcpy((uint32_t*)&forUnmarshaling->viewFormatCount, *ptr, sizeof(uint32_t));
6354 *ptr += sizeof(uint32_t);
6355 vkStream->alloc((void**)&forUnmarshaling->pViewFormats,
6356 forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
6357 memcpy((VkFormat*)forUnmarshaling->pViewFormats, *ptr,
6358 forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
6359 *ptr += forUnmarshaling->viewFormatCount * sizeof(const VkFormat);
6360 }
6361
reservedunmarshal_VkAttachmentDescription2(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentDescription2 * forUnmarshaling,uint8_t ** ptr)6362 void reservedunmarshal_VkAttachmentDescription2(VulkanStream* vkStream, VkStructureType rootType,
6363 VkAttachmentDescription2* forUnmarshaling,
6364 uint8_t** ptr) {
6365 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6366 *ptr += sizeof(VkStructureType);
6367 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6368 rootType = forUnmarshaling->sType;
6369 }
6370 uint32_t pNext_size;
6371 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6372 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6373 *ptr += sizeof(uint32_t);
6374 forUnmarshaling->pNext = nullptr;
6375 if (pNext_size) {
6376 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6377 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6378 *ptr += sizeof(VkStructureType);
6379 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6380 vkStream->alloc((void**)&forUnmarshaling->pNext,
6381 goldfish_vk_extension_struct_size_with_stream_features(
6382 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6383 *(VkStructureType*)forUnmarshaling->pNext = extType;
6384 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6385 ptr);
6386 }
6387 memcpy((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, *ptr,
6388 sizeof(VkAttachmentDescriptionFlags));
6389 *ptr += sizeof(VkAttachmentDescriptionFlags);
6390 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
6391 *ptr += sizeof(VkFormat);
6392 memcpy((VkSampleCountFlagBits*)&forUnmarshaling->samples, *ptr, sizeof(VkSampleCountFlagBits));
6393 *ptr += sizeof(VkSampleCountFlagBits);
6394 memcpy((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, *ptr, sizeof(VkAttachmentLoadOp));
6395 *ptr += sizeof(VkAttachmentLoadOp);
6396 memcpy((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, *ptr, sizeof(VkAttachmentStoreOp));
6397 *ptr += sizeof(VkAttachmentStoreOp);
6398 memcpy((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, *ptr, sizeof(VkAttachmentLoadOp));
6399 *ptr += sizeof(VkAttachmentLoadOp);
6400 memcpy((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, *ptr,
6401 sizeof(VkAttachmentStoreOp));
6402 *ptr += sizeof(VkAttachmentStoreOp);
6403 memcpy((VkImageLayout*)&forUnmarshaling->initialLayout, *ptr, sizeof(VkImageLayout));
6404 *ptr += sizeof(VkImageLayout);
6405 memcpy((VkImageLayout*)&forUnmarshaling->finalLayout, *ptr, sizeof(VkImageLayout));
6406 *ptr += sizeof(VkImageLayout);
6407 }
6408
reservedunmarshal_VkAttachmentReference2(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentReference2 * forUnmarshaling,uint8_t ** ptr)6409 void reservedunmarshal_VkAttachmentReference2(VulkanStream* vkStream, VkStructureType rootType,
6410 VkAttachmentReference2* forUnmarshaling,
6411 uint8_t** ptr) {
6412 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6413 *ptr += sizeof(VkStructureType);
6414 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6415 rootType = forUnmarshaling->sType;
6416 }
6417 uint32_t pNext_size;
6418 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6419 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6420 *ptr += sizeof(uint32_t);
6421 forUnmarshaling->pNext = nullptr;
6422 if (pNext_size) {
6423 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6424 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6425 *ptr += sizeof(VkStructureType);
6426 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6427 vkStream->alloc((void**)&forUnmarshaling->pNext,
6428 goldfish_vk_extension_struct_size_with_stream_features(
6429 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6430 *(VkStructureType*)forUnmarshaling->pNext = extType;
6431 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6432 ptr);
6433 }
6434 memcpy((uint32_t*)&forUnmarshaling->attachment, *ptr, sizeof(uint32_t));
6435 *ptr += sizeof(uint32_t);
6436 memcpy((VkImageLayout*)&forUnmarshaling->layout, *ptr, sizeof(VkImageLayout));
6437 *ptr += sizeof(VkImageLayout);
6438 memcpy((VkImageAspectFlags*)&forUnmarshaling->aspectMask, *ptr, sizeof(VkImageAspectFlags));
6439 *ptr += sizeof(VkImageAspectFlags);
6440 }
6441
reservedunmarshal_VkSubpassDescription2(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDescription2 * forUnmarshaling,uint8_t ** ptr)6442 void reservedunmarshal_VkSubpassDescription2(VulkanStream* vkStream, VkStructureType rootType,
6443 VkSubpassDescription2* forUnmarshaling,
6444 uint8_t** ptr) {
6445 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6446 *ptr += sizeof(VkStructureType);
6447 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6448 rootType = forUnmarshaling->sType;
6449 }
6450 uint32_t pNext_size;
6451 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6452 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6453 *ptr += sizeof(uint32_t);
6454 forUnmarshaling->pNext = nullptr;
6455 if (pNext_size) {
6456 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6457 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6458 *ptr += sizeof(VkStructureType);
6459 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6460 vkStream->alloc((void**)&forUnmarshaling->pNext,
6461 goldfish_vk_extension_struct_size_with_stream_features(
6462 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6463 *(VkStructureType*)forUnmarshaling->pNext = extType;
6464 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6465 ptr);
6466 }
6467 memcpy((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, *ptr,
6468 sizeof(VkSubpassDescriptionFlags));
6469 *ptr += sizeof(VkSubpassDescriptionFlags);
6470 memcpy((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, *ptr,
6471 sizeof(VkPipelineBindPoint));
6472 *ptr += sizeof(VkPipelineBindPoint);
6473 memcpy((uint32_t*)&forUnmarshaling->viewMask, *ptr, sizeof(uint32_t));
6474 *ptr += sizeof(uint32_t);
6475 memcpy((uint32_t*)&forUnmarshaling->inputAttachmentCount, *ptr, sizeof(uint32_t));
6476 *ptr += sizeof(uint32_t);
6477 vkStream->alloc((void**)&forUnmarshaling->pInputAttachments,
6478 forUnmarshaling->inputAttachmentCount * sizeof(const VkAttachmentReference2));
6479 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i) {
6480 reservedunmarshal_VkAttachmentReference2(
6481 vkStream, rootType, (VkAttachmentReference2*)(forUnmarshaling->pInputAttachments + i),
6482 ptr);
6483 }
6484 memcpy((uint32_t*)&forUnmarshaling->colorAttachmentCount, *ptr, sizeof(uint32_t));
6485 *ptr += sizeof(uint32_t);
6486 vkStream->alloc((void**)&forUnmarshaling->pColorAttachments,
6487 forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference2));
6488 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
6489 reservedunmarshal_VkAttachmentReference2(
6490 vkStream, rootType, (VkAttachmentReference2*)(forUnmarshaling->pColorAttachments + i),
6491 ptr);
6492 }
6493 // WARNING PTR CHECK
6494 memcpy((VkAttachmentReference2**)&forUnmarshaling->pResolveAttachments, (*ptr), 8);
6495 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pResolveAttachments);
6496 *ptr += 8;
6497 if (forUnmarshaling->pResolveAttachments) {
6498 vkStream->alloc(
6499 (void**)&forUnmarshaling->pResolveAttachments,
6500 forUnmarshaling->colorAttachmentCount * sizeof(const VkAttachmentReference2));
6501 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
6502 reservedunmarshal_VkAttachmentReference2(
6503 vkStream, rootType,
6504 (VkAttachmentReference2*)(forUnmarshaling->pResolveAttachments + i), ptr);
6505 }
6506 }
6507 // WARNING PTR CHECK
6508 memcpy((VkAttachmentReference2**)&forUnmarshaling->pDepthStencilAttachment, (*ptr), 8);
6509 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDepthStencilAttachment);
6510 *ptr += 8;
6511 if (forUnmarshaling->pDepthStencilAttachment) {
6512 vkStream->alloc((void**)&forUnmarshaling->pDepthStencilAttachment,
6513 sizeof(const VkAttachmentReference2));
6514 reservedunmarshal_VkAttachmentReference2(
6515 vkStream, rootType, (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilAttachment),
6516 ptr);
6517 }
6518 memcpy((uint32_t*)&forUnmarshaling->preserveAttachmentCount, *ptr, sizeof(uint32_t));
6519 *ptr += sizeof(uint32_t);
6520 vkStream->alloc((void**)&forUnmarshaling->pPreserveAttachments,
6521 forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
6522 memcpy((uint32_t*)forUnmarshaling->pPreserveAttachments, *ptr,
6523 forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
6524 *ptr += forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t);
6525 }
6526
reservedunmarshal_VkSubpassDependency2(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDependency2 * forUnmarshaling,uint8_t ** ptr)6527 void reservedunmarshal_VkSubpassDependency2(VulkanStream* vkStream, VkStructureType rootType,
6528 VkSubpassDependency2* forUnmarshaling, uint8_t** ptr) {
6529 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6530 *ptr += sizeof(VkStructureType);
6531 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6532 rootType = forUnmarshaling->sType;
6533 }
6534 uint32_t pNext_size;
6535 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6536 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6537 *ptr += sizeof(uint32_t);
6538 forUnmarshaling->pNext = nullptr;
6539 if (pNext_size) {
6540 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6541 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6542 *ptr += sizeof(VkStructureType);
6543 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6544 vkStream->alloc((void**)&forUnmarshaling->pNext,
6545 goldfish_vk_extension_struct_size_with_stream_features(
6546 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6547 *(VkStructureType*)forUnmarshaling->pNext = extType;
6548 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6549 ptr);
6550 }
6551 memcpy((uint32_t*)&forUnmarshaling->srcSubpass, *ptr, sizeof(uint32_t));
6552 *ptr += sizeof(uint32_t);
6553 memcpy((uint32_t*)&forUnmarshaling->dstSubpass, *ptr, sizeof(uint32_t));
6554 *ptr += sizeof(uint32_t);
6555 memcpy((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, *ptr,
6556 sizeof(VkPipelineStageFlags));
6557 *ptr += sizeof(VkPipelineStageFlags);
6558 memcpy((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, *ptr,
6559 sizeof(VkPipelineStageFlags));
6560 *ptr += sizeof(VkPipelineStageFlags);
6561 memcpy((VkAccessFlags*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags));
6562 *ptr += sizeof(VkAccessFlags);
6563 memcpy((VkAccessFlags*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags));
6564 *ptr += sizeof(VkAccessFlags);
6565 memcpy((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, *ptr, sizeof(VkDependencyFlags));
6566 *ptr += sizeof(VkDependencyFlags);
6567 memcpy((int32_t*)&forUnmarshaling->viewOffset, *ptr, sizeof(int32_t));
6568 *ptr += sizeof(int32_t);
6569 }
6570
reservedunmarshal_VkRenderPassCreateInfo2(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassCreateInfo2 * forUnmarshaling,uint8_t ** ptr)6571 void reservedunmarshal_VkRenderPassCreateInfo2(VulkanStream* vkStream, VkStructureType rootType,
6572 VkRenderPassCreateInfo2* forUnmarshaling,
6573 uint8_t** ptr) {
6574 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6575 *ptr += sizeof(VkStructureType);
6576 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6577 rootType = forUnmarshaling->sType;
6578 }
6579 uint32_t pNext_size;
6580 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6581 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6582 *ptr += sizeof(uint32_t);
6583 forUnmarshaling->pNext = nullptr;
6584 if (pNext_size) {
6585 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6586 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6587 *ptr += sizeof(VkStructureType);
6588 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6589 vkStream->alloc((void**)&forUnmarshaling->pNext,
6590 goldfish_vk_extension_struct_size_with_stream_features(
6591 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6592 *(VkStructureType*)forUnmarshaling->pNext = extType;
6593 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6594 ptr);
6595 }
6596 memcpy((VkRenderPassCreateFlags*)&forUnmarshaling->flags, *ptr,
6597 sizeof(VkRenderPassCreateFlags));
6598 *ptr += sizeof(VkRenderPassCreateFlags);
6599 memcpy((uint32_t*)&forUnmarshaling->attachmentCount, *ptr, sizeof(uint32_t));
6600 *ptr += sizeof(uint32_t);
6601 vkStream->alloc((void**)&forUnmarshaling->pAttachments,
6602 forUnmarshaling->attachmentCount * sizeof(const VkAttachmentDescription2));
6603 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i) {
6604 reservedunmarshal_VkAttachmentDescription2(
6605 vkStream, rootType, (VkAttachmentDescription2*)(forUnmarshaling->pAttachments + i),
6606 ptr);
6607 }
6608 memcpy((uint32_t*)&forUnmarshaling->subpassCount, *ptr, sizeof(uint32_t));
6609 *ptr += sizeof(uint32_t);
6610 vkStream->alloc((void**)&forUnmarshaling->pSubpasses,
6611 forUnmarshaling->subpassCount * sizeof(const VkSubpassDescription2));
6612 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i) {
6613 reservedunmarshal_VkSubpassDescription2(
6614 vkStream, rootType, (VkSubpassDescription2*)(forUnmarshaling->pSubpasses + i), ptr);
6615 }
6616 memcpy((uint32_t*)&forUnmarshaling->dependencyCount, *ptr, sizeof(uint32_t));
6617 *ptr += sizeof(uint32_t);
6618 vkStream->alloc((void**)&forUnmarshaling->pDependencies,
6619 forUnmarshaling->dependencyCount * sizeof(const VkSubpassDependency2));
6620 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i) {
6621 reservedunmarshal_VkSubpassDependency2(
6622 vkStream, rootType, (VkSubpassDependency2*)(forUnmarshaling->pDependencies + i), ptr);
6623 }
6624 memcpy((uint32_t*)&forUnmarshaling->correlatedViewMaskCount, *ptr, sizeof(uint32_t));
6625 *ptr += sizeof(uint32_t);
6626 vkStream->alloc((void**)&forUnmarshaling->pCorrelatedViewMasks,
6627 forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
6628 memcpy((uint32_t*)forUnmarshaling->pCorrelatedViewMasks, *ptr,
6629 forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
6630 *ptr += forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t);
6631 }
6632
reservedunmarshal_VkSubpassBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkSubpassBeginInfo * forUnmarshaling,uint8_t ** ptr)6633 void reservedunmarshal_VkSubpassBeginInfo(VulkanStream* vkStream, VkStructureType rootType,
6634 VkSubpassBeginInfo* forUnmarshaling, uint8_t** ptr) {
6635 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6636 *ptr += sizeof(VkStructureType);
6637 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6638 rootType = forUnmarshaling->sType;
6639 }
6640 uint32_t pNext_size;
6641 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6642 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6643 *ptr += sizeof(uint32_t);
6644 forUnmarshaling->pNext = nullptr;
6645 if (pNext_size) {
6646 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6647 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6648 *ptr += sizeof(VkStructureType);
6649 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6650 vkStream->alloc((void**)&forUnmarshaling->pNext,
6651 goldfish_vk_extension_struct_size_with_stream_features(
6652 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6653 *(VkStructureType*)forUnmarshaling->pNext = extType;
6654 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6655 ptr);
6656 }
6657 memcpy((VkSubpassContents*)&forUnmarshaling->contents, *ptr, sizeof(VkSubpassContents));
6658 *ptr += sizeof(VkSubpassContents);
6659 }
6660
reservedunmarshal_VkSubpassEndInfo(VulkanStream * vkStream,VkStructureType rootType,VkSubpassEndInfo * forUnmarshaling,uint8_t ** ptr)6661 void reservedunmarshal_VkSubpassEndInfo(VulkanStream* vkStream, VkStructureType rootType,
6662 VkSubpassEndInfo* forUnmarshaling, uint8_t** ptr) {
6663 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6664 *ptr += sizeof(VkStructureType);
6665 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6666 rootType = forUnmarshaling->sType;
6667 }
6668 uint32_t pNext_size;
6669 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6670 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6671 *ptr += sizeof(uint32_t);
6672 forUnmarshaling->pNext = nullptr;
6673 if (pNext_size) {
6674 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6675 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6676 *ptr += sizeof(VkStructureType);
6677 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6678 vkStream->alloc((void**)&forUnmarshaling->pNext,
6679 goldfish_vk_extension_struct_size_with_stream_features(
6680 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6681 *(VkStructureType*)forUnmarshaling->pNext = extType;
6682 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6683 ptr);
6684 }
6685 }
6686
reservedunmarshal_VkPhysicalDevice8BitStorageFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevice8BitStorageFeatures * forUnmarshaling,uint8_t ** ptr)6687 void reservedunmarshal_VkPhysicalDevice8BitStorageFeatures(
6688 VulkanStream* vkStream, VkStructureType rootType,
6689 VkPhysicalDevice8BitStorageFeatures* forUnmarshaling, uint8_t** ptr) {
6690 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6691 *ptr += sizeof(VkStructureType);
6692 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6693 rootType = forUnmarshaling->sType;
6694 }
6695 uint32_t pNext_size;
6696 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6697 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6698 *ptr += sizeof(uint32_t);
6699 forUnmarshaling->pNext = nullptr;
6700 if (pNext_size) {
6701 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6702 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6703 *ptr += sizeof(VkStructureType);
6704 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6705 vkStream->alloc((void**)&forUnmarshaling->pNext,
6706 goldfish_vk_extension_struct_size_with_stream_features(
6707 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6708 *(VkStructureType*)forUnmarshaling->pNext = extType;
6709 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6710 ptr);
6711 }
6712 memcpy((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, *ptr, sizeof(VkBool32));
6713 *ptr += sizeof(VkBool32);
6714 memcpy((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess, *ptr, sizeof(VkBool32));
6715 *ptr += sizeof(VkBool32);
6716 memcpy((VkBool32*)&forUnmarshaling->storagePushConstant8, *ptr, sizeof(VkBool32));
6717 *ptr += sizeof(VkBool32);
6718 }
6719
reservedunmarshal_VkPhysicalDeviceDriverProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDriverProperties * forUnmarshaling,uint8_t ** ptr)6720 void reservedunmarshal_VkPhysicalDeviceDriverProperties(
6721 VulkanStream* vkStream, VkStructureType rootType,
6722 VkPhysicalDeviceDriverProperties* forUnmarshaling, uint8_t** ptr) {
6723 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6724 *ptr += sizeof(VkStructureType);
6725 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6726 rootType = forUnmarshaling->sType;
6727 }
6728 uint32_t pNext_size;
6729 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6730 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6731 *ptr += sizeof(uint32_t);
6732 forUnmarshaling->pNext = nullptr;
6733 if (pNext_size) {
6734 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6735 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6736 *ptr += sizeof(VkStructureType);
6737 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6738 vkStream->alloc((void**)&forUnmarshaling->pNext,
6739 goldfish_vk_extension_struct_size_with_stream_features(
6740 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6741 *(VkStructureType*)forUnmarshaling->pNext = extType;
6742 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6743 ptr);
6744 }
6745 memcpy((VkDriverId*)&forUnmarshaling->driverID, *ptr, sizeof(VkDriverId));
6746 *ptr += sizeof(VkDriverId);
6747 memcpy((char*)forUnmarshaling->driverName, *ptr, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
6748 *ptr += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
6749 memcpy((char*)forUnmarshaling->driverInfo, *ptr, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
6750 *ptr += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
6751 reservedunmarshal_VkConformanceVersion(
6752 vkStream, rootType, (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion), ptr);
6753 }
6754
reservedunmarshal_VkPhysicalDeviceShaderAtomicInt64Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderAtomicInt64Features * forUnmarshaling,uint8_t ** ptr)6755 void reservedunmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
6756 VulkanStream* vkStream, VkStructureType rootType,
6757 VkPhysicalDeviceShaderAtomicInt64Features* forUnmarshaling, uint8_t** ptr) {
6758 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6759 *ptr += sizeof(VkStructureType);
6760 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6761 rootType = forUnmarshaling->sType;
6762 }
6763 uint32_t pNext_size;
6764 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6765 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6766 *ptr += sizeof(uint32_t);
6767 forUnmarshaling->pNext = nullptr;
6768 if (pNext_size) {
6769 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6770 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6771 *ptr += sizeof(VkStructureType);
6772 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6773 vkStream->alloc((void**)&forUnmarshaling->pNext,
6774 goldfish_vk_extension_struct_size_with_stream_features(
6775 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6776 *(VkStructureType*)forUnmarshaling->pNext = extType;
6777 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6778 ptr);
6779 }
6780 memcpy((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, *ptr, sizeof(VkBool32));
6781 *ptr += sizeof(VkBool32);
6782 memcpy((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, *ptr, sizeof(VkBool32));
6783 *ptr += sizeof(VkBool32);
6784 }
6785
reservedunmarshal_VkPhysicalDeviceShaderFloat16Int8Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderFloat16Int8Features * forUnmarshaling,uint8_t ** ptr)6786 void reservedunmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
6787 VulkanStream* vkStream, VkStructureType rootType,
6788 VkPhysicalDeviceShaderFloat16Int8Features* forUnmarshaling, uint8_t** ptr) {
6789 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6790 *ptr += sizeof(VkStructureType);
6791 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6792 rootType = forUnmarshaling->sType;
6793 }
6794 uint32_t pNext_size;
6795 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6796 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6797 *ptr += sizeof(uint32_t);
6798 forUnmarshaling->pNext = nullptr;
6799 if (pNext_size) {
6800 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6801 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6802 *ptr += sizeof(VkStructureType);
6803 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6804 vkStream->alloc((void**)&forUnmarshaling->pNext,
6805 goldfish_vk_extension_struct_size_with_stream_features(
6806 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6807 *(VkStructureType*)forUnmarshaling->pNext = extType;
6808 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6809 ptr);
6810 }
6811 memcpy((VkBool32*)&forUnmarshaling->shaderFloat16, *ptr, sizeof(VkBool32));
6812 *ptr += sizeof(VkBool32);
6813 memcpy((VkBool32*)&forUnmarshaling->shaderInt8, *ptr, sizeof(VkBool32));
6814 *ptr += sizeof(VkBool32);
6815 }
6816
reservedunmarshal_VkPhysicalDeviceFloatControlsProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFloatControlsProperties * forUnmarshaling,uint8_t ** ptr)6817 void reservedunmarshal_VkPhysicalDeviceFloatControlsProperties(
6818 VulkanStream* vkStream, VkStructureType rootType,
6819 VkPhysicalDeviceFloatControlsProperties* forUnmarshaling, uint8_t** ptr) {
6820 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6821 *ptr += sizeof(VkStructureType);
6822 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6823 rootType = forUnmarshaling->sType;
6824 }
6825 uint32_t pNext_size;
6826 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6827 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6828 *ptr += sizeof(uint32_t);
6829 forUnmarshaling->pNext = nullptr;
6830 if (pNext_size) {
6831 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6832 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6833 *ptr += sizeof(VkStructureType);
6834 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6835 vkStream->alloc((void**)&forUnmarshaling->pNext,
6836 goldfish_vk_extension_struct_size_with_stream_features(
6837 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6838 *(VkStructureType*)forUnmarshaling->pNext = extType;
6839 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6840 ptr);
6841 }
6842 memcpy((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence, *ptr,
6843 sizeof(VkShaderFloatControlsIndependence));
6844 *ptr += sizeof(VkShaderFloatControlsIndependence);
6845 memcpy((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence, *ptr,
6846 sizeof(VkShaderFloatControlsIndependence));
6847 *ptr += sizeof(VkShaderFloatControlsIndependence);
6848 memcpy((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16, *ptr,
6849 sizeof(VkBool32));
6850 *ptr += sizeof(VkBool32);
6851 memcpy((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32, *ptr,
6852 sizeof(VkBool32));
6853 *ptr += sizeof(VkBool32);
6854 memcpy((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64, *ptr,
6855 sizeof(VkBool32));
6856 *ptr += sizeof(VkBool32);
6857 memcpy((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, *ptr, sizeof(VkBool32));
6858 *ptr += sizeof(VkBool32);
6859 memcpy((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, *ptr, sizeof(VkBool32));
6860 *ptr += sizeof(VkBool32);
6861 memcpy((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, *ptr, sizeof(VkBool32));
6862 *ptr += sizeof(VkBool32);
6863 memcpy((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, *ptr, sizeof(VkBool32));
6864 *ptr += sizeof(VkBool32);
6865 memcpy((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, *ptr, sizeof(VkBool32));
6866 *ptr += sizeof(VkBool32);
6867 memcpy((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, *ptr, sizeof(VkBool32));
6868 *ptr += sizeof(VkBool32);
6869 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, *ptr, sizeof(VkBool32));
6870 *ptr += sizeof(VkBool32);
6871 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, *ptr, sizeof(VkBool32));
6872 *ptr += sizeof(VkBool32);
6873 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, *ptr, sizeof(VkBool32));
6874 *ptr += sizeof(VkBool32);
6875 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, *ptr, sizeof(VkBool32));
6876 *ptr += sizeof(VkBool32);
6877 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, *ptr, sizeof(VkBool32));
6878 *ptr += sizeof(VkBool32);
6879 memcpy((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, *ptr, sizeof(VkBool32));
6880 *ptr += sizeof(VkBool32);
6881 }
6882
reservedunmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetLayoutBindingFlagsCreateInfo * forUnmarshaling,uint8_t ** ptr)6883 void reservedunmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
6884 VulkanStream* vkStream, VkStructureType rootType,
6885 VkDescriptorSetLayoutBindingFlagsCreateInfo* forUnmarshaling, uint8_t** ptr) {
6886 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6887 *ptr += sizeof(VkStructureType);
6888 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6889 rootType = forUnmarshaling->sType;
6890 }
6891 uint32_t pNext_size;
6892 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6893 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6894 *ptr += sizeof(uint32_t);
6895 forUnmarshaling->pNext = nullptr;
6896 if (pNext_size) {
6897 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6898 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6899 *ptr += sizeof(VkStructureType);
6900 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6901 vkStream->alloc((void**)&forUnmarshaling->pNext,
6902 goldfish_vk_extension_struct_size_with_stream_features(
6903 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6904 *(VkStructureType*)forUnmarshaling->pNext = extType;
6905 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6906 ptr);
6907 }
6908 memcpy((uint32_t*)&forUnmarshaling->bindingCount, *ptr, sizeof(uint32_t));
6909 *ptr += sizeof(uint32_t);
6910 // WARNING PTR CHECK
6911 memcpy((VkDescriptorBindingFlags**)&forUnmarshaling->pBindingFlags, (*ptr), 8);
6912 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pBindingFlags);
6913 *ptr += 8;
6914 if (forUnmarshaling->pBindingFlags) {
6915 vkStream->alloc((void**)&forUnmarshaling->pBindingFlags,
6916 forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
6917 memcpy((VkDescriptorBindingFlags*)forUnmarshaling->pBindingFlags, *ptr,
6918 forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
6919 *ptr += forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags);
6920 }
6921 }
6922
reservedunmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorIndexingFeatures * forUnmarshaling,uint8_t ** ptr)6923 void reservedunmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
6924 VulkanStream* vkStream, VkStructureType rootType,
6925 VkPhysicalDeviceDescriptorIndexingFeatures* forUnmarshaling, uint8_t** ptr) {
6926 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
6927 *ptr += sizeof(VkStructureType);
6928 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
6929 rootType = forUnmarshaling->sType;
6930 }
6931 uint32_t pNext_size;
6932 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
6933 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
6934 *ptr += sizeof(uint32_t);
6935 forUnmarshaling->pNext = nullptr;
6936 if (pNext_size) {
6937 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
6938 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
6939 *ptr += sizeof(VkStructureType);
6940 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
6941 vkStream->alloc((void**)&forUnmarshaling->pNext,
6942 goldfish_vk_extension_struct_size_with_stream_features(
6943 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
6944 *(VkStructureType*)forUnmarshaling->pNext = extType;
6945 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
6946 ptr);
6947 }
6948 memcpy((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing, *ptr,
6949 sizeof(VkBool32));
6950 *ptr += sizeof(VkBool32);
6951 memcpy((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing, *ptr,
6952 sizeof(VkBool32));
6953 *ptr += sizeof(VkBool32);
6954 memcpy((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing, *ptr,
6955 sizeof(VkBool32));
6956 *ptr += sizeof(VkBool32);
6957 memcpy((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing, *ptr,
6958 sizeof(VkBool32));
6959 *ptr += sizeof(VkBool32);
6960 memcpy((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing, *ptr,
6961 sizeof(VkBool32));
6962 *ptr += sizeof(VkBool32);
6963 memcpy((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing, *ptr,
6964 sizeof(VkBool32));
6965 *ptr += sizeof(VkBool32);
6966 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing, *ptr,
6967 sizeof(VkBool32));
6968 *ptr += sizeof(VkBool32);
6969 memcpy((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing, *ptr,
6970 sizeof(VkBool32));
6971 *ptr += sizeof(VkBool32);
6972 memcpy((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, *ptr,
6973 sizeof(VkBool32));
6974 *ptr += sizeof(VkBool32);
6975 memcpy((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, *ptr,
6976 sizeof(VkBool32));
6977 *ptr += sizeof(VkBool32);
6978 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind, *ptr,
6979 sizeof(VkBool32));
6980 *ptr += sizeof(VkBool32);
6981 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind, *ptr,
6982 sizeof(VkBool32));
6983 *ptr += sizeof(VkBool32);
6984 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind, *ptr,
6985 sizeof(VkBool32));
6986 *ptr += sizeof(VkBool32);
6987 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind, *ptr,
6988 sizeof(VkBool32));
6989 *ptr += sizeof(VkBool32);
6990 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, *ptr,
6991 sizeof(VkBool32));
6992 *ptr += sizeof(VkBool32);
6993 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, *ptr,
6994 sizeof(VkBool32));
6995 *ptr += sizeof(VkBool32);
6996 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending, *ptr,
6997 sizeof(VkBool32));
6998 *ptr += sizeof(VkBool32);
6999 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, *ptr, sizeof(VkBool32));
7000 *ptr += sizeof(VkBool32);
7001 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount, *ptr,
7002 sizeof(VkBool32));
7003 *ptr += sizeof(VkBool32);
7004 memcpy((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, *ptr, sizeof(VkBool32));
7005 *ptr += sizeof(VkBool32);
7006 }
7007
reservedunmarshal_VkPhysicalDeviceDescriptorIndexingProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDescriptorIndexingProperties * forUnmarshaling,uint8_t ** ptr)7008 void reservedunmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
7009 VulkanStream* vkStream, VkStructureType rootType,
7010 VkPhysicalDeviceDescriptorIndexingProperties* forUnmarshaling, uint8_t** ptr) {
7011 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7012 *ptr += sizeof(VkStructureType);
7013 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7014 rootType = forUnmarshaling->sType;
7015 }
7016 uint32_t pNext_size;
7017 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7018 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7019 *ptr += sizeof(uint32_t);
7020 forUnmarshaling->pNext = nullptr;
7021 if (pNext_size) {
7022 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7023 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7024 *ptr += sizeof(VkStructureType);
7025 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7026 vkStream->alloc((void**)&forUnmarshaling->pNext,
7027 goldfish_vk_extension_struct_size_with_stream_features(
7028 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7029 *(VkStructureType*)forUnmarshaling->pNext = extType;
7030 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7031 ptr);
7032 }
7033 memcpy((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools, *ptr,
7034 sizeof(uint32_t));
7035 *ptr += sizeof(uint32_t);
7036 memcpy((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative, *ptr,
7037 sizeof(VkBool32));
7038 *ptr += sizeof(VkBool32);
7039 memcpy((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative, *ptr,
7040 sizeof(VkBool32));
7041 *ptr += sizeof(VkBool32);
7042 memcpy((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative, *ptr,
7043 sizeof(VkBool32));
7044 *ptr += sizeof(VkBool32);
7045 memcpy((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative, *ptr,
7046 sizeof(VkBool32));
7047 *ptr += sizeof(VkBool32);
7048 memcpy((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, *ptr,
7049 sizeof(VkBool32));
7050 *ptr += sizeof(VkBool32);
7051 memcpy((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind, *ptr, sizeof(VkBool32));
7052 *ptr += sizeof(VkBool32);
7053 memcpy((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, *ptr, sizeof(VkBool32));
7054 *ptr += sizeof(VkBool32);
7055 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, *ptr,
7056 sizeof(uint32_t));
7057 *ptr += sizeof(uint32_t);
7058 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, *ptr,
7059 sizeof(uint32_t));
7060 *ptr += sizeof(uint32_t);
7061 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, *ptr,
7062 sizeof(uint32_t));
7063 *ptr += sizeof(uint32_t);
7064 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, *ptr,
7065 sizeof(uint32_t));
7066 *ptr += sizeof(uint32_t);
7067 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, *ptr,
7068 sizeof(uint32_t));
7069 *ptr += sizeof(uint32_t);
7070 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, *ptr,
7071 sizeof(uint32_t));
7072 *ptr += sizeof(uint32_t);
7073 memcpy((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources, *ptr,
7074 sizeof(uint32_t));
7075 *ptr += sizeof(uint32_t);
7076 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers, *ptr,
7077 sizeof(uint32_t));
7078 *ptr += sizeof(uint32_t);
7079 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, *ptr,
7080 sizeof(uint32_t));
7081 *ptr += sizeof(uint32_t);
7082 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, *ptr,
7083 sizeof(uint32_t));
7084 *ptr += sizeof(uint32_t);
7085 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, *ptr,
7086 sizeof(uint32_t));
7087 *ptr += sizeof(uint32_t);
7088 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, *ptr,
7089 sizeof(uint32_t));
7090 *ptr += sizeof(uint32_t);
7091 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages, *ptr,
7092 sizeof(uint32_t));
7093 *ptr += sizeof(uint32_t);
7094 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages, *ptr,
7095 sizeof(uint32_t));
7096 *ptr += sizeof(uint32_t);
7097 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, *ptr,
7098 sizeof(uint32_t));
7099 *ptr += sizeof(uint32_t);
7100 }
7101
reservedunmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetVariableDescriptorCountAllocateInfo * forUnmarshaling,uint8_t ** ptr)7102 void reservedunmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
7103 VulkanStream* vkStream, VkStructureType rootType,
7104 VkDescriptorSetVariableDescriptorCountAllocateInfo* forUnmarshaling, uint8_t** ptr) {
7105 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7106 *ptr += sizeof(VkStructureType);
7107 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7108 rootType = forUnmarshaling->sType;
7109 }
7110 uint32_t pNext_size;
7111 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7112 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7113 *ptr += sizeof(uint32_t);
7114 forUnmarshaling->pNext = nullptr;
7115 if (pNext_size) {
7116 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7117 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7118 *ptr += sizeof(VkStructureType);
7119 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7120 vkStream->alloc((void**)&forUnmarshaling->pNext,
7121 goldfish_vk_extension_struct_size_with_stream_features(
7122 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7123 *(VkStructureType*)forUnmarshaling->pNext = extType;
7124 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7125 ptr);
7126 }
7127 memcpy((uint32_t*)&forUnmarshaling->descriptorSetCount, *ptr, sizeof(uint32_t));
7128 *ptr += sizeof(uint32_t);
7129 vkStream->alloc((void**)&forUnmarshaling->pDescriptorCounts,
7130 forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
7131 memcpy((uint32_t*)forUnmarshaling->pDescriptorCounts, *ptr,
7132 forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
7133 *ptr += forUnmarshaling->descriptorSetCount * sizeof(const uint32_t);
7134 }
7135
reservedunmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorSetVariableDescriptorCountLayoutSupport * forUnmarshaling,uint8_t ** ptr)7136 void reservedunmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
7137 VulkanStream* vkStream, VkStructureType rootType,
7138 VkDescriptorSetVariableDescriptorCountLayoutSupport* forUnmarshaling, uint8_t** ptr) {
7139 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7140 *ptr += sizeof(VkStructureType);
7141 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7142 rootType = forUnmarshaling->sType;
7143 }
7144 uint32_t pNext_size;
7145 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7146 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7147 *ptr += sizeof(uint32_t);
7148 forUnmarshaling->pNext = nullptr;
7149 if (pNext_size) {
7150 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7151 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7152 *ptr += sizeof(VkStructureType);
7153 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7154 vkStream->alloc((void**)&forUnmarshaling->pNext,
7155 goldfish_vk_extension_struct_size_with_stream_features(
7156 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7157 *(VkStructureType*)forUnmarshaling->pNext = extType;
7158 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7159 ptr);
7160 }
7161 memcpy((uint32_t*)&forUnmarshaling->maxVariableDescriptorCount, *ptr, sizeof(uint32_t));
7162 *ptr += sizeof(uint32_t);
7163 }
7164
reservedunmarshal_VkSubpassDescriptionDepthStencilResolve(VulkanStream * vkStream,VkStructureType rootType,VkSubpassDescriptionDepthStencilResolve * forUnmarshaling,uint8_t ** ptr)7165 void reservedunmarshal_VkSubpassDescriptionDepthStencilResolve(
7166 VulkanStream* vkStream, VkStructureType rootType,
7167 VkSubpassDescriptionDepthStencilResolve* forUnmarshaling, uint8_t** ptr) {
7168 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7169 *ptr += sizeof(VkStructureType);
7170 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7171 rootType = forUnmarshaling->sType;
7172 }
7173 uint32_t pNext_size;
7174 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7175 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7176 *ptr += sizeof(uint32_t);
7177 forUnmarshaling->pNext = nullptr;
7178 if (pNext_size) {
7179 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7180 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7181 *ptr += sizeof(VkStructureType);
7182 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7183 vkStream->alloc((void**)&forUnmarshaling->pNext,
7184 goldfish_vk_extension_struct_size_with_stream_features(
7185 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7186 *(VkStructureType*)forUnmarshaling->pNext = extType;
7187 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7188 ptr);
7189 }
7190 memcpy((VkResolveModeFlagBits*)&forUnmarshaling->depthResolveMode, *ptr,
7191 sizeof(VkResolveModeFlagBits));
7192 *ptr += sizeof(VkResolveModeFlagBits);
7193 memcpy((VkResolveModeFlagBits*)&forUnmarshaling->stencilResolveMode, *ptr,
7194 sizeof(VkResolveModeFlagBits));
7195 *ptr += sizeof(VkResolveModeFlagBits);
7196 // WARNING PTR CHECK
7197 memcpy((VkAttachmentReference2**)&forUnmarshaling->pDepthStencilResolveAttachment, (*ptr), 8);
7198 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDepthStencilResolveAttachment);
7199 *ptr += 8;
7200 if (forUnmarshaling->pDepthStencilResolveAttachment) {
7201 vkStream->alloc((void**)&forUnmarshaling->pDepthStencilResolveAttachment,
7202 sizeof(const VkAttachmentReference2));
7203 reservedunmarshal_VkAttachmentReference2(
7204 vkStream, rootType,
7205 (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilResolveAttachment), ptr);
7206 }
7207 }
7208
reservedunmarshal_VkPhysicalDeviceDepthStencilResolveProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthStencilResolveProperties * forUnmarshaling,uint8_t ** ptr)7209 void reservedunmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
7210 VulkanStream* vkStream, VkStructureType rootType,
7211 VkPhysicalDeviceDepthStencilResolveProperties* forUnmarshaling, uint8_t** ptr) {
7212 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7213 *ptr += sizeof(VkStructureType);
7214 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7215 rootType = forUnmarshaling->sType;
7216 }
7217 uint32_t pNext_size;
7218 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7219 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7220 *ptr += sizeof(uint32_t);
7221 forUnmarshaling->pNext = nullptr;
7222 if (pNext_size) {
7223 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7224 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7225 *ptr += sizeof(VkStructureType);
7226 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7227 vkStream->alloc((void**)&forUnmarshaling->pNext,
7228 goldfish_vk_extension_struct_size_with_stream_features(
7229 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7230 *(VkStructureType*)forUnmarshaling->pNext = extType;
7231 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7232 ptr);
7233 }
7234 memcpy((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes, *ptr,
7235 sizeof(VkResolveModeFlags));
7236 *ptr += sizeof(VkResolveModeFlags);
7237 memcpy((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes, *ptr,
7238 sizeof(VkResolveModeFlags));
7239 *ptr += sizeof(VkResolveModeFlags);
7240 memcpy((VkBool32*)&forUnmarshaling->independentResolveNone, *ptr, sizeof(VkBool32));
7241 *ptr += sizeof(VkBool32);
7242 memcpy((VkBool32*)&forUnmarshaling->independentResolve, *ptr, sizeof(VkBool32));
7243 *ptr += sizeof(VkBool32);
7244 }
7245
reservedunmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceScalarBlockLayoutFeatures * forUnmarshaling,uint8_t ** ptr)7246 void reservedunmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
7247 VulkanStream* vkStream, VkStructureType rootType,
7248 VkPhysicalDeviceScalarBlockLayoutFeatures* forUnmarshaling, uint8_t** ptr) {
7249 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7250 *ptr += sizeof(VkStructureType);
7251 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7252 rootType = forUnmarshaling->sType;
7253 }
7254 uint32_t pNext_size;
7255 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7256 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7257 *ptr += sizeof(uint32_t);
7258 forUnmarshaling->pNext = nullptr;
7259 if (pNext_size) {
7260 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7261 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7262 *ptr += sizeof(VkStructureType);
7263 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7264 vkStream->alloc((void**)&forUnmarshaling->pNext,
7265 goldfish_vk_extension_struct_size_with_stream_features(
7266 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7267 *(VkStructureType*)forUnmarshaling->pNext = extType;
7268 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7269 ptr);
7270 }
7271 memcpy((VkBool32*)&forUnmarshaling->scalarBlockLayout, *ptr, sizeof(VkBool32));
7272 *ptr += sizeof(VkBool32);
7273 }
7274
reservedunmarshal_VkImageStencilUsageCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkImageStencilUsageCreateInfo * forUnmarshaling,uint8_t ** ptr)7275 void reservedunmarshal_VkImageStencilUsageCreateInfo(VulkanStream* vkStream,
7276 VkStructureType rootType,
7277 VkImageStencilUsageCreateInfo* forUnmarshaling,
7278 uint8_t** ptr) {
7279 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7280 *ptr += sizeof(VkStructureType);
7281 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7282 rootType = forUnmarshaling->sType;
7283 }
7284 uint32_t pNext_size;
7285 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7286 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7287 *ptr += sizeof(uint32_t);
7288 forUnmarshaling->pNext = nullptr;
7289 if (pNext_size) {
7290 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7291 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7292 *ptr += sizeof(VkStructureType);
7293 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7294 vkStream->alloc((void**)&forUnmarshaling->pNext,
7295 goldfish_vk_extension_struct_size_with_stream_features(
7296 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7297 *(VkStructureType*)forUnmarshaling->pNext = extType;
7298 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7299 ptr);
7300 }
7301 memcpy((VkImageUsageFlags*)&forUnmarshaling->stencilUsage, *ptr, sizeof(VkImageUsageFlags));
7302 *ptr += sizeof(VkImageUsageFlags);
7303 }
7304
reservedunmarshal_VkSamplerReductionModeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSamplerReductionModeCreateInfo * forUnmarshaling,uint8_t ** ptr)7305 void reservedunmarshal_VkSamplerReductionModeCreateInfo(
7306 VulkanStream* vkStream, VkStructureType rootType,
7307 VkSamplerReductionModeCreateInfo* forUnmarshaling, uint8_t** ptr) {
7308 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7309 *ptr += sizeof(VkStructureType);
7310 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7311 rootType = forUnmarshaling->sType;
7312 }
7313 uint32_t pNext_size;
7314 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7315 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7316 *ptr += sizeof(uint32_t);
7317 forUnmarshaling->pNext = nullptr;
7318 if (pNext_size) {
7319 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7320 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7321 *ptr += sizeof(VkStructureType);
7322 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7323 vkStream->alloc((void**)&forUnmarshaling->pNext,
7324 goldfish_vk_extension_struct_size_with_stream_features(
7325 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7326 *(VkStructureType*)forUnmarshaling->pNext = extType;
7327 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7328 ptr);
7329 }
7330 memcpy((VkSamplerReductionMode*)&forUnmarshaling->reductionMode, *ptr,
7331 sizeof(VkSamplerReductionMode));
7332 *ptr += sizeof(VkSamplerReductionMode);
7333 }
7334
reservedunmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSamplerFilterMinmaxProperties * forUnmarshaling,uint8_t ** ptr)7335 void reservedunmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
7336 VulkanStream* vkStream, VkStructureType rootType,
7337 VkPhysicalDeviceSamplerFilterMinmaxProperties* forUnmarshaling, uint8_t** ptr) {
7338 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7339 *ptr += sizeof(VkStructureType);
7340 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7341 rootType = forUnmarshaling->sType;
7342 }
7343 uint32_t pNext_size;
7344 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7345 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7346 *ptr += sizeof(uint32_t);
7347 forUnmarshaling->pNext = nullptr;
7348 if (pNext_size) {
7349 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7350 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7351 *ptr += sizeof(VkStructureType);
7352 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7353 vkStream->alloc((void**)&forUnmarshaling->pNext,
7354 goldfish_vk_extension_struct_size_with_stream_features(
7355 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7356 *(VkStructureType*)forUnmarshaling->pNext = extType;
7357 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7358 ptr);
7359 }
7360 memcpy((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats, *ptr, sizeof(VkBool32));
7361 *ptr += sizeof(VkBool32);
7362 memcpy((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping, *ptr, sizeof(VkBool32));
7363 *ptr += sizeof(VkBool32);
7364 }
7365
reservedunmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkanMemoryModelFeatures * forUnmarshaling,uint8_t ** ptr)7366 void reservedunmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
7367 VulkanStream* vkStream, VkStructureType rootType,
7368 VkPhysicalDeviceVulkanMemoryModelFeatures* forUnmarshaling, uint8_t** ptr) {
7369 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7370 *ptr += sizeof(VkStructureType);
7371 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7372 rootType = forUnmarshaling->sType;
7373 }
7374 uint32_t pNext_size;
7375 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7376 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7377 *ptr += sizeof(uint32_t);
7378 forUnmarshaling->pNext = nullptr;
7379 if (pNext_size) {
7380 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7381 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7382 *ptr += sizeof(VkStructureType);
7383 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7384 vkStream->alloc((void**)&forUnmarshaling->pNext,
7385 goldfish_vk_extension_struct_size_with_stream_features(
7386 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7387 *(VkStructureType*)forUnmarshaling->pNext = extType;
7388 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7389 ptr);
7390 }
7391 memcpy((VkBool32*)&forUnmarshaling->vulkanMemoryModel, *ptr, sizeof(VkBool32));
7392 *ptr += sizeof(VkBool32);
7393 memcpy((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, *ptr, sizeof(VkBool32));
7394 *ptr += sizeof(VkBool32);
7395 memcpy((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains, *ptr,
7396 sizeof(VkBool32));
7397 *ptr += sizeof(VkBool32);
7398 }
7399
reservedunmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImagelessFramebufferFeatures * forUnmarshaling,uint8_t ** ptr)7400 void reservedunmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
7401 VulkanStream* vkStream, VkStructureType rootType,
7402 VkPhysicalDeviceImagelessFramebufferFeatures* forUnmarshaling, uint8_t** ptr) {
7403 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7404 *ptr += sizeof(VkStructureType);
7405 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7406 rootType = forUnmarshaling->sType;
7407 }
7408 uint32_t pNext_size;
7409 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7410 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7411 *ptr += sizeof(uint32_t);
7412 forUnmarshaling->pNext = nullptr;
7413 if (pNext_size) {
7414 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7415 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7416 *ptr += sizeof(VkStructureType);
7417 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7418 vkStream->alloc((void**)&forUnmarshaling->pNext,
7419 goldfish_vk_extension_struct_size_with_stream_features(
7420 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7421 *(VkStructureType*)forUnmarshaling->pNext = extType;
7422 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7423 ptr);
7424 }
7425 memcpy((VkBool32*)&forUnmarshaling->imagelessFramebuffer, *ptr, sizeof(VkBool32));
7426 *ptr += sizeof(VkBool32);
7427 }
7428
reservedunmarshal_VkFramebufferAttachmentImageInfo(VulkanStream * vkStream,VkStructureType rootType,VkFramebufferAttachmentImageInfo * forUnmarshaling,uint8_t ** ptr)7429 void reservedunmarshal_VkFramebufferAttachmentImageInfo(
7430 VulkanStream* vkStream, VkStructureType rootType,
7431 VkFramebufferAttachmentImageInfo* forUnmarshaling, uint8_t** ptr) {
7432 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7433 *ptr += sizeof(VkStructureType);
7434 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7435 rootType = forUnmarshaling->sType;
7436 }
7437 uint32_t pNext_size;
7438 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7439 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7440 *ptr += sizeof(uint32_t);
7441 forUnmarshaling->pNext = nullptr;
7442 if (pNext_size) {
7443 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7444 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7445 *ptr += sizeof(VkStructureType);
7446 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7447 vkStream->alloc((void**)&forUnmarshaling->pNext,
7448 goldfish_vk_extension_struct_size_with_stream_features(
7449 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7450 *(VkStructureType*)forUnmarshaling->pNext = extType;
7451 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7452 ptr);
7453 }
7454 memcpy((VkImageCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkImageCreateFlags));
7455 *ptr += sizeof(VkImageCreateFlags);
7456 memcpy((VkImageUsageFlags*)&forUnmarshaling->usage, *ptr, sizeof(VkImageUsageFlags));
7457 *ptr += sizeof(VkImageUsageFlags);
7458 memcpy((uint32_t*)&forUnmarshaling->width, *ptr, sizeof(uint32_t));
7459 *ptr += sizeof(uint32_t);
7460 memcpy((uint32_t*)&forUnmarshaling->height, *ptr, sizeof(uint32_t));
7461 *ptr += sizeof(uint32_t);
7462 memcpy((uint32_t*)&forUnmarshaling->layerCount, *ptr, sizeof(uint32_t));
7463 *ptr += sizeof(uint32_t);
7464 memcpy((uint32_t*)&forUnmarshaling->viewFormatCount, *ptr, sizeof(uint32_t));
7465 *ptr += sizeof(uint32_t);
7466 vkStream->alloc((void**)&forUnmarshaling->pViewFormats,
7467 forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
7468 memcpy((VkFormat*)forUnmarshaling->pViewFormats, *ptr,
7469 forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
7470 *ptr += forUnmarshaling->viewFormatCount * sizeof(const VkFormat);
7471 }
7472
reservedunmarshal_VkFramebufferAttachmentsCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkFramebufferAttachmentsCreateInfo * forUnmarshaling,uint8_t ** ptr)7473 void reservedunmarshal_VkFramebufferAttachmentsCreateInfo(
7474 VulkanStream* vkStream, VkStructureType rootType,
7475 VkFramebufferAttachmentsCreateInfo* forUnmarshaling, uint8_t** ptr) {
7476 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7477 *ptr += sizeof(VkStructureType);
7478 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7479 rootType = forUnmarshaling->sType;
7480 }
7481 uint32_t pNext_size;
7482 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7483 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7484 *ptr += sizeof(uint32_t);
7485 forUnmarshaling->pNext = nullptr;
7486 if (pNext_size) {
7487 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7488 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7489 *ptr += sizeof(VkStructureType);
7490 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7491 vkStream->alloc((void**)&forUnmarshaling->pNext,
7492 goldfish_vk_extension_struct_size_with_stream_features(
7493 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7494 *(VkStructureType*)forUnmarshaling->pNext = extType;
7495 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7496 ptr);
7497 }
7498 memcpy((uint32_t*)&forUnmarshaling->attachmentImageInfoCount, *ptr, sizeof(uint32_t));
7499 *ptr += sizeof(uint32_t);
7500 vkStream->alloc(
7501 (void**)&forUnmarshaling->pAttachmentImageInfos,
7502 forUnmarshaling->attachmentImageInfoCount * sizeof(const VkFramebufferAttachmentImageInfo));
7503 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentImageInfoCount; ++i) {
7504 reservedunmarshal_VkFramebufferAttachmentImageInfo(
7505 vkStream, rootType,
7506 (VkFramebufferAttachmentImageInfo*)(forUnmarshaling->pAttachmentImageInfos + i), ptr);
7507 }
7508 }
7509
reservedunmarshal_VkRenderPassAttachmentBeginInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassAttachmentBeginInfo * forUnmarshaling,uint8_t ** ptr)7510 void reservedunmarshal_VkRenderPassAttachmentBeginInfo(
7511 VulkanStream* vkStream, VkStructureType rootType,
7512 VkRenderPassAttachmentBeginInfo* forUnmarshaling, uint8_t** ptr) {
7513 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7514 *ptr += sizeof(VkStructureType);
7515 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7516 rootType = forUnmarshaling->sType;
7517 }
7518 uint32_t pNext_size;
7519 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7520 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7521 *ptr += sizeof(uint32_t);
7522 forUnmarshaling->pNext = nullptr;
7523 if (pNext_size) {
7524 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7525 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7526 *ptr += sizeof(VkStructureType);
7527 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7528 vkStream->alloc((void**)&forUnmarshaling->pNext,
7529 goldfish_vk_extension_struct_size_with_stream_features(
7530 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7531 *(VkStructureType*)forUnmarshaling->pNext = extType;
7532 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7533 ptr);
7534 }
7535 memcpy((uint32_t*)&forUnmarshaling->attachmentCount, *ptr, sizeof(uint32_t));
7536 *ptr += sizeof(uint32_t);
7537 vkStream->alloc((void**)&forUnmarshaling->pAttachments,
7538 forUnmarshaling->attachmentCount * sizeof(const VkImageView));
7539 if (forUnmarshaling->attachmentCount) {
7540 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
7541 *ptr += 8 * forUnmarshaling->attachmentCount;
7542 if (forUnmarshaling) {
7543 for (uint32_t k = 0; k < forUnmarshaling->attachmentCount; ++k) {
7544 uint64_t tmpval;
7545 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
7546 *(((VkImageView*)forUnmarshaling->pAttachments) + k) =
7547 tmpval ? (VkImageView)unbox_VkImageView((VkImageView)tmpval) : VK_NULL_HANDLE;
7548 }
7549 }
7550 }
7551 }
7552
reservedunmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceUniformBufferStandardLayoutFeatures * forUnmarshaling,uint8_t ** ptr)7553 void reservedunmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
7554 VulkanStream* vkStream, VkStructureType rootType,
7555 VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forUnmarshaling, uint8_t** ptr) {
7556 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7557 *ptr += sizeof(VkStructureType);
7558 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7559 rootType = forUnmarshaling->sType;
7560 }
7561 uint32_t pNext_size;
7562 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7563 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7564 *ptr += sizeof(uint32_t);
7565 forUnmarshaling->pNext = nullptr;
7566 if (pNext_size) {
7567 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7568 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7569 *ptr += sizeof(VkStructureType);
7570 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7571 vkStream->alloc((void**)&forUnmarshaling->pNext,
7572 goldfish_vk_extension_struct_size_with_stream_features(
7573 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7574 *(VkStructureType*)forUnmarshaling->pNext = extType;
7575 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7576 ptr);
7577 }
7578 memcpy((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, *ptr, sizeof(VkBool32));
7579 *ptr += sizeof(VkBool32);
7580 }
7581
reservedunmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures * forUnmarshaling,uint8_t ** ptr)7582 void reservedunmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
7583 VulkanStream* vkStream, VkStructureType rootType,
7584 VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forUnmarshaling, uint8_t** ptr) {
7585 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7586 *ptr += sizeof(VkStructureType);
7587 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7588 rootType = forUnmarshaling->sType;
7589 }
7590 uint32_t pNext_size;
7591 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7592 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7593 *ptr += sizeof(uint32_t);
7594 forUnmarshaling->pNext = nullptr;
7595 if (pNext_size) {
7596 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7597 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7598 *ptr += sizeof(VkStructureType);
7599 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7600 vkStream->alloc((void**)&forUnmarshaling->pNext,
7601 goldfish_vk_extension_struct_size_with_stream_features(
7602 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7603 *(VkStructureType*)forUnmarshaling->pNext = extType;
7604 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7605 ptr);
7606 }
7607 memcpy((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, *ptr, sizeof(VkBool32));
7608 *ptr += sizeof(VkBool32);
7609 }
7610
reservedunmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures * forUnmarshaling,uint8_t ** ptr)7611 void reservedunmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
7612 VulkanStream* vkStream, VkStructureType rootType,
7613 VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forUnmarshaling, uint8_t** ptr) {
7614 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7615 *ptr += sizeof(VkStructureType);
7616 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7617 rootType = forUnmarshaling->sType;
7618 }
7619 uint32_t pNext_size;
7620 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7621 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7622 *ptr += sizeof(uint32_t);
7623 forUnmarshaling->pNext = nullptr;
7624 if (pNext_size) {
7625 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7626 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7627 *ptr += sizeof(VkStructureType);
7628 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7629 vkStream->alloc((void**)&forUnmarshaling->pNext,
7630 goldfish_vk_extension_struct_size_with_stream_features(
7631 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7632 *(VkStructureType*)forUnmarshaling->pNext = extType;
7633 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7634 ptr);
7635 }
7636 memcpy((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, *ptr, sizeof(VkBool32));
7637 *ptr += sizeof(VkBool32);
7638 }
7639
reservedunmarshal_VkAttachmentReferenceStencilLayout(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentReferenceStencilLayout * forUnmarshaling,uint8_t ** ptr)7640 void reservedunmarshal_VkAttachmentReferenceStencilLayout(
7641 VulkanStream* vkStream, VkStructureType rootType,
7642 VkAttachmentReferenceStencilLayout* forUnmarshaling, uint8_t** ptr) {
7643 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7644 *ptr += sizeof(VkStructureType);
7645 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7646 rootType = forUnmarshaling->sType;
7647 }
7648 uint32_t pNext_size;
7649 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7650 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7651 *ptr += sizeof(uint32_t);
7652 forUnmarshaling->pNext = nullptr;
7653 if (pNext_size) {
7654 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7655 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7656 *ptr += sizeof(VkStructureType);
7657 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7658 vkStream->alloc((void**)&forUnmarshaling->pNext,
7659 goldfish_vk_extension_struct_size_with_stream_features(
7660 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7661 *(VkStructureType*)forUnmarshaling->pNext = extType;
7662 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7663 ptr);
7664 }
7665 memcpy((VkImageLayout*)&forUnmarshaling->stencilLayout, *ptr, sizeof(VkImageLayout));
7666 *ptr += sizeof(VkImageLayout);
7667 }
7668
reservedunmarshal_VkAttachmentDescriptionStencilLayout(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentDescriptionStencilLayout * forUnmarshaling,uint8_t ** ptr)7669 void reservedunmarshal_VkAttachmentDescriptionStencilLayout(
7670 VulkanStream* vkStream, VkStructureType rootType,
7671 VkAttachmentDescriptionStencilLayout* forUnmarshaling, uint8_t** ptr) {
7672 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7673 *ptr += sizeof(VkStructureType);
7674 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7675 rootType = forUnmarshaling->sType;
7676 }
7677 uint32_t pNext_size;
7678 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7679 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7680 *ptr += sizeof(uint32_t);
7681 forUnmarshaling->pNext = nullptr;
7682 if (pNext_size) {
7683 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7684 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7685 *ptr += sizeof(VkStructureType);
7686 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7687 vkStream->alloc((void**)&forUnmarshaling->pNext,
7688 goldfish_vk_extension_struct_size_with_stream_features(
7689 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7690 *(VkStructureType*)forUnmarshaling->pNext = extType;
7691 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7692 ptr);
7693 }
7694 memcpy((VkImageLayout*)&forUnmarshaling->stencilInitialLayout, *ptr, sizeof(VkImageLayout));
7695 *ptr += sizeof(VkImageLayout);
7696 memcpy((VkImageLayout*)&forUnmarshaling->stencilFinalLayout, *ptr, sizeof(VkImageLayout));
7697 *ptr += sizeof(VkImageLayout);
7698 }
7699
reservedunmarshal_VkPhysicalDeviceHostQueryResetFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceHostQueryResetFeatures * forUnmarshaling,uint8_t ** ptr)7700 void reservedunmarshal_VkPhysicalDeviceHostQueryResetFeatures(
7701 VulkanStream* vkStream, VkStructureType rootType,
7702 VkPhysicalDeviceHostQueryResetFeatures* forUnmarshaling, uint8_t** ptr) {
7703 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7704 *ptr += sizeof(VkStructureType);
7705 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7706 rootType = forUnmarshaling->sType;
7707 }
7708 uint32_t pNext_size;
7709 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7710 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7711 *ptr += sizeof(uint32_t);
7712 forUnmarshaling->pNext = nullptr;
7713 if (pNext_size) {
7714 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7715 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7716 *ptr += sizeof(VkStructureType);
7717 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7718 vkStream->alloc((void**)&forUnmarshaling->pNext,
7719 goldfish_vk_extension_struct_size_with_stream_features(
7720 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7721 *(VkStructureType*)forUnmarshaling->pNext = extType;
7722 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7723 ptr);
7724 }
7725 memcpy((VkBool32*)&forUnmarshaling->hostQueryReset, *ptr, sizeof(VkBool32));
7726 *ptr += sizeof(VkBool32);
7727 }
7728
reservedunmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTimelineSemaphoreFeatures * forUnmarshaling,uint8_t ** ptr)7729 void reservedunmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
7730 VulkanStream* vkStream, VkStructureType rootType,
7731 VkPhysicalDeviceTimelineSemaphoreFeatures* forUnmarshaling, uint8_t** ptr) {
7732 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7733 *ptr += sizeof(VkStructureType);
7734 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7735 rootType = forUnmarshaling->sType;
7736 }
7737 uint32_t pNext_size;
7738 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7739 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7740 *ptr += sizeof(uint32_t);
7741 forUnmarshaling->pNext = nullptr;
7742 if (pNext_size) {
7743 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7744 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7745 *ptr += sizeof(VkStructureType);
7746 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7747 vkStream->alloc((void**)&forUnmarshaling->pNext,
7748 goldfish_vk_extension_struct_size_with_stream_features(
7749 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7750 *(VkStructureType*)forUnmarshaling->pNext = extType;
7751 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7752 ptr);
7753 }
7754 memcpy((VkBool32*)&forUnmarshaling->timelineSemaphore, *ptr, sizeof(VkBool32));
7755 *ptr += sizeof(VkBool32);
7756 }
7757
reservedunmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTimelineSemaphoreProperties * forUnmarshaling,uint8_t ** ptr)7758 void reservedunmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
7759 VulkanStream* vkStream, VkStructureType rootType,
7760 VkPhysicalDeviceTimelineSemaphoreProperties* forUnmarshaling, uint8_t** ptr) {
7761 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7762 *ptr += sizeof(VkStructureType);
7763 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7764 rootType = forUnmarshaling->sType;
7765 }
7766 uint32_t pNext_size;
7767 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7768 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7769 *ptr += sizeof(uint32_t);
7770 forUnmarshaling->pNext = nullptr;
7771 if (pNext_size) {
7772 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7773 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7774 *ptr += sizeof(VkStructureType);
7775 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7776 vkStream->alloc((void**)&forUnmarshaling->pNext,
7777 goldfish_vk_extension_struct_size_with_stream_features(
7778 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7779 *(VkStructureType*)forUnmarshaling->pNext = extType;
7780 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7781 ptr);
7782 }
7783 memcpy((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference, *ptr,
7784 sizeof(uint64_t));
7785 *ptr += sizeof(uint64_t);
7786 }
7787
reservedunmarshal_VkSemaphoreTypeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreTypeCreateInfo * forUnmarshaling,uint8_t ** ptr)7788 void reservedunmarshal_VkSemaphoreTypeCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
7789 VkSemaphoreTypeCreateInfo* forUnmarshaling,
7790 uint8_t** ptr) {
7791 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7792 *ptr += sizeof(VkStructureType);
7793 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7794 rootType = forUnmarshaling->sType;
7795 }
7796 uint32_t pNext_size;
7797 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7798 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7799 *ptr += sizeof(uint32_t);
7800 forUnmarshaling->pNext = nullptr;
7801 if (pNext_size) {
7802 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7803 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7804 *ptr += sizeof(VkStructureType);
7805 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7806 vkStream->alloc((void**)&forUnmarshaling->pNext,
7807 goldfish_vk_extension_struct_size_with_stream_features(
7808 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7809 *(VkStructureType*)forUnmarshaling->pNext = extType;
7810 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7811 ptr);
7812 }
7813 memcpy((VkSemaphoreType*)&forUnmarshaling->semaphoreType, *ptr, sizeof(VkSemaphoreType));
7814 *ptr += sizeof(VkSemaphoreType);
7815 memcpy((uint64_t*)&forUnmarshaling->initialValue, *ptr, sizeof(uint64_t));
7816 *ptr += sizeof(uint64_t);
7817 }
7818
reservedunmarshal_VkTimelineSemaphoreSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkTimelineSemaphoreSubmitInfo * forUnmarshaling,uint8_t ** ptr)7819 void reservedunmarshal_VkTimelineSemaphoreSubmitInfo(VulkanStream* vkStream,
7820 VkStructureType rootType,
7821 VkTimelineSemaphoreSubmitInfo* forUnmarshaling,
7822 uint8_t** ptr) {
7823 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7824 *ptr += sizeof(VkStructureType);
7825 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7826 rootType = forUnmarshaling->sType;
7827 }
7828 uint32_t pNext_size;
7829 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7830 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7831 *ptr += sizeof(uint32_t);
7832 forUnmarshaling->pNext = nullptr;
7833 if (pNext_size) {
7834 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7835 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7836 *ptr += sizeof(VkStructureType);
7837 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7838 vkStream->alloc((void**)&forUnmarshaling->pNext,
7839 goldfish_vk_extension_struct_size_with_stream_features(
7840 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7841 *(VkStructureType*)forUnmarshaling->pNext = extType;
7842 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7843 ptr);
7844 }
7845 memcpy((uint32_t*)&forUnmarshaling->waitSemaphoreValueCount, *ptr, sizeof(uint32_t));
7846 *ptr += sizeof(uint32_t);
7847 // WARNING PTR CHECK
7848 memcpy((uint64_t**)&forUnmarshaling->pWaitSemaphoreValues, (*ptr), 8);
7849 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pWaitSemaphoreValues);
7850 *ptr += 8;
7851 if (forUnmarshaling->pWaitSemaphoreValues) {
7852 vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphoreValues,
7853 forUnmarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
7854 memcpy((uint64_t*)forUnmarshaling->pWaitSemaphoreValues, *ptr,
7855 forUnmarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
7856 *ptr += forUnmarshaling->waitSemaphoreValueCount * sizeof(const uint64_t);
7857 }
7858 memcpy((uint32_t*)&forUnmarshaling->signalSemaphoreValueCount, *ptr, sizeof(uint32_t));
7859 *ptr += sizeof(uint32_t);
7860 // WARNING PTR CHECK
7861 memcpy((uint64_t**)&forUnmarshaling->pSignalSemaphoreValues, (*ptr), 8);
7862 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pSignalSemaphoreValues);
7863 *ptr += 8;
7864 if (forUnmarshaling->pSignalSemaphoreValues) {
7865 vkStream->alloc((void**)&forUnmarshaling->pSignalSemaphoreValues,
7866 forUnmarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
7867 memcpy((uint64_t*)forUnmarshaling->pSignalSemaphoreValues, *ptr,
7868 forUnmarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
7869 *ptr += forUnmarshaling->signalSemaphoreValueCount * sizeof(const uint64_t);
7870 }
7871 }
7872
reservedunmarshal_VkSemaphoreWaitInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreWaitInfo * forUnmarshaling,uint8_t ** ptr)7873 void reservedunmarshal_VkSemaphoreWaitInfo(VulkanStream* vkStream, VkStructureType rootType,
7874 VkSemaphoreWaitInfo* forUnmarshaling, uint8_t** ptr) {
7875 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7876 *ptr += sizeof(VkStructureType);
7877 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7878 rootType = forUnmarshaling->sType;
7879 }
7880 uint32_t pNext_size;
7881 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7882 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7883 *ptr += sizeof(uint32_t);
7884 forUnmarshaling->pNext = nullptr;
7885 if (pNext_size) {
7886 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7887 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7888 *ptr += sizeof(VkStructureType);
7889 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7890 vkStream->alloc((void**)&forUnmarshaling->pNext,
7891 goldfish_vk_extension_struct_size_with_stream_features(
7892 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7893 *(VkStructureType*)forUnmarshaling->pNext = extType;
7894 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7895 ptr);
7896 }
7897 memcpy((VkSemaphoreWaitFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkSemaphoreWaitFlags));
7898 *ptr += sizeof(VkSemaphoreWaitFlags);
7899 memcpy((uint32_t*)&forUnmarshaling->semaphoreCount, *ptr, sizeof(uint32_t));
7900 *ptr += sizeof(uint32_t);
7901 vkStream->alloc((void**)&forUnmarshaling->pSemaphores,
7902 forUnmarshaling->semaphoreCount * sizeof(const VkSemaphore));
7903 if (forUnmarshaling->semaphoreCount) {
7904 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
7905 *ptr += 8 * forUnmarshaling->semaphoreCount;
7906 if (forUnmarshaling) {
7907 for (uint32_t k = 0; k < forUnmarshaling->semaphoreCount; ++k) {
7908 uint64_t tmpval;
7909 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
7910 *(((VkSemaphore*)forUnmarshaling->pSemaphores) + k) =
7911 tmpval ? (VkSemaphore)unbox_VkSemaphore((VkSemaphore)tmpval) : VK_NULL_HANDLE;
7912 }
7913 }
7914 }
7915 vkStream->alloc((void**)&forUnmarshaling->pValues,
7916 forUnmarshaling->semaphoreCount * sizeof(const uint64_t));
7917 memcpy((uint64_t*)forUnmarshaling->pValues, *ptr,
7918 forUnmarshaling->semaphoreCount * sizeof(const uint64_t));
7919 *ptr += forUnmarshaling->semaphoreCount * sizeof(const uint64_t);
7920 }
7921
reservedunmarshal_VkSemaphoreSignalInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreSignalInfo * forUnmarshaling,uint8_t ** ptr)7922 void reservedunmarshal_VkSemaphoreSignalInfo(VulkanStream* vkStream, VkStructureType rootType,
7923 VkSemaphoreSignalInfo* forUnmarshaling,
7924 uint8_t** ptr) {
7925 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7926 *ptr += sizeof(VkStructureType);
7927 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7928 rootType = forUnmarshaling->sType;
7929 }
7930 uint32_t pNext_size;
7931 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7932 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7933 *ptr += sizeof(uint32_t);
7934 forUnmarshaling->pNext = nullptr;
7935 if (pNext_size) {
7936 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7937 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7938 *ptr += sizeof(VkStructureType);
7939 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7940 vkStream->alloc((void**)&forUnmarshaling->pNext,
7941 goldfish_vk_extension_struct_size_with_stream_features(
7942 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7943 *(VkStructureType*)forUnmarshaling->pNext = extType;
7944 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7945 ptr);
7946 }
7947 uint64_t cgen_var_0;
7948 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
7949 *ptr += 1 * 8;
7950 *(VkSemaphore*)&forUnmarshaling->semaphore =
7951 (VkSemaphore)unbox_VkSemaphore((VkSemaphore)(*&cgen_var_0));
7952 memcpy((uint64_t*)&forUnmarshaling->value, *ptr, sizeof(uint64_t));
7953 *ptr += sizeof(uint64_t);
7954 }
7955
reservedunmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceBufferDeviceAddressFeatures * forUnmarshaling,uint8_t ** ptr)7956 void reservedunmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
7957 VulkanStream* vkStream, VkStructureType rootType,
7958 VkPhysicalDeviceBufferDeviceAddressFeatures* forUnmarshaling, uint8_t** ptr) {
7959 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7960 *ptr += sizeof(VkStructureType);
7961 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7962 rootType = forUnmarshaling->sType;
7963 }
7964 uint32_t pNext_size;
7965 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7966 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
7967 *ptr += sizeof(uint32_t);
7968 forUnmarshaling->pNext = nullptr;
7969 if (pNext_size) {
7970 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
7971 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
7972 *ptr += sizeof(VkStructureType);
7973 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
7974 vkStream->alloc((void**)&forUnmarshaling->pNext,
7975 goldfish_vk_extension_struct_size_with_stream_features(
7976 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
7977 *(VkStructureType*)forUnmarshaling->pNext = extType;
7978 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
7979 ptr);
7980 }
7981 memcpy((VkBool32*)&forUnmarshaling->bufferDeviceAddress, *ptr, sizeof(VkBool32));
7982 *ptr += sizeof(VkBool32);
7983 memcpy((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, *ptr, sizeof(VkBool32));
7984 *ptr += sizeof(VkBool32);
7985 memcpy((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, *ptr, sizeof(VkBool32));
7986 *ptr += sizeof(VkBool32);
7987 }
7988
reservedunmarshal_VkBufferDeviceAddressInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferDeviceAddressInfo * forUnmarshaling,uint8_t ** ptr)7989 void reservedunmarshal_VkBufferDeviceAddressInfo(VulkanStream* vkStream, VkStructureType rootType,
7990 VkBufferDeviceAddressInfo* forUnmarshaling,
7991 uint8_t** ptr) {
7992 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
7993 *ptr += sizeof(VkStructureType);
7994 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
7995 rootType = forUnmarshaling->sType;
7996 }
7997 uint32_t pNext_size;
7998 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
7999 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8000 *ptr += sizeof(uint32_t);
8001 forUnmarshaling->pNext = nullptr;
8002 if (pNext_size) {
8003 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8004 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8005 *ptr += sizeof(VkStructureType);
8006 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8007 vkStream->alloc((void**)&forUnmarshaling->pNext,
8008 goldfish_vk_extension_struct_size_with_stream_features(
8009 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8010 *(VkStructureType*)forUnmarshaling->pNext = extType;
8011 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8012 ptr);
8013 }
8014 uint64_t cgen_var_0;
8015 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
8016 *ptr += 1 * 8;
8017 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
8018 }
8019
reservedunmarshal_VkBufferOpaqueCaptureAddressCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkBufferOpaqueCaptureAddressCreateInfo * forUnmarshaling,uint8_t ** ptr)8020 void reservedunmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
8021 VulkanStream* vkStream, VkStructureType rootType,
8022 VkBufferOpaqueCaptureAddressCreateInfo* forUnmarshaling, uint8_t** ptr) {
8023 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8024 *ptr += sizeof(VkStructureType);
8025 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8026 rootType = forUnmarshaling->sType;
8027 }
8028 uint32_t pNext_size;
8029 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8030 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8031 *ptr += sizeof(uint32_t);
8032 forUnmarshaling->pNext = nullptr;
8033 if (pNext_size) {
8034 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8035 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8036 *ptr += sizeof(VkStructureType);
8037 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8038 vkStream->alloc((void**)&forUnmarshaling->pNext,
8039 goldfish_vk_extension_struct_size_with_stream_features(
8040 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8041 *(VkStructureType*)forUnmarshaling->pNext = extType;
8042 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8043 ptr);
8044 }
8045 memcpy((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, *ptr, sizeof(uint64_t));
8046 *ptr += sizeof(uint64_t);
8047 }
8048
reservedunmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(VulkanStream * vkStream,VkStructureType rootType,VkMemoryOpaqueCaptureAddressAllocateInfo * forUnmarshaling,uint8_t ** ptr)8049 void reservedunmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
8050 VulkanStream* vkStream, VkStructureType rootType,
8051 VkMemoryOpaqueCaptureAddressAllocateInfo* forUnmarshaling, uint8_t** ptr) {
8052 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8053 *ptr += sizeof(VkStructureType);
8054 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8055 rootType = forUnmarshaling->sType;
8056 }
8057 uint32_t pNext_size;
8058 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8059 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8060 *ptr += sizeof(uint32_t);
8061 forUnmarshaling->pNext = nullptr;
8062 if (pNext_size) {
8063 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8064 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8065 *ptr += sizeof(VkStructureType);
8066 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8067 vkStream->alloc((void**)&forUnmarshaling->pNext,
8068 goldfish_vk_extension_struct_size_with_stream_features(
8069 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8070 *(VkStructureType*)forUnmarshaling->pNext = extType;
8071 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8072 ptr);
8073 }
8074 memcpy((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, *ptr, sizeof(uint64_t));
8075 *ptr += sizeof(uint64_t);
8076 }
8077
reservedunmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(VulkanStream * vkStream,VkStructureType rootType,VkDeviceMemoryOpaqueCaptureAddressInfo * forUnmarshaling,uint8_t ** ptr)8078 void reservedunmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
8079 VulkanStream* vkStream, VkStructureType rootType,
8080 VkDeviceMemoryOpaqueCaptureAddressInfo* forUnmarshaling, uint8_t** ptr) {
8081 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8082 *ptr += sizeof(VkStructureType);
8083 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8084 rootType = forUnmarshaling->sType;
8085 }
8086 uint32_t pNext_size;
8087 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8088 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8089 *ptr += sizeof(uint32_t);
8090 forUnmarshaling->pNext = nullptr;
8091 if (pNext_size) {
8092 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8093 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8094 *ptr += sizeof(VkStructureType);
8095 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8096 vkStream->alloc((void**)&forUnmarshaling->pNext,
8097 goldfish_vk_extension_struct_size_with_stream_features(
8098 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8099 *(VkStructureType*)forUnmarshaling->pNext = extType;
8100 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8101 ptr);
8102 }
8103 uint64_t cgen_var_0;
8104 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
8105 *ptr += 1 * 8;
8106 *(VkDeviceMemory*)&forUnmarshaling->memory =
8107 (VkDeviceMemory)unbox_VkDeviceMemory((VkDeviceMemory)(*&cgen_var_0));
8108 }
8109
8110 #endif
8111 #ifdef VK_VERSION_1_3
reservedunmarshal_VkPhysicalDeviceVulkan13Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan13Features * forUnmarshaling,uint8_t ** ptr)8112 void reservedunmarshal_VkPhysicalDeviceVulkan13Features(
8113 VulkanStream* vkStream, VkStructureType rootType,
8114 VkPhysicalDeviceVulkan13Features* forUnmarshaling, uint8_t** ptr) {
8115 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8116 *ptr += sizeof(VkStructureType);
8117 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8118 rootType = forUnmarshaling->sType;
8119 }
8120 uint32_t pNext_size;
8121 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8122 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8123 *ptr += sizeof(uint32_t);
8124 forUnmarshaling->pNext = nullptr;
8125 if (pNext_size) {
8126 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8127 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8128 *ptr += sizeof(VkStructureType);
8129 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8130 vkStream->alloc((void**)&forUnmarshaling->pNext,
8131 goldfish_vk_extension_struct_size_with_stream_features(
8132 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8133 *(VkStructureType*)forUnmarshaling->pNext = extType;
8134 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8135 ptr);
8136 }
8137 memcpy((VkBool32*)&forUnmarshaling->robustImageAccess, *ptr, sizeof(VkBool32));
8138 *ptr += sizeof(VkBool32);
8139 memcpy((VkBool32*)&forUnmarshaling->inlineUniformBlock, *ptr, sizeof(VkBool32));
8140 *ptr += sizeof(VkBool32);
8141 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind, *ptr,
8142 sizeof(VkBool32));
8143 *ptr += sizeof(VkBool32);
8144 memcpy((VkBool32*)&forUnmarshaling->pipelineCreationCacheControl, *ptr, sizeof(VkBool32));
8145 *ptr += sizeof(VkBool32);
8146 memcpy((VkBool32*)&forUnmarshaling->privateData, *ptr, sizeof(VkBool32));
8147 *ptr += sizeof(VkBool32);
8148 memcpy((VkBool32*)&forUnmarshaling->shaderDemoteToHelperInvocation, *ptr, sizeof(VkBool32));
8149 *ptr += sizeof(VkBool32);
8150 memcpy((VkBool32*)&forUnmarshaling->shaderTerminateInvocation, *ptr, sizeof(VkBool32));
8151 *ptr += sizeof(VkBool32);
8152 memcpy((VkBool32*)&forUnmarshaling->subgroupSizeControl, *ptr, sizeof(VkBool32));
8153 *ptr += sizeof(VkBool32);
8154 memcpy((VkBool32*)&forUnmarshaling->computeFullSubgroups, *ptr, sizeof(VkBool32));
8155 *ptr += sizeof(VkBool32);
8156 memcpy((VkBool32*)&forUnmarshaling->synchronization2, *ptr, sizeof(VkBool32));
8157 *ptr += sizeof(VkBool32);
8158 memcpy((VkBool32*)&forUnmarshaling->textureCompressionASTC_HDR, *ptr, sizeof(VkBool32));
8159 *ptr += sizeof(VkBool32);
8160 memcpy((VkBool32*)&forUnmarshaling->shaderZeroInitializeWorkgroupMemory, *ptr,
8161 sizeof(VkBool32));
8162 *ptr += sizeof(VkBool32);
8163 memcpy((VkBool32*)&forUnmarshaling->dynamicRendering, *ptr, sizeof(VkBool32));
8164 *ptr += sizeof(VkBool32);
8165 memcpy((VkBool32*)&forUnmarshaling->shaderIntegerDotProduct, *ptr, sizeof(VkBool32));
8166 *ptr += sizeof(VkBool32);
8167 memcpy((VkBool32*)&forUnmarshaling->maintenance4, *ptr, sizeof(VkBool32));
8168 *ptr += sizeof(VkBool32);
8169 }
8170
reservedunmarshal_VkPhysicalDeviceVulkan13Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVulkan13Properties * forUnmarshaling,uint8_t ** ptr)8171 void reservedunmarshal_VkPhysicalDeviceVulkan13Properties(
8172 VulkanStream* vkStream, VkStructureType rootType,
8173 VkPhysicalDeviceVulkan13Properties* forUnmarshaling, uint8_t** ptr) {
8174 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8175 *ptr += sizeof(VkStructureType);
8176 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8177 rootType = forUnmarshaling->sType;
8178 }
8179 uint32_t pNext_size;
8180 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8181 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8182 *ptr += sizeof(uint32_t);
8183 forUnmarshaling->pNext = nullptr;
8184 if (pNext_size) {
8185 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8186 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8187 *ptr += sizeof(VkStructureType);
8188 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8189 vkStream->alloc((void**)&forUnmarshaling->pNext,
8190 goldfish_vk_extension_struct_size_with_stream_features(
8191 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8192 *(VkStructureType*)forUnmarshaling->pNext = extType;
8193 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8194 ptr);
8195 }
8196 memcpy((uint32_t*)&forUnmarshaling->minSubgroupSize, *ptr, sizeof(uint32_t));
8197 *ptr += sizeof(uint32_t);
8198 memcpy((uint32_t*)&forUnmarshaling->maxSubgroupSize, *ptr, sizeof(uint32_t));
8199 *ptr += sizeof(uint32_t);
8200 memcpy((uint32_t*)&forUnmarshaling->maxComputeWorkgroupSubgroups, *ptr, sizeof(uint32_t));
8201 *ptr += sizeof(uint32_t);
8202 memcpy((VkShaderStageFlags*)&forUnmarshaling->requiredSubgroupSizeStages, *ptr,
8203 sizeof(VkShaderStageFlags));
8204 *ptr += sizeof(VkShaderStageFlags);
8205 memcpy((uint32_t*)&forUnmarshaling->maxInlineUniformBlockSize, *ptr, sizeof(uint32_t));
8206 *ptr += sizeof(uint32_t);
8207 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInlineUniformBlocks, *ptr,
8208 sizeof(uint32_t));
8209 *ptr += sizeof(uint32_t);
8210 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
8211 *ptr, sizeof(uint32_t));
8212 *ptr += sizeof(uint32_t);
8213 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetInlineUniformBlocks, *ptr,
8214 sizeof(uint32_t));
8215 *ptr += sizeof(uint32_t);
8216 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks, *ptr,
8217 sizeof(uint32_t));
8218 *ptr += sizeof(uint32_t);
8219 memcpy((uint32_t*)&forUnmarshaling->maxInlineUniformTotalSize, *ptr, sizeof(uint32_t));
8220 *ptr += sizeof(uint32_t);
8221 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct8BitUnsignedAccelerated, *ptr,
8222 sizeof(VkBool32));
8223 *ptr += sizeof(VkBool32);
8224 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct8BitSignedAccelerated, *ptr,
8225 sizeof(VkBool32));
8226 *ptr += sizeof(VkBool32);
8227 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct8BitMixedSignednessAccelerated, *ptr,
8228 sizeof(VkBool32));
8229 *ptr += sizeof(VkBool32);
8230 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated, *ptr,
8231 sizeof(VkBool32));
8232 *ptr += sizeof(VkBool32);
8233 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedSignedAccelerated, *ptr,
8234 sizeof(VkBool32));
8235 *ptr += sizeof(VkBool32);
8236 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
8237 *ptr, sizeof(VkBool32));
8238 *ptr += sizeof(VkBool32);
8239 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct16BitUnsignedAccelerated, *ptr,
8240 sizeof(VkBool32));
8241 *ptr += sizeof(VkBool32);
8242 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct16BitSignedAccelerated, *ptr,
8243 sizeof(VkBool32));
8244 *ptr += sizeof(VkBool32);
8245 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct16BitMixedSignednessAccelerated, *ptr,
8246 sizeof(VkBool32));
8247 *ptr += sizeof(VkBool32);
8248 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct32BitUnsignedAccelerated, *ptr,
8249 sizeof(VkBool32));
8250 *ptr += sizeof(VkBool32);
8251 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct32BitSignedAccelerated, *ptr,
8252 sizeof(VkBool32));
8253 *ptr += sizeof(VkBool32);
8254 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct32BitMixedSignednessAccelerated, *ptr,
8255 sizeof(VkBool32));
8256 *ptr += sizeof(VkBool32);
8257 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct64BitUnsignedAccelerated, *ptr,
8258 sizeof(VkBool32));
8259 *ptr += sizeof(VkBool32);
8260 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct64BitSignedAccelerated, *ptr,
8261 sizeof(VkBool32));
8262 *ptr += sizeof(VkBool32);
8263 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct64BitMixedSignednessAccelerated, *ptr,
8264 sizeof(VkBool32));
8265 *ptr += sizeof(VkBool32);
8266 memcpy(
8267 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
8268 *ptr, sizeof(VkBool32));
8269 *ptr += sizeof(VkBool32);
8270 memcpy(
8271 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
8272 *ptr, sizeof(VkBool32));
8273 *ptr += sizeof(VkBool32);
8274 memcpy((VkBool32*)&forUnmarshaling
8275 ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
8276 *ptr, sizeof(VkBool32));
8277 *ptr += sizeof(VkBool32);
8278 memcpy((VkBool32*)&forUnmarshaling
8279 ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
8280 *ptr, sizeof(VkBool32));
8281 *ptr += sizeof(VkBool32);
8282 memcpy((VkBool32*)&forUnmarshaling
8283 ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
8284 *ptr, sizeof(VkBool32));
8285 *ptr += sizeof(VkBool32);
8286 memcpy((VkBool32*)&forUnmarshaling
8287 ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
8288 *ptr, sizeof(VkBool32));
8289 *ptr += sizeof(VkBool32);
8290 memcpy((VkBool32*)&forUnmarshaling
8291 ->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
8292 *ptr, sizeof(VkBool32));
8293 *ptr += sizeof(VkBool32);
8294 memcpy(
8295 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
8296 *ptr, sizeof(VkBool32));
8297 *ptr += sizeof(VkBool32);
8298 memcpy((VkBool32*)&forUnmarshaling
8299 ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
8300 *ptr, sizeof(VkBool32));
8301 *ptr += sizeof(VkBool32);
8302 memcpy((VkBool32*)&forUnmarshaling
8303 ->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
8304 *ptr, sizeof(VkBool32));
8305 *ptr += sizeof(VkBool32);
8306 memcpy(
8307 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
8308 *ptr, sizeof(VkBool32));
8309 *ptr += sizeof(VkBool32);
8310 memcpy((VkBool32*)&forUnmarshaling
8311 ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
8312 *ptr, sizeof(VkBool32));
8313 *ptr += sizeof(VkBool32);
8314 memcpy((VkBool32*)&forUnmarshaling
8315 ->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
8316 *ptr, sizeof(VkBool32));
8317 *ptr += sizeof(VkBool32);
8318 memcpy(
8319 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
8320 *ptr, sizeof(VkBool32));
8321 *ptr += sizeof(VkBool32);
8322 memcpy((VkBool32*)&forUnmarshaling
8323 ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
8324 *ptr, sizeof(VkBool32));
8325 *ptr += sizeof(VkBool32);
8326 memcpy((VkDeviceSize*)&forUnmarshaling->storageTexelBufferOffsetAlignmentBytes, *ptr,
8327 sizeof(VkDeviceSize));
8328 *ptr += sizeof(VkDeviceSize);
8329 memcpy((VkBool32*)&forUnmarshaling->storageTexelBufferOffsetSingleTexelAlignment, *ptr,
8330 sizeof(VkBool32));
8331 *ptr += sizeof(VkBool32);
8332 memcpy((VkDeviceSize*)&forUnmarshaling->uniformTexelBufferOffsetAlignmentBytes, *ptr,
8333 sizeof(VkDeviceSize));
8334 *ptr += sizeof(VkDeviceSize);
8335 memcpy((VkBool32*)&forUnmarshaling->uniformTexelBufferOffsetSingleTexelAlignment, *ptr,
8336 sizeof(VkBool32));
8337 *ptr += sizeof(VkBool32);
8338 memcpy((VkDeviceSize*)&forUnmarshaling->maxBufferSize, *ptr, sizeof(VkDeviceSize));
8339 *ptr += sizeof(VkDeviceSize);
8340 }
8341
reservedunmarshal_VkPipelineCreationFeedback(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCreationFeedback * forUnmarshaling,uint8_t ** ptr)8342 void reservedunmarshal_VkPipelineCreationFeedback(VulkanStream* vkStream, VkStructureType rootType,
8343 VkPipelineCreationFeedback* forUnmarshaling,
8344 uint8_t** ptr) {
8345 memcpy((VkPipelineCreationFeedbackFlags*)&forUnmarshaling->flags, *ptr,
8346 sizeof(VkPipelineCreationFeedbackFlags));
8347 *ptr += sizeof(VkPipelineCreationFeedbackFlags);
8348 memcpy((uint64_t*)&forUnmarshaling->duration, *ptr, sizeof(uint64_t));
8349 *ptr += sizeof(uint64_t);
8350 }
8351
reservedunmarshal_VkPipelineCreationFeedbackCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCreationFeedbackCreateInfo * forUnmarshaling,uint8_t ** ptr)8352 void reservedunmarshal_VkPipelineCreationFeedbackCreateInfo(
8353 VulkanStream* vkStream, VkStructureType rootType,
8354 VkPipelineCreationFeedbackCreateInfo* forUnmarshaling, uint8_t** ptr) {
8355 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8356 *ptr += sizeof(VkStructureType);
8357 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8358 rootType = forUnmarshaling->sType;
8359 }
8360 uint32_t pNext_size;
8361 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8362 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8363 *ptr += sizeof(uint32_t);
8364 forUnmarshaling->pNext = nullptr;
8365 if (pNext_size) {
8366 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8367 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8368 *ptr += sizeof(VkStructureType);
8369 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8370 vkStream->alloc((void**)&forUnmarshaling->pNext,
8371 goldfish_vk_extension_struct_size_with_stream_features(
8372 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8373 *(VkStructureType*)forUnmarshaling->pNext = extType;
8374 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8375 ptr);
8376 }
8377 vkStream->alloc((void**)&forUnmarshaling->pPipelineCreationFeedback,
8378 sizeof(VkPipelineCreationFeedback));
8379 reservedunmarshal_VkPipelineCreationFeedback(
8380 vkStream, rootType,
8381 (VkPipelineCreationFeedback*)(forUnmarshaling->pPipelineCreationFeedback), ptr);
8382 memcpy((uint32_t*)&forUnmarshaling->pipelineStageCreationFeedbackCount, *ptr, sizeof(uint32_t));
8383 *ptr += sizeof(uint32_t);
8384 vkStream->alloc(
8385 (void**)&forUnmarshaling->pPipelineStageCreationFeedbacks,
8386 forUnmarshaling->pipelineStageCreationFeedbackCount * sizeof(VkPipelineCreationFeedback));
8387 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pipelineStageCreationFeedbackCount; ++i) {
8388 reservedunmarshal_VkPipelineCreationFeedback(
8389 vkStream, rootType,
8390 (VkPipelineCreationFeedback*)(forUnmarshaling->pPipelineStageCreationFeedbacks + i),
8391 ptr);
8392 }
8393 }
8394
reservedunmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderTerminateInvocationFeatures * forUnmarshaling,uint8_t ** ptr)8395 void reservedunmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
8396 VulkanStream* vkStream, VkStructureType rootType,
8397 VkPhysicalDeviceShaderTerminateInvocationFeatures* forUnmarshaling, uint8_t** ptr) {
8398 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8399 *ptr += sizeof(VkStructureType);
8400 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8401 rootType = forUnmarshaling->sType;
8402 }
8403 uint32_t pNext_size;
8404 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8405 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8406 *ptr += sizeof(uint32_t);
8407 forUnmarshaling->pNext = nullptr;
8408 if (pNext_size) {
8409 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8410 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8411 *ptr += sizeof(VkStructureType);
8412 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8413 vkStream->alloc((void**)&forUnmarshaling->pNext,
8414 goldfish_vk_extension_struct_size_with_stream_features(
8415 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8416 *(VkStructureType*)forUnmarshaling->pNext = extType;
8417 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8418 ptr);
8419 }
8420 memcpy((VkBool32*)&forUnmarshaling->shaderTerminateInvocation, *ptr, sizeof(VkBool32));
8421 *ptr += sizeof(VkBool32);
8422 }
8423
reservedunmarshal_VkPhysicalDeviceToolProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceToolProperties * forUnmarshaling,uint8_t ** ptr)8424 void reservedunmarshal_VkPhysicalDeviceToolProperties(
8425 VulkanStream* vkStream, VkStructureType rootType,
8426 VkPhysicalDeviceToolProperties* forUnmarshaling, uint8_t** ptr) {
8427 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8428 *ptr += sizeof(VkStructureType);
8429 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8430 rootType = forUnmarshaling->sType;
8431 }
8432 uint32_t pNext_size;
8433 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8434 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8435 *ptr += sizeof(uint32_t);
8436 forUnmarshaling->pNext = nullptr;
8437 if (pNext_size) {
8438 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8439 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8440 *ptr += sizeof(VkStructureType);
8441 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8442 vkStream->alloc((void**)&forUnmarshaling->pNext,
8443 goldfish_vk_extension_struct_size_with_stream_features(
8444 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8445 *(VkStructureType*)forUnmarshaling->pNext = extType;
8446 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8447 ptr);
8448 }
8449 memcpy((char*)forUnmarshaling->name, *ptr, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8450 *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
8451 memcpy((char*)forUnmarshaling->version, *ptr, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8452 *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
8453 memcpy((VkToolPurposeFlags*)&forUnmarshaling->purposes, *ptr, sizeof(VkToolPurposeFlags));
8454 *ptr += sizeof(VkToolPurposeFlags);
8455 memcpy((char*)forUnmarshaling->description, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
8456 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
8457 memcpy((char*)forUnmarshaling->layer, *ptr, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
8458 *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
8459 }
8460
reservedunmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures * forUnmarshaling,uint8_t ** ptr)8461 void reservedunmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
8462 VulkanStream* vkStream, VkStructureType rootType,
8463 VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* forUnmarshaling, uint8_t** ptr) {
8464 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8465 *ptr += sizeof(VkStructureType);
8466 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8467 rootType = forUnmarshaling->sType;
8468 }
8469 uint32_t pNext_size;
8470 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8471 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8472 *ptr += sizeof(uint32_t);
8473 forUnmarshaling->pNext = nullptr;
8474 if (pNext_size) {
8475 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8476 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8477 *ptr += sizeof(VkStructureType);
8478 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8479 vkStream->alloc((void**)&forUnmarshaling->pNext,
8480 goldfish_vk_extension_struct_size_with_stream_features(
8481 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8482 *(VkStructureType*)forUnmarshaling->pNext = extType;
8483 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8484 ptr);
8485 }
8486 memcpy((VkBool32*)&forUnmarshaling->shaderDemoteToHelperInvocation, *ptr, sizeof(VkBool32));
8487 *ptr += sizeof(VkBool32);
8488 }
8489
reservedunmarshal_VkPhysicalDevicePrivateDataFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePrivateDataFeatures * forUnmarshaling,uint8_t ** ptr)8490 void reservedunmarshal_VkPhysicalDevicePrivateDataFeatures(
8491 VulkanStream* vkStream, VkStructureType rootType,
8492 VkPhysicalDevicePrivateDataFeatures* forUnmarshaling, uint8_t** ptr) {
8493 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8494 *ptr += sizeof(VkStructureType);
8495 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8496 rootType = forUnmarshaling->sType;
8497 }
8498 uint32_t pNext_size;
8499 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8500 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8501 *ptr += sizeof(uint32_t);
8502 forUnmarshaling->pNext = nullptr;
8503 if (pNext_size) {
8504 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8505 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8506 *ptr += sizeof(VkStructureType);
8507 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8508 vkStream->alloc((void**)&forUnmarshaling->pNext,
8509 goldfish_vk_extension_struct_size_with_stream_features(
8510 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8511 *(VkStructureType*)forUnmarshaling->pNext = extType;
8512 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8513 ptr);
8514 }
8515 memcpy((VkBool32*)&forUnmarshaling->privateData, *ptr, sizeof(VkBool32));
8516 *ptr += sizeof(VkBool32);
8517 }
8518
reservedunmarshal_VkDevicePrivateDataCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDevicePrivateDataCreateInfo * forUnmarshaling,uint8_t ** ptr)8519 void reservedunmarshal_VkDevicePrivateDataCreateInfo(VulkanStream* vkStream,
8520 VkStructureType rootType,
8521 VkDevicePrivateDataCreateInfo* forUnmarshaling,
8522 uint8_t** ptr) {
8523 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8524 *ptr += sizeof(VkStructureType);
8525 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8526 rootType = forUnmarshaling->sType;
8527 }
8528 uint32_t pNext_size;
8529 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8530 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8531 *ptr += sizeof(uint32_t);
8532 forUnmarshaling->pNext = nullptr;
8533 if (pNext_size) {
8534 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8535 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8536 *ptr += sizeof(VkStructureType);
8537 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8538 vkStream->alloc((void**)&forUnmarshaling->pNext,
8539 goldfish_vk_extension_struct_size_with_stream_features(
8540 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8541 *(VkStructureType*)forUnmarshaling->pNext = extType;
8542 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8543 ptr);
8544 }
8545 memcpy((uint32_t*)&forUnmarshaling->privateDataSlotRequestCount, *ptr, sizeof(uint32_t));
8546 *ptr += sizeof(uint32_t);
8547 }
8548
reservedunmarshal_VkPrivateDataSlotCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPrivateDataSlotCreateInfo * forUnmarshaling,uint8_t ** ptr)8549 void reservedunmarshal_VkPrivateDataSlotCreateInfo(VulkanStream* vkStream, VkStructureType rootType,
8550 VkPrivateDataSlotCreateInfo* forUnmarshaling,
8551 uint8_t** ptr) {
8552 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8553 *ptr += sizeof(VkStructureType);
8554 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8555 rootType = forUnmarshaling->sType;
8556 }
8557 uint32_t pNext_size;
8558 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8559 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8560 *ptr += sizeof(uint32_t);
8561 forUnmarshaling->pNext = nullptr;
8562 if (pNext_size) {
8563 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8564 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8565 *ptr += sizeof(VkStructureType);
8566 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8567 vkStream->alloc((void**)&forUnmarshaling->pNext,
8568 goldfish_vk_extension_struct_size_with_stream_features(
8569 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8570 *(VkStructureType*)forUnmarshaling->pNext = extType;
8571 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8572 ptr);
8573 }
8574 memcpy((VkPrivateDataSlotCreateFlags*)&forUnmarshaling->flags, *ptr,
8575 sizeof(VkPrivateDataSlotCreateFlags));
8576 *ptr += sizeof(VkPrivateDataSlotCreateFlags);
8577 }
8578
reservedunmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineCreationCacheControlFeatures * forUnmarshaling,uint8_t ** ptr)8579 void reservedunmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
8580 VulkanStream* vkStream, VkStructureType rootType,
8581 VkPhysicalDevicePipelineCreationCacheControlFeatures* forUnmarshaling, uint8_t** ptr) {
8582 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8583 *ptr += sizeof(VkStructureType);
8584 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8585 rootType = forUnmarshaling->sType;
8586 }
8587 uint32_t pNext_size;
8588 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8589 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8590 *ptr += sizeof(uint32_t);
8591 forUnmarshaling->pNext = nullptr;
8592 if (pNext_size) {
8593 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8594 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8595 *ptr += sizeof(VkStructureType);
8596 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8597 vkStream->alloc((void**)&forUnmarshaling->pNext,
8598 goldfish_vk_extension_struct_size_with_stream_features(
8599 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8600 *(VkStructureType*)forUnmarshaling->pNext = extType;
8601 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8602 ptr);
8603 }
8604 memcpy((VkBool32*)&forUnmarshaling->pipelineCreationCacheControl, *ptr, sizeof(VkBool32));
8605 *ptr += sizeof(VkBool32);
8606 }
8607
reservedunmarshal_VkMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,VkMemoryBarrier2 * forUnmarshaling,uint8_t ** ptr)8608 void reservedunmarshal_VkMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
8609 VkMemoryBarrier2* forUnmarshaling, uint8_t** ptr) {
8610 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8611 *ptr += sizeof(VkStructureType);
8612 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8613 rootType = forUnmarshaling->sType;
8614 }
8615 uint32_t pNext_size;
8616 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8617 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8618 *ptr += sizeof(uint32_t);
8619 forUnmarshaling->pNext = nullptr;
8620 if (pNext_size) {
8621 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8622 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8623 *ptr += sizeof(VkStructureType);
8624 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8625 vkStream->alloc((void**)&forUnmarshaling->pNext,
8626 goldfish_vk_extension_struct_size_with_stream_features(
8627 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8628 *(VkStructureType*)forUnmarshaling->pNext = extType;
8629 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8630 ptr);
8631 }
8632 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask, *ptr,
8633 sizeof(VkPipelineStageFlags2));
8634 *ptr += sizeof(VkPipelineStageFlags2);
8635 memcpy((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags2));
8636 *ptr += sizeof(VkAccessFlags2);
8637 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask, *ptr,
8638 sizeof(VkPipelineStageFlags2));
8639 *ptr += sizeof(VkPipelineStageFlags2);
8640 memcpy((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags2));
8641 *ptr += sizeof(VkAccessFlags2);
8642 }
8643
reservedunmarshal_VkBufferMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,VkBufferMemoryBarrier2 * forUnmarshaling,uint8_t ** ptr)8644 void reservedunmarshal_VkBufferMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
8645 VkBufferMemoryBarrier2* forUnmarshaling,
8646 uint8_t** ptr) {
8647 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8648 *ptr += sizeof(VkStructureType);
8649 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8650 rootType = forUnmarshaling->sType;
8651 }
8652 uint32_t pNext_size;
8653 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8654 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8655 *ptr += sizeof(uint32_t);
8656 forUnmarshaling->pNext = nullptr;
8657 if (pNext_size) {
8658 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8659 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8660 *ptr += sizeof(VkStructureType);
8661 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8662 vkStream->alloc((void**)&forUnmarshaling->pNext,
8663 goldfish_vk_extension_struct_size_with_stream_features(
8664 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8665 *(VkStructureType*)forUnmarshaling->pNext = extType;
8666 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8667 ptr);
8668 }
8669 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask, *ptr,
8670 sizeof(VkPipelineStageFlags2));
8671 *ptr += sizeof(VkPipelineStageFlags2);
8672 memcpy((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags2));
8673 *ptr += sizeof(VkAccessFlags2);
8674 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask, *ptr,
8675 sizeof(VkPipelineStageFlags2));
8676 *ptr += sizeof(VkPipelineStageFlags2);
8677 memcpy((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags2));
8678 *ptr += sizeof(VkAccessFlags2);
8679 memcpy((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, *ptr, sizeof(uint32_t));
8680 *ptr += sizeof(uint32_t);
8681 memcpy((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, *ptr, sizeof(uint32_t));
8682 *ptr += sizeof(uint32_t);
8683 uint64_t cgen_var_0;
8684 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
8685 *ptr += 1 * 8;
8686 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
8687 memcpy((VkDeviceSize*)&forUnmarshaling->offset, *ptr, sizeof(VkDeviceSize));
8688 *ptr += sizeof(VkDeviceSize);
8689 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
8690 *ptr += sizeof(VkDeviceSize);
8691 }
8692
reservedunmarshal_VkImageMemoryBarrier2(VulkanStream * vkStream,VkStructureType rootType,VkImageMemoryBarrier2 * forUnmarshaling,uint8_t ** ptr)8693 void reservedunmarshal_VkImageMemoryBarrier2(VulkanStream* vkStream, VkStructureType rootType,
8694 VkImageMemoryBarrier2* forUnmarshaling,
8695 uint8_t** ptr) {
8696 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8697 *ptr += sizeof(VkStructureType);
8698 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8699 rootType = forUnmarshaling->sType;
8700 }
8701 uint32_t pNext_size;
8702 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8703 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8704 *ptr += sizeof(uint32_t);
8705 forUnmarshaling->pNext = nullptr;
8706 if (pNext_size) {
8707 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8708 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8709 *ptr += sizeof(VkStructureType);
8710 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8711 vkStream->alloc((void**)&forUnmarshaling->pNext,
8712 goldfish_vk_extension_struct_size_with_stream_features(
8713 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8714 *(VkStructureType*)forUnmarshaling->pNext = extType;
8715 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8716 ptr);
8717 }
8718 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->srcStageMask, *ptr,
8719 sizeof(VkPipelineStageFlags2));
8720 *ptr += sizeof(VkPipelineStageFlags2);
8721 memcpy((VkAccessFlags2*)&forUnmarshaling->srcAccessMask, *ptr, sizeof(VkAccessFlags2));
8722 *ptr += sizeof(VkAccessFlags2);
8723 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->dstStageMask, *ptr,
8724 sizeof(VkPipelineStageFlags2));
8725 *ptr += sizeof(VkPipelineStageFlags2);
8726 memcpy((VkAccessFlags2*)&forUnmarshaling->dstAccessMask, *ptr, sizeof(VkAccessFlags2));
8727 *ptr += sizeof(VkAccessFlags2);
8728 memcpy((VkImageLayout*)&forUnmarshaling->oldLayout, *ptr, sizeof(VkImageLayout));
8729 *ptr += sizeof(VkImageLayout);
8730 memcpy((VkImageLayout*)&forUnmarshaling->newLayout, *ptr, sizeof(VkImageLayout));
8731 *ptr += sizeof(VkImageLayout);
8732 memcpy((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, *ptr, sizeof(uint32_t));
8733 *ptr += sizeof(uint32_t);
8734 memcpy((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, *ptr, sizeof(uint32_t));
8735 *ptr += sizeof(uint32_t);
8736 uint64_t cgen_var_0;
8737 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
8738 *ptr += 1 * 8;
8739 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
8740 reservedunmarshal_VkImageSubresourceRange(
8741 vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange), ptr);
8742 }
8743
reservedunmarshal_VkDependencyInfo(VulkanStream * vkStream,VkStructureType rootType,VkDependencyInfo * forUnmarshaling,uint8_t ** ptr)8744 void reservedunmarshal_VkDependencyInfo(VulkanStream* vkStream, VkStructureType rootType,
8745 VkDependencyInfo* forUnmarshaling, uint8_t** ptr) {
8746 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8747 *ptr += sizeof(VkStructureType);
8748 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8749 rootType = forUnmarshaling->sType;
8750 }
8751 uint32_t pNext_size;
8752 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8753 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8754 *ptr += sizeof(uint32_t);
8755 forUnmarshaling->pNext = nullptr;
8756 if (pNext_size) {
8757 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8758 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8759 *ptr += sizeof(VkStructureType);
8760 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8761 vkStream->alloc((void**)&forUnmarshaling->pNext,
8762 goldfish_vk_extension_struct_size_with_stream_features(
8763 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8764 *(VkStructureType*)forUnmarshaling->pNext = extType;
8765 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8766 ptr);
8767 }
8768 memcpy((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, *ptr, sizeof(VkDependencyFlags));
8769 *ptr += sizeof(VkDependencyFlags);
8770 memcpy((uint32_t*)&forUnmarshaling->memoryBarrierCount, *ptr, sizeof(uint32_t));
8771 *ptr += sizeof(uint32_t);
8772 vkStream->alloc((void**)&forUnmarshaling->pMemoryBarriers,
8773 forUnmarshaling->memoryBarrierCount * sizeof(const VkMemoryBarrier2));
8774 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->memoryBarrierCount; ++i) {
8775 reservedunmarshal_VkMemoryBarrier2(
8776 vkStream, rootType, (VkMemoryBarrier2*)(forUnmarshaling->pMemoryBarriers + i), ptr);
8777 }
8778 memcpy((uint32_t*)&forUnmarshaling->bufferMemoryBarrierCount, *ptr, sizeof(uint32_t));
8779 *ptr += sizeof(uint32_t);
8780 vkStream->alloc(
8781 (void**)&forUnmarshaling->pBufferMemoryBarriers,
8782 forUnmarshaling->bufferMemoryBarrierCount * sizeof(const VkBufferMemoryBarrier2));
8783 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferMemoryBarrierCount; ++i) {
8784 reservedunmarshal_VkBufferMemoryBarrier2(
8785 vkStream, rootType,
8786 (VkBufferMemoryBarrier2*)(forUnmarshaling->pBufferMemoryBarriers + i), ptr);
8787 }
8788 memcpy((uint32_t*)&forUnmarshaling->imageMemoryBarrierCount, *ptr, sizeof(uint32_t));
8789 *ptr += sizeof(uint32_t);
8790 vkStream->alloc((void**)&forUnmarshaling->pImageMemoryBarriers,
8791 forUnmarshaling->imageMemoryBarrierCount * sizeof(const VkImageMemoryBarrier2));
8792 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageMemoryBarrierCount; ++i) {
8793 reservedunmarshal_VkImageMemoryBarrier2(
8794 vkStream, rootType, (VkImageMemoryBarrier2*)(forUnmarshaling->pImageMemoryBarriers + i),
8795 ptr);
8796 }
8797 }
8798
reservedunmarshal_VkSemaphoreSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreSubmitInfo * forUnmarshaling,uint8_t ** ptr)8799 void reservedunmarshal_VkSemaphoreSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
8800 VkSemaphoreSubmitInfo* forUnmarshaling,
8801 uint8_t** ptr) {
8802 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8803 *ptr += sizeof(VkStructureType);
8804 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8805 rootType = forUnmarshaling->sType;
8806 }
8807 uint32_t pNext_size;
8808 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8809 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8810 *ptr += sizeof(uint32_t);
8811 forUnmarshaling->pNext = nullptr;
8812 if (pNext_size) {
8813 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8814 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8815 *ptr += sizeof(VkStructureType);
8816 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8817 vkStream->alloc((void**)&forUnmarshaling->pNext,
8818 goldfish_vk_extension_struct_size_with_stream_features(
8819 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8820 *(VkStructureType*)forUnmarshaling->pNext = extType;
8821 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8822 ptr);
8823 }
8824 uint64_t cgen_var_0;
8825 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
8826 *ptr += 1 * 8;
8827 *(VkSemaphore*)&forUnmarshaling->semaphore =
8828 (VkSemaphore)unbox_VkSemaphore((VkSemaphore)(*&cgen_var_0));
8829 memcpy((uint64_t*)&forUnmarshaling->value, *ptr, sizeof(uint64_t));
8830 *ptr += sizeof(uint64_t);
8831 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->stageMask, *ptr,
8832 sizeof(VkPipelineStageFlags2));
8833 *ptr += sizeof(VkPipelineStageFlags2);
8834 memcpy((uint32_t*)&forUnmarshaling->deviceIndex, *ptr, sizeof(uint32_t));
8835 *ptr += sizeof(uint32_t);
8836 }
8837
reservedunmarshal_VkCommandBufferSubmitInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferSubmitInfo * forUnmarshaling,uint8_t ** ptr)8838 void reservedunmarshal_VkCommandBufferSubmitInfo(VulkanStream* vkStream, VkStructureType rootType,
8839 VkCommandBufferSubmitInfo* forUnmarshaling,
8840 uint8_t** ptr) {
8841 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8842 *ptr += sizeof(VkStructureType);
8843 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8844 rootType = forUnmarshaling->sType;
8845 }
8846 uint32_t pNext_size;
8847 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8848 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8849 *ptr += sizeof(uint32_t);
8850 forUnmarshaling->pNext = nullptr;
8851 if (pNext_size) {
8852 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8853 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8854 *ptr += sizeof(VkStructureType);
8855 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8856 vkStream->alloc((void**)&forUnmarshaling->pNext,
8857 goldfish_vk_extension_struct_size_with_stream_features(
8858 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8859 *(VkStructureType*)forUnmarshaling->pNext = extType;
8860 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8861 ptr);
8862 }
8863 uint64_t cgen_var_0;
8864 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
8865 *ptr += 1 * 8;
8866 *(VkCommandBuffer*)&forUnmarshaling->commandBuffer =
8867 (VkCommandBuffer)unbox_VkCommandBuffer((VkCommandBuffer)(*&cgen_var_0));
8868 memcpy((uint32_t*)&forUnmarshaling->deviceMask, *ptr, sizeof(uint32_t));
8869 *ptr += sizeof(uint32_t);
8870 }
8871
reservedunmarshal_VkSubmitInfo2(VulkanStream * vkStream,VkStructureType rootType,VkSubmitInfo2 * forUnmarshaling,uint8_t ** ptr)8872 void reservedunmarshal_VkSubmitInfo2(VulkanStream* vkStream, VkStructureType rootType,
8873 VkSubmitInfo2* forUnmarshaling, uint8_t** ptr) {
8874 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8875 *ptr += sizeof(VkStructureType);
8876 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8877 rootType = forUnmarshaling->sType;
8878 }
8879 uint32_t pNext_size;
8880 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8881 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8882 *ptr += sizeof(uint32_t);
8883 forUnmarshaling->pNext = nullptr;
8884 if (pNext_size) {
8885 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8886 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8887 *ptr += sizeof(VkStructureType);
8888 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8889 vkStream->alloc((void**)&forUnmarshaling->pNext,
8890 goldfish_vk_extension_struct_size_with_stream_features(
8891 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8892 *(VkStructureType*)forUnmarshaling->pNext = extType;
8893 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8894 ptr);
8895 }
8896 memcpy((VkSubmitFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkSubmitFlags));
8897 *ptr += sizeof(VkSubmitFlags);
8898 memcpy((uint32_t*)&forUnmarshaling->waitSemaphoreInfoCount, *ptr, sizeof(uint32_t));
8899 *ptr += sizeof(uint32_t);
8900 vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphoreInfos,
8901 forUnmarshaling->waitSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfo));
8902 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->waitSemaphoreInfoCount; ++i) {
8903 reservedunmarshal_VkSemaphoreSubmitInfo(
8904 vkStream, rootType, (VkSemaphoreSubmitInfo*)(forUnmarshaling->pWaitSemaphoreInfos + i),
8905 ptr);
8906 }
8907 memcpy((uint32_t*)&forUnmarshaling->commandBufferInfoCount, *ptr, sizeof(uint32_t));
8908 *ptr += sizeof(uint32_t);
8909 vkStream->alloc(
8910 (void**)&forUnmarshaling->pCommandBufferInfos,
8911 forUnmarshaling->commandBufferInfoCount * sizeof(const VkCommandBufferSubmitInfo));
8912 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->commandBufferInfoCount; ++i) {
8913 reservedunmarshal_VkCommandBufferSubmitInfo(
8914 vkStream, rootType,
8915 (VkCommandBufferSubmitInfo*)(forUnmarshaling->pCommandBufferInfos + i), ptr);
8916 }
8917 memcpy((uint32_t*)&forUnmarshaling->signalSemaphoreInfoCount, *ptr, sizeof(uint32_t));
8918 *ptr += sizeof(uint32_t);
8919 vkStream->alloc(
8920 (void**)&forUnmarshaling->pSignalSemaphoreInfos,
8921 forUnmarshaling->signalSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfo));
8922 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->signalSemaphoreInfoCount; ++i) {
8923 reservedunmarshal_VkSemaphoreSubmitInfo(
8924 vkStream, rootType,
8925 (VkSemaphoreSubmitInfo*)(forUnmarshaling->pSignalSemaphoreInfos + i), ptr);
8926 }
8927 }
8928
reservedunmarshal_VkPhysicalDeviceSynchronization2Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSynchronization2Features * forUnmarshaling,uint8_t ** ptr)8929 void reservedunmarshal_VkPhysicalDeviceSynchronization2Features(
8930 VulkanStream* vkStream, VkStructureType rootType,
8931 VkPhysicalDeviceSynchronization2Features* forUnmarshaling, uint8_t** ptr) {
8932 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8933 *ptr += sizeof(VkStructureType);
8934 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8935 rootType = forUnmarshaling->sType;
8936 }
8937 uint32_t pNext_size;
8938 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8939 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8940 *ptr += sizeof(uint32_t);
8941 forUnmarshaling->pNext = nullptr;
8942 if (pNext_size) {
8943 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8944 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8945 *ptr += sizeof(VkStructureType);
8946 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8947 vkStream->alloc((void**)&forUnmarshaling->pNext,
8948 goldfish_vk_extension_struct_size_with_stream_features(
8949 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8950 *(VkStructureType*)forUnmarshaling->pNext = extType;
8951 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8952 ptr);
8953 }
8954 memcpy((VkBool32*)&forUnmarshaling->synchronization2, *ptr, sizeof(VkBool32));
8955 *ptr += sizeof(VkBool32);
8956 }
8957
reservedunmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures * forUnmarshaling,uint8_t ** ptr)8958 void reservedunmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
8959 VulkanStream* vkStream, VkStructureType rootType,
8960 VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* forUnmarshaling, uint8_t** ptr) {
8961 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8962 *ptr += sizeof(VkStructureType);
8963 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8964 rootType = forUnmarshaling->sType;
8965 }
8966 uint32_t pNext_size;
8967 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8968 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8969 *ptr += sizeof(uint32_t);
8970 forUnmarshaling->pNext = nullptr;
8971 if (pNext_size) {
8972 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
8973 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
8974 *ptr += sizeof(VkStructureType);
8975 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
8976 vkStream->alloc((void**)&forUnmarshaling->pNext,
8977 goldfish_vk_extension_struct_size_with_stream_features(
8978 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
8979 *(VkStructureType*)forUnmarshaling->pNext = extType;
8980 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
8981 ptr);
8982 }
8983 memcpy((VkBool32*)&forUnmarshaling->shaderZeroInitializeWorkgroupMemory, *ptr,
8984 sizeof(VkBool32));
8985 *ptr += sizeof(VkBool32);
8986 }
8987
reservedunmarshal_VkPhysicalDeviceImageRobustnessFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageRobustnessFeatures * forUnmarshaling,uint8_t ** ptr)8988 void reservedunmarshal_VkPhysicalDeviceImageRobustnessFeatures(
8989 VulkanStream* vkStream, VkStructureType rootType,
8990 VkPhysicalDeviceImageRobustnessFeatures* forUnmarshaling, uint8_t** ptr) {
8991 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
8992 *ptr += sizeof(VkStructureType);
8993 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
8994 rootType = forUnmarshaling->sType;
8995 }
8996 uint32_t pNext_size;
8997 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
8998 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
8999 *ptr += sizeof(uint32_t);
9000 forUnmarshaling->pNext = nullptr;
9001 if (pNext_size) {
9002 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9003 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9004 *ptr += sizeof(VkStructureType);
9005 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9006 vkStream->alloc((void**)&forUnmarshaling->pNext,
9007 goldfish_vk_extension_struct_size_with_stream_features(
9008 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9009 *(VkStructureType*)forUnmarshaling->pNext = extType;
9010 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9011 ptr);
9012 }
9013 memcpy((VkBool32*)&forUnmarshaling->robustImageAccess, *ptr, sizeof(VkBool32));
9014 *ptr += sizeof(VkBool32);
9015 }
9016
reservedunmarshal_VkBufferCopy2(VulkanStream * vkStream,VkStructureType rootType,VkBufferCopy2 * forUnmarshaling,uint8_t ** ptr)9017 void reservedunmarshal_VkBufferCopy2(VulkanStream* vkStream, VkStructureType rootType,
9018 VkBufferCopy2* forUnmarshaling, uint8_t** ptr) {
9019 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9020 *ptr += sizeof(VkStructureType);
9021 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9022 rootType = forUnmarshaling->sType;
9023 }
9024 uint32_t pNext_size;
9025 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9026 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9027 *ptr += sizeof(uint32_t);
9028 forUnmarshaling->pNext = nullptr;
9029 if (pNext_size) {
9030 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9031 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9032 *ptr += sizeof(VkStructureType);
9033 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9034 vkStream->alloc((void**)&forUnmarshaling->pNext,
9035 goldfish_vk_extension_struct_size_with_stream_features(
9036 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9037 *(VkStructureType*)forUnmarshaling->pNext = extType;
9038 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9039 ptr);
9040 }
9041 memcpy((VkDeviceSize*)&forUnmarshaling->srcOffset, *ptr, sizeof(VkDeviceSize));
9042 *ptr += sizeof(VkDeviceSize);
9043 memcpy((VkDeviceSize*)&forUnmarshaling->dstOffset, *ptr, sizeof(VkDeviceSize));
9044 *ptr += sizeof(VkDeviceSize);
9045 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
9046 *ptr += sizeof(VkDeviceSize);
9047 }
9048
reservedunmarshal_VkCopyBufferInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyBufferInfo2 * forUnmarshaling,uint8_t ** ptr)9049 void reservedunmarshal_VkCopyBufferInfo2(VulkanStream* vkStream, VkStructureType rootType,
9050 VkCopyBufferInfo2* forUnmarshaling, uint8_t** ptr) {
9051 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9052 *ptr += sizeof(VkStructureType);
9053 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9054 rootType = forUnmarshaling->sType;
9055 }
9056 uint32_t pNext_size;
9057 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9058 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9059 *ptr += sizeof(uint32_t);
9060 forUnmarshaling->pNext = nullptr;
9061 if (pNext_size) {
9062 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9063 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9064 *ptr += sizeof(VkStructureType);
9065 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9066 vkStream->alloc((void**)&forUnmarshaling->pNext,
9067 goldfish_vk_extension_struct_size_with_stream_features(
9068 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9069 *(VkStructureType*)forUnmarshaling->pNext = extType;
9070 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9071 ptr);
9072 }
9073 uint64_t cgen_var_0;
9074 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
9075 *ptr += 1 * 8;
9076 *(VkBuffer*)&forUnmarshaling->srcBuffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
9077 uint64_t cgen_var_1;
9078 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
9079 *ptr += 1 * 8;
9080 *(VkBuffer*)&forUnmarshaling->dstBuffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_1));
9081 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
9082 *ptr += sizeof(uint32_t);
9083 vkStream->alloc((void**)&forUnmarshaling->pRegions,
9084 forUnmarshaling->regionCount * sizeof(const VkBufferCopy2));
9085 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9086 reservedunmarshal_VkBufferCopy2(vkStream, rootType,
9087 (VkBufferCopy2*)(forUnmarshaling->pRegions + i), ptr);
9088 }
9089 }
9090
reservedunmarshal_VkImageCopy2(VulkanStream * vkStream,VkStructureType rootType,VkImageCopy2 * forUnmarshaling,uint8_t ** ptr)9091 void reservedunmarshal_VkImageCopy2(VulkanStream* vkStream, VkStructureType rootType,
9092 VkImageCopy2* forUnmarshaling, uint8_t** ptr) {
9093 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9094 *ptr += sizeof(VkStructureType);
9095 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9096 rootType = forUnmarshaling->sType;
9097 }
9098 uint32_t pNext_size;
9099 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9100 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9101 *ptr += sizeof(uint32_t);
9102 forUnmarshaling->pNext = nullptr;
9103 if (pNext_size) {
9104 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9105 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9106 *ptr += sizeof(VkStructureType);
9107 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9108 vkStream->alloc((void**)&forUnmarshaling->pNext,
9109 goldfish_vk_extension_struct_size_with_stream_features(
9110 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9111 *(VkStructureType*)forUnmarshaling->pNext = extType;
9112 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9113 ptr);
9114 }
9115 reservedunmarshal_VkImageSubresourceLayers(
9116 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource), ptr);
9117 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset),
9118 ptr);
9119 reservedunmarshal_VkImageSubresourceLayers(
9120 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource), ptr);
9121 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset),
9122 ptr);
9123 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent), ptr);
9124 }
9125
reservedunmarshal_VkCopyImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyImageInfo2 * forUnmarshaling,uint8_t ** ptr)9126 void reservedunmarshal_VkCopyImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
9127 VkCopyImageInfo2* forUnmarshaling, uint8_t** ptr) {
9128 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9129 *ptr += sizeof(VkStructureType);
9130 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9131 rootType = forUnmarshaling->sType;
9132 }
9133 uint32_t pNext_size;
9134 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9135 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9136 *ptr += sizeof(uint32_t);
9137 forUnmarshaling->pNext = nullptr;
9138 if (pNext_size) {
9139 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9140 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9141 *ptr += sizeof(VkStructureType);
9142 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9143 vkStream->alloc((void**)&forUnmarshaling->pNext,
9144 goldfish_vk_extension_struct_size_with_stream_features(
9145 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9146 *(VkStructureType*)forUnmarshaling->pNext = extType;
9147 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9148 ptr);
9149 }
9150 uint64_t cgen_var_0;
9151 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
9152 *ptr += 1 * 8;
9153 *(VkImage*)&forUnmarshaling->srcImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
9154 memcpy((VkImageLayout*)&forUnmarshaling->srcImageLayout, *ptr, sizeof(VkImageLayout));
9155 *ptr += sizeof(VkImageLayout);
9156 uint64_t cgen_var_1;
9157 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
9158 *ptr += 1 * 8;
9159 *(VkImage*)&forUnmarshaling->dstImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_1));
9160 memcpy((VkImageLayout*)&forUnmarshaling->dstImageLayout, *ptr, sizeof(VkImageLayout));
9161 *ptr += sizeof(VkImageLayout);
9162 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
9163 *ptr += sizeof(uint32_t);
9164 vkStream->alloc((void**)&forUnmarshaling->pRegions,
9165 forUnmarshaling->regionCount * sizeof(const VkImageCopy2));
9166 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9167 reservedunmarshal_VkImageCopy2(vkStream, rootType,
9168 (VkImageCopy2*)(forUnmarshaling->pRegions + i), ptr);
9169 }
9170 }
9171
reservedunmarshal_VkBufferImageCopy2(VulkanStream * vkStream,VkStructureType rootType,VkBufferImageCopy2 * forUnmarshaling,uint8_t ** ptr)9172 void reservedunmarshal_VkBufferImageCopy2(VulkanStream* vkStream, VkStructureType rootType,
9173 VkBufferImageCopy2* forUnmarshaling, uint8_t** ptr) {
9174 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9175 *ptr += sizeof(VkStructureType);
9176 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9177 rootType = forUnmarshaling->sType;
9178 }
9179 uint32_t pNext_size;
9180 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9181 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9182 *ptr += sizeof(uint32_t);
9183 forUnmarshaling->pNext = nullptr;
9184 if (pNext_size) {
9185 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9186 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9187 *ptr += sizeof(VkStructureType);
9188 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9189 vkStream->alloc((void**)&forUnmarshaling->pNext,
9190 goldfish_vk_extension_struct_size_with_stream_features(
9191 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9192 *(VkStructureType*)forUnmarshaling->pNext = extType;
9193 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9194 ptr);
9195 }
9196 memcpy((VkDeviceSize*)&forUnmarshaling->bufferOffset, *ptr, sizeof(VkDeviceSize));
9197 *ptr += sizeof(VkDeviceSize);
9198 memcpy((uint32_t*)&forUnmarshaling->bufferRowLength, *ptr, sizeof(uint32_t));
9199 *ptr += sizeof(uint32_t);
9200 memcpy((uint32_t*)&forUnmarshaling->bufferImageHeight, *ptr, sizeof(uint32_t));
9201 *ptr += sizeof(uint32_t);
9202 reservedunmarshal_VkImageSubresourceLayers(
9203 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource), ptr);
9204 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset),
9205 ptr);
9206 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent),
9207 ptr);
9208 }
9209
reservedunmarshal_VkCopyBufferToImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyBufferToImageInfo2 * forUnmarshaling,uint8_t ** ptr)9210 void reservedunmarshal_VkCopyBufferToImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
9211 VkCopyBufferToImageInfo2* forUnmarshaling,
9212 uint8_t** ptr) {
9213 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9214 *ptr += sizeof(VkStructureType);
9215 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9216 rootType = forUnmarshaling->sType;
9217 }
9218 uint32_t pNext_size;
9219 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9220 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9221 *ptr += sizeof(uint32_t);
9222 forUnmarshaling->pNext = nullptr;
9223 if (pNext_size) {
9224 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9225 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9226 *ptr += sizeof(VkStructureType);
9227 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9228 vkStream->alloc((void**)&forUnmarshaling->pNext,
9229 goldfish_vk_extension_struct_size_with_stream_features(
9230 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9231 *(VkStructureType*)forUnmarshaling->pNext = extType;
9232 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9233 ptr);
9234 }
9235 uint64_t cgen_var_0;
9236 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
9237 *ptr += 1 * 8;
9238 *(VkBuffer*)&forUnmarshaling->srcBuffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_0));
9239 uint64_t cgen_var_1;
9240 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
9241 *ptr += 1 * 8;
9242 *(VkImage*)&forUnmarshaling->dstImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_1));
9243 memcpy((VkImageLayout*)&forUnmarshaling->dstImageLayout, *ptr, sizeof(VkImageLayout));
9244 *ptr += sizeof(VkImageLayout);
9245 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
9246 *ptr += sizeof(uint32_t);
9247 vkStream->alloc((void**)&forUnmarshaling->pRegions,
9248 forUnmarshaling->regionCount * sizeof(const VkBufferImageCopy2));
9249 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9250 reservedunmarshal_VkBufferImageCopy2(
9251 vkStream, rootType, (VkBufferImageCopy2*)(forUnmarshaling->pRegions + i), ptr);
9252 }
9253 }
9254
reservedunmarshal_VkCopyImageToBufferInfo2(VulkanStream * vkStream,VkStructureType rootType,VkCopyImageToBufferInfo2 * forUnmarshaling,uint8_t ** ptr)9255 void reservedunmarshal_VkCopyImageToBufferInfo2(VulkanStream* vkStream, VkStructureType rootType,
9256 VkCopyImageToBufferInfo2* forUnmarshaling,
9257 uint8_t** ptr) {
9258 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9259 *ptr += sizeof(VkStructureType);
9260 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9261 rootType = forUnmarshaling->sType;
9262 }
9263 uint32_t pNext_size;
9264 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9265 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9266 *ptr += sizeof(uint32_t);
9267 forUnmarshaling->pNext = nullptr;
9268 if (pNext_size) {
9269 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9270 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9271 *ptr += sizeof(VkStructureType);
9272 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9273 vkStream->alloc((void**)&forUnmarshaling->pNext,
9274 goldfish_vk_extension_struct_size_with_stream_features(
9275 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9276 *(VkStructureType*)forUnmarshaling->pNext = extType;
9277 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9278 ptr);
9279 }
9280 uint64_t cgen_var_0;
9281 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
9282 *ptr += 1 * 8;
9283 *(VkImage*)&forUnmarshaling->srcImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
9284 memcpy((VkImageLayout*)&forUnmarshaling->srcImageLayout, *ptr, sizeof(VkImageLayout));
9285 *ptr += sizeof(VkImageLayout);
9286 uint64_t cgen_var_1;
9287 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
9288 *ptr += 1 * 8;
9289 *(VkBuffer*)&forUnmarshaling->dstBuffer = (VkBuffer)unbox_VkBuffer((VkBuffer)(*&cgen_var_1));
9290 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
9291 *ptr += sizeof(uint32_t);
9292 vkStream->alloc((void**)&forUnmarshaling->pRegions,
9293 forUnmarshaling->regionCount * sizeof(const VkBufferImageCopy2));
9294 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9295 reservedunmarshal_VkBufferImageCopy2(
9296 vkStream, rootType, (VkBufferImageCopy2*)(forUnmarshaling->pRegions + i), ptr);
9297 }
9298 }
9299
reservedunmarshal_VkImageBlit2(VulkanStream * vkStream,VkStructureType rootType,VkImageBlit2 * forUnmarshaling,uint8_t ** ptr)9300 void reservedunmarshal_VkImageBlit2(VulkanStream* vkStream, VkStructureType rootType,
9301 VkImageBlit2* forUnmarshaling, uint8_t** ptr) {
9302 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9303 *ptr += sizeof(VkStructureType);
9304 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9305 rootType = forUnmarshaling->sType;
9306 }
9307 uint32_t pNext_size;
9308 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9309 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9310 *ptr += sizeof(uint32_t);
9311 forUnmarshaling->pNext = nullptr;
9312 if (pNext_size) {
9313 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9314 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9315 *ptr += sizeof(VkStructureType);
9316 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9317 vkStream->alloc((void**)&forUnmarshaling->pNext,
9318 goldfish_vk_extension_struct_size_with_stream_features(
9319 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9320 *(VkStructureType*)forUnmarshaling->pNext = extType;
9321 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9322 ptr);
9323 }
9324 reservedunmarshal_VkImageSubresourceLayers(
9325 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource), ptr);
9326 for (uint32_t i = 0; i < (uint32_t)2; ++i) {
9327 reservedunmarshal_VkOffset3D(vkStream, rootType,
9328 (VkOffset3D*)(forUnmarshaling->srcOffsets + i), ptr);
9329 }
9330 reservedunmarshal_VkImageSubresourceLayers(
9331 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource), ptr);
9332 for (uint32_t i = 0; i < (uint32_t)2; ++i) {
9333 reservedunmarshal_VkOffset3D(vkStream, rootType,
9334 (VkOffset3D*)(forUnmarshaling->dstOffsets + i), ptr);
9335 }
9336 }
9337
reservedunmarshal_VkBlitImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkBlitImageInfo2 * forUnmarshaling,uint8_t ** ptr)9338 void reservedunmarshal_VkBlitImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
9339 VkBlitImageInfo2* forUnmarshaling, uint8_t** ptr) {
9340 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9341 *ptr += sizeof(VkStructureType);
9342 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9343 rootType = forUnmarshaling->sType;
9344 }
9345 uint32_t pNext_size;
9346 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9347 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9348 *ptr += sizeof(uint32_t);
9349 forUnmarshaling->pNext = nullptr;
9350 if (pNext_size) {
9351 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9352 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9353 *ptr += sizeof(VkStructureType);
9354 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9355 vkStream->alloc((void**)&forUnmarshaling->pNext,
9356 goldfish_vk_extension_struct_size_with_stream_features(
9357 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9358 *(VkStructureType*)forUnmarshaling->pNext = extType;
9359 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9360 ptr);
9361 }
9362 uint64_t cgen_var_0;
9363 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
9364 *ptr += 1 * 8;
9365 *(VkImage*)&forUnmarshaling->srcImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
9366 memcpy((VkImageLayout*)&forUnmarshaling->srcImageLayout, *ptr, sizeof(VkImageLayout));
9367 *ptr += sizeof(VkImageLayout);
9368 uint64_t cgen_var_1;
9369 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
9370 *ptr += 1 * 8;
9371 *(VkImage*)&forUnmarshaling->dstImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_1));
9372 memcpy((VkImageLayout*)&forUnmarshaling->dstImageLayout, *ptr, sizeof(VkImageLayout));
9373 *ptr += sizeof(VkImageLayout);
9374 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
9375 *ptr += sizeof(uint32_t);
9376 vkStream->alloc((void**)&forUnmarshaling->pRegions,
9377 forUnmarshaling->regionCount * sizeof(const VkImageBlit2));
9378 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9379 reservedunmarshal_VkImageBlit2(vkStream, rootType,
9380 (VkImageBlit2*)(forUnmarshaling->pRegions + i), ptr);
9381 }
9382 memcpy((VkFilter*)&forUnmarshaling->filter, *ptr, sizeof(VkFilter));
9383 *ptr += sizeof(VkFilter);
9384 }
9385
reservedunmarshal_VkImageResolve2(VulkanStream * vkStream,VkStructureType rootType,VkImageResolve2 * forUnmarshaling,uint8_t ** ptr)9386 void reservedunmarshal_VkImageResolve2(VulkanStream* vkStream, VkStructureType rootType,
9387 VkImageResolve2* forUnmarshaling, uint8_t** ptr) {
9388 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9389 *ptr += sizeof(VkStructureType);
9390 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9391 rootType = forUnmarshaling->sType;
9392 }
9393 uint32_t pNext_size;
9394 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9395 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9396 *ptr += sizeof(uint32_t);
9397 forUnmarshaling->pNext = nullptr;
9398 if (pNext_size) {
9399 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9400 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9401 *ptr += sizeof(VkStructureType);
9402 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9403 vkStream->alloc((void**)&forUnmarshaling->pNext,
9404 goldfish_vk_extension_struct_size_with_stream_features(
9405 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9406 *(VkStructureType*)forUnmarshaling->pNext = extType;
9407 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9408 ptr);
9409 }
9410 reservedunmarshal_VkImageSubresourceLayers(
9411 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource), ptr);
9412 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->srcOffset),
9413 ptr);
9414 reservedunmarshal_VkImageSubresourceLayers(
9415 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource), ptr);
9416 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->dstOffset),
9417 ptr);
9418 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->extent), ptr);
9419 }
9420
reservedunmarshal_VkResolveImageInfo2(VulkanStream * vkStream,VkStructureType rootType,VkResolveImageInfo2 * forUnmarshaling,uint8_t ** ptr)9421 void reservedunmarshal_VkResolveImageInfo2(VulkanStream* vkStream, VkStructureType rootType,
9422 VkResolveImageInfo2* forUnmarshaling, uint8_t** ptr) {
9423 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9424 *ptr += sizeof(VkStructureType);
9425 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9426 rootType = forUnmarshaling->sType;
9427 }
9428 uint32_t pNext_size;
9429 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9430 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9431 *ptr += sizeof(uint32_t);
9432 forUnmarshaling->pNext = nullptr;
9433 if (pNext_size) {
9434 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9435 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9436 *ptr += sizeof(VkStructureType);
9437 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9438 vkStream->alloc((void**)&forUnmarshaling->pNext,
9439 goldfish_vk_extension_struct_size_with_stream_features(
9440 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9441 *(VkStructureType*)forUnmarshaling->pNext = extType;
9442 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9443 ptr);
9444 }
9445 uint64_t cgen_var_0;
9446 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
9447 *ptr += 1 * 8;
9448 *(VkImage*)&forUnmarshaling->srcImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
9449 memcpy((VkImageLayout*)&forUnmarshaling->srcImageLayout, *ptr, sizeof(VkImageLayout));
9450 *ptr += sizeof(VkImageLayout);
9451 uint64_t cgen_var_1;
9452 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
9453 *ptr += 1 * 8;
9454 *(VkImage*)&forUnmarshaling->dstImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_1));
9455 memcpy((VkImageLayout*)&forUnmarshaling->dstImageLayout, *ptr, sizeof(VkImageLayout));
9456 *ptr += sizeof(VkImageLayout);
9457 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
9458 *ptr += sizeof(uint32_t);
9459 vkStream->alloc((void**)&forUnmarshaling->pRegions,
9460 forUnmarshaling->regionCount * sizeof(const VkImageResolve2));
9461 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
9462 reservedunmarshal_VkImageResolve2(vkStream, rootType,
9463 (VkImageResolve2*)(forUnmarshaling->pRegions + i), ptr);
9464 }
9465 }
9466
reservedunmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupSizeControlFeatures * forUnmarshaling,uint8_t ** ptr)9467 void reservedunmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
9468 VulkanStream* vkStream, VkStructureType rootType,
9469 VkPhysicalDeviceSubgroupSizeControlFeatures* forUnmarshaling, uint8_t** ptr) {
9470 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9471 *ptr += sizeof(VkStructureType);
9472 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9473 rootType = forUnmarshaling->sType;
9474 }
9475 uint32_t pNext_size;
9476 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9477 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9478 *ptr += sizeof(uint32_t);
9479 forUnmarshaling->pNext = nullptr;
9480 if (pNext_size) {
9481 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9482 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9483 *ptr += sizeof(VkStructureType);
9484 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9485 vkStream->alloc((void**)&forUnmarshaling->pNext,
9486 goldfish_vk_extension_struct_size_with_stream_features(
9487 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9488 *(VkStructureType*)forUnmarshaling->pNext = extType;
9489 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9490 ptr);
9491 }
9492 memcpy((VkBool32*)&forUnmarshaling->subgroupSizeControl, *ptr, sizeof(VkBool32));
9493 *ptr += sizeof(VkBool32);
9494 memcpy((VkBool32*)&forUnmarshaling->computeFullSubgroups, *ptr, sizeof(VkBool32));
9495 *ptr += sizeof(VkBool32);
9496 }
9497
reservedunmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSubgroupSizeControlProperties * forUnmarshaling,uint8_t ** ptr)9498 void reservedunmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
9499 VulkanStream* vkStream, VkStructureType rootType,
9500 VkPhysicalDeviceSubgroupSizeControlProperties* forUnmarshaling, uint8_t** ptr) {
9501 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9502 *ptr += sizeof(VkStructureType);
9503 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9504 rootType = forUnmarshaling->sType;
9505 }
9506 uint32_t pNext_size;
9507 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9508 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9509 *ptr += sizeof(uint32_t);
9510 forUnmarshaling->pNext = nullptr;
9511 if (pNext_size) {
9512 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9513 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9514 *ptr += sizeof(VkStructureType);
9515 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9516 vkStream->alloc((void**)&forUnmarshaling->pNext,
9517 goldfish_vk_extension_struct_size_with_stream_features(
9518 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9519 *(VkStructureType*)forUnmarshaling->pNext = extType;
9520 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9521 ptr);
9522 }
9523 memcpy((uint32_t*)&forUnmarshaling->minSubgroupSize, *ptr, sizeof(uint32_t));
9524 *ptr += sizeof(uint32_t);
9525 memcpy((uint32_t*)&forUnmarshaling->maxSubgroupSize, *ptr, sizeof(uint32_t));
9526 *ptr += sizeof(uint32_t);
9527 memcpy((uint32_t*)&forUnmarshaling->maxComputeWorkgroupSubgroups, *ptr, sizeof(uint32_t));
9528 *ptr += sizeof(uint32_t);
9529 memcpy((VkShaderStageFlags*)&forUnmarshaling->requiredSubgroupSizeStages, *ptr,
9530 sizeof(VkShaderStageFlags));
9531 *ptr += sizeof(VkShaderStageFlags);
9532 }
9533
reservedunmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineShaderStageRequiredSubgroupSizeCreateInfo * forUnmarshaling,uint8_t ** ptr)9534 void reservedunmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
9535 VulkanStream* vkStream, VkStructureType rootType,
9536 VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* forUnmarshaling, uint8_t** ptr) {
9537 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9538 *ptr += sizeof(VkStructureType);
9539 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9540 rootType = forUnmarshaling->sType;
9541 }
9542 uint32_t pNext_size;
9543 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9544 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9545 *ptr += sizeof(uint32_t);
9546 forUnmarshaling->pNext = nullptr;
9547 if (pNext_size) {
9548 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9549 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9550 *ptr += sizeof(VkStructureType);
9551 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9552 vkStream->alloc((void**)&forUnmarshaling->pNext,
9553 goldfish_vk_extension_struct_size_with_stream_features(
9554 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9555 *(VkStructureType*)forUnmarshaling->pNext = extType;
9556 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9557 ptr);
9558 }
9559 memcpy((uint32_t*)&forUnmarshaling->requiredSubgroupSize, *ptr, sizeof(uint32_t));
9560 *ptr += sizeof(uint32_t);
9561 }
9562
reservedunmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceInlineUniformBlockFeatures * forUnmarshaling,uint8_t ** ptr)9563 void reservedunmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
9564 VulkanStream* vkStream, VkStructureType rootType,
9565 VkPhysicalDeviceInlineUniformBlockFeatures* forUnmarshaling, uint8_t** ptr) {
9566 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9567 *ptr += sizeof(VkStructureType);
9568 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9569 rootType = forUnmarshaling->sType;
9570 }
9571 uint32_t pNext_size;
9572 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9573 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9574 *ptr += sizeof(uint32_t);
9575 forUnmarshaling->pNext = nullptr;
9576 if (pNext_size) {
9577 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9578 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9579 *ptr += sizeof(VkStructureType);
9580 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9581 vkStream->alloc((void**)&forUnmarshaling->pNext,
9582 goldfish_vk_extension_struct_size_with_stream_features(
9583 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9584 *(VkStructureType*)forUnmarshaling->pNext = extType;
9585 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9586 ptr);
9587 }
9588 memcpy((VkBool32*)&forUnmarshaling->inlineUniformBlock, *ptr, sizeof(VkBool32));
9589 *ptr += sizeof(VkBool32);
9590 memcpy((VkBool32*)&forUnmarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind, *ptr,
9591 sizeof(VkBool32));
9592 *ptr += sizeof(VkBool32);
9593 }
9594
reservedunmarshal_VkPhysicalDeviceInlineUniformBlockProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceInlineUniformBlockProperties * forUnmarshaling,uint8_t ** ptr)9595 void reservedunmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
9596 VulkanStream* vkStream, VkStructureType rootType,
9597 VkPhysicalDeviceInlineUniformBlockProperties* forUnmarshaling, uint8_t** ptr) {
9598 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9599 *ptr += sizeof(VkStructureType);
9600 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9601 rootType = forUnmarshaling->sType;
9602 }
9603 uint32_t pNext_size;
9604 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9605 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9606 *ptr += sizeof(uint32_t);
9607 forUnmarshaling->pNext = nullptr;
9608 if (pNext_size) {
9609 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9610 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9611 *ptr += sizeof(VkStructureType);
9612 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9613 vkStream->alloc((void**)&forUnmarshaling->pNext,
9614 goldfish_vk_extension_struct_size_with_stream_features(
9615 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9616 *(VkStructureType*)forUnmarshaling->pNext = extType;
9617 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9618 ptr);
9619 }
9620 memcpy((uint32_t*)&forUnmarshaling->maxInlineUniformBlockSize, *ptr, sizeof(uint32_t));
9621 *ptr += sizeof(uint32_t);
9622 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInlineUniformBlocks, *ptr,
9623 sizeof(uint32_t));
9624 *ptr += sizeof(uint32_t);
9625 memcpy((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
9626 *ptr, sizeof(uint32_t));
9627 *ptr += sizeof(uint32_t);
9628 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetInlineUniformBlocks, *ptr,
9629 sizeof(uint32_t));
9630 *ptr += sizeof(uint32_t);
9631 memcpy((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks, *ptr,
9632 sizeof(uint32_t));
9633 *ptr += sizeof(uint32_t);
9634 }
9635
reservedunmarshal_VkWriteDescriptorSetInlineUniformBlock(VulkanStream * vkStream,VkStructureType rootType,VkWriteDescriptorSetInlineUniformBlock * forUnmarshaling,uint8_t ** ptr)9636 void reservedunmarshal_VkWriteDescriptorSetInlineUniformBlock(
9637 VulkanStream* vkStream, VkStructureType rootType,
9638 VkWriteDescriptorSetInlineUniformBlock* forUnmarshaling, uint8_t** ptr) {
9639 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9640 *ptr += sizeof(VkStructureType);
9641 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9642 rootType = forUnmarshaling->sType;
9643 }
9644 uint32_t pNext_size;
9645 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9646 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9647 *ptr += sizeof(uint32_t);
9648 forUnmarshaling->pNext = nullptr;
9649 if (pNext_size) {
9650 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9651 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9652 *ptr += sizeof(VkStructureType);
9653 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9654 vkStream->alloc((void**)&forUnmarshaling->pNext,
9655 goldfish_vk_extension_struct_size_with_stream_features(
9656 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9657 *(VkStructureType*)forUnmarshaling->pNext = extType;
9658 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9659 ptr);
9660 }
9661 memcpy((uint32_t*)&forUnmarshaling->dataSize, *ptr, sizeof(uint32_t));
9662 *ptr += sizeof(uint32_t);
9663 vkStream->alloc((void**)&forUnmarshaling->pData,
9664 forUnmarshaling->dataSize * sizeof(const uint8_t));
9665 memcpy((void*)forUnmarshaling->pData, *ptr, forUnmarshaling->dataSize * sizeof(const uint8_t));
9666 *ptr += forUnmarshaling->dataSize * sizeof(const uint8_t);
9667 }
9668
reservedunmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkDescriptorPoolInlineUniformBlockCreateInfo * forUnmarshaling,uint8_t ** ptr)9669 void reservedunmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
9670 VulkanStream* vkStream, VkStructureType rootType,
9671 VkDescriptorPoolInlineUniformBlockCreateInfo* forUnmarshaling, uint8_t** ptr) {
9672 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9673 *ptr += sizeof(VkStructureType);
9674 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9675 rootType = forUnmarshaling->sType;
9676 }
9677 uint32_t pNext_size;
9678 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9679 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9680 *ptr += sizeof(uint32_t);
9681 forUnmarshaling->pNext = nullptr;
9682 if (pNext_size) {
9683 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9684 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9685 *ptr += sizeof(VkStructureType);
9686 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9687 vkStream->alloc((void**)&forUnmarshaling->pNext,
9688 goldfish_vk_extension_struct_size_with_stream_features(
9689 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9690 *(VkStructureType*)forUnmarshaling->pNext = extType;
9691 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9692 ptr);
9693 }
9694 memcpy((uint32_t*)&forUnmarshaling->maxInlineUniformBlockBindings, *ptr, sizeof(uint32_t));
9695 *ptr += sizeof(uint32_t);
9696 }
9697
reservedunmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTextureCompressionASTCHDRFeatures * forUnmarshaling,uint8_t ** ptr)9698 void reservedunmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
9699 VulkanStream* vkStream, VkStructureType rootType,
9700 VkPhysicalDeviceTextureCompressionASTCHDRFeatures* forUnmarshaling, uint8_t** ptr) {
9701 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9702 *ptr += sizeof(VkStructureType);
9703 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9704 rootType = forUnmarshaling->sType;
9705 }
9706 uint32_t pNext_size;
9707 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9708 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9709 *ptr += sizeof(uint32_t);
9710 forUnmarshaling->pNext = nullptr;
9711 if (pNext_size) {
9712 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9713 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9714 *ptr += sizeof(VkStructureType);
9715 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9716 vkStream->alloc((void**)&forUnmarshaling->pNext,
9717 goldfish_vk_extension_struct_size_with_stream_features(
9718 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9719 *(VkStructureType*)forUnmarshaling->pNext = extType;
9720 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9721 ptr);
9722 }
9723 memcpy((VkBool32*)&forUnmarshaling->textureCompressionASTC_HDR, *ptr, sizeof(VkBool32));
9724 *ptr += sizeof(VkBool32);
9725 }
9726
reservedunmarshal_VkRenderingAttachmentInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderingAttachmentInfo * forUnmarshaling,uint8_t ** ptr)9727 void reservedunmarshal_VkRenderingAttachmentInfo(VulkanStream* vkStream, VkStructureType rootType,
9728 VkRenderingAttachmentInfo* forUnmarshaling,
9729 uint8_t** ptr) {
9730 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9731 *ptr += sizeof(VkStructureType);
9732 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9733 rootType = forUnmarshaling->sType;
9734 }
9735 uint32_t pNext_size;
9736 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9737 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9738 *ptr += sizeof(uint32_t);
9739 forUnmarshaling->pNext = nullptr;
9740 if (pNext_size) {
9741 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9742 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9743 *ptr += sizeof(VkStructureType);
9744 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9745 vkStream->alloc((void**)&forUnmarshaling->pNext,
9746 goldfish_vk_extension_struct_size_with_stream_features(
9747 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9748 *(VkStructureType*)forUnmarshaling->pNext = extType;
9749 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9750 ptr);
9751 }
9752 uint64_t cgen_var_0;
9753 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
9754 *ptr += 1 * 8;
9755 *(VkImageView*)&forUnmarshaling->imageView =
9756 (VkImageView)unbox_VkImageView((VkImageView)(*&cgen_var_0));
9757 memcpy((VkImageLayout*)&forUnmarshaling->imageLayout, *ptr, sizeof(VkImageLayout));
9758 *ptr += sizeof(VkImageLayout);
9759 memcpy((VkResolveModeFlagBits*)&forUnmarshaling->resolveMode, *ptr,
9760 sizeof(VkResolveModeFlagBits));
9761 *ptr += sizeof(VkResolveModeFlagBits);
9762 uint64_t cgen_var_1;
9763 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
9764 *ptr += 1 * 8;
9765 *(VkImageView*)&forUnmarshaling->resolveImageView =
9766 (VkImageView)unbox_VkImageView((VkImageView)(*&cgen_var_1));
9767 memcpy((VkImageLayout*)&forUnmarshaling->resolveImageLayout, *ptr, sizeof(VkImageLayout));
9768 *ptr += sizeof(VkImageLayout);
9769 memcpy((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, *ptr, sizeof(VkAttachmentLoadOp));
9770 *ptr += sizeof(VkAttachmentLoadOp);
9771 memcpy((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, *ptr, sizeof(VkAttachmentStoreOp));
9772 *ptr += sizeof(VkAttachmentStoreOp);
9773 reservedunmarshal_VkClearValue(vkStream, rootType,
9774 (VkClearValue*)(&forUnmarshaling->clearValue), ptr);
9775 }
9776
reservedunmarshal_VkRenderingInfo(VulkanStream * vkStream,VkStructureType rootType,VkRenderingInfo * forUnmarshaling,uint8_t ** ptr)9777 void reservedunmarshal_VkRenderingInfo(VulkanStream* vkStream, VkStructureType rootType,
9778 VkRenderingInfo* forUnmarshaling, uint8_t** ptr) {
9779 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9780 *ptr += sizeof(VkStructureType);
9781 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9782 rootType = forUnmarshaling->sType;
9783 }
9784 uint32_t pNext_size;
9785 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9786 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9787 *ptr += sizeof(uint32_t);
9788 forUnmarshaling->pNext = nullptr;
9789 if (pNext_size) {
9790 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9791 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9792 *ptr += sizeof(VkStructureType);
9793 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9794 vkStream->alloc((void**)&forUnmarshaling->pNext,
9795 goldfish_vk_extension_struct_size_with_stream_features(
9796 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9797 *(VkStructureType*)forUnmarshaling->pNext = extType;
9798 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9799 ptr);
9800 }
9801 memcpy((VkRenderingFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkRenderingFlags));
9802 *ptr += sizeof(VkRenderingFlags);
9803 reservedunmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea), ptr);
9804 memcpy((uint32_t*)&forUnmarshaling->layerCount, *ptr, sizeof(uint32_t));
9805 *ptr += sizeof(uint32_t);
9806 memcpy((uint32_t*)&forUnmarshaling->viewMask, *ptr, sizeof(uint32_t));
9807 *ptr += sizeof(uint32_t);
9808 memcpy((uint32_t*)&forUnmarshaling->colorAttachmentCount, *ptr, sizeof(uint32_t));
9809 *ptr += sizeof(uint32_t);
9810 vkStream->alloc(
9811 (void**)&forUnmarshaling->pColorAttachments,
9812 forUnmarshaling->colorAttachmentCount * sizeof(const VkRenderingAttachmentInfo));
9813 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i) {
9814 reservedunmarshal_VkRenderingAttachmentInfo(
9815 vkStream, rootType,
9816 (VkRenderingAttachmentInfo*)(forUnmarshaling->pColorAttachments + i), ptr);
9817 }
9818 // WARNING PTR CHECK
9819 memcpy((VkRenderingAttachmentInfo**)&forUnmarshaling->pDepthAttachment, (*ptr), 8);
9820 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDepthAttachment);
9821 *ptr += 8;
9822 if (forUnmarshaling->pDepthAttachment) {
9823 vkStream->alloc((void**)&forUnmarshaling->pDepthAttachment,
9824 sizeof(const VkRenderingAttachmentInfo));
9825 reservedunmarshal_VkRenderingAttachmentInfo(
9826 vkStream, rootType, (VkRenderingAttachmentInfo*)(forUnmarshaling->pDepthAttachment),
9827 ptr);
9828 }
9829 // WARNING PTR CHECK
9830 memcpy((VkRenderingAttachmentInfo**)&forUnmarshaling->pStencilAttachment, (*ptr), 8);
9831 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pStencilAttachment);
9832 *ptr += 8;
9833 if (forUnmarshaling->pStencilAttachment) {
9834 vkStream->alloc((void**)&forUnmarshaling->pStencilAttachment,
9835 sizeof(const VkRenderingAttachmentInfo));
9836 reservedunmarshal_VkRenderingAttachmentInfo(
9837 vkStream, rootType, (VkRenderingAttachmentInfo*)(forUnmarshaling->pStencilAttachment),
9838 ptr);
9839 }
9840 }
9841
reservedunmarshal_VkPipelineRenderingCreateInfo(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRenderingCreateInfo * forUnmarshaling,uint8_t ** ptr)9842 void reservedunmarshal_VkPipelineRenderingCreateInfo(VulkanStream* vkStream,
9843 VkStructureType rootType,
9844 VkPipelineRenderingCreateInfo* forUnmarshaling,
9845 uint8_t** ptr) {
9846 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9847 *ptr += sizeof(VkStructureType);
9848 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9849 rootType = forUnmarshaling->sType;
9850 }
9851 uint32_t pNext_size;
9852 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9853 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9854 *ptr += sizeof(uint32_t);
9855 forUnmarshaling->pNext = nullptr;
9856 if (pNext_size) {
9857 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9858 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9859 *ptr += sizeof(VkStructureType);
9860 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9861 vkStream->alloc((void**)&forUnmarshaling->pNext,
9862 goldfish_vk_extension_struct_size_with_stream_features(
9863 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9864 *(VkStructureType*)forUnmarshaling->pNext = extType;
9865 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9866 ptr);
9867 }
9868 memcpy((uint32_t*)&forUnmarshaling->viewMask, *ptr, sizeof(uint32_t));
9869 *ptr += sizeof(uint32_t);
9870 memcpy((uint32_t*)&forUnmarshaling->colorAttachmentCount, *ptr, sizeof(uint32_t));
9871 *ptr += sizeof(uint32_t);
9872 // WARNING PTR CHECK
9873 memcpy((VkFormat**)&forUnmarshaling->pColorAttachmentFormats, (*ptr), 8);
9874 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pColorAttachmentFormats);
9875 *ptr += 8;
9876 if (forUnmarshaling->pColorAttachmentFormats) {
9877 vkStream->alloc((void**)&forUnmarshaling->pColorAttachmentFormats,
9878 forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
9879 memcpy((VkFormat*)forUnmarshaling->pColorAttachmentFormats, *ptr,
9880 forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
9881 *ptr += forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat);
9882 }
9883 memcpy((VkFormat*)&forUnmarshaling->depthAttachmentFormat, *ptr, sizeof(VkFormat));
9884 *ptr += sizeof(VkFormat);
9885 memcpy((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, *ptr, sizeof(VkFormat));
9886 *ptr += sizeof(VkFormat);
9887 }
9888
reservedunmarshal_VkPhysicalDeviceDynamicRenderingFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDynamicRenderingFeatures * forUnmarshaling,uint8_t ** ptr)9889 void reservedunmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
9890 VulkanStream* vkStream, VkStructureType rootType,
9891 VkPhysicalDeviceDynamicRenderingFeatures* forUnmarshaling, uint8_t** ptr) {
9892 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9893 *ptr += sizeof(VkStructureType);
9894 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9895 rootType = forUnmarshaling->sType;
9896 }
9897 uint32_t pNext_size;
9898 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9899 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9900 *ptr += sizeof(uint32_t);
9901 forUnmarshaling->pNext = nullptr;
9902 if (pNext_size) {
9903 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9904 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9905 *ptr += sizeof(VkStructureType);
9906 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9907 vkStream->alloc((void**)&forUnmarshaling->pNext,
9908 goldfish_vk_extension_struct_size_with_stream_features(
9909 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9910 *(VkStructureType*)forUnmarshaling->pNext = extType;
9911 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9912 ptr);
9913 }
9914 memcpy((VkBool32*)&forUnmarshaling->dynamicRendering, *ptr, sizeof(VkBool32));
9915 *ptr += sizeof(VkBool32);
9916 }
9917
reservedunmarshal_VkCommandBufferInheritanceRenderingInfo(VulkanStream * vkStream,VkStructureType rootType,VkCommandBufferInheritanceRenderingInfo * forUnmarshaling,uint8_t ** ptr)9918 void reservedunmarshal_VkCommandBufferInheritanceRenderingInfo(
9919 VulkanStream* vkStream, VkStructureType rootType,
9920 VkCommandBufferInheritanceRenderingInfo* forUnmarshaling, uint8_t** ptr) {
9921 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9922 *ptr += sizeof(VkStructureType);
9923 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9924 rootType = forUnmarshaling->sType;
9925 }
9926 uint32_t pNext_size;
9927 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9928 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9929 *ptr += sizeof(uint32_t);
9930 forUnmarshaling->pNext = nullptr;
9931 if (pNext_size) {
9932 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9933 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9934 *ptr += sizeof(VkStructureType);
9935 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9936 vkStream->alloc((void**)&forUnmarshaling->pNext,
9937 goldfish_vk_extension_struct_size_with_stream_features(
9938 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9939 *(VkStructureType*)forUnmarshaling->pNext = extType;
9940 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9941 ptr);
9942 }
9943 memcpy((VkRenderingFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkRenderingFlags));
9944 *ptr += sizeof(VkRenderingFlags);
9945 memcpy((uint32_t*)&forUnmarshaling->viewMask, *ptr, sizeof(uint32_t));
9946 *ptr += sizeof(uint32_t);
9947 memcpy((uint32_t*)&forUnmarshaling->colorAttachmentCount, *ptr, sizeof(uint32_t));
9948 *ptr += sizeof(uint32_t);
9949 vkStream->alloc((void**)&forUnmarshaling->pColorAttachmentFormats,
9950 forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
9951 memcpy((VkFormat*)forUnmarshaling->pColorAttachmentFormats, *ptr,
9952 forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
9953 *ptr += forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat);
9954 memcpy((VkFormat*)&forUnmarshaling->depthAttachmentFormat, *ptr, sizeof(VkFormat));
9955 *ptr += sizeof(VkFormat);
9956 memcpy((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, *ptr, sizeof(VkFormat));
9957 *ptr += sizeof(VkFormat);
9958 memcpy((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples, *ptr,
9959 sizeof(VkSampleCountFlagBits));
9960 *ptr += sizeof(VkSampleCountFlagBits);
9961 }
9962
reservedunmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderIntegerDotProductFeatures * forUnmarshaling,uint8_t ** ptr)9963 void reservedunmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
9964 VulkanStream* vkStream, VkStructureType rootType,
9965 VkPhysicalDeviceShaderIntegerDotProductFeatures* forUnmarshaling, uint8_t** ptr) {
9966 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9967 *ptr += sizeof(VkStructureType);
9968 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9969 rootType = forUnmarshaling->sType;
9970 }
9971 uint32_t pNext_size;
9972 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
9973 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
9974 *ptr += sizeof(uint32_t);
9975 forUnmarshaling->pNext = nullptr;
9976 if (pNext_size) {
9977 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
9978 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
9979 *ptr += sizeof(VkStructureType);
9980 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
9981 vkStream->alloc((void**)&forUnmarshaling->pNext,
9982 goldfish_vk_extension_struct_size_with_stream_features(
9983 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
9984 *(VkStructureType*)forUnmarshaling->pNext = extType;
9985 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
9986 ptr);
9987 }
9988 memcpy((VkBool32*)&forUnmarshaling->shaderIntegerDotProduct, *ptr, sizeof(VkBool32));
9989 *ptr += sizeof(VkBool32);
9990 }
9991
reservedunmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceShaderIntegerDotProductProperties * forUnmarshaling,uint8_t ** ptr)9992 void reservedunmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
9993 VulkanStream* vkStream, VkStructureType rootType,
9994 VkPhysicalDeviceShaderIntegerDotProductProperties* forUnmarshaling, uint8_t** ptr) {
9995 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
9996 *ptr += sizeof(VkStructureType);
9997 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
9998 rootType = forUnmarshaling->sType;
9999 }
10000 uint32_t pNext_size;
10001 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10002 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10003 *ptr += sizeof(uint32_t);
10004 forUnmarshaling->pNext = nullptr;
10005 if (pNext_size) {
10006 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10007 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10008 *ptr += sizeof(VkStructureType);
10009 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10010 vkStream->alloc((void**)&forUnmarshaling->pNext,
10011 goldfish_vk_extension_struct_size_with_stream_features(
10012 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10013 *(VkStructureType*)forUnmarshaling->pNext = extType;
10014 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10015 ptr);
10016 }
10017 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct8BitUnsignedAccelerated, *ptr,
10018 sizeof(VkBool32));
10019 *ptr += sizeof(VkBool32);
10020 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct8BitSignedAccelerated, *ptr,
10021 sizeof(VkBool32));
10022 *ptr += sizeof(VkBool32);
10023 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct8BitMixedSignednessAccelerated, *ptr,
10024 sizeof(VkBool32));
10025 *ptr += sizeof(VkBool32);
10026 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated, *ptr,
10027 sizeof(VkBool32));
10028 *ptr += sizeof(VkBool32);
10029 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedSignedAccelerated, *ptr,
10030 sizeof(VkBool32));
10031 *ptr += sizeof(VkBool32);
10032 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated,
10033 *ptr, sizeof(VkBool32));
10034 *ptr += sizeof(VkBool32);
10035 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct16BitUnsignedAccelerated, *ptr,
10036 sizeof(VkBool32));
10037 *ptr += sizeof(VkBool32);
10038 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct16BitSignedAccelerated, *ptr,
10039 sizeof(VkBool32));
10040 *ptr += sizeof(VkBool32);
10041 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct16BitMixedSignednessAccelerated, *ptr,
10042 sizeof(VkBool32));
10043 *ptr += sizeof(VkBool32);
10044 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct32BitUnsignedAccelerated, *ptr,
10045 sizeof(VkBool32));
10046 *ptr += sizeof(VkBool32);
10047 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct32BitSignedAccelerated, *ptr,
10048 sizeof(VkBool32));
10049 *ptr += sizeof(VkBool32);
10050 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct32BitMixedSignednessAccelerated, *ptr,
10051 sizeof(VkBool32));
10052 *ptr += sizeof(VkBool32);
10053 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct64BitUnsignedAccelerated, *ptr,
10054 sizeof(VkBool32));
10055 *ptr += sizeof(VkBool32);
10056 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct64BitSignedAccelerated, *ptr,
10057 sizeof(VkBool32));
10058 *ptr += sizeof(VkBool32);
10059 memcpy((VkBool32*)&forUnmarshaling->integerDotProduct64BitMixedSignednessAccelerated, *ptr,
10060 sizeof(VkBool32));
10061 *ptr += sizeof(VkBool32);
10062 memcpy(
10063 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
10064 *ptr, sizeof(VkBool32));
10065 *ptr += sizeof(VkBool32);
10066 memcpy(
10067 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated,
10068 *ptr, sizeof(VkBool32));
10069 *ptr += sizeof(VkBool32);
10070 memcpy((VkBool32*)&forUnmarshaling
10071 ->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
10072 *ptr, sizeof(VkBool32));
10073 *ptr += sizeof(VkBool32);
10074 memcpy((VkBool32*)&forUnmarshaling
10075 ->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
10076 *ptr, sizeof(VkBool32));
10077 *ptr += sizeof(VkBool32);
10078 memcpy((VkBool32*)&forUnmarshaling
10079 ->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
10080 *ptr, sizeof(VkBool32));
10081 *ptr += sizeof(VkBool32);
10082 memcpy((VkBool32*)&forUnmarshaling
10083 ->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
10084 *ptr, sizeof(VkBool32));
10085 *ptr += sizeof(VkBool32);
10086 memcpy((VkBool32*)&forUnmarshaling
10087 ->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
10088 *ptr, sizeof(VkBool32));
10089 *ptr += sizeof(VkBool32);
10090 memcpy(
10091 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated,
10092 *ptr, sizeof(VkBool32));
10093 *ptr += sizeof(VkBool32);
10094 memcpy((VkBool32*)&forUnmarshaling
10095 ->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
10096 *ptr, sizeof(VkBool32));
10097 *ptr += sizeof(VkBool32);
10098 memcpy((VkBool32*)&forUnmarshaling
10099 ->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
10100 *ptr, sizeof(VkBool32));
10101 *ptr += sizeof(VkBool32);
10102 memcpy(
10103 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated,
10104 *ptr, sizeof(VkBool32));
10105 *ptr += sizeof(VkBool32);
10106 memcpy((VkBool32*)&forUnmarshaling
10107 ->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
10108 *ptr, sizeof(VkBool32));
10109 *ptr += sizeof(VkBool32);
10110 memcpy((VkBool32*)&forUnmarshaling
10111 ->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
10112 *ptr, sizeof(VkBool32));
10113 *ptr += sizeof(VkBool32);
10114 memcpy(
10115 (VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated,
10116 *ptr, sizeof(VkBool32));
10117 *ptr += sizeof(VkBool32);
10118 memcpy((VkBool32*)&forUnmarshaling
10119 ->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
10120 *ptr, sizeof(VkBool32));
10121 *ptr += sizeof(VkBool32);
10122 }
10123
reservedunmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTexelBufferAlignmentProperties * forUnmarshaling,uint8_t ** ptr)10124 void reservedunmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
10125 VulkanStream* vkStream, VkStructureType rootType,
10126 VkPhysicalDeviceTexelBufferAlignmentProperties* forUnmarshaling, uint8_t** ptr) {
10127 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10128 *ptr += sizeof(VkStructureType);
10129 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10130 rootType = forUnmarshaling->sType;
10131 }
10132 uint32_t pNext_size;
10133 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10134 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10135 *ptr += sizeof(uint32_t);
10136 forUnmarshaling->pNext = nullptr;
10137 if (pNext_size) {
10138 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10139 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10140 *ptr += sizeof(VkStructureType);
10141 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10142 vkStream->alloc((void**)&forUnmarshaling->pNext,
10143 goldfish_vk_extension_struct_size_with_stream_features(
10144 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10145 *(VkStructureType*)forUnmarshaling->pNext = extType;
10146 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10147 ptr);
10148 }
10149 memcpy((VkDeviceSize*)&forUnmarshaling->storageTexelBufferOffsetAlignmentBytes, *ptr,
10150 sizeof(VkDeviceSize));
10151 *ptr += sizeof(VkDeviceSize);
10152 memcpy((VkBool32*)&forUnmarshaling->storageTexelBufferOffsetSingleTexelAlignment, *ptr,
10153 sizeof(VkBool32));
10154 *ptr += sizeof(VkBool32);
10155 memcpy((VkDeviceSize*)&forUnmarshaling->uniformTexelBufferOffsetAlignmentBytes, *ptr,
10156 sizeof(VkDeviceSize));
10157 *ptr += sizeof(VkDeviceSize);
10158 memcpy((VkBool32*)&forUnmarshaling->uniformTexelBufferOffsetSingleTexelAlignment, *ptr,
10159 sizeof(VkBool32));
10160 *ptr += sizeof(VkBool32);
10161 }
10162
reservedunmarshal_VkFormatProperties3(VulkanStream * vkStream,VkStructureType rootType,VkFormatProperties3 * forUnmarshaling,uint8_t ** ptr)10163 void reservedunmarshal_VkFormatProperties3(VulkanStream* vkStream, VkStructureType rootType,
10164 VkFormatProperties3* forUnmarshaling, uint8_t** ptr) {
10165 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10166 *ptr += sizeof(VkStructureType);
10167 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10168 rootType = forUnmarshaling->sType;
10169 }
10170 uint32_t pNext_size;
10171 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10172 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10173 *ptr += sizeof(uint32_t);
10174 forUnmarshaling->pNext = nullptr;
10175 if (pNext_size) {
10176 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10177 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10178 *ptr += sizeof(VkStructureType);
10179 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10180 vkStream->alloc((void**)&forUnmarshaling->pNext,
10181 goldfish_vk_extension_struct_size_with_stream_features(
10182 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10183 *(VkStructureType*)forUnmarshaling->pNext = extType;
10184 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10185 ptr);
10186 }
10187 memcpy((VkFormatFeatureFlags2*)&forUnmarshaling->linearTilingFeatures, *ptr,
10188 sizeof(VkFormatFeatureFlags2));
10189 *ptr += sizeof(VkFormatFeatureFlags2);
10190 memcpy((VkFormatFeatureFlags2*)&forUnmarshaling->optimalTilingFeatures, *ptr,
10191 sizeof(VkFormatFeatureFlags2));
10192 *ptr += sizeof(VkFormatFeatureFlags2);
10193 memcpy((VkFormatFeatureFlags2*)&forUnmarshaling->bufferFeatures, *ptr,
10194 sizeof(VkFormatFeatureFlags2));
10195 *ptr += sizeof(VkFormatFeatureFlags2);
10196 }
10197
reservedunmarshal_VkPhysicalDeviceMaintenance4Features(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance4Features * forUnmarshaling,uint8_t ** ptr)10198 void reservedunmarshal_VkPhysicalDeviceMaintenance4Features(
10199 VulkanStream* vkStream, VkStructureType rootType,
10200 VkPhysicalDeviceMaintenance4Features* forUnmarshaling, uint8_t** ptr) {
10201 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10202 *ptr += sizeof(VkStructureType);
10203 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10204 rootType = forUnmarshaling->sType;
10205 }
10206 uint32_t pNext_size;
10207 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10208 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10209 *ptr += sizeof(uint32_t);
10210 forUnmarshaling->pNext = nullptr;
10211 if (pNext_size) {
10212 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10213 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10214 *ptr += sizeof(VkStructureType);
10215 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10216 vkStream->alloc((void**)&forUnmarshaling->pNext,
10217 goldfish_vk_extension_struct_size_with_stream_features(
10218 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10219 *(VkStructureType*)forUnmarshaling->pNext = extType;
10220 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10221 ptr);
10222 }
10223 memcpy((VkBool32*)&forUnmarshaling->maintenance4, *ptr, sizeof(VkBool32));
10224 *ptr += sizeof(VkBool32);
10225 }
10226
reservedunmarshal_VkPhysicalDeviceMaintenance4Properties(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance4Properties * forUnmarshaling,uint8_t ** ptr)10227 void reservedunmarshal_VkPhysicalDeviceMaintenance4Properties(
10228 VulkanStream* vkStream, VkStructureType rootType,
10229 VkPhysicalDeviceMaintenance4Properties* forUnmarshaling, uint8_t** ptr) {
10230 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10231 *ptr += sizeof(VkStructureType);
10232 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10233 rootType = forUnmarshaling->sType;
10234 }
10235 uint32_t pNext_size;
10236 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10237 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10238 *ptr += sizeof(uint32_t);
10239 forUnmarshaling->pNext = nullptr;
10240 if (pNext_size) {
10241 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10242 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10243 *ptr += sizeof(VkStructureType);
10244 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10245 vkStream->alloc((void**)&forUnmarshaling->pNext,
10246 goldfish_vk_extension_struct_size_with_stream_features(
10247 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10248 *(VkStructureType*)forUnmarshaling->pNext = extType;
10249 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10250 ptr);
10251 }
10252 memcpy((VkDeviceSize*)&forUnmarshaling->maxBufferSize, *ptr, sizeof(VkDeviceSize));
10253 *ptr += sizeof(VkDeviceSize);
10254 }
10255
reservedunmarshal_VkDeviceBufferMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkDeviceBufferMemoryRequirements * forUnmarshaling,uint8_t ** ptr)10256 void reservedunmarshal_VkDeviceBufferMemoryRequirements(
10257 VulkanStream* vkStream, VkStructureType rootType,
10258 VkDeviceBufferMemoryRequirements* forUnmarshaling, uint8_t** ptr) {
10259 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10260 *ptr += sizeof(VkStructureType);
10261 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10262 rootType = forUnmarshaling->sType;
10263 }
10264 uint32_t pNext_size;
10265 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10266 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10267 *ptr += sizeof(uint32_t);
10268 forUnmarshaling->pNext = nullptr;
10269 if (pNext_size) {
10270 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10271 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10272 *ptr += sizeof(VkStructureType);
10273 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10274 vkStream->alloc((void**)&forUnmarshaling->pNext,
10275 goldfish_vk_extension_struct_size_with_stream_features(
10276 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10277 *(VkStructureType*)forUnmarshaling->pNext = extType;
10278 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10279 ptr);
10280 }
10281 vkStream->alloc((void**)&forUnmarshaling->pCreateInfo, sizeof(const VkBufferCreateInfo));
10282 reservedunmarshal_VkBufferCreateInfo(vkStream, rootType,
10283 (VkBufferCreateInfo*)(forUnmarshaling->pCreateInfo), ptr);
10284 }
10285
reservedunmarshal_VkDeviceImageMemoryRequirements(VulkanStream * vkStream,VkStructureType rootType,VkDeviceImageMemoryRequirements * forUnmarshaling,uint8_t ** ptr)10286 void reservedunmarshal_VkDeviceImageMemoryRequirements(
10287 VulkanStream* vkStream, VkStructureType rootType,
10288 VkDeviceImageMemoryRequirements* forUnmarshaling, uint8_t** ptr) {
10289 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10290 *ptr += sizeof(VkStructureType);
10291 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10292 rootType = forUnmarshaling->sType;
10293 }
10294 uint32_t pNext_size;
10295 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10296 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10297 *ptr += sizeof(uint32_t);
10298 forUnmarshaling->pNext = nullptr;
10299 if (pNext_size) {
10300 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10301 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10302 *ptr += sizeof(VkStructureType);
10303 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10304 vkStream->alloc((void**)&forUnmarshaling->pNext,
10305 goldfish_vk_extension_struct_size_with_stream_features(
10306 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10307 *(VkStructureType*)forUnmarshaling->pNext = extType;
10308 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10309 ptr);
10310 }
10311 vkStream->alloc((void**)&forUnmarshaling->pCreateInfo, sizeof(const VkImageCreateInfo));
10312 reservedunmarshal_VkImageCreateInfo(vkStream, rootType,
10313 (VkImageCreateInfo*)(forUnmarshaling->pCreateInfo), ptr);
10314 memcpy((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, *ptr,
10315 sizeof(VkImageAspectFlagBits));
10316 *ptr += sizeof(VkImageAspectFlagBits);
10317 }
10318
10319 #endif
10320 #ifdef VK_KHR_swapchain
reservedunmarshal_VkSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)10321 void reservedunmarshal_VkSwapchainCreateInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
10322 VkSwapchainCreateInfoKHR* forUnmarshaling,
10323 uint8_t** ptr) {
10324 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10325 *ptr += sizeof(VkStructureType);
10326 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10327 rootType = forUnmarshaling->sType;
10328 }
10329 uint32_t pNext_size;
10330 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10331 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10332 *ptr += sizeof(uint32_t);
10333 forUnmarshaling->pNext = nullptr;
10334 if (pNext_size) {
10335 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10336 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10337 *ptr += sizeof(VkStructureType);
10338 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10339 vkStream->alloc((void**)&forUnmarshaling->pNext,
10340 goldfish_vk_extension_struct_size_with_stream_features(
10341 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10342 *(VkStructureType*)forUnmarshaling->pNext = extType;
10343 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10344 ptr);
10345 }
10346 memcpy((VkSwapchainCreateFlagsKHR*)&forUnmarshaling->flags, *ptr,
10347 sizeof(VkSwapchainCreateFlagsKHR));
10348 *ptr += sizeof(VkSwapchainCreateFlagsKHR);
10349 uint64_t cgen_var_0;
10350 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10351 *ptr += 1 * 8;
10352 *(VkSurfaceKHR*)&forUnmarshaling->surface =
10353 (VkSurfaceKHR)unbox_VkSurfaceKHR((VkSurfaceKHR)(*&cgen_var_0));
10354 memcpy((uint32_t*)&forUnmarshaling->minImageCount, *ptr, sizeof(uint32_t));
10355 *ptr += sizeof(uint32_t);
10356 memcpy((VkFormat*)&forUnmarshaling->imageFormat, *ptr, sizeof(VkFormat));
10357 *ptr += sizeof(VkFormat);
10358 memcpy((VkColorSpaceKHR*)&forUnmarshaling->imageColorSpace, *ptr, sizeof(VkColorSpaceKHR));
10359 *ptr += sizeof(VkColorSpaceKHR);
10360 reservedunmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->imageExtent),
10361 ptr);
10362 memcpy((uint32_t*)&forUnmarshaling->imageArrayLayers, *ptr, sizeof(uint32_t));
10363 *ptr += sizeof(uint32_t);
10364 memcpy((VkImageUsageFlags*)&forUnmarshaling->imageUsage, *ptr, sizeof(VkImageUsageFlags));
10365 *ptr += sizeof(VkImageUsageFlags);
10366 memcpy((VkSharingMode*)&forUnmarshaling->imageSharingMode, *ptr, sizeof(VkSharingMode));
10367 *ptr += sizeof(VkSharingMode);
10368 memcpy((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, *ptr, sizeof(uint32_t));
10369 *ptr += sizeof(uint32_t);
10370 // WARNING PTR CHECK
10371 memcpy((uint32_t**)&forUnmarshaling->pQueueFamilyIndices, (*ptr), 8);
10372 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pQueueFamilyIndices);
10373 *ptr += 8;
10374 if (forUnmarshaling->pQueueFamilyIndices) {
10375 vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
10376 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
10377 memcpy((uint32_t*)forUnmarshaling->pQueueFamilyIndices, *ptr,
10378 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
10379 *ptr += forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
10380 }
10381 memcpy((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->preTransform, *ptr,
10382 sizeof(VkSurfaceTransformFlagBitsKHR));
10383 *ptr += sizeof(VkSurfaceTransformFlagBitsKHR);
10384 memcpy((VkCompositeAlphaFlagBitsKHR*)&forUnmarshaling->compositeAlpha, *ptr,
10385 sizeof(VkCompositeAlphaFlagBitsKHR));
10386 *ptr += sizeof(VkCompositeAlphaFlagBitsKHR);
10387 memcpy((VkPresentModeKHR*)&forUnmarshaling->presentMode, *ptr, sizeof(VkPresentModeKHR));
10388 *ptr += sizeof(VkPresentModeKHR);
10389 memcpy((VkBool32*)&forUnmarshaling->clipped, *ptr, sizeof(VkBool32));
10390 *ptr += sizeof(VkBool32);
10391 uint64_t cgen_var_2;
10392 memcpy((uint64_t*)&cgen_var_2, *ptr, 1 * 8);
10393 *ptr += 1 * 8;
10394 *(VkSwapchainKHR*)&forUnmarshaling->oldSwapchain =
10395 (VkSwapchainKHR)unbox_VkSwapchainKHR((VkSwapchainKHR)(*&cgen_var_2));
10396 }
10397
reservedunmarshal_VkPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPresentInfoKHR * forUnmarshaling,uint8_t ** ptr)10398 void reservedunmarshal_VkPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
10399 VkPresentInfoKHR* forUnmarshaling, uint8_t** ptr) {
10400 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10401 *ptr += sizeof(VkStructureType);
10402 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10403 rootType = forUnmarshaling->sType;
10404 }
10405 uint32_t pNext_size;
10406 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10407 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10408 *ptr += sizeof(uint32_t);
10409 forUnmarshaling->pNext = nullptr;
10410 if (pNext_size) {
10411 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10412 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10413 *ptr += sizeof(VkStructureType);
10414 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10415 vkStream->alloc((void**)&forUnmarshaling->pNext,
10416 goldfish_vk_extension_struct_size_with_stream_features(
10417 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10418 *(VkStructureType*)forUnmarshaling->pNext = extType;
10419 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10420 ptr);
10421 }
10422 memcpy((uint32_t*)&forUnmarshaling->waitSemaphoreCount, *ptr, sizeof(uint32_t));
10423 *ptr += sizeof(uint32_t);
10424 vkStream->alloc((void**)&forUnmarshaling->pWaitSemaphores,
10425 forUnmarshaling->waitSemaphoreCount * sizeof(const VkSemaphore));
10426 if (forUnmarshaling->waitSemaphoreCount) {
10427 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
10428 *ptr += 8 * forUnmarshaling->waitSemaphoreCount;
10429 if (forUnmarshaling) {
10430 for (uint32_t k = 0; k < forUnmarshaling->waitSemaphoreCount; ++k) {
10431 uint64_t tmpval;
10432 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
10433 *(((VkSemaphore*)forUnmarshaling->pWaitSemaphores) + k) =
10434 tmpval ? (VkSemaphore)unbox_VkSemaphore((VkSemaphore)tmpval) : VK_NULL_HANDLE;
10435 }
10436 }
10437 }
10438 memcpy((uint32_t*)&forUnmarshaling->swapchainCount, *ptr, sizeof(uint32_t));
10439 *ptr += sizeof(uint32_t);
10440 vkStream->alloc((void**)&forUnmarshaling->pSwapchains,
10441 forUnmarshaling->swapchainCount * sizeof(const VkSwapchainKHR));
10442 if (forUnmarshaling->swapchainCount) {
10443 uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
10444 *ptr += 8 * forUnmarshaling->swapchainCount;
10445 if (forUnmarshaling) {
10446 for (uint32_t k = 0; k < forUnmarshaling->swapchainCount; ++k) {
10447 uint64_t tmpval;
10448 memcpy(&tmpval, cgen_var_1_ptr + k * 8, sizeof(uint64_t));
10449 *(((VkSwapchainKHR*)forUnmarshaling->pSwapchains) + k) =
10450 tmpval ? (VkSwapchainKHR)unbox_VkSwapchainKHR((VkSwapchainKHR)tmpval)
10451 : VK_NULL_HANDLE;
10452 }
10453 }
10454 }
10455 vkStream->alloc((void**)&forUnmarshaling->pImageIndices,
10456 forUnmarshaling->swapchainCount * sizeof(const uint32_t));
10457 memcpy((uint32_t*)forUnmarshaling->pImageIndices, *ptr,
10458 forUnmarshaling->swapchainCount * sizeof(const uint32_t));
10459 *ptr += forUnmarshaling->swapchainCount * sizeof(const uint32_t);
10460 // WARNING PTR CHECK
10461 memcpy((VkResult**)&forUnmarshaling->pResults, (*ptr), 8);
10462 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pResults);
10463 *ptr += 8;
10464 if (forUnmarshaling->pResults) {
10465 vkStream->alloc((void**)&forUnmarshaling->pResults,
10466 forUnmarshaling->swapchainCount * sizeof(VkResult));
10467 memcpy((VkResult*)forUnmarshaling->pResults, *ptr,
10468 forUnmarshaling->swapchainCount * sizeof(VkResult));
10469 *ptr += forUnmarshaling->swapchainCount * sizeof(VkResult);
10470 }
10471 }
10472
reservedunmarshal_VkImageSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImageSwapchainCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)10473 void reservedunmarshal_VkImageSwapchainCreateInfoKHR(VulkanStream* vkStream,
10474 VkStructureType rootType,
10475 VkImageSwapchainCreateInfoKHR* forUnmarshaling,
10476 uint8_t** ptr) {
10477 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10478 *ptr += sizeof(VkStructureType);
10479 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10480 rootType = forUnmarshaling->sType;
10481 }
10482 uint32_t pNext_size;
10483 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10484 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10485 *ptr += sizeof(uint32_t);
10486 forUnmarshaling->pNext = nullptr;
10487 if (pNext_size) {
10488 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10489 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10490 *ptr += sizeof(VkStructureType);
10491 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10492 vkStream->alloc((void**)&forUnmarshaling->pNext,
10493 goldfish_vk_extension_struct_size_with_stream_features(
10494 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10495 *(VkStructureType*)forUnmarshaling->pNext = extType;
10496 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10497 ptr);
10498 }
10499 uint64_t cgen_var_0;
10500 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10501 *ptr += 1 * 8;
10502 *(VkSwapchainKHR*)&forUnmarshaling->swapchain =
10503 (VkSwapchainKHR)unbox_VkSwapchainKHR((VkSwapchainKHR)(*&cgen_var_0));
10504 }
10505
reservedunmarshal_VkBindImageMemorySwapchainInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkBindImageMemorySwapchainInfoKHR * forUnmarshaling,uint8_t ** ptr)10506 void reservedunmarshal_VkBindImageMemorySwapchainInfoKHR(
10507 VulkanStream* vkStream, VkStructureType rootType,
10508 VkBindImageMemorySwapchainInfoKHR* forUnmarshaling, uint8_t** ptr) {
10509 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10510 *ptr += sizeof(VkStructureType);
10511 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10512 rootType = forUnmarshaling->sType;
10513 }
10514 uint32_t pNext_size;
10515 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10516 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10517 *ptr += sizeof(uint32_t);
10518 forUnmarshaling->pNext = nullptr;
10519 if (pNext_size) {
10520 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10521 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10522 *ptr += sizeof(VkStructureType);
10523 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10524 vkStream->alloc((void**)&forUnmarshaling->pNext,
10525 goldfish_vk_extension_struct_size_with_stream_features(
10526 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10527 *(VkStructureType*)forUnmarshaling->pNext = extType;
10528 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10529 ptr);
10530 }
10531 uint64_t cgen_var_0;
10532 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10533 *ptr += 1 * 8;
10534 *(VkSwapchainKHR*)&forUnmarshaling->swapchain =
10535 (VkSwapchainKHR)unbox_VkSwapchainKHR((VkSwapchainKHR)(*&cgen_var_0));
10536 memcpy((uint32_t*)&forUnmarshaling->imageIndex, *ptr, sizeof(uint32_t));
10537 *ptr += sizeof(uint32_t);
10538 }
10539
reservedunmarshal_VkAcquireNextImageInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkAcquireNextImageInfoKHR * forUnmarshaling,uint8_t ** ptr)10540 void reservedunmarshal_VkAcquireNextImageInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
10541 VkAcquireNextImageInfoKHR* forUnmarshaling,
10542 uint8_t** ptr) {
10543 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10544 *ptr += sizeof(VkStructureType);
10545 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10546 rootType = forUnmarshaling->sType;
10547 }
10548 uint32_t pNext_size;
10549 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10550 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10551 *ptr += sizeof(uint32_t);
10552 forUnmarshaling->pNext = nullptr;
10553 if (pNext_size) {
10554 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10555 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10556 *ptr += sizeof(VkStructureType);
10557 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10558 vkStream->alloc((void**)&forUnmarshaling->pNext,
10559 goldfish_vk_extension_struct_size_with_stream_features(
10560 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10561 *(VkStructureType*)forUnmarshaling->pNext = extType;
10562 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10563 ptr);
10564 }
10565 uint64_t cgen_var_0;
10566 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10567 *ptr += 1 * 8;
10568 *(VkSwapchainKHR*)&forUnmarshaling->swapchain =
10569 (VkSwapchainKHR)unbox_VkSwapchainKHR((VkSwapchainKHR)(*&cgen_var_0));
10570 memcpy((uint64_t*)&forUnmarshaling->timeout, *ptr, sizeof(uint64_t));
10571 *ptr += sizeof(uint64_t);
10572 uint64_t cgen_var_1;
10573 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
10574 *ptr += 1 * 8;
10575 *(VkSemaphore*)&forUnmarshaling->semaphore =
10576 (VkSemaphore)unbox_VkSemaphore((VkSemaphore)(*&cgen_var_1));
10577 uint64_t cgen_var_2;
10578 memcpy((uint64_t*)&cgen_var_2, *ptr, 1 * 8);
10579 *ptr += 1 * 8;
10580 *(VkFence*)&forUnmarshaling->fence = (VkFence)unbox_VkFence((VkFence)(*&cgen_var_2));
10581 memcpy((uint32_t*)&forUnmarshaling->deviceMask, *ptr, sizeof(uint32_t));
10582 *ptr += sizeof(uint32_t);
10583 }
10584
reservedunmarshal_VkDeviceGroupPresentCapabilitiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupPresentCapabilitiesKHR * forUnmarshaling,uint8_t ** ptr)10585 void reservedunmarshal_VkDeviceGroupPresentCapabilitiesKHR(
10586 VulkanStream* vkStream, VkStructureType rootType,
10587 VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling, uint8_t** ptr) {
10588 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10589 *ptr += sizeof(VkStructureType);
10590 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10591 rootType = forUnmarshaling->sType;
10592 }
10593 uint32_t pNext_size;
10594 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10595 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10596 *ptr += sizeof(uint32_t);
10597 forUnmarshaling->pNext = nullptr;
10598 if (pNext_size) {
10599 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10600 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10601 *ptr += sizeof(VkStructureType);
10602 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10603 vkStream->alloc((void**)&forUnmarshaling->pNext,
10604 goldfish_vk_extension_struct_size_with_stream_features(
10605 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10606 *(VkStructureType*)forUnmarshaling->pNext = extType;
10607 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10608 ptr);
10609 }
10610 memcpy((uint32_t*)forUnmarshaling->presentMask, *ptr,
10611 VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
10612 *ptr += VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t);
10613 memcpy((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes, *ptr,
10614 sizeof(VkDeviceGroupPresentModeFlagsKHR));
10615 *ptr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
10616 }
10617
reservedunmarshal_VkDeviceGroupPresentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupPresentInfoKHR * forUnmarshaling,uint8_t ** ptr)10618 void reservedunmarshal_VkDeviceGroupPresentInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
10619 VkDeviceGroupPresentInfoKHR* forUnmarshaling,
10620 uint8_t** ptr) {
10621 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10622 *ptr += sizeof(VkStructureType);
10623 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10624 rootType = forUnmarshaling->sType;
10625 }
10626 uint32_t pNext_size;
10627 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10628 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10629 *ptr += sizeof(uint32_t);
10630 forUnmarshaling->pNext = nullptr;
10631 if (pNext_size) {
10632 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10633 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10634 *ptr += sizeof(VkStructureType);
10635 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10636 vkStream->alloc((void**)&forUnmarshaling->pNext,
10637 goldfish_vk_extension_struct_size_with_stream_features(
10638 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10639 *(VkStructureType*)forUnmarshaling->pNext = extType;
10640 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10641 ptr);
10642 }
10643 memcpy((uint32_t*)&forUnmarshaling->swapchainCount, *ptr, sizeof(uint32_t));
10644 *ptr += sizeof(uint32_t);
10645 vkStream->alloc((void**)&forUnmarshaling->pDeviceMasks,
10646 forUnmarshaling->swapchainCount * sizeof(const uint32_t));
10647 memcpy((uint32_t*)forUnmarshaling->pDeviceMasks, *ptr,
10648 forUnmarshaling->swapchainCount * sizeof(const uint32_t));
10649 *ptr += forUnmarshaling->swapchainCount * sizeof(const uint32_t);
10650 memcpy((VkDeviceGroupPresentModeFlagBitsKHR*)&forUnmarshaling->mode, *ptr,
10651 sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
10652 *ptr += sizeof(VkDeviceGroupPresentModeFlagBitsKHR);
10653 }
10654
reservedunmarshal_VkDeviceGroupSwapchainCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceGroupSwapchainCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)10655 void reservedunmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
10656 VulkanStream* vkStream, VkStructureType rootType,
10657 VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
10658 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10659 *ptr += sizeof(VkStructureType);
10660 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10661 rootType = forUnmarshaling->sType;
10662 }
10663 uint32_t pNext_size;
10664 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10665 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10666 *ptr += sizeof(uint32_t);
10667 forUnmarshaling->pNext = nullptr;
10668 if (pNext_size) {
10669 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10670 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10671 *ptr += sizeof(VkStructureType);
10672 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10673 vkStream->alloc((void**)&forUnmarshaling->pNext,
10674 goldfish_vk_extension_struct_size_with_stream_features(
10675 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10676 *(VkStructureType*)forUnmarshaling->pNext = extType;
10677 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10678 ptr);
10679 }
10680 memcpy((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes, *ptr,
10681 sizeof(VkDeviceGroupPresentModeFlagsKHR));
10682 *ptr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
10683 }
10684
10685 #endif
10686 #ifdef VK_KHR_dynamic_rendering
reservedunmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRenderingFragmentShadingRateAttachmentInfoKHR * forUnmarshaling,uint8_t ** ptr)10687 void reservedunmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
10688 VulkanStream* vkStream, VkStructureType rootType,
10689 VkRenderingFragmentShadingRateAttachmentInfoKHR* forUnmarshaling, uint8_t** ptr) {
10690 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10691 *ptr += sizeof(VkStructureType);
10692 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10693 rootType = forUnmarshaling->sType;
10694 }
10695 uint32_t pNext_size;
10696 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10697 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10698 *ptr += sizeof(uint32_t);
10699 forUnmarshaling->pNext = nullptr;
10700 if (pNext_size) {
10701 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10702 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10703 *ptr += sizeof(VkStructureType);
10704 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10705 vkStream->alloc((void**)&forUnmarshaling->pNext,
10706 goldfish_vk_extension_struct_size_with_stream_features(
10707 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10708 *(VkStructureType*)forUnmarshaling->pNext = extType;
10709 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10710 ptr);
10711 }
10712 uint64_t cgen_var_0;
10713 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10714 *ptr += 1 * 8;
10715 *(VkImageView*)&forUnmarshaling->imageView =
10716 (VkImageView)unbox_VkImageView((VkImageView)(*&cgen_var_0));
10717 memcpy((VkImageLayout*)&forUnmarshaling->imageLayout, *ptr, sizeof(VkImageLayout));
10718 *ptr += sizeof(VkImageLayout);
10719 reservedunmarshal_VkExtent2D(
10720 vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->shadingRateAttachmentTexelSize), ptr);
10721 }
10722
reservedunmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderingFragmentDensityMapAttachmentInfoEXT * forUnmarshaling,uint8_t ** ptr)10723 void reservedunmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
10724 VulkanStream* vkStream, VkStructureType rootType,
10725 VkRenderingFragmentDensityMapAttachmentInfoEXT* forUnmarshaling, uint8_t** ptr) {
10726 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10727 *ptr += sizeof(VkStructureType);
10728 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10729 rootType = forUnmarshaling->sType;
10730 }
10731 uint32_t pNext_size;
10732 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10733 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10734 *ptr += sizeof(uint32_t);
10735 forUnmarshaling->pNext = nullptr;
10736 if (pNext_size) {
10737 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10738 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10739 *ptr += sizeof(VkStructureType);
10740 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10741 vkStream->alloc((void**)&forUnmarshaling->pNext,
10742 goldfish_vk_extension_struct_size_with_stream_features(
10743 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10744 *(VkStructureType*)forUnmarshaling->pNext = extType;
10745 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10746 ptr);
10747 }
10748 uint64_t cgen_var_0;
10749 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10750 *ptr += 1 * 8;
10751 *(VkImageView*)&forUnmarshaling->imageView =
10752 (VkImageView)unbox_VkImageView((VkImageView)(*&cgen_var_0));
10753 memcpy((VkImageLayout*)&forUnmarshaling->imageLayout, *ptr, sizeof(VkImageLayout));
10754 *ptr += sizeof(VkImageLayout);
10755 }
10756
reservedunmarshal_VkAttachmentSampleCountInfoAMD(VulkanStream * vkStream,VkStructureType rootType,VkAttachmentSampleCountInfoAMD * forUnmarshaling,uint8_t ** ptr)10757 void reservedunmarshal_VkAttachmentSampleCountInfoAMD(
10758 VulkanStream* vkStream, VkStructureType rootType,
10759 VkAttachmentSampleCountInfoAMD* forUnmarshaling, uint8_t** ptr) {
10760 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10761 *ptr += sizeof(VkStructureType);
10762 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10763 rootType = forUnmarshaling->sType;
10764 }
10765 uint32_t pNext_size;
10766 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10767 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10768 *ptr += sizeof(uint32_t);
10769 forUnmarshaling->pNext = nullptr;
10770 if (pNext_size) {
10771 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10772 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10773 *ptr += sizeof(VkStructureType);
10774 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10775 vkStream->alloc((void**)&forUnmarshaling->pNext,
10776 goldfish_vk_extension_struct_size_with_stream_features(
10777 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10778 *(VkStructureType*)forUnmarshaling->pNext = extType;
10779 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10780 ptr);
10781 }
10782 memcpy((uint32_t*)&forUnmarshaling->colorAttachmentCount, *ptr, sizeof(uint32_t));
10783 *ptr += sizeof(uint32_t);
10784 // WARNING PTR CHECK
10785 memcpy((VkSampleCountFlagBits**)&forUnmarshaling->pColorAttachmentSamples, (*ptr), 8);
10786 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pColorAttachmentSamples);
10787 *ptr += 8;
10788 if (forUnmarshaling->pColorAttachmentSamples) {
10789 vkStream->alloc(
10790 (void**)&forUnmarshaling->pColorAttachmentSamples,
10791 forUnmarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
10792 memcpy((VkSampleCountFlagBits*)forUnmarshaling->pColorAttachmentSamples, *ptr,
10793 forUnmarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
10794 *ptr += forUnmarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits);
10795 }
10796 memcpy((VkSampleCountFlagBits*)&forUnmarshaling->depthStencilAttachmentSamples, *ptr,
10797 sizeof(VkSampleCountFlagBits));
10798 *ptr += sizeof(VkSampleCountFlagBits);
10799 }
10800
reservedunmarshal_VkMultiviewPerViewAttributesInfoNVX(VulkanStream * vkStream,VkStructureType rootType,VkMultiviewPerViewAttributesInfoNVX * forUnmarshaling,uint8_t ** ptr)10801 void reservedunmarshal_VkMultiviewPerViewAttributesInfoNVX(
10802 VulkanStream* vkStream, VkStructureType rootType,
10803 VkMultiviewPerViewAttributesInfoNVX* forUnmarshaling, uint8_t** ptr) {
10804 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10805 *ptr += sizeof(VkStructureType);
10806 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10807 rootType = forUnmarshaling->sType;
10808 }
10809 uint32_t pNext_size;
10810 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10811 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10812 *ptr += sizeof(uint32_t);
10813 forUnmarshaling->pNext = nullptr;
10814 if (pNext_size) {
10815 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10816 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10817 *ptr += sizeof(VkStructureType);
10818 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10819 vkStream->alloc((void**)&forUnmarshaling->pNext,
10820 goldfish_vk_extension_struct_size_with_stream_features(
10821 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10822 *(VkStructureType*)forUnmarshaling->pNext = extType;
10823 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10824 ptr);
10825 }
10826 memcpy((VkBool32*)&forUnmarshaling->perViewAttributes, *ptr, sizeof(VkBool32));
10827 *ptr += sizeof(VkBool32);
10828 memcpy((VkBool32*)&forUnmarshaling->perViewAttributesPositionXOnly, *ptr, sizeof(VkBool32));
10829 *ptr += sizeof(VkBool32);
10830 }
10831
10832 #endif
10833 #ifdef VK_KHR_external_semaphore_fd
reservedunmarshal_VkImportSemaphoreFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportSemaphoreFdInfoKHR * forUnmarshaling,uint8_t ** ptr)10834 void reservedunmarshal_VkImportSemaphoreFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
10835 VkImportSemaphoreFdInfoKHR* forUnmarshaling,
10836 uint8_t** ptr) {
10837 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10838 *ptr += sizeof(VkStructureType);
10839 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10840 rootType = forUnmarshaling->sType;
10841 }
10842 uint32_t pNext_size;
10843 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10844 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10845 *ptr += sizeof(uint32_t);
10846 forUnmarshaling->pNext = nullptr;
10847 if (pNext_size) {
10848 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10849 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10850 *ptr += sizeof(VkStructureType);
10851 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10852 vkStream->alloc((void**)&forUnmarshaling->pNext,
10853 goldfish_vk_extension_struct_size_with_stream_features(
10854 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10855 *(VkStructureType*)forUnmarshaling->pNext = extType;
10856 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10857 ptr);
10858 }
10859 uint64_t cgen_var_0;
10860 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10861 *ptr += 1 * 8;
10862 *(VkSemaphore*)&forUnmarshaling->semaphore =
10863 (VkSemaphore)unbox_VkSemaphore((VkSemaphore)(*&cgen_var_0));
10864 memcpy((VkSemaphoreImportFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkSemaphoreImportFlags));
10865 *ptr += sizeof(VkSemaphoreImportFlags);
10866 memcpy((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
10867 sizeof(VkExternalSemaphoreHandleTypeFlagBits));
10868 *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
10869 memcpy((int*)&forUnmarshaling->fd, *ptr, sizeof(int));
10870 *ptr += sizeof(int);
10871 }
10872
reservedunmarshal_VkSemaphoreGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkSemaphoreGetFdInfoKHR * forUnmarshaling,uint8_t ** ptr)10873 void reservedunmarshal_VkSemaphoreGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
10874 VkSemaphoreGetFdInfoKHR* forUnmarshaling,
10875 uint8_t** ptr) {
10876 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10877 *ptr += sizeof(VkStructureType);
10878 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10879 rootType = forUnmarshaling->sType;
10880 }
10881 uint32_t pNext_size;
10882 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10883 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10884 *ptr += sizeof(uint32_t);
10885 forUnmarshaling->pNext = nullptr;
10886 if (pNext_size) {
10887 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10888 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10889 *ptr += sizeof(VkStructureType);
10890 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10891 vkStream->alloc((void**)&forUnmarshaling->pNext,
10892 goldfish_vk_extension_struct_size_with_stream_features(
10893 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10894 *(VkStructureType*)forUnmarshaling->pNext = extType;
10895 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10896 ptr);
10897 }
10898 uint64_t cgen_var_0;
10899 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
10900 *ptr += 1 * 8;
10901 *(VkSemaphore*)&forUnmarshaling->semaphore =
10902 (VkSemaphore)unbox_VkSemaphore((VkSemaphore)(*&cgen_var_0));
10903 memcpy((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
10904 sizeof(VkExternalSemaphoreHandleTypeFlagBits));
10905 *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
10906 }
10907
10908 #endif
10909 #ifdef VK_KHR_incremental_present
reservedunmarshal_VkRectLayerKHR(VulkanStream * vkStream,VkStructureType rootType,VkRectLayerKHR * forUnmarshaling,uint8_t ** ptr)10910 void reservedunmarshal_VkRectLayerKHR(VulkanStream* vkStream, VkStructureType rootType,
10911 VkRectLayerKHR* forUnmarshaling, uint8_t** ptr) {
10912 reservedunmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->offset), ptr);
10913 reservedunmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->extent), ptr);
10914 memcpy((uint32_t*)&forUnmarshaling->layer, *ptr, sizeof(uint32_t));
10915 *ptr += sizeof(uint32_t);
10916 }
10917
reservedunmarshal_VkPresentRegionKHR(VulkanStream * vkStream,VkStructureType rootType,VkPresentRegionKHR * forUnmarshaling,uint8_t ** ptr)10918 void reservedunmarshal_VkPresentRegionKHR(VulkanStream* vkStream, VkStructureType rootType,
10919 VkPresentRegionKHR* forUnmarshaling, uint8_t** ptr) {
10920 memcpy((uint32_t*)&forUnmarshaling->rectangleCount, *ptr, sizeof(uint32_t));
10921 *ptr += sizeof(uint32_t);
10922 // WARNING PTR CHECK
10923 memcpy((VkRectLayerKHR**)&forUnmarshaling->pRectangles, (*ptr), 8);
10924 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pRectangles);
10925 *ptr += 8;
10926 if (forUnmarshaling->pRectangles) {
10927 vkStream->alloc((void**)&forUnmarshaling->pRectangles,
10928 forUnmarshaling->rectangleCount * sizeof(const VkRectLayerKHR));
10929 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i) {
10930 reservedunmarshal_VkRectLayerKHR(
10931 vkStream, rootType, (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i), ptr);
10932 }
10933 }
10934 }
10935
reservedunmarshal_VkPresentRegionsKHR(VulkanStream * vkStream,VkStructureType rootType,VkPresentRegionsKHR * forUnmarshaling,uint8_t ** ptr)10936 void reservedunmarshal_VkPresentRegionsKHR(VulkanStream* vkStream, VkStructureType rootType,
10937 VkPresentRegionsKHR* forUnmarshaling, uint8_t** ptr) {
10938 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10939 *ptr += sizeof(VkStructureType);
10940 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10941 rootType = forUnmarshaling->sType;
10942 }
10943 uint32_t pNext_size;
10944 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10945 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10946 *ptr += sizeof(uint32_t);
10947 forUnmarshaling->pNext = nullptr;
10948 if (pNext_size) {
10949 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10950 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10951 *ptr += sizeof(VkStructureType);
10952 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10953 vkStream->alloc((void**)&forUnmarshaling->pNext,
10954 goldfish_vk_extension_struct_size_with_stream_features(
10955 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10956 *(VkStructureType*)forUnmarshaling->pNext = extType;
10957 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
10958 ptr);
10959 }
10960 memcpy((uint32_t*)&forUnmarshaling->swapchainCount, *ptr, sizeof(uint32_t));
10961 *ptr += sizeof(uint32_t);
10962 // WARNING PTR CHECK
10963 memcpy((VkPresentRegionKHR**)&forUnmarshaling->pRegions, (*ptr), 8);
10964 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pRegions);
10965 *ptr += 8;
10966 if (forUnmarshaling->pRegions) {
10967 vkStream->alloc((void**)&forUnmarshaling->pRegions,
10968 forUnmarshaling->swapchainCount * sizeof(const VkPresentRegionKHR));
10969 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i) {
10970 reservedunmarshal_VkPresentRegionKHR(
10971 vkStream, rootType, (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i), ptr);
10972 }
10973 }
10974 }
10975
10976 #endif
10977 #ifdef VK_KHR_external_fence_fd
reservedunmarshal_VkImportFenceFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkImportFenceFdInfoKHR * forUnmarshaling,uint8_t ** ptr)10978 void reservedunmarshal_VkImportFenceFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
10979 VkImportFenceFdInfoKHR* forUnmarshaling,
10980 uint8_t** ptr) {
10981 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
10982 *ptr += sizeof(VkStructureType);
10983 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
10984 rootType = forUnmarshaling->sType;
10985 }
10986 uint32_t pNext_size;
10987 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
10988 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
10989 *ptr += sizeof(uint32_t);
10990 forUnmarshaling->pNext = nullptr;
10991 if (pNext_size) {
10992 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
10993 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
10994 *ptr += sizeof(VkStructureType);
10995 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
10996 vkStream->alloc((void**)&forUnmarshaling->pNext,
10997 goldfish_vk_extension_struct_size_with_stream_features(
10998 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
10999 *(VkStructureType*)forUnmarshaling->pNext = extType;
11000 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11001 ptr);
11002 }
11003 uint64_t cgen_var_0;
11004 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
11005 *ptr += 1 * 8;
11006 *(VkFence*)&forUnmarshaling->fence = (VkFence)unbox_VkFence((VkFence)(*&cgen_var_0));
11007 memcpy((VkFenceImportFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkFenceImportFlags));
11008 *ptr += sizeof(VkFenceImportFlags);
11009 memcpy((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
11010 sizeof(VkExternalFenceHandleTypeFlagBits));
11011 *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
11012 memcpy((int*)&forUnmarshaling->fd, *ptr, sizeof(int));
11013 *ptr += sizeof(int);
11014 }
11015
reservedunmarshal_VkFenceGetFdInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkFenceGetFdInfoKHR * forUnmarshaling,uint8_t ** ptr)11016 void reservedunmarshal_VkFenceGetFdInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
11017 VkFenceGetFdInfoKHR* forUnmarshaling, uint8_t** ptr) {
11018 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11019 *ptr += sizeof(VkStructureType);
11020 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11021 rootType = forUnmarshaling->sType;
11022 }
11023 uint32_t pNext_size;
11024 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11025 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11026 *ptr += sizeof(uint32_t);
11027 forUnmarshaling->pNext = nullptr;
11028 if (pNext_size) {
11029 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11030 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11031 *ptr += sizeof(VkStructureType);
11032 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11033 vkStream->alloc((void**)&forUnmarshaling->pNext,
11034 goldfish_vk_extension_struct_size_with_stream_features(
11035 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11036 *(VkStructureType*)forUnmarshaling->pNext = extType;
11037 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11038 ptr);
11039 }
11040 uint64_t cgen_var_0;
11041 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
11042 *ptr += 1 * 8;
11043 *(VkFence*)&forUnmarshaling->fence = (VkFence)unbox_VkFence((VkFence)(*&cgen_var_0));
11044 memcpy((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
11045 sizeof(VkExternalFenceHandleTypeFlagBits));
11046 *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
11047 }
11048
11049 #endif
11050 #ifdef VK_KHR_pipeline_executable_properties
reservedunmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR * forUnmarshaling,uint8_t ** ptr)11051 void reservedunmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
11052 VulkanStream* vkStream, VkStructureType rootType,
11053 VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forUnmarshaling, uint8_t** ptr) {
11054 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11055 *ptr += sizeof(VkStructureType);
11056 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11057 rootType = forUnmarshaling->sType;
11058 }
11059 uint32_t pNext_size;
11060 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11061 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11062 *ptr += sizeof(uint32_t);
11063 forUnmarshaling->pNext = nullptr;
11064 if (pNext_size) {
11065 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11066 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11067 *ptr += sizeof(VkStructureType);
11068 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11069 vkStream->alloc((void**)&forUnmarshaling->pNext,
11070 goldfish_vk_extension_struct_size_with_stream_features(
11071 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11072 *(VkStructureType*)forUnmarshaling->pNext = extType;
11073 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11074 ptr);
11075 }
11076 memcpy((VkBool32*)&forUnmarshaling->pipelineExecutableInfo, *ptr, sizeof(VkBool32));
11077 *ptr += sizeof(VkBool32);
11078 }
11079
reservedunmarshal_VkPipelineInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineInfoKHR * forUnmarshaling,uint8_t ** ptr)11080 void reservedunmarshal_VkPipelineInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
11081 VkPipelineInfoKHR* forUnmarshaling, uint8_t** ptr) {
11082 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11083 *ptr += sizeof(VkStructureType);
11084 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11085 rootType = forUnmarshaling->sType;
11086 }
11087 uint32_t pNext_size;
11088 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11089 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11090 *ptr += sizeof(uint32_t);
11091 forUnmarshaling->pNext = nullptr;
11092 if (pNext_size) {
11093 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11094 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11095 *ptr += sizeof(VkStructureType);
11096 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11097 vkStream->alloc((void**)&forUnmarshaling->pNext,
11098 goldfish_vk_extension_struct_size_with_stream_features(
11099 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11100 *(VkStructureType*)forUnmarshaling->pNext = extType;
11101 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11102 ptr);
11103 }
11104 uint64_t cgen_var_0;
11105 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
11106 *ptr += 1 * 8;
11107 *(VkPipeline*)&forUnmarshaling->pipeline =
11108 (VkPipeline)unbox_VkPipeline((VkPipeline)(*&cgen_var_0));
11109 }
11110
reservedunmarshal_VkPipelineExecutablePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutablePropertiesKHR * forUnmarshaling,uint8_t ** ptr)11111 void reservedunmarshal_VkPipelineExecutablePropertiesKHR(
11112 VulkanStream* vkStream, VkStructureType rootType,
11113 VkPipelineExecutablePropertiesKHR* forUnmarshaling, uint8_t** ptr) {
11114 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11115 *ptr += sizeof(VkStructureType);
11116 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11117 rootType = forUnmarshaling->sType;
11118 }
11119 uint32_t pNext_size;
11120 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11121 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11122 *ptr += sizeof(uint32_t);
11123 forUnmarshaling->pNext = nullptr;
11124 if (pNext_size) {
11125 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11126 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11127 *ptr += sizeof(VkStructureType);
11128 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11129 vkStream->alloc((void**)&forUnmarshaling->pNext,
11130 goldfish_vk_extension_struct_size_with_stream_features(
11131 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11132 *(VkStructureType*)forUnmarshaling->pNext = extType;
11133 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11134 ptr);
11135 }
11136 memcpy((VkShaderStageFlags*)&forUnmarshaling->stages, *ptr, sizeof(VkShaderStageFlags));
11137 *ptr += sizeof(VkShaderStageFlags);
11138 memcpy((char*)forUnmarshaling->name, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11139 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
11140 memcpy((char*)forUnmarshaling->description, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11141 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
11142 memcpy((uint32_t*)&forUnmarshaling->subgroupSize, *ptr, sizeof(uint32_t));
11143 *ptr += sizeof(uint32_t);
11144 }
11145
reservedunmarshal_VkPipelineExecutableInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableInfoKHR * forUnmarshaling,uint8_t ** ptr)11146 void reservedunmarshal_VkPipelineExecutableInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
11147 VkPipelineExecutableInfoKHR* forUnmarshaling,
11148 uint8_t** ptr) {
11149 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11150 *ptr += sizeof(VkStructureType);
11151 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11152 rootType = forUnmarshaling->sType;
11153 }
11154 uint32_t pNext_size;
11155 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11156 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11157 *ptr += sizeof(uint32_t);
11158 forUnmarshaling->pNext = nullptr;
11159 if (pNext_size) {
11160 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11161 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11162 *ptr += sizeof(VkStructureType);
11163 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11164 vkStream->alloc((void**)&forUnmarshaling->pNext,
11165 goldfish_vk_extension_struct_size_with_stream_features(
11166 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11167 *(VkStructureType*)forUnmarshaling->pNext = extType;
11168 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11169 ptr);
11170 }
11171 uint64_t cgen_var_0;
11172 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
11173 *ptr += 1 * 8;
11174 *(VkPipeline*)&forUnmarshaling->pipeline =
11175 (VkPipeline)unbox_VkPipeline((VkPipeline)(*&cgen_var_0));
11176 memcpy((uint32_t*)&forUnmarshaling->executableIndex, *ptr, sizeof(uint32_t));
11177 *ptr += sizeof(uint32_t);
11178 }
11179
reservedunmarshal_VkPipelineExecutableStatisticValueKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticValueKHR * forUnmarshaling,uint8_t ** ptr)11180 void reservedunmarshal_VkPipelineExecutableStatisticValueKHR(
11181 VulkanStream* vkStream, VkStructureType rootType,
11182 VkPipelineExecutableStatisticValueKHR* forUnmarshaling, uint8_t** ptr) {
11183 memcpy((VkBool32*)&forUnmarshaling->b32, *ptr, sizeof(VkBool32));
11184 *ptr += sizeof(VkBool32);
11185 }
11186
reservedunmarshal_VkPipelineExecutableStatisticKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableStatisticKHR * forUnmarshaling,uint8_t ** ptr)11187 void reservedunmarshal_VkPipelineExecutableStatisticKHR(
11188 VulkanStream* vkStream, VkStructureType rootType,
11189 VkPipelineExecutableStatisticKHR* forUnmarshaling, uint8_t** ptr) {
11190 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11191 *ptr += sizeof(VkStructureType);
11192 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11193 rootType = forUnmarshaling->sType;
11194 }
11195 uint32_t pNext_size;
11196 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11197 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11198 *ptr += sizeof(uint32_t);
11199 forUnmarshaling->pNext = nullptr;
11200 if (pNext_size) {
11201 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11202 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11203 *ptr += sizeof(VkStructureType);
11204 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11205 vkStream->alloc((void**)&forUnmarshaling->pNext,
11206 goldfish_vk_extension_struct_size_with_stream_features(
11207 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11208 *(VkStructureType*)forUnmarshaling->pNext = extType;
11209 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11210 ptr);
11211 }
11212 memcpy((char*)forUnmarshaling->name, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11213 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
11214 memcpy((char*)forUnmarshaling->description, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11215 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
11216 memcpy((VkPipelineExecutableStatisticFormatKHR*)&forUnmarshaling->format, *ptr,
11217 sizeof(VkPipelineExecutableStatisticFormatKHR));
11218 *ptr += sizeof(VkPipelineExecutableStatisticFormatKHR);
11219 reservedunmarshal_VkPipelineExecutableStatisticValueKHR(
11220 vkStream, rootType, (VkPipelineExecutableStatisticValueKHR*)(&forUnmarshaling->value), ptr);
11221 }
11222
reservedunmarshal_VkPipelineExecutableInternalRepresentationKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineExecutableInternalRepresentationKHR * forUnmarshaling,uint8_t ** ptr)11223 void reservedunmarshal_VkPipelineExecutableInternalRepresentationKHR(
11224 VulkanStream* vkStream, VkStructureType rootType,
11225 VkPipelineExecutableInternalRepresentationKHR* forUnmarshaling, uint8_t** ptr) {
11226 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11227 *ptr += sizeof(VkStructureType);
11228 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11229 rootType = forUnmarshaling->sType;
11230 }
11231 uint32_t pNext_size;
11232 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11233 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11234 *ptr += sizeof(uint32_t);
11235 forUnmarshaling->pNext = nullptr;
11236 if (pNext_size) {
11237 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11238 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11239 *ptr += sizeof(VkStructureType);
11240 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11241 vkStream->alloc((void**)&forUnmarshaling->pNext,
11242 goldfish_vk_extension_struct_size_with_stream_features(
11243 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11244 *(VkStructureType*)forUnmarshaling->pNext = extType;
11245 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11246 ptr);
11247 }
11248 memcpy((char*)forUnmarshaling->name, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11249 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
11250 memcpy((char*)forUnmarshaling->description, *ptr, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
11251 *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
11252 memcpy((VkBool32*)&forUnmarshaling->isText, *ptr, sizeof(VkBool32));
11253 *ptr += sizeof(VkBool32);
11254 memcpy((size_t*)&forUnmarshaling->dataSize, (*ptr), 8);
11255 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->dataSize);
11256 *ptr += 8;
11257 // WARNING PTR CHECK
11258 memcpy((void**)&forUnmarshaling->pData, (*ptr), 8);
11259 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pData);
11260 *ptr += 8;
11261 if (forUnmarshaling->pData) {
11262 vkStream->alloc((void**)&forUnmarshaling->pData,
11263 forUnmarshaling->dataSize * sizeof(uint8_t));
11264 memcpy((void*)forUnmarshaling->pData, *ptr, forUnmarshaling->dataSize * sizeof(uint8_t));
11265 *ptr += forUnmarshaling->dataSize * sizeof(uint8_t);
11266 }
11267 }
11268
11269 #endif
11270 #ifdef VK_KHR_pipeline_library
reservedunmarshal_VkPipelineLibraryCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineLibraryCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)11271 void reservedunmarshal_VkPipelineLibraryCreateInfoKHR(
11272 VulkanStream* vkStream, VkStructureType rootType,
11273 VkPipelineLibraryCreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
11274 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11275 *ptr += sizeof(VkStructureType);
11276 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11277 rootType = forUnmarshaling->sType;
11278 }
11279 uint32_t pNext_size;
11280 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11281 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11282 *ptr += sizeof(uint32_t);
11283 forUnmarshaling->pNext = nullptr;
11284 if (pNext_size) {
11285 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11286 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11287 *ptr += sizeof(VkStructureType);
11288 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11289 vkStream->alloc((void**)&forUnmarshaling->pNext,
11290 goldfish_vk_extension_struct_size_with_stream_features(
11291 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11292 *(VkStructureType*)forUnmarshaling->pNext = extType;
11293 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11294 ptr);
11295 }
11296 memcpy((uint32_t*)&forUnmarshaling->libraryCount, *ptr, sizeof(uint32_t));
11297 *ptr += sizeof(uint32_t);
11298 vkStream->alloc((void**)&forUnmarshaling->pLibraries,
11299 forUnmarshaling->libraryCount * sizeof(const VkPipeline));
11300 if (forUnmarshaling->libraryCount) {
11301 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
11302 *ptr += 8 * forUnmarshaling->libraryCount;
11303 if (forUnmarshaling) {
11304 for (uint32_t k = 0; k < forUnmarshaling->libraryCount; ++k) {
11305 uint64_t tmpval;
11306 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
11307 *(((VkPipeline*)forUnmarshaling->pLibraries) + k) =
11308 tmpval ? (VkPipeline)unbox_VkPipeline((VkPipeline)tmpval) : VK_NULL_HANDLE;
11309 }
11310 }
11311 }
11312 }
11313
11314 #endif
11315 #ifdef VK_KHR_synchronization2
reservedunmarshal_VkQueueFamilyCheckpointProperties2NV(VulkanStream * vkStream,VkStructureType rootType,VkQueueFamilyCheckpointProperties2NV * forUnmarshaling,uint8_t ** ptr)11316 void reservedunmarshal_VkQueueFamilyCheckpointProperties2NV(
11317 VulkanStream* vkStream, VkStructureType rootType,
11318 VkQueueFamilyCheckpointProperties2NV* forUnmarshaling, uint8_t** ptr) {
11319 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11320 *ptr += sizeof(VkStructureType);
11321 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11322 rootType = forUnmarshaling->sType;
11323 }
11324 uint32_t pNext_size;
11325 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11326 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11327 *ptr += sizeof(uint32_t);
11328 forUnmarshaling->pNext = nullptr;
11329 if (pNext_size) {
11330 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11331 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11332 *ptr += sizeof(VkStructureType);
11333 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11334 vkStream->alloc((void**)&forUnmarshaling->pNext,
11335 goldfish_vk_extension_struct_size_with_stream_features(
11336 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11337 *(VkStructureType*)forUnmarshaling->pNext = extType;
11338 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11339 ptr);
11340 }
11341 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->checkpointExecutionStageMask, *ptr,
11342 sizeof(VkPipelineStageFlags2));
11343 *ptr += sizeof(VkPipelineStageFlags2);
11344 }
11345
reservedunmarshal_VkCheckpointData2NV(VulkanStream * vkStream,VkStructureType rootType,VkCheckpointData2NV * forUnmarshaling,uint8_t ** ptr)11346 void reservedunmarshal_VkCheckpointData2NV(VulkanStream* vkStream, VkStructureType rootType,
11347 VkCheckpointData2NV* forUnmarshaling, uint8_t** ptr) {
11348 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11349 *ptr += sizeof(VkStructureType);
11350 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11351 rootType = forUnmarshaling->sType;
11352 }
11353 uint32_t pNext_size;
11354 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11355 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11356 *ptr += sizeof(uint32_t);
11357 forUnmarshaling->pNext = nullptr;
11358 if (pNext_size) {
11359 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11360 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11361 *ptr += sizeof(VkStructureType);
11362 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11363 vkStream->alloc((void**)&forUnmarshaling->pNext,
11364 goldfish_vk_extension_struct_size_with_stream_features(
11365 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11366 *(VkStructureType*)forUnmarshaling->pNext = extType;
11367 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11368 ptr);
11369 }
11370 memcpy((VkPipelineStageFlags2*)&forUnmarshaling->stage, *ptr, sizeof(VkPipelineStageFlags2));
11371 *ptr += sizeof(VkPipelineStageFlags2);
11372 // WARNING PTR CHECK
11373 memcpy((void**)&forUnmarshaling->pCheckpointMarker, (*ptr), 8);
11374 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pCheckpointMarker);
11375 *ptr += 8;
11376 if (forUnmarshaling->pCheckpointMarker) {
11377 vkStream->alloc((void**)&forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
11378 memcpy((void*)forUnmarshaling->pCheckpointMarker, *ptr, sizeof(uint8_t));
11379 *ptr += sizeof(uint8_t);
11380 }
11381 }
11382
11383 #endif
11384 #ifdef VK_KHR_maintenance5
reservedunmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance5FeaturesKHR * forUnmarshaling,uint8_t ** ptr)11385 void reservedunmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
11386 VulkanStream* vkStream, VkStructureType rootType,
11387 VkPhysicalDeviceMaintenance5FeaturesKHR* forUnmarshaling, uint8_t** ptr) {
11388 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11389 *ptr += sizeof(VkStructureType);
11390 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11391 rootType = forUnmarshaling->sType;
11392 }
11393 uint32_t pNext_size;
11394 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11395 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11396 *ptr += sizeof(uint32_t);
11397 forUnmarshaling->pNext = nullptr;
11398 if (pNext_size) {
11399 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11400 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11401 *ptr += sizeof(VkStructureType);
11402 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11403 vkStream->alloc((void**)&forUnmarshaling->pNext,
11404 goldfish_vk_extension_struct_size_with_stream_features(
11405 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11406 *(VkStructureType*)forUnmarshaling->pNext = extType;
11407 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11408 ptr);
11409 }
11410 memcpy((VkBool32*)&forUnmarshaling->maintenance5, *ptr, sizeof(VkBool32));
11411 *ptr += sizeof(VkBool32);
11412 }
11413
reservedunmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceMaintenance5PropertiesKHR * forUnmarshaling,uint8_t ** ptr)11414 void reservedunmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
11415 VulkanStream* vkStream, VkStructureType rootType,
11416 VkPhysicalDeviceMaintenance5PropertiesKHR* forUnmarshaling, uint8_t** ptr) {
11417 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11418 *ptr += sizeof(VkStructureType);
11419 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11420 rootType = forUnmarshaling->sType;
11421 }
11422 uint32_t pNext_size;
11423 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11424 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11425 *ptr += sizeof(uint32_t);
11426 forUnmarshaling->pNext = nullptr;
11427 if (pNext_size) {
11428 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11429 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11430 *ptr += sizeof(VkStructureType);
11431 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11432 vkStream->alloc((void**)&forUnmarshaling->pNext,
11433 goldfish_vk_extension_struct_size_with_stream_features(
11434 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11435 *(VkStructureType*)forUnmarshaling->pNext = extType;
11436 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11437 ptr);
11438 }
11439 memcpy((VkBool32*)&forUnmarshaling->earlyFragmentMultisampleCoverageAfterSampleCounting, *ptr,
11440 sizeof(VkBool32));
11441 *ptr += sizeof(VkBool32);
11442 memcpy((VkBool32*)&forUnmarshaling->earlyFragmentSampleMaskTestBeforeSampleCounting, *ptr,
11443 sizeof(VkBool32));
11444 *ptr += sizeof(VkBool32);
11445 memcpy((VkBool32*)&forUnmarshaling->depthStencilSwizzleOneSupport, *ptr, sizeof(VkBool32));
11446 *ptr += sizeof(VkBool32);
11447 memcpy((VkBool32*)&forUnmarshaling->polygonModePointSize, *ptr, sizeof(VkBool32));
11448 *ptr += sizeof(VkBool32);
11449 memcpy((VkBool32*)&forUnmarshaling->nonStrictSinglePixelWideLinesUseParallelogram, *ptr,
11450 sizeof(VkBool32));
11451 *ptr += sizeof(VkBool32);
11452 memcpy((VkBool32*)&forUnmarshaling->nonStrictWideLinesUseParallelogram, *ptr, sizeof(VkBool32));
11453 *ptr += sizeof(VkBool32);
11454 }
11455
reservedunmarshal_VkRenderingAreaInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRenderingAreaInfoKHR * forUnmarshaling,uint8_t ** ptr)11456 void reservedunmarshal_VkRenderingAreaInfoKHR(VulkanStream* vkStream, VkStructureType rootType,
11457 VkRenderingAreaInfoKHR* forUnmarshaling,
11458 uint8_t** ptr) {
11459 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11460 *ptr += sizeof(VkStructureType);
11461 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11462 rootType = forUnmarshaling->sType;
11463 }
11464 uint32_t pNext_size;
11465 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11466 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11467 *ptr += sizeof(uint32_t);
11468 forUnmarshaling->pNext = nullptr;
11469 if (pNext_size) {
11470 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11471 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11472 *ptr += sizeof(VkStructureType);
11473 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11474 vkStream->alloc((void**)&forUnmarshaling->pNext,
11475 goldfish_vk_extension_struct_size_with_stream_features(
11476 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11477 *(VkStructureType*)forUnmarshaling->pNext = extType;
11478 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11479 ptr);
11480 }
11481 memcpy((uint32_t*)&forUnmarshaling->viewMask, *ptr, sizeof(uint32_t));
11482 *ptr += sizeof(uint32_t);
11483 memcpy((uint32_t*)&forUnmarshaling->colorAttachmentCount, *ptr, sizeof(uint32_t));
11484 *ptr += sizeof(uint32_t);
11485 // WARNING PTR CHECK
11486 memcpy((VkFormat**)&forUnmarshaling->pColorAttachmentFormats, (*ptr), 8);
11487 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pColorAttachmentFormats);
11488 *ptr += 8;
11489 if (forUnmarshaling->pColorAttachmentFormats) {
11490 vkStream->alloc((void**)&forUnmarshaling->pColorAttachmentFormats,
11491 forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
11492 memcpy((VkFormat*)forUnmarshaling->pColorAttachmentFormats, *ptr,
11493 forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
11494 *ptr += forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat);
11495 }
11496 memcpy((VkFormat*)&forUnmarshaling->depthAttachmentFormat, *ptr, sizeof(VkFormat));
11497 *ptr += sizeof(VkFormat);
11498 memcpy((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, *ptr, sizeof(VkFormat));
11499 *ptr += sizeof(VkFormat);
11500 }
11501
reservedunmarshal_VkImageSubresource2KHR(VulkanStream * vkStream,VkStructureType rootType,VkImageSubresource2KHR * forUnmarshaling,uint8_t ** ptr)11502 void reservedunmarshal_VkImageSubresource2KHR(VulkanStream* vkStream, VkStructureType rootType,
11503 VkImageSubresource2KHR* forUnmarshaling,
11504 uint8_t** ptr) {
11505 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11506 *ptr += sizeof(VkStructureType);
11507 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11508 rootType = forUnmarshaling->sType;
11509 }
11510 uint32_t pNext_size;
11511 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11512 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11513 *ptr += sizeof(uint32_t);
11514 forUnmarshaling->pNext = nullptr;
11515 if (pNext_size) {
11516 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11517 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11518 *ptr += sizeof(VkStructureType);
11519 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11520 vkStream->alloc((void**)&forUnmarshaling->pNext,
11521 goldfish_vk_extension_struct_size_with_stream_features(
11522 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11523 *(VkStructureType*)forUnmarshaling->pNext = extType;
11524 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11525 ptr);
11526 }
11527 reservedunmarshal_VkImageSubresource(
11528 vkStream, rootType, (VkImageSubresource*)(&forUnmarshaling->imageSubresource), ptr);
11529 }
11530
reservedunmarshal_VkDeviceImageSubresourceInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkDeviceImageSubresourceInfoKHR * forUnmarshaling,uint8_t ** ptr)11531 void reservedunmarshal_VkDeviceImageSubresourceInfoKHR(
11532 VulkanStream* vkStream, VkStructureType rootType,
11533 VkDeviceImageSubresourceInfoKHR* forUnmarshaling, uint8_t** ptr) {
11534 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11535 *ptr += sizeof(VkStructureType);
11536 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11537 rootType = forUnmarshaling->sType;
11538 }
11539 uint32_t pNext_size;
11540 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11541 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11542 *ptr += sizeof(uint32_t);
11543 forUnmarshaling->pNext = nullptr;
11544 if (pNext_size) {
11545 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11546 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11547 *ptr += sizeof(VkStructureType);
11548 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11549 vkStream->alloc((void**)&forUnmarshaling->pNext,
11550 goldfish_vk_extension_struct_size_with_stream_features(
11551 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11552 *(VkStructureType*)forUnmarshaling->pNext = extType;
11553 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11554 ptr);
11555 }
11556 vkStream->alloc((void**)&forUnmarshaling->pCreateInfo, sizeof(const VkImageCreateInfo));
11557 reservedunmarshal_VkImageCreateInfo(vkStream, rootType,
11558 (VkImageCreateInfo*)(forUnmarshaling->pCreateInfo), ptr);
11559 vkStream->alloc((void**)&forUnmarshaling->pSubresource, sizeof(const VkImageSubresource2KHR));
11560 reservedunmarshal_VkImageSubresource2KHR(
11561 vkStream, rootType, (VkImageSubresource2KHR*)(forUnmarshaling->pSubresource), ptr);
11562 }
11563
reservedunmarshal_VkSubresourceLayout2KHR(VulkanStream * vkStream,VkStructureType rootType,VkSubresourceLayout2KHR * forUnmarshaling,uint8_t ** ptr)11564 void reservedunmarshal_VkSubresourceLayout2KHR(VulkanStream* vkStream, VkStructureType rootType,
11565 VkSubresourceLayout2KHR* forUnmarshaling,
11566 uint8_t** ptr) {
11567 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11568 *ptr += sizeof(VkStructureType);
11569 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11570 rootType = forUnmarshaling->sType;
11571 }
11572 uint32_t pNext_size;
11573 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11574 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11575 *ptr += sizeof(uint32_t);
11576 forUnmarshaling->pNext = nullptr;
11577 if (pNext_size) {
11578 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11579 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11580 *ptr += sizeof(VkStructureType);
11581 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11582 vkStream->alloc((void**)&forUnmarshaling->pNext,
11583 goldfish_vk_extension_struct_size_with_stream_features(
11584 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11585 *(VkStructureType*)forUnmarshaling->pNext = extType;
11586 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11587 ptr);
11588 }
11589 reservedunmarshal_VkSubresourceLayout(
11590 vkStream, rootType, (VkSubresourceLayout*)(&forUnmarshaling->subresourceLayout), ptr);
11591 }
11592
reservedunmarshal_VkPipelineCreateFlags2CreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineCreateFlags2CreateInfoKHR * forUnmarshaling,uint8_t ** ptr)11593 void reservedunmarshal_VkPipelineCreateFlags2CreateInfoKHR(
11594 VulkanStream* vkStream, VkStructureType rootType,
11595 VkPipelineCreateFlags2CreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
11596 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11597 *ptr += sizeof(VkStructureType);
11598 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11599 rootType = forUnmarshaling->sType;
11600 }
11601 uint32_t pNext_size;
11602 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11603 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11604 *ptr += sizeof(uint32_t);
11605 forUnmarshaling->pNext = nullptr;
11606 if (pNext_size) {
11607 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11608 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11609 *ptr += sizeof(VkStructureType);
11610 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11611 vkStream->alloc((void**)&forUnmarshaling->pNext,
11612 goldfish_vk_extension_struct_size_with_stream_features(
11613 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11614 *(VkStructureType*)forUnmarshaling->pNext = extType;
11615 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11616 ptr);
11617 }
11618 memcpy((VkPipelineCreateFlags2KHR*)&forUnmarshaling->flags, *ptr,
11619 sizeof(VkPipelineCreateFlags2KHR));
11620 *ptr += sizeof(VkPipelineCreateFlags2KHR);
11621 }
11622
reservedunmarshal_VkBufferUsageFlags2CreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkBufferUsageFlags2CreateInfoKHR * forUnmarshaling,uint8_t ** ptr)11623 void reservedunmarshal_VkBufferUsageFlags2CreateInfoKHR(
11624 VulkanStream* vkStream, VkStructureType rootType,
11625 VkBufferUsageFlags2CreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
11626 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11627 *ptr += sizeof(VkStructureType);
11628 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11629 rootType = forUnmarshaling->sType;
11630 }
11631 uint32_t pNext_size;
11632 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11633 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11634 *ptr += sizeof(uint32_t);
11635 forUnmarshaling->pNext = nullptr;
11636 if (pNext_size) {
11637 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11638 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11639 *ptr += sizeof(VkStructureType);
11640 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11641 vkStream->alloc((void**)&forUnmarshaling->pNext,
11642 goldfish_vk_extension_struct_size_with_stream_features(
11643 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11644 *(VkStructureType*)forUnmarshaling->pNext = extType;
11645 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11646 ptr);
11647 }
11648 memcpy((VkBufferUsageFlags2KHR*)&forUnmarshaling->usage, *ptr, sizeof(VkBufferUsageFlags2KHR));
11649 *ptr += sizeof(VkBufferUsageFlags2KHR);
11650 }
11651
11652 #endif
11653 #ifdef VK_KHR_line_rasterization
reservedunmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationFeaturesKHR * forUnmarshaling,uint8_t ** ptr)11654 void reservedunmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
11655 VulkanStream* vkStream, VkStructureType rootType,
11656 VkPhysicalDeviceLineRasterizationFeaturesKHR* forUnmarshaling, uint8_t** ptr) {
11657 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11658 *ptr += sizeof(VkStructureType);
11659 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11660 rootType = forUnmarshaling->sType;
11661 }
11662 uint32_t pNext_size;
11663 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11664 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11665 *ptr += sizeof(uint32_t);
11666 forUnmarshaling->pNext = nullptr;
11667 if (pNext_size) {
11668 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11669 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11670 *ptr += sizeof(VkStructureType);
11671 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11672 vkStream->alloc((void**)&forUnmarshaling->pNext,
11673 goldfish_vk_extension_struct_size_with_stream_features(
11674 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11675 *(VkStructureType*)forUnmarshaling->pNext = extType;
11676 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11677 ptr);
11678 }
11679 memcpy((VkBool32*)&forUnmarshaling->rectangularLines, *ptr, sizeof(VkBool32));
11680 *ptr += sizeof(VkBool32);
11681 memcpy((VkBool32*)&forUnmarshaling->bresenhamLines, *ptr, sizeof(VkBool32));
11682 *ptr += sizeof(VkBool32);
11683 memcpy((VkBool32*)&forUnmarshaling->smoothLines, *ptr, sizeof(VkBool32));
11684 *ptr += sizeof(VkBool32);
11685 memcpy((VkBool32*)&forUnmarshaling->stippledRectangularLines, *ptr, sizeof(VkBool32));
11686 *ptr += sizeof(VkBool32);
11687 memcpy((VkBool32*)&forUnmarshaling->stippledBresenhamLines, *ptr, sizeof(VkBool32));
11688 *ptr += sizeof(VkBool32);
11689 memcpy((VkBool32*)&forUnmarshaling->stippledSmoothLines, *ptr, sizeof(VkBool32));
11690 *ptr += sizeof(VkBool32);
11691 }
11692
reservedunmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceLineRasterizationPropertiesKHR * forUnmarshaling,uint8_t ** ptr)11693 void reservedunmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
11694 VulkanStream* vkStream, VkStructureType rootType,
11695 VkPhysicalDeviceLineRasterizationPropertiesKHR* forUnmarshaling, uint8_t** ptr) {
11696 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11697 *ptr += sizeof(VkStructureType);
11698 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11699 rootType = forUnmarshaling->sType;
11700 }
11701 uint32_t pNext_size;
11702 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11703 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11704 *ptr += sizeof(uint32_t);
11705 forUnmarshaling->pNext = nullptr;
11706 if (pNext_size) {
11707 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11708 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11709 *ptr += sizeof(VkStructureType);
11710 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11711 vkStream->alloc((void**)&forUnmarshaling->pNext,
11712 goldfish_vk_extension_struct_size_with_stream_features(
11713 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11714 *(VkStructureType*)forUnmarshaling->pNext = extType;
11715 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11716 ptr);
11717 }
11718 memcpy((uint32_t*)&forUnmarshaling->lineSubPixelPrecisionBits, *ptr, sizeof(uint32_t));
11719 *ptr += sizeof(uint32_t);
11720 }
11721
reservedunmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationLineStateCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)11722 void reservedunmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(
11723 VulkanStream* vkStream, VkStructureType rootType,
11724 VkPipelineRasterizationLineStateCreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
11725 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11726 *ptr += sizeof(VkStructureType);
11727 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11728 rootType = forUnmarshaling->sType;
11729 }
11730 uint32_t pNext_size;
11731 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11732 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11733 *ptr += sizeof(uint32_t);
11734 forUnmarshaling->pNext = nullptr;
11735 if (pNext_size) {
11736 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11737 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11738 *ptr += sizeof(VkStructureType);
11739 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11740 vkStream->alloc((void**)&forUnmarshaling->pNext,
11741 goldfish_vk_extension_struct_size_with_stream_features(
11742 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11743 *(VkStructureType*)forUnmarshaling->pNext = extType;
11744 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11745 ptr);
11746 }
11747 memcpy((VkLineRasterizationModeKHR*)&forUnmarshaling->lineRasterizationMode, *ptr,
11748 sizeof(VkLineRasterizationModeKHR));
11749 *ptr += sizeof(VkLineRasterizationModeKHR);
11750 memcpy((VkBool32*)&forUnmarshaling->stippledLineEnable, *ptr, sizeof(VkBool32));
11751 *ptr += sizeof(VkBool32);
11752 memcpy((uint32_t*)&forUnmarshaling->lineStippleFactor, *ptr, sizeof(uint32_t));
11753 *ptr += sizeof(uint32_t);
11754 memcpy((uint16_t*)&forUnmarshaling->lineStipplePattern, *ptr, sizeof(uint16_t));
11755 *ptr += sizeof(uint16_t);
11756 }
11757
11758 #endif
11759 #ifdef VK_ANDROID_native_buffer
reservedunmarshal_VkNativeBufferUsage2ANDROID(VulkanStream * vkStream,VkStructureType rootType,VkNativeBufferUsage2ANDROID * forUnmarshaling,uint8_t ** ptr)11760 void reservedunmarshal_VkNativeBufferUsage2ANDROID(VulkanStream* vkStream, VkStructureType rootType,
11761 VkNativeBufferUsage2ANDROID* forUnmarshaling,
11762 uint8_t** ptr) {
11763 memcpy((uint64_t*)&forUnmarshaling->consumer, *ptr, sizeof(uint64_t));
11764 *ptr += sizeof(uint64_t);
11765 memcpy((uint64_t*)&forUnmarshaling->producer, *ptr, sizeof(uint64_t));
11766 *ptr += sizeof(uint64_t);
11767 }
11768
reservedunmarshal_VkNativeBufferANDROID(VulkanStream * vkStream,VkStructureType rootType,VkNativeBufferANDROID * forUnmarshaling,uint8_t ** ptr)11769 void reservedunmarshal_VkNativeBufferANDROID(VulkanStream* vkStream, VkStructureType rootType,
11770 VkNativeBufferANDROID* forUnmarshaling,
11771 uint8_t** ptr) {
11772 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11773 *ptr += sizeof(VkStructureType);
11774 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11775 rootType = forUnmarshaling->sType;
11776 }
11777 uint32_t pNext_size;
11778 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11779 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11780 *ptr += sizeof(uint32_t);
11781 forUnmarshaling->pNext = nullptr;
11782 if (pNext_size) {
11783 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11784 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11785 *ptr += sizeof(VkStructureType);
11786 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11787 vkStream->alloc((void**)&forUnmarshaling->pNext,
11788 goldfish_vk_extension_struct_size_with_stream_features(
11789 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11790 *(VkStructureType*)forUnmarshaling->pNext = extType;
11791 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11792 ptr);
11793 }
11794 // WARNING PTR CHECK
11795 memcpy((uint32_t**)&forUnmarshaling->handle, (*ptr), 8);
11796 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->handle);
11797 *ptr += 8;
11798 if (forUnmarshaling->handle) {
11799 vkStream->alloc((void**)&forUnmarshaling->handle, sizeof(const uint32_t));
11800 memcpy((uint32_t*)forUnmarshaling->handle, *ptr, sizeof(const uint32_t));
11801 *ptr += sizeof(const uint32_t);
11802 }
11803 memcpy((int*)&forUnmarshaling->stride, *ptr, sizeof(int));
11804 *ptr += sizeof(int);
11805 memcpy((int*)&forUnmarshaling->format, *ptr, sizeof(int));
11806 *ptr += sizeof(int);
11807 memcpy((int*)&forUnmarshaling->usage, *ptr, sizeof(int));
11808 *ptr += sizeof(int);
11809 reservedunmarshal_VkNativeBufferUsage2ANDROID(
11810 vkStream, rootType, (VkNativeBufferUsage2ANDROID*)(&forUnmarshaling->usage2), ptr);
11811 }
11812
reservedunmarshal_VkSwapchainImageCreateInfoANDROID(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainImageCreateInfoANDROID * forUnmarshaling,uint8_t ** ptr)11813 void reservedunmarshal_VkSwapchainImageCreateInfoANDROID(
11814 VulkanStream* vkStream, VkStructureType rootType,
11815 VkSwapchainImageCreateInfoANDROID* forUnmarshaling, uint8_t** ptr) {
11816 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11817 *ptr += sizeof(VkStructureType);
11818 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11819 rootType = forUnmarshaling->sType;
11820 }
11821 uint32_t pNext_size;
11822 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11823 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11824 *ptr += sizeof(uint32_t);
11825 forUnmarshaling->pNext = nullptr;
11826 if (pNext_size) {
11827 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11828 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11829 *ptr += sizeof(VkStructureType);
11830 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11831 vkStream->alloc((void**)&forUnmarshaling->pNext,
11832 goldfish_vk_extension_struct_size_with_stream_features(
11833 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11834 *(VkStructureType*)forUnmarshaling->pNext = extType;
11835 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11836 ptr);
11837 }
11838 memcpy((VkSwapchainImageUsageFlagsANDROID*)&forUnmarshaling->usage, *ptr,
11839 sizeof(VkSwapchainImageUsageFlagsANDROID));
11840 *ptr += sizeof(VkSwapchainImageUsageFlagsANDROID);
11841 }
11842
reservedunmarshal_VkPhysicalDevicePresentationPropertiesANDROID(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePresentationPropertiesANDROID * forUnmarshaling,uint8_t ** ptr)11843 void reservedunmarshal_VkPhysicalDevicePresentationPropertiesANDROID(
11844 VulkanStream* vkStream, VkStructureType rootType,
11845 VkPhysicalDevicePresentationPropertiesANDROID* forUnmarshaling, uint8_t** ptr) {
11846 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11847 *ptr += sizeof(VkStructureType);
11848 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11849 rootType = forUnmarshaling->sType;
11850 }
11851 uint32_t pNext_size;
11852 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11853 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11854 *ptr += sizeof(uint32_t);
11855 forUnmarshaling->pNext = nullptr;
11856 if (pNext_size) {
11857 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11858 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11859 *ptr += sizeof(VkStructureType);
11860 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11861 vkStream->alloc((void**)&forUnmarshaling->pNext,
11862 goldfish_vk_extension_struct_size_with_stream_features(
11863 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11864 *(VkStructureType*)forUnmarshaling->pNext = extType;
11865 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11866 ptr);
11867 }
11868 memcpy((VkBool32*)&forUnmarshaling->sharedImage, *ptr, sizeof(VkBool32));
11869 *ptr += sizeof(VkBool32);
11870 }
11871
11872 #endif
11873 #ifdef VK_EXT_debug_report
reservedunmarshal_VkDebugReportCallbackCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugReportCallbackCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)11874 void reservedunmarshal_VkDebugReportCallbackCreateInfoEXT(
11875 VulkanStream* vkStream, VkStructureType rootType,
11876 VkDebugReportCallbackCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
11877 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11878 *ptr += sizeof(VkStructureType);
11879 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11880 rootType = forUnmarshaling->sType;
11881 }
11882 uint32_t pNext_size;
11883 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11884 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11885 *ptr += sizeof(uint32_t);
11886 forUnmarshaling->pNext = nullptr;
11887 if (pNext_size) {
11888 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11889 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11890 *ptr += sizeof(VkStructureType);
11891 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11892 vkStream->alloc((void**)&forUnmarshaling->pNext,
11893 goldfish_vk_extension_struct_size_with_stream_features(
11894 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11895 *(VkStructureType*)forUnmarshaling->pNext = extType;
11896 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11897 ptr);
11898 }
11899 memcpy((VkDebugReportFlagsEXT*)&forUnmarshaling->flags, *ptr, sizeof(VkDebugReportFlagsEXT));
11900 *ptr += sizeof(VkDebugReportFlagsEXT);
11901 memcpy((PFN_vkDebugReportCallbackEXT*)&forUnmarshaling->pfnCallback, (*ptr), 8);
11902 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnCallback);
11903 *ptr += 8;
11904 // WARNING PTR CHECK
11905 memcpy((void**)&forUnmarshaling->pUserData, (*ptr), 8);
11906 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pUserData);
11907 *ptr += 8;
11908 if (forUnmarshaling->pUserData) {
11909 vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
11910 memcpy((void*)forUnmarshaling->pUserData, *ptr, sizeof(uint8_t));
11911 *ptr += sizeof(uint8_t);
11912 }
11913 }
11914
11915 #endif
11916 #ifdef VK_EXT_transform_feedback
reservedunmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackFeaturesEXT * forUnmarshaling,uint8_t ** ptr)11917 void reservedunmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
11918 VulkanStream* vkStream, VkStructureType rootType,
11919 VkPhysicalDeviceTransformFeedbackFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
11920 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11921 *ptr += sizeof(VkStructureType);
11922 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11923 rootType = forUnmarshaling->sType;
11924 }
11925 uint32_t pNext_size;
11926 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11927 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11928 *ptr += sizeof(uint32_t);
11929 forUnmarshaling->pNext = nullptr;
11930 if (pNext_size) {
11931 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11932 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11933 *ptr += sizeof(VkStructureType);
11934 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11935 vkStream->alloc((void**)&forUnmarshaling->pNext,
11936 goldfish_vk_extension_struct_size_with_stream_features(
11937 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11938 *(VkStructureType*)forUnmarshaling->pNext = extType;
11939 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11940 ptr);
11941 }
11942 memcpy((VkBool32*)&forUnmarshaling->transformFeedback, *ptr, sizeof(VkBool32));
11943 *ptr += sizeof(VkBool32);
11944 memcpy((VkBool32*)&forUnmarshaling->geometryStreams, *ptr, sizeof(VkBool32));
11945 *ptr += sizeof(VkBool32);
11946 }
11947
reservedunmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTransformFeedbackPropertiesEXT * forUnmarshaling,uint8_t ** ptr)11948 void reservedunmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
11949 VulkanStream* vkStream, VkStructureType rootType,
11950 VkPhysicalDeviceTransformFeedbackPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
11951 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
11952 *ptr += sizeof(VkStructureType);
11953 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
11954 rootType = forUnmarshaling->sType;
11955 }
11956 uint32_t pNext_size;
11957 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
11958 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
11959 *ptr += sizeof(uint32_t);
11960 forUnmarshaling->pNext = nullptr;
11961 if (pNext_size) {
11962 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
11963 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
11964 *ptr += sizeof(VkStructureType);
11965 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
11966 vkStream->alloc((void**)&forUnmarshaling->pNext,
11967 goldfish_vk_extension_struct_size_with_stream_features(
11968 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
11969 *(VkStructureType*)forUnmarshaling->pNext = extType;
11970 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
11971 ptr);
11972 }
11973 memcpy((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreams, *ptr, sizeof(uint32_t));
11974 *ptr += sizeof(uint32_t);
11975 memcpy((uint32_t*)&forUnmarshaling->maxTransformFeedbackBuffers, *ptr, sizeof(uint32_t));
11976 *ptr += sizeof(uint32_t);
11977 memcpy((VkDeviceSize*)&forUnmarshaling->maxTransformFeedbackBufferSize, *ptr,
11978 sizeof(VkDeviceSize));
11979 *ptr += sizeof(VkDeviceSize);
11980 memcpy((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreamDataSize, *ptr, sizeof(uint32_t));
11981 *ptr += sizeof(uint32_t);
11982 memcpy((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataSize, *ptr, sizeof(uint32_t));
11983 *ptr += sizeof(uint32_t);
11984 memcpy((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataStride, *ptr,
11985 sizeof(uint32_t));
11986 *ptr += sizeof(uint32_t);
11987 memcpy((VkBool32*)&forUnmarshaling->transformFeedbackQueries, *ptr, sizeof(VkBool32));
11988 *ptr += sizeof(VkBool32);
11989 memcpy((VkBool32*)&forUnmarshaling->transformFeedbackStreamsLinesTriangles, *ptr,
11990 sizeof(VkBool32));
11991 *ptr += sizeof(VkBool32);
11992 memcpy((VkBool32*)&forUnmarshaling->transformFeedbackRasterizationStreamSelect, *ptr,
11993 sizeof(VkBool32));
11994 *ptr += sizeof(VkBool32);
11995 memcpy((VkBool32*)&forUnmarshaling->transformFeedbackDraw, *ptr, sizeof(VkBool32));
11996 *ptr += sizeof(VkBool32);
11997 }
11998
reservedunmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationStateStreamCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)11999 void reservedunmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
12000 VulkanStream* vkStream, VkStructureType rootType,
12001 VkPipelineRasterizationStateStreamCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
12002 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12003 *ptr += sizeof(VkStructureType);
12004 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12005 rootType = forUnmarshaling->sType;
12006 }
12007 uint32_t pNext_size;
12008 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12009 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12010 *ptr += sizeof(uint32_t);
12011 forUnmarshaling->pNext = nullptr;
12012 if (pNext_size) {
12013 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12014 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12015 *ptr += sizeof(VkStructureType);
12016 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12017 vkStream->alloc((void**)&forUnmarshaling->pNext,
12018 goldfish_vk_extension_struct_size_with_stream_features(
12019 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12020 *(VkStructureType*)forUnmarshaling->pNext = extType;
12021 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12022 ptr);
12023 }
12024 memcpy((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forUnmarshaling->flags, *ptr,
12025 sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
12026 *ptr += sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT);
12027 memcpy((uint32_t*)&forUnmarshaling->rasterizationStream, *ptr, sizeof(uint32_t));
12028 *ptr += sizeof(uint32_t);
12029 }
12030
12031 #endif
12032 #ifdef VK_EXT_depth_clip_enable
reservedunmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDepthClipEnableFeaturesEXT * forUnmarshaling,uint8_t ** ptr)12033 void reservedunmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
12034 VulkanStream* vkStream, VkStructureType rootType,
12035 VkPhysicalDeviceDepthClipEnableFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
12036 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12037 *ptr += sizeof(VkStructureType);
12038 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12039 rootType = forUnmarshaling->sType;
12040 }
12041 uint32_t pNext_size;
12042 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12043 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12044 *ptr += sizeof(uint32_t);
12045 forUnmarshaling->pNext = nullptr;
12046 if (pNext_size) {
12047 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12048 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12049 *ptr += sizeof(VkStructureType);
12050 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12051 vkStream->alloc((void**)&forUnmarshaling->pNext,
12052 goldfish_vk_extension_struct_size_with_stream_features(
12053 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12054 *(VkStructureType*)forUnmarshaling->pNext = extType;
12055 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12056 ptr);
12057 }
12058 memcpy((VkBool32*)&forUnmarshaling->depthClipEnable, *ptr, sizeof(VkBool32));
12059 *ptr += sizeof(VkBool32);
12060 }
12061
reservedunmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationDepthClipStateCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)12062 void reservedunmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
12063 VulkanStream* vkStream, VkStructureType rootType,
12064 VkPipelineRasterizationDepthClipStateCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
12065 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12066 *ptr += sizeof(VkStructureType);
12067 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12068 rootType = forUnmarshaling->sType;
12069 }
12070 uint32_t pNext_size;
12071 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12072 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12073 *ptr += sizeof(uint32_t);
12074 forUnmarshaling->pNext = nullptr;
12075 if (pNext_size) {
12076 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12077 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12078 *ptr += sizeof(VkStructureType);
12079 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12080 vkStream->alloc((void**)&forUnmarshaling->pNext,
12081 goldfish_vk_extension_struct_size_with_stream_features(
12082 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12083 *(VkStructureType*)forUnmarshaling->pNext = extType;
12084 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12085 ptr);
12086 }
12087 memcpy((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forUnmarshaling->flags, *ptr,
12088 sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
12089 *ptr += sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT);
12090 memcpy((VkBool32*)&forUnmarshaling->depthClipEnable, *ptr, sizeof(VkBool32));
12091 *ptr += sizeof(VkBool32);
12092 }
12093
12094 #endif
12095 #ifdef VK_EXT_debug_utils
reservedunmarshal_VkDebugUtilsLabelEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsLabelEXT * forUnmarshaling,uint8_t ** ptr)12096 void reservedunmarshal_VkDebugUtilsLabelEXT(VulkanStream* vkStream, VkStructureType rootType,
12097 VkDebugUtilsLabelEXT* forUnmarshaling, uint8_t** ptr) {
12098 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12099 *ptr += sizeof(VkStructureType);
12100 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12101 rootType = forUnmarshaling->sType;
12102 }
12103 uint32_t pNext_size;
12104 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12105 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12106 *ptr += sizeof(uint32_t);
12107 forUnmarshaling->pNext = nullptr;
12108 if (pNext_size) {
12109 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12110 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12111 *ptr += sizeof(VkStructureType);
12112 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12113 vkStream->alloc((void**)&forUnmarshaling->pNext,
12114 goldfish_vk_extension_struct_size_with_stream_features(
12115 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12116 *(VkStructureType*)forUnmarshaling->pNext = extType;
12117 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12118 ptr);
12119 }
12120 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pLabelName, ptr);
12121 memcpy((float*)forUnmarshaling->color, *ptr, 4 * sizeof(float));
12122 *ptr += 4 * sizeof(float);
12123 }
12124
reservedunmarshal_VkDebugUtilsObjectNameInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsObjectNameInfoEXT * forUnmarshaling,uint8_t ** ptr)12125 void reservedunmarshal_VkDebugUtilsObjectNameInfoEXT(VulkanStream* vkStream,
12126 VkStructureType rootType,
12127 VkDebugUtilsObjectNameInfoEXT* forUnmarshaling,
12128 uint8_t** ptr) {
12129 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12130 *ptr += sizeof(VkStructureType);
12131 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12132 rootType = forUnmarshaling->sType;
12133 }
12134 uint32_t pNext_size;
12135 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12136 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12137 *ptr += sizeof(uint32_t);
12138 forUnmarshaling->pNext = nullptr;
12139 if (pNext_size) {
12140 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12141 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12142 *ptr += sizeof(VkStructureType);
12143 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12144 vkStream->alloc((void**)&forUnmarshaling->pNext,
12145 goldfish_vk_extension_struct_size_with_stream_features(
12146 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12147 *(VkStructureType*)forUnmarshaling->pNext = extType;
12148 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12149 ptr);
12150 }
12151 memcpy((VkObjectType*)&forUnmarshaling->objectType, *ptr, sizeof(VkObjectType));
12152 *ptr += sizeof(VkObjectType);
12153 memcpy((uint64_t*)&forUnmarshaling->objectHandle, *ptr, sizeof(uint64_t));
12154 *ptr += sizeof(uint64_t);
12155 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
12156 // WARNING PTR CHECK
12157 memcpy((char**)&forUnmarshaling->pObjectName, (*ptr), 8);
12158 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pObjectName);
12159 *ptr += 8;
12160 if (forUnmarshaling->pObjectName) {
12161 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pObjectName, ptr);
12162 }
12163 } else {
12164 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pObjectName, ptr);
12165 }
12166 }
12167
reservedunmarshal_VkDebugUtilsMessengerCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsMessengerCallbackDataEXT * forUnmarshaling,uint8_t ** ptr)12168 void reservedunmarshal_VkDebugUtilsMessengerCallbackDataEXT(
12169 VulkanStream* vkStream, VkStructureType rootType,
12170 VkDebugUtilsMessengerCallbackDataEXT* forUnmarshaling, uint8_t** ptr) {
12171 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12172 *ptr += sizeof(VkStructureType);
12173 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12174 rootType = forUnmarshaling->sType;
12175 }
12176 uint32_t pNext_size;
12177 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12178 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12179 *ptr += sizeof(uint32_t);
12180 forUnmarshaling->pNext = nullptr;
12181 if (pNext_size) {
12182 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12183 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12184 *ptr += sizeof(VkStructureType);
12185 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12186 vkStream->alloc((void**)&forUnmarshaling->pNext,
12187 goldfish_vk_extension_struct_size_with_stream_features(
12188 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12189 *(VkStructureType*)forUnmarshaling->pNext = extType;
12190 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12191 ptr);
12192 }
12193 memcpy((VkDebugUtilsMessengerCallbackDataFlagsEXT*)&forUnmarshaling->flags, *ptr,
12194 sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT));
12195 *ptr += sizeof(VkDebugUtilsMessengerCallbackDataFlagsEXT);
12196 if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT) {
12197 // WARNING PTR CHECK
12198 memcpy((char**)&forUnmarshaling->pMessageIdName, (*ptr), 8);
12199 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pMessageIdName);
12200 *ptr += 8;
12201 if (forUnmarshaling->pMessageIdName) {
12202 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pMessageIdName, ptr);
12203 }
12204 } else {
12205 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pMessageIdName, ptr);
12206 }
12207 memcpy((int32_t*)&forUnmarshaling->messageIdNumber, *ptr, sizeof(int32_t));
12208 *ptr += sizeof(int32_t);
12209 vkStream->loadStringInPlaceWithStreamPtr((char**)&forUnmarshaling->pMessage, ptr);
12210 memcpy((uint32_t*)&forUnmarshaling->queueLabelCount, *ptr, sizeof(uint32_t));
12211 *ptr += sizeof(uint32_t);
12212 vkStream->alloc((void**)&forUnmarshaling->pQueueLabels,
12213 forUnmarshaling->queueLabelCount * sizeof(const VkDebugUtilsLabelEXT));
12214 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueLabelCount; ++i) {
12215 reservedunmarshal_VkDebugUtilsLabelEXT(
12216 vkStream, rootType, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pQueueLabels + i), ptr);
12217 }
12218 memcpy((uint32_t*)&forUnmarshaling->cmdBufLabelCount, *ptr, sizeof(uint32_t));
12219 *ptr += sizeof(uint32_t);
12220 vkStream->alloc((void**)&forUnmarshaling->pCmdBufLabels,
12221 forUnmarshaling->cmdBufLabelCount * sizeof(const VkDebugUtilsLabelEXT));
12222 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->cmdBufLabelCount; ++i) {
12223 reservedunmarshal_VkDebugUtilsLabelEXT(
12224 vkStream, rootType, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pCmdBufLabels + i), ptr);
12225 }
12226 memcpy((uint32_t*)&forUnmarshaling->objectCount, *ptr, sizeof(uint32_t));
12227 *ptr += sizeof(uint32_t);
12228 vkStream->alloc((void**)&forUnmarshaling->pObjects,
12229 forUnmarshaling->objectCount * sizeof(const VkDebugUtilsObjectNameInfoEXT));
12230 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->objectCount; ++i) {
12231 reservedunmarshal_VkDebugUtilsObjectNameInfoEXT(
12232 vkStream, rootType, (VkDebugUtilsObjectNameInfoEXT*)(forUnmarshaling->pObjects + i),
12233 ptr);
12234 }
12235 }
12236
reservedunmarshal_VkDebugUtilsMessengerCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsMessengerCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)12237 void reservedunmarshal_VkDebugUtilsMessengerCreateInfoEXT(
12238 VulkanStream* vkStream, VkStructureType rootType,
12239 VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
12240 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12241 *ptr += sizeof(VkStructureType);
12242 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12243 rootType = forUnmarshaling->sType;
12244 }
12245 uint32_t pNext_size;
12246 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12247 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12248 *ptr += sizeof(uint32_t);
12249 forUnmarshaling->pNext = nullptr;
12250 if (pNext_size) {
12251 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12252 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12253 *ptr += sizeof(VkStructureType);
12254 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12255 vkStream->alloc((void**)&forUnmarshaling->pNext,
12256 goldfish_vk_extension_struct_size_with_stream_features(
12257 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12258 *(VkStructureType*)forUnmarshaling->pNext = extType;
12259 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12260 ptr);
12261 }
12262 memcpy((VkDebugUtilsMessengerCreateFlagsEXT*)&forUnmarshaling->flags, *ptr,
12263 sizeof(VkDebugUtilsMessengerCreateFlagsEXT));
12264 *ptr += sizeof(VkDebugUtilsMessengerCreateFlagsEXT);
12265 memcpy((VkDebugUtilsMessageSeverityFlagsEXT*)&forUnmarshaling->messageSeverity, *ptr,
12266 sizeof(VkDebugUtilsMessageSeverityFlagsEXT));
12267 *ptr += sizeof(VkDebugUtilsMessageSeverityFlagsEXT);
12268 memcpy((VkDebugUtilsMessageTypeFlagsEXT*)&forUnmarshaling->messageType, *ptr,
12269 sizeof(VkDebugUtilsMessageTypeFlagsEXT));
12270 *ptr += sizeof(VkDebugUtilsMessageTypeFlagsEXT);
12271 memcpy((PFN_vkDebugUtilsMessengerCallbackEXT*)&forUnmarshaling->pfnUserCallback, (*ptr), 8);
12272 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnUserCallback);
12273 *ptr += 8;
12274 // WARNING PTR CHECK
12275 memcpy((void**)&forUnmarshaling->pUserData, (*ptr), 8);
12276 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pUserData);
12277 *ptr += 8;
12278 if (forUnmarshaling->pUserData) {
12279 vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
12280 memcpy((void*)forUnmarshaling->pUserData, *ptr, sizeof(uint8_t));
12281 *ptr += sizeof(uint8_t);
12282 }
12283 }
12284
reservedunmarshal_VkDebugUtilsObjectTagInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDebugUtilsObjectTagInfoEXT * forUnmarshaling,uint8_t ** ptr)12285 void reservedunmarshal_VkDebugUtilsObjectTagInfoEXT(VulkanStream* vkStream,
12286 VkStructureType rootType,
12287 VkDebugUtilsObjectTagInfoEXT* forUnmarshaling,
12288 uint8_t** ptr) {
12289 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12290 *ptr += sizeof(VkStructureType);
12291 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12292 rootType = forUnmarshaling->sType;
12293 }
12294 uint32_t pNext_size;
12295 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12296 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12297 *ptr += sizeof(uint32_t);
12298 forUnmarshaling->pNext = nullptr;
12299 if (pNext_size) {
12300 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12301 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12302 *ptr += sizeof(VkStructureType);
12303 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12304 vkStream->alloc((void**)&forUnmarshaling->pNext,
12305 goldfish_vk_extension_struct_size_with_stream_features(
12306 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12307 *(VkStructureType*)forUnmarshaling->pNext = extType;
12308 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12309 ptr);
12310 }
12311 memcpy((VkObjectType*)&forUnmarshaling->objectType, *ptr, sizeof(VkObjectType));
12312 *ptr += sizeof(VkObjectType);
12313 memcpy((uint64_t*)&forUnmarshaling->objectHandle, *ptr, sizeof(uint64_t));
12314 *ptr += sizeof(uint64_t);
12315 memcpy((uint64_t*)&forUnmarshaling->tagName, *ptr, sizeof(uint64_t));
12316 *ptr += sizeof(uint64_t);
12317 memcpy((size_t*)&forUnmarshaling->tagSize, (*ptr), 8);
12318 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->tagSize);
12319 *ptr += 8;
12320 vkStream->alloc((void**)&forUnmarshaling->pTag,
12321 forUnmarshaling->tagSize * sizeof(const uint8_t));
12322 memcpy((void*)forUnmarshaling->pTag, *ptr, forUnmarshaling->tagSize * sizeof(const uint8_t));
12323 *ptr += forUnmarshaling->tagSize * sizeof(const uint8_t);
12324 }
12325
12326 #endif
12327 #ifdef VK_EXT_image_drm_format_modifier
reservedunmarshal_VkDrmFormatModifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesEXT * forUnmarshaling,uint8_t ** ptr)12328 void reservedunmarshal_VkDrmFormatModifierPropertiesEXT(
12329 VulkanStream* vkStream, VkStructureType rootType,
12330 VkDrmFormatModifierPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
12331 memcpy((uint64_t*)&forUnmarshaling->drmFormatModifier, *ptr, sizeof(uint64_t));
12332 *ptr += sizeof(uint64_t);
12333 memcpy((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, *ptr, sizeof(uint32_t));
12334 *ptr += sizeof(uint32_t);
12335 memcpy((VkFormatFeatureFlags*)&forUnmarshaling->drmFormatModifierTilingFeatures, *ptr,
12336 sizeof(VkFormatFeatureFlags));
12337 *ptr += sizeof(VkFormatFeatureFlags);
12338 }
12339
reservedunmarshal_VkDrmFormatModifierPropertiesListEXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesListEXT * forUnmarshaling,uint8_t ** ptr)12340 void reservedunmarshal_VkDrmFormatModifierPropertiesListEXT(
12341 VulkanStream* vkStream, VkStructureType rootType,
12342 VkDrmFormatModifierPropertiesListEXT* forUnmarshaling, uint8_t** ptr) {
12343 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12344 *ptr += sizeof(VkStructureType);
12345 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12346 rootType = forUnmarshaling->sType;
12347 }
12348 uint32_t pNext_size;
12349 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12350 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12351 *ptr += sizeof(uint32_t);
12352 forUnmarshaling->pNext = nullptr;
12353 if (pNext_size) {
12354 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12355 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12356 *ptr += sizeof(VkStructureType);
12357 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12358 vkStream->alloc((void**)&forUnmarshaling->pNext,
12359 goldfish_vk_extension_struct_size_with_stream_features(
12360 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12361 *(VkStructureType*)forUnmarshaling->pNext = extType;
12362 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12363 ptr);
12364 }
12365 memcpy((uint32_t*)&forUnmarshaling->drmFormatModifierCount, *ptr, sizeof(uint32_t));
12366 *ptr += sizeof(uint32_t);
12367 // WARNING PTR CHECK
12368 memcpy((VkDrmFormatModifierPropertiesEXT**)&forUnmarshaling->pDrmFormatModifierProperties,
12369 (*ptr), 8);
12370 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDrmFormatModifierProperties);
12371 *ptr += 8;
12372 if (forUnmarshaling->pDrmFormatModifierProperties) {
12373 vkStream->alloc(
12374 (void**)&forUnmarshaling->pDrmFormatModifierProperties,
12375 forUnmarshaling->drmFormatModifierCount * sizeof(VkDrmFormatModifierPropertiesEXT));
12376 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
12377 reservedunmarshal_VkDrmFormatModifierPropertiesEXT(
12378 vkStream, rootType,
12379 (VkDrmFormatModifierPropertiesEXT*)(forUnmarshaling->pDrmFormatModifierProperties +
12380 i),
12381 ptr);
12382 }
12383 }
12384 }
12385
reservedunmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageDrmFormatModifierInfoEXT * forUnmarshaling,uint8_t ** ptr)12386 void reservedunmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
12387 VulkanStream* vkStream, VkStructureType rootType,
12388 VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forUnmarshaling, uint8_t** ptr) {
12389 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12390 *ptr += sizeof(VkStructureType);
12391 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12392 rootType = forUnmarshaling->sType;
12393 }
12394 uint32_t pNext_size;
12395 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12396 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12397 *ptr += sizeof(uint32_t);
12398 forUnmarshaling->pNext = nullptr;
12399 if (pNext_size) {
12400 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12401 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12402 *ptr += sizeof(VkStructureType);
12403 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12404 vkStream->alloc((void**)&forUnmarshaling->pNext,
12405 goldfish_vk_extension_struct_size_with_stream_features(
12406 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12407 *(VkStructureType*)forUnmarshaling->pNext = extType;
12408 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12409 ptr);
12410 }
12411 memcpy((uint64_t*)&forUnmarshaling->drmFormatModifier, *ptr, sizeof(uint64_t));
12412 *ptr += sizeof(uint64_t);
12413 memcpy((VkSharingMode*)&forUnmarshaling->sharingMode, *ptr, sizeof(VkSharingMode));
12414 *ptr += sizeof(VkSharingMode);
12415 memcpy((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, *ptr, sizeof(uint32_t));
12416 *ptr += sizeof(uint32_t);
12417 // WARNING PTR CHECK
12418 memcpy((uint32_t**)&forUnmarshaling->pQueueFamilyIndices, (*ptr), 8);
12419 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pQueueFamilyIndices);
12420 *ptr += 8;
12421 if (forUnmarshaling->pQueueFamilyIndices) {
12422 vkStream->alloc((void**)&forUnmarshaling->pQueueFamilyIndices,
12423 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
12424 memcpy((uint32_t*)forUnmarshaling->pQueueFamilyIndices, *ptr,
12425 forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
12426 *ptr += forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
12427 }
12428 }
12429
reservedunmarshal_VkImageDrmFormatModifierListCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageDrmFormatModifierListCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)12430 void reservedunmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
12431 VulkanStream* vkStream, VkStructureType rootType,
12432 VkImageDrmFormatModifierListCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
12433 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12434 *ptr += sizeof(VkStructureType);
12435 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12436 rootType = forUnmarshaling->sType;
12437 }
12438 uint32_t pNext_size;
12439 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12440 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12441 *ptr += sizeof(uint32_t);
12442 forUnmarshaling->pNext = nullptr;
12443 if (pNext_size) {
12444 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12445 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12446 *ptr += sizeof(VkStructureType);
12447 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12448 vkStream->alloc((void**)&forUnmarshaling->pNext,
12449 goldfish_vk_extension_struct_size_with_stream_features(
12450 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12451 *(VkStructureType*)forUnmarshaling->pNext = extType;
12452 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12453 ptr);
12454 }
12455 memcpy((uint32_t*)&forUnmarshaling->drmFormatModifierCount, *ptr, sizeof(uint32_t));
12456 *ptr += sizeof(uint32_t);
12457 vkStream->alloc((void**)&forUnmarshaling->pDrmFormatModifiers,
12458 forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t));
12459 memcpy((uint64_t*)forUnmarshaling->pDrmFormatModifiers, *ptr,
12460 forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t));
12461 *ptr += forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t);
12462 }
12463
reservedunmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageDrmFormatModifierExplicitCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)12464 void reservedunmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
12465 VulkanStream* vkStream, VkStructureType rootType,
12466 VkImageDrmFormatModifierExplicitCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
12467 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12468 *ptr += sizeof(VkStructureType);
12469 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12470 rootType = forUnmarshaling->sType;
12471 }
12472 uint32_t pNext_size;
12473 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12474 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12475 *ptr += sizeof(uint32_t);
12476 forUnmarshaling->pNext = nullptr;
12477 if (pNext_size) {
12478 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12479 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12480 *ptr += sizeof(VkStructureType);
12481 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12482 vkStream->alloc((void**)&forUnmarshaling->pNext,
12483 goldfish_vk_extension_struct_size_with_stream_features(
12484 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12485 *(VkStructureType*)forUnmarshaling->pNext = extType;
12486 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12487 ptr);
12488 }
12489 memcpy((uint64_t*)&forUnmarshaling->drmFormatModifier, *ptr, sizeof(uint64_t));
12490 *ptr += sizeof(uint64_t);
12491 memcpy((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, *ptr, sizeof(uint32_t));
12492 *ptr += sizeof(uint32_t);
12493 vkStream->alloc(
12494 (void**)&forUnmarshaling->pPlaneLayouts,
12495 forUnmarshaling->drmFormatModifierPlaneCount * sizeof(const VkSubresourceLayout));
12496 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierPlaneCount; ++i) {
12497 reservedunmarshal_VkSubresourceLayout(
12498 vkStream, rootType, (VkSubresourceLayout*)(forUnmarshaling->pPlaneLayouts + i), ptr);
12499 }
12500 }
12501
reservedunmarshal_VkImageDrmFormatModifierPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageDrmFormatModifierPropertiesEXT * forUnmarshaling,uint8_t ** ptr)12502 void reservedunmarshal_VkImageDrmFormatModifierPropertiesEXT(
12503 VulkanStream* vkStream, VkStructureType rootType,
12504 VkImageDrmFormatModifierPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
12505 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12506 *ptr += sizeof(VkStructureType);
12507 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12508 rootType = forUnmarshaling->sType;
12509 }
12510 uint32_t pNext_size;
12511 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12512 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12513 *ptr += sizeof(uint32_t);
12514 forUnmarshaling->pNext = nullptr;
12515 if (pNext_size) {
12516 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12517 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12518 *ptr += sizeof(VkStructureType);
12519 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12520 vkStream->alloc((void**)&forUnmarshaling->pNext,
12521 goldfish_vk_extension_struct_size_with_stream_features(
12522 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12523 *(VkStructureType*)forUnmarshaling->pNext = extType;
12524 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12525 ptr);
12526 }
12527 memcpy((uint64_t*)&forUnmarshaling->drmFormatModifier, *ptr, sizeof(uint64_t));
12528 *ptr += sizeof(uint64_t);
12529 }
12530
reservedunmarshal_VkDrmFormatModifierProperties2EXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierProperties2EXT * forUnmarshaling,uint8_t ** ptr)12531 void reservedunmarshal_VkDrmFormatModifierProperties2EXT(
12532 VulkanStream* vkStream, VkStructureType rootType,
12533 VkDrmFormatModifierProperties2EXT* forUnmarshaling, uint8_t** ptr) {
12534 memcpy((uint64_t*)&forUnmarshaling->drmFormatModifier, *ptr, sizeof(uint64_t));
12535 *ptr += sizeof(uint64_t);
12536 memcpy((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, *ptr, sizeof(uint32_t));
12537 *ptr += sizeof(uint32_t);
12538 memcpy((VkFormatFeatureFlags2*)&forUnmarshaling->drmFormatModifierTilingFeatures, *ptr,
12539 sizeof(VkFormatFeatureFlags2));
12540 *ptr += sizeof(VkFormatFeatureFlags2);
12541 }
12542
reservedunmarshal_VkDrmFormatModifierPropertiesList2EXT(VulkanStream * vkStream,VkStructureType rootType,VkDrmFormatModifierPropertiesList2EXT * forUnmarshaling,uint8_t ** ptr)12543 void reservedunmarshal_VkDrmFormatModifierPropertiesList2EXT(
12544 VulkanStream* vkStream, VkStructureType rootType,
12545 VkDrmFormatModifierPropertiesList2EXT* forUnmarshaling, uint8_t** ptr) {
12546 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12547 *ptr += sizeof(VkStructureType);
12548 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12549 rootType = forUnmarshaling->sType;
12550 }
12551 uint32_t pNext_size;
12552 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12553 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12554 *ptr += sizeof(uint32_t);
12555 forUnmarshaling->pNext = nullptr;
12556 if (pNext_size) {
12557 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12558 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12559 *ptr += sizeof(VkStructureType);
12560 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12561 vkStream->alloc((void**)&forUnmarshaling->pNext,
12562 goldfish_vk_extension_struct_size_with_stream_features(
12563 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12564 *(VkStructureType*)forUnmarshaling->pNext = extType;
12565 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12566 ptr);
12567 }
12568 memcpy((uint32_t*)&forUnmarshaling->drmFormatModifierCount, *ptr, sizeof(uint32_t));
12569 *ptr += sizeof(uint32_t);
12570 // WARNING PTR CHECK
12571 memcpy((VkDrmFormatModifierProperties2EXT**)&forUnmarshaling->pDrmFormatModifierProperties,
12572 (*ptr), 8);
12573 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDrmFormatModifierProperties);
12574 *ptr += 8;
12575 if (forUnmarshaling->pDrmFormatModifierProperties) {
12576 vkStream->alloc(
12577 (void**)&forUnmarshaling->pDrmFormatModifierProperties,
12578 forUnmarshaling->drmFormatModifierCount * sizeof(VkDrmFormatModifierProperties2EXT));
12579 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i) {
12580 reservedunmarshal_VkDrmFormatModifierProperties2EXT(
12581 vkStream, rootType,
12582 (VkDrmFormatModifierProperties2EXT*)(forUnmarshaling->pDrmFormatModifierProperties +
12583 i),
12584 ptr);
12585 }
12586 }
12587 }
12588
12589 #endif
12590 #ifdef VK_EXT_external_memory_host
reservedunmarshal_VkImportMemoryHostPointerInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkImportMemoryHostPointerInfoEXT * forUnmarshaling,uint8_t ** ptr)12591 void reservedunmarshal_VkImportMemoryHostPointerInfoEXT(
12592 VulkanStream* vkStream, VkStructureType rootType,
12593 VkImportMemoryHostPointerInfoEXT* forUnmarshaling, uint8_t** ptr) {
12594 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12595 *ptr += sizeof(VkStructureType);
12596 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12597 rootType = forUnmarshaling->sType;
12598 }
12599 uint32_t pNext_size;
12600 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12601 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12602 *ptr += sizeof(uint32_t);
12603 forUnmarshaling->pNext = nullptr;
12604 if (pNext_size) {
12605 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12606 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12607 *ptr += sizeof(VkStructureType);
12608 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12609 vkStream->alloc((void**)&forUnmarshaling->pNext,
12610 goldfish_vk_extension_struct_size_with_stream_features(
12611 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12612 *(VkStructureType*)forUnmarshaling->pNext = extType;
12613 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12614 ptr);
12615 }
12616 memcpy((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, *ptr,
12617 sizeof(VkExternalMemoryHandleTypeFlagBits));
12618 *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
12619 vkStream->alloc((void**)&forUnmarshaling->pHostPointer, sizeof(uint8_t));
12620 memcpy((void*)forUnmarshaling->pHostPointer, *ptr, sizeof(uint8_t));
12621 *ptr += sizeof(uint8_t);
12622 }
12623
reservedunmarshal_VkMemoryHostPointerPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkMemoryHostPointerPropertiesEXT * forUnmarshaling,uint8_t ** ptr)12624 void reservedunmarshal_VkMemoryHostPointerPropertiesEXT(
12625 VulkanStream* vkStream, VkStructureType rootType,
12626 VkMemoryHostPointerPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
12627 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12628 *ptr += sizeof(VkStructureType);
12629 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12630 rootType = forUnmarshaling->sType;
12631 }
12632 uint32_t pNext_size;
12633 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12634 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12635 *ptr += sizeof(uint32_t);
12636 forUnmarshaling->pNext = nullptr;
12637 if (pNext_size) {
12638 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12639 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12640 *ptr += sizeof(VkStructureType);
12641 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12642 vkStream->alloc((void**)&forUnmarshaling->pNext,
12643 goldfish_vk_extension_struct_size_with_stream_features(
12644 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12645 *(VkStructureType*)forUnmarshaling->pNext = extType;
12646 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12647 ptr);
12648 }
12649 memcpy((uint32_t*)&forUnmarshaling->memoryTypeBits, *ptr, sizeof(uint32_t));
12650 *ptr += sizeof(uint32_t);
12651 }
12652
reservedunmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExternalMemoryHostPropertiesEXT * forUnmarshaling,uint8_t ** ptr)12653 void reservedunmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
12654 VulkanStream* vkStream, VkStructureType rootType,
12655 VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
12656 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12657 *ptr += sizeof(VkStructureType);
12658 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12659 rootType = forUnmarshaling->sType;
12660 }
12661 uint32_t pNext_size;
12662 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12663 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12664 *ptr += sizeof(uint32_t);
12665 forUnmarshaling->pNext = nullptr;
12666 if (pNext_size) {
12667 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12668 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12669 *ptr += sizeof(VkStructureType);
12670 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12671 vkStream->alloc((void**)&forUnmarshaling->pNext,
12672 goldfish_vk_extension_struct_size_with_stream_features(
12673 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12674 *(VkStructureType*)forUnmarshaling->pNext = extType;
12675 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12676 ptr);
12677 }
12678 memcpy((VkDeviceSize*)&forUnmarshaling->minImportedHostPointerAlignment, *ptr,
12679 sizeof(VkDeviceSize));
12680 *ptr += sizeof(VkDeviceSize);
12681 }
12682
12683 #endif
12684 #ifdef VK_EXT_vertex_attribute_divisor
reservedunmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT * forUnmarshaling,uint8_t ** ptr)12685 void reservedunmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
12686 VulkanStream* vkStream, VkStructureType rootType,
12687 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
12688 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12689 *ptr += sizeof(VkStructureType);
12690 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12691 rootType = forUnmarshaling->sType;
12692 }
12693 uint32_t pNext_size;
12694 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12695 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12696 *ptr += sizeof(uint32_t);
12697 forUnmarshaling->pNext = nullptr;
12698 if (pNext_size) {
12699 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12700 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12701 *ptr += sizeof(VkStructureType);
12702 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12703 vkStream->alloc((void**)&forUnmarshaling->pNext,
12704 goldfish_vk_extension_struct_size_with_stream_features(
12705 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12706 *(VkStructureType*)forUnmarshaling->pNext = extType;
12707 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12708 ptr);
12709 }
12710 memcpy((uint32_t*)&forUnmarshaling->maxVertexAttribDivisor, *ptr, sizeof(uint32_t));
12711 *ptr += sizeof(uint32_t);
12712 }
12713
reservedunmarshal_VkVertexInputBindingDivisorDescriptionEXT(VulkanStream * vkStream,VkStructureType rootType,VkVertexInputBindingDivisorDescriptionEXT * forUnmarshaling,uint8_t ** ptr)12714 void reservedunmarshal_VkVertexInputBindingDivisorDescriptionEXT(
12715 VulkanStream* vkStream, VkStructureType rootType,
12716 VkVertexInputBindingDivisorDescriptionEXT* forUnmarshaling, uint8_t** ptr) {
12717 memcpy((uint32_t*)&forUnmarshaling->binding, *ptr, sizeof(uint32_t));
12718 *ptr += sizeof(uint32_t);
12719 memcpy((uint32_t*)&forUnmarshaling->divisor, *ptr, sizeof(uint32_t));
12720 *ptr += sizeof(uint32_t);
12721 }
12722
reservedunmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineVertexInputDivisorStateCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)12723 void reservedunmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
12724 VulkanStream* vkStream, VkStructureType rootType,
12725 VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
12726 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12727 *ptr += sizeof(VkStructureType);
12728 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12729 rootType = forUnmarshaling->sType;
12730 }
12731 uint32_t pNext_size;
12732 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12733 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12734 *ptr += sizeof(uint32_t);
12735 forUnmarshaling->pNext = nullptr;
12736 if (pNext_size) {
12737 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12738 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12739 *ptr += sizeof(VkStructureType);
12740 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12741 vkStream->alloc((void**)&forUnmarshaling->pNext,
12742 goldfish_vk_extension_struct_size_with_stream_features(
12743 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12744 *(VkStructureType*)forUnmarshaling->pNext = extType;
12745 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12746 ptr);
12747 }
12748 memcpy((uint32_t*)&forUnmarshaling->vertexBindingDivisorCount, *ptr, sizeof(uint32_t));
12749 *ptr += sizeof(uint32_t);
12750 vkStream->alloc((void**)&forUnmarshaling->pVertexBindingDivisors,
12751 forUnmarshaling->vertexBindingDivisorCount *
12752 sizeof(const VkVertexInputBindingDivisorDescriptionEXT));
12753 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDivisorCount; ++i) {
12754 reservedunmarshal_VkVertexInputBindingDivisorDescriptionEXT(
12755 vkStream, rootType,
12756 (VkVertexInputBindingDivisorDescriptionEXT*)(forUnmarshaling->pVertexBindingDivisors +
12757 i),
12758 ptr);
12759 }
12760 }
12761
reservedunmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT * forUnmarshaling,uint8_t ** ptr)12762 void reservedunmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
12763 VulkanStream* vkStream, VkStructureType rootType,
12764 VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
12765 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12766 *ptr += sizeof(VkStructureType);
12767 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12768 rootType = forUnmarshaling->sType;
12769 }
12770 uint32_t pNext_size;
12771 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12772 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12773 *ptr += sizeof(uint32_t);
12774 forUnmarshaling->pNext = nullptr;
12775 if (pNext_size) {
12776 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12777 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12778 *ptr += sizeof(VkStructureType);
12779 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12780 vkStream->alloc((void**)&forUnmarshaling->pNext,
12781 goldfish_vk_extension_struct_size_with_stream_features(
12782 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12783 *(VkStructureType*)forUnmarshaling->pNext = extType;
12784 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12785 ptr);
12786 }
12787 memcpy((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateDivisor, *ptr, sizeof(VkBool32));
12788 *ptr += sizeof(VkBool32);
12789 memcpy((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateZeroDivisor, *ptr,
12790 sizeof(VkBool32));
12791 *ptr += sizeof(VkBool32);
12792 }
12793
12794 #endif
12795 #ifdef VK_EXT_fragment_density_map
reservedunmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapFeaturesEXT * forUnmarshaling,uint8_t ** ptr)12796 void reservedunmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
12797 VulkanStream* vkStream, VkStructureType rootType,
12798 VkPhysicalDeviceFragmentDensityMapFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
12799 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12800 *ptr += sizeof(VkStructureType);
12801 forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
12802 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12803 rootType = forUnmarshaling->sType;
12804 }
12805 uint32_t pNext_size;
12806 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12807 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12808 *ptr += sizeof(uint32_t);
12809 forUnmarshaling->pNext = nullptr;
12810 if (pNext_size) {
12811 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12812 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12813 *ptr += sizeof(VkStructureType);
12814 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12815 vkStream->alloc((void**)&forUnmarshaling->pNext,
12816 goldfish_vk_extension_struct_size_with_stream_features(
12817 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12818 *(VkStructureType*)forUnmarshaling->pNext = extType;
12819 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12820 ptr);
12821 }
12822 memcpy((VkBool32*)&forUnmarshaling->fragmentDensityMap, *ptr, sizeof(VkBool32));
12823 *ptr += sizeof(VkBool32);
12824 memcpy((VkBool32*)&forUnmarshaling->fragmentDensityMapDynamic, *ptr, sizeof(VkBool32));
12825 *ptr += sizeof(VkBool32);
12826 memcpy((VkBool32*)&forUnmarshaling->fragmentDensityMapNonSubsampledImages, *ptr,
12827 sizeof(VkBool32));
12828 *ptr += sizeof(VkBool32);
12829 }
12830
reservedunmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceFragmentDensityMapPropertiesEXT * forUnmarshaling,uint8_t ** ptr)12831 void reservedunmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
12832 VulkanStream* vkStream, VkStructureType rootType,
12833 VkPhysicalDeviceFragmentDensityMapPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
12834 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12835 *ptr += sizeof(VkStructureType);
12836 forUnmarshaling->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
12837 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12838 rootType = forUnmarshaling->sType;
12839 }
12840 uint32_t pNext_size;
12841 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12842 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12843 *ptr += sizeof(uint32_t);
12844 forUnmarshaling->pNext = nullptr;
12845 if (pNext_size) {
12846 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12847 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12848 *ptr += sizeof(VkStructureType);
12849 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12850 vkStream->alloc((void**)&forUnmarshaling->pNext,
12851 goldfish_vk_extension_struct_size_with_stream_features(
12852 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12853 *(VkStructureType*)forUnmarshaling->pNext = extType;
12854 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12855 ptr);
12856 }
12857 reservedunmarshal_VkExtent2D(vkStream, rootType,
12858 (VkExtent2D*)(&forUnmarshaling->minFragmentDensityTexelSize), ptr);
12859 reservedunmarshal_VkExtent2D(vkStream, rootType,
12860 (VkExtent2D*)(&forUnmarshaling->maxFragmentDensityTexelSize), ptr);
12861 memcpy((VkBool32*)&forUnmarshaling->fragmentDensityInvocations, *ptr, sizeof(VkBool32));
12862 *ptr += sizeof(VkBool32);
12863 }
12864
reservedunmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkRenderPassFragmentDensityMapCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)12865 void reservedunmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
12866 VulkanStream* vkStream, VkStructureType rootType,
12867 VkRenderPassFragmentDensityMapCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
12868 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12869 *ptr += sizeof(VkStructureType);
12870 forUnmarshaling->sType = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
12871 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12872 rootType = forUnmarshaling->sType;
12873 }
12874 uint32_t pNext_size;
12875 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12876 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12877 *ptr += sizeof(uint32_t);
12878 forUnmarshaling->pNext = nullptr;
12879 if (pNext_size) {
12880 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12881 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12882 *ptr += sizeof(VkStructureType);
12883 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12884 vkStream->alloc((void**)&forUnmarshaling->pNext,
12885 goldfish_vk_extension_struct_size_with_stream_features(
12886 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12887 *(VkStructureType*)forUnmarshaling->pNext = extType;
12888 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12889 ptr);
12890 }
12891 reservedunmarshal_VkAttachmentReference(
12892 vkStream, rootType,
12893 (VkAttachmentReference*)(&forUnmarshaling->fragmentDensityMapAttachment), ptr);
12894 }
12895
12896 #endif
12897 #ifdef VK_EXT_validation_features
reservedunmarshal_VkValidationFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkValidationFeaturesEXT * forUnmarshaling,uint8_t ** ptr)12898 void reservedunmarshal_VkValidationFeaturesEXT(VulkanStream* vkStream, VkStructureType rootType,
12899 VkValidationFeaturesEXT* forUnmarshaling,
12900 uint8_t** ptr) {
12901 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12902 *ptr += sizeof(VkStructureType);
12903 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12904 rootType = forUnmarshaling->sType;
12905 }
12906 uint32_t pNext_size;
12907 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12908 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12909 *ptr += sizeof(uint32_t);
12910 forUnmarshaling->pNext = nullptr;
12911 if (pNext_size) {
12912 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12913 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12914 *ptr += sizeof(VkStructureType);
12915 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12916 vkStream->alloc((void**)&forUnmarshaling->pNext,
12917 goldfish_vk_extension_struct_size_with_stream_features(
12918 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12919 *(VkStructureType*)forUnmarshaling->pNext = extType;
12920 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12921 ptr);
12922 }
12923 memcpy((uint32_t*)&forUnmarshaling->enabledValidationFeatureCount, *ptr, sizeof(uint32_t));
12924 *ptr += sizeof(uint32_t);
12925 vkStream->alloc((void**)&forUnmarshaling->pEnabledValidationFeatures,
12926 forUnmarshaling->enabledValidationFeatureCount *
12927 sizeof(const VkValidationFeatureEnableEXT));
12928 memcpy((VkValidationFeatureEnableEXT*)forUnmarshaling->pEnabledValidationFeatures, *ptr,
12929 forUnmarshaling->enabledValidationFeatureCount *
12930 sizeof(const VkValidationFeatureEnableEXT));
12931 *ptr +=
12932 forUnmarshaling->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT);
12933 memcpy((uint32_t*)&forUnmarshaling->disabledValidationFeatureCount, *ptr, sizeof(uint32_t));
12934 *ptr += sizeof(uint32_t);
12935 vkStream->alloc((void**)&forUnmarshaling->pDisabledValidationFeatures,
12936 forUnmarshaling->disabledValidationFeatureCount *
12937 sizeof(const VkValidationFeatureDisableEXT));
12938 memcpy((VkValidationFeatureDisableEXT*)forUnmarshaling->pDisabledValidationFeatures, *ptr,
12939 forUnmarshaling->disabledValidationFeatureCount *
12940 sizeof(const VkValidationFeatureDisableEXT));
12941 *ptr += forUnmarshaling->disabledValidationFeatureCount *
12942 sizeof(const VkValidationFeatureDisableEXT);
12943 }
12944
12945 #endif
12946 #ifdef VK_EXT_provoking_vertex
reservedunmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexFeaturesEXT * forUnmarshaling,uint8_t ** ptr)12947 void reservedunmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
12948 VulkanStream* vkStream, VkStructureType rootType,
12949 VkPhysicalDeviceProvokingVertexFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
12950 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12951 *ptr += sizeof(VkStructureType);
12952 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12953 rootType = forUnmarshaling->sType;
12954 }
12955 uint32_t pNext_size;
12956 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12957 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12958 *ptr += sizeof(uint32_t);
12959 forUnmarshaling->pNext = nullptr;
12960 if (pNext_size) {
12961 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12962 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12963 *ptr += sizeof(VkStructureType);
12964 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12965 vkStream->alloc((void**)&forUnmarshaling->pNext,
12966 goldfish_vk_extension_struct_size_with_stream_features(
12967 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
12968 *(VkStructureType*)forUnmarshaling->pNext = extType;
12969 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
12970 ptr);
12971 }
12972 memcpy((VkBool32*)&forUnmarshaling->provokingVertexLast, *ptr, sizeof(VkBool32));
12973 *ptr += sizeof(VkBool32);
12974 memcpy((VkBool32*)&forUnmarshaling->transformFeedbackPreservesProvokingVertex, *ptr,
12975 sizeof(VkBool32));
12976 *ptr += sizeof(VkBool32);
12977 }
12978
reservedunmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceProvokingVertexPropertiesEXT * forUnmarshaling,uint8_t ** ptr)12979 void reservedunmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
12980 VulkanStream* vkStream, VkStructureType rootType,
12981 VkPhysicalDeviceProvokingVertexPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
12982 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
12983 *ptr += sizeof(VkStructureType);
12984 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
12985 rootType = forUnmarshaling->sType;
12986 }
12987 uint32_t pNext_size;
12988 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
12989 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
12990 *ptr += sizeof(uint32_t);
12991 forUnmarshaling->pNext = nullptr;
12992 if (pNext_size) {
12993 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
12994 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
12995 *ptr += sizeof(VkStructureType);
12996 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
12997 vkStream->alloc((void**)&forUnmarshaling->pNext,
12998 goldfish_vk_extension_struct_size_with_stream_features(
12999 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13000 *(VkStructureType*)forUnmarshaling->pNext = extType;
13001 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13002 ptr);
13003 }
13004 memcpy((VkBool32*)&forUnmarshaling->provokingVertexModePerPipeline, *ptr, sizeof(VkBool32));
13005 *ptr += sizeof(VkBool32);
13006 memcpy((VkBool32*)&forUnmarshaling->transformFeedbackPreservesTriangleFanProvokingVertex, *ptr,
13007 sizeof(VkBool32));
13008 *ptr += sizeof(VkBool32);
13009 }
13010
reservedunmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineRasterizationProvokingVertexStateCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)13011 void reservedunmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
13012 VulkanStream* vkStream, VkStructureType rootType,
13013 VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
13014 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13015 *ptr += sizeof(VkStructureType);
13016 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13017 rootType = forUnmarshaling->sType;
13018 }
13019 uint32_t pNext_size;
13020 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13021 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13022 *ptr += sizeof(uint32_t);
13023 forUnmarshaling->pNext = nullptr;
13024 if (pNext_size) {
13025 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13026 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13027 *ptr += sizeof(VkStructureType);
13028 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13029 vkStream->alloc((void**)&forUnmarshaling->pNext,
13030 goldfish_vk_extension_struct_size_with_stream_features(
13031 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13032 *(VkStructureType*)forUnmarshaling->pNext = extType;
13033 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13034 ptr);
13035 }
13036 memcpy((VkProvokingVertexModeEXT*)&forUnmarshaling->provokingVertexMode, *ptr,
13037 sizeof(VkProvokingVertexModeEXT));
13038 *ptr += sizeof(VkProvokingVertexModeEXT);
13039 }
13040
13041 #endif
13042 #ifdef VK_EXT_index_type_uint8
reservedunmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceIndexTypeUint8FeaturesEXT * forUnmarshaling,uint8_t ** ptr)13043 void reservedunmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
13044 VulkanStream* vkStream, VkStructureType rootType,
13045 VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13046 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13047 *ptr += sizeof(VkStructureType);
13048 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13049 rootType = forUnmarshaling->sType;
13050 }
13051 uint32_t pNext_size;
13052 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13053 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13054 *ptr += sizeof(uint32_t);
13055 forUnmarshaling->pNext = nullptr;
13056 if (pNext_size) {
13057 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13058 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13059 *ptr += sizeof(VkStructureType);
13060 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13061 vkStream->alloc((void**)&forUnmarshaling->pNext,
13062 goldfish_vk_extension_struct_size_with_stream_features(
13063 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13064 *(VkStructureType*)forUnmarshaling->pNext = extType;
13065 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13066 ptr);
13067 }
13068 memcpy((VkBool32*)&forUnmarshaling->indexTypeUint8, *ptr, sizeof(VkBool32));
13069 *ptr += sizeof(VkBool32);
13070 }
13071
13072 #endif
13073 #ifdef VK_EXT_extended_dynamic_state
reservedunmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicStateFeaturesEXT * forUnmarshaling,uint8_t ** ptr)13074 void reservedunmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
13075 VulkanStream* vkStream, VkStructureType rootType,
13076 VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13077 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13078 *ptr += sizeof(VkStructureType);
13079 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13080 rootType = forUnmarshaling->sType;
13081 }
13082 uint32_t pNext_size;
13083 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13084 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13085 *ptr += sizeof(uint32_t);
13086 forUnmarshaling->pNext = nullptr;
13087 if (pNext_size) {
13088 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13089 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13090 *ptr += sizeof(VkStructureType);
13091 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13092 vkStream->alloc((void**)&forUnmarshaling->pNext,
13093 goldfish_vk_extension_struct_size_with_stream_features(
13094 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13095 *(VkStructureType*)forUnmarshaling->pNext = extType;
13096 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13097 ptr);
13098 }
13099 memcpy((VkBool32*)&forUnmarshaling->extendedDynamicState, *ptr, sizeof(VkBool32));
13100 *ptr += sizeof(VkBool32);
13101 }
13102
13103 #endif
13104 #ifdef VK_EXT_host_image_copy
reservedunmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceHostImageCopyFeaturesEXT * forUnmarshaling,uint8_t ** ptr)13105 void reservedunmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
13106 VulkanStream* vkStream, VkStructureType rootType,
13107 VkPhysicalDeviceHostImageCopyFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13108 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13109 *ptr += sizeof(VkStructureType);
13110 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13111 rootType = forUnmarshaling->sType;
13112 }
13113 uint32_t pNext_size;
13114 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13115 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13116 *ptr += sizeof(uint32_t);
13117 forUnmarshaling->pNext = nullptr;
13118 if (pNext_size) {
13119 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13120 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13121 *ptr += sizeof(VkStructureType);
13122 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13123 vkStream->alloc((void**)&forUnmarshaling->pNext,
13124 goldfish_vk_extension_struct_size_with_stream_features(
13125 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13126 *(VkStructureType*)forUnmarshaling->pNext = extType;
13127 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13128 ptr);
13129 }
13130 memcpy((VkBool32*)&forUnmarshaling->hostImageCopy, *ptr, sizeof(VkBool32));
13131 *ptr += sizeof(VkBool32);
13132 }
13133
reservedunmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceHostImageCopyPropertiesEXT * forUnmarshaling,uint8_t ** ptr)13134 void reservedunmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
13135 VulkanStream* vkStream, VkStructureType rootType,
13136 VkPhysicalDeviceHostImageCopyPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
13137 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13138 *ptr += sizeof(VkStructureType);
13139 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13140 rootType = forUnmarshaling->sType;
13141 }
13142 uint32_t pNext_size;
13143 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13144 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13145 *ptr += sizeof(uint32_t);
13146 forUnmarshaling->pNext = nullptr;
13147 if (pNext_size) {
13148 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13149 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13150 *ptr += sizeof(VkStructureType);
13151 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13152 vkStream->alloc((void**)&forUnmarshaling->pNext,
13153 goldfish_vk_extension_struct_size_with_stream_features(
13154 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13155 *(VkStructureType*)forUnmarshaling->pNext = extType;
13156 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13157 ptr);
13158 }
13159 memcpy((uint32_t*)&forUnmarshaling->copySrcLayoutCount, *ptr, sizeof(uint32_t));
13160 *ptr += sizeof(uint32_t);
13161 // WARNING PTR CHECK
13162 memcpy((VkImageLayout**)&forUnmarshaling->pCopySrcLayouts, (*ptr), 8);
13163 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pCopySrcLayouts);
13164 *ptr += 8;
13165 if (forUnmarshaling->pCopySrcLayouts) {
13166 vkStream->alloc((void**)&forUnmarshaling->pCopySrcLayouts,
13167 forUnmarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
13168 memcpy((VkImageLayout*)forUnmarshaling->pCopySrcLayouts, *ptr,
13169 forUnmarshaling->copySrcLayoutCount * sizeof(VkImageLayout));
13170 *ptr += forUnmarshaling->copySrcLayoutCount * sizeof(VkImageLayout);
13171 }
13172 memcpy((uint32_t*)&forUnmarshaling->copyDstLayoutCount, *ptr, sizeof(uint32_t));
13173 *ptr += sizeof(uint32_t);
13174 // WARNING PTR CHECK
13175 memcpy((VkImageLayout**)&forUnmarshaling->pCopyDstLayouts, (*ptr), 8);
13176 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pCopyDstLayouts);
13177 *ptr += 8;
13178 if (forUnmarshaling->pCopyDstLayouts) {
13179 vkStream->alloc((void**)&forUnmarshaling->pCopyDstLayouts,
13180 forUnmarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
13181 memcpy((VkImageLayout*)forUnmarshaling->pCopyDstLayouts, *ptr,
13182 forUnmarshaling->copyDstLayoutCount * sizeof(VkImageLayout));
13183 *ptr += forUnmarshaling->copyDstLayoutCount * sizeof(VkImageLayout);
13184 }
13185 memcpy((uint8_t*)forUnmarshaling->optimalTilingLayoutUUID, *ptr,
13186 VK_UUID_SIZE * sizeof(uint8_t));
13187 *ptr += VK_UUID_SIZE * sizeof(uint8_t);
13188 memcpy((VkBool32*)&forUnmarshaling->identicalMemoryTypeRequirements, *ptr, sizeof(VkBool32));
13189 *ptr += sizeof(VkBool32);
13190 }
13191
reservedunmarshal_VkMemoryToImageCopyEXT(VulkanStream * vkStream,VkStructureType rootType,VkMemoryToImageCopyEXT * forUnmarshaling,uint8_t ** ptr)13192 void reservedunmarshal_VkMemoryToImageCopyEXT(VulkanStream* vkStream, VkStructureType rootType,
13193 VkMemoryToImageCopyEXT* forUnmarshaling,
13194 uint8_t** ptr) {
13195 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13196 *ptr += sizeof(VkStructureType);
13197 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13198 rootType = forUnmarshaling->sType;
13199 }
13200 uint32_t pNext_size;
13201 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13202 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13203 *ptr += sizeof(uint32_t);
13204 forUnmarshaling->pNext = nullptr;
13205 if (pNext_size) {
13206 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13207 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13208 *ptr += sizeof(VkStructureType);
13209 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13210 vkStream->alloc((void**)&forUnmarshaling->pNext,
13211 goldfish_vk_extension_struct_size_with_stream_features(
13212 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13213 *(VkStructureType*)forUnmarshaling->pNext = extType;
13214 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13215 ptr);
13216 }
13217 vkStream->alloc((void**)&forUnmarshaling->pHostPointer, sizeof(const uint8_t));
13218 memcpy((void*)forUnmarshaling->pHostPointer, *ptr, sizeof(const uint8_t));
13219 *ptr += sizeof(const uint8_t);
13220 memcpy((uint32_t*)&forUnmarshaling->memoryRowLength, *ptr, sizeof(uint32_t));
13221 *ptr += sizeof(uint32_t);
13222 memcpy((uint32_t*)&forUnmarshaling->memoryImageHeight, *ptr, sizeof(uint32_t));
13223 *ptr += sizeof(uint32_t);
13224 reservedunmarshal_VkImageSubresourceLayers(
13225 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource), ptr);
13226 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset),
13227 ptr);
13228 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent),
13229 ptr);
13230 }
13231
reservedunmarshal_VkImageToMemoryCopyEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageToMemoryCopyEXT * forUnmarshaling,uint8_t ** ptr)13232 void reservedunmarshal_VkImageToMemoryCopyEXT(VulkanStream* vkStream, VkStructureType rootType,
13233 VkImageToMemoryCopyEXT* forUnmarshaling,
13234 uint8_t** ptr) {
13235 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13236 *ptr += sizeof(VkStructureType);
13237 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13238 rootType = forUnmarshaling->sType;
13239 }
13240 uint32_t pNext_size;
13241 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13242 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13243 *ptr += sizeof(uint32_t);
13244 forUnmarshaling->pNext = nullptr;
13245 if (pNext_size) {
13246 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13247 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13248 *ptr += sizeof(VkStructureType);
13249 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13250 vkStream->alloc((void**)&forUnmarshaling->pNext,
13251 goldfish_vk_extension_struct_size_with_stream_features(
13252 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13253 *(VkStructureType*)forUnmarshaling->pNext = extType;
13254 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13255 ptr);
13256 }
13257 vkStream->alloc((void**)&forUnmarshaling->pHostPointer, sizeof(uint8_t));
13258 memcpy((void*)forUnmarshaling->pHostPointer, *ptr, sizeof(uint8_t));
13259 *ptr += sizeof(uint8_t);
13260 memcpy((uint32_t*)&forUnmarshaling->memoryRowLength, *ptr, sizeof(uint32_t));
13261 *ptr += sizeof(uint32_t);
13262 memcpy((uint32_t*)&forUnmarshaling->memoryImageHeight, *ptr, sizeof(uint32_t));
13263 *ptr += sizeof(uint32_t);
13264 reservedunmarshal_VkImageSubresourceLayers(
13265 vkStream, rootType, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource), ptr);
13266 reservedunmarshal_VkOffset3D(vkStream, rootType, (VkOffset3D*)(&forUnmarshaling->imageOffset),
13267 ptr);
13268 reservedunmarshal_VkExtent3D(vkStream, rootType, (VkExtent3D*)(&forUnmarshaling->imageExtent),
13269 ptr);
13270 }
13271
reservedunmarshal_VkCopyMemoryToImageInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCopyMemoryToImageInfoEXT * forUnmarshaling,uint8_t ** ptr)13272 void reservedunmarshal_VkCopyMemoryToImageInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
13273 VkCopyMemoryToImageInfoEXT* forUnmarshaling,
13274 uint8_t** ptr) {
13275 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13276 *ptr += sizeof(VkStructureType);
13277 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13278 rootType = forUnmarshaling->sType;
13279 }
13280 uint32_t pNext_size;
13281 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13282 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13283 *ptr += sizeof(uint32_t);
13284 forUnmarshaling->pNext = nullptr;
13285 if (pNext_size) {
13286 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13287 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13288 *ptr += sizeof(VkStructureType);
13289 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13290 vkStream->alloc((void**)&forUnmarshaling->pNext,
13291 goldfish_vk_extension_struct_size_with_stream_features(
13292 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13293 *(VkStructureType*)forUnmarshaling->pNext = extType;
13294 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13295 ptr);
13296 }
13297 memcpy((VkHostImageCopyFlagsEXT*)&forUnmarshaling->flags, *ptr,
13298 sizeof(VkHostImageCopyFlagsEXT));
13299 *ptr += sizeof(VkHostImageCopyFlagsEXT);
13300 uint64_t cgen_var_0;
13301 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
13302 *ptr += 1 * 8;
13303 *(VkImage*)&forUnmarshaling->dstImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
13304 memcpy((VkImageLayout*)&forUnmarshaling->dstImageLayout, *ptr, sizeof(VkImageLayout));
13305 *ptr += sizeof(VkImageLayout);
13306 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
13307 *ptr += sizeof(uint32_t);
13308 vkStream->alloc((void**)&forUnmarshaling->pRegions,
13309 forUnmarshaling->regionCount * sizeof(const VkMemoryToImageCopyEXT));
13310 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
13311 reservedunmarshal_VkMemoryToImageCopyEXT(
13312 vkStream, rootType, (VkMemoryToImageCopyEXT*)(forUnmarshaling->pRegions + i), ptr);
13313 }
13314 }
13315
reservedunmarshal_VkCopyImageToMemoryInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCopyImageToMemoryInfoEXT * forUnmarshaling,uint8_t ** ptr)13316 void reservedunmarshal_VkCopyImageToMemoryInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
13317 VkCopyImageToMemoryInfoEXT* forUnmarshaling,
13318 uint8_t** ptr) {
13319 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13320 *ptr += sizeof(VkStructureType);
13321 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13322 rootType = forUnmarshaling->sType;
13323 }
13324 uint32_t pNext_size;
13325 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13326 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13327 *ptr += sizeof(uint32_t);
13328 forUnmarshaling->pNext = nullptr;
13329 if (pNext_size) {
13330 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13331 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13332 *ptr += sizeof(VkStructureType);
13333 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13334 vkStream->alloc((void**)&forUnmarshaling->pNext,
13335 goldfish_vk_extension_struct_size_with_stream_features(
13336 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13337 *(VkStructureType*)forUnmarshaling->pNext = extType;
13338 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13339 ptr);
13340 }
13341 memcpy((VkHostImageCopyFlagsEXT*)&forUnmarshaling->flags, *ptr,
13342 sizeof(VkHostImageCopyFlagsEXT));
13343 *ptr += sizeof(VkHostImageCopyFlagsEXT);
13344 uint64_t cgen_var_0;
13345 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
13346 *ptr += 1 * 8;
13347 *(VkImage*)&forUnmarshaling->srcImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
13348 memcpy((VkImageLayout*)&forUnmarshaling->srcImageLayout, *ptr, sizeof(VkImageLayout));
13349 *ptr += sizeof(VkImageLayout);
13350 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
13351 *ptr += sizeof(uint32_t);
13352 vkStream->alloc((void**)&forUnmarshaling->pRegions,
13353 forUnmarshaling->regionCount * sizeof(const VkImageToMemoryCopyEXT));
13354 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
13355 reservedunmarshal_VkImageToMemoryCopyEXT(
13356 vkStream, rootType, (VkImageToMemoryCopyEXT*)(forUnmarshaling->pRegions + i), ptr);
13357 }
13358 }
13359
reservedunmarshal_VkCopyImageToImageInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkCopyImageToImageInfoEXT * forUnmarshaling,uint8_t ** ptr)13360 void reservedunmarshal_VkCopyImageToImageInfoEXT(VulkanStream* vkStream, VkStructureType rootType,
13361 VkCopyImageToImageInfoEXT* forUnmarshaling,
13362 uint8_t** ptr) {
13363 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13364 *ptr += sizeof(VkStructureType);
13365 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13366 rootType = forUnmarshaling->sType;
13367 }
13368 uint32_t pNext_size;
13369 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13370 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13371 *ptr += sizeof(uint32_t);
13372 forUnmarshaling->pNext = nullptr;
13373 if (pNext_size) {
13374 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13375 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13376 *ptr += sizeof(VkStructureType);
13377 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13378 vkStream->alloc((void**)&forUnmarshaling->pNext,
13379 goldfish_vk_extension_struct_size_with_stream_features(
13380 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13381 *(VkStructureType*)forUnmarshaling->pNext = extType;
13382 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13383 ptr);
13384 }
13385 memcpy((VkHostImageCopyFlagsEXT*)&forUnmarshaling->flags, *ptr,
13386 sizeof(VkHostImageCopyFlagsEXT));
13387 *ptr += sizeof(VkHostImageCopyFlagsEXT);
13388 uint64_t cgen_var_0;
13389 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
13390 *ptr += 1 * 8;
13391 *(VkImage*)&forUnmarshaling->srcImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
13392 memcpy((VkImageLayout*)&forUnmarshaling->srcImageLayout, *ptr, sizeof(VkImageLayout));
13393 *ptr += sizeof(VkImageLayout);
13394 uint64_t cgen_var_1;
13395 memcpy((uint64_t*)&cgen_var_1, *ptr, 1 * 8);
13396 *ptr += 1 * 8;
13397 *(VkImage*)&forUnmarshaling->dstImage = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_1));
13398 memcpy((VkImageLayout*)&forUnmarshaling->dstImageLayout, *ptr, sizeof(VkImageLayout));
13399 *ptr += sizeof(VkImageLayout);
13400 memcpy((uint32_t*)&forUnmarshaling->regionCount, *ptr, sizeof(uint32_t));
13401 *ptr += sizeof(uint32_t);
13402 vkStream->alloc((void**)&forUnmarshaling->pRegions,
13403 forUnmarshaling->regionCount * sizeof(const VkImageCopy2));
13404 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i) {
13405 reservedunmarshal_VkImageCopy2(vkStream, rootType,
13406 (VkImageCopy2*)(forUnmarshaling->pRegions + i), ptr);
13407 }
13408 }
13409
reservedunmarshal_VkHostImageLayoutTransitionInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkHostImageLayoutTransitionInfoEXT * forUnmarshaling,uint8_t ** ptr)13410 void reservedunmarshal_VkHostImageLayoutTransitionInfoEXT(
13411 VulkanStream* vkStream, VkStructureType rootType,
13412 VkHostImageLayoutTransitionInfoEXT* forUnmarshaling, uint8_t** ptr) {
13413 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13414 *ptr += sizeof(VkStructureType);
13415 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13416 rootType = forUnmarshaling->sType;
13417 }
13418 uint32_t pNext_size;
13419 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13420 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13421 *ptr += sizeof(uint32_t);
13422 forUnmarshaling->pNext = nullptr;
13423 if (pNext_size) {
13424 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13425 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13426 *ptr += sizeof(VkStructureType);
13427 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13428 vkStream->alloc((void**)&forUnmarshaling->pNext,
13429 goldfish_vk_extension_struct_size_with_stream_features(
13430 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13431 *(VkStructureType*)forUnmarshaling->pNext = extType;
13432 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13433 ptr);
13434 }
13435 uint64_t cgen_var_0;
13436 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
13437 *ptr += 1 * 8;
13438 *(VkImage*)&forUnmarshaling->image = (VkImage)unbox_VkImage((VkImage)(*&cgen_var_0));
13439 memcpy((VkImageLayout*)&forUnmarshaling->oldLayout, *ptr, sizeof(VkImageLayout));
13440 *ptr += sizeof(VkImageLayout);
13441 memcpy((VkImageLayout*)&forUnmarshaling->newLayout, *ptr, sizeof(VkImageLayout));
13442 *ptr += sizeof(VkImageLayout);
13443 reservedunmarshal_VkImageSubresourceRange(
13444 vkStream, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange), ptr);
13445 }
13446
reservedunmarshal_VkSubresourceHostMemcpySizeEXT(VulkanStream * vkStream,VkStructureType rootType,VkSubresourceHostMemcpySizeEXT * forUnmarshaling,uint8_t ** ptr)13447 void reservedunmarshal_VkSubresourceHostMemcpySizeEXT(
13448 VulkanStream* vkStream, VkStructureType rootType,
13449 VkSubresourceHostMemcpySizeEXT* forUnmarshaling, uint8_t** ptr) {
13450 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13451 *ptr += sizeof(VkStructureType);
13452 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13453 rootType = forUnmarshaling->sType;
13454 }
13455 uint32_t pNext_size;
13456 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13457 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13458 *ptr += sizeof(uint32_t);
13459 forUnmarshaling->pNext = nullptr;
13460 if (pNext_size) {
13461 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13462 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13463 *ptr += sizeof(VkStructureType);
13464 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13465 vkStream->alloc((void**)&forUnmarshaling->pNext,
13466 goldfish_vk_extension_struct_size_with_stream_features(
13467 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13468 *(VkStructureType*)forUnmarshaling->pNext = extType;
13469 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13470 ptr);
13471 }
13472 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
13473 *ptr += sizeof(VkDeviceSize);
13474 }
13475
reservedunmarshal_VkHostImageCopyDevicePerformanceQueryEXT(VulkanStream * vkStream,VkStructureType rootType,VkHostImageCopyDevicePerformanceQueryEXT * forUnmarshaling,uint8_t ** ptr)13476 void reservedunmarshal_VkHostImageCopyDevicePerformanceQueryEXT(
13477 VulkanStream* vkStream, VkStructureType rootType,
13478 VkHostImageCopyDevicePerformanceQueryEXT* forUnmarshaling, uint8_t** ptr) {
13479 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13480 *ptr += sizeof(VkStructureType);
13481 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13482 rootType = forUnmarshaling->sType;
13483 }
13484 uint32_t pNext_size;
13485 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13486 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13487 *ptr += sizeof(uint32_t);
13488 forUnmarshaling->pNext = nullptr;
13489 if (pNext_size) {
13490 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13491 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13492 *ptr += sizeof(VkStructureType);
13493 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13494 vkStream->alloc((void**)&forUnmarshaling->pNext,
13495 goldfish_vk_extension_struct_size_with_stream_features(
13496 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13497 *(VkStructureType*)forUnmarshaling->pNext = extType;
13498 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13499 ptr);
13500 }
13501 memcpy((VkBool32*)&forUnmarshaling->optimalDeviceAccess, *ptr, sizeof(VkBool32));
13502 *ptr += sizeof(VkBool32);
13503 memcpy((VkBool32*)&forUnmarshaling->identicalMemoryLayout, *ptr, sizeof(VkBool32));
13504 *ptr += sizeof(VkBool32);
13505 }
13506
13507 #endif
13508 #ifdef VK_EXT_swapchain_maintenance1
reservedunmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT * forUnmarshaling,uint8_t ** ptr)13509 void reservedunmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
13510 VulkanStream* vkStream, VkStructureType rootType,
13511 VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13512 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13513 *ptr += sizeof(VkStructureType);
13514 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13515 rootType = forUnmarshaling->sType;
13516 }
13517 uint32_t pNext_size;
13518 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13519 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13520 *ptr += sizeof(uint32_t);
13521 forUnmarshaling->pNext = nullptr;
13522 if (pNext_size) {
13523 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13524 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13525 *ptr += sizeof(VkStructureType);
13526 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13527 vkStream->alloc((void**)&forUnmarshaling->pNext,
13528 goldfish_vk_extension_struct_size_with_stream_features(
13529 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13530 *(VkStructureType*)forUnmarshaling->pNext = extType;
13531 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13532 ptr);
13533 }
13534 memcpy((VkBool32*)&forUnmarshaling->swapchainMaintenance1, *ptr, sizeof(VkBool32));
13535 *ptr += sizeof(VkBool32);
13536 }
13537
reservedunmarshal_VkSwapchainPresentFenceInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentFenceInfoEXT * forUnmarshaling,uint8_t ** ptr)13538 void reservedunmarshal_VkSwapchainPresentFenceInfoEXT(
13539 VulkanStream* vkStream, VkStructureType rootType,
13540 VkSwapchainPresentFenceInfoEXT* forUnmarshaling, uint8_t** ptr) {
13541 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13542 *ptr += sizeof(VkStructureType);
13543 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13544 rootType = forUnmarshaling->sType;
13545 }
13546 uint32_t pNext_size;
13547 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13548 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13549 *ptr += sizeof(uint32_t);
13550 forUnmarshaling->pNext = nullptr;
13551 if (pNext_size) {
13552 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13553 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13554 *ptr += sizeof(VkStructureType);
13555 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13556 vkStream->alloc((void**)&forUnmarshaling->pNext,
13557 goldfish_vk_extension_struct_size_with_stream_features(
13558 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13559 *(VkStructureType*)forUnmarshaling->pNext = extType;
13560 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13561 ptr);
13562 }
13563 memcpy((uint32_t*)&forUnmarshaling->swapchainCount, *ptr, sizeof(uint32_t));
13564 *ptr += sizeof(uint32_t);
13565 vkStream->alloc((void**)&forUnmarshaling->pFences,
13566 forUnmarshaling->swapchainCount * sizeof(const VkFence));
13567 if (forUnmarshaling->swapchainCount) {
13568 uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
13569 *ptr += 8 * forUnmarshaling->swapchainCount;
13570 if (forUnmarshaling) {
13571 for (uint32_t k = 0; k < forUnmarshaling->swapchainCount; ++k) {
13572 uint64_t tmpval;
13573 memcpy(&tmpval, cgen_var_0_ptr + k * 8, sizeof(uint64_t));
13574 *(((VkFence*)forUnmarshaling->pFences) + k) =
13575 tmpval ? (VkFence)unbox_VkFence((VkFence)tmpval) : VK_NULL_HANDLE;
13576 }
13577 }
13578 }
13579 }
13580
reservedunmarshal_VkSwapchainPresentModesCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentModesCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)13581 void reservedunmarshal_VkSwapchainPresentModesCreateInfoEXT(
13582 VulkanStream* vkStream, VkStructureType rootType,
13583 VkSwapchainPresentModesCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
13584 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13585 *ptr += sizeof(VkStructureType);
13586 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13587 rootType = forUnmarshaling->sType;
13588 }
13589 uint32_t pNext_size;
13590 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13591 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13592 *ptr += sizeof(uint32_t);
13593 forUnmarshaling->pNext = nullptr;
13594 if (pNext_size) {
13595 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13596 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13597 *ptr += sizeof(VkStructureType);
13598 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13599 vkStream->alloc((void**)&forUnmarshaling->pNext,
13600 goldfish_vk_extension_struct_size_with_stream_features(
13601 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13602 *(VkStructureType*)forUnmarshaling->pNext = extType;
13603 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13604 ptr);
13605 }
13606 memcpy((uint32_t*)&forUnmarshaling->presentModeCount, *ptr, sizeof(uint32_t));
13607 *ptr += sizeof(uint32_t);
13608 vkStream->alloc((void**)&forUnmarshaling->pPresentModes,
13609 forUnmarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
13610 memcpy((VkPresentModeKHR*)forUnmarshaling->pPresentModes, *ptr,
13611 forUnmarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
13612 *ptr += forUnmarshaling->presentModeCount * sizeof(const VkPresentModeKHR);
13613 }
13614
reservedunmarshal_VkSwapchainPresentModeInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentModeInfoEXT * forUnmarshaling,uint8_t ** ptr)13615 void reservedunmarshal_VkSwapchainPresentModeInfoEXT(VulkanStream* vkStream,
13616 VkStructureType rootType,
13617 VkSwapchainPresentModeInfoEXT* forUnmarshaling,
13618 uint8_t** ptr) {
13619 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13620 *ptr += sizeof(VkStructureType);
13621 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13622 rootType = forUnmarshaling->sType;
13623 }
13624 uint32_t pNext_size;
13625 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13626 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13627 *ptr += sizeof(uint32_t);
13628 forUnmarshaling->pNext = nullptr;
13629 if (pNext_size) {
13630 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13631 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13632 *ptr += sizeof(VkStructureType);
13633 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13634 vkStream->alloc((void**)&forUnmarshaling->pNext,
13635 goldfish_vk_extension_struct_size_with_stream_features(
13636 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13637 *(VkStructureType*)forUnmarshaling->pNext = extType;
13638 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13639 ptr);
13640 }
13641 memcpy((uint32_t*)&forUnmarshaling->swapchainCount, *ptr, sizeof(uint32_t));
13642 *ptr += sizeof(uint32_t);
13643 vkStream->alloc((void**)&forUnmarshaling->pPresentModes,
13644 forUnmarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
13645 memcpy((VkPresentModeKHR*)forUnmarshaling->pPresentModes, *ptr,
13646 forUnmarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
13647 *ptr += forUnmarshaling->swapchainCount * sizeof(const VkPresentModeKHR);
13648 }
13649
reservedunmarshal_VkSwapchainPresentScalingCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSwapchainPresentScalingCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)13650 void reservedunmarshal_VkSwapchainPresentScalingCreateInfoEXT(
13651 VulkanStream* vkStream, VkStructureType rootType,
13652 VkSwapchainPresentScalingCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
13653 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13654 *ptr += sizeof(VkStructureType);
13655 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13656 rootType = forUnmarshaling->sType;
13657 }
13658 uint32_t pNext_size;
13659 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13660 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13661 *ptr += sizeof(uint32_t);
13662 forUnmarshaling->pNext = nullptr;
13663 if (pNext_size) {
13664 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13665 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13666 *ptr += sizeof(VkStructureType);
13667 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13668 vkStream->alloc((void**)&forUnmarshaling->pNext,
13669 goldfish_vk_extension_struct_size_with_stream_features(
13670 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13671 *(VkStructureType*)forUnmarshaling->pNext = extType;
13672 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13673 ptr);
13674 }
13675 memcpy((VkPresentScalingFlagsEXT*)&forUnmarshaling->scalingBehavior, *ptr,
13676 sizeof(VkPresentScalingFlagsEXT));
13677 *ptr += sizeof(VkPresentScalingFlagsEXT);
13678 memcpy((VkPresentGravityFlagsEXT*)&forUnmarshaling->presentGravityX, *ptr,
13679 sizeof(VkPresentGravityFlagsEXT));
13680 *ptr += sizeof(VkPresentGravityFlagsEXT);
13681 memcpy((VkPresentGravityFlagsEXT*)&forUnmarshaling->presentGravityY, *ptr,
13682 sizeof(VkPresentGravityFlagsEXT));
13683 *ptr += sizeof(VkPresentGravityFlagsEXT);
13684 }
13685
reservedunmarshal_VkReleaseSwapchainImagesInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkReleaseSwapchainImagesInfoEXT * forUnmarshaling,uint8_t ** ptr)13686 void reservedunmarshal_VkReleaseSwapchainImagesInfoEXT(
13687 VulkanStream* vkStream, VkStructureType rootType,
13688 VkReleaseSwapchainImagesInfoEXT* forUnmarshaling, uint8_t** ptr) {
13689 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13690 *ptr += sizeof(VkStructureType);
13691 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13692 rootType = forUnmarshaling->sType;
13693 }
13694 uint32_t pNext_size;
13695 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13696 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13697 *ptr += sizeof(uint32_t);
13698 forUnmarshaling->pNext = nullptr;
13699 if (pNext_size) {
13700 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13701 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13702 *ptr += sizeof(VkStructureType);
13703 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13704 vkStream->alloc((void**)&forUnmarshaling->pNext,
13705 goldfish_vk_extension_struct_size_with_stream_features(
13706 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13707 *(VkStructureType*)forUnmarshaling->pNext = extType;
13708 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13709 ptr);
13710 }
13711 uint64_t cgen_var_0;
13712 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8);
13713 *ptr += 1 * 8;
13714 *(VkSwapchainKHR*)&forUnmarshaling->swapchain =
13715 (VkSwapchainKHR)unbox_VkSwapchainKHR((VkSwapchainKHR)(*&cgen_var_0));
13716 memcpy((uint32_t*)&forUnmarshaling->imageIndexCount, *ptr, sizeof(uint32_t));
13717 *ptr += sizeof(uint32_t);
13718 vkStream->alloc((void**)&forUnmarshaling->pImageIndices,
13719 forUnmarshaling->imageIndexCount * sizeof(const uint32_t));
13720 memcpy((uint32_t*)forUnmarshaling->pImageIndices, *ptr,
13721 forUnmarshaling->imageIndexCount * sizeof(const uint32_t));
13722 *ptr += forUnmarshaling->imageIndexCount * sizeof(const uint32_t);
13723 }
13724
13725 #endif
13726 #ifdef VK_EXT_texel_buffer_alignment
reservedunmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT * forUnmarshaling,uint8_t ** ptr)13727 void reservedunmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
13728 VulkanStream* vkStream, VkStructureType rootType,
13729 VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13730 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13731 *ptr += sizeof(VkStructureType);
13732 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13733 rootType = forUnmarshaling->sType;
13734 }
13735 uint32_t pNext_size;
13736 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13737 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13738 *ptr += sizeof(uint32_t);
13739 forUnmarshaling->pNext = nullptr;
13740 if (pNext_size) {
13741 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13742 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13743 *ptr += sizeof(VkStructureType);
13744 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13745 vkStream->alloc((void**)&forUnmarshaling->pNext,
13746 goldfish_vk_extension_struct_size_with_stream_features(
13747 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13748 *(VkStructureType*)forUnmarshaling->pNext = extType;
13749 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13750 ptr);
13751 }
13752 memcpy((VkBool32*)&forUnmarshaling->texelBufferAlignment, *ptr, sizeof(VkBool32));
13753 *ptr += sizeof(VkBool32);
13754 }
13755
13756 #endif
13757 #ifdef VK_EXT_device_memory_report
reservedunmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceDeviceMemoryReportFeaturesEXT * forUnmarshaling,uint8_t ** ptr)13758 void reservedunmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
13759 VulkanStream* vkStream, VkStructureType rootType,
13760 VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13761 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13762 *ptr += sizeof(VkStructureType);
13763 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13764 rootType = forUnmarshaling->sType;
13765 }
13766 uint32_t pNext_size;
13767 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13768 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13769 *ptr += sizeof(uint32_t);
13770 forUnmarshaling->pNext = nullptr;
13771 if (pNext_size) {
13772 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13773 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13774 *ptr += sizeof(VkStructureType);
13775 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13776 vkStream->alloc((void**)&forUnmarshaling->pNext,
13777 goldfish_vk_extension_struct_size_with_stream_features(
13778 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13779 *(VkStructureType*)forUnmarshaling->pNext = extType;
13780 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13781 ptr);
13782 }
13783 memcpy((VkBool32*)&forUnmarshaling->deviceMemoryReport, *ptr, sizeof(VkBool32));
13784 *ptr += sizeof(VkBool32);
13785 }
13786
reservedunmarshal_VkDeviceMemoryReportCallbackDataEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceMemoryReportCallbackDataEXT * forUnmarshaling,uint8_t ** ptr)13787 void reservedunmarshal_VkDeviceMemoryReportCallbackDataEXT(
13788 VulkanStream* vkStream, VkStructureType rootType,
13789 VkDeviceMemoryReportCallbackDataEXT* forUnmarshaling, uint8_t** ptr) {
13790 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13791 *ptr += sizeof(VkStructureType);
13792 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13793 rootType = forUnmarshaling->sType;
13794 }
13795 uint32_t pNext_size;
13796 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13797 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13798 *ptr += sizeof(uint32_t);
13799 forUnmarshaling->pNext = nullptr;
13800 if (pNext_size) {
13801 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13802 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13803 *ptr += sizeof(VkStructureType);
13804 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13805 vkStream->alloc((void**)&forUnmarshaling->pNext,
13806 goldfish_vk_extension_struct_size_with_stream_features(
13807 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13808 *(VkStructureType*)forUnmarshaling->pNext = extType;
13809 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13810 ptr);
13811 }
13812 memcpy((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags, *ptr,
13813 sizeof(VkDeviceMemoryReportFlagsEXT));
13814 *ptr += sizeof(VkDeviceMemoryReportFlagsEXT);
13815 memcpy((VkDeviceMemoryReportEventTypeEXT*)&forUnmarshaling->type, *ptr,
13816 sizeof(VkDeviceMemoryReportEventTypeEXT));
13817 *ptr += sizeof(VkDeviceMemoryReportEventTypeEXT);
13818 memcpy((uint64_t*)&forUnmarshaling->memoryObjectId, *ptr, sizeof(uint64_t));
13819 *ptr += sizeof(uint64_t);
13820 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
13821 *ptr += sizeof(VkDeviceSize);
13822 memcpy((VkObjectType*)&forUnmarshaling->objectType, *ptr, sizeof(VkObjectType));
13823 *ptr += sizeof(VkObjectType);
13824 memcpy((uint64_t*)&forUnmarshaling->objectHandle, *ptr, sizeof(uint64_t));
13825 *ptr += sizeof(uint64_t);
13826 memcpy((uint32_t*)&forUnmarshaling->heapIndex, *ptr, sizeof(uint32_t));
13827 *ptr += sizeof(uint32_t);
13828 }
13829
reservedunmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkDeviceDeviceMemoryReportCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)13830 void reservedunmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
13831 VulkanStream* vkStream, VkStructureType rootType,
13832 VkDeviceDeviceMemoryReportCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
13833 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13834 *ptr += sizeof(VkStructureType);
13835 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13836 rootType = forUnmarshaling->sType;
13837 }
13838 uint32_t pNext_size;
13839 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13840 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13841 *ptr += sizeof(uint32_t);
13842 forUnmarshaling->pNext = nullptr;
13843 if (pNext_size) {
13844 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13845 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13846 *ptr += sizeof(VkStructureType);
13847 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13848 vkStream->alloc((void**)&forUnmarshaling->pNext,
13849 goldfish_vk_extension_struct_size_with_stream_features(
13850 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13851 *(VkStructureType*)forUnmarshaling->pNext = extType;
13852 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13853 ptr);
13854 }
13855 memcpy((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags, *ptr,
13856 sizeof(VkDeviceMemoryReportFlagsEXT));
13857 *ptr += sizeof(VkDeviceMemoryReportFlagsEXT);
13858 memcpy((PFN_vkDeviceMemoryReportCallbackEXT*)&forUnmarshaling->pfnUserCallback, (*ptr), 8);
13859 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pfnUserCallback);
13860 *ptr += 8;
13861 vkStream->alloc((void**)&forUnmarshaling->pUserData, sizeof(uint8_t));
13862 memcpy((void*)forUnmarshaling->pUserData, *ptr, sizeof(uint8_t));
13863 *ptr += sizeof(uint8_t);
13864 }
13865
13866 #endif
13867 #ifdef VK_EXT_robustness2
reservedunmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2FeaturesEXT * forUnmarshaling,uint8_t ** ptr)13868 void reservedunmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
13869 VulkanStream* vkStream, VkStructureType rootType,
13870 VkPhysicalDeviceRobustness2FeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13871 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13872 *ptr += sizeof(VkStructureType);
13873 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13874 rootType = forUnmarshaling->sType;
13875 }
13876 uint32_t pNext_size;
13877 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13878 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13879 *ptr += sizeof(uint32_t);
13880 forUnmarshaling->pNext = nullptr;
13881 if (pNext_size) {
13882 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13883 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13884 *ptr += sizeof(VkStructureType);
13885 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13886 vkStream->alloc((void**)&forUnmarshaling->pNext,
13887 goldfish_vk_extension_struct_size_with_stream_features(
13888 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13889 *(VkStructureType*)forUnmarshaling->pNext = extType;
13890 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13891 ptr);
13892 }
13893 memcpy((VkBool32*)&forUnmarshaling->robustBufferAccess2, *ptr, sizeof(VkBool32));
13894 *ptr += sizeof(VkBool32);
13895 memcpy((VkBool32*)&forUnmarshaling->robustImageAccess2, *ptr, sizeof(VkBool32));
13896 *ptr += sizeof(VkBool32);
13897 memcpy((VkBool32*)&forUnmarshaling->nullDescriptor, *ptr, sizeof(VkBool32));
13898 *ptr += sizeof(VkBool32);
13899 }
13900
reservedunmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRobustness2PropertiesEXT * forUnmarshaling,uint8_t ** ptr)13901 void reservedunmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
13902 VulkanStream* vkStream, VkStructureType rootType,
13903 VkPhysicalDeviceRobustness2PropertiesEXT* forUnmarshaling, uint8_t** ptr) {
13904 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13905 *ptr += sizeof(VkStructureType);
13906 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13907 rootType = forUnmarshaling->sType;
13908 }
13909 uint32_t pNext_size;
13910 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13911 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13912 *ptr += sizeof(uint32_t);
13913 forUnmarshaling->pNext = nullptr;
13914 if (pNext_size) {
13915 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13916 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13917 *ptr += sizeof(VkStructureType);
13918 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13919 vkStream->alloc((void**)&forUnmarshaling->pNext,
13920 goldfish_vk_extension_struct_size_with_stream_features(
13921 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13922 *(VkStructureType*)forUnmarshaling->pNext = extType;
13923 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13924 ptr);
13925 }
13926 memcpy((VkDeviceSize*)&forUnmarshaling->robustStorageBufferAccessSizeAlignment, *ptr,
13927 sizeof(VkDeviceSize));
13928 *ptr += sizeof(VkDeviceSize);
13929 memcpy((VkDeviceSize*)&forUnmarshaling->robustUniformBufferAccessSizeAlignment, *ptr,
13930 sizeof(VkDeviceSize));
13931 *ptr += sizeof(VkDeviceSize);
13932 }
13933
13934 #endif
13935 #ifdef VK_EXT_custom_border_color
reservedunmarshal_VkSamplerCustomBorderColorCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkSamplerCustomBorderColorCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)13936 void reservedunmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
13937 VulkanStream* vkStream, VkStructureType rootType,
13938 VkSamplerCustomBorderColorCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
13939 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13940 *ptr += sizeof(VkStructureType);
13941 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13942 rootType = forUnmarshaling->sType;
13943 }
13944 uint32_t pNext_size;
13945 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13946 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13947 *ptr += sizeof(uint32_t);
13948 forUnmarshaling->pNext = nullptr;
13949 if (pNext_size) {
13950 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13951 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13952 *ptr += sizeof(VkStructureType);
13953 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13954 vkStream->alloc((void**)&forUnmarshaling->pNext,
13955 goldfish_vk_extension_struct_size_with_stream_features(
13956 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13957 *(VkStructureType*)forUnmarshaling->pNext = extType;
13958 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13959 ptr);
13960 }
13961 reservedunmarshal_VkClearColorValue(
13962 vkStream, rootType, (VkClearColorValue*)(&forUnmarshaling->customBorderColor), ptr);
13963 memcpy((VkFormat*)&forUnmarshaling->format, *ptr, sizeof(VkFormat));
13964 *ptr += sizeof(VkFormat);
13965 }
13966
reservedunmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorPropertiesEXT * forUnmarshaling,uint8_t ** ptr)13967 void reservedunmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
13968 VulkanStream* vkStream, VkStructureType rootType,
13969 VkPhysicalDeviceCustomBorderColorPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
13970 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
13971 *ptr += sizeof(VkStructureType);
13972 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
13973 rootType = forUnmarshaling->sType;
13974 }
13975 uint32_t pNext_size;
13976 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
13977 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
13978 *ptr += sizeof(uint32_t);
13979 forUnmarshaling->pNext = nullptr;
13980 if (pNext_size) {
13981 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
13982 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
13983 *ptr += sizeof(VkStructureType);
13984 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
13985 vkStream->alloc((void**)&forUnmarshaling->pNext,
13986 goldfish_vk_extension_struct_size_with_stream_features(
13987 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
13988 *(VkStructureType*)forUnmarshaling->pNext = extType;
13989 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
13990 ptr);
13991 }
13992 memcpy((uint32_t*)&forUnmarshaling->maxCustomBorderColorSamplers, *ptr, sizeof(uint32_t));
13993 *ptr += sizeof(uint32_t);
13994 }
13995
reservedunmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceCustomBorderColorFeaturesEXT * forUnmarshaling,uint8_t ** ptr)13996 void reservedunmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
13997 VulkanStream* vkStream, VkStructureType rootType,
13998 VkPhysicalDeviceCustomBorderColorFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
13999 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14000 *ptr += sizeof(VkStructureType);
14001 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14002 rootType = forUnmarshaling->sType;
14003 }
14004 uint32_t pNext_size;
14005 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14006 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14007 *ptr += sizeof(uint32_t);
14008 forUnmarshaling->pNext = nullptr;
14009 if (pNext_size) {
14010 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14011 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14012 *ptr += sizeof(VkStructureType);
14013 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14014 vkStream->alloc((void**)&forUnmarshaling->pNext,
14015 goldfish_vk_extension_struct_size_with_stream_features(
14016 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14017 *(VkStructureType*)forUnmarshaling->pNext = extType;
14018 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14019 ptr);
14020 }
14021 memcpy((VkBool32*)&forUnmarshaling->customBorderColors, *ptr, sizeof(VkBool32));
14022 *ptr += sizeof(VkBool32);
14023 memcpy((VkBool32*)&forUnmarshaling->customBorderColorWithoutFormat, *ptr, sizeof(VkBool32));
14024 *ptr += sizeof(VkBool32);
14025 }
14026
14027 #endif
14028 #ifdef VK_EXT_graphics_pipeline_library
reservedunmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT * forUnmarshaling,uint8_t ** ptr)14029 void reservedunmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
14030 VulkanStream* vkStream, VkStructureType rootType,
14031 VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14032 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14033 *ptr += sizeof(VkStructureType);
14034 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14035 rootType = forUnmarshaling->sType;
14036 }
14037 uint32_t pNext_size;
14038 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14039 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14040 *ptr += sizeof(uint32_t);
14041 forUnmarshaling->pNext = nullptr;
14042 if (pNext_size) {
14043 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14044 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14045 *ptr += sizeof(VkStructureType);
14046 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14047 vkStream->alloc((void**)&forUnmarshaling->pNext,
14048 goldfish_vk_extension_struct_size_with_stream_features(
14049 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14050 *(VkStructureType*)forUnmarshaling->pNext = extType;
14051 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14052 ptr);
14053 }
14054 memcpy((VkBool32*)&forUnmarshaling->graphicsPipelineLibrary, *ptr, sizeof(VkBool32));
14055 *ptr += sizeof(VkBool32);
14056 }
14057
reservedunmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT * forUnmarshaling,uint8_t ** ptr)14058 void reservedunmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
14059 VulkanStream* vkStream, VkStructureType rootType,
14060 VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
14061 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14062 *ptr += sizeof(VkStructureType);
14063 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14064 rootType = forUnmarshaling->sType;
14065 }
14066 uint32_t pNext_size;
14067 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14068 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14069 *ptr += sizeof(uint32_t);
14070 forUnmarshaling->pNext = nullptr;
14071 if (pNext_size) {
14072 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14073 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14074 *ptr += sizeof(VkStructureType);
14075 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14076 vkStream->alloc((void**)&forUnmarshaling->pNext,
14077 goldfish_vk_extension_struct_size_with_stream_features(
14078 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14079 *(VkStructureType*)forUnmarshaling->pNext = extType;
14080 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14081 ptr);
14082 }
14083 memcpy((VkBool32*)&forUnmarshaling->graphicsPipelineLibraryFastLinking, *ptr, sizeof(VkBool32));
14084 *ptr += sizeof(VkBool32);
14085 memcpy((VkBool32*)&forUnmarshaling->graphicsPipelineLibraryIndependentInterpolationDecoration,
14086 *ptr, sizeof(VkBool32));
14087 *ptr += sizeof(VkBool32);
14088 }
14089
reservedunmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkGraphicsPipelineLibraryCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)14090 void reservedunmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
14091 VulkanStream* vkStream, VkStructureType rootType,
14092 VkGraphicsPipelineLibraryCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
14093 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14094 *ptr += sizeof(VkStructureType);
14095 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14096 rootType = forUnmarshaling->sType;
14097 }
14098 uint32_t pNext_size;
14099 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14100 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14101 *ptr += sizeof(uint32_t);
14102 forUnmarshaling->pNext = nullptr;
14103 if (pNext_size) {
14104 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14105 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14106 *ptr += sizeof(VkStructureType);
14107 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14108 vkStream->alloc((void**)&forUnmarshaling->pNext,
14109 goldfish_vk_extension_struct_size_with_stream_features(
14110 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14111 *(VkStructureType*)forUnmarshaling->pNext = extType;
14112 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14113 ptr);
14114 }
14115 memcpy((VkGraphicsPipelineLibraryFlagsEXT*)&forUnmarshaling->flags, *ptr,
14116 sizeof(VkGraphicsPipelineLibraryFlagsEXT));
14117 *ptr += sizeof(VkGraphicsPipelineLibraryFlagsEXT);
14118 }
14119
14120 #endif
14121 #ifdef VK_EXT_ycbcr_2plane_444_formats
reservedunmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT * forUnmarshaling,uint8_t ** ptr)14122 void reservedunmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
14123 VulkanStream* vkStream, VkStructureType rootType,
14124 VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14125 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14126 *ptr += sizeof(VkStructureType);
14127 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14128 rootType = forUnmarshaling->sType;
14129 }
14130 uint32_t pNext_size;
14131 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14132 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14133 *ptr += sizeof(uint32_t);
14134 forUnmarshaling->pNext = nullptr;
14135 if (pNext_size) {
14136 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14137 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14138 *ptr += sizeof(VkStructureType);
14139 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14140 vkStream->alloc((void**)&forUnmarshaling->pNext,
14141 goldfish_vk_extension_struct_size_with_stream_features(
14142 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14143 *(VkStructureType*)forUnmarshaling->pNext = extType;
14144 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14145 ptr);
14146 }
14147 memcpy((VkBool32*)&forUnmarshaling->ycbcr2plane444Formats, *ptr, sizeof(VkBool32));
14148 *ptr += sizeof(VkBool32);
14149 }
14150
14151 #endif
14152 #ifdef VK_EXT_image_compression_control
reservedunmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlFeaturesEXT * forUnmarshaling,uint8_t ** ptr)14153 void reservedunmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
14154 VulkanStream* vkStream, VkStructureType rootType,
14155 VkPhysicalDeviceImageCompressionControlFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14156 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14157 *ptr += sizeof(VkStructureType);
14158 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14159 rootType = forUnmarshaling->sType;
14160 }
14161 uint32_t pNext_size;
14162 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14163 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14164 *ptr += sizeof(uint32_t);
14165 forUnmarshaling->pNext = nullptr;
14166 if (pNext_size) {
14167 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14168 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14169 *ptr += sizeof(VkStructureType);
14170 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14171 vkStream->alloc((void**)&forUnmarshaling->pNext,
14172 goldfish_vk_extension_struct_size_with_stream_features(
14173 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14174 *(VkStructureType*)forUnmarshaling->pNext = extType;
14175 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14176 ptr);
14177 }
14178 memcpy((VkBool32*)&forUnmarshaling->imageCompressionControl, *ptr, sizeof(VkBool32));
14179 *ptr += sizeof(VkBool32);
14180 }
14181
reservedunmarshal_VkImageCompressionControlEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageCompressionControlEXT * forUnmarshaling,uint8_t ** ptr)14182 void reservedunmarshal_VkImageCompressionControlEXT(VulkanStream* vkStream,
14183 VkStructureType rootType,
14184 VkImageCompressionControlEXT* forUnmarshaling,
14185 uint8_t** ptr) {
14186 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14187 *ptr += sizeof(VkStructureType);
14188 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14189 rootType = forUnmarshaling->sType;
14190 }
14191 uint32_t pNext_size;
14192 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14193 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14194 *ptr += sizeof(uint32_t);
14195 forUnmarshaling->pNext = nullptr;
14196 if (pNext_size) {
14197 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14198 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14199 *ptr += sizeof(VkStructureType);
14200 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14201 vkStream->alloc((void**)&forUnmarshaling->pNext,
14202 goldfish_vk_extension_struct_size_with_stream_features(
14203 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14204 *(VkStructureType*)forUnmarshaling->pNext = extType;
14205 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14206 ptr);
14207 }
14208 memcpy((VkImageCompressionFlagsEXT*)&forUnmarshaling->flags, *ptr,
14209 sizeof(VkImageCompressionFlagsEXT));
14210 *ptr += sizeof(VkImageCompressionFlagsEXT);
14211 memcpy((uint32_t*)&forUnmarshaling->compressionControlPlaneCount, *ptr, sizeof(uint32_t));
14212 *ptr += sizeof(uint32_t);
14213 // WARNING PTR CHECK
14214 memcpy((VkImageCompressionFixedRateFlagsEXT**)&forUnmarshaling->pFixedRateFlags, (*ptr), 8);
14215 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pFixedRateFlags);
14216 *ptr += 8;
14217 if (forUnmarshaling->pFixedRateFlags) {
14218 vkStream->alloc((void**)&forUnmarshaling->pFixedRateFlags,
14219 forUnmarshaling->compressionControlPlaneCount *
14220 sizeof(VkImageCompressionFixedRateFlagsEXT));
14221 memcpy((VkImageCompressionFixedRateFlagsEXT*)forUnmarshaling->pFixedRateFlags, *ptr,
14222 forUnmarshaling->compressionControlPlaneCount *
14223 sizeof(VkImageCompressionFixedRateFlagsEXT));
14224 *ptr += forUnmarshaling->compressionControlPlaneCount *
14225 sizeof(VkImageCompressionFixedRateFlagsEXT);
14226 }
14227 }
14228
reservedunmarshal_VkImageCompressionPropertiesEXT(VulkanStream * vkStream,VkStructureType rootType,VkImageCompressionPropertiesEXT * forUnmarshaling,uint8_t ** ptr)14229 void reservedunmarshal_VkImageCompressionPropertiesEXT(
14230 VulkanStream* vkStream, VkStructureType rootType,
14231 VkImageCompressionPropertiesEXT* forUnmarshaling, uint8_t** ptr) {
14232 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14233 *ptr += sizeof(VkStructureType);
14234 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14235 rootType = forUnmarshaling->sType;
14236 }
14237 uint32_t pNext_size;
14238 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14239 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14240 *ptr += sizeof(uint32_t);
14241 forUnmarshaling->pNext = nullptr;
14242 if (pNext_size) {
14243 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14244 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14245 *ptr += sizeof(VkStructureType);
14246 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14247 vkStream->alloc((void**)&forUnmarshaling->pNext,
14248 goldfish_vk_extension_struct_size_with_stream_features(
14249 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14250 *(VkStructureType*)forUnmarshaling->pNext = extType;
14251 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14252 ptr);
14253 }
14254 memcpy((VkImageCompressionFlagsEXT*)&forUnmarshaling->imageCompressionFlags, *ptr,
14255 sizeof(VkImageCompressionFlagsEXT));
14256 *ptr += sizeof(VkImageCompressionFlagsEXT);
14257 memcpy((VkImageCompressionFixedRateFlagsEXT*)&forUnmarshaling->imageCompressionFixedRateFlags,
14258 *ptr, sizeof(VkImageCompressionFixedRateFlagsEXT));
14259 *ptr += sizeof(VkImageCompressionFixedRateFlagsEXT);
14260 }
14261
14262 #endif
14263 #ifdef VK_EXT_4444_formats
reservedunmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevice4444FormatsFeaturesEXT * forUnmarshaling,uint8_t ** ptr)14264 void reservedunmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
14265 VulkanStream* vkStream, VkStructureType rootType,
14266 VkPhysicalDevice4444FormatsFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14267 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14268 *ptr += sizeof(VkStructureType);
14269 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14270 rootType = forUnmarshaling->sType;
14271 }
14272 uint32_t pNext_size;
14273 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14274 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14275 *ptr += sizeof(uint32_t);
14276 forUnmarshaling->pNext = nullptr;
14277 if (pNext_size) {
14278 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14279 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14280 *ptr += sizeof(VkStructureType);
14281 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14282 vkStream->alloc((void**)&forUnmarshaling->pNext,
14283 goldfish_vk_extension_struct_size_with_stream_features(
14284 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14285 *(VkStructureType*)forUnmarshaling->pNext = extType;
14286 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14287 ptr);
14288 }
14289 memcpy((VkBool32*)&forUnmarshaling->formatA4R4G4B4, *ptr, sizeof(VkBool32));
14290 *ptr += sizeof(VkBool32);
14291 memcpy((VkBool32*)&forUnmarshaling->formatA4B4G4R4, *ptr, sizeof(VkBool32));
14292 *ptr += sizeof(VkBool32);
14293 }
14294
14295 #endif
14296 #ifdef VK_EXT_primitive_topology_list_restart
reservedunmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT * forUnmarshaling,uint8_t ** ptr)14297 void reservedunmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
14298 VulkanStream* vkStream, VkStructureType rootType,
14299 VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14300 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14301 *ptr += sizeof(VkStructureType);
14302 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14303 rootType = forUnmarshaling->sType;
14304 }
14305 uint32_t pNext_size;
14306 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14307 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14308 *ptr += sizeof(uint32_t);
14309 forUnmarshaling->pNext = nullptr;
14310 if (pNext_size) {
14311 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14312 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14313 *ptr += sizeof(VkStructureType);
14314 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14315 vkStream->alloc((void**)&forUnmarshaling->pNext,
14316 goldfish_vk_extension_struct_size_with_stream_features(
14317 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14318 *(VkStructureType*)forUnmarshaling->pNext = extType;
14319 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14320 ptr);
14321 }
14322 memcpy((VkBool32*)&forUnmarshaling->primitiveTopologyListRestart, *ptr, sizeof(VkBool32));
14323 *ptr += sizeof(VkBool32);
14324 memcpy((VkBool32*)&forUnmarshaling->primitiveTopologyPatchListRestart, *ptr, sizeof(VkBool32));
14325 *ptr += sizeof(VkBool32);
14326 }
14327
14328 #endif
14329 #ifdef VK_EXT_extended_dynamic_state2
reservedunmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceExtendedDynamicState2FeaturesEXT * forUnmarshaling,uint8_t ** ptr)14330 void reservedunmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
14331 VulkanStream* vkStream, VkStructureType rootType,
14332 VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14333 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14334 *ptr += sizeof(VkStructureType);
14335 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14336 rootType = forUnmarshaling->sType;
14337 }
14338 uint32_t pNext_size;
14339 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14340 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14341 *ptr += sizeof(uint32_t);
14342 forUnmarshaling->pNext = nullptr;
14343 if (pNext_size) {
14344 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14345 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14346 *ptr += sizeof(VkStructureType);
14347 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14348 vkStream->alloc((void**)&forUnmarshaling->pNext,
14349 goldfish_vk_extension_struct_size_with_stream_features(
14350 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14351 *(VkStructureType*)forUnmarshaling->pNext = extType;
14352 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14353 ptr);
14354 }
14355 memcpy((VkBool32*)&forUnmarshaling->extendedDynamicState2, *ptr, sizeof(VkBool32));
14356 *ptr += sizeof(VkBool32);
14357 memcpy((VkBool32*)&forUnmarshaling->extendedDynamicState2LogicOp, *ptr, sizeof(VkBool32));
14358 *ptr += sizeof(VkBool32);
14359 memcpy((VkBool32*)&forUnmarshaling->extendedDynamicState2PatchControlPoints, *ptr,
14360 sizeof(VkBool32));
14361 *ptr += sizeof(VkBool32);
14362 }
14363
14364 #endif
14365 #ifdef VK_EXT_color_write_enable
reservedunmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceColorWriteEnableFeaturesEXT * forUnmarshaling,uint8_t ** ptr)14366 void reservedunmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
14367 VulkanStream* vkStream, VkStructureType rootType,
14368 VkPhysicalDeviceColorWriteEnableFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14369 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14370 *ptr += sizeof(VkStructureType);
14371 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14372 rootType = forUnmarshaling->sType;
14373 }
14374 uint32_t pNext_size;
14375 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14376 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14377 *ptr += sizeof(uint32_t);
14378 forUnmarshaling->pNext = nullptr;
14379 if (pNext_size) {
14380 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14381 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14382 *ptr += sizeof(VkStructureType);
14383 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14384 vkStream->alloc((void**)&forUnmarshaling->pNext,
14385 goldfish_vk_extension_struct_size_with_stream_features(
14386 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14387 *(VkStructureType*)forUnmarshaling->pNext = extType;
14388 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14389 ptr);
14390 }
14391 memcpy((VkBool32*)&forUnmarshaling->colorWriteEnable, *ptr, sizeof(VkBool32));
14392 *ptr += sizeof(VkBool32);
14393 }
14394
reservedunmarshal_VkPipelineColorWriteCreateInfoEXT(VulkanStream * vkStream,VkStructureType rootType,VkPipelineColorWriteCreateInfoEXT * forUnmarshaling,uint8_t ** ptr)14395 void reservedunmarshal_VkPipelineColorWriteCreateInfoEXT(
14396 VulkanStream* vkStream, VkStructureType rootType,
14397 VkPipelineColorWriteCreateInfoEXT* forUnmarshaling, uint8_t** ptr) {
14398 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14399 *ptr += sizeof(VkStructureType);
14400 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14401 rootType = forUnmarshaling->sType;
14402 }
14403 uint32_t pNext_size;
14404 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14405 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14406 *ptr += sizeof(uint32_t);
14407 forUnmarshaling->pNext = nullptr;
14408 if (pNext_size) {
14409 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14410 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14411 *ptr += sizeof(VkStructureType);
14412 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14413 vkStream->alloc((void**)&forUnmarshaling->pNext,
14414 goldfish_vk_extension_struct_size_with_stream_features(
14415 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14416 *(VkStructureType*)forUnmarshaling->pNext = extType;
14417 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14418 ptr);
14419 }
14420 memcpy((uint32_t*)&forUnmarshaling->attachmentCount, *ptr, sizeof(uint32_t));
14421 *ptr += sizeof(uint32_t);
14422 vkStream->alloc((void**)&forUnmarshaling->pColorWriteEnables,
14423 forUnmarshaling->attachmentCount * sizeof(const VkBool32));
14424 memcpy((VkBool32*)forUnmarshaling->pColorWriteEnables, *ptr,
14425 forUnmarshaling->attachmentCount * sizeof(const VkBool32));
14426 *ptr += forUnmarshaling->attachmentCount * sizeof(const VkBool32);
14427 }
14428
14429 #endif
14430 #ifdef VK_GOOGLE_gfxstream
reservedunmarshal_VkImportColorBufferGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkImportColorBufferGOOGLE * forUnmarshaling,uint8_t ** ptr)14431 void reservedunmarshal_VkImportColorBufferGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
14432 VkImportColorBufferGOOGLE* forUnmarshaling,
14433 uint8_t** ptr) {
14434 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14435 *ptr += sizeof(VkStructureType);
14436 forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE;
14437 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14438 rootType = forUnmarshaling->sType;
14439 }
14440 uint32_t pNext_size;
14441 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14442 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14443 *ptr += sizeof(uint32_t);
14444 forUnmarshaling->pNext = nullptr;
14445 if (pNext_size) {
14446 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14447 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14448 *ptr += sizeof(VkStructureType);
14449 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14450 vkStream->alloc((void**)&forUnmarshaling->pNext,
14451 goldfish_vk_extension_struct_size_with_stream_features(
14452 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14453 *(VkStructureType*)forUnmarshaling->pNext = extType;
14454 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14455 ptr);
14456 }
14457 memcpy((uint32_t*)&forUnmarshaling->colorBuffer, *ptr, sizeof(uint32_t));
14458 *ptr += sizeof(uint32_t);
14459 }
14460
reservedunmarshal_VkImportBufferGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkImportBufferGOOGLE * forUnmarshaling,uint8_t ** ptr)14461 void reservedunmarshal_VkImportBufferGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
14462 VkImportBufferGOOGLE* forUnmarshaling, uint8_t** ptr) {
14463 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14464 *ptr += sizeof(VkStructureType);
14465 forUnmarshaling->sType = VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE;
14466 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14467 rootType = forUnmarshaling->sType;
14468 }
14469 uint32_t pNext_size;
14470 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14471 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14472 *ptr += sizeof(uint32_t);
14473 forUnmarshaling->pNext = nullptr;
14474 if (pNext_size) {
14475 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14476 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14477 *ptr += sizeof(VkStructureType);
14478 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14479 vkStream->alloc((void**)&forUnmarshaling->pNext,
14480 goldfish_vk_extension_struct_size_with_stream_features(
14481 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14482 *(VkStructureType*)forUnmarshaling->pNext = extType;
14483 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14484 ptr);
14485 }
14486 memcpy((uint32_t*)&forUnmarshaling->buffer, *ptr, sizeof(uint32_t));
14487 *ptr += sizeof(uint32_t);
14488 }
14489
reservedunmarshal_VkCreateBlobGOOGLE(VulkanStream * vkStream,VkStructureType rootType,VkCreateBlobGOOGLE * forUnmarshaling,uint8_t ** ptr)14490 void reservedunmarshal_VkCreateBlobGOOGLE(VulkanStream* vkStream, VkStructureType rootType,
14491 VkCreateBlobGOOGLE* forUnmarshaling, uint8_t** ptr) {
14492 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14493 *ptr += sizeof(VkStructureType);
14494 forUnmarshaling->sType = VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE;
14495 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14496 rootType = forUnmarshaling->sType;
14497 }
14498 uint32_t pNext_size;
14499 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14500 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14501 *ptr += sizeof(uint32_t);
14502 forUnmarshaling->pNext = nullptr;
14503 if (pNext_size) {
14504 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14505 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14506 *ptr += sizeof(VkStructureType);
14507 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14508 vkStream->alloc((void**)&forUnmarshaling->pNext,
14509 goldfish_vk_extension_struct_size_with_stream_features(
14510 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14511 *(VkStructureType*)forUnmarshaling->pNext = extType;
14512 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14513 ptr);
14514 }
14515 memcpy((uint32_t*)&forUnmarshaling->blobMem, *ptr, sizeof(uint32_t));
14516 *ptr += sizeof(uint32_t);
14517 memcpy((uint32_t*)&forUnmarshaling->blobFlags, *ptr, sizeof(uint32_t));
14518 *ptr += sizeof(uint32_t);
14519 memcpy((uint64_t*)&forUnmarshaling->blobId, *ptr, sizeof(uint64_t));
14520 *ptr += sizeof(uint64_t);
14521 }
14522
14523 #endif
14524 #ifdef VK_EXT_image_compression_control_swapchain
reservedunmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT * forUnmarshaling,uint8_t ** ptr)14525 void reservedunmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
14526 VulkanStream* vkStream, VkStructureType rootType,
14527 VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* forUnmarshaling, uint8_t** ptr) {
14528 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14529 *ptr += sizeof(VkStructureType);
14530 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14531 rootType = forUnmarshaling->sType;
14532 }
14533 uint32_t pNext_size;
14534 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14535 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14536 *ptr += sizeof(uint32_t);
14537 forUnmarshaling->pNext = nullptr;
14538 if (pNext_size) {
14539 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14540 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14541 *ptr += sizeof(VkStructureType);
14542 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14543 vkStream->alloc((void**)&forUnmarshaling->pNext,
14544 goldfish_vk_extension_struct_size_with_stream_features(
14545 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14546 *(VkStructureType*)forUnmarshaling->pNext = extType;
14547 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14548 ptr);
14549 }
14550 memcpy((VkBool32*)&forUnmarshaling->imageCompressionControlSwapchain, *ptr, sizeof(VkBool32));
14551 *ptr += sizeof(VkBool32);
14552 }
14553
14554 #endif
14555 #ifdef VK_KHR_ray_tracing_pipeline
reservedunmarshal_VkRayTracingShaderGroupCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingShaderGroupCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)14556 void reservedunmarshal_VkRayTracingShaderGroupCreateInfoKHR(
14557 VulkanStream* vkStream, VkStructureType rootType,
14558 VkRayTracingShaderGroupCreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
14559 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14560 *ptr += sizeof(VkStructureType);
14561 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14562 rootType = forUnmarshaling->sType;
14563 }
14564 uint32_t pNext_size;
14565 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14566 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14567 *ptr += sizeof(uint32_t);
14568 forUnmarshaling->pNext = nullptr;
14569 if (pNext_size) {
14570 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14571 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14572 *ptr += sizeof(VkStructureType);
14573 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14574 vkStream->alloc((void**)&forUnmarshaling->pNext,
14575 goldfish_vk_extension_struct_size_with_stream_features(
14576 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14577 *(VkStructureType*)forUnmarshaling->pNext = extType;
14578 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14579 ptr);
14580 }
14581 memcpy((VkRayTracingShaderGroupTypeKHR*)&forUnmarshaling->type, *ptr,
14582 sizeof(VkRayTracingShaderGroupTypeKHR));
14583 *ptr += sizeof(VkRayTracingShaderGroupTypeKHR);
14584 memcpy((uint32_t*)&forUnmarshaling->generalShader, *ptr, sizeof(uint32_t));
14585 *ptr += sizeof(uint32_t);
14586 memcpy((uint32_t*)&forUnmarshaling->closestHitShader, *ptr, sizeof(uint32_t));
14587 *ptr += sizeof(uint32_t);
14588 memcpy((uint32_t*)&forUnmarshaling->anyHitShader, *ptr, sizeof(uint32_t));
14589 *ptr += sizeof(uint32_t);
14590 memcpy((uint32_t*)&forUnmarshaling->intersectionShader, *ptr, sizeof(uint32_t));
14591 *ptr += sizeof(uint32_t);
14592 // WARNING PTR CHECK
14593 memcpy((void**)&forUnmarshaling->pShaderGroupCaptureReplayHandle, (*ptr), 8);
14594 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pShaderGroupCaptureReplayHandle);
14595 *ptr += 8;
14596 if (forUnmarshaling->pShaderGroupCaptureReplayHandle) {
14597 vkStream->alloc((void**)&forUnmarshaling->pShaderGroupCaptureReplayHandle,
14598 sizeof(const uint8_t));
14599 memcpy((void*)forUnmarshaling->pShaderGroupCaptureReplayHandle, *ptr,
14600 sizeof(const uint8_t));
14601 *ptr += sizeof(const uint8_t);
14602 }
14603 }
14604
reservedunmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingPipelineInterfaceCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)14605 void reservedunmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
14606 VulkanStream* vkStream, VkStructureType rootType,
14607 VkRayTracingPipelineInterfaceCreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
14608 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14609 *ptr += sizeof(VkStructureType);
14610 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14611 rootType = forUnmarshaling->sType;
14612 }
14613 uint32_t pNext_size;
14614 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14615 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14616 *ptr += sizeof(uint32_t);
14617 forUnmarshaling->pNext = nullptr;
14618 if (pNext_size) {
14619 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14620 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14621 *ptr += sizeof(VkStructureType);
14622 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14623 vkStream->alloc((void**)&forUnmarshaling->pNext,
14624 goldfish_vk_extension_struct_size_with_stream_features(
14625 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14626 *(VkStructureType*)forUnmarshaling->pNext = extType;
14627 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14628 ptr);
14629 }
14630 memcpy((uint32_t*)&forUnmarshaling->maxPipelineRayPayloadSize, *ptr, sizeof(uint32_t));
14631 *ptr += sizeof(uint32_t);
14632 memcpy((uint32_t*)&forUnmarshaling->maxPipelineRayHitAttributeSize, *ptr, sizeof(uint32_t));
14633 *ptr += sizeof(uint32_t);
14634 }
14635
reservedunmarshal_VkRayTracingPipelineCreateInfoKHR(VulkanStream * vkStream,VkStructureType rootType,VkRayTracingPipelineCreateInfoKHR * forUnmarshaling,uint8_t ** ptr)14636 void reservedunmarshal_VkRayTracingPipelineCreateInfoKHR(
14637 VulkanStream* vkStream, VkStructureType rootType,
14638 VkRayTracingPipelineCreateInfoKHR* forUnmarshaling, uint8_t** ptr) {
14639 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14640 *ptr += sizeof(VkStructureType);
14641 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14642 rootType = forUnmarshaling->sType;
14643 }
14644 uint32_t pNext_size;
14645 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14646 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14647 *ptr += sizeof(uint32_t);
14648 forUnmarshaling->pNext = nullptr;
14649 if (pNext_size) {
14650 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14651 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14652 *ptr += sizeof(VkStructureType);
14653 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14654 vkStream->alloc((void**)&forUnmarshaling->pNext,
14655 goldfish_vk_extension_struct_size_with_stream_features(
14656 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14657 *(VkStructureType*)forUnmarshaling->pNext = extType;
14658 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14659 ptr);
14660 }
14661 memcpy((VkPipelineCreateFlags*)&forUnmarshaling->flags, *ptr, sizeof(VkPipelineCreateFlags));
14662 *ptr += sizeof(VkPipelineCreateFlags);
14663 memcpy((uint32_t*)&forUnmarshaling->stageCount, *ptr, sizeof(uint32_t));
14664 *ptr += sizeof(uint32_t);
14665 vkStream->alloc((void**)&forUnmarshaling->pStages,
14666 forUnmarshaling->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
14667 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i) {
14668 reservedunmarshal_VkPipelineShaderStageCreateInfo(
14669 vkStream, rootType, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i),
14670 ptr);
14671 }
14672 memcpy((uint32_t*)&forUnmarshaling->groupCount, *ptr, sizeof(uint32_t));
14673 *ptr += sizeof(uint32_t);
14674 vkStream->alloc(
14675 (void**)&forUnmarshaling->pGroups,
14676 forUnmarshaling->groupCount * sizeof(const VkRayTracingShaderGroupCreateInfoKHR));
14677 for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->groupCount; ++i) {
14678 reservedunmarshal_VkRayTracingShaderGroupCreateInfoKHR(
14679 vkStream, rootType,
14680 (VkRayTracingShaderGroupCreateInfoKHR*)(forUnmarshaling->pGroups + i), ptr);
14681 }
14682 memcpy((uint32_t*)&forUnmarshaling->maxPipelineRayRecursionDepth, *ptr, sizeof(uint32_t));
14683 *ptr += sizeof(uint32_t);
14684 // WARNING PTR CHECK
14685 memcpy((VkPipelineLibraryCreateInfoKHR**)&forUnmarshaling->pLibraryInfo, (*ptr), 8);
14686 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pLibraryInfo);
14687 *ptr += 8;
14688 if (forUnmarshaling->pLibraryInfo) {
14689 vkStream->alloc((void**)&forUnmarshaling->pLibraryInfo,
14690 sizeof(const VkPipelineLibraryCreateInfoKHR));
14691 reservedunmarshal_VkPipelineLibraryCreateInfoKHR(
14692 vkStream, rootType, (VkPipelineLibraryCreateInfoKHR*)(forUnmarshaling->pLibraryInfo),
14693 ptr);
14694 }
14695 // WARNING PTR CHECK
14696 memcpy((VkRayTracingPipelineInterfaceCreateInfoKHR**)&forUnmarshaling->pLibraryInterface,
14697 (*ptr), 8);
14698 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pLibraryInterface);
14699 *ptr += 8;
14700 if (forUnmarshaling->pLibraryInterface) {
14701 vkStream->alloc((void**)&forUnmarshaling->pLibraryInterface,
14702 sizeof(const VkRayTracingPipelineInterfaceCreateInfoKHR));
14703 reservedunmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
14704 vkStream, rootType,
14705 (VkRayTracingPipelineInterfaceCreateInfoKHR*)(forUnmarshaling->pLibraryInterface), ptr);
14706 }
14707 // WARNING PTR CHECK
14708 memcpy((VkPipelineDynamicStateCreateInfo**)&forUnmarshaling->pDynamicState, (*ptr), 8);
14709 android::base::Stream::fromBe64((uint8_t*)&forUnmarshaling->pDynamicState);
14710 *ptr += 8;
14711 if (forUnmarshaling->pDynamicState) {
14712 vkStream->alloc((void**)&forUnmarshaling->pDynamicState,
14713 sizeof(const VkPipelineDynamicStateCreateInfo));
14714 reservedunmarshal_VkPipelineDynamicStateCreateInfo(
14715 vkStream, rootType, (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState),
14716 ptr);
14717 }
14718 uint64_t cgen_var_3;
14719 memcpy((uint64_t*)&cgen_var_3, *ptr, 1 * 8);
14720 *ptr += 1 * 8;
14721 *(VkPipelineLayout*)&forUnmarshaling->layout =
14722 (VkPipelineLayout)unbox_VkPipelineLayout((VkPipelineLayout)(*&cgen_var_3));
14723 uint64_t cgen_var_4;
14724 memcpy((uint64_t*)&cgen_var_4, *ptr, 1 * 8);
14725 *ptr += 1 * 8;
14726 *(VkPipeline*)&forUnmarshaling->basePipelineHandle =
14727 (VkPipeline)unbox_VkPipeline((VkPipeline)(*&cgen_var_4));
14728 memcpy((int32_t*)&forUnmarshaling->basePipelineIndex, *ptr, sizeof(int32_t));
14729 *ptr += sizeof(int32_t);
14730 }
14731
reservedunmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingPipelineFeaturesKHR * forUnmarshaling,uint8_t ** ptr)14732 void reservedunmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
14733 VulkanStream* vkStream, VkStructureType rootType,
14734 VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forUnmarshaling, uint8_t** ptr) {
14735 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14736 *ptr += sizeof(VkStructureType);
14737 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14738 rootType = forUnmarshaling->sType;
14739 }
14740 uint32_t pNext_size;
14741 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14742 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14743 *ptr += sizeof(uint32_t);
14744 forUnmarshaling->pNext = nullptr;
14745 if (pNext_size) {
14746 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14747 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14748 *ptr += sizeof(VkStructureType);
14749 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14750 vkStream->alloc((void**)&forUnmarshaling->pNext,
14751 goldfish_vk_extension_struct_size_with_stream_features(
14752 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14753 *(VkStructureType*)forUnmarshaling->pNext = extType;
14754 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14755 ptr);
14756 }
14757 memcpy((VkBool32*)&forUnmarshaling->rayTracingPipeline, *ptr, sizeof(VkBool32));
14758 *ptr += sizeof(VkBool32);
14759 memcpy((VkBool32*)&forUnmarshaling->rayTracingPipelineShaderGroupHandleCaptureReplay, *ptr,
14760 sizeof(VkBool32));
14761 *ptr += sizeof(VkBool32);
14762 memcpy((VkBool32*)&forUnmarshaling->rayTracingPipelineShaderGroupHandleCaptureReplayMixed, *ptr,
14763 sizeof(VkBool32));
14764 *ptr += sizeof(VkBool32);
14765 memcpy((VkBool32*)&forUnmarshaling->rayTracingPipelineTraceRaysIndirect, *ptr,
14766 sizeof(VkBool32));
14767 *ptr += sizeof(VkBool32);
14768 memcpy((VkBool32*)&forUnmarshaling->rayTraversalPrimitiveCulling, *ptr, sizeof(VkBool32));
14769 *ptr += sizeof(VkBool32);
14770 }
14771
reservedunmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(VulkanStream * vkStream,VkStructureType rootType,VkPhysicalDeviceRayTracingPipelinePropertiesKHR * forUnmarshaling,uint8_t ** ptr)14772 void reservedunmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
14773 VulkanStream* vkStream, VkStructureType rootType,
14774 VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forUnmarshaling, uint8_t** ptr) {
14775 memcpy((VkStructureType*)&forUnmarshaling->sType, *ptr, sizeof(VkStructureType));
14776 *ptr += sizeof(VkStructureType);
14777 if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
14778 rootType = forUnmarshaling->sType;
14779 }
14780 uint32_t pNext_size;
14781 memcpy((uint32_t*)&pNext_size, *ptr, sizeof(uint32_t));
14782 android::base::Stream::fromBe32((uint8_t*)&pNext_size);
14783 *ptr += sizeof(uint32_t);
14784 forUnmarshaling->pNext = nullptr;
14785 if (pNext_size) {
14786 vkStream->alloc((void**)&forUnmarshaling->pNext, sizeof(VkStructureType));
14787 memcpy((void*)forUnmarshaling->pNext, *ptr, sizeof(VkStructureType));
14788 *ptr += sizeof(VkStructureType);
14789 VkStructureType extType = *(VkStructureType*)(forUnmarshaling->pNext);
14790 vkStream->alloc((void**)&forUnmarshaling->pNext,
14791 goldfish_vk_extension_struct_size_with_stream_features(
14792 vkStream->getFeatureBits(), rootType, forUnmarshaling->pNext));
14793 *(VkStructureType*)forUnmarshaling->pNext = extType;
14794 reservedunmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext),
14795 ptr);
14796 }
14797 memcpy((uint32_t*)&forUnmarshaling->shaderGroupHandleSize, *ptr, sizeof(uint32_t));
14798 *ptr += sizeof(uint32_t);
14799 memcpy((uint32_t*)&forUnmarshaling->maxRayRecursionDepth, *ptr, sizeof(uint32_t));
14800 *ptr += sizeof(uint32_t);
14801 memcpy((uint32_t*)&forUnmarshaling->maxShaderGroupStride, *ptr, sizeof(uint32_t));
14802 *ptr += sizeof(uint32_t);
14803 memcpy((uint32_t*)&forUnmarshaling->shaderGroupBaseAlignment, *ptr, sizeof(uint32_t));
14804 *ptr += sizeof(uint32_t);
14805 memcpy((uint32_t*)&forUnmarshaling->shaderGroupHandleCaptureReplaySize, *ptr, sizeof(uint32_t));
14806 *ptr += sizeof(uint32_t);
14807 memcpy((uint32_t*)&forUnmarshaling->maxRayDispatchInvocationCount, *ptr, sizeof(uint32_t));
14808 *ptr += sizeof(uint32_t);
14809 memcpy((uint32_t*)&forUnmarshaling->shaderGroupHandleAlignment, *ptr, sizeof(uint32_t));
14810 *ptr += sizeof(uint32_t);
14811 memcpy((uint32_t*)&forUnmarshaling->maxRayHitAttributeSize, *ptr, sizeof(uint32_t));
14812 *ptr += sizeof(uint32_t);
14813 }
14814
reservedunmarshal_VkStridedDeviceAddressRegionKHR(VulkanStream * vkStream,VkStructureType rootType,VkStridedDeviceAddressRegionKHR * forUnmarshaling,uint8_t ** ptr)14815 void reservedunmarshal_VkStridedDeviceAddressRegionKHR(
14816 VulkanStream* vkStream, VkStructureType rootType,
14817 VkStridedDeviceAddressRegionKHR* forUnmarshaling, uint8_t** ptr) {
14818 memcpy((VkDeviceAddress*)&forUnmarshaling->deviceAddress, *ptr, sizeof(VkDeviceAddress));
14819 *ptr += sizeof(VkDeviceAddress);
14820 memcpy((VkDeviceSize*)&forUnmarshaling->stride, *ptr, sizeof(VkDeviceSize));
14821 *ptr += sizeof(VkDeviceSize);
14822 memcpy((VkDeviceSize*)&forUnmarshaling->size, *ptr, sizeof(VkDeviceSize));
14823 *ptr += sizeof(VkDeviceSize);
14824 }
14825
reservedunmarshal_VkTraceRaysIndirectCommandKHR(VulkanStream * vkStream,VkStructureType rootType,VkTraceRaysIndirectCommandKHR * forUnmarshaling,uint8_t ** ptr)14826 void reservedunmarshal_VkTraceRaysIndirectCommandKHR(VulkanStream* vkStream,
14827 VkStructureType rootType,
14828 VkTraceRaysIndirectCommandKHR* forUnmarshaling,
14829 uint8_t** ptr) {
14830 memcpy((uint32_t*)&forUnmarshaling->width, *ptr, sizeof(uint32_t));
14831 *ptr += sizeof(uint32_t);
14832 memcpy((uint32_t*)&forUnmarshaling->height, *ptr, sizeof(uint32_t));
14833 *ptr += sizeof(uint32_t);
14834 memcpy((uint32_t*)&forUnmarshaling->depth, *ptr, sizeof(uint32_t));
14835 *ptr += sizeof(uint32_t);
14836 }
14837
14838 #endif
reservedunmarshal_extension_struct(VulkanStream * vkStream,VkStructureType rootType,void * structExtension_out,uint8_t ** ptr)14839 void reservedunmarshal_extension_struct(VulkanStream* vkStream, VkStructureType rootType,
14840 void* structExtension_out, uint8_t** ptr) {
14841 VkInstanceCreateInfo* structAccess = (VkInstanceCreateInfo*)(structExtension_out);
14842 uint32_t currExtSize = goldfish_vk_extension_struct_size_with_stream_features(
14843 vkStream->getFeatureBits(), rootType, structExtension_out);
14844 if (!currExtSize && structExtension_out) {
14845 // unknown struct extension; skip and call on its pNext field
14846 reservedunmarshal_extension_struct(vkStream, rootType, (void*)structAccess->pNext, ptr);
14847 return;
14848 } else {
14849 // known or null extension struct
14850 if (!currExtSize) {
14851 // exit if this was a null extension struct (size == 0 in this branch)
14852 return;
14853 }
14854 }
14855 if (!structExtension_out) {
14856 return;
14857 }
14858 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension_out);
14859 switch (structType) {
14860 #ifdef VK_VERSION_1_0
14861 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
14862 reservedunmarshal_VkShaderModuleCreateInfo(
14863 vkStream, rootType,
14864 reinterpret_cast<VkShaderModuleCreateInfo*>(structExtension_out), ptr);
14865 break;
14866 }
14867 #endif
14868 #ifdef VK_VERSION_1_1
14869 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
14870 reservedunmarshal_VkPhysicalDeviceSubgroupProperties(
14871 vkStream, rootType,
14872 reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out), ptr);
14873 break;
14874 }
14875 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
14876 reservedunmarshal_VkPhysicalDevice16BitStorageFeatures(
14877 vkStream, rootType,
14878 reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out), ptr);
14879 break;
14880 }
14881 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
14882 reservedunmarshal_VkMemoryDedicatedRequirements(
14883 vkStream, rootType,
14884 reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out), ptr);
14885 break;
14886 }
14887 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
14888 reservedunmarshal_VkMemoryDedicatedAllocateInfo(
14889 vkStream, rootType,
14890 reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out), ptr);
14891 break;
14892 }
14893 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
14894 reservedunmarshal_VkMemoryAllocateFlagsInfo(
14895 vkStream, rootType,
14896 reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out), ptr);
14897 break;
14898 }
14899 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
14900 reservedunmarshal_VkDeviceGroupRenderPassBeginInfo(
14901 vkStream, rootType,
14902 reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out), ptr);
14903 break;
14904 }
14905 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
14906 reservedunmarshal_VkDeviceGroupCommandBufferBeginInfo(
14907 vkStream, rootType,
14908 reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out), ptr);
14909 break;
14910 }
14911 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
14912 reservedunmarshal_VkDeviceGroupSubmitInfo(
14913 vkStream, rootType, reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out),
14914 ptr);
14915 break;
14916 }
14917 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
14918 reservedunmarshal_VkDeviceGroupBindSparseInfo(
14919 vkStream, rootType,
14920 reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out), ptr);
14921 break;
14922 }
14923 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
14924 reservedunmarshal_VkBindBufferMemoryDeviceGroupInfo(
14925 vkStream, rootType,
14926 reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out), ptr);
14927 break;
14928 }
14929 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
14930 reservedunmarshal_VkBindImageMemoryDeviceGroupInfo(
14931 vkStream, rootType,
14932 reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out), ptr);
14933 break;
14934 }
14935 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
14936 reservedunmarshal_VkDeviceGroupDeviceCreateInfo(
14937 vkStream, rootType,
14938 reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out), ptr);
14939 break;
14940 }
14941 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
14942 reservedunmarshal_VkPhysicalDeviceFeatures2(
14943 vkStream, rootType,
14944 reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out), ptr);
14945 break;
14946 }
14947 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
14948 reservedunmarshal_VkPhysicalDevicePointClippingProperties(
14949 vkStream, rootType,
14950 reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out),
14951 ptr);
14952 break;
14953 }
14954 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
14955 reservedunmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
14956 vkStream, rootType,
14957 reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out),
14958 ptr);
14959 break;
14960 }
14961 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
14962 reservedunmarshal_VkImageViewUsageCreateInfo(
14963 vkStream, rootType,
14964 reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out), ptr);
14965 break;
14966 }
14967 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
14968 reservedunmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
14969 vkStream, rootType,
14970 reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(
14971 structExtension_out),
14972 ptr);
14973 break;
14974 }
14975 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
14976 reservedunmarshal_VkRenderPassMultiviewCreateInfo(
14977 vkStream, rootType,
14978 reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out), ptr);
14979 break;
14980 }
14981 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
14982 reservedunmarshal_VkPhysicalDeviceMultiviewFeatures(
14983 vkStream, rootType,
14984 reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out), ptr);
14985 break;
14986 }
14987 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
14988 reservedunmarshal_VkPhysicalDeviceMultiviewProperties(
14989 vkStream, rootType,
14990 reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out), ptr);
14991 break;
14992 }
14993 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
14994 reservedunmarshal_VkPhysicalDeviceVariablePointersFeatures(
14995 vkStream, rootType,
14996 reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out),
14997 ptr);
14998 break;
14999 }
15000 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
15001 reservedunmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
15002 vkStream, rootType,
15003 reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out),
15004 ptr);
15005 break;
15006 }
15007 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
15008 reservedunmarshal_VkPhysicalDeviceProtectedMemoryProperties(
15009 vkStream, rootType,
15010 reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out),
15011 ptr);
15012 break;
15013 }
15014 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
15015 reservedunmarshal_VkProtectedSubmitInfo(
15016 vkStream, rootType, reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out),
15017 ptr);
15018 break;
15019 }
15020 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
15021 reservedunmarshal_VkSamplerYcbcrConversionInfo(
15022 vkStream, rootType,
15023 reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out), ptr);
15024 break;
15025 }
15026 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
15027 reservedunmarshal_VkBindImagePlaneMemoryInfo(
15028 vkStream, rootType,
15029 reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out), ptr);
15030 break;
15031 }
15032 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
15033 reservedunmarshal_VkImagePlaneMemoryRequirementsInfo(
15034 vkStream, rootType,
15035 reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out), ptr);
15036 break;
15037 }
15038 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
15039 reservedunmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
15040 vkStream, rootType,
15041 reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
15042 structExtension_out),
15043 ptr);
15044 break;
15045 }
15046 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
15047 reservedunmarshal_VkSamplerYcbcrConversionImageFormatProperties(
15048 vkStream, rootType,
15049 reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(
15050 structExtension_out),
15051 ptr);
15052 break;
15053 }
15054 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
15055 reservedunmarshal_VkPhysicalDeviceExternalImageFormatInfo(
15056 vkStream, rootType,
15057 reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out),
15058 ptr);
15059 break;
15060 }
15061 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
15062 reservedunmarshal_VkExternalImageFormatProperties(
15063 vkStream, rootType,
15064 reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out), ptr);
15065 break;
15066 }
15067 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
15068 reservedunmarshal_VkPhysicalDeviceIDProperties(
15069 vkStream, rootType,
15070 reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out), ptr);
15071 break;
15072 }
15073 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
15074 reservedunmarshal_VkExternalMemoryImageCreateInfo(
15075 vkStream, rootType,
15076 reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out), ptr);
15077 break;
15078 }
15079 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
15080 reservedunmarshal_VkExternalMemoryBufferCreateInfo(
15081 vkStream, rootType,
15082 reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out), ptr);
15083 break;
15084 }
15085 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
15086 reservedunmarshal_VkExportMemoryAllocateInfo(
15087 vkStream, rootType,
15088 reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out), ptr);
15089 break;
15090 }
15091 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
15092 reservedunmarshal_VkExportFenceCreateInfo(
15093 vkStream, rootType, reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out),
15094 ptr);
15095 break;
15096 }
15097 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
15098 reservedunmarshal_VkExportSemaphoreCreateInfo(
15099 vkStream, rootType,
15100 reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out), ptr);
15101 break;
15102 }
15103 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
15104 reservedunmarshal_VkPhysicalDeviceMaintenance3Properties(
15105 vkStream, rootType,
15106 reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out),
15107 ptr);
15108 break;
15109 }
15110 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
15111 reservedunmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
15112 vkStream, rootType,
15113 reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(
15114 structExtension_out),
15115 ptr);
15116 break;
15117 }
15118 #endif
15119 #ifdef VK_VERSION_1_2
15120 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
15121 reservedunmarshal_VkPhysicalDeviceVulkan11Features(
15122 vkStream, rootType,
15123 reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out), ptr);
15124 break;
15125 }
15126 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
15127 reservedunmarshal_VkPhysicalDeviceVulkan11Properties(
15128 vkStream, rootType,
15129 reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out), ptr);
15130 break;
15131 }
15132 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
15133 reservedunmarshal_VkPhysicalDeviceVulkan12Features(
15134 vkStream, rootType,
15135 reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out), ptr);
15136 break;
15137 }
15138 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
15139 reservedunmarshal_VkPhysicalDeviceVulkan12Properties(
15140 vkStream, rootType,
15141 reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out), ptr);
15142 break;
15143 }
15144 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
15145 reservedunmarshal_VkImageFormatListCreateInfo(
15146 vkStream, rootType,
15147 reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out), ptr);
15148 break;
15149 }
15150 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
15151 reservedunmarshal_VkPhysicalDevice8BitStorageFeatures(
15152 vkStream, rootType,
15153 reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out), ptr);
15154 break;
15155 }
15156 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
15157 reservedunmarshal_VkPhysicalDeviceDriverProperties(
15158 vkStream, rootType,
15159 reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out), ptr);
15160 break;
15161 }
15162 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
15163 reservedunmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
15164 vkStream, rootType,
15165 reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out),
15166 ptr);
15167 break;
15168 }
15169 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
15170 reservedunmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
15171 vkStream, rootType,
15172 reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out),
15173 ptr);
15174 break;
15175 }
15176 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
15177 reservedunmarshal_VkPhysicalDeviceFloatControlsProperties(
15178 vkStream, rootType,
15179 reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out),
15180 ptr);
15181 break;
15182 }
15183 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
15184 reservedunmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
15185 vkStream, rootType,
15186 reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension_out),
15187 ptr);
15188 break;
15189 }
15190 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
15191 reservedunmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
15192 vkStream, rootType,
15193 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out),
15194 ptr);
15195 break;
15196 }
15197 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
15198 reservedunmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
15199 vkStream, rootType,
15200 reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(
15201 structExtension_out),
15202 ptr);
15203 break;
15204 }
15205 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
15206 reservedunmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
15207 vkStream, rootType,
15208 reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
15209 structExtension_out),
15210 ptr);
15211 break;
15212 }
15213 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
15214 reservedunmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
15215 vkStream, rootType,
15216 reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
15217 structExtension_out),
15218 ptr);
15219 break;
15220 }
15221 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
15222 reservedunmarshal_VkSubpassDescriptionDepthStencilResolve(
15223 vkStream, rootType,
15224 reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out),
15225 ptr);
15226 break;
15227 }
15228 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
15229 reservedunmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
15230 vkStream, rootType,
15231 reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(
15232 structExtension_out),
15233 ptr);
15234 break;
15235 }
15236 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
15237 reservedunmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
15238 vkStream, rootType,
15239 reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out),
15240 ptr);
15241 break;
15242 }
15243 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
15244 reservedunmarshal_VkImageStencilUsageCreateInfo(
15245 vkStream, rootType,
15246 reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out), ptr);
15247 break;
15248 }
15249 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
15250 reservedunmarshal_VkSamplerReductionModeCreateInfo(
15251 vkStream, rootType,
15252 reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out), ptr);
15253 break;
15254 }
15255 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
15256 reservedunmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
15257 vkStream, rootType,
15258 reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
15259 structExtension_out),
15260 ptr);
15261 break;
15262 }
15263 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
15264 reservedunmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
15265 vkStream, rootType,
15266 reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out),
15267 ptr);
15268 break;
15269 }
15270 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
15271 reservedunmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
15272 vkStream, rootType,
15273 reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(
15274 structExtension_out),
15275 ptr);
15276 break;
15277 }
15278 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
15279 reservedunmarshal_VkFramebufferAttachmentsCreateInfo(
15280 vkStream, rootType,
15281 reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out), ptr);
15282 break;
15283 }
15284 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
15285 reservedunmarshal_VkRenderPassAttachmentBeginInfo(
15286 vkStream, rootType,
15287 reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out), ptr);
15288 break;
15289 }
15290 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
15291 reservedunmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
15292 vkStream, rootType,
15293 reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
15294 structExtension_out),
15295 ptr);
15296 break;
15297 }
15298 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
15299 reservedunmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
15300 vkStream, rootType,
15301 reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
15302 structExtension_out),
15303 ptr);
15304 break;
15305 }
15306 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
15307 reservedunmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
15308 vkStream, rootType,
15309 reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
15310 structExtension_out),
15311 ptr);
15312 break;
15313 }
15314 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
15315 reservedunmarshal_VkAttachmentReferenceStencilLayout(
15316 vkStream, rootType,
15317 reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out), ptr);
15318 break;
15319 }
15320 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
15321 reservedunmarshal_VkAttachmentDescriptionStencilLayout(
15322 vkStream, rootType,
15323 reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out), ptr);
15324 break;
15325 }
15326 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
15327 reservedunmarshal_VkPhysicalDeviceHostQueryResetFeatures(
15328 vkStream, rootType,
15329 reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out),
15330 ptr);
15331 break;
15332 }
15333 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
15334 reservedunmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
15335 vkStream, rootType,
15336 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out),
15337 ptr);
15338 break;
15339 }
15340 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
15341 reservedunmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
15342 vkStream, rootType,
15343 reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension_out),
15344 ptr);
15345 break;
15346 }
15347 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
15348 reservedunmarshal_VkSemaphoreTypeCreateInfo(
15349 vkStream, rootType,
15350 reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out), ptr);
15351 break;
15352 }
15353 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
15354 reservedunmarshal_VkTimelineSemaphoreSubmitInfo(
15355 vkStream, rootType,
15356 reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out), ptr);
15357 break;
15358 }
15359 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
15360 reservedunmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
15361 vkStream, rootType,
15362 reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension_out),
15363 ptr);
15364 break;
15365 }
15366 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
15367 reservedunmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
15368 vkStream, rootType,
15369 reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out),
15370 ptr);
15371 break;
15372 }
15373 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
15374 reservedunmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
15375 vkStream, rootType,
15376 reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out),
15377 ptr);
15378 break;
15379 }
15380 #endif
15381 #ifdef VK_VERSION_1_3
15382 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
15383 reservedunmarshal_VkPhysicalDeviceVulkan13Features(
15384 vkStream, rootType,
15385 reinterpret_cast<VkPhysicalDeviceVulkan13Features*>(structExtension_out), ptr);
15386 break;
15387 }
15388 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
15389 reservedunmarshal_VkPhysicalDeviceVulkan13Properties(
15390 vkStream, rootType,
15391 reinterpret_cast<VkPhysicalDeviceVulkan13Properties*>(structExtension_out), ptr);
15392 break;
15393 }
15394 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
15395 reservedunmarshal_VkPipelineCreationFeedbackCreateInfo(
15396 vkStream, rootType,
15397 reinterpret_cast<VkPipelineCreationFeedbackCreateInfo*>(structExtension_out), ptr);
15398 break;
15399 }
15400 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
15401 reservedunmarshal_VkPhysicalDeviceShaderTerminateInvocationFeatures(
15402 vkStream, rootType,
15403 reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
15404 structExtension_out),
15405 ptr);
15406 break;
15407 }
15408 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
15409 reservedunmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
15410 vkStream, rootType,
15411 reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
15412 structExtension_out),
15413 ptr);
15414 break;
15415 }
15416 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
15417 reservedunmarshal_VkPhysicalDevicePrivateDataFeatures(
15418 vkStream, rootType,
15419 reinterpret_cast<VkPhysicalDevicePrivateDataFeatures*>(structExtension_out), ptr);
15420 break;
15421 }
15422 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
15423 reservedunmarshal_VkDevicePrivateDataCreateInfo(
15424 vkStream, rootType,
15425 reinterpret_cast<VkDevicePrivateDataCreateInfo*>(structExtension_out), ptr);
15426 break;
15427 }
15428 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
15429 reservedunmarshal_VkPhysicalDevicePipelineCreationCacheControlFeatures(
15430 vkStream, rootType,
15431 reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
15432 structExtension_out),
15433 ptr);
15434 break;
15435 }
15436 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
15437 reservedunmarshal_VkMemoryBarrier2(
15438 vkStream, rootType, reinterpret_cast<VkMemoryBarrier2*>(structExtension_out), ptr);
15439 break;
15440 }
15441 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
15442 reservedunmarshal_VkPhysicalDeviceSynchronization2Features(
15443 vkStream, rootType,
15444 reinterpret_cast<VkPhysicalDeviceSynchronization2Features*>(structExtension_out),
15445 ptr);
15446 break;
15447 }
15448 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
15449 reservedunmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
15450 vkStream, rootType,
15451 reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
15452 structExtension_out),
15453 ptr);
15454 break;
15455 }
15456 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
15457 reservedunmarshal_VkPhysicalDeviceImageRobustnessFeatures(
15458 vkStream, rootType,
15459 reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures*>(structExtension_out),
15460 ptr);
15461 break;
15462 }
15463 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
15464 reservedunmarshal_VkPhysicalDeviceSubgroupSizeControlFeatures(
15465 vkStream, rootType,
15466 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures*>(structExtension_out),
15467 ptr);
15468 break;
15469 }
15470 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
15471 reservedunmarshal_VkPhysicalDeviceSubgroupSizeControlProperties(
15472 vkStream, rootType,
15473 reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties*>(
15474 structExtension_out),
15475 ptr);
15476 break;
15477 }
15478 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
15479 reservedunmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
15480 vkStream, rootType,
15481 reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
15482 structExtension_out),
15483 ptr);
15484 break;
15485 }
15486 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
15487 reservedunmarshal_VkPhysicalDeviceInlineUniformBlockFeatures(
15488 vkStream, rootType,
15489 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures*>(structExtension_out),
15490 ptr);
15491 break;
15492 }
15493 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
15494 reservedunmarshal_VkPhysicalDeviceInlineUniformBlockProperties(
15495 vkStream, rootType,
15496 reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties*>(
15497 structExtension_out),
15498 ptr);
15499 break;
15500 }
15501 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
15502 reservedunmarshal_VkWriteDescriptorSetInlineUniformBlock(
15503 vkStream, rootType,
15504 reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock*>(structExtension_out),
15505 ptr);
15506 break;
15507 }
15508 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
15509 reservedunmarshal_VkDescriptorPoolInlineUniformBlockCreateInfo(
15510 vkStream, rootType,
15511 reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo*>(
15512 structExtension_out),
15513 ptr);
15514 break;
15515 }
15516 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
15517 reservedunmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
15518 vkStream, rootType,
15519 reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
15520 structExtension_out),
15521 ptr);
15522 break;
15523 }
15524 case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
15525 reservedunmarshal_VkPipelineRenderingCreateInfo(
15526 vkStream, rootType,
15527 reinterpret_cast<VkPipelineRenderingCreateInfo*>(structExtension_out), ptr);
15528 break;
15529 }
15530 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
15531 reservedunmarshal_VkPhysicalDeviceDynamicRenderingFeatures(
15532 vkStream, rootType,
15533 reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension_out),
15534 ptr);
15535 break;
15536 }
15537 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
15538 reservedunmarshal_VkCommandBufferInheritanceRenderingInfo(
15539 vkStream, rootType,
15540 reinterpret_cast<VkCommandBufferInheritanceRenderingInfo*>(structExtension_out),
15541 ptr);
15542 break;
15543 }
15544 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
15545 reservedunmarshal_VkPhysicalDeviceShaderIntegerDotProductFeatures(
15546 vkStream, rootType,
15547 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
15548 structExtension_out),
15549 ptr);
15550 break;
15551 }
15552 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
15553 reservedunmarshal_VkPhysicalDeviceShaderIntegerDotProductProperties(
15554 vkStream, rootType,
15555 reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties*>(
15556 structExtension_out),
15557 ptr);
15558 break;
15559 }
15560 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
15561 reservedunmarshal_VkPhysicalDeviceTexelBufferAlignmentProperties(
15562 vkStream, rootType,
15563 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties*>(
15564 structExtension_out),
15565 ptr);
15566 break;
15567 }
15568 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
15569 reservedunmarshal_VkFormatProperties3(
15570 vkStream, rootType, reinterpret_cast<VkFormatProperties3*>(structExtension_out),
15571 ptr);
15572 break;
15573 }
15574 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
15575 reservedunmarshal_VkPhysicalDeviceMaintenance4Features(
15576 vkStream, rootType,
15577 reinterpret_cast<VkPhysicalDeviceMaintenance4Features*>(structExtension_out), ptr);
15578 break;
15579 }
15580 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
15581 reservedunmarshal_VkPhysicalDeviceMaintenance4Properties(
15582 vkStream, rootType,
15583 reinterpret_cast<VkPhysicalDeviceMaintenance4Properties*>(structExtension_out),
15584 ptr);
15585 break;
15586 }
15587 #endif
15588 #ifdef VK_KHR_swapchain
15589 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
15590 reservedunmarshal_VkImageSwapchainCreateInfoKHR(
15591 vkStream, rootType,
15592 reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out), ptr);
15593 break;
15594 }
15595 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
15596 reservedunmarshal_VkBindImageMemorySwapchainInfoKHR(
15597 vkStream, rootType,
15598 reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out), ptr);
15599 break;
15600 }
15601 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
15602 reservedunmarshal_VkDeviceGroupPresentInfoKHR(
15603 vkStream, rootType,
15604 reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out), ptr);
15605 break;
15606 }
15607 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
15608 reservedunmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
15609 vkStream, rootType,
15610 reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out), ptr);
15611 break;
15612 }
15613 #endif
15614 #ifdef VK_KHR_dynamic_rendering
15615 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
15616 reservedunmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
15617 vkStream, rootType,
15618 reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
15619 structExtension_out),
15620 ptr);
15621 break;
15622 }
15623 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
15624 reservedunmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
15625 vkStream, rootType,
15626 reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
15627 structExtension_out),
15628 ptr);
15629 break;
15630 }
15631 case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
15632 reservedunmarshal_VkAttachmentSampleCountInfoAMD(
15633 vkStream, rootType,
15634 reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out), ptr);
15635 break;
15636 }
15637 case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
15638 reservedunmarshal_VkMultiviewPerViewAttributesInfoNVX(
15639 vkStream, rootType,
15640 reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out), ptr);
15641 break;
15642 }
15643 #endif
15644 #ifdef VK_KHR_incremental_present
15645 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
15646 reservedunmarshal_VkPresentRegionsKHR(
15647 vkStream, rootType, reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out),
15648 ptr);
15649 break;
15650 }
15651 #endif
15652 #ifdef VK_KHR_pipeline_executable_properties
15653 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
15654 reservedunmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
15655 vkStream, rootType,
15656 reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
15657 structExtension_out),
15658 ptr);
15659 break;
15660 }
15661 #endif
15662 #ifdef VK_KHR_pipeline_library
15663 case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
15664 reservedunmarshal_VkPipelineLibraryCreateInfoKHR(
15665 vkStream, rootType,
15666 reinterpret_cast<VkPipelineLibraryCreateInfoKHR*>(structExtension_out), ptr);
15667 break;
15668 }
15669 #endif
15670 #ifdef VK_KHR_synchronization2
15671 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
15672 reservedunmarshal_VkQueueFamilyCheckpointProperties2NV(
15673 vkStream, rootType,
15674 reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out), ptr);
15675 break;
15676 }
15677 #endif
15678 #ifdef VK_KHR_maintenance5
15679 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
15680 reservedunmarshal_VkPhysicalDeviceMaintenance5FeaturesKHR(
15681 vkStream, rootType,
15682 reinterpret_cast<VkPhysicalDeviceMaintenance5FeaturesKHR*>(structExtension_out),
15683 ptr);
15684 break;
15685 }
15686 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
15687 reservedunmarshal_VkPhysicalDeviceMaintenance5PropertiesKHR(
15688 vkStream, rootType,
15689 reinterpret_cast<VkPhysicalDeviceMaintenance5PropertiesKHR*>(structExtension_out),
15690 ptr);
15691 break;
15692 }
15693 case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
15694 reservedunmarshal_VkPipelineCreateFlags2CreateInfoKHR(
15695 vkStream, rootType,
15696 reinterpret_cast<VkPipelineCreateFlags2CreateInfoKHR*>(structExtension_out), ptr);
15697 break;
15698 }
15699 case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
15700 reservedunmarshal_VkBufferUsageFlags2CreateInfoKHR(
15701 vkStream, rootType,
15702 reinterpret_cast<VkBufferUsageFlags2CreateInfoKHR*>(structExtension_out), ptr);
15703 break;
15704 }
15705 #endif
15706 #ifdef VK_KHR_line_rasterization
15707 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
15708 reservedunmarshal_VkPhysicalDeviceLineRasterizationFeaturesKHR(
15709 vkStream, rootType,
15710 reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR*>(
15711 structExtension_out),
15712 ptr);
15713 break;
15714 }
15715 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
15716 reservedunmarshal_VkPhysicalDeviceLineRasterizationPropertiesKHR(
15717 vkStream, rootType,
15718 reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesKHR*>(
15719 structExtension_out),
15720 ptr);
15721 break;
15722 }
15723 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
15724 reservedunmarshal_VkPipelineRasterizationLineStateCreateInfoKHR(
15725 vkStream, rootType,
15726 reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoKHR*>(
15727 structExtension_out),
15728 ptr);
15729 break;
15730 }
15731 #endif
15732 #ifdef VK_ANDROID_native_buffer
15733 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
15734 reservedunmarshal_VkNativeBufferANDROID(
15735 vkStream, rootType, reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out),
15736 ptr);
15737 break;
15738 }
15739 #endif
15740 #ifdef VK_EXT_debug_report
15741 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
15742 reservedunmarshal_VkDebugReportCallbackCreateInfoEXT(
15743 vkStream, rootType,
15744 reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out), ptr);
15745 break;
15746 }
15747 #endif
15748 #ifdef VK_EXT_transform_feedback
15749 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
15750 reservedunmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
15751 vkStream, rootType,
15752 reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
15753 structExtension_out),
15754 ptr);
15755 break;
15756 }
15757 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
15758 reservedunmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
15759 vkStream, rootType,
15760 reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
15761 structExtension_out),
15762 ptr);
15763 break;
15764 }
15765 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
15766 reservedunmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
15767 vkStream, rootType,
15768 reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(
15769 structExtension_out),
15770 ptr);
15771 break;
15772 }
15773 #endif
15774 #ifdef VK_EXT_depth_clip_enable
15775 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
15776 reservedunmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
15777 vkStream, rootType,
15778 reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out),
15779 ptr);
15780 break;
15781 }
15782 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
15783 reservedunmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
15784 vkStream, rootType,
15785 reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(
15786 structExtension_out),
15787 ptr);
15788 break;
15789 }
15790 #endif
15791 #ifdef VK_EXT_debug_utils
15792 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
15793 reservedunmarshal_VkDebugUtilsObjectNameInfoEXT(
15794 vkStream, rootType,
15795 reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(structExtension_out), ptr);
15796 break;
15797 }
15798 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
15799 reservedunmarshal_VkDebugUtilsMessengerCreateInfoEXT(
15800 vkStream, rootType,
15801 reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out), ptr);
15802 break;
15803 }
15804 #endif
15805 #ifdef VK_EXT_image_drm_format_modifier
15806 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
15807 reservedunmarshal_VkDrmFormatModifierPropertiesListEXT(
15808 vkStream, rootType,
15809 reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out), ptr);
15810 break;
15811 }
15812 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
15813 reservedunmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
15814 vkStream, rootType,
15815 reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(
15816 structExtension_out),
15817 ptr);
15818 break;
15819 }
15820 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
15821 reservedunmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
15822 vkStream, rootType,
15823 reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out),
15824 ptr);
15825 break;
15826 }
15827 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
15828 reservedunmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
15829 vkStream, rootType,
15830 reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(
15831 structExtension_out),
15832 ptr);
15833 break;
15834 }
15835 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
15836 reservedunmarshal_VkDrmFormatModifierPropertiesList2EXT(
15837 vkStream, rootType,
15838 reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out), ptr);
15839 break;
15840 }
15841 #endif
15842 #ifdef VK_EXT_external_memory_host
15843 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
15844 reservedunmarshal_VkImportMemoryHostPointerInfoEXT(
15845 vkStream, rootType,
15846 reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out), ptr);
15847 break;
15848 }
15849 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
15850 reservedunmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
15851 vkStream, rootType,
15852 reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(
15853 structExtension_out),
15854 ptr);
15855 break;
15856 }
15857 #endif
15858 #ifdef VK_EXT_vertex_attribute_divisor
15859 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
15860 reservedunmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
15861 vkStream, rootType,
15862 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(
15863 structExtension_out),
15864 ptr);
15865 break;
15866 }
15867 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
15868 reservedunmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
15869 vkStream, rootType,
15870 reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(
15871 structExtension_out),
15872 ptr);
15873 break;
15874 }
15875 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
15876 reservedunmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
15877 vkStream, rootType,
15878 reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(
15879 structExtension_out),
15880 ptr);
15881 break;
15882 }
15883 #endif
15884 #ifdef VK_EXT_fragment_density_map
15885 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
15886 switch (rootType) {
15887 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
15888 reservedunmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15889 vkStream, rootType,
15890 reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15891 structExtension_out),
15892 ptr);
15893 break;
15894 }
15895 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
15896 reservedunmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15897 vkStream, rootType,
15898 reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15899 structExtension_out),
15900 ptr);
15901 break;
15902 }
15903 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15904 reservedunmarshal_VkImportColorBufferGOOGLE(
15905 vkStream, rootType,
15906 reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out), ptr);
15907 break;
15908 }
15909 default: {
15910 reservedunmarshal_VkPhysicalDeviceFragmentDensityMapFeaturesEXT(
15911 vkStream, rootType,
15912 reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(
15913 structExtension_out),
15914 ptr);
15915 break;
15916 }
15917 }
15918 break;
15919 }
15920 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
15921 switch (rootType) {
15922 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
15923 reservedunmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
15924 vkStream, rootType,
15925 reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
15926 structExtension_out),
15927 ptr);
15928 break;
15929 }
15930 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15931 reservedunmarshal_VkCreateBlobGOOGLE(
15932 vkStream, rootType,
15933 reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out), ptr);
15934 break;
15935 }
15936 default: {
15937 reservedunmarshal_VkPhysicalDeviceFragmentDensityMapPropertiesEXT(
15938 vkStream, rootType,
15939 reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(
15940 structExtension_out),
15941 ptr);
15942 break;
15943 }
15944 }
15945 break;
15946 }
15947 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
15948 switch (rootType) {
15949 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
15950 reservedunmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15951 vkStream, rootType,
15952 reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15953 structExtension_out),
15954 ptr);
15955 break;
15956 }
15957 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
15958 reservedunmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15959 vkStream, rootType,
15960 reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15961 structExtension_out),
15962 ptr);
15963 break;
15964 }
15965 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
15966 reservedunmarshal_VkImportBufferGOOGLE(
15967 vkStream, rootType,
15968 reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out), ptr);
15969 break;
15970 }
15971 default: {
15972 reservedunmarshal_VkRenderPassFragmentDensityMapCreateInfoEXT(
15973 vkStream, rootType,
15974 reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(
15975 structExtension_out),
15976 ptr);
15977 break;
15978 }
15979 }
15980 break;
15981 }
15982 #endif
15983 #ifdef VK_EXT_validation_features
15984 case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
15985 reservedunmarshal_VkValidationFeaturesEXT(
15986 vkStream, rootType, reinterpret_cast<VkValidationFeaturesEXT*>(structExtension_out),
15987 ptr);
15988 break;
15989 }
15990 #endif
15991 #ifdef VK_EXT_provoking_vertex
15992 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
15993 reservedunmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
15994 vkStream, rootType,
15995 reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out),
15996 ptr);
15997 break;
15998 }
15999 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
16000 reservedunmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
16001 vkStream, rootType,
16002 reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
16003 structExtension_out),
16004 ptr);
16005 break;
16006 }
16007 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
16008 reservedunmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
16009 vkStream, rootType,
16010 reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
16011 structExtension_out),
16012 ptr);
16013 break;
16014 }
16015 #endif
16016 #ifdef VK_EXT_index_type_uint8
16017 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
16018 reservedunmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
16019 vkStream, rootType,
16020 reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out),
16021 ptr);
16022 break;
16023 }
16024 #endif
16025 #ifdef VK_EXT_extended_dynamic_state
16026 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
16027 reservedunmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
16028 vkStream, rootType,
16029 reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
16030 structExtension_out),
16031 ptr);
16032 break;
16033 }
16034 #endif
16035 #ifdef VK_EXT_host_image_copy
16036 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
16037 reservedunmarshal_VkPhysicalDeviceHostImageCopyFeaturesEXT(
16038 vkStream, rootType,
16039 reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT*>(structExtension_out),
16040 ptr);
16041 break;
16042 }
16043 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
16044 reservedunmarshal_VkPhysicalDeviceHostImageCopyPropertiesEXT(
16045 vkStream, rootType,
16046 reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT*>(structExtension_out),
16047 ptr);
16048 break;
16049 }
16050 case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
16051 reservedunmarshal_VkSubresourceHostMemcpySizeEXT(
16052 vkStream, rootType,
16053 reinterpret_cast<VkSubresourceHostMemcpySizeEXT*>(structExtension_out), ptr);
16054 break;
16055 }
16056 case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
16057 reservedunmarshal_VkHostImageCopyDevicePerformanceQueryEXT(
16058 vkStream, rootType,
16059 reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT*>(structExtension_out),
16060 ptr);
16061 break;
16062 }
16063 #endif
16064 #ifdef VK_EXT_swapchain_maintenance1
16065 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
16066 reservedunmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
16067 vkStream, rootType,
16068 reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
16069 structExtension_out),
16070 ptr);
16071 break;
16072 }
16073 case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
16074 reservedunmarshal_VkSwapchainPresentFenceInfoEXT(
16075 vkStream, rootType,
16076 reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>(structExtension_out), ptr);
16077 break;
16078 }
16079 case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
16080 reservedunmarshal_VkSwapchainPresentModesCreateInfoEXT(
16081 vkStream, rootType,
16082 reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>(structExtension_out), ptr);
16083 break;
16084 }
16085 case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
16086 reservedunmarshal_VkSwapchainPresentModeInfoEXT(
16087 vkStream, rootType,
16088 reinterpret_cast<VkSwapchainPresentModeInfoEXT*>(structExtension_out), ptr);
16089 break;
16090 }
16091 case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
16092 reservedunmarshal_VkSwapchainPresentScalingCreateInfoEXT(
16093 vkStream, rootType,
16094 reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>(structExtension_out),
16095 ptr);
16096 break;
16097 }
16098 #endif
16099 #ifdef VK_EXT_texel_buffer_alignment
16100 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
16101 reservedunmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
16102 vkStream, rootType,
16103 reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
16104 structExtension_out),
16105 ptr);
16106 break;
16107 }
16108 #endif
16109 #ifdef VK_EXT_device_memory_report
16110 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
16111 reservedunmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
16112 vkStream, rootType,
16113 reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
16114 structExtension_out),
16115 ptr);
16116 break;
16117 }
16118 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
16119 reservedunmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
16120 vkStream, rootType,
16121 reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out),
16122 ptr);
16123 break;
16124 }
16125 #endif
16126 #ifdef VK_EXT_robustness2
16127 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
16128 reservedunmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
16129 vkStream, rootType,
16130 reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out),
16131 ptr);
16132 break;
16133 }
16134 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
16135 reservedunmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
16136 vkStream, rootType,
16137 reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out),
16138 ptr);
16139 break;
16140 }
16141 #endif
16142 #ifdef VK_EXT_custom_border_color
16143 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
16144 reservedunmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
16145 vkStream, rootType,
16146 reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out),
16147 ptr);
16148 break;
16149 }
16150 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
16151 reservedunmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
16152 vkStream, rootType,
16153 reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
16154 structExtension_out),
16155 ptr);
16156 break;
16157 }
16158 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
16159 reservedunmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
16160 vkStream, rootType,
16161 reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
16162 structExtension_out),
16163 ptr);
16164 break;
16165 }
16166 #endif
16167 #ifdef VK_EXT_graphics_pipeline_library
16168 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
16169 reservedunmarshal_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
16170 vkStream, rootType,
16171 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
16172 structExtension_out),
16173 ptr);
16174 break;
16175 }
16176 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
16177 reservedunmarshal_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
16178 vkStream, rootType,
16179 reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
16180 structExtension_out),
16181 ptr);
16182 break;
16183 }
16184 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
16185 reservedunmarshal_VkGraphicsPipelineLibraryCreateInfoEXT(
16186 vkStream, rootType,
16187 reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension_out),
16188 ptr);
16189 break;
16190 }
16191 #endif
16192 #ifdef VK_EXT_ycbcr_2plane_444_formats
16193 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
16194 reservedunmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
16195 vkStream, rootType,
16196 reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
16197 structExtension_out),
16198 ptr);
16199 break;
16200 }
16201 #endif
16202 #ifdef VK_EXT_image_compression_control
16203 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
16204 reservedunmarshal_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
16205 vkStream, rootType,
16206 reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
16207 structExtension_out),
16208 ptr);
16209 break;
16210 }
16211 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
16212 reservedunmarshal_VkImageCompressionControlEXT(
16213 vkStream, rootType,
16214 reinterpret_cast<VkImageCompressionControlEXT*>(structExtension_out), ptr);
16215 break;
16216 }
16217 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
16218 reservedunmarshal_VkImageCompressionPropertiesEXT(
16219 vkStream, rootType,
16220 reinterpret_cast<VkImageCompressionPropertiesEXT*>(structExtension_out), ptr);
16221 break;
16222 }
16223 #endif
16224 #ifdef VK_EXT_4444_formats
16225 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
16226 reservedunmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
16227 vkStream, rootType,
16228 reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out),
16229 ptr);
16230 break;
16231 }
16232 #endif
16233 #ifdef VK_EXT_primitive_topology_list_restart
16234 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
16235 reservedunmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
16236 vkStream, rootType,
16237 reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
16238 structExtension_out),
16239 ptr);
16240 break;
16241 }
16242 #endif
16243 #ifdef VK_EXT_extended_dynamic_state2
16244 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
16245 reservedunmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
16246 vkStream, rootType,
16247 reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
16248 structExtension_out),
16249 ptr);
16250 break;
16251 }
16252 #endif
16253 #ifdef VK_EXT_color_write_enable
16254 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
16255 reservedunmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
16256 vkStream, rootType,
16257 reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension_out),
16258 ptr);
16259 break;
16260 }
16261 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
16262 reservedunmarshal_VkPipelineColorWriteCreateInfoEXT(
16263 vkStream, rootType,
16264 reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out), ptr);
16265 break;
16266 }
16267 #endif
16268 #ifdef VK_GOOGLE_gfxstream
16269 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
16270 reservedunmarshal_VkImportColorBufferGOOGLE(
16271 vkStream, rootType,
16272 reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out), ptr);
16273 break;
16274 }
16275 case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
16276 reservedunmarshal_VkImportBufferGOOGLE(
16277 vkStream, rootType, reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out),
16278 ptr);
16279 break;
16280 }
16281 case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
16282 reservedunmarshal_VkCreateBlobGOOGLE(
16283 vkStream, rootType, reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out),
16284 ptr);
16285 break;
16286 }
16287 #endif
16288 #ifdef VK_EXT_image_compression_control_swapchain
16289 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
16290 reservedunmarshal_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
16291 vkStream, rootType,
16292 reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
16293 structExtension_out),
16294 ptr);
16295 break;
16296 }
16297 #endif
16298 #ifdef VK_KHR_ray_tracing_pipeline
16299 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
16300 reservedunmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
16301 vkStream, rootType,
16302 reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(
16303 structExtension_out),
16304 ptr);
16305 break;
16306 }
16307 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
16308 reservedunmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
16309 vkStream, rootType,
16310 reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(
16311 structExtension_out),
16312 ptr);
16313 break;
16314 }
16315 #endif
16316 default: {
16317 // fatal; the switch is only taken if the extension struct is known
16318 fprintf(stderr, " %s, Unhandled Vulkan structure type %s [%d], aborting.\n", __func__,
16319 string_VkStructureType(VkStructureType(structType)), structType);
16320 abort();
16321 }
16322 }
16323 }
16324
16325 } // namespace vk
16326 } // namespace gfxstream
16327