blob: 1626a8ac8e8d694f51bf10ed6edb1e48d99af3bc [file] [log] [blame]
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001// 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_deepcopy_guest
17// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18// Please do not modify directly;
19// re-run android/scripts/generate-vulkan-sources.sh,
20// or directly from Python by defining:
21// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22// CEREAL_OUTPUT_DIR: Where to put the generated sources.
23// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24
25#include "goldfish_vk_deepcopy_guest.h"
26
27
Lingfeng Yang750c5642018-11-13 17:03:11 -080028#include "goldfish_vk_extension_structs_guest.h"
Lingfeng Yang808a6312018-11-13 21:06:15 -080029#include "goldfish_vk_private_defs.h"
Lingfeng Yang750c5642018-11-13 17:03:11 -080030
Lingfeng Yang71b596b2018-11-07 18:03:25 -080031
32namespace goldfish_vk {
33
Lingfeng Yang750c5642018-11-13 17:03:11 -080034void deepcopy_extension_struct(
35 Pool* pool,
36 const void* structExtension,
37 void* structExtension_out);
38
Lingfeng Yang71b596b2018-11-07 18:03:25 -080039#ifdef VK_VERSION_1_0
40void deepcopy_VkApplicationInfo(
41 Pool* pool,
42 const VkApplicationInfo* from,
43 VkApplicationInfo* to)
44{
Lingfeng Yang36891c52018-11-09 14:18:35 -080045 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -080046 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -080047 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -080048 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -080049 if (pNext_size)
50 {
51 to->pNext = (const void*)pool->alloc(pNext_size);
52 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
53 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -080054 to->pApplicationName = nullptr;
55 if (from->pApplicationName)
56 {
57 to->pApplicationName = pool->strDup(from->pApplicationName);
58 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -080059 to->pEngineName = nullptr;
60 if (from->pEngineName)
61 {
62 to->pEngineName = pool->strDup(from->pEngineName);
63 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -080064}
65
66void deepcopy_VkInstanceCreateInfo(
67 Pool* pool,
68 const VkInstanceCreateInfo* from,
69 VkInstanceCreateInfo* to)
70{
Lingfeng Yang36891c52018-11-09 14:18:35 -080071 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -080072 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -080073 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -080074 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -080075 if (pNext_size)
76 {
77 to->pNext = (const void*)pool->alloc(pNext_size);
78 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
79 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -080080 to->pApplicationInfo = nullptr;
81 if (from->pApplicationInfo)
82 {
83 to->pApplicationInfo = (VkApplicationInfo*)pool->alloc(sizeof(const VkApplicationInfo));
84 deepcopy_VkApplicationInfo(pool, from->pApplicationInfo, (VkApplicationInfo*)(to->pApplicationInfo));
85 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -080086 to->ppEnabledLayerNames = nullptr;
87 if (from->ppEnabledLayerNames && from->enabledLayerCount)
88 {
89 to->ppEnabledLayerNames = pool->strDupArray(from->ppEnabledLayerNames, from->enabledLayerCount);
90 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -080091 to->ppEnabledExtensionNames = nullptr;
92 if (from->ppEnabledExtensionNames && from->enabledExtensionCount)
93 {
94 to->ppEnabledExtensionNames = pool->strDupArray(from->ppEnabledExtensionNames, from->enabledExtensionCount);
95 }
96}
97
98void deepcopy_VkAllocationCallbacks(
99 Pool* pool,
100 const VkAllocationCallbacks* from,
101 VkAllocationCallbacks* to)
102{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800103 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800104 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800105 to->pUserData = nullptr;
106 if (from->pUserData)
107 {
108 to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t));
109 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800110}
111
112void deepcopy_VkPhysicalDeviceFeatures(
113 Pool* pool,
114 const VkPhysicalDeviceFeatures* from,
115 VkPhysicalDeviceFeatures* to)
116{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800117 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800118 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800119}
120
121void deepcopy_VkFormatProperties(
122 Pool* pool,
123 const VkFormatProperties* from,
124 VkFormatProperties* to)
125{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800126 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800127 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800128}
129
130void deepcopy_VkExtent3D(
131 Pool* pool,
132 const VkExtent3D* from,
133 VkExtent3D* to)
134{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800135 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800136 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800137}
138
139void deepcopy_VkImageFormatProperties(
140 Pool* pool,
141 const VkImageFormatProperties* from,
142 VkImageFormatProperties* to)
143{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800144 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800145 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800146 deepcopy_VkExtent3D(pool, &from->maxExtent, (VkExtent3D*)(&to->maxExtent));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800147}
148
149void deepcopy_VkPhysicalDeviceLimits(
150 Pool* pool,
151 const VkPhysicalDeviceLimits* from,
152 VkPhysicalDeviceLimits* to)
153{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800154 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800155 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800156 memcpy(to->maxComputeWorkGroupCount, from->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800157 memcpy(to->maxComputeWorkGroupSize, from->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800158 memcpy(to->maxViewportDimensions, from->maxViewportDimensions, 2 * sizeof(uint32_t));
159 memcpy(to->viewportBoundsRange, from->viewportBoundsRange, 2 * sizeof(float));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800160 memcpy(to->pointSizeRange, from->pointSizeRange, 2 * sizeof(float));
161 memcpy(to->lineWidthRange, from->lineWidthRange, 2 * sizeof(float));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800162}
163
164void deepcopy_VkPhysicalDeviceSparseProperties(
165 Pool* pool,
166 const VkPhysicalDeviceSparseProperties* from,
167 VkPhysicalDeviceSparseProperties* to)
168{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800169 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800170 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800171}
172
173void deepcopy_VkPhysicalDeviceProperties(
174 Pool* pool,
175 const VkPhysicalDeviceProperties* from,
176 VkPhysicalDeviceProperties* to)
177{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800178 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800179 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800180 memcpy(to->deviceName, from->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
181 memcpy(to->pipelineCacheUUID, from->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
182 deepcopy_VkPhysicalDeviceLimits(pool, &from->limits, (VkPhysicalDeviceLimits*)(&to->limits));
183 deepcopy_VkPhysicalDeviceSparseProperties(pool, &from->sparseProperties, (VkPhysicalDeviceSparseProperties*)(&to->sparseProperties));
184}
185
186void deepcopy_VkQueueFamilyProperties(
187 Pool* pool,
188 const VkQueueFamilyProperties* from,
189 VkQueueFamilyProperties* to)
190{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800191 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800192 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800193 deepcopy_VkExtent3D(pool, &from->minImageTransferGranularity, (VkExtent3D*)(&to->minImageTransferGranularity));
194}
195
196void deepcopy_VkMemoryType(
197 Pool* pool,
198 const VkMemoryType* from,
199 VkMemoryType* to)
200{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800201 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800202 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800203}
204
205void deepcopy_VkMemoryHeap(
206 Pool* pool,
207 const VkMemoryHeap* from,
208 VkMemoryHeap* to)
209{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800210 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800211 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800212}
213
214void deepcopy_VkPhysicalDeviceMemoryProperties(
215 Pool* pool,
216 const VkPhysicalDeviceMemoryProperties* from,
217 VkPhysicalDeviceMemoryProperties* to)
218{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800219 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800220 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800221 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
222 {
223 deepcopy_VkMemoryType(pool, from->memoryTypes + i, (VkMemoryType*)(to->memoryTypes + i));
224 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800225 for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
226 {
227 deepcopy_VkMemoryHeap(pool, from->memoryHeaps + i, (VkMemoryHeap*)(to->memoryHeaps + i));
228 }
229}
230
231void deepcopy_VkDeviceQueueCreateInfo(
232 Pool* pool,
233 const VkDeviceQueueCreateInfo* from,
234 VkDeviceQueueCreateInfo* to)
235{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800236 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800237 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800238 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800239 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800240 if (pNext_size)
241 {
242 to->pNext = (const void*)pool->alloc(pNext_size);
243 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
244 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800245 to->pQueuePriorities = nullptr;
246 if (from->pQueuePriorities)
247 {
248 to->pQueuePriorities = (float*)pool->dupArray(from->pQueuePriorities, from->queueCount * sizeof(const float));
249 }
250}
251
252void deepcopy_VkDeviceCreateInfo(
253 Pool* pool,
254 const VkDeviceCreateInfo* from,
255 VkDeviceCreateInfo* to)
256{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800257 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800258 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800259 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800260 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800261 if (pNext_size)
262 {
263 to->pNext = (const void*)pool->alloc(pNext_size);
264 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
265 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800266 to->pQueueCreateInfos = nullptr;
267 if (from->pQueueCreateInfos)
268 {
269 to->pQueueCreateInfos = (VkDeviceQueueCreateInfo*)pool->alloc(from->queueCreateInfoCount * sizeof(const VkDeviceQueueCreateInfo));
270 to->queueCreateInfoCount = from->queueCreateInfoCount;
271 for (uint32_t i = 0; i < (uint32_t)from->queueCreateInfoCount; ++i)
272 {
273 deepcopy_VkDeviceQueueCreateInfo(pool, from->pQueueCreateInfos + i, (VkDeviceQueueCreateInfo*)(to->pQueueCreateInfos + i));
274 }
275 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800276 to->ppEnabledLayerNames = nullptr;
277 if (from->ppEnabledLayerNames && from->enabledLayerCount)
278 {
279 to->ppEnabledLayerNames = pool->strDupArray(from->ppEnabledLayerNames, from->enabledLayerCount);
280 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800281 to->ppEnabledExtensionNames = nullptr;
282 if (from->ppEnabledExtensionNames && from->enabledExtensionCount)
283 {
284 to->ppEnabledExtensionNames = pool->strDupArray(from->ppEnabledExtensionNames, from->enabledExtensionCount);
285 }
286 to->pEnabledFeatures = nullptr;
287 if (from->pEnabledFeatures)
288 {
289 to->pEnabledFeatures = (VkPhysicalDeviceFeatures*)pool->alloc(sizeof(const VkPhysicalDeviceFeatures));
290 deepcopy_VkPhysicalDeviceFeatures(pool, from->pEnabledFeatures, (VkPhysicalDeviceFeatures*)(to->pEnabledFeatures));
291 }
292}
293
294void deepcopy_VkExtensionProperties(
295 Pool* pool,
296 const VkExtensionProperties* from,
297 VkExtensionProperties* to)
298{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800299 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800300 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800301 memcpy(to->extensionName, from->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800302}
303
304void deepcopy_VkLayerProperties(
305 Pool* pool,
306 const VkLayerProperties* from,
307 VkLayerProperties* to)
308{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800309 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800310 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800311 memcpy(to->layerName, from->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800312 memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
313}
314
315void deepcopy_VkSubmitInfo(
316 Pool* pool,
317 const VkSubmitInfo* from,
318 VkSubmitInfo* to)
319{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800320 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800321 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800322 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800323 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800324 if (pNext_size)
325 {
326 to->pNext = (const void*)pool->alloc(pNext_size);
327 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
328 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800329 to->pWaitSemaphores = nullptr;
330 if (from->pWaitSemaphores)
331 {
332 to->pWaitSemaphores = (VkSemaphore*)pool->dupArray(from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
333 }
334 to->pWaitDstStageMask = nullptr;
335 if (from->pWaitDstStageMask)
336 {
337 to->pWaitDstStageMask = (VkPipelineStageFlags*)pool->dupArray(from->pWaitDstStageMask, from->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
338 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800339 to->pCommandBuffers = nullptr;
340 if (from->pCommandBuffers)
341 {
342 to->pCommandBuffers = (VkCommandBuffer*)pool->dupArray(from->pCommandBuffers, from->commandBufferCount * sizeof(const VkCommandBuffer));
343 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800344 to->pSignalSemaphores = nullptr;
345 if (from->pSignalSemaphores)
346 {
347 to->pSignalSemaphores = (VkSemaphore*)pool->dupArray(from->pSignalSemaphores, from->signalSemaphoreCount * sizeof(const VkSemaphore));
348 }
349}
350
351void deepcopy_VkMemoryAllocateInfo(
352 Pool* pool,
353 const VkMemoryAllocateInfo* from,
354 VkMemoryAllocateInfo* to)
355{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800356 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800357 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800358 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800359 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800360 if (pNext_size)
361 {
362 to->pNext = (const void*)pool->alloc(pNext_size);
363 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
364 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800365}
366
367void deepcopy_VkMappedMemoryRange(
368 Pool* pool,
369 const VkMappedMemoryRange* from,
370 VkMappedMemoryRange* to)
371{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800372 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800373 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800374 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800375 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800376 if (pNext_size)
377 {
378 to->pNext = (const void*)pool->alloc(pNext_size);
379 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
380 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800381}
382
383void deepcopy_VkMemoryRequirements(
384 Pool* pool,
385 const VkMemoryRequirements* from,
386 VkMemoryRequirements* to)
387{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800388 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800389 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800390}
391
392void deepcopy_VkSparseImageFormatProperties(
393 Pool* pool,
394 const VkSparseImageFormatProperties* from,
395 VkSparseImageFormatProperties* to)
396{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800397 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800398 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800399 deepcopy_VkExtent3D(pool, &from->imageGranularity, (VkExtent3D*)(&to->imageGranularity));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800400}
401
402void deepcopy_VkSparseImageMemoryRequirements(
403 Pool* pool,
404 const VkSparseImageMemoryRequirements* from,
405 VkSparseImageMemoryRequirements* to)
406{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800407 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800408 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800409 deepcopy_VkSparseImageFormatProperties(pool, &from->formatProperties, (VkSparseImageFormatProperties*)(&to->formatProperties));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800410}
411
412void deepcopy_VkSparseMemoryBind(
413 Pool* pool,
414 const VkSparseMemoryBind* from,
415 VkSparseMemoryBind* to)
416{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800417 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800418 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800419}
420
421void deepcopy_VkSparseBufferMemoryBindInfo(
422 Pool* pool,
423 const VkSparseBufferMemoryBindInfo* from,
424 VkSparseBufferMemoryBindInfo* to)
425{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800426 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800427 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800428 to->pBinds = nullptr;
429 if (from->pBinds)
430 {
431 to->pBinds = (VkSparseMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseMemoryBind));
432 to->bindCount = from->bindCount;
433 for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
434 {
435 deepcopy_VkSparseMemoryBind(pool, from->pBinds + i, (VkSparseMemoryBind*)(to->pBinds + i));
436 }
437 }
438}
439
440void deepcopy_VkSparseImageOpaqueMemoryBindInfo(
441 Pool* pool,
442 const VkSparseImageOpaqueMemoryBindInfo* from,
443 VkSparseImageOpaqueMemoryBindInfo* to)
444{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800445 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800446 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800447 to->pBinds = nullptr;
448 if (from->pBinds)
449 {
450 to->pBinds = (VkSparseMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseMemoryBind));
451 to->bindCount = from->bindCount;
452 for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
453 {
454 deepcopy_VkSparseMemoryBind(pool, from->pBinds + i, (VkSparseMemoryBind*)(to->pBinds + i));
455 }
456 }
457}
458
459void deepcopy_VkImageSubresource(
460 Pool* pool,
461 const VkImageSubresource* from,
462 VkImageSubresource* to)
463{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800464 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800465 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800466}
467
468void deepcopy_VkOffset3D(
469 Pool* pool,
470 const VkOffset3D* from,
471 VkOffset3D* to)
472{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800473 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800474 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800475}
476
477void deepcopy_VkSparseImageMemoryBind(
478 Pool* pool,
479 const VkSparseImageMemoryBind* from,
480 VkSparseImageMemoryBind* to)
481{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800482 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800483 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800484 deepcopy_VkImageSubresource(pool, &from->subresource, (VkImageSubresource*)(&to->subresource));
485 deepcopy_VkOffset3D(pool, &from->offset, (VkOffset3D*)(&to->offset));
486 deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800487}
488
489void deepcopy_VkSparseImageMemoryBindInfo(
490 Pool* pool,
491 const VkSparseImageMemoryBindInfo* from,
492 VkSparseImageMemoryBindInfo* to)
493{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800494 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800495 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800496 to->pBinds = nullptr;
497 if (from->pBinds)
498 {
499 to->pBinds = (VkSparseImageMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseImageMemoryBind));
500 to->bindCount = from->bindCount;
501 for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
502 {
503 deepcopy_VkSparseImageMemoryBind(pool, from->pBinds + i, (VkSparseImageMemoryBind*)(to->pBinds + i));
504 }
505 }
506}
507
508void deepcopy_VkBindSparseInfo(
509 Pool* pool,
510 const VkBindSparseInfo* from,
511 VkBindSparseInfo* to)
512{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800513 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800514 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800515 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800516 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800517 if (pNext_size)
518 {
519 to->pNext = (const void*)pool->alloc(pNext_size);
520 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
521 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800522 to->pWaitSemaphores = nullptr;
523 if (from->pWaitSemaphores)
524 {
525 to->pWaitSemaphores = (VkSemaphore*)pool->dupArray(from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
526 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800527 to->pBufferBinds = nullptr;
528 if (from->pBufferBinds)
529 {
530 to->pBufferBinds = (VkSparseBufferMemoryBindInfo*)pool->alloc(from->bufferBindCount * sizeof(const VkSparseBufferMemoryBindInfo));
531 to->bufferBindCount = from->bufferBindCount;
532 for (uint32_t i = 0; i < (uint32_t)from->bufferBindCount; ++i)
533 {
534 deepcopy_VkSparseBufferMemoryBindInfo(pool, from->pBufferBinds + i, (VkSparseBufferMemoryBindInfo*)(to->pBufferBinds + i));
535 }
536 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800537 to->pImageOpaqueBinds = nullptr;
538 if (from->pImageOpaqueBinds)
539 {
540 to->pImageOpaqueBinds = (VkSparseImageOpaqueMemoryBindInfo*)pool->alloc(from->imageOpaqueBindCount * sizeof(const VkSparseImageOpaqueMemoryBindInfo));
541 to->imageOpaqueBindCount = from->imageOpaqueBindCount;
542 for (uint32_t i = 0; i < (uint32_t)from->imageOpaqueBindCount; ++i)
543 {
544 deepcopy_VkSparseImageOpaqueMemoryBindInfo(pool, from->pImageOpaqueBinds + i, (VkSparseImageOpaqueMemoryBindInfo*)(to->pImageOpaqueBinds + i));
545 }
546 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800547 to->pImageBinds = nullptr;
548 if (from->pImageBinds)
549 {
550 to->pImageBinds = (VkSparseImageMemoryBindInfo*)pool->alloc(from->imageBindCount * sizeof(const VkSparseImageMemoryBindInfo));
551 to->imageBindCount = from->imageBindCount;
552 for (uint32_t i = 0; i < (uint32_t)from->imageBindCount; ++i)
553 {
554 deepcopy_VkSparseImageMemoryBindInfo(pool, from->pImageBinds + i, (VkSparseImageMemoryBindInfo*)(to->pImageBinds + i));
555 }
556 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800557 to->pSignalSemaphores = nullptr;
558 if (from->pSignalSemaphores)
559 {
560 to->pSignalSemaphores = (VkSemaphore*)pool->dupArray(from->pSignalSemaphores, from->signalSemaphoreCount * sizeof(const VkSemaphore));
561 }
562}
563
564void deepcopy_VkFenceCreateInfo(
565 Pool* pool,
566 const VkFenceCreateInfo* from,
567 VkFenceCreateInfo* to)
568{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800569 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800570 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800571 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800572 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800573 if (pNext_size)
574 {
575 to->pNext = (const void*)pool->alloc(pNext_size);
576 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
577 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800578}
579
580void deepcopy_VkSemaphoreCreateInfo(
581 Pool* pool,
582 const VkSemaphoreCreateInfo* from,
583 VkSemaphoreCreateInfo* to)
584{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800585 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800586 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800587 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800588 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800589 if (pNext_size)
590 {
591 to->pNext = (const void*)pool->alloc(pNext_size);
592 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
593 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800594}
595
596void deepcopy_VkEventCreateInfo(
597 Pool* pool,
598 const VkEventCreateInfo* from,
599 VkEventCreateInfo* to)
600{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800601 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800602 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800603 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800604 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800605 if (pNext_size)
606 {
607 to->pNext = (const void*)pool->alloc(pNext_size);
608 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
609 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800610}
611
612void deepcopy_VkQueryPoolCreateInfo(
613 Pool* pool,
614 const VkQueryPoolCreateInfo* from,
615 VkQueryPoolCreateInfo* to)
616{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800617 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800618 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800619 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800620 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800621 if (pNext_size)
622 {
623 to->pNext = (const void*)pool->alloc(pNext_size);
624 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
625 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800626}
627
628void deepcopy_VkBufferCreateInfo(
629 Pool* pool,
630 const VkBufferCreateInfo* from,
631 VkBufferCreateInfo* to)
632{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800633 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800634 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800635 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800636 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800637 if (pNext_size)
638 {
639 to->pNext = (const void*)pool->alloc(pNext_size);
640 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
641 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800642 to->pQueueFamilyIndices = nullptr;
643 if (from->pQueueFamilyIndices)
644 {
645 to->pQueueFamilyIndices = (uint32_t*)pool->dupArray(from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
646 }
647}
648
649void deepcopy_VkBufferViewCreateInfo(
650 Pool* pool,
651 const VkBufferViewCreateInfo* from,
652 VkBufferViewCreateInfo* to)
653{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800654 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800655 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800656 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800657 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800658 if (pNext_size)
659 {
660 to->pNext = (const void*)pool->alloc(pNext_size);
661 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
662 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800663}
664
665void deepcopy_VkImageCreateInfo(
666 Pool* pool,
667 const VkImageCreateInfo* from,
668 VkImageCreateInfo* to)
669{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800670 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800671 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800672 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800673 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800674 if (pNext_size)
675 {
676 to->pNext = (const void*)pool->alloc(pNext_size);
677 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
678 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800679 deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800680 to->pQueueFamilyIndices = nullptr;
681 if (from->pQueueFamilyIndices)
682 {
683 to->pQueueFamilyIndices = (uint32_t*)pool->dupArray(from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
684 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800685}
686
687void deepcopy_VkSubresourceLayout(
688 Pool* pool,
689 const VkSubresourceLayout* from,
690 VkSubresourceLayout* to)
691{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800692 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800693 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800694}
695
696void deepcopy_VkComponentMapping(
697 Pool* pool,
698 const VkComponentMapping* from,
699 VkComponentMapping* to)
700{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800701 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800702 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800703}
704
705void deepcopy_VkImageSubresourceRange(
706 Pool* pool,
707 const VkImageSubresourceRange* from,
708 VkImageSubresourceRange* to)
709{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800710 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800711 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800712}
713
714void deepcopy_VkImageViewCreateInfo(
715 Pool* pool,
716 const VkImageViewCreateInfo* from,
717 VkImageViewCreateInfo* to)
718{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800719 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800720 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800721 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800722 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800723 if (pNext_size)
724 {
725 to->pNext = (const void*)pool->alloc(pNext_size);
726 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
727 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800728 deepcopy_VkComponentMapping(pool, &from->components, (VkComponentMapping*)(&to->components));
729 deepcopy_VkImageSubresourceRange(pool, &from->subresourceRange, (VkImageSubresourceRange*)(&to->subresourceRange));
730}
731
732void deepcopy_VkShaderModuleCreateInfo(
733 Pool* pool,
734 const VkShaderModuleCreateInfo* from,
735 VkShaderModuleCreateInfo* to)
736{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800737 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800738 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800739 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800740 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800741 if (pNext_size)
742 {
743 to->pNext = (const void*)pool->alloc(pNext_size);
744 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
745 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800746 to->pCode = nullptr;
747 if (from->pCode)
748 {
749 to->pCode = (uint32_t*)pool->dupArray(from->pCode, (from->codeSize / 4) * sizeof(const uint32_t));
750 }
751}
752
753void deepcopy_VkPipelineCacheCreateInfo(
754 Pool* pool,
755 const VkPipelineCacheCreateInfo* from,
756 VkPipelineCacheCreateInfo* to)
757{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800758 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800759 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800760 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800761 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800762 if (pNext_size)
763 {
764 to->pNext = (const void*)pool->alloc(pNext_size);
765 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
766 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800767 to->pInitialData = nullptr;
768 if (from->pInitialData)
769 {
770 to->pInitialData = (void*)pool->dupArray(from->pInitialData, from->initialDataSize * sizeof(const uint8_t));
771 }
772}
773
774void deepcopy_VkSpecializationMapEntry(
775 Pool* pool,
776 const VkSpecializationMapEntry* from,
777 VkSpecializationMapEntry* to)
778{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800779 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800780 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800781}
782
783void deepcopy_VkSpecializationInfo(
784 Pool* pool,
785 const VkSpecializationInfo* from,
786 VkSpecializationInfo* to)
787{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800788 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800789 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800790 to->pMapEntries = nullptr;
791 if (from->pMapEntries)
792 {
793 to->pMapEntries = (VkSpecializationMapEntry*)pool->alloc(from->mapEntryCount * sizeof(const VkSpecializationMapEntry));
794 to->mapEntryCount = from->mapEntryCount;
795 for (uint32_t i = 0; i < (uint32_t)from->mapEntryCount; ++i)
796 {
797 deepcopy_VkSpecializationMapEntry(pool, from->pMapEntries + i, (VkSpecializationMapEntry*)(to->pMapEntries + i));
798 }
799 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800800 to->pData = nullptr;
801 if (from->pData)
802 {
803 to->pData = (void*)pool->dupArray(from->pData, from->dataSize * sizeof(const uint8_t));
804 }
805}
806
807void deepcopy_VkPipelineShaderStageCreateInfo(
808 Pool* pool,
809 const VkPipelineShaderStageCreateInfo* from,
810 VkPipelineShaderStageCreateInfo* to)
811{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800812 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800813 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800814 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800815 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800816 if (pNext_size)
817 {
818 to->pNext = (const void*)pool->alloc(pNext_size);
819 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
820 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800821 to->pName = nullptr;
822 if (from->pName)
823 {
824 to->pName = pool->strDup(from->pName);
825 }
826 to->pSpecializationInfo = nullptr;
827 if (from->pSpecializationInfo)
828 {
829 to->pSpecializationInfo = (VkSpecializationInfo*)pool->alloc(sizeof(const VkSpecializationInfo));
830 deepcopy_VkSpecializationInfo(pool, from->pSpecializationInfo, (VkSpecializationInfo*)(to->pSpecializationInfo));
831 }
832}
833
834void deepcopy_VkVertexInputBindingDescription(
835 Pool* pool,
836 const VkVertexInputBindingDescription* from,
837 VkVertexInputBindingDescription* to)
838{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800839 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800840 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800841}
842
843void deepcopy_VkVertexInputAttributeDescription(
844 Pool* pool,
845 const VkVertexInputAttributeDescription* from,
846 VkVertexInputAttributeDescription* to)
847{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800848 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800849 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800850}
851
852void deepcopy_VkPipelineVertexInputStateCreateInfo(
853 Pool* pool,
854 const VkPipelineVertexInputStateCreateInfo* from,
855 VkPipelineVertexInputStateCreateInfo* to)
856{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800857 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800858 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800859 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800860 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800861 if (pNext_size)
862 {
863 to->pNext = (const void*)pool->alloc(pNext_size);
864 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
865 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800866 to->pVertexBindingDescriptions = nullptr;
867 if (from->pVertexBindingDescriptions)
868 {
869 to->pVertexBindingDescriptions = (VkVertexInputBindingDescription*)pool->alloc(from->vertexBindingDescriptionCount * sizeof(const VkVertexInputBindingDescription));
870 to->vertexBindingDescriptionCount = from->vertexBindingDescriptionCount;
871 for (uint32_t i = 0; i < (uint32_t)from->vertexBindingDescriptionCount; ++i)
872 {
873 deepcopy_VkVertexInputBindingDescription(pool, from->pVertexBindingDescriptions + i, (VkVertexInputBindingDescription*)(to->pVertexBindingDescriptions + i));
874 }
875 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800876 to->pVertexAttributeDescriptions = nullptr;
877 if (from->pVertexAttributeDescriptions)
878 {
879 to->pVertexAttributeDescriptions = (VkVertexInputAttributeDescription*)pool->alloc(from->vertexAttributeDescriptionCount * sizeof(const VkVertexInputAttributeDescription));
880 to->vertexAttributeDescriptionCount = from->vertexAttributeDescriptionCount;
881 for (uint32_t i = 0; i < (uint32_t)from->vertexAttributeDescriptionCount; ++i)
882 {
883 deepcopy_VkVertexInputAttributeDescription(pool, from->pVertexAttributeDescriptions + i, (VkVertexInputAttributeDescription*)(to->pVertexAttributeDescriptions + i));
884 }
885 }
886}
887
888void deepcopy_VkPipelineInputAssemblyStateCreateInfo(
889 Pool* pool,
890 const VkPipelineInputAssemblyStateCreateInfo* from,
891 VkPipelineInputAssemblyStateCreateInfo* to)
892{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800893 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800894 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800895 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800896 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800897 if (pNext_size)
898 {
899 to->pNext = (const void*)pool->alloc(pNext_size);
900 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
901 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800902}
903
904void deepcopy_VkPipelineTessellationStateCreateInfo(
905 Pool* pool,
906 const VkPipelineTessellationStateCreateInfo* from,
907 VkPipelineTessellationStateCreateInfo* to)
908{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800909 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800910 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800911 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800912 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800913 if (pNext_size)
914 {
915 to->pNext = (const void*)pool->alloc(pNext_size);
916 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
917 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800918}
919
920void deepcopy_VkViewport(
921 Pool* pool,
922 const VkViewport* from,
923 VkViewport* to)
924{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800925 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800926 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800927}
928
929void deepcopy_VkOffset2D(
930 Pool* pool,
931 const VkOffset2D* from,
932 VkOffset2D* to)
933{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800934 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800935 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800936}
937
938void deepcopy_VkExtent2D(
939 Pool* pool,
940 const VkExtent2D* from,
941 VkExtent2D* to)
942{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800943 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800944 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800945}
946
947void deepcopy_VkRect2D(
948 Pool* pool,
949 const VkRect2D* from,
950 VkRect2D* to)
951{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800952 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800953 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800954 deepcopy_VkOffset2D(pool, &from->offset, (VkOffset2D*)(&to->offset));
955 deepcopy_VkExtent2D(pool, &from->extent, (VkExtent2D*)(&to->extent));
956}
957
958void deepcopy_VkPipelineViewportStateCreateInfo(
959 Pool* pool,
960 const VkPipelineViewportStateCreateInfo* from,
961 VkPipelineViewportStateCreateInfo* to)
962{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800963 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -0800964 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800965 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -0800966 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -0800967 if (pNext_size)
968 {
969 to->pNext = (const void*)pool->alloc(pNext_size);
970 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
971 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800972 to->pViewports = nullptr;
973 if (from->pViewports)
974 {
975 to->pViewports = (VkViewport*)pool->alloc(from->viewportCount * sizeof(const VkViewport));
976 to->viewportCount = from->viewportCount;
977 for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
978 {
979 deepcopy_VkViewport(pool, from->pViewports + i, (VkViewport*)(to->pViewports + i));
980 }
981 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -0800982 to->pScissors = nullptr;
983 if (from->pScissors)
984 {
985 to->pScissors = (VkRect2D*)pool->alloc(from->scissorCount * sizeof(const VkRect2D));
986 to->scissorCount = from->scissorCount;
987 for (uint32_t i = 0; i < (uint32_t)from->scissorCount; ++i)
988 {
989 deepcopy_VkRect2D(pool, from->pScissors + i, (VkRect2D*)(to->pScissors + i));
990 }
991 }
992}
993
994void deepcopy_VkPipelineRasterizationStateCreateInfo(
995 Pool* pool,
996 const VkPipelineRasterizationStateCreateInfo* from,
997 VkPipelineRasterizationStateCreateInfo* to)
998{
Lingfeng Yang36891c52018-11-09 14:18:35 -0800999 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001000 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001001 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001002 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001003 if (pNext_size)
1004 {
1005 to->pNext = (const void*)pool->alloc(pNext_size);
1006 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1007 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001008}
1009
1010void deepcopy_VkPipelineMultisampleStateCreateInfo(
1011 Pool* pool,
1012 const VkPipelineMultisampleStateCreateInfo* from,
1013 VkPipelineMultisampleStateCreateInfo* to)
1014{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001015 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001016 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001017 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001018 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001019 if (pNext_size)
1020 {
1021 to->pNext = (const void*)pool->alloc(pNext_size);
1022 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1023 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001024 to->pSampleMask = nullptr;
1025 if (from->pSampleMask)
1026 {
1027 to->pSampleMask = (VkSampleMask*)pool->dupArray(from->pSampleMask, (((from->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
1028 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001029}
1030
1031void deepcopy_VkStencilOpState(
1032 Pool* pool,
1033 const VkStencilOpState* from,
1034 VkStencilOpState* to)
1035{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001036 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001037 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001038}
1039
1040void deepcopy_VkPipelineDepthStencilStateCreateInfo(
1041 Pool* pool,
1042 const VkPipelineDepthStencilStateCreateInfo* from,
1043 VkPipelineDepthStencilStateCreateInfo* to)
1044{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001045 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001046 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001047 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001048 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001049 if (pNext_size)
1050 {
1051 to->pNext = (const void*)pool->alloc(pNext_size);
1052 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1053 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001054 deepcopy_VkStencilOpState(pool, &from->front, (VkStencilOpState*)(&to->front));
1055 deepcopy_VkStencilOpState(pool, &from->back, (VkStencilOpState*)(&to->back));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001056}
1057
1058void deepcopy_VkPipelineColorBlendAttachmentState(
1059 Pool* pool,
1060 const VkPipelineColorBlendAttachmentState* from,
1061 VkPipelineColorBlendAttachmentState* to)
1062{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001063 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001064 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001065}
1066
1067void deepcopy_VkPipelineColorBlendStateCreateInfo(
1068 Pool* pool,
1069 const VkPipelineColorBlendStateCreateInfo* from,
1070 VkPipelineColorBlendStateCreateInfo* to)
1071{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001072 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001073 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001074 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001075 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001076 if (pNext_size)
1077 {
1078 to->pNext = (const void*)pool->alloc(pNext_size);
1079 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1080 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001081 to->pAttachments = nullptr;
1082 if (from->pAttachments)
1083 {
1084 to->pAttachments = (VkPipelineColorBlendAttachmentState*)pool->alloc(from->attachmentCount * sizeof(const VkPipelineColorBlendAttachmentState));
1085 to->attachmentCount = from->attachmentCount;
1086 for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
1087 {
1088 deepcopy_VkPipelineColorBlendAttachmentState(pool, from->pAttachments + i, (VkPipelineColorBlendAttachmentState*)(to->pAttachments + i));
1089 }
1090 }
1091 memcpy(to->blendConstants, from->blendConstants, 4 * sizeof(float));
1092}
1093
1094void deepcopy_VkPipelineDynamicStateCreateInfo(
1095 Pool* pool,
1096 const VkPipelineDynamicStateCreateInfo* from,
1097 VkPipelineDynamicStateCreateInfo* to)
1098{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001099 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001100 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001101 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001102 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001103 if (pNext_size)
1104 {
1105 to->pNext = (const void*)pool->alloc(pNext_size);
1106 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1107 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001108 to->pDynamicStates = nullptr;
1109 if (from->pDynamicStates)
1110 {
1111 to->pDynamicStates = (VkDynamicState*)pool->dupArray(from->pDynamicStates, from->dynamicStateCount * sizeof(const VkDynamicState));
1112 }
1113}
1114
1115void deepcopy_VkGraphicsPipelineCreateInfo(
1116 Pool* pool,
1117 const VkGraphicsPipelineCreateInfo* from,
1118 VkGraphicsPipelineCreateInfo* to)
1119{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001120 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001121 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001122 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001123 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001124 if (pNext_size)
1125 {
1126 to->pNext = (const void*)pool->alloc(pNext_size);
1127 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1128 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001129 to->pStages = nullptr;
1130 if (from->pStages)
1131 {
1132 to->pStages = (VkPipelineShaderStageCreateInfo*)pool->alloc(from->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
1133 to->stageCount = from->stageCount;
1134 for (uint32_t i = 0; i < (uint32_t)from->stageCount; ++i)
1135 {
1136 deepcopy_VkPipelineShaderStageCreateInfo(pool, from->pStages + i, (VkPipelineShaderStageCreateInfo*)(to->pStages + i));
1137 }
1138 }
1139 to->pVertexInputState = nullptr;
1140 if (from->pVertexInputState)
1141 {
1142 to->pVertexInputState = (VkPipelineVertexInputStateCreateInfo*)pool->alloc(sizeof(const VkPipelineVertexInputStateCreateInfo));
1143 deepcopy_VkPipelineVertexInputStateCreateInfo(pool, from->pVertexInputState, (VkPipelineVertexInputStateCreateInfo*)(to->pVertexInputState));
1144 }
1145 to->pInputAssemblyState = nullptr;
1146 if (from->pInputAssemblyState)
1147 {
1148 to->pInputAssemblyState = (VkPipelineInputAssemblyStateCreateInfo*)pool->alloc(sizeof(const VkPipelineInputAssemblyStateCreateInfo));
1149 deepcopy_VkPipelineInputAssemblyStateCreateInfo(pool, from->pInputAssemblyState, (VkPipelineInputAssemblyStateCreateInfo*)(to->pInputAssemblyState));
1150 }
1151 to->pTessellationState = nullptr;
1152 if (from->pTessellationState)
1153 {
1154 to->pTessellationState = (VkPipelineTessellationStateCreateInfo*)pool->alloc(sizeof(const VkPipelineTessellationStateCreateInfo));
1155 deepcopy_VkPipelineTessellationStateCreateInfo(pool, from->pTessellationState, (VkPipelineTessellationStateCreateInfo*)(to->pTessellationState));
1156 }
1157 to->pViewportState = nullptr;
1158 if (from->pViewportState)
1159 {
1160 to->pViewportState = (VkPipelineViewportStateCreateInfo*)pool->alloc(sizeof(const VkPipelineViewportStateCreateInfo));
1161 deepcopy_VkPipelineViewportStateCreateInfo(pool, from->pViewportState, (VkPipelineViewportStateCreateInfo*)(to->pViewportState));
1162 }
1163 to->pRasterizationState = nullptr;
1164 if (from->pRasterizationState)
1165 {
1166 to->pRasterizationState = (VkPipelineRasterizationStateCreateInfo*)pool->alloc(sizeof(const VkPipelineRasterizationStateCreateInfo));
1167 deepcopy_VkPipelineRasterizationStateCreateInfo(pool, from->pRasterizationState, (VkPipelineRasterizationStateCreateInfo*)(to->pRasterizationState));
1168 }
1169 to->pMultisampleState = nullptr;
1170 if (from->pMultisampleState)
1171 {
1172 to->pMultisampleState = (VkPipelineMultisampleStateCreateInfo*)pool->alloc(sizeof(const VkPipelineMultisampleStateCreateInfo));
1173 deepcopy_VkPipelineMultisampleStateCreateInfo(pool, from->pMultisampleState, (VkPipelineMultisampleStateCreateInfo*)(to->pMultisampleState));
1174 }
1175 to->pDepthStencilState = nullptr;
1176 if (from->pDepthStencilState)
1177 {
1178 to->pDepthStencilState = (VkPipelineDepthStencilStateCreateInfo*)pool->alloc(sizeof(const VkPipelineDepthStencilStateCreateInfo));
1179 deepcopy_VkPipelineDepthStencilStateCreateInfo(pool, from->pDepthStencilState, (VkPipelineDepthStencilStateCreateInfo*)(to->pDepthStencilState));
1180 }
1181 to->pColorBlendState = nullptr;
1182 if (from->pColorBlendState)
1183 {
1184 to->pColorBlendState = (VkPipelineColorBlendStateCreateInfo*)pool->alloc(sizeof(const VkPipelineColorBlendStateCreateInfo));
1185 deepcopy_VkPipelineColorBlendStateCreateInfo(pool, from->pColorBlendState, (VkPipelineColorBlendStateCreateInfo*)(to->pColorBlendState));
1186 }
1187 to->pDynamicState = nullptr;
1188 if (from->pDynamicState)
1189 {
1190 to->pDynamicState = (VkPipelineDynamicStateCreateInfo*)pool->alloc(sizeof(const VkPipelineDynamicStateCreateInfo));
1191 deepcopy_VkPipelineDynamicStateCreateInfo(pool, from->pDynamicState, (VkPipelineDynamicStateCreateInfo*)(to->pDynamicState));
1192 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001193}
1194
1195void deepcopy_VkComputePipelineCreateInfo(
1196 Pool* pool,
1197 const VkComputePipelineCreateInfo* from,
1198 VkComputePipelineCreateInfo* to)
1199{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001200 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001201 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001202 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001203 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001204 if (pNext_size)
1205 {
1206 to->pNext = (const void*)pool->alloc(pNext_size);
1207 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1208 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001209 deepcopy_VkPipelineShaderStageCreateInfo(pool, &from->stage, (VkPipelineShaderStageCreateInfo*)(&to->stage));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001210}
1211
1212void deepcopy_VkPushConstantRange(
1213 Pool* pool,
1214 const VkPushConstantRange* from,
1215 VkPushConstantRange* to)
1216{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001217 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001218 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001219}
1220
1221void deepcopy_VkPipelineLayoutCreateInfo(
1222 Pool* pool,
1223 const VkPipelineLayoutCreateInfo* from,
1224 VkPipelineLayoutCreateInfo* to)
1225{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001226 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001227 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001228 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001229 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001230 if (pNext_size)
1231 {
1232 to->pNext = (const void*)pool->alloc(pNext_size);
1233 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1234 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001235 to->pSetLayouts = nullptr;
1236 if (from->pSetLayouts)
1237 {
1238 to->pSetLayouts = (VkDescriptorSetLayout*)pool->dupArray(from->pSetLayouts, from->setLayoutCount * sizeof(const VkDescriptorSetLayout));
1239 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001240 to->pPushConstantRanges = nullptr;
1241 if (from->pPushConstantRanges)
1242 {
1243 to->pPushConstantRanges = (VkPushConstantRange*)pool->alloc(from->pushConstantRangeCount * sizeof(const VkPushConstantRange));
1244 to->pushConstantRangeCount = from->pushConstantRangeCount;
1245 for (uint32_t i = 0; i < (uint32_t)from->pushConstantRangeCount; ++i)
1246 {
1247 deepcopy_VkPushConstantRange(pool, from->pPushConstantRanges + i, (VkPushConstantRange*)(to->pPushConstantRanges + i));
1248 }
1249 }
1250}
1251
1252void deepcopy_VkSamplerCreateInfo(
1253 Pool* pool,
1254 const VkSamplerCreateInfo* from,
1255 VkSamplerCreateInfo* to)
1256{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001257 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001258 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001259 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001260 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001261 if (pNext_size)
1262 {
1263 to->pNext = (const void*)pool->alloc(pNext_size);
1264 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1265 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001266}
1267
1268void deepcopy_VkDescriptorSetLayoutBinding(
1269 Pool* pool,
1270 const VkDescriptorSetLayoutBinding* from,
1271 VkDescriptorSetLayoutBinding* to)
1272{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001273 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001274 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001275 to->pImmutableSamplers = nullptr;
1276 if (from->pImmutableSamplers)
1277 {
1278 to->pImmutableSamplers = (VkSampler*)pool->dupArray(from->pImmutableSamplers, from->descriptorCount * sizeof(const VkSampler));
1279 }
1280}
1281
1282void deepcopy_VkDescriptorSetLayoutCreateInfo(
1283 Pool* pool,
1284 const VkDescriptorSetLayoutCreateInfo* from,
1285 VkDescriptorSetLayoutCreateInfo* to)
1286{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001287 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001288 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001289 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001290 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001291 if (pNext_size)
1292 {
1293 to->pNext = (const void*)pool->alloc(pNext_size);
1294 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1295 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001296 to->pBindings = nullptr;
1297 if (from->pBindings)
1298 {
1299 to->pBindings = (VkDescriptorSetLayoutBinding*)pool->alloc(from->bindingCount * sizeof(const VkDescriptorSetLayoutBinding));
1300 to->bindingCount = from->bindingCount;
1301 for (uint32_t i = 0; i < (uint32_t)from->bindingCount; ++i)
1302 {
1303 deepcopy_VkDescriptorSetLayoutBinding(pool, from->pBindings + i, (VkDescriptorSetLayoutBinding*)(to->pBindings + i));
1304 }
1305 }
1306}
1307
1308void deepcopy_VkDescriptorPoolSize(
1309 Pool* pool,
1310 const VkDescriptorPoolSize* from,
1311 VkDescriptorPoolSize* to)
1312{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001313 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001314 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001315}
1316
1317void deepcopy_VkDescriptorPoolCreateInfo(
1318 Pool* pool,
1319 const VkDescriptorPoolCreateInfo* from,
1320 VkDescriptorPoolCreateInfo* to)
1321{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001322 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001323 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001324 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001325 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001326 if (pNext_size)
1327 {
1328 to->pNext = (const void*)pool->alloc(pNext_size);
1329 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1330 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001331 to->pPoolSizes = nullptr;
1332 if (from->pPoolSizes)
1333 {
1334 to->pPoolSizes = (VkDescriptorPoolSize*)pool->alloc(from->poolSizeCount * sizeof(const VkDescriptorPoolSize));
1335 to->poolSizeCount = from->poolSizeCount;
1336 for (uint32_t i = 0; i < (uint32_t)from->poolSizeCount; ++i)
1337 {
1338 deepcopy_VkDescriptorPoolSize(pool, from->pPoolSizes + i, (VkDescriptorPoolSize*)(to->pPoolSizes + i));
1339 }
1340 }
1341}
1342
1343void deepcopy_VkDescriptorSetAllocateInfo(
1344 Pool* pool,
1345 const VkDescriptorSetAllocateInfo* from,
1346 VkDescriptorSetAllocateInfo* to)
1347{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001348 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001349 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001350 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001351 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001352 if (pNext_size)
1353 {
1354 to->pNext = (const void*)pool->alloc(pNext_size);
1355 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1356 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001357 to->pSetLayouts = nullptr;
1358 if (from->pSetLayouts)
1359 {
1360 to->pSetLayouts = (VkDescriptorSetLayout*)pool->dupArray(from->pSetLayouts, from->descriptorSetCount * sizeof(const VkDescriptorSetLayout));
1361 }
1362}
1363
1364void deepcopy_VkDescriptorImageInfo(
1365 Pool* pool,
1366 const VkDescriptorImageInfo* from,
1367 VkDescriptorImageInfo* to)
1368{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001369 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001370 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001371}
1372
1373void deepcopy_VkDescriptorBufferInfo(
1374 Pool* pool,
1375 const VkDescriptorBufferInfo* from,
1376 VkDescriptorBufferInfo* to)
1377{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001378 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001379 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001380}
1381
1382void deepcopy_VkWriteDescriptorSet(
1383 Pool* pool,
1384 const VkWriteDescriptorSet* from,
1385 VkWriteDescriptorSet* to)
1386{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001387 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001388 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001389 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001390 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001391 if (pNext_size)
1392 {
1393 to->pNext = (const void*)pool->alloc(pNext_size);
1394 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1395 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001396 to->pImageInfo = nullptr;
1397 if (from->pImageInfo)
1398 {
1399 to->pImageInfo = (VkDescriptorImageInfo*)pool->alloc(from->descriptorCount * sizeof(const VkDescriptorImageInfo));
1400 to->descriptorCount = from->descriptorCount;
1401 for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i)
1402 {
1403 deepcopy_VkDescriptorImageInfo(pool, from->pImageInfo + i, (VkDescriptorImageInfo*)(to->pImageInfo + i));
1404 }
1405 }
1406 to->pBufferInfo = nullptr;
1407 if (from->pBufferInfo)
1408 {
1409 to->pBufferInfo = (VkDescriptorBufferInfo*)pool->alloc(from->descriptorCount * sizeof(const VkDescriptorBufferInfo));
1410 to->descriptorCount = from->descriptorCount;
1411 for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i)
1412 {
1413 deepcopy_VkDescriptorBufferInfo(pool, from->pBufferInfo + i, (VkDescriptorBufferInfo*)(to->pBufferInfo + i));
1414 }
1415 }
1416 to->pTexelBufferView = nullptr;
1417 if (from->pTexelBufferView)
1418 {
1419 to->pTexelBufferView = (VkBufferView*)pool->dupArray(from->pTexelBufferView, from->descriptorCount * sizeof(const VkBufferView));
1420 }
1421}
1422
1423void deepcopy_VkCopyDescriptorSet(
1424 Pool* pool,
1425 const VkCopyDescriptorSet* from,
1426 VkCopyDescriptorSet* to)
1427{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001428 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001429 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001430 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001431 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001432 if (pNext_size)
1433 {
1434 to->pNext = (const void*)pool->alloc(pNext_size);
1435 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1436 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001437}
1438
1439void deepcopy_VkFramebufferCreateInfo(
1440 Pool* pool,
1441 const VkFramebufferCreateInfo* from,
1442 VkFramebufferCreateInfo* to)
1443{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001444 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001445 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001446 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001447 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001448 if (pNext_size)
1449 {
1450 to->pNext = (const void*)pool->alloc(pNext_size);
1451 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1452 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001453 to->pAttachments = nullptr;
1454 if (from->pAttachments)
1455 {
1456 to->pAttachments = (VkImageView*)pool->dupArray(from->pAttachments, from->attachmentCount * sizeof(const VkImageView));
1457 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001458}
1459
1460void deepcopy_VkAttachmentDescription(
1461 Pool* pool,
1462 const VkAttachmentDescription* from,
1463 VkAttachmentDescription* to)
1464{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001465 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001466 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001467}
1468
1469void deepcopy_VkAttachmentReference(
1470 Pool* pool,
1471 const VkAttachmentReference* from,
1472 VkAttachmentReference* to)
1473{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001474 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001475 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001476}
1477
1478void deepcopy_VkSubpassDescription(
1479 Pool* pool,
1480 const VkSubpassDescription* from,
1481 VkSubpassDescription* to)
1482{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001483 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001484 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001485 to->pInputAttachments = nullptr;
1486 if (from->pInputAttachments)
1487 {
1488 to->pInputAttachments = (VkAttachmentReference*)pool->alloc(from->inputAttachmentCount * sizeof(const VkAttachmentReference));
1489 to->inputAttachmentCount = from->inputAttachmentCount;
1490 for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i)
1491 {
1492 deepcopy_VkAttachmentReference(pool, from->pInputAttachments + i, (VkAttachmentReference*)(to->pInputAttachments + i));
1493 }
1494 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001495 to->pColorAttachments = nullptr;
1496 if (from->pColorAttachments)
1497 {
1498 to->pColorAttachments = (VkAttachmentReference*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference));
1499 to->colorAttachmentCount = from->colorAttachmentCount;
1500 for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
1501 {
1502 deepcopy_VkAttachmentReference(pool, from->pColorAttachments + i, (VkAttachmentReference*)(to->pColorAttachments + i));
1503 }
1504 }
1505 to->pResolveAttachments = nullptr;
1506 if (from->pResolveAttachments)
1507 {
1508 to->pResolveAttachments = (VkAttachmentReference*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference));
1509 to->colorAttachmentCount = from->colorAttachmentCount;
1510 for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
1511 {
1512 deepcopy_VkAttachmentReference(pool, from->pResolveAttachments + i, (VkAttachmentReference*)(to->pResolveAttachments + i));
1513 }
1514 }
1515 to->pDepthStencilAttachment = nullptr;
1516 if (from->pDepthStencilAttachment)
1517 {
1518 to->pDepthStencilAttachment = (VkAttachmentReference*)pool->alloc(sizeof(const VkAttachmentReference));
1519 deepcopy_VkAttachmentReference(pool, from->pDepthStencilAttachment, (VkAttachmentReference*)(to->pDepthStencilAttachment));
1520 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001521 to->pPreserveAttachments = nullptr;
1522 if (from->pPreserveAttachments)
1523 {
1524 to->pPreserveAttachments = (uint32_t*)pool->dupArray(from->pPreserveAttachments, from->preserveAttachmentCount * sizeof(const uint32_t));
1525 }
1526}
1527
1528void deepcopy_VkSubpassDependency(
1529 Pool* pool,
1530 const VkSubpassDependency* from,
1531 VkSubpassDependency* to)
1532{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001533 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001534 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001535}
1536
1537void deepcopy_VkRenderPassCreateInfo(
1538 Pool* pool,
1539 const VkRenderPassCreateInfo* from,
1540 VkRenderPassCreateInfo* to)
1541{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001542 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001543 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001544 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001545 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001546 if (pNext_size)
1547 {
1548 to->pNext = (const void*)pool->alloc(pNext_size);
1549 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1550 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001551 to->pAttachments = nullptr;
1552 if (from->pAttachments)
1553 {
1554 to->pAttachments = (VkAttachmentDescription*)pool->alloc(from->attachmentCount * sizeof(const VkAttachmentDescription));
1555 to->attachmentCount = from->attachmentCount;
1556 for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
1557 {
1558 deepcopy_VkAttachmentDescription(pool, from->pAttachments + i, (VkAttachmentDescription*)(to->pAttachments + i));
1559 }
1560 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001561 to->pSubpasses = nullptr;
1562 if (from->pSubpasses)
1563 {
1564 to->pSubpasses = (VkSubpassDescription*)pool->alloc(from->subpassCount * sizeof(const VkSubpassDescription));
1565 to->subpassCount = from->subpassCount;
1566 for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i)
1567 {
1568 deepcopy_VkSubpassDescription(pool, from->pSubpasses + i, (VkSubpassDescription*)(to->pSubpasses + i));
1569 }
1570 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001571 to->pDependencies = nullptr;
1572 if (from->pDependencies)
1573 {
1574 to->pDependencies = (VkSubpassDependency*)pool->alloc(from->dependencyCount * sizeof(const VkSubpassDependency));
1575 to->dependencyCount = from->dependencyCount;
1576 for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i)
1577 {
1578 deepcopy_VkSubpassDependency(pool, from->pDependencies + i, (VkSubpassDependency*)(to->pDependencies + i));
1579 }
1580 }
1581}
1582
1583void deepcopy_VkCommandPoolCreateInfo(
1584 Pool* pool,
1585 const VkCommandPoolCreateInfo* from,
1586 VkCommandPoolCreateInfo* to)
1587{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001588 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001589 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001590 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001591 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001592 if (pNext_size)
1593 {
1594 to->pNext = (const void*)pool->alloc(pNext_size);
1595 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1596 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001597}
1598
1599void deepcopy_VkCommandBufferAllocateInfo(
1600 Pool* pool,
1601 const VkCommandBufferAllocateInfo* from,
1602 VkCommandBufferAllocateInfo* to)
1603{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001604 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001605 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001606 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001607 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001608 if (pNext_size)
1609 {
1610 to->pNext = (const void*)pool->alloc(pNext_size);
1611 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1612 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001613}
1614
1615void deepcopy_VkCommandBufferInheritanceInfo(
1616 Pool* pool,
1617 const VkCommandBufferInheritanceInfo* from,
1618 VkCommandBufferInheritanceInfo* to)
1619{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001620 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001621 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001622 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001623 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001624 if (pNext_size)
1625 {
1626 to->pNext = (const void*)pool->alloc(pNext_size);
1627 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1628 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001629}
1630
1631void deepcopy_VkCommandBufferBeginInfo(
1632 Pool* pool,
1633 const VkCommandBufferBeginInfo* from,
1634 VkCommandBufferBeginInfo* to)
1635{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001636 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001637 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001638 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001639 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001640 if (pNext_size)
1641 {
1642 to->pNext = (const void*)pool->alloc(pNext_size);
1643 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1644 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001645 to->pInheritanceInfo = nullptr;
1646 if (from->pInheritanceInfo)
1647 {
1648 to->pInheritanceInfo = (VkCommandBufferInheritanceInfo*)pool->alloc(sizeof(const VkCommandBufferInheritanceInfo));
1649 deepcopy_VkCommandBufferInheritanceInfo(pool, from->pInheritanceInfo, (VkCommandBufferInheritanceInfo*)(to->pInheritanceInfo));
1650 }
1651}
1652
1653void deepcopy_VkBufferCopy(
1654 Pool* pool,
1655 const VkBufferCopy* from,
1656 VkBufferCopy* to)
1657{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001658 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001659 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001660}
1661
1662void deepcopy_VkImageSubresourceLayers(
1663 Pool* pool,
1664 const VkImageSubresourceLayers* from,
1665 VkImageSubresourceLayers* to)
1666{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001667 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001668 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001669}
1670
1671void deepcopy_VkImageCopy(
1672 Pool* pool,
1673 const VkImageCopy* from,
1674 VkImageCopy* to)
1675{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001676 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001677 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001678 deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
1679 deepcopy_VkOffset3D(pool, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
1680 deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
1681 deepcopy_VkOffset3D(pool, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
1682 deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
1683}
1684
1685void deepcopy_VkImageBlit(
1686 Pool* pool,
1687 const VkImageBlit* from,
1688 VkImageBlit* to)
1689{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001690 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001691 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001692 deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
1693 for (uint32_t i = 0; i < (uint32_t)2; ++i)
1694 {
1695 deepcopy_VkOffset3D(pool, from->srcOffsets + i, (VkOffset3D*)(to->srcOffsets + i));
1696 }
1697 deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
1698 for (uint32_t i = 0; i < (uint32_t)2; ++i)
1699 {
1700 deepcopy_VkOffset3D(pool, from->dstOffsets + i, (VkOffset3D*)(to->dstOffsets + i));
1701 }
1702}
1703
1704void deepcopy_VkBufferImageCopy(
1705 Pool* pool,
1706 const VkBufferImageCopy* from,
1707 VkBufferImageCopy* to)
1708{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001709 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001710 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001711 deepcopy_VkImageSubresourceLayers(pool, &from->imageSubresource, (VkImageSubresourceLayers*)(&to->imageSubresource));
1712 deepcopy_VkOffset3D(pool, &from->imageOffset, (VkOffset3D*)(&to->imageOffset));
1713 deepcopy_VkExtent3D(pool, &from->imageExtent, (VkExtent3D*)(&to->imageExtent));
1714}
1715
1716void deepcopy_VkClearColorValue(
1717 Pool* pool,
1718 const VkClearColorValue* from,
1719 VkClearColorValue* to)
1720{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001721 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001722 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001723 memcpy(to->float32, from->float32, 4 * sizeof(float));
1724 memcpy(to->int32, from->int32, 4 * sizeof(int32_t));
1725 memcpy(to->uint32, from->uint32, 4 * sizeof(uint32_t));
1726}
1727
1728void deepcopy_VkClearDepthStencilValue(
1729 Pool* pool,
1730 const VkClearDepthStencilValue* from,
1731 VkClearDepthStencilValue* to)
1732{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001733 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001734 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001735}
1736
1737void deepcopy_VkClearValue(
1738 Pool* pool,
1739 const VkClearValue* from,
1740 VkClearValue* to)
1741{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001742 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001743 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001744 deepcopy_VkClearColorValue(pool, &from->color, (VkClearColorValue*)(&to->color));
1745 deepcopy_VkClearDepthStencilValue(pool, &from->depthStencil, (VkClearDepthStencilValue*)(&to->depthStencil));
1746}
1747
1748void deepcopy_VkClearAttachment(
1749 Pool* pool,
1750 const VkClearAttachment* from,
1751 VkClearAttachment* to)
1752{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001753 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001754 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001755 deepcopy_VkClearValue(pool, &from->clearValue, (VkClearValue*)(&to->clearValue));
1756}
1757
1758void deepcopy_VkClearRect(
1759 Pool* pool,
1760 const VkClearRect* from,
1761 VkClearRect* to)
1762{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001763 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001764 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001765 deepcopy_VkRect2D(pool, &from->rect, (VkRect2D*)(&to->rect));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001766}
1767
1768void deepcopy_VkImageResolve(
1769 Pool* pool,
1770 const VkImageResolve* from,
1771 VkImageResolve* to)
1772{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001773 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001774 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001775 deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
1776 deepcopy_VkOffset3D(pool, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
1777 deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
1778 deepcopy_VkOffset3D(pool, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
1779 deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
1780}
1781
1782void deepcopy_VkMemoryBarrier(
1783 Pool* pool,
1784 const VkMemoryBarrier* from,
1785 VkMemoryBarrier* to)
1786{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001787 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001788 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001789 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001790 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001791 if (pNext_size)
1792 {
1793 to->pNext = (const void*)pool->alloc(pNext_size);
1794 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1795 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001796}
1797
1798void deepcopy_VkBufferMemoryBarrier(
1799 Pool* pool,
1800 const VkBufferMemoryBarrier* from,
1801 VkBufferMemoryBarrier* to)
1802{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001803 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001804 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001805 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001806 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001807 if (pNext_size)
1808 {
1809 to->pNext = (const void*)pool->alloc(pNext_size);
1810 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1811 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001812}
1813
1814void deepcopy_VkImageMemoryBarrier(
1815 Pool* pool,
1816 const VkImageMemoryBarrier* from,
1817 VkImageMemoryBarrier* to)
1818{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001819 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001820 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001821 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001822 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001823 if (pNext_size)
1824 {
1825 to->pNext = (const void*)pool->alloc(pNext_size);
1826 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1827 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001828 deepcopy_VkImageSubresourceRange(pool, &from->subresourceRange, (VkImageSubresourceRange*)(&to->subresourceRange));
1829}
1830
1831void deepcopy_VkRenderPassBeginInfo(
1832 Pool* pool,
1833 const VkRenderPassBeginInfo* from,
1834 VkRenderPassBeginInfo* to)
1835{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001836 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001837 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001838 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001839 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001840 if (pNext_size)
1841 {
1842 to->pNext = (const void*)pool->alloc(pNext_size);
1843 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1844 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001845 deepcopy_VkRect2D(pool, &from->renderArea, (VkRect2D*)(&to->renderArea));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001846 to->pClearValues = nullptr;
1847 if (from->pClearValues)
1848 {
1849 to->pClearValues = (VkClearValue*)pool->alloc(from->clearValueCount * sizeof(const VkClearValue));
1850 to->clearValueCount = from->clearValueCount;
1851 for (uint32_t i = 0; i < (uint32_t)from->clearValueCount; ++i)
1852 {
1853 deepcopy_VkClearValue(pool, from->pClearValues + i, (VkClearValue*)(to->pClearValues + i));
1854 }
1855 }
1856}
1857
1858void deepcopy_VkDispatchIndirectCommand(
1859 Pool* pool,
1860 const VkDispatchIndirectCommand* from,
1861 VkDispatchIndirectCommand* to)
1862{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001863 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001864 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001865}
1866
1867void deepcopy_VkDrawIndexedIndirectCommand(
1868 Pool* pool,
1869 const VkDrawIndexedIndirectCommand* from,
1870 VkDrawIndexedIndirectCommand* to)
1871{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001872 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001873 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001874}
1875
1876void deepcopy_VkDrawIndirectCommand(
1877 Pool* pool,
1878 const VkDrawIndirectCommand* from,
1879 VkDrawIndirectCommand* to)
1880{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001881 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001882 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001883}
1884
1885void deepcopy_VkBaseOutStructure(
1886 Pool* pool,
1887 const VkBaseOutStructure* from,
1888 VkBaseOutStructure* to)
1889{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001890 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001891 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001892 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
1893 to->pNext = nullptr;
1894 if (pNext_size)
1895 {
1896 to->pNext = (VkBaseOutStructure*)pool->alloc(pNext_size);
1897 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1898 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001899}
1900
1901void deepcopy_VkBaseInStructure(
1902 Pool* pool,
1903 const VkBaseInStructure* from,
1904 VkBaseInStructure* to)
1905{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001906 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001907 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001908 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
1909 to->pNext = nullptr;
1910 if (pNext_size)
1911 {
1912 to->pNext = (const VkBaseInStructure*)pool->alloc(pNext_size);
1913 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1914 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001915}
1916
1917#endif
1918#ifdef VK_VERSION_1_1
1919void deepcopy_VkPhysicalDeviceSubgroupProperties(
1920 Pool* pool,
1921 const VkPhysicalDeviceSubgroupProperties* from,
1922 VkPhysicalDeviceSubgroupProperties* to)
1923{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001924 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001925 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001926 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001927 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001928 if (pNext_size)
1929 {
1930 to->pNext = (void*)pool->alloc(pNext_size);
1931 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1932 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001933}
1934
1935void deepcopy_VkBindBufferMemoryInfo(
1936 Pool* pool,
1937 const VkBindBufferMemoryInfo* from,
1938 VkBindBufferMemoryInfo* to)
1939{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001940 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001941 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001942 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001943 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001944 if (pNext_size)
1945 {
1946 to->pNext = (const void*)pool->alloc(pNext_size);
1947 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1948 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001949}
1950
1951void deepcopy_VkBindImageMemoryInfo(
1952 Pool* pool,
1953 const VkBindImageMemoryInfo* from,
1954 VkBindImageMemoryInfo* to)
1955{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001956 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001957 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001958 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001959 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001960 if (pNext_size)
1961 {
1962 to->pNext = (const void*)pool->alloc(pNext_size);
1963 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1964 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001965}
1966
1967void deepcopy_VkPhysicalDevice16BitStorageFeatures(
1968 Pool* pool,
1969 const VkPhysicalDevice16BitStorageFeatures* from,
1970 VkPhysicalDevice16BitStorageFeatures* to)
1971{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001972 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001973 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001974 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001975 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001976 if (pNext_size)
1977 {
1978 to->pNext = (void*)pool->alloc(pNext_size);
1979 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1980 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001981}
1982
1983void deepcopy_VkMemoryDedicatedRequirements(
1984 Pool* pool,
1985 const VkMemoryDedicatedRequirements* from,
1986 VkMemoryDedicatedRequirements* to)
1987{
Lingfeng Yang36891c52018-11-09 14:18:35 -08001988 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08001989 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001990 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08001991 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08001992 if (pNext_size)
1993 {
1994 to->pNext = (void*)pool->alloc(pNext_size);
1995 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
1996 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08001997}
1998
1999void deepcopy_VkMemoryDedicatedAllocateInfo(
2000 Pool* pool,
2001 const VkMemoryDedicatedAllocateInfo* from,
2002 VkMemoryDedicatedAllocateInfo* to)
2003{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002004 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002005 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002006 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002007 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002008 if (pNext_size)
2009 {
2010 to->pNext = (const void*)pool->alloc(pNext_size);
2011 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2012 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002013}
2014
2015void deepcopy_VkMemoryAllocateFlagsInfo(
2016 Pool* pool,
2017 const VkMemoryAllocateFlagsInfo* from,
2018 VkMemoryAllocateFlagsInfo* to)
2019{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002020 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002021 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002022 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002023 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002024 if (pNext_size)
2025 {
2026 to->pNext = (const void*)pool->alloc(pNext_size);
2027 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2028 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002029}
2030
2031void deepcopy_VkDeviceGroupRenderPassBeginInfo(
2032 Pool* pool,
2033 const VkDeviceGroupRenderPassBeginInfo* from,
2034 VkDeviceGroupRenderPassBeginInfo* to)
2035{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002036 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002037 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002038 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002039 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002040 if (pNext_size)
2041 {
2042 to->pNext = (const void*)pool->alloc(pNext_size);
2043 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2044 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002045 to->pDeviceRenderAreas = nullptr;
2046 if (from->pDeviceRenderAreas)
2047 {
2048 to->pDeviceRenderAreas = (VkRect2D*)pool->alloc(from->deviceRenderAreaCount * sizeof(const VkRect2D));
2049 to->deviceRenderAreaCount = from->deviceRenderAreaCount;
2050 for (uint32_t i = 0; i < (uint32_t)from->deviceRenderAreaCount; ++i)
2051 {
2052 deepcopy_VkRect2D(pool, from->pDeviceRenderAreas + i, (VkRect2D*)(to->pDeviceRenderAreas + i));
2053 }
2054 }
2055}
2056
2057void deepcopy_VkDeviceGroupCommandBufferBeginInfo(
2058 Pool* pool,
2059 const VkDeviceGroupCommandBufferBeginInfo* from,
2060 VkDeviceGroupCommandBufferBeginInfo* to)
2061{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002062 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002063 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002064 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002065 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002066 if (pNext_size)
2067 {
2068 to->pNext = (const void*)pool->alloc(pNext_size);
2069 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2070 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002071}
2072
2073void deepcopy_VkDeviceGroupSubmitInfo(
2074 Pool* pool,
2075 const VkDeviceGroupSubmitInfo* from,
2076 VkDeviceGroupSubmitInfo* to)
2077{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002078 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002079 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002080 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002081 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002082 if (pNext_size)
2083 {
2084 to->pNext = (const void*)pool->alloc(pNext_size);
2085 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2086 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002087 to->pWaitSemaphoreDeviceIndices = nullptr;
2088 if (from->pWaitSemaphoreDeviceIndices)
2089 {
2090 to->pWaitSemaphoreDeviceIndices = (uint32_t*)pool->dupArray(from->pWaitSemaphoreDeviceIndices, from->waitSemaphoreCount * sizeof(const uint32_t));
2091 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002092 to->pCommandBufferDeviceMasks = nullptr;
2093 if (from->pCommandBufferDeviceMasks)
2094 {
2095 to->pCommandBufferDeviceMasks = (uint32_t*)pool->dupArray(from->pCommandBufferDeviceMasks, from->commandBufferCount * sizeof(const uint32_t));
2096 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002097 to->pSignalSemaphoreDeviceIndices = nullptr;
2098 if (from->pSignalSemaphoreDeviceIndices)
2099 {
2100 to->pSignalSemaphoreDeviceIndices = (uint32_t*)pool->dupArray(from->pSignalSemaphoreDeviceIndices, from->signalSemaphoreCount * sizeof(const uint32_t));
2101 }
2102}
2103
2104void deepcopy_VkDeviceGroupBindSparseInfo(
2105 Pool* pool,
2106 const VkDeviceGroupBindSparseInfo* from,
2107 VkDeviceGroupBindSparseInfo* to)
2108{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002109 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002110 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002111 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002112 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002113 if (pNext_size)
2114 {
2115 to->pNext = (const void*)pool->alloc(pNext_size);
2116 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2117 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002118}
2119
2120void deepcopy_VkBindBufferMemoryDeviceGroupInfo(
2121 Pool* pool,
2122 const VkBindBufferMemoryDeviceGroupInfo* from,
2123 VkBindBufferMemoryDeviceGroupInfo* to)
2124{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002125 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002126 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002127 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002128 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002129 if (pNext_size)
2130 {
2131 to->pNext = (const void*)pool->alloc(pNext_size);
2132 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2133 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002134 to->pDeviceIndices = nullptr;
2135 if (from->pDeviceIndices)
2136 {
2137 to->pDeviceIndices = (uint32_t*)pool->dupArray(from->pDeviceIndices, from->deviceIndexCount * sizeof(const uint32_t));
2138 }
2139}
2140
2141void deepcopy_VkBindImageMemoryDeviceGroupInfo(
2142 Pool* pool,
2143 const VkBindImageMemoryDeviceGroupInfo* from,
2144 VkBindImageMemoryDeviceGroupInfo* to)
2145{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002146 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002147 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002148 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002149 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002150 if (pNext_size)
2151 {
2152 to->pNext = (const void*)pool->alloc(pNext_size);
2153 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2154 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002155 to->pDeviceIndices = nullptr;
2156 if (from->pDeviceIndices)
2157 {
2158 to->pDeviceIndices = (uint32_t*)pool->dupArray(from->pDeviceIndices, from->deviceIndexCount * sizeof(const uint32_t));
2159 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002160 to->pSplitInstanceBindRegions = nullptr;
2161 if (from->pSplitInstanceBindRegions)
2162 {
2163 to->pSplitInstanceBindRegions = (VkRect2D*)pool->alloc(from->splitInstanceBindRegionCount * sizeof(const VkRect2D));
2164 to->splitInstanceBindRegionCount = from->splitInstanceBindRegionCount;
2165 for (uint32_t i = 0; i < (uint32_t)from->splitInstanceBindRegionCount; ++i)
2166 {
2167 deepcopy_VkRect2D(pool, from->pSplitInstanceBindRegions + i, (VkRect2D*)(to->pSplitInstanceBindRegions + i));
2168 }
2169 }
2170}
2171
2172void deepcopy_VkPhysicalDeviceGroupProperties(
2173 Pool* pool,
2174 const VkPhysicalDeviceGroupProperties* from,
2175 VkPhysicalDeviceGroupProperties* to)
2176{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002177 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002178 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002179 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002180 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002181 if (pNext_size)
2182 {
2183 to->pNext = (void*)pool->alloc(pNext_size);
2184 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2185 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002186 memcpy(to->physicalDevices, from->physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002187}
2188
2189void deepcopy_VkDeviceGroupDeviceCreateInfo(
2190 Pool* pool,
2191 const VkDeviceGroupDeviceCreateInfo* from,
2192 VkDeviceGroupDeviceCreateInfo* to)
2193{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002194 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002195 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002196 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002197 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002198 if (pNext_size)
2199 {
2200 to->pNext = (const void*)pool->alloc(pNext_size);
2201 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2202 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002203 to->pPhysicalDevices = nullptr;
2204 if (from->pPhysicalDevices)
2205 {
2206 to->pPhysicalDevices = (VkPhysicalDevice*)pool->dupArray(from->pPhysicalDevices, from->physicalDeviceCount * sizeof(const VkPhysicalDevice));
2207 }
2208}
2209
2210void deepcopy_VkBufferMemoryRequirementsInfo2(
2211 Pool* pool,
2212 const VkBufferMemoryRequirementsInfo2* from,
2213 VkBufferMemoryRequirementsInfo2* to)
2214{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002215 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002216 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002217 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002218 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002219 if (pNext_size)
2220 {
2221 to->pNext = (const void*)pool->alloc(pNext_size);
2222 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2223 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002224}
2225
2226void deepcopy_VkImageMemoryRequirementsInfo2(
2227 Pool* pool,
2228 const VkImageMemoryRequirementsInfo2* from,
2229 VkImageMemoryRequirementsInfo2* to)
2230{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002231 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002232 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002233 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002234 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002235 if (pNext_size)
2236 {
2237 to->pNext = (const void*)pool->alloc(pNext_size);
2238 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2239 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002240}
2241
2242void deepcopy_VkImageSparseMemoryRequirementsInfo2(
2243 Pool* pool,
2244 const VkImageSparseMemoryRequirementsInfo2* from,
2245 VkImageSparseMemoryRequirementsInfo2* to)
2246{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002247 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002248 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002249 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002250 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002251 if (pNext_size)
2252 {
2253 to->pNext = (const void*)pool->alloc(pNext_size);
2254 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2255 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002256}
2257
2258void deepcopy_VkMemoryRequirements2(
2259 Pool* pool,
2260 const VkMemoryRequirements2* from,
2261 VkMemoryRequirements2* to)
2262{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002263 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002264 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002265 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002266 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002267 if (pNext_size)
2268 {
2269 to->pNext = (void*)pool->alloc(pNext_size);
2270 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2271 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002272 deepcopy_VkMemoryRequirements(pool, &from->memoryRequirements, (VkMemoryRequirements*)(&to->memoryRequirements));
2273}
2274
2275void deepcopy_VkSparseImageMemoryRequirements2(
2276 Pool* pool,
2277 const VkSparseImageMemoryRequirements2* from,
2278 VkSparseImageMemoryRequirements2* to)
2279{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002280 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002281 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002282 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002283 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002284 if (pNext_size)
2285 {
2286 to->pNext = (void*)pool->alloc(pNext_size);
2287 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2288 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002289 deepcopy_VkSparseImageMemoryRequirements(pool, &from->memoryRequirements, (VkSparseImageMemoryRequirements*)(&to->memoryRequirements));
2290}
2291
2292void deepcopy_VkPhysicalDeviceFeatures2(
2293 Pool* pool,
2294 const VkPhysicalDeviceFeatures2* from,
2295 VkPhysicalDeviceFeatures2* to)
2296{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002297 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002298 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002299 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002300 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002301 if (pNext_size)
2302 {
2303 to->pNext = (void*)pool->alloc(pNext_size);
2304 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2305 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002306 deepcopy_VkPhysicalDeviceFeatures(pool, &from->features, (VkPhysicalDeviceFeatures*)(&to->features));
2307}
2308
2309void deepcopy_VkPhysicalDeviceProperties2(
2310 Pool* pool,
2311 const VkPhysicalDeviceProperties2* from,
2312 VkPhysicalDeviceProperties2* to)
2313{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002314 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002315 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002316 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002317 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002318 if (pNext_size)
2319 {
2320 to->pNext = (void*)pool->alloc(pNext_size);
2321 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2322 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002323 deepcopy_VkPhysicalDeviceProperties(pool, &from->properties, (VkPhysicalDeviceProperties*)(&to->properties));
2324}
2325
2326void deepcopy_VkFormatProperties2(
2327 Pool* pool,
2328 const VkFormatProperties2* from,
2329 VkFormatProperties2* to)
2330{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002331 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002332 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002333 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002334 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002335 if (pNext_size)
2336 {
2337 to->pNext = (void*)pool->alloc(pNext_size);
2338 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2339 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002340 deepcopy_VkFormatProperties(pool, &from->formatProperties, (VkFormatProperties*)(&to->formatProperties));
2341}
2342
2343void deepcopy_VkImageFormatProperties2(
2344 Pool* pool,
2345 const VkImageFormatProperties2* from,
2346 VkImageFormatProperties2* to)
2347{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002348 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002349 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002350 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002351 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002352 if (pNext_size)
2353 {
2354 to->pNext = (void*)pool->alloc(pNext_size);
2355 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2356 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002357 deepcopy_VkImageFormatProperties(pool, &from->imageFormatProperties, (VkImageFormatProperties*)(&to->imageFormatProperties));
2358}
2359
2360void deepcopy_VkPhysicalDeviceImageFormatInfo2(
2361 Pool* pool,
2362 const VkPhysicalDeviceImageFormatInfo2* from,
2363 VkPhysicalDeviceImageFormatInfo2* to)
2364{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002365 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002366 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002367 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002368 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002369 if (pNext_size)
2370 {
2371 to->pNext = (const void*)pool->alloc(pNext_size);
2372 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2373 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002374}
2375
2376void deepcopy_VkQueueFamilyProperties2(
2377 Pool* pool,
2378 const VkQueueFamilyProperties2* from,
2379 VkQueueFamilyProperties2* to)
2380{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002381 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002382 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002383 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002384 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002385 if (pNext_size)
2386 {
2387 to->pNext = (void*)pool->alloc(pNext_size);
2388 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2389 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002390 deepcopy_VkQueueFamilyProperties(pool, &from->queueFamilyProperties, (VkQueueFamilyProperties*)(&to->queueFamilyProperties));
2391}
2392
2393void deepcopy_VkPhysicalDeviceMemoryProperties2(
2394 Pool* pool,
2395 const VkPhysicalDeviceMemoryProperties2* from,
2396 VkPhysicalDeviceMemoryProperties2* to)
2397{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002398 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002399 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002400 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002401 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002402 if (pNext_size)
2403 {
2404 to->pNext = (void*)pool->alloc(pNext_size);
2405 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2406 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002407 deepcopy_VkPhysicalDeviceMemoryProperties(pool, &from->memoryProperties, (VkPhysicalDeviceMemoryProperties*)(&to->memoryProperties));
2408}
2409
2410void deepcopy_VkSparseImageFormatProperties2(
2411 Pool* pool,
2412 const VkSparseImageFormatProperties2* from,
2413 VkSparseImageFormatProperties2* to)
2414{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002415 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002416 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002417 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002418 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002419 if (pNext_size)
2420 {
2421 to->pNext = (void*)pool->alloc(pNext_size);
2422 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2423 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002424 deepcopy_VkSparseImageFormatProperties(pool, &from->properties, (VkSparseImageFormatProperties*)(&to->properties));
2425}
2426
2427void deepcopy_VkPhysicalDeviceSparseImageFormatInfo2(
2428 Pool* pool,
2429 const VkPhysicalDeviceSparseImageFormatInfo2* from,
2430 VkPhysicalDeviceSparseImageFormatInfo2* to)
2431{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002432 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002433 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002434 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002435 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002436 if (pNext_size)
2437 {
2438 to->pNext = (const void*)pool->alloc(pNext_size);
2439 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2440 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002441}
2442
2443void deepcopy_VkPhysicalDevicePointClippingProperties(
2444 Pool* pool,
2445 const VkPhysicalDevicePointClippingProperties* from,
2446 VkPhysicalDevicePointClippingProperties* to)
2447{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002448 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002449 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002450 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002451 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002452 if (pNext_size)
2453 {
2454 to->pNext = (void*)pool->alloc(pNext_size);
2455 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2456 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002457}
2458
2459void deepcopy_VkInputAttachmentAspectReference(
2460 Pool* pool,
2461 const VkInputAttachmentAspectReference* from,
2462 VkInputAttachmentAspectReference* to)
2463{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002464 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002465 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002466}
2467
2468void deepcopy_VkRenderPassInputAttachmentAspectCreateInfo(
2469 Pool* pool,
2470 const VkRenderPassInputAttachmentAspectCreateInfo* from,
2471 VkRenderPassInputAttachmentAspectCreateInfo* to)
2472{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002473 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002474 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002475 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002476 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002477 if (pNext_size)
2478 {
2479 to->pNext = (const void*)pool->alloc(pNext_size);
2480 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2481 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002482 to->pAspectReferences = nullptr;
2483 if (from->pAspectReferences)
2484 {
2485 to->pAspectReferences = (VkInputAttachmentAspectReference*)pool->alloc(from->aspectReferenceCount * sizeof(const VkInputAttachmentAspectReference));
2486 to->aspectReferenceCount = from->aspectReferenceCount;
2487 for (uint32_t i = 0; i < (uint32_t)from->aspectReferenceCount; ++i)
2488 {
2489 deepcopy_VkInputAttachmentAspectReference(pool, from->pAspectReferences + i, (VkInputAttachmentAspectReference*)(to->pAspectReferences + i));
2490 }
2491 }
2492}
2493
2494void deepcopy_VkImageViewUsageCreateInfo(
2495 Pool* pool,
2496 const VkImageViewUsageCreateInfo* from,
2497 VkImageViewUsageCreateInfo* to)
2498{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002499 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002500 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002501 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002502 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002503 if (pNext_size)
2504 {
2505 to->pNext = (const void*)pool->alloc(pNext_size);
2506 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2507 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002508}
2509
2510void deepcopy_VkPipelineTessellationDomainOriginStateCreateInfo(
2511 Pool* pool,
2512 const VkPipelineTessellationDomainOriginStateCreateInfo* from,
2513 VkPipelineTessellationDomainOriginStateCreateInfo* to)
2514{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002515 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002516 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002517 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002518 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002519 if (pNext_size)
2520 {
2521 to->pNext = (const void*)pool->alloc(pNext_size);
2522 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2523 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002524}
2525
2526void deepcopy_VkRenderPassMultiviewCreateInfo(
2527 Pool* pool,
2528 const VkRenderPassMultiviewCreateInfo* from,
2529 VkRenderPassMultiviewCreateInfo* to)
2530{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002531 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002532 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002533 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002534 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002535 if (pNext_size)
2536 {
2537 to->pNext = (const void*)pool->alloc(pNext_size);
2538 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2539 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002540 to->pViewMasks = nullptr;
2541 if (from->pViewMasks)
2542 {
2543 to->pViewMasks = (uint32_t*)pool->dupArray(from->pViewMasks, from->subpassCount * sizeof(const uint32_t));
2544 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002545 to->pViewOffsets = nullptr;
2546 if (from->pViewOffsets)
2547 {
2548 to->pViewOffsets = (int32_t*)pool->dupArray(from->pViewOffsets, from->dependencyCount * sizeof(const int32_t));
2549 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002550 to->pCorrelationMasks = nullptr;
2551 if (from->pCorrelationMasks)
2552 {
2553 to->pCorrelationMasks = (uint32_t*)pool->dupArray(from->pCorrelationMasks, from->correlationMaskCount * sizeof(const uint32_t));
2554 }
2555}
2556
2557void deepcopy_VkPhysicalDeviceMultiviewFeatures(
2558 Pool* pool,
2559 const VkPhysicalDeviceMultiviewFeatures* from,
2560 VkPhysicalDeviceMultiviewFeatures* to)
2561{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002562 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002563 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002564 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002565 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002566 if (pNext_size)
2567 {
2568 to->pNext = (void*)pool->alloc(pNext_size);
2569 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2570 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002571}
2572
2573void deepcopy_VkPhysicalDeviceMultiviewProperties(
2574 Pool* pool,
2575 const VkPhysicalDeviceMultiviewProperties* from,
2576 VkPhysicalDeviceMultiviewProperties* to)
2577{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002578 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002579 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002580 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002581 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002582 if (pNext_size)
2583 {
2584 to->pNext = (void*)pool->alloc(pNext_size);
2585 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2586 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002587}
2588
2589void deepcopy_VkPhysicalDeviceVariablePointerFeatures(
2590 Pool* pool,
2591 const VkPhysicalDeviceVariablePointerFeatures* from,
2592 VkPhysicalDeviceVariablePointerFeatures* to)
2593{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002594 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002595 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002596 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002597 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002598 if (pNext_size)
2599 {
2600 to->pNext = (void*)pool->alloc(pNext_size);
2601 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2602 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002603}
2604
2605void deepcopy_VkPhysicalDeviceProtectedMemoryFeatures(
2606 Pool* pool,
2607 const VkPhysicalDeviceProtectedMemoryFeatures* from,
2608 VkPhysicalDeviceProtectedMemoryFeatures* to)
2609{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002610 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002611 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002612 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002613 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002614 if (pNext_size)
2615 {
2616 to->pNext = (void*)pool->alloc(pNext_size);
2617 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2618 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002619}
2620
2621void deepcopy_VkPhysicalDeviceProtectedMemoryProperties(
2622 Pool* pool,
2623 const VkPhysicalDeviceProtectedMemoryProperties* from,
2624 VkPhysicalDeviceProtectedMemoryProperties* to)
2625{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002626 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002627 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002628 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002629 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002630 if (pNext_size)
2631 {
2632 to->pNext = (void*)pool->alloc(pNext_size);
2633 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2634 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002635}
2636
2637void deepcopy_VkDeviceQueueInfo2(
2638 Pool* pool,
2639 const VkDeviceQueueInfo2* from,
2640 VkDeviceQueueInfo2* to)
2641{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002642 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002643 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002644 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002645 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002646 if (pNext_size)
2647 {
2648 to->pNext = (const void*)pool->alloc(pNext_size);
2649 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2650 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002651}
2652
2653void deepcopy_VkProtectedSubmitInfo(
2654 Pool* pool,
2655 const VkProtectedSubmitInfo* from,
2656 VkProtectedSubmitInfo* to)
2657{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002658 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002659 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002660 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002661 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002662 if (pNext_size)
2663 {
2664 to->pNext = (const void*)pool->alloc(pNext_size);
2665 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2666 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002667}
2668
2669void deepcopy_VkSamplerYcbcrConversionCreateInfo(
2670 Pool* pool,
2671 const VkSamplerYcbcrConversionCreateInfo* from,
2672 VkSamplerYcbcrConversionCreateInfo* to)
2673{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002674 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002675 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002676 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002677 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002678 if (pNext_size)
2679 {
2680 to->pNext = (const void*)pool->alloc(pNext_size);
2681 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2682 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002683 deepcopy_VkComponentMapping(pool, &from->components, (VkComponentMapping*)(&to->components));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002684}
2685
2686void deepcopy_VkSamplerYcbcrConversionInfo(
2687 Pool* pool,
2688 const VkSamplerYcbcrConversionInfo* from,
2689 VkSamplerYcbcrConversionInfo* to)
2690{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002691 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002692 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002693 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002694 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002695 if (pNext_size)
2696 {
2697 to->pNext = (const void*)pool->alloc(pNext_size);
2698 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2699 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002700}
2701
2702void deepcopy_VkBindImagePlaneMemoryInfo(
2703 Pool* pool,
2704 const VkBindImagePlaneMemoryInfo* from,
2705 VkBindImagePlaneMemoryInfo* to)
2706{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002707 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002708 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002709 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002710 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002711 if (pNext_size)
2712 {
2713 to->pNext = (const void*)pool->alloc(pNext_size);
2714 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2715 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002716}
2717
2718void deepcopy_VkImagePlaneMemoryRequirementsInfo(
2719 Pool* pool,
2720 const VkImagePlaneMemoryRequirementsInfo* from,
2721 VkImagePlaneMemoryRequirementsInfo* to)
2722{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002723 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002724 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002725 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002726 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002727 if (pNext_size)
2728 {
2729 to->pNext = (const void*)pool->alloc(pNext_size);
2730 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2731 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002732}
2733
2734void deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
2735 Pool* pool,
2736 const VkPhysicalDeviceSamplerYcbcrConversionFeatures* from,
2737 VkPhysicalDeviceSamplerYcbcrConversionFeatures* to)
2738{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002739 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002740 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002741 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002742 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002743 if (pNext_size)
2744 {
2745 to->pNext = (void*)pool->alloc(pNext_size);
2746 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2747 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002748}
2749
2750void deepcopy_VkSamplerYcbcrConversionImageFormatProperties(
2751 Pool* pool,
2752 const VkSamplerYcbcrConversionImageFormatProperties* from,
2753 VkSamplerYcbcrConversionImageFormatProperties* to)
2754{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002755 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002756 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002757 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002758 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002759 if (pNext_size)
2760 {
2761 to->pNext = (void*)pool->alloc(pNext_size);
2762 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2763 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002764}
2765
2766void deepcopy_VkDescriptorUpdateTemplateEntry(
2767 Pool* pool,
2768 const VkDescriptorUpdateTemplateEntry* from,
2769 VkDescriptorUpdateTemplateEntry* to)
2770{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002771 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002772 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002773}
2774
2775void deepcopy_VkDescriptorUpdateTemplateCreateInfo(
2776 Pool* pool,
2777 const VkDescriptorUpdateTemplateCreateInfo* from,
2778 VkDescriptorUpdateTemplateCreateInfo* to)
2779{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002780 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002781 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002782 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002783 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002784 if (pNext_size)
2785 {
2786 to->pNext = (void*)pool->alloc(pNext_size);
2787 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2788 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002789 to->pDescriptorUpdateEntries = nullptr;
2790 if (from->pDescriptorUpdateEntries)
2791 {
2792 to->pDescriptorUpdateEntries = (VkDescriptorUpdateTemplateEntry*)pool->alloc(from->descriptorUpdateEntryCount * sizeof(const VkDescriptorUpdateTemplateEntry));
2793 to->descriptorUpdateEntryCount = from->descriptorUpdateEntryCount;
2794 for (uint32_t i = 0; i < (uint32_t)from->descriptorUpdateEntryCount; ++i)
2795 {
2796 deepcopy_VkDescriptorUpdateTemplateEntry(pool, from->pDescriptorUpdateEntries + i, (VkDescriptorUpdateTemplateEntry*)(to->pDescriptorUpdateEntries + i));
2797 }
2798 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002799}
2800
2801void deepcopy_VkExternalMemoryProperties(
2802 Pool* pool,
2803 const VkExternalMemoryProperties* from,
2804 VkExternalMemoryProperties* to)
2805{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002806 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002807 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002808}
2809
2810void deepcopy_VkPhysicalDeviceExternalImageFormatInfo(
2811 Pool* pool,
2812 const VkPhysicalDeviceExternalImageFormatInfo* from,
2813 VkPhysicalDeviceExternalImageFormatInfo* to)
2814{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002815 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002816 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002817 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002818 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002819 if (pNext_size)
2820 {
2821 to->pNext = (const void*)pool->alloc(pNext_size);
2822 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2823 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002824}
2825
2826void deepcopy_VkExternalImageFormatProperties(
2827 Pool* pool,
2828 const VkExternalImageFormatProperties* from,
2829 VkExternalImageFormatProperties* to)
2830{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002831 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002832 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002833 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002834 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002835 if (pNext_size)
2836 {
2837 to->pNext = (void*)pool->alloc(pNext_size);
2838 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2839 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002840 deepcopy_VkExternalMemoryProperties(pool, &from->externalMemoryProperties, (VkExternalMemoryProperties*)(&to->externalMemoryProperties));
2841}
2842
2843void deepcopy_VkPhysicalDeviceExternalBufferInfo(
2844 Pool* pool,
2845 const VkPhysicalDeviceExternalBufferInfo* from,
2846 VkPhysicalDeviceExternalBufferInfo* to)
2847{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002848 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002849 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002850 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002851 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002852 if (pNext_size)
2853 {
2854 to->pNext = (const void*)pool->alloc(pNext_size);
2855 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2856 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002857}
2858
2859void deepcopy_VkExternalBufferProperties(
2860 Pool* pool,
2861 const VkExternalBufferProperties* from,
2862 VkExternalBufferProperties* to)
2863{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002864 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002865 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002866 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002867 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002868 if (pNext_size)
2869 {
2870 to->pNext = (void*)pool->alloc(pNext_size);
2871 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2872 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002873 deepcopy_VkExternalMemoryProperties(pool, &from->externalMemoryProperties, (VkExternalMemoryProperties*)(&to->externalMemoryProperties));
2874}
2875
2876void deepcopy_VkPhysicalDeviceIDProperties(
2877 Pool* pool,
2878 const VkPhysicalDeviceIDProperties* from,
2879 VkPhysicalDeviceIDProperties* to)
2880{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002881 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002882 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002883 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002884 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002885 if (pNext_size)
2886 {
2887 to->pNext = (void*)pool->alloc(pNext_size);
2888 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2889 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002890 memcpy(to->deviceUUID, from->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
2891 memcpy(to->driverUUID, from->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
2892 memcpy(to->deviceLUID, from->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002893}
2894
2895void deepcopy_VkExternalMemoryImageCreateInfo(
2896 Pool* pool,
2897 const VkExternalMemoryImageCreateInfo* from,
2898 VkExternalMemoryImageCreateInfo* to)
2899{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002900 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002901 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002902 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002903 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002904 if (pNext_size)
2905 {
2906 to->pNext = (const void*)pool->alloc(pNext_size);
2907 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2908 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002909}
2910
2911void deepcopy_VkExternalMemoryBufferCreateInfo(
2912 Pool* pool,
2913 const VkExternalMemoryBufferCreateInfo* from,
2914 VkExternalMemoryBufferCreateInfo* to)
2915{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002916 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002917 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002918 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002919 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002920 if (pNext_size)
2921 {
2922 to->pNext = (const void*)pool->alloc(pNext_size);
2923 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2924 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002925}
2926
2927void deepcopy_VkExportMemoryAllocateInfo(
2928 Pool* pool,
2929 const VkExportMemoryAllocateInfo* from,
2930 VkExportMemoryAllocateInfo* to)
2931{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002932 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002933 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002934 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002935 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002936 if (pNext_size)
2937 {
2938 to->pNext = (const void*)pool->alloc(pNext_size);
2939 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2940 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002941}
2942
2943void deepcopy_VkPhysicalDeviceExternalFenceInfo(
2944 Pool* pool,
2945 const VkPhysicalDeviceExternalFenceInfo* from,
2946 VkPhysicalDeviceExternalFenceInfo* to)
2947{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002948 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002949 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002950 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002951 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002952 if (pNext_size)
2953 {
2954 to->pNext = (const void*)pool->alloc(pNext_size);
2955 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2956 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002957}
2958
2959void deepcopy_VkExternalFenceProperties(
2960 Pool* pool,
2961 const VkExternalFenceProperties* from,
2962 VkExternalFenceProperties* to)
2963{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002964 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002965 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002966 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002967 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002968 if (pNext_size)
2969 {
2970 to->pNext = (void*)pool->alloc(pNext_size);
2971 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2972 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002973}
2974
2975void deepcopy_VkExportFenceCreateInfo(
2976 Pool* pool,
2977 const VkExportFenceCreateInfo* from,
2978 VkExportFenceCreateInfo* to)
2979{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002980 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002981 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002982 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002983 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002984 if (pNext_size)
2985 {
2986 to->pNext = (const void*)pool->alloc(pNext_size);
2987 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
2988 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08002989}
2990
2991void deepcopy_VkExportSemaphoreCreateInfo(
2992 Pool* pool,
2993 const VkExportSemaphoreCreateInfo* from,
2994 VkExportSemaphoreCreateInfo* to)
2995{
Lingfeng Yang36891c52018-11-09 14:18:35 -08002996 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08002997 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08002998 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08002999 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003000 if (pNext_size)
3001 {
3002 to->pNext = (const void*)pool->alloc(pNext_size);
3003 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3004 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003005}
3006
3007void deepcopy_VkPhysicalDeviceExternalSemaphoreInfo(
3008 Pool* pool,
3009 const VkPhysicalDeviceExternalSemaphoreInfo* from,
3010 VkPhysicalDeviceExternalSemaphoreInfo* to)
3011{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003012 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003013 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003014 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003015 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003016 if (pNext_size)
3017 {
3018 to->pNext = (const void*)pool->alloc(pNext_size);
3019 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3020 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003021}
3022
3023void deepcopy_VkExternalSemaphoreProperties(
3024 Pool* pool,
3025 const VkExternalSemaphoreProperties* from,
3026 VkExternalSemaphoreProperties* to)
3027{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003028 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003029 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003030 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003031 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003032 if (pNext_size)
3033 {
3034 to->pNext = (void*)pool->alloc(pNext_size);
3035 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3036 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003037}
3038
3039void deepcopy_VkPhysicalDeviceMaintenance3Properties(
3040 Pool* pool,
3041 const VkPhysicalDeviceMaintenance3Properties* from,
3042 VkPhysicalDeviceMaintenance3Properties* to)
3043{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003044 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003045 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003046 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003047 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003048 if (pNext_size)
3049 {
3050 to->pNext = (void*)pool->alloc(pNext_size);
3051 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3052 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003053}
3054
3055void deepcopy_VkDescriptorSetLayoutSupport(
3056 Pool* pool,
3057 const VkDescriptorSetLayoutSupport* from,
3058 VkDescriptorSetLayoutSupport* to)
3059{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003060 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003061 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003062 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003063 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003064 if (pNext_size)
3065 {
3066 to->pNext = (void*)pool->alloc(pNext_size);
3067 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3068 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003069}
3070
3071void deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures(
3072 Pool* pool,
3073 const VkPhysicalDeviceShaderDrawParameterFeatures* from,
3074 VkPhysicalDeviceShaderDrawParameterFeatures* to)
3075{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003076 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003077 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003078 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003079 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003080 if (pNext_size)
3081 {
3082 to->pNext = (void*)pool->alloc(pNext_size);
3083 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3084 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003085}
3086
3087#endif
3088#ifdef VK_KHR_surface
3089void deepcopy_VkSurfaceCapabilitiesKHR(
3090 Pool* pool,
3091 const VkSurfaceCapabilitiesKHR* from,
3092 VkSurfaceCapabilitiesKHR* to)
3093{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003094 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003095 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003096 deepcopy_VkExtent2D(pool, &from->currentExtent, (VkExtent2D*)(&to->currentExtent));
3097 deepcopy_VkExtent2D(pool, &from->minImageExtent, (VkExtent2D*)(&to->minImageExtent));
3098 deepcopy_VkExtent2D(pool, &from->maxImageExtent, (VkExtent2D*)(&to->maxImageExtent));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003099}
3100
3101void deepcopy_VkSurfaceFormatKHR(
3102 Pool* pool,
3103 const VkSurfaceFormatKHR* from,
3104 VkSurfaceFormatKHR* to)
3105{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003106 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003107 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003108}
3109
3110#endif
3111#ifdef VK_KHR_swapchain
3112void deepcopy_VkSwapchainCreateInfoKHR(
3113 Pool* pool,
3114 const VkSwapchainCreateInfoKHR* from,
3115 VkSwapchainCreateInfoKHR* to)
3116{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003117 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003118 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003119 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003120 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003121 if (pNext_size)
3122 {
3123 to->pNext = (const void*)pool->alloc(pNext_size);
3124 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3125 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003126 deepcopy_VkExtent2D(pool, &from->imageExtent, (VkExtent2D*)(&to->imageExtent));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003127 to->pQueueFamilyIndices = nullptr;
3128 if (from->pQueueFamilyIndices)
3129 {
3130 to->pQueueFamilyIndices = (uint32_t*)pool->dupArray(from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
3131 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003132}
3133
3134void deepcopy_VkPresentInfoKHR(
3135 Pool* pool,
3136 const VkPresentInfoKHR* from,
3137 VkPresentInfoKHR* to)
3138{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003139 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003140 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003141 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003142 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003143 if (pNext_size)
3144 {
3145 to->pNext = (const void*)pool->alloc(pNext_size);
3146 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3147 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003148 to->pWaitSemaphores = nullptr;
3149 if (from->pWaitSemaphores)
3150 {
3151 to->pWaitSemaphores = (VkSemaphore*)pool->dupArray(from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
3152 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003153 to->pSwapchains = nullptr;
3154 if (from->pSwapchains)
3155 {
3156 to->pSwapchains = (VkSwapchainKHR*)pool->dupArray(from->pSwapchains, from->swapchainCount * sizeof(const VkSwapchainKHR));
3157 }
3158 to->pImageIndices = nullptr;
3159 if (from->pImageIndices)
3160 {
3161 to->pImageIndices = (uint32_t*)pool->dupArray(from->pImageIndices, from->swapchainCount * sizeof(const uint32_t));
3162 }
3163 to->pResults = nullptr;
3164 if (from->pResults)
3165 {
3166 to->pResults = (VkResult*)pool->dupArray(from->pResults, from->swapchainCount * sizeof(VkResult));
3167 }
3168}
3169
3170void deepcopy_VkImageSwapchainCreateInfoKHR(
3171 Pool* pool,
3172 const VkImageSwapchainCreateInfoKHR* from,
3173 VkImageSwapchainCreateInfoKHR* to)
3174{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003175 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003176 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003177 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003178 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003179 if (pNext_size)
3180 {
3181 to->pNext = (const void*)pool->alloc(pNext_size);
3182 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3183 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003184}
3185
3186void deepcopy_VkBindImageMemorySwapchainInfoKHR(
3187 Pool* pool,
3188 const VkBindImageMemorySwapchainInfoKHR* from,
3189 VkBindImageMemorySwapchainInfoKHR* to)
3190{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003191 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003192 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003193 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003194 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003195 if (pNext_size)
3196 {
3197 to->pNext = (const void*)pool->alloc(pNext_size);
3198 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3199 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003200}
3201
3202void deepcopy_VkAcquireNextImageInfoKHR(
3203 Pool* pool,
3204 const VkAcquireNextImageInfoKHR* from,
3205 VkAcquireNextImageInfoKHR* to)
3206{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003207 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003208 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003209 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003210 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003211 if (pNext_size)
3212 {
3213 to->pNext = (const void*)pool->alloc(pNext_size);
3214 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3215 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003216}
3217
3218void deepcopy_VkDeviceGroupPresentCapabilitiesKHR(
3219 Pool* pool,
3220 const VkDeviceGroupPresentCapabilitiesKHR* from,
3221 VkDeviceGroupPresentCapabilitiesKHR* to)
3222{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003223 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003224 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003225 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003226 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003227 if (pNext_size)
3228 {
3229 to->pNext = (const void*)pool->alloc(pNext_size);
3230 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3231 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003232 memcpy(to->presentMask, from->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003233}
3234
3235void deepcopy_VkDeviceGroupPresentInfoKHR(
3236 Pool* pool,
3237 const VkDeviceGroupPresentInfoKHR* from,
3238 VkDeviceGroupPresentInfoKHR* to)
3239{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003240 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003241 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003242 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003243 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003244 if (pNext_size)
3245 {
3246 to->pNext = (const void*)pool->alloc(pNext_size);
3247 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3248 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003249 to->pDeviceMasks = nullptr;
3250 if (from->pDeviceMasks)
3251 {
3252 to->pDeviceMasks = (uint32_t*)pool->dupArray(from->pDeviceMasks, from->swapchainCount * sizeof(const uint32_t));
3253 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003254}
3255
3256void deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(
3257 Pool* pool,
3258 const VkDeviceGroupSwapchainCreateInfoKHR* from,
3259 VkDeviceGroupSwapchainCreateInfoKHR* to)
3260{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003261 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003262 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003263 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003264 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003265 if (pNext_size)
3266 {
3267 to->pNext = (const void*)pool->alloc(pNext_size);
3268 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3269 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003270}
3271
3272#endif
3273#ifdef VK_KHR_display
3274void deepcopy_VkDisplayPropertiesKHR(
3275 Pool* pool,
3276 const VkDisplayPropertiesKHR* from,
3277 VkDisplayPropertiesKHR* to)
3278{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003279 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003280 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003281 to->displayName = nullptr;
3282 if (from->displayName)
3283 {
3284 to->displayName = pool->strDup(from->displayName);
3285 }
3286 deepcopy_VkExtent2D(pool, &from->physicalDimensions, (VkExtent2D*)(&to->physicalDimensions));
3287 deepcopy_VkExtent2D(pool, &from->physicalResolution, (VkExtent2D*)(&to->physicalResolution));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003288}
3289
3290void deepcopy_VkDisplayModeParametersKHR(
3291 Pool* pool,
3292 const VkDisplayModeParametersKHR* from,
3293 VkDisplayModeParametersKHR* to)
3294{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003295 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003296 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003297 deepcopy_VkExtent2D(pool, &from->visibleRegion, (VkExtent2D*)(&to->visibleRegion));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003298}
3299
3300void deepcopy_VkDisplayModePropertiesKHR(
3301 Pool* pool,
3302 const VkDisplayModePropertiesKHR* from,
3303 VkDisplayModePropertiesKHR* to)
3304{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003305 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003306 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003307 deepcopy_VkDisplayModeParametersKHR(pool, &from->parameters, (VkDisplayModeParametersKHR*)(&to->parameters));
3308}
3309
3310void deepcopy_VkDisplayModeCreateInfoKHR(
3311 Pool* pool,
3312 const VkDisplayModeCreateInfoKHR* from,
3313 VkDisplayModeCreateInfoKHR* to)
3314{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003315 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003316 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003317 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003318 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003319 if (pNext_size)
3320 {
3321 to->pNext = (const void*)pool->alloc(pNext_size);
3322 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3323 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003324 deepcopy_VkDisplayModeParametersKHR(pool, &from->parameters, (VkDisplayModeParametersKHR*)(&to->parameters));
3325}
3326
3327void deepcopy_VkDisplayPlaneCapabilitiesKHR(
3328 Pool* pool,
3329 const VkDisplayPlaneCapabilitiesKHR* from,
3330 VkDisplayPlaneCapabilitiesKHR* to)
3331{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003332 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003333 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003334 deepcopy_VkOffset2D(pool, &from->minSrcPosition, (VkOffset2D*)(&to->minSrcPosition));
3335 deepcopy_VkOffset2D(pool, &from->maxSrcPosition, (VkOffset2D*)(&to->maxSrcPosition));
3336 deepcopy_VkExtent2D(pool, &from->minSrcExtent, (VkExtent2D*)(&to->minSrcExtent));
3337 deepcopy_VkExtent2D(pool, &from->maxSrcExtent, (VkExtent2D*)(&to->maxSrcExtent));
3338 deepcopy_VkOffset2D(pool, &from->minDstPosition, (VkOffset2D*)(&to->minDstPosition));
3339 deepcopy_VkOffset2D(pool, &from->maxDstPosition, (VkOffset2D*)(&to->maxDstPosition));
3340 deepcopy_VkExtent2D(pool, &from->minDstExtent, (VkExtent2D*)(&to->minDstExtent));
3341 deepcopy_VkExtent2D(pool, &from->maxDstExtent, (VkExtent2D*)(&to->maxDstExtent));
3342}
3343
3344void deepcopy_VkDisplayPlanePropertiesKHR(
3345 Pool* pool,
3346 const VkDisplayPlanePropertiesKHR* from,
3347 VkDisplayPlanePropertiesKHR* to)
3348{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003349 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003350 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003351}
3352
3353void deepcopy_VkDisplaySurfaceCreateInfoKHR(
3354 Pool* pool,
3355 const VkDisplaySurfaceCreateInfoKHR* from,
3356 VkDisplaySurfaceCreateInfoKHR* to)
3357{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003358 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003359 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003360 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003361 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003362 if (pNext_size)
3363 {
3364 to->pNext = (const void*)pool->alloc(pNext_size);
3365 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3366 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003367 deepcopy_VkExtent2D(pool, &from->imageExtent, (VkExtent2D*)(&to->imageExtent));
3368}
3369
3370#endif
3371#ifdef VK_KHR_display_swapchain
3372void deepcopy_VkDisplayPresentInfoKHR(
3373 Pool* pool,
3374 const VkDisplayPresentInfoKHR* from,
3375 VkDisplayPresentInfoKHR* to)
3376{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003377 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003378 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003379 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003380 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003381 if (pNext_size)
3382 {
3383 to->pNext = (const void*)pool->alloc(pNext_size);
3384 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3385 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003386 deepcopy_VkRect2D(pool, &from->srcRect, (VkRect2D*)(&to->srcRect));
3387 deepcopy_VkRect2D(pool, &from->dstRect, (VkRect2D*)(&to->dstRect));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003388}
3389
3390#endif
3391#ifdef VK_KHR_xlib_surface
3392void deepcopy_VkXlibSurfaceCreateInfoKHR(
3393 Pool* pool,
3394 const VkXlibSurfaceCreateInfoKHR* from,
3395 VkXlibSurfaceCreateInfoKHR* to)
3396{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003397 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003398 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003399 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003400 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003401 if (pNext_size)
3402 {
3403 to->pNext = (const void*)pool->alloc(pNext_size);
3404 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3405 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003406 to->dpy = nullptr;
3407 if (from->dpy)
3408 {
3409 to->dpy = (Display*)pool->dupArray(from->dpy, sizeof(Display));
3410 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003411}
3412
3413#endif
3414#ifdef VK_KHR_xcb_surface
3415void deepcopy_VkXcbSurfaceCreateInfoKHR(
3416 Pool* pool,
3417 const VkXcbSurfaceCreateInfoKHR* from,
3418 VkXcbSurfaceCreateInfoKHR* to)
3419{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003420 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003421 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003422 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003423 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003424 if (pNext_size)
3425 {
3426 to->pNext = (const void*)pool->alloc(pNext_size);
3427 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3428 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003429 to->connection = nullptr;
3430 if (from->connection)
3431 {
3432 to->connection = (xcb_connection_t*)pool->dupArray(from->connection, sizeof(xcb_connection_t));
3433 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003434}
3435
3436#endif
3437#ifdef VK_KHR_wayland_surface
3438void deepcopy_VkWaylandSurfaceCreateInfoKHR(
3439 Pool* pool,
3440 const VkWaylandSurfaceCreateInfoKHR* from,
3441 VkWaylandSurfaceCreateInfoKHR* to)
3442{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003443 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003444 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003445 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003446 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003447 if (pNext_size)
3448 {
3449 to->pNext = (const void*)pool->alloc(pNext_size);
3450 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3451 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003452 to->display = nullptr;
3453 if (from->display)
3454 {
3455 to->display = (wl_display*)pool->dupArray(from->display, sizeof(wl_display));
3456 }
3457 to->surface = nullptr;
3458 if (from->surface)
3459 {
3460 to->surface = (wl_surface*)pool->dupArray(from->surface, sizeof(wl_surface));
3461 }
3462}
3463
3464#endif
3465#ifdef VK_KHR_mir_surface
3466void deepcopy_VkMirSurfaceCreateInfoKHR(
3467 Pool* pool,
3468 const VkMirSurfaceCreateInfoKHR* from,
3469 VkMirSurfaceCreateInfoKHR* to)
3470{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003471 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003472 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003473 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003474 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003475 if (pNext_size)
3476 {
3477 to->pNext = (const void*)pool->alloc(pNext_size);
3478 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3479 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003480 to->connection = nullptr;
3481 if (from->connection)
3482 {
3483 to->connection = (MirConnection*)pool->dupArray(from->connection, sizeof(MirConnection));
3484 }
3485 to->mirSurface = nullptr;
3486 if (from->mirSurface)
3487 {
3488 to->mirSurface = (MirSurface*)pool->dupArray(from->mirSurface, sizeof(MirSurface));
3489 }
3490}
3491
3492#endif
3493#ifdef VK_KHR_android_surface
3494void deepcopy_VkAndroidSurfaceCreateInfoKHR(
3495 Pool* pool,
3496 const VkAndroidSurfaceCreateInfoKHR* from,
3497 VkAndroidSurfaceCreateInfoKHR* to)
3498{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003499 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003500 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003501 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003502 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003503 if (pNext_size)
3504 {
3505 to->pNext = (const void*)pool->alloc(pNext_size);
3506 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3507 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003508 to->window = nullptr;
3509 if (from->window)
3510 {
3511 to->window = (ANativeWindow*)pool->dupArray(from->window, sizeof(ANativeWindow));
3512 }
3513}
3514
3515#endif
3516#ifdef VK_KHR_win32_surface
3517void deepcopy_VkWin32SurfaceCreateInfoKHR(
3518 Pool* pool,
3519 const VkWin32SurfaceCreateInfoKHR* from,
3520 VkWin32SurfaceCreateInfoKHR* to)
3521{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003522 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003523 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003524 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003525 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003526 if (pNext_size)
3527 {
3528 to->pNext = (const void*)pool->alloc(pNext_size);
3529 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3530 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003531}
3532
3533#endif
3534#ifdef VK_KHR_sampler_mirror_clamp_to_edge
3535#endif
3536#ifdef VK_KHR_multiview
3537#endif
3538#ifdef VK_KHR_get_physical_device_properties2
3539#endif
3540#ifdef VK_KHR_device_group
3541#endif
3542#ifdef VK_KHR_shader_draw_parameters
3543#endif
3544#ifdef VK_KHR_maintenance1
3545#endif
3546#ifdef VK_KHR_device_group_creation
3547#endif
3548#ifdef VK_KHR_external_memory_capabilities
3549#endif
3550#ifdef VK_KHR_external_memory
3551#endif
3552#ifdef VK_KHR_external_memory_win32
3553void deepcopy_VkImportMemoryWin32HandleInfoKHR(
3554 Pool* pool,
3555 const VkImportMemoryWin32HandleInfoKHR* from,
3556 VkImportMemoryWin32HandleInfoKHR* to)
3557{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003558 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003559 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003560 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003561 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003562 if (pNext_size)
3563 {
3564 to->pNext = (const void*)pool->alloc(pNext_size);
3565 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3566 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003567}
3568
3569void deepcopy_VkExportMemoryWin32HandleInfoKHR(
3570 Pool* pool,
3571 const VkExportMemoryWin32HandleInfoKHR* from,
3572 VkExportMemoryWin32HandleInfoKHR* to)
3573{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003574 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003575 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003576 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003577 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003578 if (pNext_size)
3579 {
3580 to->pNext = (const void*)pool->alloc(pNext_size);
3581 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3582 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003583 to->pAttributes = nullptr;
3584 if (from->pAttributes)
3585 {
3586 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
3587 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003588}
3589
3590void deepcopy_VkMemoryWin32HandlePropertiesKHR(
3591 Pool* pool,
3592 const VkMemoryWin32HandlePropertiesKHR* from,
3593 VkMemoryWin32HandlePropertiesKHR* to)
3594{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003595 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003596 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003597 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003598 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003599 if (pNext_size)
3600 {
3601 to->pNext = (void*)pool->alloc(pNext_size);
3602 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3603 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003604}
3605
3606void deepcopy_VkMemoryGetWin32HandleInfoKHR(
3607 Pool* pool,
3608 const VkMemoryGetWin32HandleInfoKHR* from,
3609 VkMemoryGetWin32HandleInfoKHR* to)
3610{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003611 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003612 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003613 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003614 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003615 if (pNext_size)
3616 {
3617 to->pNext = (const void*)pool->alloc(pNext_size);
3618 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3619 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003620}
3621
3622#endif
3623#ifdef VK_KHR_external_memory_fd
3624void deepcopy_VkImportMemoryFdInfoKHR(
3625 Pool* pool,
3626 const VkImportMemoryFdInfoKHR* from,
3627 VkImportMemoryFdInfoKHR* to)
3628{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003629 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003630 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003631 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003632 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003633 if (pNext_size)
3634 {
3635 to->pNext = (const void*)pool->alloc(pNext_size);
3636 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3637 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003638}
3639
3640void deepcopy_VkMemoryFdPropertiesKHR(
3641 Pool* pool,
3642 const VkMemoryFdPropertiesKHR* from,
3643 VkMemoryFdPropertiesKHR* to)
3644{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003645 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003646 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003647 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003648 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003649 if (pNext_size)
3650 {
3651 to->pNext = (void*)pool->alloc(pNext_size);
3652 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3653 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003654}
3655
3656void deepcopy_VkMemoryGetFdInfoKHR(
3657 Pool* pool,
3658 const VkMemoryGetFdInfoKHR* from,
3659 VkMemoryGetFdInfoKHR* to)
3660{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003661 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003662 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003663 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003664 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003665 if (pNext_size)
3666 {
3667 to->pNext = (const void*)pool->alloc(pNext_size);
3668 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3669 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003670}
3671
3672#endif
3673#ifdef VK_KHR_win32_keyed_mutex
3674void deepcopy_VkWin32KeyedMutexAcquireReleaseInfoKHR(
3675 Pool* pool,
3676 const VkWin32KeyedMutexAcquireReleaseInfoKHR* from,
3677 VkWin32KeyedMutexAcquireReleaseInfoKHR* to)
3678{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003679 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003680 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003681 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003682 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003683 if (pNext_size)
3684 {
3685 to->pNext = (const void*)pool->alloc(pNext_size);
3686 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3687 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003688 to->pAcquireSyncs = nullptr;
3689 if (from->pAcquireSyncs)
3690 {
3691 to->pAcquireSyncs = (VkDeviceMemory*)pool->dupArray(from->pAcquireSyncs, from->acquireCount * sizeof(const VkDeviceMemory));
3692 }
3693 to->pAcquireKeys = nullptr;
3694 if (from->pAcquireKeys)
3695 {
3696 to->pAcquireKeys = (uint64_t*)pool->dupArray(from->pAcquireKeys, from->acquireCount * sizeof(const uint64_t));
3697 }
3698 to->pAcquireTimeouts = nullptr;
3699 if (from->pAcquireTimeouts)
3700 {
3701 to->pAcquireTimeouts = (uint32_t*)pool->dupArray(from->pAcquireTimeouts, from->acquireCount * sizeof(const uint32_t));
3702 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003703 to->pReleaseSyncs = nullptr;
3704 if (from->pReleaseSyncs)
3705 {
3706 to->pReleaseSyncs = (VkDeviceMemory*)pool->dupArray(from->pReleaseSyncs, from->releaseCount * sizeof(const VkDeviceMemory));
3707 }
3708 to->pReleaseKeys = nullptr;
3709 if (from->pReleaseKeys)
3710 {
3711 to->pReleaseKeys = (uint64_t*)pool->dupArray(from->pReleaseKeys, from->releaseCount * sizeof(const uint64_t));
3712 }
3713}
3714
3715#endif
3716#ifdef VK_KHR_external_semaphore_capabilities
3717#endif
3718#ifdef VK_KHR_external_semaphore
3719#endif
3720#ifdef VK_KHR_external_semaphore_win32
3721void deepcopy_VkImportSemaphoreWin32HandleInfoKHR(
3722 Pool* pool,
3723 const VkImportSemaphoreWin32HandleInfoKHR* from,
3724 VkImportSemaphoreWin32HandleInfoKHR* to)
3725{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003726 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003727 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003728 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003729 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003730 if (pNext_size)
3731 {
3732 to->pNext = (const void*)pool->alloc(pNext_size);
3733 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3734 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003735}
3736
3737void deepcopy_VkExportSemaphoreWin32HandleInfoKHR(
3738 Pool* pool,
3739 const VkExportSemaphoreWin32HandleInfoKHR* from,
3740 VkExportSemaphoreWin32HandleInfoKHR* to)
3741{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003742 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003743 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003744 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003745 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003746 if (pNext_size)
3747 {
3748 to->pNext = (const void*)pool->alloc(pNext_size);
3749 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3750 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003751 to->pAttributes = nullptr;
3752 if (from->pAttributes)
3753 {
3754 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
3755 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003756}
3757
3758void deepcopy_VkD3D12FenceSubmitInfoKHR(
3759 Pool* pool,
3760 const VkD3D12FenceSubmitInfoKHR* from,
3761 VkD3D12FenceSubmitInfoKHR* to)
3762{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003763 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003764 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003765 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003766 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003767 if (pNext_size)
3768 {
3769 to->pNext = (const void*)pool->alloc(pNext_size);
3770 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3771 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003772 to->pWaitSemaphoreValues = nullptr;
3773 if (from->pWaitSemaphoreValues)
3774 {
3775 to->pWaitSemaphoreValues = (uint64_t*)pool->dupArray(from->pWaitSemaphoreValues, from->waitSemaphoreValuesCount * sizeof(const uint64_t));
3776 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003777 to->pSignalSemaphoreValues = nullptr;
3778 if (from->pSignalSemaphoreValues)
3779 {
3780 to->pSignalSemaphoreValues = (uint64_t*)pool->dupArray(from->pSignalSemaphoreValues, from->signalSemaphoreValuesCount * sizeof(const uint64_t));
3781 }
3782}
3783
3784void deepcopy_VkSemaphoreGetWin32HandleInfoKHR(
3785 Pool* pool,
3786 const VkSemaphoreGetWin32HandleInfoKHR* from,
3787 VkSemaphoreGetWin32HandleInfoKHR* to)
3788{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003789 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003790 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003791 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003792 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003793 if (pNext_size)
3794 {
3795 to->pNext = (const void*)pool->alloc(pNext_size);
3796 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3797 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003798}
3799
3800#endif
3801#ifdef VK_KHR_external_semaphore_fd
3802void deepcopy_VkImportSemaphoreFdInfoKHR(
3803 Pool* pool,
3804 const VkImportSemaphoreFdInfoKHR* from,
3805 VkImportSemaphoreFdInfoKHR* to)
3806{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003807 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003808 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003809 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003810 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003811 if (pNext_size)
3812 {
3813 to->pNext = (const void*)pool->alloc(pNext_size);
3814 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3815 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003816}
3817
3818void deepcopy_VkSemaphoreGetFdInfoKHR(
3819 Pool* pool,
3820 const VkSemaphoreGetFdInfoKHR* from,
3821 VkSemaphoreGetFdInfoKHR* to)
3822{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003823 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003824 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003825 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003826 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003827 if (pNext_size)
3828 {
3829 to->pNext = (const void*)pool->alloc(pNext_size);
3830 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3831 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003832}
3833
3834#endif
3835#ifdef VK_KHR_push_descriptor
3836void deepcopy_VkPhysicalDevicePushDescriptorPropertiesKHR(
3837 Pool* pool,
3838 const VkPhysicalDevicePushDescriptorPropertiesKHR* from,
3839 VkPhysicalDevicePushDescriptorPropertiesKHR* to)
3840{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003841 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003842 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003843 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003844 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003845 if (pNext_size)
3846 {
3847 to->pNext = (void*)pool->alloc(pNext_size);
3848 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3849 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003850}
3851
3852#endif
3853#ifdef VK_KHR_16bit_storage
3854#endif
3855#ifdef VK_KHR_incremental_present
3856void deepcopy_VkRectLayerKHR(
3857 Pool* pool,
3858 const VkRectLayerKHR* from,
3859 VkRectLayerKHR* to)
3860{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003861 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003862 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003863 deepcopy_VkOffset2D(pool, &from->offset, (VkOffset2D*)(&to->offset));
3864 deepcopy_VkExtent2D(pool, &from->extent, (VkExtent2D*)(&to->extent));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003865}
3866
3867void deepcopy_VkPresentRegionKHR(
3868 Pool* pool,
3869 const VkPresentRegionKHR* from,
3870 VkPresentRegionKHR* to)
3871{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003872 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003873 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003874 to->pRectangles = nullptr;
3875 if (from->pRectangles)
3876 {
3877 to->pRectangles = (VkRectLayerKHR*)pool->alloc(from->rectangleCount * sizeof(const VkRectLayerKHR));
3878 to->rectangleCount = from->rectangleCount;
3879 for (uint32_t i = 0; i < (uint32_t)from->rectangleCount; ++i)
3880 {
3881 deepcopy_VkRectLayerKHR(pool, from->pRectangles + i, (VkRectLayerKHR*)(to->pRectangles + i));
3882 }
3883 }
3884}
3885
3886void deepcopy_VkPresentRegionsKHR(
3887 Pool* pool,
3888 const VkPresentRegionsKHR* from,
3889 VkPresentRegionsKHR* to)
3890{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003891 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003892 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003893 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003894 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003895 if (pNext_size)
3896 {
3897 to->pNext = (const void*)pool->alloc(pNext_size);
3898 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3899 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003900 to->pRegions = nullptr;
3901 if (from->pRegions)
3902 {
3903 to->pRegions = (VkPresentRegionKHR*)pool->alloc(from->swapchainCount * sizeof(const VkPresentRegionKHR));
3904 to->swapchainCount = from->swapchainCount;
3905 for (uint32_t i = 0; i < (uint32_t)from->swapchainCount; ++i)
3906 {
3907 deepcopy_VkPresentRegionKHR(pool, from->pRegions + i, (VkPresentRegionKHR*)(to->pRegions + i));
3908 }
3909 }
3910}
3911
3912#endif
3913#ifdef VK_KHR_descriptor_update_template
3914#endif
3915#ifdef VK_KHR_create_renderpass2
3916void deepcopy_VkAttachmentDescription2KHR(
3917 Pool* pool,
3918 const VkAttachmentDescription2KHR* from,
3919 VkAttachmentDescription2KHR* to)
3920{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003921 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003922 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003923 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003924 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003925 if (pNext_size)
3926 {
3927 to->pNext = (const void*)pool->alloc(pNext_size);
3928 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3929 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003930}
3931
3932void deepcopy_VkAttachmentReference2KHR(
3933 Pool* pool,
3934 const VkAttachmentReference2KHR* from,
3935 VkAttachmentReference2KHR* to)
3936{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003937 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003938 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003939 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003940 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003941 if (pNext_size)
3942 {
3943 to->pNext = (const void*)pool->alloc(pNext_size);
3944 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3945 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003946}
3947
3948void deepcopy_VkSubpassDescription2KHR(
3949 Pool* pool,
3950 const VkSubpassDescription2KHR* from,
3951 VkSubpassDescription2KHR* to)
3952{
Lingfeng Yang36891c52018-11-09 14:18:35 -08003953 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08003954 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003955 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08003956 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08003957 if (pNext_size)
3958 {
3959 to->pNext = (const void*)pool->alloc(pNext_size);
3960 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
3961 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003962 to->pInputAttachments = nullptr;
3963 if (from->pInputAttachments)
3964 {
3965 to->pInputAttachments = (VkAttachmentReference2KHR*)pool->alloc(from->inputAttachmentCount * sizeof(const VkAttachmentReference2KHR));
3966 to->inputAttachmentCount = from->inputAttachmentCount;
3967 for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i)
3968 {
3969 deepcopy_VkAttachmentReference2KHR(pool, from->pInputAttachments + i, (VkAttachmentReference2KHR*)(to->pInputAttachments + i));
3970 }
3971 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003972 to->pColorAttachments = nullptr;
3973 if (from->pColorAttachments)
3974 {
3975 to->pColorAttachments = (VkAttachmentReference2KHR*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference2KHR));
3976 to->colorAttachmentCount = from->colorAttachmentCount;
3977 for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
3978 {
3979 deepcopy_VkAttachmentReference2KHR(pool, from->pColorAttachments + i, (VkAttachmentReference2KHR*)(to->pColorAttachments + i));
3980 }
3981 }
3982 to->pResolveAttachments = nullptr;
3983 if (from->pResolveAttachments)
3984 {
3985 to->pResolveAttachments = (VkAttachmentReference2KHR*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference2KHR));
3986 to->colorAttachmentCount = from->colorAttachmentCount;
3987 for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
3988 {
3989 deepcopy_VkAttachmentReference2KHR(pool, from->pResolveAttachments + i, (VkAttachmentReference2KHR*)(to->pResolveAttachments + i));
3990 }
3991 }
3992 to->pDepthStencilAttachment = nullptr;
3993 if (from->pDepthStencilAttachment)
3994 {
3995 to->pDepthStencilAttachment = (VkAttachmentReference2KHR*)pool->alloc(sizeof(const VkAttachmentReference2KHR));
3996 deepcopy_VkAttachmentReference2KHR(pool, from->pDepthStencilAttachment, (VkAttachmentReference2KHR*)(to->pDepthStencilAttachment));
3997 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08003998 to->pPreserveAttachments = nullptr;
3999 if (from->pPreserveAttachments)
4000 {
4001 to->pPreserveAttachments = (uint32_t*)pool->dupArray(from->pPreserveAttachments, from->preserveAttachmentCount * sizeof(const uint32_t));
4002 }
4003}
4004
4005void deepcopy_VkSubpassDependency2KHR(
4006 Pool* pool,
4007 const VkSubpassDependency2KHR* from,
4008 VkSubpassDependency2KHR* to)
4009{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004010 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004011 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004012 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004013 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004014 if (pNext_size)
4015 {
4016 to->pNext = (const void*)pool->alloc(pNext_size);
4017 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4018 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004019}
4020
4021void deepcopy_VkRenderPassCreateInfo2KHR(
4022 Pool* pool,
4023 const VkRenderPassCreateInfo2KHR* from,
4024 VkRenderPassCreateInfo2KHR* to)
4025{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004026 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004027 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004028 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004029 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004030 if (pNext_size)
4031 {
4032 to->pNext = (const void*)pool->alloc(pNext_size);
4033 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4034 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004035 to->pAttachments = nullptr;
4036 if (from->pAttachments)
4037 {
4038 to->pAttachments = (VkAttachmentDescription2KHR*)pool->alloc(from->attachmentCount * sizeof(const VkAttachmentDescription2KHR));
4039 to->attachmentCount = from->attachmentCount;
4040 for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
4041 {
4042 deepcopy_VkAttachmentDescription2KHR(pool, from->pAttachments + i, (VkAttachmentDescription2KHR*)(to->pAttachments + i));
4043 }
4044 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004045 to->pSubpasses = nullptr;
4046 if (from->pSubpasses)
4047 {
4048 to->pSubpasses = (VkSubpassDescription2KHR*)pool->alloc(from->subpassCount * sizeof(const VkSubpassDescription2KHR));
4049 to->subpassCount = from->subpassCount;
4050 for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i)
4051 {
4052 deepcopy_VkSubpassDescription2KHR(pool, from->pSubpasses + i, (VkSubpassDescription2KHR*)(to->pSubpasses + i));
4053 }
4054 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004055 to->pDependencies = nullptr;
4056 if (from->pDependencies)
4057 {
4058 to->pDependencies = (VkSubpassDependency2KHR*)pool->alloc(from->dependencyCount * sizeof(const VkSubpassDependency2KHR));
4059 to->dependencyCount = from->dependencyCount;
4060 for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i)
4061 {
4062 deepcopy_VkSubpassDependency2KHR(pool, from->pDependencies + i, (VkSubpassDependency2KHR*)(to->pDependencies + i));
4063 }
4064 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004065 to->pCorrelatedViewMasks = nullptr;
4066 if (from->pCorrelatedViewMasks)
4067 {
4068 to->pCorrelatedViewMasks = (uint32_t*)pool->dupArray(from->pCorrelatedViewMasks, from->correlatedViewMaskCount * sizeof(const uint32_t));
4069 }
4070}
4071
4072void deepcopy_VkSubpassBeginInfoKHR(
4073 Pool* pool,
4074 const VkSubpassBeginInfoKHR* from,
4075 VkSubpassBeginInfoKHR* to)
4076{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004077 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004078 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004079 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004080 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004081 if (pNext_size)
4082 {
4083 to->pNext = (const void*)pool->alloc(pNext_size);
4084 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4085 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004086}
4087
4088void deepcopy_VkSubpassEndInfoKHR(
4089 Pool* pool,
4090 const VkSubpassEndInfoKHR* from,
4091 VkSubpassEndInfoKHR* to)
4092{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004093 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004094 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004095 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004096 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004097 if (pNext_size)
4098 {
4099 to->pNext = (const void*)pool->alloc(pNext_size);
4100 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4101 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004102}
4103
4104#endif
4105#ifdef VK_KHR_shared_presentable_image
4106void deepcopy_VkSharedPresentSurfaceCapabilitiesKHR(
4107 Pool* pool,
4108 const VkSharedPresentSurfaceCapabilitiesKHR* from,
4109 VkSharedPresentSurfaceCapabilitiesKHR* to)
4110{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004111 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004112 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004113 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004114 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004115 if (pNext_size)
4116 {
4117 to->pNext = (void*)pool->alloc(pNext_size);
4118 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4119 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004120}
4121
4122#endif
4123#ifdef VK_KHR_external_fence_capabilities
4124#endif
4125#ifdef VK_KHR_external_fence
4126#endif
4127#ifdef VK_KHR_external_fence_win32
4128void deepcopy_VkImportFenceWin32HandleInfoKHR(
4129 Pool* pool,
4130 const VkImportFenceWin32HandleInfoKHR* from,
4131 VkImportFenceWin32HandleInfoKHR* to)
4132{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004133 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004134 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004135 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004136 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004137 if (pNext_size)
4138 {
4139 to->pNext = (const void*)pool->alloc(pNext_size);
4140 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4141 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004142}
4143
4144void deepcopy_VkExportFenceWin32HandleInfoKHR(
4145 Pool* pool,
4146 const VkExportFenceWin32HandleInfoKHR* from,
4147 VkExportFenceWin32HandleInfoKHR* to)
4148{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004149 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004150 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004151 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004152 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004153 if (pNext_size)
4154 {
4155 to->pNext = (const void*)pool->alloc(pNext_size);
4156 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4157 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004158 to->pAttributes = nullptr;
4159 if (from->pAttributes)
4160 {
4161 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
4162 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004163}
4164
4165void deepcopy_VkFenceGetWin32HandleInfoKHR(
4166 Pool* pool,
4167 const VkFenceGetWin32HandleInfoKHR* from,
4168 VkFenceGetWin32HandleInfoKHR* to)
4169{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004170 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004171 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004172 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004173 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004174 if (pNext_size)
4175 {
4176 to->pNext = (const void*)pool->alloc(pNext_size);
4177 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4178 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004179}
4180
4181#endif
4182#ifdef VK_KHR_external_fence_fd
4183void deepcopy_VkImportFenceFdInfoKHR(
4184 Pool* pool,
4185 const VkImportFenceFdInfoKHR* from,
4186 VkImportFenceFdInfoKHR* to)
4187{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004188 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004189 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004190 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004191 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004192 if (pNext_size)
4193 {
4194 to->pNext = (const void*)pool->alloc(pNext_size);
4195 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4196 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004197}
4198
4199void deepcopy_VkFenceGetFdInfoKHR(
4200 Pool* pool,
4201 const VkFenceGetFdInfoKHR* from,
4202 VkFenceGetFdInfoKHR* to)
4203{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004204 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004205 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004206 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004207 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004208 if (pNext_size)
4209 {
4210 to->pNext = (const void*)pool->alloc(pNext_size);
4211 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4212 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004213}
4214
4215#endif
4216#ifdef VK_KHR_maintenance2
4217#endif
4218#ifdef VK_KHR_get_surface_capabilities2
4219void deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(
4220 Pool* pool,
4221 const VkPhysicalDeviceSurfaceInfo2KHR* from,
4222 VkPhysicalDeviceSurfaceInfo2KHR* to)
4223{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004224 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004225 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004226 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004227 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004228 if (pNext_size)
4229 {
4230 to->pNext = (const void*)pool->alloc(pNext_size);
4231 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4232 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004233}
4234
4235void deepcopy_VkSurfaceCapabilities2KHR(
4236 Pool* pool,
4237 const VkSurfaceCapabilities2KHR* from,
4238 VkSurfaceCapabilities2KHR* to)
4239{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004240 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004241 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004242 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004243 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004244 if (pNext_size)
4245 {
4246 to->pNext = (void*)pool->alloc(pNext_size);
4247 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4248 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004249 deepcopy_VkSurfaceCapabilitiesKHR(pool, &from->surfaceCapabilities, (VkSurfaceCapabilitiesKHR*)(&to->surfaceCapabilities));
4250}
4251
4252void deepcopy_VkSurfaceFormat2KHR(
4253 Pool* pool,
4254 const VkSurfaceFormat2KHR* from,
4255 VkSurfaceFormat2KHR* to)
4256{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004257 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004258 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004259 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004260 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004261 if (pNext_size)
4262 {
4263 to->pNext = (void*)pool->alloc(pNext_size);
4264 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4265 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004266 deepcopy_VkSurfaceFormatKHR(pool, &from->surfaceFormat, (VkSurfaceFormatKHR*)(&to->surfaceFormat));
4267}
4268
4269#endif
4270#ifdef VK_KHR_variable_pointers
4271#endif
4272#ifdef VK_KHR_get_display_properties2
4273void deepcopy_VkDisplayProperties2KHR(
4274 Pool* pool,
4275 const VkDisplayProperties2KHR* from,
4276 VkDisplayProperties2KHR* to)
4277{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004278 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004279 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004280 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004281 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004282 if (pNext_size)
4283 {
4284 to->pNext = (void*)pool->alloc(pNext_size);
4285 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4286 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004287 deepcopy_VkDisplayPropertiesKHR(pool, &from->displayProperties, (VkDisplayPropertiesKHR*)(&to->displayProperties));
4288}
4289
4290void deepcopy_VkDisplayPlaneProperties2KHR(
4291 Pool* pool,
4292 const VkDisplayPlaneProperties2KHR* from,
4293 VkDisplayPlaneProperties2KHR* to)
4294{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004295 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004296 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004297 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004298 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004299 if (pNext_size)
4300 {
4301 to->pNext = (void*)pool->alloc(pNext_size);
4302 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4303 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004304 deepcopy_VkDisplayPlanePropertiesKHR(pool, &from->displayPlaneProperties, (VkDisplayPlanePropertiesKHR*)(&to->displayPlaneProperties));
4305}
4306
4307void deepcopy_VkDisplayModeProperties2KHR(
4308 Pool* pool,
4309 const VkDisplayModeProperties2KHR* from,
4310 VkDisplayModeProperties2KHR* to)
4311{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004312 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004313 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004314 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004315 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004316 if (pNext_size)
4317 {
4318 to->pNext = (void*)pool->alloc(pNext_size);
4319 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4320 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004321 deepcopy_VkDisplayModePropertiesKHR(pool, &from->displayModeProperties, (VkDisplayModePropertiesKHR*)(&to->displayModeProperties));
4322}
4323
4324void deepcopy_VkDisplayPlaneInfo2KHR(
4325 Pool* pool,
4326 const VkDisplayPlaneInfo2KHR* from,
4327 VkDisplayPlaneInfo2KHR* to)
4328{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004329 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004330 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004331 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004332 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004333 if (pNext_size)
4334 {
4335 to->pNext = (const void*)pool->alloc(pNext_size);
4336 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4337 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004338}
4339
4340void deepcopy_VkDisplayPlaneCapabilities2KHR(
4341 Pool* pool,
4342 const VkDisplayPlaneCapabilities2KHR* from,
4343 VkDisplayPlaneCapabilities2KHR* to)
4344{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004345 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004346 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004347 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004348 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004349 if (pNext_size)
4350 {
4351 to->pNext = (void*)pool->alloc(pNext_size);
4352 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4353 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004354 deepcopy_VkDisplayPlaneCapabilitiesKHR(pool, &from->capabilities, (VkDisplayPlaneCapabilitiesKHR*)(&to->capabilities));
4355}
4356
4357#endif
4358#ifdef VK_KHR_dedicated_allocation
4359#endif
4360#ifdef VK_KHR_storage_buffer_storage_class
4361#endif
4362#ifdef VK_KHR_relaxed_block_layout
4363#endif
4364#ifdef VK_KHR_get_memory_requirements2
4365#endif
4366#ifdef VK_KHR_image_format_list
4367void deepcopy_VkImageFormatListCreateInfoKHR(
4368 Pool* pool,
4369 const VkImageFormatListCreateInfoKHR* from,
4370 VkImageFormatListCreateInfoKHR* to)
4371{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004372 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004373 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004374 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004375 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004376 if (pNext_size)
4377 {
4378 to->pNext = (const void*)pool->alloc(pNext_size);
4379 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4380 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004381 to->pViewFormats = nullptr;
4382 if (from->pViewFormats)
4383 {
4384 to->pViewFormats = (VkFormat*)pool->dupArray(from->pViewFormats, from->viewFormatCount * sizeof(const VkFormat));
4385 }
4386}
4387
4388#endif
4389#ifdef VK_KHR_sampler_ycbcr_conversion
4390#endif
4391#ifdef VK_KHR_bind_memory2
4392#endif
4393#ifdef VK_KHR_maintenance3
4394#endif
4395#ifdef VK_KHR_draw_indirect_count
4396#endif
4397#ifdef VK_KHR_8bit_storage
4398void deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR(
4399 Pool* pool,
4400 const VkPhysicalDevice8BitStorageFeaturesKHR* from,
4401 VkPhysicalDevice8BitStorageFeaturesKHR* to)
4402{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004403 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004404 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004405 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004406 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004407 if (pNext_size)
4408 {
4409 to->pNext = (void*)pool->alloc(pNext_size);
4410 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4411 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004412}
4413
4414#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004415#ifdef VK_ANDROID_native_buffer
4416void deepcopy_VkNativeBufferANDROID(
4417 Pool* pool,
4418 const VkNativeBufferANDROID* from,
4419 VkNativeBufferANDROID* to)
4420{
4421 (void)pool;
4422 *to = *from;
4423 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
4424 to->pNext = nullptr;
4425 if (pNext_size)
4426 {
4427 to->pNext = (const void*)pool->alloc(pNext_size);
4428 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4429 }
4430 to->handle = nullptr;
4431 if (from->handle)
4432 {
4433 to->handle = (uint32_t*)pool->dupArray(from->handle, sizeof(const uint32_t));
4434 }
4435}
4436
4437#endif
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004438#ifdef VK_EXT_debug_report
4439void deepcopy_VkDebugReportCallbackCreateInfoEXT(
4440 Pool* pool,
4441 const VkDebugReportCallbackCreateInfoEXT* from,
4442 VkDebugReportCallbackCreateInfoEXT* to)
4443{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004444 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004445 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004446 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004447 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004448 if (pNext_size)
4449 {
4450 to->pNext = (const void*)pool->alloc(pNext_size);
4451 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4452 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004453 to->pUserData = nullptr;
4454 if (from->pUserData)
4455 {
4456 to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t));
4457 }
4458}
4459
4460#endif
4461#ifdef VK_NV_glsl_shader
4462#endif
4463#ifdef VK_EXT_depth_range_unrestricted
4464#endif
4465#ifdef VK_IMG_filter_cubic
4466#endif
4467#ifdef VK_AMD_rasterization_order
4468void deepcopy_VkPipelineRasterizationStateRasterizationOrderAMD(
4469 Pool* pool,
4470 const VkPipelineRasterizationStateRasterizationOrderAMD* from,
4471 VkPipelineRasterizationStateRasterizationOrderAMD* to)
4472{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004473 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004474 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004475 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004476 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004477 if (pNext_size)
4478 {
4479 to->pNext = (const void*)pool->alloc(pNext_size);
4480 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4481 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004482}
4483
4484#endif
4485#ifdef VK_AMD_shader_trinary_minmax
4486#endif
4487#ifdef VK_AMD_shader_explicit_vertex_parameter
4488#endif
4489#ifdef VK_EXT_debug_marker
4490void deepcopy_VkDebugMarkerObjectNameInfoEXT(
4491 Pool* pool,
4492 const VkDebugMarkerObjectNameInfoEXT* from,
4493 VkDebugMarkerObjectNameInfoEXT* to)
4494{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004495 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004496 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004497 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004498 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004499 if (pNext_size)
4500 {
4501 to->pNext = (const void*)pool->alloc(pNext_size);
4502 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4503 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004504 to->pObjectName = nullptr;
4505 if (from->pObjectName)
4506 {
4507 to->pObjectName = pool->strDup(from->pObjectName);
4508 }
4509}
4510
4511void deepcopy_VkDebugMarkerObjectTagInfoEXT(
4512 Pool* pool,
4513 const VkDebugMarkerObjectTagInfoEXT* from,
4514 VkDebugMarkerObjectTagInfoEXT* to)
4515{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004516 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004517 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004518 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004519 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004520 if (pNext_size)
4521 {
4522 to->pNext = (const void*)pool->alloc(pNext_size);
4523 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4524 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004525 to->pTag = nullptr;
4526 if (from->pTag)
4527 {
4528 to->pTag = (void*)pool->dupArray(from->pTag, from->tagSize * sizeof(const uint8_t));
4529 }
4530}
4531
4532void deepcopy_VkDebugMarkerMarkerInfoEXT(
4533 Pool* pool,
4534 const VkDebugMarkerMarkerInfoEXT* from,
4535 VkDebugMarkerMarkerInfoEXT* to)
4536{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004537 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004538 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004539 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004540 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004541 if (pNext_size)
4542 {
4543 to->pNext = (const void*)pool->alloc(pNext_size);
4544 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4545 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004546 to->pMarkerName = nullptr;
4547 if (from->pMarkerName)
4548 {
4549 to->pMarkerName = pool->strDup(from->pMarkerName);
4550 }
4551 memcpy(to->color, from->color, 4 * sizeof(float));
4552}
4553
4554#endif
4555#ifdef VK_AMD_gcn_shader
4556#endif
4557#ifdef VK_NV_dedicated_allocation
4558void deepcopy_VkDedicatedAllocationImageCreateInfoNV(
4559 Pool* pool,
4560 const VkDedicatedAllocationImageCreateInfoNV* from,
4561 VkDedicatedAllocationImageCreateInfoNV* to)
4562{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004563 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004564 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004565 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004566 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004567 if (pNext_size)
4568 {
4569 to->pNext = (const void*)pool->alloc(pNext_size);
4570 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4571 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004572}
4573
4574void deepcopy_VkDedicatedAllocationBufferCreateInfoNV(
4575 Pool* pool,
4576 const VkDedicatedAllocationBufferCreateInfoNV* from,
4577 VkDedicatedAllocationBufferCreateInfoNV* to)
4578{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004579 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004580 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004581 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004582 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004583 if (pNext_size)
4584 {
4585 to->pNext = (const void*)pool->alloc(pNext_size);
4586 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4587 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004588}
4589
4590void deepcopy_VkDedicatedAllocationMemoryAllocateInfoNV(
4591 Pool* pool,
4592 const VkDedicatedAllocationMemoryAllocateInfoNV* from,
4593 VkDedicatedAllocationMemoryAllocateInfoNV* to)
4594{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004595 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004596 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004597 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004598 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004599 if (pNext_size)
4600 {
4601 to->pNext = (const void*)pool->alloc(pNext_size);
4602 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4603 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004604}
4605
4606#endif
4607#ifdef VK_AMD_draw_indirect_count
4608#endif
4609#ifdef VK_AMD_negative_viewport_height
4610#endif
4611#ifdef VK_AMD_gpu_shader_half_float
4612#endif
4613#ifdef VK_AMD_shader_ballot
4614#endif
4615#ifdef VK_AMD_texture_gather_bias_lod
4616void deepcopy_VkTextureLODGatherFormatPropertiesAMD(
4617 Pool* pool,
4618 const VkTextureLODGatherFormatPropertiesAMD* from,
4619 VkTextureLODGatherFormatPropertiesAMD* to)
4620{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004621 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004622 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004623 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004624 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004625 if (pNext_size)
4626 {
4627 to->pNext = (void*)pool->alloc(pNext_size);
4628 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4629 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004630}
4631
4632#endif
4633#ifdef VK_AMD_shader_info
4634void deepcopy_VkShaderResourceUsageAMD(
4635 Pool* pool,
4636 const VkShaderResourceUsageAMD* from,
4637 VkShaderResourceUsageAMD* to)
4638{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004639 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004640 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004641}
4642
4643void deepcopy_VkShaderStatisticsInfoAMD(
4644 Pool* pool,
4645 const VkShaderStatisticsInfoAMD* from,
4646 VkShaderStatisticsInfoAMD* to)
4647{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004648 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004649 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004650 deepcopy_VkShaderResourceUsageAMD(pool, &from->resourceUsage, (VkShaderResourceUsageAMD*)(&to->resourceUsage));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004651 memcpy(to->computeWorkGroupSize, from->computeWorkGroupSize, 3 * sizeof(uint32_t));
4652}
4653
4654#endif
4655#ifdef VK_AMD_shader_image_load_store_lod
4656#endif
4657#ifdef VK_IMG_format_pvrtc
4658#endif
4659#ifdef VK_NV_external_memory_capabilities
4660void deepcopy_VkExternalImageFormatPropertiesNV(
4661 Pool* pool,
4662 const VkExternalImageFormatPropertiesNV* from,
4663 VkExternalImageFormatPropertiesNV* to)
4664{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004665 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004666 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004667 deepcopy_VkImageFormatProperties(pool, &from->imageFormatProperties, (VkImageFormatProperties*)(&to->imageFormatProperties));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004668}
4669
4670#endif
4671#ifdef VK_NV_external_memory
4672void deepcopy_VkExternalMemoryImageCreateInfoNV(
4673 Pool* pool,
4674 const VkExternalMemoryImageCreateInfoNV* from,
4675 VkExternalMemoryImageCreateInfoNV* to)
4676{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004677 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004678 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004679 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004680 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004681 if (pNext_size)
4682 {
4683 to->pNext = (const void*)pool->alloc(pNext_size);
4684 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4685 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004686}
4687
4688void deepcopy_VkExportMemoryAllocateInfoNV(
4689 Pool* pool,
4690 const VkExportMemoryAllocateInfoNV* from,
4691 VkExportMemoryAllocateInfoNV* to)
4692{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004693 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004694 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004695 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004696 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004697 if (pNext_size)
4698 {
4699 to->pNext = (const void*)pool->alloc(pNext_size);
4700 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4701 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004702}
4703
4704#endif
4705#ifdef VK_NV_external_memory_win32
4706void deepcopy_VkImportMemoryWin32HandleInfoNV(
4707 Pool* pool,
4708 const VkImportMemoryWin32HandleInfoNV* from,
4709 VkImportMemoryWin32HandleInfoNV* to)
4710{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004711 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004712 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004713 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004714 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004715 if (pNext_size)
4716 {
4717 to->pNext = (const void*)pool->alloc(pNext_size);
4718 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4719 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004720}
4721
4722void deepcopy_VkExportMemoryWin32HandleInfoNV(
4723 Pool* pool,
4724 const VkExportMemoryWin32HandleInfoNV* from,
4725 VkExportMemoryWin32HandleInfoNV* to)
4726{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004727 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004728 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004729 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004730 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004731 if (pNext_size)
4732 {
4733 to->pNext = (const void*)pool->alloc(pNext_size);
4734 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4735 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004736 to->pAttributes = nullptr;
4737 if (from->pAttributes)
4738 {
4739 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
4740 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004741}
4742
4743#endif
4744#ifdef VK_NV_win32_keyed_mutex
4745void deepcopy_VkWin32KeyedMutexAcquireReleaseInfoNV(
4746 Pool* pool,
4747 const VkWin32KeyedMutexAcquireReleaseInfoNV* from,
4748 VkWin32KeyedMutexAcquireReleaseInfoNV* to)
4749{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004750 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004751 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004752 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004753 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004754 if (pNext_size)
4755 {
4756 to->pNext = (const void*)pool->alloc(pNext_size);
4757 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4758 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004759 to->pAcquireSyncs = nullptr;
4760 if (from->pAcquireSyncs)
4761 {
4762 to->pAcquireSyncs = (VkDeviceMemory*)pool->dupArray(from->pAcquireSyncs, from->acquireCount * sizeof(const VkDeviceMemory));
4763 }
4764 to->pAcquireKeys = nullptr;
4765 if (from->pAcquireKeys)
4766 {
4767 to->pAcquireKeys = (uint64_t*)pool->dupArray(from->pAcquireKeys, from->acquireCount * sizeof(const uint64_t));
4768 }
4769 to->pAcquireTimeoutMilliseconds = nullptr;
4770 if (from->pAcquireTimeoutMilliseconds)
4771 {
4772 to->pAcquireTimeoutMilliseconds = (uint32_t*)pool->dupArray(from->pAcquireTimeoutMilliseconds, from->acquireCount * sizeof(const uint32_t));
4773 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004774 to->pReleaseSyncs = nullptr;
4775 if (from->pReleaseSyncs)
4776 {
4777 to->pReleaseSyncs = (VkDeviceMemory*)pool->dupArray(from->pReleaseSyncs, from->releaseCount * sizeof(const VkDeviceMemory));
4778 }
4779 to->pReleaseKeys = nullptr;
4780 if (from->pReleaseKeys)
4781 {
4782 to->pReleaseKeys = (uint64_t*)pool->dupArray(from->pReleaseKeys, from->releaseCount * sizeof(const uint64_t));
4783 }
4784}
4785
4786#endif
4787#ifdef VK_EXT_validation_flags
4788void deepcopy_VkValidationFlagsEXT(
4789 Pool* pool,
4790 const VkValidationFlagsEXT* from,
4791 VkValidationFlagsEXT* to)
4792{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004793 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004794 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004795 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004796 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004797 if (pNext_size)
4798 {
4799 to->pNext = (const void*)pool->alloc(pNext_size);
4800 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4801 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004802 to->pDisabledValidationChecks = nullptr;
4803 if (from->pDisabledValidationChecks)
4804 {
4805 to->pDisabledValidationChecks = (VkValidationCheckEXT*)pool->dupArray(from->pDisabledValidationChecks, from->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT));
4806 }
4807}
4808
4809#endif
4810#ifdef VK_NN_vi_surface
4811void deepcopy_VkViSurfaceCreateInfoNN(
4812 Pool* pool,
4813 const VkViSurfaceCreateInfoNN* from,
4814 VkViSurfaceCreateInfoNN* to)
4815{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004816 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004817 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004818 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004819 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004820 if (pNext_size)
4821 {
4822 to->pNext = (const void*)pool->alloc(pNext_size);
4823 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4824 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004825 to->window = nullptr;
4826 if (from->window)
4827 {
4828 to->window = (void*)pool->dupArray(from->window, sizeof(uint8_t));
4829 }
4830}
4831
4832#endif
4833#ifdef VK_EXT_shader_subgroup_ballot
4834#endif
4835#ifdef VK_EXT_shader_subgroup_vote
4836#endif
4837#ifdef VK_EXT_conditional_rendering
4838void deepcopy_VkConditionalRenderingBeginInfoEXT(
4839 Pool* pool,
4840 const VkConditionalRenderingBeginInfoEXT* from,
4841 VkConditionalRenderingBeginInfoEXT* to)
4842{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004843 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004844 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004845 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004846 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004847 if (pNext_size)
4848 {
4849 to->pNext = (const void*)pool->alloc(pNext_size);
4850 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4851 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004852}
4853
4854void deepcopy_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
4855 Pool* pool,
4856 const VkPhysicalDeviceConditionalRenderingFeaturesEXT* from,
4857 VkPhysicalDeviceConditionalRenderingFeaturesEXT* to)
4858{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004859 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004860 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004861 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004862 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004863 if (pNext_size)
4864 {
4865 to->pNext = (void*)pool->alloc(pNext_size);
4866 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4867 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004868}
4869
4870void deepcopy_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
4871 Pool* pool,
4872 const VkCommandBufferInheritanceConditionalRenderingInfoEXT* from,
4873 VkCommandBufferInheritanceConditionalRenderingInfoEXT* to)
4874{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004875 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004876 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004877 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004878 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004879 if (pNext_size)
4880 {
4881 to->pNext = (const void*)pool->alloc(pNext_size);
4882 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4883 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004884}
4885
4886#endif
4887#ifdef VK_NVX_device_generated_commands
4888void deepcopy_VkDeviceGeneratedCommandsFeaturesNVX(
4889 Pool* pool,
4890 const VkDeviceGeneratedCommandsFeaturesNVX* from,
4891 VkDeviceGeneratedCommandsFeaturesNVX* to)
4892{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004893 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004894 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004895 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004896 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004897 if (pNext_size)
4898 {
4899 to->pNext = (const void*)pool->alloc(pNext_size);
4900 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4901 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004902}
4903
4904void deepcopy_VkDeviceGeneratedCommandsLimitsNVX(
4905 Pool* pool,
4906 const VkDeviceGeneratedCommandsLimitsNVX* from,
4907 VkDeviceGeneratedCommandsLimitsNVX* to)
4908{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004909 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004910 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004911 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004912 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004913 if (pNext_size)
4914 {
4915 to->pNext = (const void*)pool->alloc(pNext_size);
4916 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4917 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004918}
4919
4920void deepcopy_VkIndirectCommandsTokenNVX(
4921 Pool* pool,
4922 const VkIndirectCommandsTokenNVX* from,
4923 VkIndirectCommandsTokenNVX* to)
4924{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004925 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004926 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004927}
4928
4929void deepcopy_VkIndirectCommandsLayoutTokenNVX(
4930 Pool* pool,
4931 const VkIndirectCommandsLayoutTokenNVX* from,
4932 VkIndirectCommandsLayoutTokenNVX* to)
4933{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004934 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004935 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004936}
4937
4938void deepcopy_VkIndirectCommandsLayoutCreateInfoNVX(
4939 Pool* pool,
4940 const VkIndirectCommandsLayoutCreateInfoNVX* from,
4941 VkIndirectCommandsLayoutCreateInfoNVX* to)
4942{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004943 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004944 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004945 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004946 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004947 if (pNext_size)
4948 {
4949 to->pNext = (const void*)pool->alloc(pNext_size);
4950 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4951 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004952 to->pTokens = nullptr;
4953 if (from->pTokens)
4954 {
4955 to->pTokens = (VkIndirectCommandsLayoutTokenNVX*)pool->alloc(from->tokenCount * sizeof(const VkIndirectCommandsLayoutTokenNVX));
4956 to->tokenCount = from->tokenCount;
4957 for (uint32_t i = 0; i < (uint32_t)from->tokenCount; ++i)
4958 {
4959 deepcopy_VkIndirectCommandsLayoutTokenNVX(pool, from->pTokens + i, (VkIndirectCommandsLayoutTokenNVX*)(to->pTokens + i));
4960 }
4961 }
4962}
4963
4964void deepcopy_VkCmdProcessCommandsInfoNVX(
4965 Pool* pool,
4966 const VkCmdProcessCommandsInfoNVX* from,
4967 VkCmdProcessCommandsInfoNVX* to)
4968{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004969 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004970 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004971 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004972 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004973 if (pNext_size)
4974 {
4975 to->pNext = (const void*)pool->alloc(pNext_size);
4976 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
4977 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004978 to->pIndirectCommandsTokens = nullptr;
4979 if (from->pIndirectCommandsTokens)
4980 {
4981 to->pIndirectCommandsTokens = (VkIndirectCommandsTokenNVX*)pool->alloc(from->indirectCommandsTokenCount * sizeof(const VkIndirectCommandsTokenNVX));
4982 to->indirectCommandsTokenCount = from->indirectCommandsTokenCount;
4983 for (uint32_t i = 0; i < (uint32_t)from->indirectCommandsTokenCount; ++i)
4984 {
4985 deepcopy_VkIndirectCommandsTokenNVX(pool, from->pIndirectCommandsTokens + i, (VkIndirectCommandsTokenNVX*)(to->pIndirectCommandsTokens + i));
4986 }
4987 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08004988}
4989
4990void deepcopy_VkCmdReserveSpaceForCommandsInfoNVX(
4991 Pool* pool,
4992 const VkCmdReserveSpaceForCommandsInfoNVX* from,
4993 VkCmdReserveSpaceForCommandsInfoNVX* to)
4994{
Lingfeng Yang36891c52018-11-09 14:18:35 -08004995 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08004996 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004997 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08004998 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08004999 if (pNext_size)
5000 {
5001 to->pNext = (const void*)pool->alloc(pNext_size);
5002 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5003 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005004}
5005
5006void deepcopy_VkObjectTableCreateInfoNVX(
5007 Pool* pool,
5008 const VkObjectTableCreateInfoNVX* from,
5009 VkObjectTableCreateInfoNVX* to)
5010{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005011 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005012 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005013 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005014 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005015 if (pNext_size)
5016 {
5017 to->pNext = (const void*)pool->alloc(pNext_size);
5018 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5019 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005020 to->pObjectEntryTypes = nullptr;
5021 if (from->pObjectEntryTypes)
5022 {
5023 to->pObjectEntryTypes = (VkObjectEntryTypeNVX*)pool->dupArray(from->pObjectEntryTypes, from->objectCount * sizeof(const VkObjectEntryTypeNVX));
5024 }
5025 to->pObjectEntryCounts = nullptr;
5026 if (from->pObjectEntryCounts)
5027 {
5028 to->pObjectEntryCounts = (uint32_t*)pool->dupArray(from->pObjectEntryCounts, from->objectCount * sizeof(const uint32_t));
5029 }
5030 to->pObjectEntryUsageFlags = nullptr;
5031 if (from->pObjectEntryUsageFlags)
5032 {
5033 to->pObjectEntryUsageFlags = (VkObjectEntryUsageFlagsNVX*)pool->dupArray(from->pObjectEntryUsageFlags, from->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
5034 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005035}
5036
5037void deepcopy_VkObjectTableEntryNVX(
5038 Pool* pool,
5039 const VkObjectTableEntryNVX* from,
5040 VkObjectTableEntryNVX* to)
5041{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005042 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005043 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005044}
5045
5046void deepcopy_VkObjectTablePipelineEntryNVX(
5047 Pool* pool,
5048 const VkObjectTablePipelineEntryNVX* from,
5049 VkObjectTablePipelineEntryNVX* to)
5050{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005051 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005052 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005053}
5054
5055void deepcopy_VkObjectTableDescriptorSetEntryNVX(
5056 Pool* pool,
5057 const VkObjectTableDescriptorSetEntryNVX* from,
5058 VkObjectTableDescriptorSetEntryNVX* to)
5059{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005060 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005061 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005062}
5063
5064void deepcopy_VkObjectTableVertexBufferEntryNVX(
5065 Pool* pool,
5066 const VkObjectTableVertexBufferEntryNVX* from,
5067 VkObjectTableVertexBufferEntryNVX* to)
5068{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005069 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005070 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005071}
5072
5073void deepcopy_VkObjectTableIndexBufferEntryNVX(
5074 Pool* pool,
5075 const VkObjectTableIndexBufferEntryNVX* from,
5076 VkObjectTableIndexBufferEntryNVX* to)
5077{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005078 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005079 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005080}
5081
5082void deepcopy_VkObjectTablePushConstantEntryNVX(
5083 Pool* pool,
5084 const VkObjectTablePushConstantEntryNVX* from,
5085 VkObjectTablePushConstantEntryNVX* to)
5086{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005087 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005088 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005089}
5090
5091#endif
5092#ifdef VK_NV_clip_space_w_scaling
5093void deepcopy_VkViewportWScalingNV(
5094 Pool* pool,
5095 const VkViewportWScalingNV* from,
5096 VkViewportWScalingNV* to)
5097{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005098 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005099 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005100}
5101
5102void deepcopy_VkPipelineViewportWScalingStateCreateInfoNV(
5103 Pool* pool,
5104 const VkPipelineViewportWScalingStateCreateInfoNV* from,
5105 VkPipelineViewportWScalingStateCreateInfoNV* to)
5106{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005107 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005108 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005109 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005110 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005111 if (pNext_size)
5112 {
5113 to->pNext = (const void*)pool->alloc(pNext_size);
5114 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5115 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005116 to->pViewportWScalings = nullptr;
5117 if (from->pViewportWScalings)
5118 {
5119 to->pViewportWScalings = (VkViewportWScalingNV*)pool->alloc(from->viewportCount * sizeof(const VkViewportWScalingNV));
5120 to->viewportCount = from->viewportCount;
5121 for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
5122 {
5123 deepcopy_VkViewportWScalingNV(pool, from->pViewportWScalings + i, (VkViewportWScalingNV*)(to->pViewportWScalings + i));
5124 }
5125 }
5126}
5127
5128#endif
5129#ifdef VK_EXT_direct_mode_display
5130#endif
5131#ifdef VK_EXT_acquire_xlib_display
5132#endif
5133#ifdef VK_EXT_display_surface_counter
5134void deepcopy_VkSurfaceCapabilities2EXT(
5135 Pool* pool,
5136 const VkSurfaceCapabilities2EXT* from,
5137 VkSurfaceCapabilities2EXT* to)
5138{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005139 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005140 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005141 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005142 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005143 if (pNext_size)
5144 {
5145 to->pNext = (void*)pool->alloc(pNext_size);
5146 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5147 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005148 deepcopy_VkExtent2D(pool, &from->currentExtent, (VkExtent2D*)(&to->currentExtent));
5149 deepcopy_VkExtent2D(pool, &from->minImageExtent, (VkExtent2D*)(&to->minImageExtent));
5150 deepcopy_VkExtent2D(pool, &from->maxImageExtent, (VkExtent2D*)(&to->maxImageExtent));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005151}
5152
5153#endif
5154#ifdef VK_EXT_display_control
5155void deepcopy_VkDisplayPowerInfoEXT(
5156 Pool* pool,
5157 const VkDisplayPowerInfoEXT* from,
5158 VkDisplayPowerInfoEXT* to)
5159{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005160 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005161 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005162 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005163 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005164 if (pNext_size)
5165 {
5166 to->pNext = (const void*)pool->alloc(pNext_size);
5167 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5168 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005169}
5170
5171void deepcopy_VkDeviceEventInfoEXT(
5172 Pool* pool,
5173 const VkDeviceEventInfoEXT* from,
5174 VkDeviceEventInfoEXT* to)
5175{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005176 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005177 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005178 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005179 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005180 if (pNext_size)
5181 {
5182 to->pNext = (const void*)pool->alloc(pNext_size);
5183 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5184 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005185}
5186
5187void deepcopy_VkDisplayEventInfoEXT(
5188 Pool* pool,
5189 const VkDisplayEventInfoEXT* from,
5190 VkDisplayEventInfoEXT* to)
5191{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005192 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005193 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005194 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005195 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005196 if (pNext_size)
5197 {
5198 to->pNext = (const void*)pool->alloc(pNext_size);
5199 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5200 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005201}
5202
5203void deepcopy_VkSwapchainCounterCreateInfoEXT(
5204 Pool* pool,
5205 const VkSwapchainCounterCreateInfoEXT* from,
5206 VkSwapchainCounterCreateInfoEXT* to)
5207{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005208 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005209 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005210 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005211 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005212 if (pNext_size)
5213 {
5214 to->pNext = (const void*)pool->alloc(pNext_size);
5215 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5216 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005217}
5218
5219#endif
5220#ifdef VK_GOOGLE_display_timing
5221void deepcopy_VkRefreshCycleDurationGOOGLE(
5222 Pool* pool,
5223 const VkRefreshCycleDurationGOOGLE* from,
5224 VkRefreshCycleDurationGOOGLE* to)
5225{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005226 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005227 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005228}
5229
5230void deepcopy_VkPastPresentationTimingGOOGLE(
5231 Pool* pool,
5232 const VkPastPresentationTimingGOOGLE* from,
5233 VkPastPresentationTimingGOOGLE* to)
5234{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005235 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005236 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005237}
5238
5239void deepcopy_VkPresentTimeGOOGLE(
5240 Pool* pool,
5241 const VkPresentTimeGOOGLE* from,
5242 VkPresentTimeGOOGLE* to)
5243{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005244 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005245 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005246}
5247
5248void deepcopy_VkPresentTimesInfoGOOGLE(
5249 Pool* pool,
5250 const VkPresentTimesInfoGOOGLE* from,
5251 VkPresentTimesInfoGOOGLE* to)
5252{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005253 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005254 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005255 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005256 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005257 if (pNext_size)
5258 {
5259 to->pNext = (const void*)pool->alloc(pNext_size);
5260 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5261 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005262 to->pTimes = nullptr;
5263 if (from->pTimes)
5264 {
5265 to->pTimes = (VkPresentTimeGOOGLE*)pool->alloc(from->swapchainCount * sizeof(const VkPresentTimeGOOGLE));
5266 to->swapchainCount = from->swapchainCount;
5267 for (uint32_t i = 0; i < (uint32_t)from->swapchainCount; ++i)
5268 {
5269 deepcopy_VkPresentTimeGOOGLE(pool, from->pTimes + i, (VkPresentTimeGOOGLE*)(to->pTimes + i));
5270 }
5271 }
5272}
5273
5274#endif
5275#ifdef VK_NV_sample_mask_override_coverage
5276#endif
5277#ifdef VK_NV_geometry_shader_passthrough
5278#endif
5279#ifdef VK_NV_viewport_array2
5280#endif
5281#ifdef VK_NVX_multiview_per_view_attributes
5282void deepcopy_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
5283 Pool* pool,
5284 const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* from,
5285 VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* to)
5286{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005287 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005288 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005289 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005290 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005291 if (pNext_size)
5292 {
5293 to->pNext = (void*)pool->alloc(pNext_size);
5294 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5295 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005296}
5297
5298#endif
5299#ifdef VK_NV_viewport_swizzle
5300void deepcopy_VkViewportSwizzleNV(
5301 Pool* pool,
5302 const VkViewportSwizzleNV* from,
5303 VkViewportSwizzleNV* to)
5304{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005305 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005306 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005307}
5308
5309void deepcopy_VkPipelineViewportSwizzleStateCreateInfoNV(
5310 Pool* pool,
5311 const VkPipelineViewportSwizzleStateCreateInfoNV* from,
5312 VkPipelineViewportSwizzleStateCreateInfoNV* to)
5313{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005314 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005315 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005316 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005317 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005318 if (pNext_size)
5319 {
5320 to->pNext = (const void*)pool->alloc(pNext_size);
5321 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5322 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005323 to->pViewportSwizzles = nullptr;
5324 if (from->pViewportSwizzles)
5325 {
5326 to->pViewportSwizzles = (VkViewportSwizzleNV*)pool->alloc(from->viewportCount * sizeof(const VkViewportSwizzleNV));
5327 to->viewportCount = from->viewportCount;
5328 for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
5329 {
5330 deepcopy_VkViewportSwizzleNV(pool, from->pViewportSwizzles + i, (VkViewportSwizzleNV*)(to->pViewportSwizzles + i));
5331 }
5332 }
5333}
5334
5335#endif
5336#ifdef VK_EXT_discard_rectangles
5337void deepcopy_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
5338 Pool* pool,
5339 const VkPhysicalDeviceDiscardRectanglePropertiesEXT* from,
5340 VkPhysicalDeviceDiscardRectanglePropertiesEXT* to)
5341{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005342 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005343 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005344 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005345 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005346 if (pNext_size)
5347 {
5348 to->pNext = (void*)pool->alloc(pNext_size);
5349 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5350 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005351}
5352
5353void deepcopy_VkPipelineDiscardRectangleStateCreateInfoEXT(
5354 Pool* pool,
5355 const VkPipelineDiscardRectangleStateCreateInfoEXT* from,
5356 VkPipelineDiscardRectangleStateCreateInfoEXT* to)
5357{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005358 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005359 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005360 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005361 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005362 if (pNext_size)
5363 {
5364 to->pNext = (const void*)pool->alloc(pNext_size);
5365 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5366 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005367 to->pDiscardRectangles = nullptr;
5368 if (from->pDiscardRectangles)
5369 {
5370 to->pDiscardRectangles = (VkRect2D*)pool->alloc(from->discardRectangleCount * sizeof(const VkRect2D));
5371 to->discardRectangleCount = from->discardRectangleCount;
5372 for (uint32_t i = 0; i < (uint32_t)from->discardRectangleCount; ++i)
5373 {
5374 deepcopy_VkRect2D(pool, from->pDiscardRectangles + i, (VkRect2D*)(to->pDiscardRectangles + i));
5375 }
5376 }
5377}
5378
5379#endif
5380#ifdef VK_EXT_conservative_rasterization
5381void deepcopy_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
5382 Pool* pool,
5383 const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* from,
5384 VkPhysicalDeviceConservativeRasterizationPropertiesEXT* to)
5385{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005386 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005387 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005388 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005389 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005390 if (pNext_size)
5391 {
5392 to->pNext = (void*)pool->alloc(pNext_size);
5393 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5394 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005395}
5396
5397void deepcopy_VkPipelineRasterizationConservativeStateCreateInfoEXT(
5398 Pool* pool,
5399 const VkPipelineRasterizationConservativeStateCreateInfoEXT* from,
5400 VkPipelineRasterizationConservativeStateCreateInfoEXT* to)
5401{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005402 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005403 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005404 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005405 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005406 if (pNext_size)
5407 {
5408 to->pNext = (const void*)pool->alloc(pNext_size);
5409 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5410 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005411}
5412
5413#endif
5414#ifdef VK_EXT_swapchain_colorspace
5415#endif
5416#ifdef VK_EXT_hdr_metadata
5417void deepcopy_VkXYColorEXT(
5418 Pool* pool,
5419 const VkXYColorEXT* from,
5420 VkXYColorEXT* to)
5421{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005422 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005423 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005424}
5425
5426void deepcopy_VkHdrMetadataEXT(
5427 Pool* pool,
5428 const VkHdrMetadataEXT* from,
5429 VkHdrMetadataEXT* to)
5430{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005431 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005432 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005433 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005434 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005435 if (pNext_size)
5436 {
5437 to->pNext = (const void*)pool->alloc(pNext_size);
5438 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5439 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005440 deepcopy_VkXYColorEXT(pool, &from->displayPrimaryRed, (VkXYColorEXT*)(&to->displayPrimaryRed));
5441 deepcopy_VkXYColorEXT(pool, &from->displayPrimaryGreen, (VkXYColorEXT*)(&to->displayPrimaryGreen));
5442 deepcopy_VkXYColorEXT(pool, &from->displayPrimaryBlue, (VkXYColorEXT*)(&to->displayPrimaryBlue));
5443 deepcopy_VkXYColorEXT(pool, &from->whitePoint, (VkXYColorEXT*)(&to->whitePoint));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005444}
5445
5446#endif
5447#ifdef VK_MVK_ios_surface
5448void deepcopy_VkIOSSurfaceCreateInfoMVK(
5449 Pool* pool,
5450 const VkIOSSurfaceCreateInfoMVK* from,
5451 VkIOSSurfaceCreateInfoMVK* to)
5452{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005453 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005454 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005455 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005456 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005457 if (pNext_size)
5458 {
5459 to->pNext = (const void*)pool->alloc(pNext_size);
5460 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5461 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005462 to->pView = nullptr;
5463 if (from->pView)
5464 {
5465 to->pView = (void*)pool->dupArray(from->pView, sizeof(const uint8_t));
5466 }
5467}
5468
5469#endif
5470#ifdef VK_MVK_macos_surface
5471void deepcopy_VkMacOSSurfaceCreateInfoMVK(
5472 Pool* pool,
5473 const VkMacOSSurfaceCreateInfoMVK* from,
5474 VkMacOSSurfaceCreateInfoMVK* to)
5475{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005476 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005477 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005478 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005479 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005480 if (pNext_size)
5481 {
5482 to->pNext = (const void*)pool->alloc(pNext_size);
5483 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5484 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005485 to->pView = nullptr;
5486 if (from->pView)
5487 {
5488 to->pView = (void*)pool->dupArray(from->pView, sizeof(const uint8_t));
5489 }
5490}
5491
5492#endif
5493#ifdef VK_EXT_external_memory_dma_buf
5494#endif
5495#ifdef VK_EXT_queue_family_foreign
5496#endif
5497#ifdef VK_EXT_debug_utils
5498void deepcopy_VkDebugUtilsObjectNameInfoEXT(
5499 Pool* pool,
5500 const VkDebugUtilsObjectNameInfoEXT* from,
5501 VkDebugUtilsObjectNameInfoEXT* to)
5502{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005503 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005504 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005505 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005506 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005507 if (pNext_size)
5508 {
5509 to->pNext = (const void*)pool->alloc(pNext_size);
5510 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5511 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005512 to->pObjectName = nullptr;
5513 if (from->pObjectName)
5514 {
5515 to->pObjectName = pool->strDup(from->pObjectName);
5516 }
5517}
5518
5519void deepcopy_VkDebugUtilsObjectTagInfoEXT(
5520 Pool* pool,
5521 const VkDebugUtilsObjectTagInfoEXT* from,
5522 VkDebugUtilsObjectTagInfoEXT* to)
5523{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005524 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005525 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005526 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005527 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005528 if (pNext_size)
5529 {
5530 to->pNext = (const void*)pool->alloc(pNext_size);
5531 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5532 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005533 to->pTag = nullptr;
5534 if (from->pTag)
5535 {
5536 to->pTag = (void*)pool->dupArray(from->pTag, from->tagSize * sizeof(const uint8_t));
5537 }
5538}
5539
5540void deepcopy_VkDebugUtilsLabelEXT(
5541 Pool* pool,
5542 const VkDebugUtilsLabelEXT* from,
5543 VkDebugUtilsLabelEXT* to)
5544{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005545 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005546 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005547 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005548 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005549 if (pNext_size)
5550 {
5551 to->pNext = (const void*)pool->alloc(pNext_size);
5552 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5553 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005554 to->pLabelName = nullptr;
5555 if (from->pLabelName)
5556 {
5557 to->pLabelName = pool->strDup(from->pLabelName);
5558 }
5559 memcpy(to->color, from->color, 4 * sizeof(float));
5560}
5561
5562void deepcopy_VkDebugUtilsMessengerCallbackDataEXT(
5563 Pool* pool,
5564 const VkDebugUtilsMessengerCallbackDataEXT* from,
5565 VkDebugUtilsMessengerCallbackDataEXT* to)
5566{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005567 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005568 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005569 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005570 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005571 if (pNext_size)
5572 {
5573 to->pNext = (const void*)pool->alloc(pNext_size);
5574 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5575 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005576 to->pMessageIdName = nullptr;
5577 if (from->pMessageIdName)
5578 {
5579 to->pMessageIdName = pool->strDup(from->pMessageIdName);
5580 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005581 to->pMessage = nullptr;
5582 if (from->pMessage)
5583 {
5584 to->pMessage = pool->strDup(from->pMessage);
5585 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005586 to->pQueueLabels = nullptr;
5587 if (from->pQueueLabels)
5588 {
5589 to->pQueueLabels = (VkDebugUtilsLabelEXT*)pool->alloc(from->queueLabelCount * sizeof(VkDebugUtilsLabelEXT));
5590 to->queueLabelCount = from->queueLabelCount;
5591 for (uint32_t i = 0; i < (uint32_t)from->queueLabelCount; ++i)
5592 {
5593 deepcopy_VkDebugUtilsLabelEXT(pool, from->pQueueLabels + i, (VkDebugUtilsLabelEXT*)(to->pQueueLabels + i));
5594 }
5595 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005596 to->pCmdBufLabels = nullptr;
5597 if (from->pCmdBufLabels)
5598 {
5599 to->pCmdBufLabels = (VkDebugUtilsLabelEXT*)pool->alloc(from->cmdBufLabelCount * sizeof(VkDebugUtilsLabelEXT));
5600 to->cmdBufLabelCount = from->cmdBufLabelCount;
5601 for (uint32_t i = 0; i < (uint32_t)from->cmdBufLabelCount; ++i)
5602 {
5603 deepcopy_VkDebugUtilsLabelEXT(pool, from->pCmdBufLabels + i, (VkDebugUtilsLabelEXT*)(to->pCmdBufLabels + i));
5604 }
5605 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005606 to->pObjects = nullptr;
5607 if (from->pObjects)
5608 {
5609 to->pObjects = (VkDebugUtilsObjectNameInfoEXT*)pool->alloc(from->objectCount * sizeof(VkDebugUtilsObjectNameInfoEXT));
5610 to->objectCount = from->objectCount;
5611 for (uint32_t i = 0; i < (uint32_t)from->objectCount; ++i)
5612 {
5613 deepcopy_VkDebugUtilsObjectNameInfoEXT(pool, from->pObjects + i, (VkDebugUtilsObjectNameInfoEXT*)(to->pObjects + i));
5614 }
5615 }
5616}
5617
5618void deepcopy_VkDebugUtilsMessengerCreateInfoEXT(
5619 Pool* pool,
5620 const VkDebugUtilsMessengerCreateInfoEXT* from,
5621 VkDebugUtilsMessengerCreateInfoEXT* to)
5622{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005623 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005624 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005625 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005626 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005627 if (pNext_size)
5628 {
5629 to->pNext = (const void*)pool->alloc(pNext_size);
5630 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5631 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005632 to->pUserData = nullptr;
5633 if (from->pUserData)
5634 {
5635 to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t));
5636 }
5637}
5638
5639#endif
5640#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5641void deepcopy_VkAndroidHardwareBufferUsageANDROID(
5642 Pool* pool,
5643 const VkAndroidHardwareBufferUsageANDROID* from,
5644 VkAndroidHardwareBufferUsageANDROID* to)
5645{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005646 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005647 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005648 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005649 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005650 if (pNext_size)
5651 {
5652 to->pNext = (void*)pool->alloc(pNext_size);
5653 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5654 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005655}
5656
5657void deepcopy_VkAndroidHardwareBufferPropertiesANDROID(
5658 Pool* pool,
5659 const VkAndroidHardwareBufferPropertiesANDROID* from,
5660 VkAndroidHardwareBufferPropertiesANDROID* to)
5661{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005662 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005663 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005664 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005665 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005666 if (pNext_size)
5667 {
5668 to->pNext = (void*)pool->alloc(pNext_size);
5669 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5670 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005671}
5672
5673void deepcopy_VkAndroidHardwareBufferFormatPropertiesANDROID(
5674 Pool* pool,
5675 const VkAndroidHardwareBufferFormatPropertiesANDROID* from,
5676 VkAndroidHardwareBufferFormatPropertiesANDROID* to)
5677{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005678 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005679 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005680 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005681 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005682 if (pNext_size)
5683 {
5684 to->pNext = (void*)pool->alloc(pNext_size);
5685 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5686 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005687 deepcopy_VkComponentMapping(pool, &from->samplerYcbcrConversionComponents, (VkComponentMapping*)(&to->samplerYcbcrConversionComponents));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005688}
5689
5690void deepcopy_VkImportAndroidHardwareBufferInfoANDROID(
5691 Pool* pool,
5692 const VkImportAndroidHardwareBufferInfoANDROID* from,
5693 VkImportAndroidHardwareBufferInfoANDROID* to)
5694{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005695 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005696 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005697 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005698 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005699 if (pNext_size)
5700 {
5701 to->pNext = (const void*)pool->alloc(pNext_size);
5702 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5703 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005704 to->buffer = nullptr;
5705 if (from->buffer)
5706 {
5707 to->buffer = (AHardwareBuffer*)pool->dupArray(from->buffer, sizeof(AHardwareBuffer));
5708 }
5709}
5710
5711void deepcopy_VkMemoryGetAndroidHardwareBufferInfoANDROID(
5712 Pool* pool,
5713 const VkMemoryGetAndroidHardwareBufferInfoANDROID* from,
5714 VkMemoryGetAndroidHardwareBufferInfoANDROID* to)
5715{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005716 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005717 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005718 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005719 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005720 if (pNext_size)
5721 {
5722 to->pNext = (const void*)pool->alloc(pNext_size);
5723 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5724 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005725}
5726
5727void deepcopy_VkExternalFormatANDROID(
5728 Pool* pool,
5729 const VkExternalFormatANDROID* from,
5730 VkExternalFormatANDROID* to)
5731{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005732 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005733 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005734 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005735 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005736 if (pNext_size)
5737 {
5738 to->pNext = (void*)pool->alloc(pNext_size);
5739 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5740 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005741}
5742
5743#endif
5744#ifdef VK_EXT_sampler_filter_minmax
5745void deepcopy_VkSamplerReductionModeCreateInfoEXT(
5746 Pool* pool,
5747 const VkSamplerReductionModeCreateInfoEXT* from,
5748 VkSamplerReductionModeCreateInfoEXT* to)
5749{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005750 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005751 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005752 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005753 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005754 if (pNext_size)
5755 {
5756 to->pNext = (const void*)pool->alloc(pNext_size);
5757 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5758 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005759}
5760
5761void deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
5762 Pool* pool,
5763 const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* from,
5764 VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* to)
5765{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005766 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005767 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005768 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005769 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005770 if (pNext_size)
5771 {
5772 to->pNext = (void*)pool->alloc(pNext_size);
5773 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5774 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005775}
5776
5777#endif
5778#ifdef VK_AMD_gpu_shader_int16
5779#endif
5780#ifdef VK_AMD_mixed_attachment_samples
5781#endif
5782#ifdef VK_AMD_shader_fragment_mask
5783#endif
5784#ifdef VK_EXT_shader_stencil_export
5785#endif
5786#ifdef VK_EXT_sample_locations
5787void deepcopy_VkSampleLocationEXT(
5788 Pool* pool,
5789 const VkSampleLocationEXT* from,
5790 VkSampleLocationEXT* to)
5791{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005792 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005793 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005794}
5795
5796void deepcopy_VkSampleLocationsInfoEXT(
5797 Pool* pool,
5798 const VkSampleLocationsInfoEXT* from,
5799 VkSampleLocationsInfoEXT* to)
5800{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005801 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005802 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005803 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005804 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005805 if (pNext_size)
5806 {
5807 to->pNext = (const void*)pool->alloc(pNext_size);
5808 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5809 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005810 deepcopy_VkExtent2D(pool, &from->sampleLocationGridSize, (VkExtent2D*)(&to->sampleLocationGridSize));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005811 to->pSampleLocations = nullptr;
5812 if (from->pSampleLocations)
5813 {
5814 to->pSampleLocations = (VkSampleLocationEXT*)pool->alloc(from->sampleLocationsCount * sizeof(const VkSampleLocationEXT));
5815 to->sampleLocationsCount = from->sampleLocationsCount;
5816 for (uint32_t i = 0; i < (uint32_t)from->sampleLocationsCount; ++i)
5817 {
5818 deepcopy_VkSampleLocationEXT(pool, from->pSampleLocations + i, (VkSampleLocationEXT*)(to->pSampleLocations + i));
5819 }
5820 }
5821}
5822
5823void deepcopy_VkAttachmentSampleLocationsEXT(
5824 Pool* pool,
5825 const VkAttachmentSampleLocationsEXT* from,
5826 VkAttachmentSampleLocationsEXT* to)
5827{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005828 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005829 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005830 deepcopy_VkSampleLocationsInfoEXT(pool, &from->sampleLocationsInfo, (VkSampleLocationsInfoEXT*)(&to->sampleLocationsInfo));
5831}
5832
5833void deepcopy_VkSubpassSampleLocationsEXT(
5834 Pool* pool,
5835 const VkSubpassSampleLocationsEXT* from,
5836 VkSubpassSampleLocationsEXT* to)
5837{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005838 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005839 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005840 deepcopy_VkSampleLocationsInfoEXT(pool, &from->sampleLocationsInfo, (VkSampleLocationsInfoEXT*)(&to->sampleLocationsInfo));
5841}
5842
5843void deepcopy_VkRenderPassSampleLocationsBeginInfoEXT(
5844 Pool* pool,
5845 const VkRenderPassSampleLocationsBeginInfoEXT* from,
5846 VkRenderPassSampleLocationsBeginInfoEXT* to)
5847{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005848 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005849 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005850 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005851 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005852 if (pNext_size)
5853 {
5854 to->pNext = (const void*)pool->alloc(pNext_size);
5855 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5856 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005857 to->pAttachmentInitialSampleLocations = nullptr;
5858 if (from->pAttachmentInitialSampleLocations)
5859 {
5860 to->pAttachmentInitialSampleLocations = (VkAttachmentSampleLocationsEXT*)pool->alloc(from->attachmentInitialSampleLocationsCount * sizeof(const VkAttachmentSampleLocationsEXT));
5861 to->attachmentInitialSampleLocationsCount = from->attachmentInitialSampleLocationsCount;
5862 for (uint32_t i = 0; i < (uint32_t)from->attachmentInitialSampleLocationsCount; ++i)
5863 {
5864 deepcopy_VkAttachmentSampleLocationsEXT(pool, from->pAttachmentInitialSampleLocations + i, (VkAttachmentSampleLocationsEXT*)(to->pAttachmentInitialSampleLocations + i));
5865 }
5866 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005867 to->pPostSubpassSampleLocations = nullptr;
5868 if (from->pPostSubpassSampleLocations)
5869 {
5870 to->pPostSubpassSampleLocations = (VkSubpassSampleLocationsEXT*)pool->alloc(from->postSubpassSampleLocationsCount * sizeof(const VkSubpassSampleLocationsEXT));
5871 to->postSubpassSampleLocationsCount = from->postSubpassSampleLocationsCount;
5872 for (uint32_t i = 0; i < (uint32_t)from->postSubpassSampleLocationsCount; ++i)
5873 {
5874 deepcopy_VkSubpassSampleLocationsEXT(pool, from->pPostSubpassSampleLocations + i, (VkSubpassSampleLocationsEXT*)(to->pPostSubpassSampleLocations + i));
5875 }
5876 }
5877}
5878
5879void deepcopy_VkPipelineSampleLocationsStateCreateInfoEXT(
5880 Pool* pool,
5881 const VkPipelineSampleLocationsStateCreateInfoEXT* from,
5882 VkPipelineSampleLocationsStateCreateInfoEXT* to)
5883{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005884 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005885 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005886 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005887 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005888 if (pNext_size)
5889 {
5890 to->pNext = (const void*)pool->alloc(pNext_size);
5891 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5892 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005893 deepcopy_VkSampleLocationsInfoEXT(pool, &from->sampleLocationsInfo, (VkSampleLocationsInfoEXT*)(&to->sampleLocationsInfo));
5894}
5895
5896void deepcopy_VkPhysicalDeviceSampleLocationsPropertiesEXT(
5897 Pool* pool,
5898 const VkPhysicalDeviceSampleLocationsPropertiesEXT* from,
5899 VkPhysicalDeviceSampleLocationsPropertiesEXT* to)
5900{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005901 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005902 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005903 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005904 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005905 if (pNext_size)
5906 {
5907 to->pNext = (void*)pool->alloc(pNext_size);
5908 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5909 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005910 deepcopy_VkExtent2D(pool, &from->maxSampleLocationGridSize, (VkExtent2D*)(&to->maxSampleLocationGridSize));
5911 memcpy(to->sampleLocationCoordinateRange, from->sampleLocationCoordinateRange, 2 * sizeof(float));
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005912}
5913
5914void deepcopy_VkMultisamplePropertiesEXT(
5915 Pool* pool,
5916 const VkMultisamplePropertiesEXT* from,
5917 VkMultisamplePropertiesEXT* to)
5918{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005919 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005920 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005921 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005922 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005923 if (pNext_size)
5924 {
5925 to->pNext = (void*)pool->alloc(pNext_size);
5926 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5927 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005928 deepcopy_VkExtent2D(pool, &from->maxSampleLocationGridSize, (VkExtent2D*)(&to->maxSampleLocationGridSize));
5929}
5930
5931#endif
5932#ifdef VK_EXT_blend_operation_advanced
5933void deepcopy_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
5934 Pool* pool,
5935 const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* from,
5936 VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* to)
5937{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005938 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005939 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005940 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005941 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005942 if (pNext_size)
5943 {
5944 to->pNext = (void*)pool->alloc(pNext_size);
5945 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5946 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005947}
5948
5949void deepcopy_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
5950 Pool* pool,
5951 const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* from,
5952 VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* to)
5953{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005954 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005955 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005956 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005957 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005958 if (pNext_size)
5959 {
5960 to->pNext = (void*)pool->alloc(pNext_size);
5961 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5962 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005963}
5964
5965void deepcopy_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
5966 Pool* pool,
5967 const VkPipelineColorBlendAdvancedStateCreateInfoEXT* from,
5968 VkPipelineColorBlendAdvancedStateCreateInfoEXT* to)
5969{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005970 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005971 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005972 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005973 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005974 if (pNext_size)
5975 {
5976 to->pNext = (const void*)pool->alloc(pNext_size);
5977 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5978 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005979}
5980
5981#endif
5982#ifdef VK_NV_fragment_coverage_to_color
5983void deepcopy_VkPipelineCoverageToColorStateCreateInfoNV(
5984 Pool* pool,
5985 const VkPipelineCoverageToColorStateCreateInfoNV* from,
5986 VkPipelineCoverageToColorStateCreateInfoNV* to)
5987{
Lingfeng Yang36891c52018-11-09 14:18:35 -08005988 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08005989 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005990 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08005991 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08005992 if (pNext_size)
5993 {
5994 to->pNext = (const void*)pool->alloc(pNext_size);
5995 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
5996 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08005997}
5998
5999#endif
6000#ifdef VK_NV_framebuffer_mixed_samples
6001void deepcopy_VkPipelineCoverageModulationStateCreateInfoNV(
6002 Pool* pool,
6003 const VkPipelineCoverageModulationStateCreateInfoNV* from,
6004 VkPipelineCoverageModulationStateCreateInfoNV* to)
6005{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006006 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006007 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006008 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006009 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006010 if (pNext_size)
6011 {
6012 to->pNext = (const void*)pool->alloc(pNext_size);
6013 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6014 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006015 to->pCoverageModulationTable = nullptr;
6016 if (from->pCoverageModulationTable)
6017 {
6018 to->pCoverageModulationTable = (float*)pool->dupArray(from->pCoverageModulationTable, from->coverageModulationTableCount * sizeof(const float));
6019 }
6020}
6021
6022#endif
6023#ifdef VK_NV_fill_rectangle
6024#endif
6025#ifdef VK_EXT_post_depth_coverage
6026#endif
6027#ifdef VK_EXT_validation_cache
6028void deepcopy_VkValidationCacheCreateInfoEXT(
6029 Pool* pool,
6030 const VkValidationCacheCreateInfoEXT* from,
6031 VkValidationCacheCreateInfoEXT* to)
6032{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006033 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006034 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006035 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006036 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006037 if (pNext_size)
6038 {
6039 to->pNext = (const void*)pool->alloc(pNext_size);
6040 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6041 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006042 to->pInitialData = nullptr;
6043 if (from->pInitialData)
6044 {
6045 to->pInitialData = (void*)pool->dupArray(from->pInitialData, from->initialDataSize * sizeof(const uint8_t));
6046 }
6047}
6048
6049void deepcopy_VkShaderModuleValidationCacheCreateInfoEXT(
6050 Pool* pool,
6051 const VkShaderModuleValidationCacheCreateInfoEXT* from,
6052 VkShaderModuleValidationCacheCreateInfoEXT* to)
6053{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006054 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006055 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006056 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006057 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006058 if (pNext_size)
6059 {
6060 to->pNext = (const void*)pool->alloc(pNext_size);
6061 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6062 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006063}
6064
6065#endif
6066#ifdef VK_EXT_descriptor_indexing
6067void deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
6068 Pool* pool,
6069 const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* from,
6070 VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* to)
6071{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006072 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006073 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006074 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006075 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006076 if (pNext_size)
6077 {
6078 to->pNext = (const void*)pool->alloc(pNext_size);
6079 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6080 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006081 to->pBindingFlags = nullptr;
6082 if (from->pBindingFlags)
6083 {
6084 to->pBindingFlags = (VkDescriptorBindingFlagsEXT*)pool->dupArray(from->pBindingFlags, from->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
6085 }
6086}
6087
6088void deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
6089 Pool* pool,
6090 const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* from,
6091 VkPhysicalDeviceDescriptorIndexingFeaturesEXT* to)
6092{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006093 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006094 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006095 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006096 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006097 if (pNext_size)
6098 {
6099 to->pNext = (void*)pool->alloc(pNext_size);
6100 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6101 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006102}
6103
6104void deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
6105 Pool* pool,
6106 const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* from,
6107 VkPhysicalDeviceDescriptorIndexingPropertiesEXT* to)
6108{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006109 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006110 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006111 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006112 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006113 if (pNext_size)
6114 {
6115 to->pNext = (void*)pool->alloc(pNext_size);
6116 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6117 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006118}
6119
6120void deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
6121 Pool* pool,
6122 const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* from,
6123 VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* to)
6124{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006125 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006126 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006127 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006128 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006129 if (pNext_size)
6130 {
6131 to->pNext = (const void*)pool->alloc(pNext_size);
6132 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6133 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006134 to->pDescriptorCounts = nullptr;
6135 if (from->pDescriptorCounts)
6136 {
6137 to->pDescriptorCounts = (uint32_t*)pool->dupArray(from->pDescriptorCounts, from->descriptorSetCount * sizeof(const uint32_t));
6138 }
6139}
6140
6141void deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
6142 Pool* pool,
6143 const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* from,
6144 VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* to)
6145{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006146 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006147 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006148 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006149 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006150 if (pNext_size)
6151 {
6152 to->pNext = (void*)pool->alloc(pNext_size);
6153 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6154 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006155}
6156
6157#endif
6158#ifdef VK_EXT_shader_viewport_index_layer
6159#endif
6160#ifdef VK_EXT_global_priority
6161void deepcopy_VkDeviceQueueGlobalPriorityCreateInfoEXT(
6162 Pool* pool,
6163 const VkDeviceQueueGlobalPriorityCreateInfoEXT* from,
6164 VkDeviceQueueGlobalPriorityCreateInfoEXT* to)
6165{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006166 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006167 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006168 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006169 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006170 if (pNext_size)
6171 {
6172 to->pNext = (const void*)pool->alloc(pNext_size);
6173 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6174 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006175}
6176
6177#endif
6178#ifdef VK_EXT_external_memory_host
6179void deepcopy_VkImportMemoryHostPointerInfoEXT(
6180 Pool* pool,
6181 const VkImportMemoryHostPointerInfoEXT* from,
6182 VkImportMemoryHostPointerInfoEXT* to)
6183{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006184 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006185 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006186 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006187 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006188 if (pNext_size)
6189 {
6190 to->pNext = (const void*)pool->alloc(pNext_size);
6191 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6192 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006193 to->pHostPointer = nullptr;
6194 if (from->pHostPointer)
6195 {
6196 to->pHostPointer = (void*)pool->dupArray(from->pHostPointer, sizeof(uint8_t));
6197 }
6198}
6199
6200void deepcopy_VkMemoryHostPointerPropertiesEXT(
6201 Pool* pool,
6202 const VkMemoryHostPointerPropertiesEXT* from,
6203 VkMemoryHostPointerPropertiesEXT* to)
6204{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006205 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006206 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006207 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006208 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006209 if (pNext_size)
6210 {
6211 to->pNext = (void*)pool->alloc(pNext_size);
6212 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6213 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006214}
6215
6216void deepcopy_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
6217 Pool* pool,
6218 const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* from,
6219 VkPhysicalDeviceExternalMemoryHostPropertiesEXT* to)
6220{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006221 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006222 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006223 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006224 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006225 if (pNext_size)
6226 {
6227 to->pNext = (void*)pool->alloc(pNext_size);
6228 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6229 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006230}
6231
6232#endif
6233#ifdef VK_AMD_buffer_marker
6234#endif
6235#ifdef VK_AMD_shader_core_properties
6236void deepcopy_VkPhysicalDeviceShaderCorePropertiesAMD(
6237 Pool* pool,
6238 const VkPhysicalDeviceShaderCorePropertiesAMD* from,
6239 VkPhysicalDeviceShaderCorePropertiesAMD* to)
6240{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006241 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006242 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006243 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006244 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006245 if (pNext_size)
6246 {
6247 to->pNext = (void*)pool->alloc(pNext_size);
6248 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6249 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006250}
6251
6252#endif
6253#ifdef VK_EXT_vertex_attribute_divisor
6254void deepcopy_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
6255 Pool* pool,
6256 const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* from,
6257 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* to)
6258{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006259 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006260 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006261 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006262 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006263 if (pNext_size)
6264 {
6265 to->pNext = (void*)pool->alloc(pNext_size);
6266 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6267 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006268}
6269
6270void deepcopy_VkVertexInputBindingDivisorDescriptionEXT(
6271 Pool* pool,
6272 const VkVertexInputBindingDivisorDescriptionEXT* from,
6273 VkVertexInputBindingDivisorDescriptionEXT* to)
6274{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006275 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006276 *to = *from;
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006277}
6278
6279void deepcopy_VkPipelineVertexInputDivisorStateCreateInfoEXT(
6280 Pool* pool,
6281 const VkPipelineVertexInputDivisorStateCreateInfoEXT* from,
6282 VkPipelineVertexInputDivisorStateCreateInfoEXT* to)
6283{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006284 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006285 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006286 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006287 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006288 if (pNext_size)
6289 {
6290 to->pNext = (const void*)pool->alloc(pNext_size);
6291 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6292 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006293 to->pVertexBindingDivisors = nullptr;
6294 if (from->pVertexBindingDivisors)
6295 {
6296 to->pVertexBindingDivisors = (VkVertexInputBindingDivisorDescriptionEXT*)pool->alloc(from->vertexBindingDivisorCount * sizeof(const VkVertexInputBindingDivisorDescriptionEXT));
6297 to->vertexBindingDivisorCount = from->vertexBindingDivisorCount;
6298 for (uint32_t i = 0; i < (uint32_t)from->vertexBindingDivisorCount; ++i)
6299 {
6300 deepcopy_VkVertexInputBindingDivisorDescriptionEXT(pool, from->pVertexBindingDivisors + i, (VkVertexInputBindingDivisorDescriptionEXT*)(to->pVertexBindingDivisors + i));
6301 }
6302 }
6303}
6304
6305#endif
6306#ifdef VK_NV_shader_subgroup_partitioned
6307#endif
6308#ifdef VK_NV_device_diagnostic_checkpoints
6309void deepcopy_VkQueueFamilyCheckpointPropertiesNV(
6310 Pool* pool,
6311 const VkQueueFamilyCheckpointPropertiesNV* from,
6312 VkQueueFamilyCheckpointPropertiesNV* to)
6313{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006314 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006315 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006316 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006317 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006318 if (pNext_size)
6319 {
6320 to->pNext = (void*)pool->alloc(pNext_size);
6321 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6322 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006323}
6324
6325void deepcopy_VkCheckpointDataNV(
6326 Pool* pool,
6327 const VkCheckpointDataNV* from,
6328 VkCheckpointDataNV* to)
6329{
Lingfeng Yang36891c52018-11-09 14:18:35 -08006330 (void)pool;
Lingfeng Yang25baf112018-11-08 17:19:52 -08006331 *to = *from;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006332 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
Lingfeng Yang9d02e102018-11-10 01:51:46 -08006333 to->pNext = nullptr;
Lingfeng Yang750c5642018-11-13 17:03:11 -08006334 if (pNext_size)
6335 {
6336 to->pNext = (void*)pool->alloc(pNext_size);
6337 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6338 }
Lingfeng Yang71b596b2018-11-07 18:03:25 -08006339 to->pCheckpointMarker = nullptr;
6340 if (from->pCheckpointMarker)
6341 {
6342 to->pCheckpointMarker = (void*)pool->dupArray(from->pCheckpointMarker, sizeof(uint8_t));
6343 }
6344}
6345
6346#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08006347#ifdef VK_GOOGLE_address_space
6348#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006349#ifdef VK_GOOGLE_color_buffer
Lingfeng Yang7be62ce2019-02-20 09:05:28 -08006350void deepcopy_VkImportColorBufferGOOGLE(
6351 Pool* pool,
6352 const VkImportColorBufferGOOGLE* from,
6353 VkImportColorBufferGOOGLE* to)
6354{
6355 (void)pool;
6356 *to = *from;
6357 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
6358 to->pNext = nullptr;
6359 if (pNext_size)
6360 {
6361 to->pNext = (void*)pool->alloc(pNext_size);
6362 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6363 }
6364}
6365
6366void deepcopy_VkImportPhysicalAddressGOOGLE(
6367 Pool* pool,
6368 const VkImportPhysicalAddressGOOGLE* from,
6369 VkImportPhysicalAddressGOOGLE* to)
6370{
6371 (void)pool;
6372 *to = *from;
6373 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
6374 to->pNext = nullptr;
6375 if (pNext_size)
6376 {
6377 to->pNext = (void*)pool->alloc(pNext_size);
6378 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
6379 }
6380}
6381
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006382#endif
Lingfeng Yang750c5642018-11-13 17:03:11 -08006383void deepcopy_extension_struct(
6384 Pool* pool,
6385 const void* structExtension,
6386 void* structExtension_out)
6387{
6388 if (!structExtension)
6389 {
6390 return;
6391 }
Lingfeng Yang808a6312018-11-13 21:06:15 -08006392 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
Lingfeng Yang750c5642018-11-13 17:03:11 -08006393 switch(structType)
6394 {
6395#ifdef VK_VERSION_1_1
6396 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
6397 {
6398 deepcopy_VkPhysicalDeviceSubgroupProperties(pool, reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
6399 break;
6400 }
6401 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
6402 {
6403 deepcopy_VkPhysicalDevice16BitStorageFeatures(pool, reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension), reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
6404 break;
6405 }
6406 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
6407 {
6408 deepcopy_VkMemoryDedicatedRequirements(pool, reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension), reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
6409 break;
6410 }
6411 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
6412 {
6413 deepcopy_VkMemoryDedicatedAllocateInfo(pool, reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension), reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
6414 break;
6415 }
6416 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
6417 {
6418 deepcopy_VkMemoryAllocateFlagsInfo(pool, reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension), reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
6419 break;
6420 }
6421 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
6422 {
6423 deepcopy_VkDeviceGroupRenderPassBeginInfo(pool, reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension), reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
6424 break;
6425 }
6426 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
6427 {
6428 deepcopy_VkDeviceGroupCommandBufferBeginInfo(pool, reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension), reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
6429 break;
6430 }
6431 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
6432 {
6433 deepcopy_VkDeviceGroupSubmitInfo(pool, reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension), reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
6434 break;
6435 }
6436 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
6437 {
6438 deepcopy_VkDeviceGroupBindSparseInfo(pool, reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension), reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
6439 break;
6440 }
6441 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
6442 {
6443 deepcopy_VkBindBufferMemoryDeviceGroupInfo(pool, reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension), reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
6444 break;
6445 }
6446 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
6447 {
6448 deepcopy_VkBindImageMemoryDeviceGroupInfo(pool, reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension), reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
6449 break;
6450 }
6451 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
6452 {
6453 deepcopy_VkDeviceGroupDeviceCreateInfo(pool, reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension), reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
6454 break;
6455 }
6456 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
6457 {
6458 deepcopy_VkPhysicalDeviceFeatures2(pool, reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension), reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
6459 break;
6460 }
6461 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
6462 {
6463 deepcopy_VkPhysicalDevicePointClippingProperties(pool, reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension), reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
6464 break;
6465 }
6466 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
6467 {
6468 deepcopy_VkRenderPassInputAttachmentAspectCreateInfo(pool, reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension), reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out));
6469 break;
6470 }
6471 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
6472 {
6473 deepcopy_VkImageViewUsageCreateInfo(pool, reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension), reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
6474 break;
6475 }
6476 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
6477 {
6478 deepcopy_VkPipelineTessellationDomainOriginStateCreateInfo(pool, reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension), reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension_out));
6479 break;
6480 }
6481 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
6482 {
6483 deepcopy_VkRenderPassMultiviewCreateInfo(pool, reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension), reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
6484 break;
6485 }
6486 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
6487 {
6488 deepcopy_VkPhysicalDeviceMultiviewFeatures(pool, reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
6489 break;
6490 }
6491 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
6492 {
6493 deepcopy_VkPhysicalDeviceMultiviewProperties(pool, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
6494 break;
6495 }
6496 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
6497 {
6498 deepcopy_VkPhysicalDeviceVariablePointerFeatures(pool, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
6499 break;
6500 }
6501 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
6502 {
6503 deepcopy_VkPhysicalDeviceProtectedMemoryFeatures(pool, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
6504 break;
6505 }
6506 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
6507 {
6508 deepcopy_VkPhysicalDeviceProtectedMemoryProperties(pool, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
6509 break;
6510 }
6511 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
6512 {
6513 deepcopy_VkProtectedSubmitInfo(pool, reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension), reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
6514 break;
6515 }
6516 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
6517 {
6518 deepcopy_VkSamplerYcbcrConversionInfo(pool, reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension), reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
6519 break;
6520 }
6521 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
6522 {
6523 deepcopy_VkBindImagePlaneMemoryInfo(pool, reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension), reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
6524 break;
6525 }
6526 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
6527 {
6528 deepcopy_VkImagePlaneMemoryRequirementsInfo(pool, reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension), reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
6529 break;
6530 }
6531 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
6532 {
6533 deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeatures(pool, reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension_out));
6534 break;
6535 }
6536 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
6537 {
6538 deepcopy_VkSamplerYcbcrConversionImageFormatProperties(pool, reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(structExtension), reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(structExtension_out));
6539 break;
6540 }
6541 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
6542 {
6543 deepcopy_VkPhysicalDeviceExternalImageFormatInfo(pool, reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension), reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
6544 break;
6545 }
6546 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
6547 {
6548 deepcopy_VkExternalImageFormatProperties(pool, reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension), reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
6549 break;
6550 }
6551 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
6552 {
6553 deepcopy_VkPhysicalDeviceIDProperties(pool, reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
6554 break;
6555 }
6556 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
6557 {
6558 deepcopy_VkExternalMemoryImageCreateInfo(pool, reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension), reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
6559 break;
6560 }
6561 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
6562 {
6563 deepcopy_VkExternalMemoryBufferCreateInfo(pool, reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension), reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
6564 break;
6565 }
6566 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
6567 {
6568 deepcopy_VkExportMemoryAllocateInfo(pool, reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension), reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
6569 break;
6570 }
6571 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
6572 {
6573 deepcopy_VkExportFenceCreateInfo(pool, reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension), reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
6574 break;
6575 }
6576 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
6577 {
6578 deepcopy_VkExportSemaphoreCreateInfo(pool, reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension), reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
6579 break;
6580 }
6581 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
6582 {
6583 deepcopy_VkPhysicalDeviceMaintenance3Properties(pool, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension), reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
6584 break;
6585 }
6586 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
6587 {
6588 deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures(pool, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
6589 break;
6590 }
6591#endif
6592#ifdef VK_KHR_swapchain
6593 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
6594 {
6595 deepcopy_VkImageSwapchainCreateInfoKHR(pool, reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension), reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
6596 break;
6597 }
6598 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
6599 {
6600 deepcopy_VkBindImageMemorySwapchainInfoKHR(pool, reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension), reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
6601 break;
6602 }
6603 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
6604 {
6605 deepcopy_VkDeviceGroupPresentInfoKHR(pool, reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension), reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
6606 break;
6607 }
6608 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
6609 {
6610 deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(pool, reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension), reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
6611 break;
6612 }
6613#endif
6614#ifdef VK_KHR_display_swapchain
6615 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
6616 {
6617 deepcopy_VkDisplayPresentInfoKHR(pool, reinterpret_cast<const VkDisplayPresentInfoKHR*>(structExtension), reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out));
6618 break;
6619 }
6620#endif
6621#ifdef VK_KHR_external_memory_win32
6622 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
6623 {
6624 deepcopy_VkImportMemoryWin32HandleInfoKHR(pool, reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out));
6625 break;
6626 }
6627 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
6628 {
6629 deepcopy_VkExportMemoryWin32HandleInfoKHR(pool, reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out));
6630 break;
6631 }
6632#endif
6633#ifdef VK_KHR_external_memory_fd
6634 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
6635 {
6636 deepcopy_VkImportMemoryFdInfoKHR(pool, reinterpret_cast<const VkImportMemoryFdInfoKHR*>(structExtension), reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out));
6637 break;
6638 }
6639#endif
6640#ifdef VK_KHR_win32_keyed_mutex
6641 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
6642 {
6643 deepcopy_VkWin32KeyedMutexAcquireReleaseInfoKHR(pool, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension), reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out));
6644 break;
6645 }
6646#endif
6647#ifdef VK_KHR_external_semaphore_win32
6648 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
6649 {
6650 deepcopy_VkExportSemaphoreWin32HandleInfoKHR(pool, reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out));
6651 break;
6652 }
6653 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
6654 {
6655 deepcopy_VkD3D12FenceSubmitInfoKHR(pool, reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(structExtension), reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out));
6656 break;
6657 }
6658#endif
6659#ifdef VK_KHR_push_descriptor
6660 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
6661 {
6662 deepcopy_VkPhysicalDevicePushDescriptorPropertiesKHR(pool, reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension_out));
6663 break;
6664 }
6665#endif
6666#ifdef VK_KHR_incremental_present
6667 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
6668 {
6669 deepcopy_VkPresentRegionsKHR(pool, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension), reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
6670 break;
6671 }
6672#endif
6673#ifdef VK_KHR_shared_presentable_image
6674 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
6675 {
6676 deepcopy_VkSharedPresentSurfaceCapabilitiesKHR(pool, reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension), reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out));
6677 break;
6678 }
6679#endif
6680#ifdef VK_KHR_external_fence_win32
6681 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
6682 {
6683 deepcopy_VkExportFenceWin32HandleInfoKHR(pool, reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out));
6684 break;
6685 }
6686#endif
6687#ifdef VK_KHR_image_format_list
6688 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
6689 {
6690 deepcopy_VkImageFormatListCreateInfoKHR(pool, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension), reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
6691 break;
6692 }
6693#endif
6694#ifdef VK_KHR_8bit_storage
6695 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
6696 {
6697 deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
6698 break;
6699 }
6700#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08006701#ifdef VK_ANDROID_native_buffer
6702 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
6703 {
6704 deepcopy_VkNativeBufferANDROID(pool, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension), reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
6705 break;
6706 }
6707#endif
Lingfeng Yang750c5642018-11-13 17:03:11 -08006708#ifdef VK_EXT_debug_report
6709 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
6710 {
6711 deepcopy_VkDebugReportCallbackCreateInfoEXT(pool, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(structExtension), reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out));
6712 break;
6713 }
6714#endif
6715#ifdef VK_AMD_rasterization_order
6716 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
6717 {
6718 deepcopy_VkPipelineRasterizationStateRasterizationOrderAMD(pool, reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension), reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension_out));
6719 break;
6720 }
6721#endif
6722#ifdef VK_NV_dedicated_allocation
6723 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
6724 {
6725 deepcopy_VkDedicatedAllocationImageCreateInfoNV(pool, reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(structExtension), reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out));
6726 break;
6727 }
6728 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
6729 {
6730 deepcopy_VkDedicatedAllocationBufferCreateInfoNV(pool, reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(structExtension), reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out));
6731 break;
6732 }
6733 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
6734 {
6735 deepcopy_VkDedicatedAllocationMemoryAllocateInfoNV(pool, reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension), reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out));
6736 break;
6737 }
6738#endif
6739#ifdef VK_AMD_texture_gather_bias_lod
6740 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
6741 {
6742 deepcopy_VkTextureLODGatherFormatPropertiesAMD(pool, reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(structExtension), reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out));
6743 break;
6744 }
6745#endif
6746#ifdef VK_NV_external_memory
6747 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
6748 {
6749 deepcopy_VkExternalMemoryImageCreateInfoNV(pool, reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(structExtension), reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out));
6750 break;
6751 }
6752 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
6753 {
6754 deepcopy_VkExportMemoryAllocateInfoNV(pool, reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(structExtension), reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out));
6755 break;
6756 }
6757#endif
6758#ifdef VK_NV_external_memory_win32
6759 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
6760 {
6761 deepcopy_VkImportMemoryWin32HandleInfoNV(pool, reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(structExtension), reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out));
6762 break;
6763 }
6764 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
6765 {
6766 deepcopy_VkExportMemoryWin32HandleInfoNV(pool, reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(structExtension), reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out));
6767 break;
6768 }
6769#endif
6770#ifdef VK_NV_win32_keyed_mutex
6771 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
6772 {
6773 deepcopy_VkWin32KeyedMutexAcquireReleaseInfoNV(pool, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension), reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out));
6774 break;
6775 }
6776#endif
6777#ifdef VK_EXT_validation_flags
6778 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
6779 {
6780 deepcopy_VkValidationFlagsEXT(pool, reinterpret_cast<const VkValidationFlagsEXT*>(structExtension), reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out));
6781 break;
6782 }
6783#endif
6784#ifdef VK_EXT_conditional_rendering
6785 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
6786 {
6787 deepcopy_VkPhysicalDeviceConditionalRenderingFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension_out));
6788 break;
6789 }
6790 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
6791 {
6792 deepcopy_VkCommandBufferInheritanceConditionalRenderingInfoEXT(pool, reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension), reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension_out));
6793 break;
6794 }
6795#endif
6796#ifdef VK_NV_clip_space_w_scaling
6797 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
6798 {
6799 deepcopy_VkPipelineViewportWScalingStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension_out));
6800 break;
6801 }
6802#endif
6803#ifdef VK_EXT_display_control
6804 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
6805 {
6806 deepcopy_VkSwapchainCounterCreateInfoEXT(pool, reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(structExtension), reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out));
6807 break;
6808 }
6809#endif
6810#ifdef VK_GOOGLE_display_timing
6811 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
6812 {
6813 deepcopy_VkPresentTimesInfoGOOGLE(pool, reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(structExtension), reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out));
6814 break;
6815 }
6816#endif
6817#ifdef VK_NVX_multiview_per_view_attributes
6818 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
6819 {
6820 deepcopy_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(pool, reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension_out));
6821 break;
6822 }
6823#endif
6824#ifdef VK_NV_viewport_swizzle
6825 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
6826 {
6827 deepcopy_VkPipelineViewportSwizzleStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out));
6828 break;
6829 }
6830#endif
6831#ifdef VK_EXT_discard_rectangles
6832 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
6833 {
6834 deepcopy_VkPhysicalDeviceDiscardRectanglePropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension_out));
6835 break;
6836 }
6837 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
6838 {
6839 deepcopy_VkPipelineDiscardRectangleStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension_out));
6840 break;
6841 }
6842#endif
6843#ifdef VK_EXT_conservative_rasterization
6844 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
6845 {
6846 deepcopy_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension_out));
6847 break;
6848 }
6849 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
6850 {
6851 deepcopy_VkPipelineRasterizationConservativeStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension_out));
6852 break;
6853 }
6854#endif
6855#ifdef VK_EXT_debug_utils
6856 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
6857 {
6858 deepcopy_VkDebugUtilsMessengerCreateInfoEXT(pool, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(structExtension), reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out));
6859 break;
6860 }
6861#endif
6862#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6863 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
6864 {
6865 deepcopy_VkAndroidHardwareBufferUsageANDROID(pool, reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(structExtension), reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out));
6866 break;
6867 }
6868 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
6869 {
6870 deepcopy_VkAndroidHardwareBufferFormatPropertiesANDROID(pool, reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension), reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension_out));
6871 break;
6872 }
6873 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
6874 {
6875 deepcopy_VkImportAndroidHardwareBufferInfoANDROID(pool, reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(structExtension), reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out));
6876 break;
6877 }
6878 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
6879 {
6880 deepcopy_VkExternalFormatANDROID(pool, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension), reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
6881 break;
6882 }
6883#endif
6884#ifdef VK_EXT_sampler_filter_minmax
6885 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
6886 {
6887 deepcopy_VkSamplerReductionModeCreateInfoEXT(pool, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension), reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
6888 break;
6889 }
6890 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
6891 {
6892 deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
6893 break;
6894 }
6895#endif
6896#ifdef VK_EXT_sample_locations
6897 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
6898 {
6899 deepcopy_VkSampleLocationsInfoEXT(pool, reinterpret_cast<const VkSampleLocationsInfoEXT*>(structExtension), reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out));
6900 break;
6901 }
6902 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
6903 {
6904 deepcopy_VkRenderPassSampleLocationsBeginInfoEXT(pool, reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension), reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out));
6905 break;
6906 }
6907 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
6908 {
6909 deepcopy_VkPipelineSampleLocationsStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension_out));
6910 break;
6911 }
6912 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
6913 {
6914 deepcopy_VkPhysicalDeviceSampleLocationsPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension_out));
6915 break;
6916 }
6917#endif
6918#ifdef VK_EXT_blend_operation_advanced
6919 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
6920 {
6921 deepcopy_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension_out));
6922 break;
6923 }
6924 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
6925 {
6926 deepcopy_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension_out));
6927 break;
6928 }
6929 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
6930 {
6931 deepcopy_VkPipelineColorBlendAdvancedStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension_out));
6932 break;
6933 }
6934#endif
6935#ifdef VK_NV_fragment_coverage_to_color
6936 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
6937 {
6938 deepcopy_VkPipelineCoverageToColorStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out));
6939 break;
6940 }
6941#endif
6942#ifdef VK_NV_framebuffer_mixed_samples
6943 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
6944 {
6945 deepcopy_VkPipelineCoverageModulationStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension_out));
6946 break;
6947 }
6948#endif
6949#ifdef VK_EXT_validation_cache
6950 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
6951 {
6952 deepcopy_VkShaderModuleValidationCacheCreateInfoEXT(pool, reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension), reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out));
6953 break;
6954 }
6955#endif
6956#ifdef VK_EXT_descriptor_indexing
6957 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
6958 {
6959 deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(pool, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension), reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
6960 break;
6961 }
6962 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
6963 {
6964 deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
6965 break;
6966 }
6967 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
6968 {
6969 deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
6970 break;
6971 }
6972 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
6973 {
6974 deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
6975 break;
6976 }
6977 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
6978 {
6979 deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
6980 break;
6981 }
6982#endif
6983#ifdef VK_EXT_global_priority
6984 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:
6985 {
6986 deepcopy_VkDeviceQueueGlobalPriorityCreateInfoEXT(pool, reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension), reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension_out));
6987 break;
6988 }
6989#endif
6990#ifdef VK_EXT_external_memory_host
6991 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
6992 {
6993 deepcopy_VkImportMemoryHostPointerInfoEXT(pool, reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(structExtension), reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out));
6994 break;
6995 }
6996 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
6997 {
6998 deepcopy_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension_out));
6999 break;
7000 }
7001#endif
7002#ifdef VK_AMD_shader_core_properties
7003 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
7004 {
7005 deepcopy_VkPhysicalDeviceShaderCorePropertiesAMD(pool, reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out));
7006 break;
7007 }
7008#endif
7009#ifdef VK_EXT_vertex_attribute_divisor
7010 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
7011 {
7012 deepcopy_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension_out));
7013 break;
7014 }
7015 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
7016 {
7017 deepcopy_VkPipelineVertexInputDivisorStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
7018 break;
7019 }
7020#endif
7021#ifdef VK_NV_device_diagnostic_checkpoints
7022 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
7023 {
7024 deepcopy_VkQueueFamilyCheckpointPropertiesNV(pool, reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(structExtension), reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out));
7025 break;
7026 }
7027#endif
7028 default:
7029 {
7030 return;
7031 }
7032 }
7033}
7034
Lingfeng Yang71b596b2018-11-07 18:03:25 -08007035
7036} // namespace goldfish_vk