1 // Copyright (C) 2018 The Android Open Source Project 2 // Copyright (C) 2018 Google Inc. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 16 // Autogenerated module goldfish_vk_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 28 #include "goldfish_vk_extension_structs_guest.h" 29 #include "goldfish_vk_private_defs.h" 30 31 32 namespace goldfish_vk { 33 34 void deepcopy_extension_struct( 35 Pool* pool, 36 const void* structExtension, 37 void* structExtension_out); 38 39 #ifdef VK_VERSION_1_0 40 void deepcopy_VkApplicationInfo( 41 Pool* pool, 42 const VkApplicationInfo* from, 43 VkApplicationInfo* to) 44 { 45 (void)pool; 46 *to = *from; 47 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 48 to->pNext = nullptr; 49 if (pNext_size) 50 { 51 to->pNext = (const void*)pool->alloc(pNext_size); 52 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 53 } 54 to->pApplicationName = nullptr; 55 if (from->pApplicationName) 56 { 57 to->pApplicationName = pool->strDup(from->pApplicationName); 58 } 59 to->pEngineName = nullptr; 60 if (from->pEngineName) 61 { 62 to->pEngineName = pool->strDup(from->pEngineName); 63 } 64 } 65 66 void deepcopy_VkInstanceCreateInfo( 67 Pool* pool, 68 const VkInstanceCreateInfo* from, 69 VkInstanceCreateInfo* to) 70 { 71 (void)pool; 72 *to = *from; 73 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 74 to->pNext = nullptr; 75 if (pNext_size) 76 { 77 to->pNext = (const void*)pool->alloc(pNext_size); 78 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 79 } 80 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 } 86 to->ppEnabledLayerNames = nullptr; 87 if (from->ppEnabledLayerNames && from->enabledLayerCount) 88 { 89 to->ppEnabledLayerNames = pool->strDupArray(from->ppEnabledLayerNames, from->enabledLayerCount); 90 } 91 to->ppEnabledExtensionNames = nullptr; 92 if (from->ppEnabledExtensionNames && from->enabledExtensionCount) 93 { 94 to->ppEnabledExtensionNames = pool->strDupArray(from->ppEnabledExtensionNames, from->enabledExtensionCount); 95 } 96 } 97 98 void deepcopy_VkAllocationCallbacks( 99 Pool* pool, 100 const VkAllocationCallbacks* from, 101 VkAllocationCallbacks* to) 102 { 103 (void)pool; 104 *to = *from; 105 to->pUserData = nullptr; 106 if (from->pUserData) 107 { 108 to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t)); 109 } 110 } 111 112 void deepcopy_VkPhysicalDeviceFeatures( 113 Pool* pool, 114 const VkPhysicalDeviceFeatures* from, 115 VkPhysicalDeviceFeatures* to) 116 { 117 (void)pool; 118 *to = *from; 119 } 120 121 void deepcopy_VkFormatProperties( 122 Pool* pool, 123 const VkFormatProperties* from, 124 VkFormatProperties* to) 125 { 126 (void)pool; 127 *to = *from; 128 } 129 130 void deepcopy_VkExtent3D( 131 Pool* pool, 132 const VkExtent3D* from, 133 VkExtent3D* to) 134 { 135 (void)pool; 136 *to = *from; 137 } 138 139 void deepcopy_VkImageFormatProperties( 140 Pool* pool, 141 const VkImageFormatProperties* from, 142 VkImageFormatProperties* to) 143 { 144 (void)pool; 145 *to = *from; 146 deepcopy_VkExtent3D(pool, &from->maxExtent, (VkExtent3D*)(&to->maxExtent)); 147 } 148 149 void deepcopy_VkPhysicalDeviceLimits( 150 Pool* pool, 151 const VkPhysicalDeviceLimits* from, 152 VkPhysicalDeviceLimits* to) 153 { 154 (void)pool; 155 *to = *from; 156 memcpy(to->maxComputeWorkGroupCount, from->maxComputeWorkGroupCount, 3 * sizeof(uint32_t)); 157 memcpy(to->maxComputeWorkGroupSize, from->maxComputeWorkGroupSize, 3 * sizeof(uint32_t)); 158 memcpy(to->maxViewportDimensions, from->maxViewportDimensions, 2 * sizeof(uint32_t)); 159 memcpy(to->viewportBoundsRange, from->viewportBoundsRange, 2 * sizeof(float)); 160 memcpy(to->pointSizeRange, from->pointSizeRange, 2 * sizeof(float)); 161 memcpy(to->lineWidthRange, from->lineWidthRange, 2 * sizeof(float)); 162 } 163 164 void deepcopy_VkPhysicalDeviceSparseProperties( 165 Pool* pool, 166 const VkPhysicalDeviceSparseProperties* from, 167 VkPhysicalDeviceSparseProperties* to) 168 { 169 (void)pool; 170 *to = *from; 171 } 172 173 void deepcopy_VkPhysicalDeviceProperties( 174 Pool* pool, 175 const VkPhysicalDeviceProperties* from, 176 VkPhysicalDeviceProperties* to) 177 { 178 (void)pool; 179 *to = *from; 180 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 186 void deepcopy_VkQueueFamilyProperties( 187 Pool* pool, 188 const VkQueueFamilyProperties* from, 189 VkQueueFamilyProperties* to) 190 { 191 (void)pool; 192 *to = *from; 193 deepcopy_VkExtent3D(pool, &from->minImageTransferGranularity, (VkExtent3D*)(&to->minImageTransferGranularity)); 194 } 195 196 void deepcopy_VkMemoryType( 197 Pool* pool, 198 const VkMemoryType* from, 199 VkMemoryType* to) 200 { 201 (void)pool; 202 *to = *from; 203 } 204 205 void deepcopy_VkMemoryHeap( 206 Pool* pool, 207 const VkMemoryHeap* from, 208 VkMemoryHeap* to) 209 { 210 (void)pool; 211 *to = *from; 212 } 213 214 void deepcopy_VkPhysicalDeviceMemoryProperties( 215 Pool* pool, 216 const VkPhysicalDeviceMemoryProperties* from, 217 VkPhysicalDeviceMemoryProperties* to) 218 { 219 (void)pool; 220 *to = *from; 221 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 } 225 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 231 void deepcopy_VkDeviceQueueCreateInfo( 232 Pool* pool, 233 const VkDeviceQueueCreateInfo* from, 234 VkDeviceQueueCreateInfo* to) 235 { 236 (void)pool; 237 *to = *from; 238 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 239 to->pNext = nullptr; 240 if (pNext_size) 241 { 242 to->pNext = (const void*)pool->alloc(pNext_size); 243 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 244 } 245 to->pQueuePriorities = nullptr; 246 if (from->pQueuePriorities) 247 { 248 to->pQueuePriorities = (float*)pool->dupArray(from->pQueuePriorities, from->queueCount * sizeof(const float)); 249 } 250 } 251 252 void deepcopy_VkDeviceCreateInfo( 253 Pool* pool, 254 const VkDeviceCreateInfo* from, 255 VkDeviceCreateInfo* to) 256 { 257 (void)pool; 258 *to = *from; 259 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 260 to->pNext = nullptr; 261 if (pNext_size) 262 { 263 to->pNext = (const void*)pool->alloc(pNext_size); 264 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 265 } 266 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 } 276 to->ppEnabledLayerNames = nullptr; 277 if (from->ppEnabledLayerNames && from->enabledLayerCount) 278 { 279 to->ppEnabledLayerNames = pool->strDupArray(from->ppEnabledLayerNames, from->enabledLayerCount); 280 } 281 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 294 void deepcopy_VkExtensionProperties( 295 Pool* pool, 296 const VkExtensionProperties* from, 297 VkExtensionProperties* to) 298 { 299 (void)pool; 300 *to = *from; 301 memcpy(to->extensionName, from->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char)); 302 } 303 304 void deepcopy_VkLayerProperties( 305 Pool* pool, 306 const VkLayerProperties* from, 307 VkLayerProperties* to) 308 { 309 (void)pool; 310 *to = *from; 311 memcpy(to->layerName, from->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char)); 312 memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)); 313 } 314 315 void deepcopy_VkSubmitInfo( 316 Pool* pool, 317 const VkSubmitInfo* from, 318 VkSubmitInfo* to) 319 { 320 (void)pool; 321 *to = *from; 322 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 323 to->pNext = nullptr; 324 if (pNext_size) 325 { 326 to->pNext = (const void*)pool->alloc(pNext_size); 327 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 328 } 329 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 } 339 to->pCommandBuffers = nullptr; 340 if (from->pCommandBuffers) 341 { 342 to->pCommandBuffers = (VkCommandBuffer*)pool->dupArray(from->pCommandBuffers, from->commandBufferCount * sizeof(const VkCommandBuffer)); 343 } 344 to->pSignalSemaphores = nullptr; 345 if (from->pSignalSemaphores) 346 { 347 to->pSignalSemaphores = (VkSemaphore*)pool->dupArray(from->pSignalSemaphores, from->signalSemaphoreCount * sizeof(const VkSemaphore)); 348 } 349 } 350 351 void deepcopy_VkMemoryAllocateInfo( 352 Pool* pool, 353 const VkMemoryAllocateInfo* from, 354 VkMemoryAllocateInfo* to) 355 { 356 (void)pool; 357 *to = *from; 358 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 359 to->pNext = nullptr; 360 if (pNext_size) 361 { 362 to->pNext = (const void*)pool->alloc(pNext_size); 363 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 364 } 365 } 366 367 void deepcopy_VkMappedMemoryRange( 368 Pool* pool, 369 const VkMappedMemoryRange* from, 370 VkMappedMemoryRange* to) 371 { 372 (void)pool; 373 *to = *from; 374 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 375 to->pNext = nullptr; 376 if (pNext_size) 377 { 378 to->pNext = (const void*)pool->alloc(pNext_size); 379 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 380 } 381 } 382 383 void deepcopy_VkMemoryRequirements( 384 Pool* pool, 385 const VkMemoryRequirements* from, 386 VkMemoryRequirements* to) 387 { 388 (void)pool; 389 *to = *from; 390 } 391 392 void deepcopy_VkSparseImageFormatProperties( 393 Pool* pool, 394 const VkSparseImageFormatProperties* from, 395 VkSparseImageFormatProperties* to) 396 { 397 (void)pool; 398 *to = *from; 399 deepcopy_VkExtent3D(pool, &from->imageGranularity, (VkExtent3D*)(&to->imageGranularity)); 400 } 401 402 void deepcopy_VkSparseImageMemoryRequirements( 403 Pool* pool, 404 const VkSparseImageMemoryRequirements* from, 405 VkSparseImageMemoryRequirements* to) 406 { 407 (void)pool; 408 *to = *from; 409 deepcopy_VkSparseImageFormatProperties(pool, &from->formatProperties, (VkSparseImageFormatProperties*)(&to->formatProperties)); 410 } 411 412 void deepcopy_VkSparseMemoryBind( 413 Pool* pool, 414 const VkSparseMemoryBind* from, 415 VkSparseMemoryBind* to) 416 { 417 (void)pool; 418 *to = *from; 419 } 420 421 void deepcopy_VkSparseBufferMemoryBindInfo( 422 Pool* pool, 423 const VkSparseBufferMemoryBindInfo* from, 424 VkSparseBufferMemoryBindInfo* to) 425 { 426 (void)pool; 427 *to = *from; 428 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 440 void deepcopy_VkSparseImageOpaqueMemoryBindInfo( 441 Pool* pool, 442 const VkSparseImageOpaqueMemoryBindInfo* from, 443 VkSparseImageOpaqueMemoryBindInfo* to) 444 { 445 (void)pool; 446 *to = *from; 447 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 459 void deepcopy_VkImageSubresource( 460 Pool* pool, 461 const VkImageSubresource* from, 462 VkImageSubresource* to) 463 { 464 (void)pool; 465 *to = *from; 466 } 467 468 void deepcopy_VkOffset3D( 469 Pool* pool, 470 const VkOffset3D* from, 471 VkOffset3D* to) 472 { 473 (void)pool; 474 *to = *from; 475 } 476 477 void deepcopy_VkSparseImageMemoryBind( 478 Pool* pool, 479 const VkSparseImageMemoryBind* from, 480 VkSparseImageMemoryBind* to) 481 { 482 (void)pool; 483 *to = *from; 484 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)); 487 } 488 489 void deepcopy_VkSparseImageMemoryBindInfo( 490 Pool* pool, 491 const VkSparseImageMemoryBindInfo* from, 492 VkSparseImageMemoryBindInfo* to) 493 { 494 (void)pool; 495 *to = *from; 496 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 508 void deepcopy_VkBindSparseInfo( 509 Pool* pool, 510 const VkBindSparseInfo* from, 511 VkBindSparseInfo* to) 512 { 513 (void)pool; 514 *to = *from; 515 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 516 to->pNext = nullptr; 517 if (pNext_size) 518 { 519 to->pNext = (const void*)pool->alloc(pNext_size); 520 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 521 } 522 to->pWaitSemaphores = nullptr; 523 if (from->pWaitSemaphores) 524 { 525 to->pWaitSemaphores = (VkSemaphore*)pool->dupArray(from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore)); 526 } 527 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 } 537 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 } 547 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 } 557 to->pSignalSemaphores = nullptr; 558 if (from->pSignalSemaphores) 559 { 560 to->pSignalSemaphores = (VkSemaphore*)pool->dupArray(from->pSignalSemaphores, from->signalSemaphoreCount * sizeof(const VkSemaphore)); 561 } 562 } 563 564 void deepcopy_VkFenceCreateInfo( 565 Pool* pool, 566 const VkFenceCreateInfo* from, 567 VkFenceCreateInfo* to) 568 { 569 (void)pool; 570 *to = *from; 571 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 572 to->pNext = nullptr; 573 if (pNext_size) 574 { 575 to->pNext = (const void*)pool->alloc(pNext_size); 576 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 577 } 578 } 579 580 void deepcopy_VkSemaphoreCreateInfo( 581 Pool* pool, 582 const VkSemaphoreCreateInfo* from, 583 VkSemaphoreCreateInfo* to) 584 { 585 (void)pool; 586 *to = *from; 587 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 588 to->pNext = nullptr; 589 if (pNext_size) 590 { 591 to->pNext = (const void*)pool->alloc(pNext_size); 592 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 593 } 594 } 595 596 void deepcopy_VkEventCreateInfo( 597 Pool* pool, 598 const VkEventCreateInfo* from, 599 VkEventCreateInfo* to) 600 { 601 (void)pool; 602 *to = *from; 603 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 604 to->pNext = nullptr; 605 if (pNext_size) 606 { 607 to->pNext = (const void*)pool->alloc(pNext_size); 608 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 609 } 610 } 611 612 void deepcopy_VkQueryPoolCreateInfo( 613 Pool* pool, 614 const VkQueryPoolCreateInfo* from, 615 VkQueryPoolCreateInfo* to) 616 { 617 (void)pool; 618 *to = *from; 619 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 620 to->pNext = nullptr; 621 if (pNext_size) 622 { 623 to->pNext = (const void*)pool->alloc(pNext_size); 624 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 625 } 626 } 627 628 void deepcopy_VkBufferCreateInfo( 629 Pool* pool, 630 const VkBufferCreateInfo* from, 631 VkBufferCreateInfo* to) 632 { 633 (void)pool; 634 *to = *from; 635 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 636 to->pNext = nullptr; 637 if (pNext_size) 638 { 639 to->pNext = (const void*)pool->alloc(pNext_size); 640 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 641 } 642 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 649 void deepcopy_VkBufferViewCreateInfo( 650 Pool* pool, 651 const VkBufferViewCreateInfo* from, 652 VkBufferViewCreateInfo* to) 653 { 654 (void)pool; 655 *to = *from; 656 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 657 to->pNext = nullptr; 658 if (pNext_size) 659 { 660 to->pNext = (const void*)pool->alloc(pNext_size); 661 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 662 } 663 } 664 665 void deepcopy_VkImageCreateInfo( 666 Pool* pool, 667 const VkImageCreateInfo* from, 668 VkImageCreateInfo* to) 669 { 670 (void)pool; 671 *to = *from; 672 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 673 to->pNext = nullptr; 674 if (pNext_size) 675 { 676 to->pNext = (const void*)pool->alloc(pNext_size); 677 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 678 } 679 deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent)); 680 to->pQueueFamilyIndices = nullptr; 681 if (from->pQueueFamilyIndices) 682 { 683 to->pQueueFamilyIndices = (uint32_t*)pool->dupArray(from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t)); 684 } 685 } 686 687 void deepcopy_VkSubresourceLayout( 688 Pool* pool, 689 const VkSubresourceLayout* from, 690 VkSubresourceLayout* to) 691 { 692 (void)pool; 693 *to = *from; 694 } 695 696 void deepcopy_VkComponentMapping( 697 Pool* pool, 698 const VkComponentMapping* from, 699 VkComponentMapping* to) 700 { 701 (void)pool; 702 *to = *from; 703 } 704 705 void deepcopy_VkImageSubresourceRange( 706 Pool* pool, 707 const VkImageSubresourceRange* from, 708 VkImageSubresourceRange* to) 709 { 710 (void)pool; 711 *to = *from; 712 } 713 714 void deepcopy_VkImageViewCreateInfo( 715 Pool* pool, 716 const VkImageViewCreateInfo* from, 717 VkImageViewCreateInfo* to) 718 { 719 (void)pool; 720 *to = *from; 721 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 722 to->pNext = nullptr; 723 if (pNext_size) 724 { 725 to->pNext = (const void*)pool->alloc(pNext_size); 726 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 727 } 728 deepcopy_VkComponentMapping(pool, &from->components, (VkComponentMapping*)(&to->components)); 729 deepcopy_VkImageSubresourceRange(pool, &from->subresourceRange, (VkImageSubresourceRange*)(&to->subresourceRange)); 730 } 731 732 void deepcopy_VkShaderModuleCreateInfo( 733 Pool* pool, 734 const VkShaderModuleCreateInfo* from, 735 VkShaderModuleCreateInfo* to) 736 { 737 (void)pool; 738 *to = *from; 739 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 740 to->pNext = nullptr; 741 if (pNext_size) 742 { 743 to->pNext = (const void*)pool->alloc(pNext_size); 744 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 745 } 746 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 753 void deepcopy_VkPipelineCacheCreateInfo( 754 Pool* pool, 755 const VkPipelineCacheCreateInfo* from, 756 VkPipelineCacheCreateInfo* to) 757 { 758 (void)pool; 759 *to = *from; 760 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 761 to->pNext = nullptr; 762 if (pNext_size) 763 { 764 to->pNext = (const void*)pool->alloc(pNext_size); 765 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 766 } 767 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 774 void deepcopy_VkSpecializationMapEntry( 775 Pool* pool, 776 const VkSpecializationMapEntry* from, 777 VkSpecializationMapEntry* to) 778 { 779 (void)pool; 780 *to = *from; 781 } 782 783 void deepcopy_VkSpecializationInfo( 784 Pool* pool, 785 const VkSpecializationInfo* from, 786 VkSpecializationInfo* to) 787 { 788 (void)pool; 789 *to = *from; 790 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 } 800 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 807 void deepcopy_VkPipelineShaderStageCreateInfo( 808 Pool* pool, 809 const VkPipelineShaderStageCreateInfo* from, 810 VkPipelineShaderStageCreateInfo* to) 811 { 812 (void)pool; 813 *to = *from; 814 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 815 to->pNext = nullptr; 816 if (pNext_size) 817 { 818 to->pNext = (const void*)pool->alloc(pNext_size); 819 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 820 } 821 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 834 void deepcopy_VkVertexInputBindingDescription( 835 Pool* pool, 836 const VkVertexInputBindingDescription* from, 837 VkVertexInputBindingDescription* to) 838 { 839 (void)pool; 840 *to = *from; 841 } 842 843 void deepcopy_VkVertexInputAttributeDescription( 844 Pool* pool, 845 const VkVertexInputAttributeDescription* from, 846 VkVertexInputAttributeDescription* to) 847 { 848 (void)pool; 849 *to = *from; 850 } 851 852 void deepcopy_VkPipelineVertexInputStateCreateInfo( 853 Pool* pool, 854 const VkPipelineVertexInputStateCreateInfo* from, 855 VkPipelineVertexInputStateCreateInfo* to) 856 { 857 (void)pool; 858 *to = *from; 859 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 860 to->pNext = nullptr; 861 if (pNext_size) 862 { 863 to->pNext = (const void*)pool->alloc(pNext_size); 864 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 865 } 866 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 } 876 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 888 void deepcopy_VkPipelineInputAssemblyStateCreateInfo( 889 Pool* pool, 890 const VkPipelineInputAssemblyStateCreateInfo* from, 891 VkPipelineInputAssemblyStateCreateInfo* to) 892 { 893 (void)pool; 894 *to = *from; 895 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 896 to->pNext = nullptr; 897 if (pNext_size) 898 { 899 to->pNext = (const void*)pool->alloc(pNext_size); 900 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 901 } 902 } 903 904 void deepcopy_VkPipelineTessellationStateCreateInfo( 905 Pool* pool, 906 const VkPipelineTessellationStateCreateInfo* from, 907 VkPipelineTessellationStateCreateInfo* to) 908 { 909 (void)pool; 910 *to = *from; 911 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 912 to->pNext = nullptr; 913 if (pNext_size) 914 { 915 to->pNext = (const void*)pool->alloc(pNext_size); 916 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 917 } 918 } 919 920 void deepcopy_VkViewport( 921 Pool* pool, 922 const VkViewport* from, 923 VkViewport* to) 924 { 925 (void)pool; 926 *to = *from; 927 } 928 929 void deepcopy_VkOffset2D( 930 Pool* pool, 931 const VkOffset2D* from, 932 VkOffset2D* to) 933 { 934 (void)pool; 935 *to = *from; 936 } 937 938 void deepcopy_VkExtent2D( 939 Pool* pool, 940 const VkExtent2D* from, 941 VkExtent2D* to) 942 { 943 (void)pool; 944 *to = *from; 945 } 946 947 void deepcopy_VkRect2D( 948 Pool* pool, 949 const VkRect2D* from, 950 VkRect2D* to) 951 { 952 (void)pool; 953 *to = *from; 954 deepcopy_VkOffset2D(pool, &from->offset, (VkOffset2D*)(&to->offset)); 955 deepcopy_VkExtent2D(pool, &from->extent, (VkExtent2D*)(&to->extent)); 956 } 957 958 void deepcopy_VkPipelineViewportStateCreateInfo( 959 Pool* pool, 960 const VkPipelineViewportStateCreateInfo* from, 961 VkPipelineViewportStateCreateInfo* to) 962 { 963 (void)pool; 964 *to = *from; 965 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 966 to->pNext = nullptr; 967 if (pNext_size) 968 { 969 to->pNext = (const void*)pool->alloc(pNext_size); 970 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 971 } 972 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 } 982 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 994 void deepcopy_VkPipelineRasterizationStateCreateInfo( 995 Pool* pool, 996 const VkPipelineRasterizationStateCreateInfo* from, 997 VkPipelineRasterizationStateCreateInfo* to) 998 { 999 (void)pool; 1000 *to = *from; 1001 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1002 to->pNext = nullptr; 1003 if (pNext_size) 1004 { 1005 to->pNext = (const void*)pool->alloc(pNext_size); 1006 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1007 } 1008 } 1009 1010 void deepcopy_VkPipelineMultisampleStateCreateInfo( 1011 Pool* pool, 1012 const VkPipelineMultisampleStateCreateInfo* from, 1013 VkPipelineMultisampleStateCreateInfo* to) 1014 { 1015 (void)pool; 1016 *to = *from; 1017 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1018 to->pNext = nullptr; 1019 if (pNext_size) 1020 { 1021 to->pNext = (const void*)pool->alloc(pNext_size); 1022 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1023 } 1024 to->pSampleMask = nullptr; 1025 if (from->pSampleMask) 1026 { 1027 to->pSampleMask = (VkSampleMask*)pool->dupArray(from->pSampleMask, (((from->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask)); 1028 } 1029 } 1030 1031 void deepcopy_VkStencilOpState( 1032 Pool* pool, 1033 const VkStencilOpState* from, 1034 VkStencilOpState* to) 1035 { 1036 (void)pool; 1037 *to = *from; 1038 } 1039 1040 void deepcopy_VkPipelineDepthStencilStateCreateInfo( 1041 Pool* pool, 1042 const VkPipelineDepthStencilStateCreateInfo* from, 1043 VkPipelineDepthStencilStateCreateInfo* to) 1044 { 1045 (void)pool; 1046 *to = *from; 1047 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1048 to->pNext = nullptr; 1049 if (pNext_size) 1050 { 1051 to->pNext = (const void*)pool->alloc(pNext_size); 1052 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1053 } 1054 deepcopy_VkStencilOpState(pool, &from->front, (VkStencilOpState*)(&to->front)); 1055 deepcopy_VkStencilOpState(pool, &from->back, (VkStencilOpState*)(&to->back)); 1056 } 1057 1058 void deepcopy_VkPipelineColorBlendAttachmentState( 1059 Pool* pool, 1060 const VkPipelineColorBlendAttachmentState* from, 1061 VkPipelineColorBlendAttachmentState* to) 1062 { 1063 (void)pool; 1064 *to = *from; 1065 } 1066 1067 void deepcopy_VkPipelineColorBlendStateCreateInfo( 1068 Pool* pool, 1069 const VkPipelineColorBlendStateCreateInfo* from, 1070 VkPipelineColorBlendStateCreateInfo* to) 1071 { 1072 (void)pool; 1073 *to = *from; 1074 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1075 to->pNext = nullptr; 1076 if (pNext_size) 1077 { 1078 to->pNext = (const void*)pool->alloc(pNext_size); 1079 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1080 } 1081 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 1094 void deepcopy_VkPipelineDynamicStateCreateInfo( 1095 Pool* pool, 1096 const VkPipelineDynamicStateCreateInfo* from, 1097 VkPipelineDynamicStateCreateInfo* to) 1098 { 1099 (void)pool; 1100 *to = *from; 1101 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1102 to->pNext = nullptr; 1103 if (pNext_size) 1104 { 1105 to->pNext = (const void*)pool->alloc(pNext_size); 1106 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1107 } 1108 to->pDynamicStates = nullptr; 1109 if (from->pDynamicStates) 1110 { 1111 to->pDynamicStates = (VkDynamicState*)pool->dupArray(from->pDynamicStates, from->dynamicStateCount * sizeof(const VkDynamicState)); 1112 } 1113 } 1114 1115 void deepcopy_VkGraphicsPipelineCreateInfo( 1116 Pool* pool, 1117 const VkGraphicsPipelineCreateInfo* from, 1118 VkGraphicsPipelineCreateInfo* to) 1119 { 1120 (void)pool; 1121 *to = *from; 1122 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1123 to->pNext = nullptr; 1124 if (pNext_size) 1125 { 1126 to->pNext = (const void*)pool->alloc(pNext_size); 1127 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1128 } 1129 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 } 1193 } 1194 1195 void deepcopy_VkComputePipelineCreateInfo( 1196 Pool* pool, 1197 const VkComputePipelineCreateInfo* from, 1198 VkComputePipelineCreateInfo* to) 1199 { 1200 (void)pool; 1201 *to = *from; 1202 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1203 to->pNext = nullptr; 1204 if (pNext_size) 1205 { 1206 to->pNext = (const void*)pool->alloc(pNext_size); 1207 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1208 } 1209 deepcopy_VkPipelineShaderStageCreateInfo(pool, &from->stage, (VkPipelineShaderStageCreateInfo*)(&to->stage)); 1210 } 1211 1212 void deepcopy_VkPushConstantRange( 1213 Pool* pool, 1214 const VkPushConstantRange* from, 1215 VkPushConstantRange* to) 1216 { 1217 (void)pool; 1218 *to = *from; 1219 } 1220 1221 void deepcopy_VkPipelineLayoutCreateInfo( 1222 Pool* pool, 1223 const VkPipelineLayoutCreateInfo* from, 1224 VkPipelineLayoutCreateInfo* to) 1225 { 1226 (void)pool; 1227 *to = *from; 1228 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1229 to->pNext = nullptr; 1230 if (pNext_size) 1231 { 1232 to->pNext = (const void*)pool->alloc(pNext_size); 1233 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1234 } 1235 to->pSetLayouts = nullptr; 1236 if (from->pSetLayouts) 1237 { 1238 to->pSetLayouts = (VkDescriptorSetLayout*)pool->dupArray(from->pSetLayouts, from->setLayoutCount * sizeof(const VkDescriptorSetLayout)); 1239 } 1240 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 1252 void deepcopy_VkSamplerCreateInfo( 1253 Pool* pool, 1254 const VkSamplerCreateInfo* from, 1255 VkSamplerCreateInfo* to) 1256 { 1257 (void)pool; 1258 *to = *from; 1259 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1260 to->pNext = nullptr; 1261 if (pNext_size) 1262 { 1263 to->pNext = (const void*)pool->alloc(pNext_size); 1264 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1265 } 1266 } 1267 1268 void deepcopy_VkDescriptorSetLayoutBinding( 1269 Pool* pool, 1270 const VkDescriptorSetLayoutBinding* from, 1271 VkDescriptorSetLayoutBinding* to) 1272 { 1273 (void)pool; 1274 *to = *from; 1275 to->pImmutableSamplers = nullptr; 1276 if (from->pImmutableSamplers) 1277 { 1278 to->pImmutableSamplers = (VkSampler*)pool->dupArray(from->pImmutableSamplers, from->descriptorCount * sizeof(const VkSampler)); 1279 } 1280 } 1281 1282 void deepcopy_VkDescriptorSetLayoutCreateInfo( 1283 Pool* pool, 1284 const VkDescriptorSetLayoutCreateInfo* from, 1285 VkDescriptorSetLayoutCreateInfo* to) 1286 { 1287 (void)pool; 1288 *to = *from; 1289 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1290 to->pNext = nullptr; 1291 if (pNext_size) 1292 { 1293 to->pNext = (const void*)pool->alloc(pNext_size); 1294 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1295 } 1296 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 1308 void deepcopy_VkDescriptorPoolSize( 1309 Pool* pool, 1310 const VkDescriptorPoolSize* from, 1311 VkDescriptorPoolSize* to) 1312 { 1313 (void)pool; 1314 *to = *from; 1315 } 1316 1317 void deepcopy_VkDescriptorPoolCreateInfo( 1318 Pool* pool, 1319 const VkDescriptorPoolCreateInfo* from, 1320 VkDescriptorPoolCreateInfo* to) 1321 { 1322 (void)pool; 1323 *to = *from; 1324 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1325 to->pNext = nullptr; 1326 if (pNext_size) 1327 { 1328 to->pNext = (const void*)pool->alloc(pNext_size); 1329 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1330 } 1331 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 1343 void deepcopy_VkDescriptorSetAllocateInfo( 1344 Pool* pool, 1345 const VkDescriptorSetAllocateInfo* from, 1346 VkDescriptorSetAllocateInfo* to) 1347 { 1348 (void)pool; 1349 *to = *from; 1350 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1351 to->pNext = nullptr; 1352 if (pNext_size) 1353 { 1354 to->pNext = (const void*)pool->alloc(pNext_size); 1355 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1356 } 1357 to->pSetLayouts = nullptr; 1358 if (from->pSetLayouts) 1359 { 1360 to->pSetLayouts = (VkDescriptorSetLayout*)pool->dupArray(from->pSetLayouts, from->descriptorSetCount * sizeof(const VkDescriptorSetLayout)); 1361 } 1362 } 1363 1364 void deepcopy_VkDescriptorImageInfo( 1365 Pool* pool, 1366 const VkDescriptorImageInfo* from, 1367 VkDescriptorImageInfo* to) 1368 { 1369 (void)pool; 1370 *to = *from; 1371 } 1372 1373 void deepcopy_VkDescriptorBufferInfo( 1374 Pool* pool, 1375 const VkDescriptorBufferInfo* from, 1376 VkDescriptorBufferInfo* to) 1377 { 1378 (void)pool; 1379 *to = *from; 1380 } 1381 1382 void deepcopy_VkWriteDescriptorSet( 1383 Pool* pool, 1384 const VkWriteDescriptorSet* from, 1385 VkWriteDescriptorSet* to) 1386 { 1387 (void)pool; 1388 *to = *from; 1389 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1390 to->pNext = nullptr; 1391 if (pNext_size) 1392 { 1393 to->pNext = (const void*)pool->alloc(pNext_size); 1394 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1395 } 1396 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 1423 void deepcopy_VkCopyDescriptorSet( 1424 Pool* pool, 1425 const VkCopyDescriptorSet* from, 1426 VkCopyDescriptorSet* to) 1427 { 1428 (void)pool; 1429 *to = *from; 1430 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1431 to->pNext = nullptr; 1432 if (pNext_size) 1433 { 1434 to->pNext = (const void*)pool->alloc(pNext_size); 1435 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1436 } 1437 } 1438 1439 void deepcopy_VkFramebufferCreateInfo( 1440 Pool* pool, 1441 const VkFramebufferCreateInfo* from, 1442 VkFramebufferCreateInfo* to) 1443 { 1444 (void)pool; 1445 *to = *from; 1446 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1447 to->pNext = nullptr; 1448 if (pNext_size) 1449 { 1450 to->pNext = (const void*)pool->alloc(pNext_size); 1451 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1452 } 1453 to->pAttachments = nullptr; 1454 if (from->pAttachments) 1455 { 1456 to->pAttachments = (VkImageView*)pool->dupArray(from->pAttachments, from->attachmentCount * sizeof(const VkImageView)); 1457 } 1458 } 1459 1460 void deepcopy_VkAttachmentDescription( 1461 Pool* pool, 1462 const VkAttachmentDescription* from, 1463 VkAttachmentDescription* to) 1464 { 1465 (void)pool; 1466 *to = *from; 1467 } 1468 1469 void deepcopy_VkAttachmentReference( 1470 Pool* pool, 1471 const VkAttachmentReference* from, 1472 VkAttachmentReference* to) 1473 { 1474 (void)pool; 1475 *to = *from; 1476 } 1477 1478 void deepcopy_VkSubpassDescription( 1479 Pool* pool, 1480 const VkSubpassDescription* from, 1481 VkSubpassDescription* to) 1482 { 1483 (void)pool; 1484 *to = *from; 1485 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 } 1495 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 } 1521 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 1528 void deepcopy_VkSubpassDependency( 1529 Pool* pool, 1530 const VkSubpassDependency* from, 1531 VkSubpassDependency* to) 1532 { 1533 (void)pool; 1534 *to = *from; 1535 } 1536 1537 void deepcopy_VkRenderPassCreateInfo( 1538 Pool* pool, 1539 const VkRenderPassCreateInfo* from, 1540 VkRenderPassCreateInfo* to) 1541 { 1542 (void)pool; 1543 *to = *from; 1544 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1545 to->pNext = nullptr; 1546 if (pNext_size) 1547 { 1548 to->pNext = (const void*)pool->alloc(pNext_size); 1549 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1550 } 1551 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 } 1561 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 } 1571 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 1583 void deepcopy_VkCommandPoolCreateInfo( 1584 Pool* pool, 1585 const VkCommandPoolCreateInfo* from, 1586 VkCommandPoolCreateInfo* to) 1587 { 1588 (void)pool; 1589 *to = *from; 1590 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1591 to->pNext = nullptr; 1592 if (pNext_size) 1593 { 1594 to->pNext = (const void*)pool->alloc(pNext_size); 1595 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1596 } 1597 } 1598 1599 void deepcopy_VkCommandBufferAllocateInfo( 1600 Pool* pool, 1601 const VkCommandBufferAllocateInfo* from, 1602 VkCommandBufferAllocateInfo* to) 1603 { 1604 (void)pool; 1605 *to = *from; 1606 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1607 to->pNext = nullptr; 1608 if (pNext_size) 1609 { 1610 to->pNext = (const void*)pool->alloc(pNext_size); 1611 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1612 } 1613 } 1614 1615 void deepcopy_VkCommandBufferInheritanceInfo( 1616 Pool* pool, 1617 const VkCommandBufferInheritanceInfo* from, 1618 VkCommandBufferInheritanceInfo* to) 1619 { 1620 (void)pool; 1621 *to = *from; 1622 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1623 to->pNext = nullptr; 1624 if (pNext_size) 1625 { 1626 to->pNext = (const void*)pool->alloc(pNext_size); 1627 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1628 } 1629 } 1630 1631 void deepcopy_VkCommandBufferBeginInfo( 1632 Pool* pool, 1633 const VkCommandBufferBeginInfo* from, 1634 VkCommandBufferBeginInfo* to) 1635 { 1636 (void)pool; 1637 *to = *from; 1638 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1639 to->pNext = nullptr; 1640 if (pNext_size) 1641 { 1642 to->pNext = (const void*)pool->alloc(pNext_size); 1643 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1644 } 1645 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 1653 void deepcopy_VkBufferCopy( 1654 Pool* pool, 1655 const VkBufferCopy* from, 1656 VkBufferCopy* to) 1657 { 1658 (void)pool; 1659 *to = *from; 1660 } 1661 1662 void deepcopy_VkImageSubresourceLayers( 1663 Pool* pool, 1664 const VkImageSubresourceLayers* from, 1665 VkImageSubresourceLayers* to) 1666 { 1667 (void)pool; 1668 *to = *from; 1669 } 1670 1671 void deepcopy_VkImageCopy( 1672 Pool* pool, 1673 const VkImageCopy* from, 1674 VkImageCopy* to) 1675 { 1676 (void)pool; 1677 *to = *from; 1678 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 1685 void deepcopy_VkImageBlit( 1686 Pool* pool, 1687 const VkImageBlit* from, 1688 VkImageBlit* to) 1689 { 1690 (void)pool; 1691 *to = *from; 1692 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 1704 void deepcopy_VkBufferImageCopy( 1705 Pool* pool, 1706 const VkBufferImageCopy* from, 1707 VkBufferImageCopy* to) 1708 { 1709 (void)pool; 1710 *to = *from; 1711 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 1716 void deepcopy_VkClearColorValue( 1717 Pool* pool, 1718 const VkClearColorValue* from, 1719 VkClearColorValue* to) 1720 { 1721 (void)pool; 1722 *to = *from; 1723 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 1728 void deepcopy_VkClearDepthStencilValue( 1729 Pool* pool, 1730 const VkClearDepthStencilValue* from, 1731 VkClearDepthStencilValue* to) 1732 { 1733 (void)pool; 1734 *to = *from; 1735 } 1736 1737 void deepcopy_VkClearValue( 1738 Pool* pool, 1739 const VkClearValue* from, 1740 VkClearValue* to) 1741 { 1742 (void)pool; 1743 *to = *from; 1744 deepcopy_VkClearColorValue(pool, &from->color, (VkClearColorValue*)(&to->color)); 1745 deepcopy_VkClearDepthStencilValue(pool, &from->depthStencil, (VkClearDepthStencilValue*)(&to->depthStencil)); 1746 } 1747 1748 void deepcopy_VkClearAttachment( 1749 Pool* pool, 1750 const VkClearAttachment* from, 1751 VkClearAttachment* to) 1752 { 1753 (void)pool; 1754 *to = *from; 1755 deepcopy_VkClearValue(pool, &from->clearValue, (VkClearValue*)(&to->clearValue)); 1756 } 1757 1758 void deepcopy_VkClearRect( 1759 Pool* pool, 1760 const VkClearRect* from, 1761 VkClearRect* to) 1762 { 1763 (void)pool; 1764 *to = *from; 1765 deepcopy_VkRect2D(pool, &from->rect, (VkRect2D*)(&to->rect)); 1766 } 1767 1768 void deepcopy_VkImageResolve( 1769 Pool* pool, 1770 const VkImageResolve* from, 1771 VkImageResolve* to) 1772 { 1773 (void)pool; 1774 *to = *from; 1775 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 1782 void deepcopy_VkMemoryBarrier( 1783 Pool* pool, 1784 const VkMemoryBarrier* from, 1785 VkMemoryBarrier* to) 1786 { 1787 (void)pool; 1788 *to = *from; 1789 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1790 to->pNext = nullptr; 1791 if (pNext_size) 1792 { 1793 to->pNext = (const void*)pool->alloc(pNext_size); 1794 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1795 } 1796 } 1797 1798 void deepcopy_VkBufferMemoryBarrier( 1799 Pool* pool, 1800 const VkBufferMemoryBarrier* from, 1801 VkBufferMemoryBarrier* to) 1802 { 1803 (void)pool; 1804 *to = *from; 1805 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1806 to->pNext = nullptr; 1807 if (pNext_size) 1808 { 1809 to->pNext = (const void*)pool->alloc(pNext_size); 1810 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1811 } 1812 } 1813 1814 void deepcopy_VkImageMemoryBarrier( 1815 Pool* pool, 1816 const VkImageMemoryBarrier* from, 1817 VkImageMemoryBarrier* to) 1818 { 1819 (void)pool; 1820 *to = *from; 1821 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1822 to->pNext = nullptr; 1823 if (pNext_size) 1824 { 1825 to->pNext = (const void*)pool->alloc(pNext_size); 1826 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1827 } 1828 deepcopy_VkImageSubresourceRange(pool, &from->subresourceRange, (VkImageSubresourceRange*)(&to->subresourceRange)); 1829 } 1830 1831 void deepcopy_VkRenderPassBeginInfo( 1832 Pool* pool, 1833 const VkRenderPassBeginInfo* from, 1834 VkRenderPassBeginInfo* to) 1835 { 1836 (void)pool; 1837 *to = *from; 1838 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1839 to->pNext = nullptr; 1840 if (pNext_size) 1841 { 1842 to->pNext = (const void*)pool->alloc(pNext_size); 1843 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1844 } 1845 deepcopy_VkRect2D(pool, &from->renderArea, (VkRect2D*)(&to->renderArea)); 1846 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 1858 void deepcopy_VkDispatchIndirectCommand( 1859 Pool* pool, 1860 const VkDispatchIndirectCommand* from, 1861 VkDispatchIndirectCommand* to) 1862 { 1863 (void)pool; 1864 *to = *from; 1865 } 1866 1867 void deepcopy_VkDrawIndexedIndirectCommand( 1868 Pool* pool, 1869 const VkDrawIndexedIndirectCommand* from, 1870 VkDrawIndexedIndirectCommand* to) 1871 { 1872 (void)pool; 1873 *to = *from; 1874 } 1875 1876 void deepcopy_VkDrawIndirectCommand( 1877 Pool* pool, 1878 const VkDrawIndirectCommand* from, 1879 VkDrawIndirectCommand* to) 1880 { 1881 (void)pool; 1882 *to = *from; 1883 } 1884 1885 void deepcopy_VkBaseOutStructure( 1886 Pool* pool, 1887 const VkBaseOutStructure* from, 1888 VkBaseOutStructure* to) 1889 { 1890 (void)pool; 1891 *to = *from; 1892 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 } 1899 } 1900 1901 void deepcopy_VkBaseInStructure( 1902 Pool* pool, 1903 const VkBaseInStructure* from, 1904 VkBaseInStructure* to) 1905 { 1906 (void)pool; 1907 *to = *from; 1908 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 } 1915 } 1916 1917 #endif 1918 #ifdef VK_VERSION_1_1 1919 void deepcopy_VkPhysicalDeviceSubgroupProperties( 1920 Pool* pool, 1921 const VkPhysicalDeviceSubgroupProperties* from, 1922 VkPhysicalDeviceSubgroupProperties* to) 1923 { 1924 (void)pool; 1925 *to = *from; 1926 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1927 to->pNext = nullptr; 1928 if (pNext_size) 1929 { 1930 to->pNext = (void*)pool->alloc(pNext_size); 1931 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1932 } 1933 } 1934 1935 void deepcopy_VkBindBufferMemoryInfo( 1936 Pool* pool, 1937 const VkBindBufferMemoryInfo* from, 1938 VkBindBufferMemoryInfo* to) 1939 { 1940 (void)pool; 1941 *to = *from; 1942 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1943 to->pNext = nullptr; 1944 if (pNext_size) 1945 { 1946 to->pNext = (const void*)pool->alloc(pNext_size); 1947 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1948 } 1949 } 1950 1951 void deepcopy_VkBindImageMemoryInfo( 1952 Pool* pool, 1953 const VkBindImageMemoryInfo* from, 1954 VkBindImageMemoryInfo* to) 1955 { 1956 (void)pool; 1957 *to = *from; 1958 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1959 to->pNext = nullptr; 1960 if (pNext_size) 1961 { 1962 to->pNext = (const void*)pool->alloc(pNext_size); 1963 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1964 } 1965 } 1966 1967 void deepcopy_VkPhysicalDevice16BitStorageFeatures( 1968 Pool* pool, 1969 const VkPhysicalDevice16BitStorageFeatures* from, 1970 VkPhysicalDevice16BitStorageFeatures* to) 1971 { 1972 (void)pool; 1973 *to = *from; 1974 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1975 to->pNext = nullptr; 1976 if (pNext_size) 1977 { 1978 to->pNext = (void*)pool->alloc(pNext_size); 1979 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1980 } 1981 } 1982 1983 void deepcopy_VkMemoryDedicatedRequirements( 1984 Pool* pool, 1985 const VkMemoryDedicatedRequirements* from, 1986 VkMemoryDedicatedRequirements* to) 1987 { 1988 (void)pool; 1989 *to = *from; 1990 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 1991 to->pNext = nullptr; 1992 if (pNext_size) 1993 { 1994 to->pNext = (void*)pool->alloc(pNext_size); 1995 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 1996 } 1997 } 1998 1999 void deepcopy_VkMemoryDedicatedAllocateInfo( 2000 Pool* pool, 2001 const VkMemoryDedicatedAllocateInfo* from, 2002 VkMemoryDedicatedAllocateInfo* to) 2003 { 2004 (void)pool; 2005 *to = *from; 2006 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2007 to->pNext = nullptr; 2008 if (pNext_size) 2009 { 2010 to->pNext = (const void*)pool->alloc(pNext_size); 2011 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2012 } 2013 } 2014 2015 void deepcopy_VkMemoryAllocateFlagsInfo( 2016 Pool* pool, 2017 const VkMemoryAllocateFlagsInfo* from, 2018 VkMemoryAllocateFlagsInfo* to) 2019 { 2020 (void)pool; 2021 *to = *from; 2022 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2023 to->pNext = nullptr; 2024 if (pNext_size) 2025 { 2026 to->pNext = (const void*)pool->alloc(pNext_size); 2027 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2028 } 2029 } 2030 2031 void deepcopy_VkDeviceGroupRenderPassBeginInfo( 2032 Pool* pool, 2033 const VkDeviceGroupRenderPassBeginInfo* from, 2034 VkDeviceGroupRenderPassBeginInfo* to) 2035 { 2036 (void)pool; 2037 *to = *from; 2038 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2039 to->pNext = nullptr; 2040 if (pNext_size) 2041 { 2042 to->pNext = (const void*)pool->alloc(pNext_size); 2043 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2044 } 2045 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 2057 void deepcopy_VkDeviceGroupCommandBufferBeginInfo( 2058 Pool* pool, 2059 const VkDeviceGroupCommandBufferBeginInfo* from, 2060 VkDeviceGroupCommandBufferBeginInfo* to) 2061 { 2062 (void)pool; 2063 *to = *from; 2064 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2065 to->pNext = nullptr; 2066 if (pNext_size) 2067 { 2068 to->pNext = (const void*)pool->alloc(pNext_size); 2069 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2070 } 2071 } 2072 2073 void deepcopy_VkDeviceGroupSubmitInfo( 2074 Pool* pool, 2075 const VkDeviceGroupSubmitInfo* from, 2076 VkDeviceGroupSubmitInfo* to) 2077 { 2078 (void)pool; 2079 *to = *from; 2080 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2081 to->pNext = nullptr; 2082 if (pNext_size) 2083 { 2084 to->pNext = (const void*)pool->alloc(pNext_size); 2085 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2086 } 2087 to->pWaitSemaphoreDeviceIndices = nullptr; 2088 if (from->pWaitSemaphoreDeviceIndices) 2089 { 2090 to->pWaitSemaphoreDeviceIndices = (uint32_t*)pool->dupArray(from->pWaitSemaphoreDeviceIndices, from->waitSemaphoreCount * sizeof(const uint32_t)); 2091 } 2092 to->pCommandBufferDeviceMasks = nullptr; 2093 if (from->pCommandBufferDeviceMasks) 2094 { 2095 to->pCommandBufferDeviceMasks = (uint32_t*)pool->dupArray(from->pCommandBufferDeviceMasks, from->commandBufferCount * sizeof(const uint32_t)); 2096 } 2097 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 2104 void deepcopy_VkDeviceGroupBindSparseInfo( 2105 Pool* pool, 2106 const VkDeviceGroupBindSparseInfo* from, 2107 VkDeviceGroupBindSparseInfo* to) 2108 { 2109 (void)pool; 2110 *to = *from; 2111 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2112 to->pNext = nullptr; 2113 if (pNext_size) 2114 { 2115 to->pNext = (const void*)pool->alloc(pNext_size); 2116 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2117 } 2118 } 2119 2120 void deepcopy_VkBindBufferMemoryDeviceGroupInfo( 2121 Pool* pool, 2122 const VkBindBufferMemoryDeviceGroupInfo* from, 2123 VkBindBufferMemoryDeviceGroupInfo* to) 2124 { 2125 (void)pool; 2126 *to = *from; 2127 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2128 to->pNext = nullptr; 2129 if (pNext_size) 2130 { 2131 to->pNext = (const void*)pool->alloc(pNext_size); 2132 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2133 } 2134 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 2141 void deepcopy_VkBindImageMemoryDeviceGroupInfo( 2142 Pool* pool, 2143 const VkBindImageMemoryDeviceGroupInfo* from, 2144 VkBindImageMemoryDeviceGroupInfo* to) 2145 { 2146 (void)pool; 2147 *to = *from; 2148 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2149 to->pNext = nullptr; 2150 if (pNext_size) 2151 { 2152 to->pNext = (const void*)pool->alloc(pNext_size); 2153 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2154 } 2155 to->pDeviceIndices = nullptr; 2156 if (from->pDeviceIndices) 2157 { 2158 to->pDeviceIndices = (uint32_t*)pool->dupArray(from->pDeviceIndices, from->deviceIndexCount * sizeof(const uint32_t)); 2159 } 2160 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 2172 void deepcopy_VkPhysicalDeviceGroupProperties( 2173 Pool* pool, 2174 const VkPhysicalDeviceGroupProperties* from, 2175 VkPhysicalDeviceGroupProperties* to) 2176 { 2177 (void)pool; 2178 *to = *from; 2179 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2180 to->pNext = nullptr; 2181 if (pNext_size) 2182 { 2183 to->pNext = (void*)pool->alloc(pNext_size); 2184 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2185 } 2186 memcpy(to->physicalDevices, from->physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice)); 2187 } 2188 2189 void deepcopy_VkDeviceGroupDeviceCreateInfo( 2190 Pool* pool, 2191 const VkDeviceGroupDeviceCreateInfo* from, 2192 VkDeviceGroupDeviceCreateInfo* to) 2193 { 2194 (void)pool; 2195 *to = *from; 2196 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2197 to->pNext = nullptr; 2198 if (pNext_size) 2199 { 2200 to->pNext = (const void*)pool->alloc(pNext_size); 2201 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2202 } 2203 to->pPhysicalDevices = nullptr; 2204 if (from->pPhysicalDevices) 2205 { 2206 to->pPhysicalDevices = (VkPhysicalDevice*)pool->dupArray(from->pPhysicalDevices, from->physicalDeviceCount * sizeof(const VkPhysicalDevice)); 2207 } 2208 } 2209 2210 void deepcopy_VkBufferMemoryRequirementsInfo2( 2211 Pool* pool, 2212 const VkBufferMemoryRequirementsInfo2* from, 2213 VkBufferMemoryRequirementsInfo2* to) 2214 { 2215 (void)pool; 2216 *to = *from; 2217 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2218 to->pNext = nullptr; 2219 if (pNext_size) 2220 { 2221 to->pNext = (const void*)pool->alloc(pNext_size); 2222 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2223 } 2224 } 2225 2226 void deepcopy_VkImageMemoryRequirementsInfo2( 2227 Pool* pool, 2228 const VkImageMemoryRequirementsInfo2* from, 2229 VkImageMemoryRequirementsInfo2* to) 2230 { 2231 (void)pool; 2232 *to = *from; 2233 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2234 to->pNext = nullptr; 2235 if (pNext_size) 2236 { 2237 to->pNext = (const void*)pool->alloc(pNext_size); 2238 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2239 } 2240 } 2241 2242 void deepcopy_VkImageSparseMemoryRequirementsInfo2( 2243 Pool* pool, 2244 const VkImageSparseMemoryRequirementsInfo2* from, 2245 VkImageSparseMemoryRequirementsInfo2* to) 2246 { 2247 (void)pool; 2248 *to = *from; 2249 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2250 to->pNext = nullptr; 2251 if (pNext_size) 2252 { 2253 to->pNext = (const void*)pool->alloc(pNext_size); 2254 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2255 } 2256 } 2257 2258 void deepcopy_VkMemoryRequirements2( 2259 Pool* pool, 2260 const VkMemoryRequirements2* from, 2261 VkMemoryRequirements2* to) 2262 { 2263 (void)pool; 2264 *to = *from; 2265 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2266 to->pNext = nullptr; 2267 if (pNext_size) 2268 { 2269 to->pNext = (void*)pool->alloc(pNext_size); 2270 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2271 } 2272 deepcopy_VkMemoryRequirements(pool, &from->memoryRequirements, (VkMemoryRequirements*)(&to->memoryRequirements)); 2273 } 2274 2275 void deepcopy_VkSparseImageMemoryRequirements2( 2276 Pool* pool, 2277 const VkSparseImageMemoryRequirements2* from, 2278 VkSparseImageMemoryRequirements2* to) 2279 { 2280 (void)pool; 2281 *to = *from; 2282 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2283 to->pNext = nullptr; 2284 if (pNext_size) 2285 { 2286 to->pNext = (void*)pool->alloc(pNext_size); 2287 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2288 } 2289 deepcopy_VkSparseImageMemoryRequirements(pool, &from->memoryRequirements, (VkSparseImageMemoryRequirements*)(&to->memoryRequirements)); 2290 } 2291 2292 void deepcopy_VkPhysicalDeviceFeatures2( 2293 Pool* pool, 2294 const VkPhysicalDeviceFeatures2* from, 2295 VkPhysicalDeviceFeatures2* to) 2296 { 2297 (void)pool; 2298 *to = *from; 2299 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2300 to->pNext = nullptr; 2301 if (pNext_size) 2302 { 2303 to->pNext = (void*)pool->alloc(pNext_size); 2304 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2305 } 2306 deepcopy_VkPhysicalDeviceFeatures(pool, &from->features, (VkPhysicalDeviceFeatures*)(&to->features)); 2307 } 2308 2309 void deepcopy_VkPhysicalDeviceProperties2( 2310 Pool* pool, 2311 const VkPhysicalDeviceProperties2* from, 2312 VkPhysicalDeviceProperties2* to) 2313 { 2314 (void)pool; 2315 *to = *from; 2316 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2317 to->pNext = nullptr; 2318 if (pNext_size) 2319 { 2320 to->pNext = (void*)pool->alloc(pNext_size); 2321 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2322 } 2323 deepcopy_VkPhysicalDeviceProperties(pool, &from->properties, (VkPhysicalDeviceProperties*)(&to->properties)); 2324 } 2325 2326 void deepcopy_VkFormatProperties2( 2327 Pool* pool, 2328 const VkFormatProperties2* from, 2329 VkFormatProperties2* to) 2330 { 2331 (void)pool; 2332 *to = *from; 2333 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2334 to->pNext = nullptr; 2335 if (pNext_size) 2336 { 2337 to->pNext = (void*)pool->alloc(pNext_size); 2338 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2339 } 2340 deepcopy_VkFormatProperties(pool, &from->formatProperties, (VkFormatProperties*)(&to->formatProperties)); 2341 } 2342 2343 void deepcopy_VkImageFormatProperties2( 2344 Pool* pool, 2345 const VkImageFormatProperties2* from, 2346 VkImageFormatProperties2* to) 2347 { 2348 (void)pool; 2349 *to = *from; 2350 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2351 to->pNext = nullptr; 2352 if (pNext_size) 2353 { 2354 to->pNext = (void*)pool->alloc(pNext_size); 2355 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2356 } 2357 deepcopy_VkImageFormatProperties(pool, &from->imageFormatProperties, (VkImageFormatProperties*)(&to->imageFormatProperties)); 2358 } 2359 2360 void deepcopy_VkPhysicalDeviceImageFormatInfo2( 2361 Pool* pool, 2362 const VkPhysicalDeviceImageFormatInfo2* from, 2363 VkPhysicalDeviceImageFormatInfo2* to) 2364 { 2365 (void)pool; 2366 *to = *from; 2367 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2368 to->pNext = nullptr; 2369 if (pNext_size) 2370 { 2371 to->pNext = (const void*)pool->alloc(pNext_size); 2372 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2373 } 2374 } 2375 2376 void deepcopy_VkQueueFamilyProperties2( 2377 Pool* pool, 2378 const VkQueueFamilyProperties2* from, 2379 VkQueueFamilyProperties2* to) 2380 { 2381 (void)pool; 2382 *to = *from; 2383 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2384 to->pNext = nullptr; 2385 if (pNext_size) 2386 { 2387 to->pNext = (void*)pool->alloc(pNext_size); 2388 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2389 } 2390 deepcopy_VkQueueFamilyProperties(pool, &from->queueFamilyProperties, (VkQueueFamilyProperties*)(&to->queueFamilyProperties)); 2391 } 2392 2393 void deepcopy_VkPhysicalDeviceMemoryProperties2( 2394 Pool* pool, 2395 const VkPhysicalDeviceMemoryProperties2* from, 2396 VkPhysicalDeviceMemoryProperties2* to) 2397 { 2398 (void)pool; 2399 *to = *from; 2400 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2401 to->pNext = nullptr; 2402 if (pNext_size) 2403 { 2404 to->pNext = (void*)pool->alloc(pNext_size); 2405 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2406 } 2407 deepcopy_VkPhysicalDeviceMemoryProperties(pool, &from->memoryProperties, (VkPhysicalDeviceMemoryProperties*)(&to->memoryProperties)); 2408 } 2409 2410 void deepcopy_VkSparseImageFormatProperties2( 2411 Pool* pool, 2412 const VkSparseImageFormatProperties2* from, 2413 VkSparseImageFormatProperties2* to) 2414 { 2415 (void)pool; 2416 *to = *from; 2417 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2418 to->pNext = nullptr; 2419 if (pNext_size) 2420 { 2421 to->pNext = (void*)pool->alloc(pNext_size); 2422 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2423 } 2424 deepcopy_VkSparseImageFormatProperties(pool, &from->properties, (VkSparseImageFormatProperties*)(&to->properties)); 2425 } 2426 2427 void deepcopy_VkPhysicalDeviceSparseImageFormatInfo2( 2428 Pool* pool, 2429 const VkPhysicalDeviceSparseImageFormatInfo2* from, 2430 VkPhysicalDeviceSparseImageFormatInfo2* to) 2431 { 2432 (void)pool; 2433 *to = *from; 2434 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2435 to->pNext = nullptr; 2436 if (pNext_size) 2437 { 2438 to->pNext = (const void*)pool->alloc(pNext_size); 2439 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2440 } 2441 } 2442 2443 void deepcopy_VkPhysicalDevicePointClippingProperties( 2444 Pool* pool, 2445 const VkPhysicalDevicePointClippingProperties* from, 2446 VkPhysicalDevicePointClippingProperties* to) 2447 { 2448 (void)pool; 2449 *to = *from; 2450 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2451 to->pNext = nullptr; 2452 if (pNext_size) 2453 { 2454 to->pNext = (void*)pool->alloc(pNext_size); 2455 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2456 } 2457 } 2458 2459 void deepcopy_VkInputAttachmentAspectReference( 2460 Pool* pool, 2461 const VkInputAttachmentAspectReference* from, 2462 VkInputAttachmentAspectReference* to) 2463 { 2464 (void)pool; 2465 *to = *from; 2466 } 2467 2468 void deepcopy_VkRenderPassInputAttachmentAspectCreateInfo( 2469 Pool* pool, 2470 const VkRenderPassInputAttachmentAspectCreateInfo* from, 2471 VkRenderPassInputAttachmentAspectCreateInfo* to) 2472 { 2473 (void)pool; 2474 *to = *from; 2475 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2476 to->pNext = nullptr; 2477 if (pNext_size) 2478 { 2479 to->pNext = (const void*)pool->alloc(pNext_size); 2480 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2481 } 2482 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 2494 void deepcopy_VkImageViewUsageCreateInfo( 2495 Pool* pool, 2496 const VkImageViewUsageCreateInfo* from, 2497 VkImageViewUsageCreateInfo* to) 2498 { 2499 (void)pool; 2500 *to = *from; 2501 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2502 to->pNext = nullptr; 2503 if (pNext_size) 2504 { 2505 to->pNext = (const void*)pool->alloc(pNext_size); 2506 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2507 } 2508 } 2509 2510 void deepcopy_VkPipelineTessellationDomainOriginStateCreateInfo( 2511 Pool* pool, 2512 const VkPipelineTessellationDomainOriginStateCreateInfo* from, 2513 VkPipelineTessellationDomainOriginStateCreateInfo* to) 2514 { 2515 (void)pool; 2516 *to = *from; 2517 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2518 to->pNext = nullptr; 2519 if (pNext_size) 2520 { 2521 to->pNext = (const void*)pool->alloc(pNext_size); 2522 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2523 } 2524 } 2525 2526 void deepcopy_VkRenderPassMultiviewCreateInfo( 2527 Pool* pool, 2528 const VkRenderPassMultiviewCreateInfo* from, 2529 VkRenderPassMultiviewCreateInfo* to) 2530 { 2531 (void)pool; 2532 *to = *from; 2533 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2534 to->pNext = nullptr; 2535 if (pNext_size) 2536 { 2537 to->pNext = (const void*)pool->alloc(pNext_size); 2538 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2539 } 2540 to->pViewMasks = nullptr; 2541 if (from->pViewMasks) 2542 { 2543 to->pViewMasks = (uint32_t*)pool->dupArray(from->pViewMasks, from->subpassCount * sizeof(const uint32_t)); 2544 } 2545 to->pViewOffsets = nullptr; 2546 if (from->pViewOffsets) 2547 { 2548 to->pViewOffsets = (int32_t*)pool->dupArray(from->pViewOffsets, from->dependencyCount * sizeof(const int32_t)); 2549 } 2550 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 2557 void deepcopy_VkPhysicalDeviceMultiviewFeatures( 2558 Pool* pool, 2559 const VkPhysicalDeviceMultiviewFeatures* from, 2560 VkPhysicalDeviceMultiviewFeatures* to) 2561 { 2562 (void)pool; 2563 *to = *from; 2564 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2565 to->pNext = nullptr; 2566 if (pNext_size) 2567 { 2568 to->pNext = (void*)pool->alloc(pNext_size); 2569 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2570 } 2571 } 2572 2573 void deepcopy_VkPhysicalDeviceMultiviewProperties( 2574 Pool* pool, 2575 const VkPhysicalDeviceMultiviewProperties* from, 2576 VkPhysicalDeviceMultiviewProperties* to) 2577 { 2578 (void)pool; 2579 *to = *from; 2580 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2581 to->pNext = nullptr; 2582 if (pNext_size) 2583 { 2584 to->pNext = (void*)pool->alloc(pNext_size); 2585 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2586 } 2587 } 2588 2589 void deepcopy_VkPhysicalDeviceVariablePointerFeatures( 2590 Pool* pool, 2591 const VkPhysicalDeviceVariablePointerFeatures* from, 2592 VkPhysicalDeviceVariablePointerFeatures* to) 2593 { 2594 (void)pool; 2595 *to = *from; 2596 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2597 to->pNext = nullptr; 2598 if (pNext_size) 2599 { 2600 to->pNext = (void*)pool->alloc(pNext_size); 2601 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2602 } 2603 } 2604 2605 void deepcopy_VkPhysicalDeviceProtectedMemoryFeatures( 2606 Pool* pool, 2607 const VkPhysicalDeviceProtectedMemoryFeatures* from, 2608 VkPhysicalDeviceProtectedMemoryFeatures* to) 2609 { 2610 (void)pool; 2611 *to = *from; 2612 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2613 to->pNext = nullptr; 2614 if (pNext_size) 2615 { 2616 to->pNext = (void*)pool->alloc(pNext_size); 2617 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2618 } 2619 } 2620 2621 void deepcopy_VkPhysicalDeviceProtectedMemoryProperties( 2622 Pool* pool, 2623 const VkPhysicalDeviceProtectedMemoryProperties* from, 2624 VkPhysicalDeviceProtectedMemoryProperties* to) 2625 { 2626 (void)pool; 2627 *to = *from; 2628 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2629 to->pNext = nullptr; 2630 if (pNext_size) 2631 { 2632 to->pNext = (void*)pool->alloc(pNext_size); 2633 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2634 } 2635 } 2636 2637 void deepcopy_VkDeviceQueueInfo2( 2638 Pool* pool, 2639 const VkDeviceQueueInfo2* from, 2640 VkDeviceQueueInfo2* to) 2641 { 2642 (void)pool; 2643 *to = *from; 2644 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2645 to->pNext = nullptr; 2646 if (pNext_size) 2647 { 2648 to->pNext = (const void*)pool->alloc(pNext_size); 2649 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2650 } 2651 } 2652 2653 void deepcopy_VkProtectedSubmitInfo( 2654 Pool* pool, 2655 const VkProtectedSubmitInfo* from, 2656 VkProtectedSubmitInfo* to) 2657 { 2658 (void)pool; 2659 *to = *from; 2660 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2661 to->pNext = nullptr; 2662 if (pNext_size) 2663 { 2664 to->pNext = (const void*)pool->alloc(pNext_size); 2665 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2666 } 2667 } 2668 2669 void deepcopy_VkSamplerYcbcrConversionCreateInfo( 2670 Pool* pool, 2671 const VkSamplerYcbcrConversionCreateInfo* from, 2672 VkSamplerYcbcrConversionCreateInfo* to) 2673 { 2674 (void)pool; 2675 *to = *from; 2676 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2677 to->pNext = nullptr; 2678 if (pNext_size) 2679 { 2680 to->pNext = (const void*)pool->alloc(pNext_size); 2681 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2682 } 2683 deepcopy_VkComponentMapping(pool, &from->components, (VkComponentMapping*)(&to->components)); 2684 } 2685 2686 void deepcopy_VkSamplerYcbcrConversionInfo( 2687 Pool* pool, 2688 const VkSamplerYcbcrConversionInfo* from, 2689 VkSamplerYcbcrConversionInfo* to) 2690 { 2691 (void)pool; 2692 *to = *from; 2693 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2694 to->pNext = nullptr; 2695 if (pNext_size) 2696 { 2697 to->pNext = (const void*)pool->alloc(pNext_size); 2698 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2699 } 2700 } 2701 2702 void deepcopy_VkBindImagePlaneMemoryInfo( 2703 Pool* pool, 2704 const VkBindImagePlaneMemoryInfo* from, 2705 VkBindImagePlaneMemoryInfo* to) 2706 { 2707 (void)pool; 2708 *to = *from; 2709 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2710 to->pNext = nullptr; 2711 if (pNext_size) 2712 { 2713 to->pNext = (const void*)pool->alloc(pNext_size); 2714 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2715 } 2716 } 2717 2718 void deepcopy_VkImagePlaneMemoryRequirementsInfo( 2719 Pool* pool, 2720 const VkImagePlaneMemoryRequirementsInfo* from, 2721 VkImagePlaneMemoryRequirementsInfo* to) 2722 { 2723 (void)pool; 2724 *to = *from; 2725 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2726 to->pNext = nullptr; 2727 if (pNext_size) 2728 { 2729 to->pNext = (const void*)pool->alloc(pNext_size); 2730 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2731 } 2732 } 2733 2734 void deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeatures( 2735 Pool* pool, 2736 const VkPhysicalDeviceSamplerYcbcrConversionFeatures* from, 2737 VkPhysicalDeviceSamplerYcbcrConversionFeatures* to) 2738 { 2739 (void)pool; 2740 *to = *from; 2741 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2742 to->pNext = nullptr; 2743 if (pNext_size) 2744 { 2745 to->pNext = (void*)pool->alloc(pNext_size); 2746 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2747 } 2748 } 2749 2750 void deepcopy_VkSamplerYcbcrConversionImageFormatProperties( 2751 Pool* pool, 2752 const VkSamplerYcbcrConversionImageFormatProperties* from, 2753 VkSamplerYcbcrConversionImageFormatProperties* to) 2754 { 2755 (void)pool; 2756 *to = *from; 2757 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2758 to->pNext = nullptr; 2759 if (pNext_size) 2760 { 2761 to->pNext = (void*)pool->alloc(pNext_size); 2762 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2763 } 2764 } 2765 2766 void deepcopy_VkDescriptorUpdateTemplateEntry( 2767 Pool* pool, 2768 const VkDescriptorUpdateTemplateEntry* from, 2769 VkDescriptorUpdateTemplateEntry* to) 2770 { 2771 (void)pool; 2772 *to = *from; 2773 } 2774 2775 void deepcopy_VkDescriptorUpdateTemplateCreateInfo( 2776 Pool* pool, 2777 const VkDescriptorUpdateTemplateCreateInfo* from, 2778 VkDescriptorUpdateTemplateCreateInfo* to) 2779 { 2780 (void)pool; 2781 *to = *from; 2782 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2783 to->pNext = nullptr; 2784 if (pNext_size) 2785 { 2786 to->pNext = (void*)pool->alloc(pNext_size); 2787 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2788 } 2789 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 } 2799 } 2800 2801 void deepcopy_VkExternalMemoryProperties( 2802 Pool* pool, 2803 const VkExternalMemoryProperties* from, 2804 VkExternalMemoryProperties* to) 2805 { 2806 (void)pool; 2807 *to = *from; 2808 } 2809 2810 void deepcopy_VkPhysicalDeviceExternalImageFormatInfo( 2811 Pool* pool, 2812 const VkPhysicalDeviceExternalImageFormatInfo* from, 2813 VkPhysicalDeviceExternalImageFormatInfo* to) 2814 { 2815 (void)pool; 2816 *to = *from; 2817 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2818 to->pNext = nullptr; 2819 if (pNext_size) 2820 { 2821 to->pNext = (const void*)pool->alloc(pNext_size); 2822 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2823 } 2824 } 2825 2826 void deepcopy_VkExternalImageFormatProperties( 2827 Pool* pool, 2828 const VkExternalImageFormatProperties* from, 2829 VkExternalImageFormatProperties* to) 2830 { 2831 (void)pool; 2832 *to = *from; 2833 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2834 to->pNext = nullptr; 2835 if (pNext_size) 2836 { 2837 to->pNext = (void*)pool->alloc(pNext_size); 2838 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2839 } 2840 deepcopy_VkExternalMemoryProperties(pool, &from->externalMemoryProperties, (VkExternalMemoryProperties*)(&to->externalMemoryProperties)); 2841 } 2842 2843 void deepcopy_VkPhysicalDeviceExternalBufferInfo( 2844 Pool* pool, 2845 const VkPhysicalDeviceExternalBufferInfo* from, 2846 VkPhysicalDeviceExternalBufferInfo* to) 2847 { 2848 (void)pool; 2849 *to = *from; 2850 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2851 to->pNext = nullptr; 2852 if (pNext_size) 2853 { 2854 to->pNext = (const void*)pool->alloc(pNext_size); 2855 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2856 } 2857 } 2858 2859 void deepcopy_VkExternalBufferProperties( 2860 Pool* pool, 2861 const VkExternalBufferProperties* from, 2862 VkExternalBufferProperties* to) 2863 { 2864 (void)pool; 2865 *to = *from; 2866 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2867 to->pNext = nullptr; 2868 if (pNext_size) 2869 { 2870 to->pNext = (void*)pool->alloc(pNext_size); 2871 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2872 } 2873 deepcopy_VkExternalMemoryProperties(pool, &from->externalMemoryProperties, (VkExternalMemoryProperties*)(&to->externalMemoryProperties)); 2874 } 2875 2876 void deepcopy_VkPhysicalDeviceIDProperties( 2877 Pool* pool, 2878 const VkPhysicalDeviceIDProperties* from, 2879 VkPhysicalDeviceIDProperties* to) 2880 { 2881 (void)pool; 2882 *to = *from; 2883 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2884 to->pNext = nullptr; 2885 if (pNext_size) 2886 { 2887 to->pNext = (void*)pool->alloc(pNext_size); 2888 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2889 } 2890 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)); 2893 } 2894 2895 void deepcopy_VkExternalMemoryImageCreateInfo( 2896 Pool* pool, 2897 const VkExternalMemoryImageCreateInfo* from, 2898 VkExternalMemoryImageCreateInfo* to) 2899 { 2900 (void)pool; 2901 *to = *from; 2902 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2903 to->pNext = nullptr; 2904 if (pNext_size) 2905 { 2906 to->pNext = (const void*)pool->alloc(pNext_size); 2907 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2908 } 2909 } 2910 2911 void deepcopy_VkExternalMemoryBufferCreateInfo( 2912 Pool* pool, 2913 const VkExternalMemoryBufferCreateInfo* from, 2914 VkExternalMemoryBufferCreateInfo* to) 2915 { 2916 (void)pool; 2917 *to = *from; 2918 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2919 to->pNext = nullptr; 2920 if (pNext_size) 2921 { 2922 to->pNext = (const void*)pool->alloc(pNext_size); 2923 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2924 } 2925 } 2926 2927 void deepcopy_VkExportMemoryAllocateInfo( 2928 Pool* pool, 2929 const VkExportMemoryAllocateInfo* from, 2930 VkExportMemoryAllocateInfo* to) 2931 { 2932 (void)pool; 2933 *to = *from; 2934 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2935 to->pNext = nullptr; 2936 if (pNext_size) 2937 { 2938 to->pNext = (const void*)pool->alloc(pNext_size); 2939 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2940 } 2941 } 2942 2943 void deepcopy_VkPhysicalDeviceExternalFenceInfo( 2944 Pool* pool, 2945 const VkPhysicalDeviceExternalFenceInfo* from, 2946 VkPhysicalDeviceExternalFenceInfo* to) 2947 { 2948 (void)pool; 2949 *to = *from; 2950 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2951 to->pNext = nullptr; 2952 if (pNext_size) 2953 { 2954 to->pNext = (const void*)pool->alloc(pNext_size); 2955 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2956 } 2957 } 2958 2959 void deepcopy_VkExternalFenceProperties( 2960 Pool* pool, 2961 const VkExternalFenceProperties* from, 2962 VkExternalFenceProperties* to) 2963 { 2964 (void)pool; 2965 *to = *from; 2966 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2967 to->pNext = nullptr; 2968 if (pNext_size) 2969 { 2970 to->pNext = (void*)pool->alloc(pNext_size); 2971 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2972 } 2973 } 2974 2975 void deepcopy_VkExportFenceCreateInfo( 2976 Pool* pool, 2977 const VkExportFenceCreateInfo* from, 2978 VkExportFenceCreateInfo* to) 2979 { 2980 (void)pool; 2981 *to = *from; 2982 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2983 to->pNext = nullptr; 2984 if (pNext_size) 2985 { 2986 to->pNext = (const void*)pool->alloc(pNext_size); 2987 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 2988 } 2989 } 2990 2991 void deepcopy_VkExportSemaphoreCreateInfo( 2992 Pool* pool, 2993 const VkExportSemaphoreCreateInfo* from, 2994 VkExportSemaphoreCreateInfo* to) 2995 { 2996 (void)pool; 2997 *to = *from; 2998 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 2999 to->pNext = nullptr; 3000 if (pNext_size) 3001 { 3002 to->pNext = (const void*)pool->alloc(pNext_size); 3003 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3004 } 3005 } 3006 3007 void deepcopy_VkPhysicalDeviceExternalSemaphoreInfo( 3008 Pool* pool, 3009 const VkPhysicalDeviceExternalSemaphoreInfo* from, 3010 VkPhysicalDeviceExternalSemaphoreInfo* to) 3011 { 3012 (void)pool; 3013 *to = *from; 3014 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3015 to->pNext = nullptr; 3016 if (pNext_size) 3017 { 3018 to->pNext = (const void*)pool->alloc(pNext_size); 3019 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3020 } 3021 } 3022 3023 void deepcopy_VkExternalSemaphoreProperties( 3024 Pool* pool, 3025 const VkExternalSemaphoreProperties* from, 3026 VkExternalSemaphoreProperties* to) 3027 { 3028 (void)pool; 3029 *to = *from; 3030 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3031 to->pNext = nullptr; 3032 if (pNext_size) 3033 { 3034 to->pNext = (void*)pool->alloc(pNext_size); 3035 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3036 } 3037 } 3038 3039 void deepcopy_VkPhysicalDeviceMaintenance3Properties( 3040 Pool* pool, 3041 const VkPhysicalDeviceMaintenance3Properties* from, 3042 VkPhysicalDeviceMaintenance3Properties* to) 3043 { 3044 (void)pool; 3045 *to = *from; 3046 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3047 to->pNext = nullptr; 3048 if (pNext_size) 3049 { 3050 to->pNext = (void*)pool->alloc(pNext_size); 3051 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3052 } 3053 } 3054 3055 void deepcopy_VkDescriptorSetLayoutSupport( 3056 Pool* pool, 3057 const VkDescriptorSetLayoutSupport* from, 3058 VkDescriptorSetLayoutSupport* to) 3059 { 3060 (void)pool; 3061 *to = *from; 3062 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3063 to->pNext = nullptr; 3064 if (pNext_size) 3065 { 3066 to->pNext = (void*)pool->alloc(pNext_size); 3067 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3068 } 3069 } 3070 3071 void deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures( 3072 Pool* pool, 3073 const VkPhysicalDeviceShaderDrawParameterFeatures* from, 3074 VkPhysicalDeviceShaderDrawParameterFeatures* to) 3075 { 3076 (void)pool; 3077 *to = *from; 3078 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3079 to->pNext = nullptr; 3080 if (pNext_size) 3081 { 3082 to->pNext = (void*)pool->alloc(pNext_size); 3083 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3084 } 3085 } 3086 3087 #endif 3088 #ifdef VK_KHR_surface 3089 void deepcopy_VkSurfaceCapabilitiesKHR( 3090 Pool* pool, 3091 const VkSurfaceCapabilitiesKHR* from, 3092 VkSurfaceCapabilitiesKHR* to) 3093 { 3094 (void)pool; 3095 *to = *from; 3096 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)); 3099 } 3100 3101 void deepcopy_VkSurfaceFormatKHR( 3102 Pool* pool, 3103 const VkSurfaceFormatKHR* from, 3104 VkSurfaceFormatKHR* to) 3105 { 3106 (void)pool; 3107 *to = *from; 3108 } 3109 3110 #endif 3111 #ifdef VK_KHR_swapchain 3112 void deepcopy_VkSwapchainCreateInfoKHR( 3113 Pool* pool, 3114 const VkSwapchainCreateInfoKHR* from, 3115 VkSwapchainCreateInfoKHR* to) 3116 { 3117 (void)pool; 3118 *to = *from; 3119 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3120 to->pNext = nullptr; 3121 if (pNext_size) 3122 { 3123 to->pNext = (const void*)pool->alloc(pNext_size); 3124 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3125 } 3126 deepcopy_VkExtent2D(pool, &from->imageExtent, (VkExtent2D*)(&to->imageExtent)); 3127 to->pQueueFamilyIndices = nullptr; 3128 if (from->pQueueFamilyIndices) 3129 { 3130 to->pQueueFamilyIndices = (uint32_t*)pool->dupArray(from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t)); 3131 } 3132 } 3133 3134 void deepcopy_VkPresentInfoKHR( 3135 Pool* pool, 3136 const VkPresentInfoKHR* from, 3137 VkPresentInfoKHR* to) 3138 { 3139 (void)pool; 3140 *to = *from; 3141 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3142 to->pNext = nullptr; 3143 if (pNext_size) 3144 { 3145 to->pNext = (const void*)pool->alloc(pNext_size); 3146 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3147 } 3148 to->pWaitSemaphores = nullptr; 3149 if (from->pWaitSemaphores) 3150 { 3151 to->pWaitSemaphores = (VkSemaphore*)pool->dupArray(from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore)); 3152 } 3153 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 3170 void deepcopy_VkImageSwapchainCreateInfoKHR( 3171 Pool* pool, 3172 const VkImageSwapchainCreateInfoKHR* from, 3173 VkImageSwapchainCreateInfoKHR* to) 3174 { 3175 (void)pool; 3176 *to = *from; 3177 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3178 to->pNext = nullptr; 3179 if (pNext_size) 3180 { 3181 to->pNext = (const void*)pool->alloc(pNext_size); 3182 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3183 } 3184 } 3185 3186 void deepcopy_VkBindImageMemorySwapchainInfoKHR( 3187 Pool* pool, 3188 const VkBindImageMemorySwapchainInfoKHR* from, 3189 VkBindImageMemorySwapchainInfoKHR* to) 3190 { 3191 (void)pool; 3192 *to = *from; 3193 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3194 to->pNext = nullptr; 3195 if (pNext_size) 3196 { 3197 to->pNext = (const void*)pool->alloc(pNext_size); 3198 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3199 } 3200 } 3201 3202 void deepcopy_VkAcquireNextImageInfoKHR( 3203 Pool* pool, 3204 const VkAcquireNextImageInfoKHR* from, 3205 VkAcquireNextImageInfoKHR* to) 3206 { 3207 (void)pool; 3208 *to = *from; 3209 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3210 to->pNext = nullptr; 3211 if (pNext_size) 3212 { 3213 to->pNext = (const void*)pool->alloc(pNext_size); 3214 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3215 } 3216 } 3217 3218 void deepcopy_VkDeviceGroupPresentCapabilitiesKHR( 3219 Pool* pool, 3220 const VkDeviceGroupPresentCapabilitiesKHR* from, 3221 VkDeviceGroupPresentCapabilitiesKHR* to) 3222 { 3223 (void)pool; 3224 *to = *from; 3225 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3226 to->pNext = nullptr; 3227 if (pNext_size) 3228 { 3229 to->pNext = (const void*)pool->alloc(pNext_size); 3230 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3231 } 3232 memcpy(to->presentMask, from->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t)); 3233 } 3234 3235 void deepcopy_VkDeviceGroupPresentInfoKHR( 3236 Pool* pool, 3237 const VkDeviceGroupPresentInfoKHR* from, 3238 VkDeviceGroupPresentInfoKHR* to) 3239 { 3240 (void)pool; 3241 *to = *from; 3242 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3243 to->pNext = nullptr; 3244 if (pNext_size) 3245 { 3246 to->pNext = (const void*)pool->alloc(pNext_size); 3247 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3248 } 3249 to->pDeviceMasks = nullptr; 3250 if (from->pDeviceMasks) 3251 { 3252 to->pDeviceMasks = (uint32_t*)pool->dupArray(from->pDeviceMasks, from->swapchainCount * sizeof(const uint32_t)); 3253 } 3254 } 3255 3256 void deepcopy_VkDeviceGroupSwapchainCreateInfoKHR( 3257 Pool* pool, 3258 const VkDeviceGroupSwapchainCreateInfoKHR* from, 3259 VkDeviceGroupSwapchainCreateInfoKHR* to) 3260 { 3261 (void)pool; 3262 *to = *from; 3263 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3264 to->pNext = nullptr; 3265 if (pNext_size) 3266 { 3267 to->pNext = (const void*)pool->alloc(pNext_size); 3268 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3269 } 3270 } 3271 3272 #endif 3273 #ifdef VK_KHR_display 3274 void deepcopy_VkDisplayPropertiesKHR( 3275 Pool* pool, 3276 const VkDisplayPropertiesKHR* from, 3277 VkDisplayPropertiesKHR* to) 3278 { 3279 (void)pool; 3280 *to = *from; 3281 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)); 3288 } 3289 3290 void deepcopy_VkDisplayModeParametersKHR( 3291 Pool* pool, 3292 const VkDisplayModeParametersKHR* from, 3293 VkDisplayModeParametersKHR* to) 3294 { 3295 (void)pool; 3296 *to = *from; 3297 deepcopy_VkExtent2D(pool, &from->visibleRegion, (VkExtent2D*)(&to->visibleRegion)); 3298 } 3299 3300 void deepcopy_VkDisplayModePropertiesKHR( 3301 Pool* pool, 3302 const VkDisplayModePropertiesKHR* from, 3303 VkDisplayModePropertiesKHR* to) 3304 { 3305 (void)pool; 3306 *to = *from; 3307 deepcopy_VkDisplayModeParametersKHR(pool, &from->parameters, (VkDisplayModeParametersKHR*)(&to->parameters)); 3308 } 3309 3310 void deepcopy_VkDisplayModeCreateInfoKHR( 3311 Pool* pool, 3312 const VkDisplayModeCreateInfoKHR* from, 3313 VkDisplayModeCreateInfoKHR* to) 3314 { 3315 (void)pool; 3316 *to = *from; 3317 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3318 to->pNext = nullptr; 3319 if (pNext_size) 3320 { 3321 to->pNext = (const void*)pool->alloc(pNext_size); 3322 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3323 } 3324 deepcopy_VkDisplayModeParametersKHR(pool, &from->parameters, (VkDisplayModeParametersKHR*)(&to->parameters)); 3325 } 3326 3327 void deepcopy_VkDisplayPlaneCapabilitiesKHR( 3328 Pool* pool, 3329 const VkDisplayPlaneCapabilitiesKHR* from, 3330 VkDisplayPlaneCapabilitiesKHR* to) 3331 { 3332 (void)pool; 3333 *to = *from; 3334 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 3344 void deepcopy_VkDisplayPlanePropertiesKHR( 3345 Pool* pool, 3346 const VkDisplayPlanePropertiesKHR* from, 3347 VkDisplayPlanePropertiesKHR* to) 3348 { 3349 (void)pool; 3350 *to = *from; 3351 } 3352 3353 void deepcopy_VkDisplaySurfaceCreateInfoKHR( 3354 Pool* pool, 3355 const VkDisplaySurfaceCreateInfoKHR* from, 3356 VkDisplaySurfaceCreateInfoKHR* to) 3357 { 3358 (void)pool; 3359 *to = *from; 3360 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3361 to->pNext = nullptr; 3362 if (pNext_size) 3363 { 3364 to->pNext = (const void*)pool->alloc(pNext_size); 3365 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3366 } 3367 deepcopy_VkExtent2D(pool, &from->imageExtent, (VkExtent2D*)(&to->imageExtent)); 3368 } 3369 3370 #endif 3371 #ifdef VK_KHR_display_swapchain 3372 void deepcopy_VkDisplayPresentInfoKHR( 3373 Pool* pool, 3374 const VkDisplayPresentInfoKHR* from, 3375 VkDisplayPresentInfoKHR* to) 3376 { 3377 (void)pool; 3378 *to = *from; 3379 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3380 to->pNext = nullptr; 3381 if (pNext_size) 3382 { 3383 to->pNext = (const void*)pool->alloc(pNext_size); 3384 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3385 } 3386 deepcopy_VkRect2D(pool, &from->srcRect, (VkRect2D*)(&to->srcRect)); 3387 deepcopy_VkRect2D(pool, &from->dstRect, (VkRect2D*)(&to->dstRect)); 3388 } 3389 3390 #endif 3391 #ifdef VK_KHR_xlib_surface 3392 void deepcopy_VkXlibSurfaceCreateInfoKHR( 3393 Pool* pool, 3394 const VkXlibSurfaceCreateInfoKHR* from, 3395 VkXlibSurfaceCreateInfoKHR* to) 3396 { 3397 (void)pool; 3398 *to = *from; 3399 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3400 to->pNext = nullptr; 3401 if (pNext_size) 3402 { 3403 to->pNext = (const void*)pool->alloc(pNext_size); 3404 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3405 } 3406 to->dpy = nullptr; 3407 if (from->dpy) 3408 { 3409 to->dpy = (Display*)pool->dupArray(from->dpy, sizeof(Display)); 3410 } 3411 } 3412 3413 #endif 3414 #ifdef VK_KHR_xcb_surface 3415 void deepcopy_VkXcbSurfaceCreateInfoKHR( 3416 Pool* pool, 3417 const VkXcbSurfaceCreateInfoKHR* from, 3418 VkXcbSurfaceCreateInfoKHR* to) 3419 { 3420 (void)pool; 3421 *to = *from; 3422 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3423 to->pNext = nullptr; 3424 if (pNext_size) 3425 { 3426 to->pNext = (const void*)pool->alloc(pNext_size); 3427 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3428 } 3429 to->connection = nullptr; 3430 if (from->connection) 3431 { 3432 to->connection = (xcb_connection_t*)pool->dupArray(from->connection, sizeof(xcb_connection_t)); 3433 } 3434 } 3435 3436 #endif 3437 #ifdef VK_KHR_wayland_surface 3438 void deepcopy_VkWaylandSurfaceCreateInfoKHR( 3439 Pool* pool, 3440 const VkWaylandSurfaceCreateInfoKHR* from, 3441 VkWaylandSurfaceCreateInfoKHR* to) 3442 { 3443 (void)pool; 3444 *to = *from; 3445 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3446 to->pNext = nullptr; 3447 if (pNext_size) 3448 { 3449 to->pNext = (const void*)pool->alloc(pNext_size); 3450 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3451 } 3452 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 3466 void deepcopy_VkMirSurfaceCreateInfoKHR( 3467 Pool* pool, 3468 const VkMirSurfaceCreateInfoKHR* from, 3469 VkMirSurfaceCreateInfoKHR* to) 3470 { 3471 (void)pool; 3472 *to = *from; 3473 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3474 to->pNext = nullptr; 3475 if (pNext_size) 3476 { 3477 to->pNext = (const void*)pool->alloc(pNext_size); 3478 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3479 } 3480 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 3494 void deepcopy_VkAndroidSurfaceCreateInfoKHR( 3495 Pool* pool, 3496 const VkAndroidSurfaceCreateInfoKHR* from, 3497 VkAndroidSurfaceCreateInfoKHR* to) 3498 { 3499 (void)pool; 3500 *to = *from; 3501 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3502 to->pNext = nullptr; 3503 if (pNext_size) 3504 { 3505 to->pNext = (const void*)pool->alloc(pNext_size); 3506 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3507 } 3508 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 3517 void deepcopy_VkWin32SurfaceCreateInfoKHR( 3518 Pool* pool, 3519 const VkWin32SurfaceCreateInfoKHR* from, 3520 VkWin32SurfaceCreateInfoKHR* to) 3521 { 3522 (void)pool; 3523 *to = *from; 3524 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3525 to->pNext = nullptr; 3526 if (pNext_size) 3527 { 3528 to->pNext = (const void*)pool->alloc(pNext_size); 3529 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3530 } 3531 } 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 3553 void deepcopy_VkImportMemoryWin32HandleInfoKHR( 3554 Pool* pool, 3555 const VkImportMemoryWin32HandleInfoKHR* from, 3556 VkImportMemoryWin32HandleInfoKHR* to) 3557 { 3558 (void)pool; 3559 *to = *from; 3560 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3561 to->pNext = nullptr; 3562 if (pNext_size) 3563 { 3564 to->pNext = (const void*)pool->alloc(pNext_size); 3565 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3566 } 3567 } 3568 3569 void deepcopy_VkExportMemoryWin32HandleInfoKHR( 3570 Pool* pool, 3571 const VkExportMemoryWin32HandleInfoKHR* from, 3572 VkExportMemoryWin32HandleInfoKHR* to) 3573 { 3574 (void)pool; 3575 *to = *from; 3576 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3577 to->pNext = nullptr; 3578 if (pNext_size) 3579 { 3580 to->pNext = (const void*)pool->alloc(pNext_size); 3581 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3582 } 3583 to->pAttributes = nullptr; 3584 if (from->pAttributes) 3585 { 3586 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES)); 3587 } 3588 } 3589 3590 void deepcopy_VkMemoryWin32HandlePropertiesKHR( 3591 Pool* pool, 3592 const VkMemoryWin32HandlePropertiesKHR* from, 3593 VkMemoryWin32HandlePropertiesKHR* to) 3594 { 3595 (void)pool; 3596 *to = *from; 3597 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3598 to->pNext = nullptr; 3599 if (pNext_size) 3600 { 3601 to->pNext = (void*)pool->alloc(pNext_size); 3602 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3603 } 3604 } 3605 3606 void deepcopy_VkMemoryGetWin32HandleInfoKHR( 3607 Pool* pool, 3608 const VkMemoryGetWin32HandleInfoKHR* from, 3609 VkMemoryGetWin32HandleInfoKHR* to) 3610 { 3611 (void)pool; 3612 *to = *from; 3613 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3614 to->pNext = nullptr; 3615 if (pNext_size) 3616 { 3617 to->pNext = (const void*)pool->alloc(pNext_size); 3618 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3619 } 3620 } 3621 3622 #endif 3623 #ifdef VK_KHR_external_memory_fd 3624 void deepcopy_VkImportMemoryFdInfoKHR( 3625 Pool* pool, 3626 const VkImportMemoryFdInfoKHR* from, 3627 VkImportMemoryFdInfoKHR* to) 3628 { 3629 (void)pool; 3630 *to = *from; 3631 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3632 to->pNext = nullptr; 3633 if (pNext_size) 3634 { 3635 to->pNext = (const void*)pool->alloc(pNext_size); 3636 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3637 } 3638 } 3639 3640 void deepcopy_VkMemoryFdPropertiesKHR( 3641 Pool* pool, 3642 const VkMemoryFdPropertiesKHR* from, 3643 VkMemoryFdPropertiesKHR* to) 3644 { 3645 (void)pool; 3646 *to = *from; 3647 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3648 to->pNext = nullptr; 3649 if (pNext_size) 3650 { 3651 to->pNext = (void*)pool->alloc(pNext_size); 3652 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3653 } 3654 } 3655 3656 void deepcopy_VkMemoryGetFdInfoKHR( 3657 Pool* pool, 3658 const VkMemoryGetFdInfoKHR* from, 3659 VkMemoryGetFdInfoKHR* to) 3660 { 3661 (void)pool; 3662 *to = *from; 3663 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3664 to->pNext = nullptr; 3665 if (pNext_size) 3666 { 3667 to->pNext = (const void*)pool->alloc(pNext_size); 3668 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3669 } 3670 } 3671 3672 #endif 3673 #ifdef VK_KHR_win32_keyed_mutex 3674 void deepcopy_VkWin32KeyedMutexAcquireReleaseInfoKHR( 3675 Pool* pool, 3676 const VkWin32KeyedMutexAcquireReleaseInfoKHR* from, 3677 VkWin32KeyedMutexAcquireReleaseInfoKHR* to) 3678 { 3679 (void)pool; 3680 *to = *from; 3681 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3682 to->pNext = nullptr; 3683 if (pNext_size) 3684 { 3685 to->pNext = (const void*)pool->alloc(pNext_size); 3686 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3687 } 3688 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 } 3703 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 3721 void deepcopy_VkImportSemaphoreWin32HandleInfoKHR( 3722 Pool* pool, 3723 const VkImportSemaphoreWin32HandleInfoKHR* from, 3724 VkImportSemaphoreWin32HandleInfoKHR* to) 3725 { 3726 (void)pool; 3727 *to = *from; 3728 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3729 to->pNext = nullptr; 3730 if (pNext_size) 3731 { 3732 to->pNext = (const void*)pool->alloc(pNext_size); 3733 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3734 } 3735 } 3736 3737 void deepcopy_VkExportSemaphoreWin32HandleInfoKHR( 3738 Pool* pool, 3739 const VkExportSemaphoreWin32HandleInfoKHR* from, 3740 VkExportSemaphoreWin32HandleInfoKHR* to) 3741 { 3742 (void)pool; 3743 *to = *from; 3744 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3745 to->pNext = nullptr; 3746 if (pNext_size) 3747 { 3748 to->pNext = (const void*)pool->alloc(pNext_size); 3749 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3750 } 3751 to->pAttributes = nullptr; 3752 if (from->pAttributes) 3753 { 3754 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES)); 3755 } 3756 } 3757 3758 void deepcopy_VkD3D12FenceSubmitInfoKHR( 3759 Pool* pool, 3760 const VkD3D12FenceSubmitInfoKHR* from, 3761 VkD3D12FenceSubmitInfoKHR* to) 3762 { 3763 (void)pool; 3764 *to = *from; 3765 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3766 to->pNext = nullptr; 3767 if (pNext_size) 3768 { 3769 to->pNext = (const void*)pool->alloc(pNext_size); 3770 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3771 } 3772 to->pWaitSemaphoreValues = nullptr; 3773 if (from->pWaitSemaphoreValues) 3774 { 3775 to->pWaitSemaphoreValues = (uint64_t*)pool->dupArray(from->pWaitSemaphoreValues, from->waitSemaphoreValuesCount * sizeof(const uint64_t)); 3776 } 3777 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 3784 void deepcopy_VkSemaphoreGetWin32HandleInfoKHR( 3785 Pool* pool, 3786 const VkSemaphoreGetWin32HandleInfoKHR* from, 3787 VkSemaphoreGetWin32HandleInfoKHR* to) 3788 { 3789 (void)pool; 3790 *to = *from; 3791 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3792 to->pNext = nullptr; 3793 if (pNext_size) 3794 { 3795 to->pNext = (const void*)pool->alloc(pNext_size); 3796 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3797 } 3798 } 3799 3800 #endif 3801 #ifdef VK_KHR_external_semaphore_fd 3802 void deepcopy_VkImportSemaphoreFdInfoKHR( 3803 Pool* pool, 3804 const VkImportSemaphoreFdInfoKHR* from, 3805 VkImportSemaphoreFdInfoKHR* to) 3806 { 3807 (void)pool; 3808 *to = *from; 3809 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3810 to->pNext = nullptr; 3811 if (pNext_size) 3812 { 3813 to->pNext = (const void*)pool->alloc(pNext_size); 3814 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3815 } 3816 } 3817 3818 void deepcopy_VkSemaphoreGetFdInfoKHR( 3819 Pool* pool, 3820 const VkSemaphoreGetFdInfoKHR* from, 3821 VkSemaphoreGetFdInfoKHR* to) 3822 { 3823 (void)pool; 3824 *to = *from; 3825 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3826 to->pNext = nullptr; 3827 if (pNext_size) 3828 { 3829 to->pNext = (const void*)pool->alloc(pNext_size); 3830 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3831 } 3832 } 3833 3834 #endif 3835 #ifdef VK_KHR_push_descriptor 3836 void deepcopy_VkPhysicalDevicePushDescriptorPropertiesKHR( 3837 Pool* pool, 3838 const VkPhysicalDevicePushDescriptorPropertiesKHR* from, 3839 VkPhysicalDevicePushDescriptorPropertiesKHR* to) 3840 { 3841 (void)pool; 3842 *to = *from; 3843 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3844 to->pNext = nullptr; 3845 if (pNext_size) 3846 { 3847 to->pNext = (void*)pool->alloc(pNext_size); 3848 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3849 } 3850 } 3851 3852 #endif 3853 #ifdef VK_KHR_16bit_storage 3854 #endif 3855 #ifdef VK_KHR_incremental_present 3856 void deepcopy_VkRectLayerKHR( 3857 Pool* pool, 3858 const VkRectLayerKHR* from, 3859 VkRectLayerKHR* to) 3860 { 3861 (void)pool; 3862 *to = *from; 3863 deepcopy_VkOffset2D(pool, &from->offset, (VkOffset2D*)(&to->offset)); 3864 deepcopy_VkExtent2D(pool, &from->extent, (VkExtent2D*)(&to->extent)); 3865 } 3866 3867 void deepcopy_VkPresentRegionKHR( 3868 Pool* pool, 3869 const VkPresentRegionKHR* from, 3870 VkPresentRegionKHR* to) 3871 { 3872 (void)pool; 3873 *to = *from; 3874 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 3886 void deepcopy_VkPresentRegionsKHR( 3887 Pool* pool, 3888 const VkPresentRegionsKHR* from, 3889 VkPresentRegionsKHR* to) 3890 { 3891 (void)pool; 3892 *to = *from; 3893 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3894 to->pNext = nullptr; 3895 if (pNext_size) 3896 { 3897 to->pNext = (const void*)pool->alloc(pNext_size); 3898 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3899 } 3900 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 3916 void deepcopy_VkAttachmentDescription2KHR( 3917 Pool* pool, 3918 const VkAttachmentDescription2KHR* from, 3919 VkAttachmentDescription2KHR* to) 3920 { 3921 (void)pool; 3922 *to = *from; 3923 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3924 to->pNext = nullptr; 3925 if (pNext_size) 3926 { 3927 to->pNext = (const void*)pool->alloc(pNext_size); 3928 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3929 } 3930 } 3931 3932 void deepcopy_VkAttachmentReference2KHR( 3933 Pool* pool, 3934 const VkAttachmentReference2KHR* from, 3935 VkAttachmentReference2KHR* to) 3936 { 3937 (void)pool; 3938 *to = *from; 3939 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3940 to->pNext = nullptr; 3941 if (pNext_size) 3942 { 3943 to->pNext = (const void*)pool->alloc(pNext_size); 3944 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3945 } 3946 } 3947 3948 void deepcopy_VkSubpassDescription2KHR( 3949 Pool* pool, 3950 const VkSubpassDescription2KHR* from, 3951 VkSubpassDescription2KHR* to) 3952 { 3953 (void)pool; 3954 *to = *from; 3955 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 3956 to->pNext = nullptr; 3957 if (pNext_size) 3958 { 3959 to->pNext = (const void*)pool->alloc(pNext_size); 3960 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 3961 } 3962 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 } 3972 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 } 3998 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 4005 void deepcopy_VkSubpassDependency2KHR( 4006 Pool* pool, 4007 const VkSubpassDependency2KHR* from, 4008 VkSubpassDependency2KHR* to) 4009 { 4010 (void)pool; 4011 *to = *from; 4012 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4013 to->pNext = nullptr; 4014 if (pNext_size) 4015 { 4016 to->pNext = (const void*)pool->alloc(pNext_size); 4017 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4018 } 4019 } 4020 4021 void deepcopy_VkRenderPassCreateInfo2KHR( 4022 Pool* pool, 4023 const VkRenderPassCreateInfo2KHR* from, 4024 VkRenderPassCreateInfo2KHR* to) 4025 { 4026 (void)pool; 4027 *to = *from; 4028 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4029 to->pNext = nullptr; 4030 if (pNext_size) 4031 { 4032 to->pNext = (const void*)pool->alloc(pNext_size); 4033 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4034 } 4035 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 } 4045 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 } 4055 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 } 4065 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 4072 void deepcopy_VkSubpassBeginInfoKHR( 4073 Pool* pool, 4074 const VkSubpassBeginInfoKHR* from, 4075 VkSubpassBeginInfoKHR* to) 4076 { 4077 (void)pool; 4078 *to = *from; 4079 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4080 to->pNext = nullptr; 4081 if (pNext_size) 4082 { 4083 to->pNext = (const void*)pool->alloc(pNext_size); 4084 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4085 } 4086 } 4087 4088 void deepcopy_VkSubpassEndInfoKHR( 4089 Pool* pool, 4090 const VkSubpassEndInfoKHR* from, 4091 VkSubpassEndInfoKHR* to) 4092 { 4093 (void)pool; 4094 *to = *from; 4095 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4096 to->pNext = nullptr; 4097 if (pNext_size) 4098 { 4099 to->pNext = (const void*)pool->alloc(pNext_size); 4100 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4101 } 4102 } 4103 4104 #endif 4105 #ifdef VK_KHR_shared_presentable_image 4106 void deepcopy_VkSharedPresentSurfaceCapabilitiesKHR( 4107 Pool* pool, 4108 const VkSharedPresentSurfaceCapabilitiesKHR* from, 4109 VkSharedPresentSurfaceCapabilitiesKHR* to) 4110 { 4111 (void)pool; 4112 *to = *from; 4113 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4114 to->pNext = nullptr; 4115 if (pNext_size) 4116 { 4117 to->pNext = (void*)pool->alloc(pNext_size); 4118 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4119 } 4120 } 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 4128 void deepcopy_VkImportFenceWin32HandleInfoKHR( 4129 Pool* pool, 4130 const VkImportFenceWin32HandleInfoKHR* from, 4131 VkImportFenceWin32HandleInfoKHR* to) 4132 { 4133 (void)pool; 4134 *to = *from; 4135 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4136 to->pNext = nullptr; 4137 if (pNext_size) 4138 { 4139 to->pNext = (const void*)pool->alloc(pNext_size); 4140 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4141 } 4142 } 4143 4144 void deepcopy_VkExportFenceWin32HandleInfoKHR( 4145 Pool* pool, 4146 const VkExportFenceWin32HandleInfoKHR* from, 4147 VkExportFenceWin32HandleInfoKHR* to) 4148 { 4149 (void)pool; 4150 *to = *from; 4151 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4152 to->pNext = nullptr; 4153 if (pNext_size) 4154 { 4155 to->pNext = (const void*)pool->alloc(pNext_size); 4156 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4157 } 4158 to->pAttributes = nullptr; 4159 if (from->pAttributes) 4160 { 4161 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES)); 4162 } 4163 } 4164 4165 void deepcopy_VkFenceGetWin32HandleInfoKHR( 4166 Pool* pool, 4167 const VkFenceGetWin32HandleInfoKHR* from, 4168 VkFenceGetWin32HandleInfoKHR* to) 4169 { 4170 (void)pool; 4171 *to = *from; 4172 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4173 to->pNext = nullptr; 4174 if (pNext_size) 4175 { 4176 to->pNext = (const void*)pool->alloc(pNext_size); 4177 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4178 } 4179 } 4180 4181 #endif 4182 #ifdef VK_KHR_external_fence_fd 4183 void deepcopy_VkImportFenceFdInfoKHR( 4184 Pool* pool, 4185 const VkImportFenceFdInfoKHR* from, 4186 VkImportFenceFdInfoKHR* to) 4187 { 4188 (void)pool; 4189 *to = *from; 4190 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4191 to->pNext = nullptr; 4192 if (pNext_size) 4193 { 4194 to->pNext = (const void*)pool->alloc(pNext_size); 4195 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4196 } 4197 } 4198 4199 void deepcopy_VkFenceGetFdInfoKHR( 4200 Pool* pool, 4201 const VkFenceGetFdInfoKHR* from, 4202 VkFenceGetFdInfoKHR* to) 4203 { 4204 (void)pool; 4205 *to = *from; 4206 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4207 to->pNext = nullptr; 4208 if (pNext_size) 4209 { 4210 to->pNext = (const void*)pool->alloc(pNext_size); 4211 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4212 } 4213 } 4214 4215 #endif 4216 #ifdef VK_KHR_maintenance2 4217 #endif 4218 #ifdef VK_KHR_get_surface_capabilities2 4219 void deepcopy_VkPhysicalDeviceSurfaceInfo2KHR( 4220 Pool* pool, 4221 const VkPhysicalDeviceSurfaceInfo2KHR* from, 4222 VkPhysicalDeviceSurfaceInfo2KHR* to) 4223 { 4224 (void)pool; 4225 *to = *from; 4226 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4227 to->pNext = nullptr; 4228 if (pNext_size) 4229 { 4230 to->pNext = (const void*)pool->alloc(pNext_size); 4231 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4232 } 4233 } 4234 4235 void deepcopy_VkSurfaceCapabilities2KHR( 4236 Pool* pool, 4237 const VkSurfaceCapabilities2KHR* from, 4238 VkSurfaceCapabilities2KHR* to) 4239 { 4240 (void)pool; 4241 *to = *from; 4242 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4243 to->pNext = nullptr; 4244 if (pNext_size) 4245 { 4246 to->pNext = (void*)pool->alloc(pNext_size); 4247 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4248 } 4249 deepcopy_VkSurfaceCapabilitiesKHR(pool, &from->surfaceCapabilities, (VkSurfaceCapabilitiesKHR*)(&to->surfaceCapabilities)); 4250 } 4251 4252 void deepcopy_VkSurfaceFormat2KHR( 4253 Pool* pool, 4254 const VkSurfaceFormat2KHR* from, 4255 VkSurfaceFormat2KHR* to) 4256 { 4257 (void)pool; 4258 *to = *from; 4259 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4260 to->pNext = nullptr; 4261 if (pNext_size) 4262 { 4263 to->pNext = (void*)pool->alloc(pNext_size); 4264 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4265 } 4266 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 4273 void deepcopy_VkDisplayProperties2KHR( 4274 Pool* pool, 4275 const VkDisplayProperties2KHR* from, 4276 VkDisplayProperties2KHR* to) 4277 { 4278 (void)pool; 4279 *to = *from; 4280 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4281 to->pNext = nullptr; 4282 if (pNext_size) 4283 { 4284 to->pNext = (void*)pool->alloc(pNext_size); 4285 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4286 } 4287 deepcopy_VkDisplayPropertiesKHR(pool, &from->displayProperties, (VkDisplayPropertiesKHR*)(&to->displayProperties)); 4288 } 4289 4290 void deepcopy_VkDisplayPlaneProperties2KHR( 4291 Pool* pool, 4292 const VkDisplayPlaneProperties2KHR* from, 4293 VkDisplayPlaneProperties2KHR* to) 4294 { 4295 (void)pool; 4296 *to = *from; 4297 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4298 to->pNext = nullptr; 4299 if (pNext_size) 4300 { 4301 to->pNext = (void*)pool->alloc(pNext_size); 4302 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4303 } 4304 deepcopy_VkDisplayPlanePropertiesKHR(pool, &from->displayPlaneProperties, (VkDisplayPlanePropertiesKHR*)(&to->displayPlaneProperties)); 4305 } 4306 4307 void deepcopy_VkDisplayModeProperties2KHR( 4308 Pool* pool, 4309 const VkDisplayModeProperties2KHR* from, 4310 VkDisplayModeProperties2KHR* to) 4311 { 4312 (void)pool; 4313 *to = *from; 4314 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4315 to->pNext = nullptr; 4316 if (pNext_size) 4317 { 4318 to->pNext = (void*)pool->alloc(pNext_size); 4319 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4320 } 4321 deepcopy_VkDisplayModePropertiesKHR(pool, &from->displayModeProperties, (VkDisplayModePropertiesKHR*)(&to->displayModeProperties)); 4322 } 4323 4324 void deepcopy_VkDisplayPlaneInfo2KHR( 4325 Pool* pool, 4326 const VkDisplayPlaneInfo2KHR* from, 4327 VkDisplayPlaneInfo2KHR* to) 4328 { 4329 (void)pool; 4330 *to = *from; 4331 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4332 to->pNext = nullptr; 4333 if (pNext_size) 4334 { 4335 to->pNext = (const void*)pool->alloc(pNext_size); 4336 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4337 } 4338 } 4339 4340 void deepcopy_VkDisplayPlaneCapabilities2KHR( 4341 Pool* pool, 4342 const VkDisplayPlaneCapabilities2KHR* from, 4343 VkDisplayPlaneCapabilities2KHR* to) 4344 { 4345 (void)pool; 4346 *to = *from; 4347 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4348 to->pNext = nullptr; 4349 if (pNext_size) 4350 { 4351 to->pNext = (void*)pool->alloc(pNext_size); 4352 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4353 } 4354 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 4367 void deepcopy_VkImageFormatListCreateInfoKHR( 4368 Pool* pool, 4369 const VkImageFormatListCreateInfoKHR* from, 4370 VkImageFormatListCreateInfoKHR* to) 4371 { 4372 (void)pool; 4373 *to = *from; 4374 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4375 to->pNext = nullptr; 4376 if (pNext_size) 4377 { 4378 to->pNext = (const void*)pool->alloc(pNext_size); 4379 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4380 } 4381 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 4398 void deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR( 4399 Pool* pool, 4400 const VkPhysicalDevice8BitStorageFeaturesKHR* from, 4401 VkPhysicalDevice8BitStorageFeaturesKHR* to) 4402 { 4403 (void)pool; 4404 *to = *from; 4405 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4406 to->pNext = nullptr; 4407 if (pNext_size) 4408 { 4409 to->pNext = (void*)pool->alloc(pNext_size); 4410 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4411 } 4412 } 4413 4414 #endif 4415 #ifdef VK_ANDROID_native_buffer 4416 void 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 4438 #ifdef VK_EXT_debug_report 4439 void deepcopy_VkDebugReportCallbackCreateInfoEXT( 4440 Pool* pool, 4441 const VkDebugReportCallbackCreateInfoEXT* from, 4442 VkDebugReportCallbackCreateInfoEXT* to) 4443 { 4444 (void)pool; 4445 *to = *from; 4446 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4447 to->pNext = nullptr; 4448 if (pNext_size) 4449 { 4450 to->pNext = (const void*)pool->alloc(pNext_size); 4451 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4452 } 4453 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 4468 void deepcopy_VkPipelineRasterizationStateRasterizationOrderAMD( 4469 Pool* pool, 4470 const VkPipelineRasterizationStateRasterizationOrderAMD* from, 4471 VkPipelineRasterizationStateRasterizationOrderAMD* to) 4472 { 4473 (void)pool; 4474 *to = *from; 4475 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4476 to->pNext = nullptr; 4477 if (pNext_size) 4478 { 4479 to->pNext = (const void*)pool->alloc(pNext_size); 4480 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4481 } 4482 } 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 4490 void deepcopy_VkDebugMarkerObjectNameInfoEXT( 4491 Pool* pool, 4492 const VkDebugMarkerObjectNameInfoEXT* from, 4493 VkDebugMarkerObjectNameInfoEXT* to) 4494 { 4495 (void)pool; 4496 *to = *from; 4497 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4498 to->pNext = nullptr; 4499 if (pNext_size) 4500 { 4501 to->pNext = (const void*)pool->alloc(pNext_size); 4502 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4503 } 4504 to->pObjectName = nullptr; 4505 if (from->pObjectName) 4506 { 4507 to->pObjectName = pool->strDup(from->pObjectName); 4508 } 4509 } 4510 4511 void deepcopy_VkDebugMarkerObjectTagInfoEXT( 4512 Pool* pool, 4513 const VkDebugMarkerObjectTagInfoEXT* from, 4514 VkDebugMarkerObjectTagInfoEXT* to) 4515 { 4516 (void)pool; 4517 *to = *from; 4518 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4519 to->pNext = nullptr; 4520 if (pNext_size) 4521 { 4522 to->pNext = (const void*)pool->alloc(pNext_size); 4523 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4524 } 4525 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 4532 void deepcopy_VkDebugMarkerMarkerInfoEXT( 4533 Pool* pool, 4534 const VkDebugMarkerMarkerInfoEXT* from, 4535 VkDebugMarkerMarkerInfoEXT* to) 4536 { 4537 (void)pool; 4538 *to = *from; 4539 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4540 to->pNext = nullptr; 4541 if (pNext_size) 4542 { 4543 to->pNext = (const void*)pool->alloc(pNext_size); 4544 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4545 } 4546 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 4558 void deepcopy_VkDedicatedAllocationImageCreateInfoNV( 4559 Pool* pool, 4560 const VkDedicatedAllocationImageCreateInfoNV* from, 4561 VkDedicatedAllocationImageCreateInfoNV* to) 4562 { 4563 (void)pool; 4564 *to = *from; 4565 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4566 to->pNext = nullptr; 4567 if (pNext_size) 4568 { 4569 to->pNext = (const void*)pool->alloc(pNext_size); 4570 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4571 } 4572 } 4573 4574 void deepcopy_VkDedicatedAllocationBufferCreateInfoNV( 4575 Pool* pool, 4576 const VkDedicatedAllocationBufferCreateInfoNV* from, 4577 VkDedicatedAllocationBufferCreateInfoNV* to) 4578 { 4579 (void)pool; 4580 *to = *from; 4581 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4582 to->pNext = nullptr; 4583 if (pNext_size) 4584 { 4585 to->pNext = (const void*)pool->alloc(pNext_size); 4586 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4587 } 4588 } 4589 4590 void deepcopy_VkDedicatedAllocationMemoryAllocateInfoNV( 4591 Pool* pool, 4592 const VkDedicatedAllocationMemoryAllocateInfoNV* from, 4593 VkDedicatedAllocationMemoryAllocateInfoNV* to) 4594 { 4595 (void)pool; 4596 *to = *from; 4597 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4598 to->pNext = nullptr; 4599 if (pNext_size) 4600 { 4601 to->pNext = (const void*)pool->alloc(pNext_size); 4602 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4603 } 4604 } 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 4616 void deepcopy_VkTextureLODGatherFormatPropertiesAMD( 4617 Pool* pool, 4618 const VkTextureLODGatherFormatPropertiesAMD* from, 4619 VkTextureLODGatherFormatPropertiesAMD* to) 4620 { 4621 (void)pool; 4622 *to = *from; 4623 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4624 to->pNext = nullptr; 4625 if (pNext_size) 4626 { 4627 to->pNext = (void*)pool->alloc(pNext_size); 4628 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4629 } 4630 } 4631 4632 #endif 4633 #ifdef VK_AMD_shader_info 4634 void deepcopy_VkShaderResourceUsageAMD( 4635 Pool* pool, 4636 const VkShaderResourceUsageAMD* from, 4637 VkShaderResourceUsageAMD* to) 4638 { 4639 (void)pool; 4640 *to = *from; 4641 } 4642 4643 void deepcopy_VkShaderStatisticsInfoAMD( 4644 Pool* pool, 4645 const VkShaderStatisticsInfoAMD* from, 4646 VkShaderStatisticsInfoAMD* to) 4647 { 4648 (void)pool; 4649 *to = *from; 4650 deepcopy_VkShaderResourceUsageAMD(pool, &from->resourceUsage, (VkShaderResourceUsageAMD*)(&to->resourceUsage)); 4651 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 4660 void deepcopy_VkExternalImageFormatPropertiesNV( 4661 Pool* pool, 4662 const VkExternalImageFormatPropertiesNV* from, 4663 VkExternalImageFormatPropertiesNV* to) 4664 { 4665 (void)pool; 4666 *to = *from; 4667 deepcopy_VkImageFormatProperties(pool, &from->imageFormatProperties, (VkImageFormatProperties*)(&to->imageFormatProperties)); 4668 } 4669 4670 #endif 4671 #ifdef VK_NV_external_memory 4672 void deepcopy_VkExternalMemoryImageCreateInfoNV( 4673 Pool* pool, 4674 const VkExternalMemoryImageCreateInfoNV* from, 4675 VkExternalMemoryImageCreateInfoNV* to) 4676 { 4677 (void)pool; 4678 *to = *from; 4679 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4680 to->pNext = nullptr; 4681 if (pNext_size) 4682 { 4683 to->pNext = (const void*)pool->alloc(pNext_size); 4684 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4685 } 4686 } 4687 4688 void deepcopy_VkExportMemoryAllocateInfoNV( 4689 Pool* pool, 4690 const VkExportMemoryAllocateInfoNV* from, 4691 VkExportMemoryAllocateInfoNV* to) 4692 { 4693 (void)pool; 4694 *to = *from; 4695 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4696 to->pNext = nullptr; 4697 if (pNext_size) 4698 { 4699 to->pNext = (const void*)pool->alloc(pNext_size); 4700 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4701 } 4702 } 4703 4704 #endif 4705 #ifdef VK_NV_external_memory_win32 4706 void deepcopy_VkImportMemoryWin32HandleInfoNV( 4707 Pool* pool, 4708 const VkImportMemoryWin32HandleInfoNV* from, 4709 VkImportMemoryWin32HandleInfoNV* to) 4710 { 4711 (void)pool; 4712 *to = *from; 4713 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4714 to->pNext = nullptr; 4715 if (pNext_size) 4716 { 4717 to->pNext = (const void*)pool->alloc(pNext_size); 4718 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4719 } 4720 } 4721 4722 void deepcopy_VkExportMemoryWin32HandleInfoNV( 4723 Pool* pool, 4724 const VkExportMemoryWin32HandleInfoNV* from, 4725 VkExportMemoryWin32HandleInfoNV* to) 4726 { 4727 (void)pool; 4728 *to = *from; 4729 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4730 to->pNext = nullptr; 4731 if (pNext_size) 4732 { 4733 to->pNext = (const void*)pool->alloc(pNext_size); 4734 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4735 } 4736 to->pAttributes = nullptr; 4737 if (from->pAttributes) 4738 { 4739 to->pAttributes = (SECURITY_ATTRIBUTES*)pool->dupArray(from->pAttributes, sizeof(const SECURITY_ATTRIBUTES)); 4740 } 4741 } 4742 4743 #endif 4744 #ifdef VK_NV_win32_keyed_mutex 4745 void deepcopy_VkWin32KeyedMutexAcquireReleaseInfoNV( 4746 Pool* pool, 4747 const VkWin32KeyedMutexAcquireReleaseInfoNV* from, 4748 VkWin32KeyedMutexAcquireReleaseInfoNV* to) 4749 { 4750 (void)pool; 4751 *to = *from; 4752 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4753 to->pNext = nullptr; 4754 if (pNext_size) 4755 { 4756 to->pNext = (const void*)pool->alloc(pNext_size); 4757 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4758 } 4759 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 } 4774 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 4788 void deepcopy_VkValidationFlagsEXT( 4789 Pool* pool, 4790 const VkValidationFlagsEXT* from, 4791 VkValidationFlagsEXT* to) 4792 { 4793 (void)pool; 4794 *to = *from; 4795 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4796 to->pNext = nullptr; 4797 if (pNext_size) 4798 { 4799 to->pNext = (const void*)pool->alloc(pNext_size); 4800 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4801 } 4802 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 4811 void deepcopy_VkViSurfaceCreateInfoNN( 4812 Pool* pool, 4813 const VkViSurfaceCreateInfoNN* from, 4814 VkViSurfaceCreateInfoNN* to) 4815 { 4816 (void)pool; 4817 *to = *from; 4818 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4819 to->pNext = nullptr; 4820 if (pNext_size) 4821 { 4822 to->pNext = (const void*)pool->alloc(pNext_size); 4823 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4824 } 4825 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 4838 void deepcopy_VkConditionalRenderingBeginInfoEXT( 4839 Pool* pool, 4840 const VkConditionalRenderingBeginInfoEXT* from, 4841 VkConditionalRenderingBeginInfoEXT* to) 4842 { 4843 (void)pool; 4844 *to = *from; 4845 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4846 to->pNext = nullptr; 4847 if (pNext_size) 4848 { 4849 to->pNext = (const void*)pool->alloc(pNext_size); 4850 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4851 } 4852 } 4853 4854 void deepcopy_VkPhysicalDeviceConditionalRenderingFeaturesEXT( 4855 Pool* pool, 4856 const VkPhysicalDeviceConditionalRenderingFeaturesEXT* from, 4857 VkPhysicalDeviceConditionalRenderingFeaturesEXT* to) 4858 { 4859 (void)pool; 4860 *to = *from; 4861 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4862 to->pNext = nullptr; 4863 if (pNext_size) 4864 { 4865 to->pNext = (void*)pool->alloc(pNext_size); 4866 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4867 } 4868 } 4869 4870 void deepcopy_VkCommandBufferInheritanceConditionalRenderingInfoEXT( 4871 Pool* pool, 4872 const VkCommandBufferInheritanceConditionalRenderingInfoEXT* from, 4873 VkCommandBufferInheritanceConditionalRenderingInfoEXT* to) 4874 { 4875 (void)pool; 4876 *to = *from; 4877 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4878 to->pNext = nullptr; 4879 if (pNext_size) 4880 { 4881 to->pNext = (const void*)pool->alloc(pNext_size); 4882 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4883 } 4884 } 4885 4886 #endif 4887 #ifdef VK_NVX_device_generated_commands 4888 void deepcopy_VkDeviceGeneratedCommandsFeaturesNVX( 4889 Pool* pool, 4890 const VkDeviceGeneratedCommandsFeaturesNVX* from, 4891 VkDeviceGeneratedCommandsFeaturesNVX* to) 4892 { 4893 (void)pool; 4894 *to = *from; 4895 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4896 to->pNext = nullptr; 4897 if (pNext_size) 4898 { 4899 to->pNext = (const void*)pool->alloc(pNext_size); 4900 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4901 } 4902 } 4903 4904 void deepcopy_VkDeviceGeneratedCommandsLimitsNVX( 4905 Pool* pool, 4906 const VkDeviceGeneratedCommandsLimitsNVX* from, 4907 VkDeviceGeneratedCommandsLimitsNVX* to) 4908 { 4909 (void)pool; 4910 *to = *from; 4911 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4912 to->pNext = nullptr; 4913 if (pNext_size) 4914 { 4915 to->pNext = (const void*)pool->alloc(pNext_size); 4916 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4917 } 4918 } 4919 4920 void deepcopy_VkIndirectCommandsTokenNVX( 4921 Pool* pool, 4922 const VkIndirectCommandsTokenNVX* from, 4923 VkIndirectCommandsTokenNVX* to) 4924 { 4925 (void)pool; 4926 *to = *from; 4927 } 4928 4929 void deepcopy_VkIndirectCommandsLayoutTokenNVX( 4930 Pool* pool, 4931 const VkIndirectCommandsLayoutTokenNVX* from, 4932 VkIndirectCommandsLayoutTokenNVX* to) 4933 { 4934 (void)pool; 4935 *to = *from; 4936 } 4937 4938 void deepcopy_VkIndirectCommandsLayoutCreateInfoNVX( 4939 Pool* pool, 4940 const VkIndirectCommandsLayoutCreateInfoNVX* from, 4941 VkIndirectCommandsLayoutCreateInfoNVX* to) 4942 { 4943 (void)pool; 4944 *to = *from; 4945 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4946 to->pNext = nullptr; 4947 if (pNext_size) 4948 { 4949 to->pNext = (const void*)pool->alloc(pNext_size); 4950 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4951 } 4952 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 4964 void deepcopy_VkCmdProcessCommandsInfoNVX( 4965 Pool* pool, 4966 const VkCmdProcessCommandsInfoNVX* from, 4967 VkCmdProcessCommandsInfoNVX* to) 4968 { 4969 (void)pool; 4970 *to = *from; 4971 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4972 to->pNext = nullptr; 4973 if (pNext_size) 4974 { 4975 to->pNext = (const void*)pool->alloc(pNext_size); 4976 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 4977 } 4978 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 } 4988 } 4989 4990 void deepcopy_VkCmdReserveSpaceForCommandsInfoNVX( 4991 Pool* pool, 4992 const VkCmdReserveSpaceForCommandsInfoNVX* from, 4993 VkCmdReserveSpaceForCommandsInfoNVX* to) 4994 { 4995 (void)pool; 4996 *to = *from; 4997 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 4998 to->pNext = nullptr; 4999 if (pNext_size) 5000 { 5001 to->pNext = (const void*)pool->alloc(pNext_size); 5002 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5003 } 5004 } 5005 5006 void deepcopy_VkObjectTableCreateInfoNVX( 5007 Pool* pool, 5008 const VkObjectTableCreateInfoNVX* from, 5009 VkObjectTableCreateInfoNVX* to) 5010 { 5011 (void)pool; 5012 *to = *from; 5013 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5014 to->pNext = nullptr; 5015 if (pNext_size) 5016 { 5017 to->pNext = (const void*)pool->alloc(pNext_size); 5018 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5019 } 5020 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 } 5035 } 5036 5037 void deepcopy_VkObjectTableEntryNVX( 5038 Pool* pool, 5039 const VkObjectTableEntryNVX* from, 5040 VkObjectTableEntryNVX* to) 5041 { 5042 (void)pool; 5043 *to = *from; 5044 } 5045 5046 void deepcopy_VkObjectTablePipelineEntryNVX( 5047 Pool* pool, 5048 const VkObjectTablePipelineEntryNVX* from, 5049 VkObjectTablePipelineEntryNVX* to) 5050 { 5051 (void)pool; 5052 *to = *from; 5053 } 5054 5055 void deepcopy_VkObjectTableDescriptorSetEntryNVX( 5056 Pool* pool, 5057 const VkObjectTableDescriptorSetEntryNVX* from, 5058 VkObjectTableDescriptorSetEntryNVX* to) 5059 { 5060 (void)pool; 5061 *to = *from; 5062 } 5063 5064 void deepcopy_VkObjectTableVertexBufferEntryNVX( 5065 Pool* pool, 5066 const VkObjectTableVertexBufferEntryNVX* from, 5067 VkObjectTableVertexBufferEntryNVX* to) 5068 { 5069 (void)pool; 5070 *to = *from; 5071 } 5072 5073 void deepcopy_VkObjectTableIndexBufferEntryNVX( 5074 Pool* pool, 5075 const VkObjectTableIndexBufferEntryNVX* from, 5076 VkObjectTableIndexBufferEntryNVX* to) 5077 { 5078 (void)pool; 5079 *to = *from; 5080 } 5081 5082 void deepcopy_VkObjectTablePushConstantEntryNVX( 5083 Pool* pool, 5084 const VkObjectTablePushConstantEntryNVX* from, 5085 VkObjectTablePushConstantEntryNVX* to) 5086 { 5087 (void)pool; 5088 *to = *from; 5089 } 5090 5091 #endif 5092 #ifdef VK_NV_clip_space_w_scaling 5093 void deepcopy_VkViewportWScalingNV( 5094 Pool* pool, 5095 const VkViewportWScalingNV* from, 5096 VkViewportWScalingNV* to) 5097 { 5098 (void)pool; 5099 *to = *from; 5100 } 5101 5102 void deepcopy_VkPipelineViewportWScalingStateCreateInfoNV( 5103 Pool* pool, 5104 const VkPipelineViewportWScalingStateCreateInfoNV* from, 5105 VkPipelineViewportWScalingStateCreateInfoNV* to) 5106 { 5107 (void)pool; 5108 *to = *from; 5109 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5110 to->pNext = nullptr; 5111 if (pNext_size) 5112 { 5113 to->pNext = (const void*)pool->alloc(pNext_size); 5114 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5115 } 5116 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 5134 void deepcopy_VkSurfaceCapabilities2EXT( 5135 Pool* pool, 5136 const VkSurfaceCapabilities2EXT* from, 5137 VkSurfaceCapabilities2EXT* to) 5138 { 5139 (void)pool; 5140 *to = *from; 5141 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5142 to->pNext = nullptr; 5143 if (pNext_size) 5144 { 5145 to->pNext = (void*)pool->alloc(pNext_size); 5146 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5147 } 5148 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)); 5151 } 5152 5153 #endif 5154 #ifdef VK_EXT_display_control 5155 void deepcopy_VkDisplayPowerInfoEXT( 5156 Pool* pool, 5157 const VkDisplayPowerInfoEXT* from, 5158 VkDisplayPowerInfoEXT* to) 5159 { 5160 (void)pool; 5161 *to = *from; 5162 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5163 to->pNext = nullptr; 5164 if (pNext_size) 5165 { 5166 to->pNext = (const void*)pool->alloc(pNext_size); 5167 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5168 } 5169 } 5170 5171 void deepcopy_VkDeviceEventInfoEXT( 5172 Pool* pool, 5173 const VkDeviceEventInfoEXT* from, 5174 VkDeviceEventInfoEXT* to) 5175 { 5176 (void)pool; 5177 *to = *from; 5178 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5179 to->pNext = nullptr; 5180 if (pNext_size) 5181 { 5182 to->pNext = (const void*)pool->alloc(pNext_size); 5183 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5184 } 5185 } 5186 5187 void deepcopy_VkDisplayEventInfoEXT( 5188 Pool* pool, 5189 const VkDisplayEventInfoEXT* from, 5190 VkDisplayEventInfoEXT* to) 5191 { 5192 (void)pool; 5193 *to = *from; 5194 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5195 to->pNext = nullptr; 5196 if (pNext_size) 5197 { 5198 to->pNext = (const void*)pool->alloc(pNext_size); 5199 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5200 } 5201 } 5202 5203 void deepcopy_VkSwapchainCounterCreateInfoEXT( 5204 Pool* pool, 5205 const VkSwapchainCounterCreateInfoEXT* from, 5206 VkSwapchainCounterCreateInfoEXT* to) 5207 { 5208 (void)pool; 5209 *to = *from; 5210 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5211 to->pNext = nullptr; 5212 if (pNext_size) 5213 { 5214 to->pNext = (const void*)pool->alloc(pNext_size); 5215 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5216 } 5217 } 5218 5219 #endif 5220 #ifdef VK_GOOGLE_display_timing 5221 void deepcopy_VkRefreshCycleDurationGOOGLE( 5222 Pool* pool, 5223 const VkRefreshCycleDurationGOOGLE* from, 5224 VkRefreshCycleDurationGOOGLE* to) 5225 { 5226 (void)pool; 5227 *to = *from; 5228 } 5229 5230 void deepcopy_VkPastPresentationTimingGOOGLE( 5231 Pool* pool, 5232 const VkPastPresentationTimingGOOGLE* from, 5233 VkPastPresentationTimingGOOGLE* to) 5234 { 5235 (void)pool; 5236 *to = *from; 5237 } 5238 5239 void deepcopy_VkPresentTimeGOOGLE( 5240 Pool* pool, 5241 const VkPresentTimeGOOGLE* from, 5242 VkPresentTimeGOOGLE* to) 5243 { 5244 (void)pool; 5245 *to = *from; 5246 } 5247 5248 void deepcopy_VkPresentTimesInfoGOOGLE( 5249 Pool* pool, 5250 const VkPresentTimesInfoGOOGLE* from, 5251 VkPresentTimesInfoGOOGLE* to) 5252 { 5253 (void)pool; 5254 *to = *from; 5255 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5256 to->pNext = nullptr; 5257 if (pNext_size) 5258 { 5259 to->pNext = (const void*)pool->alloc(pNext_size); 5260 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5261 } 5262 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 5282 void deepcopy_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( 5283 Pool* pool, 5284 const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* from, 5285 VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* to) 5286 { 5287 (void)pool; 5288 *to = *from; 5289 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5290 to->pNext = nullptr; 5291 if (pNext_size) 5292 { 5293 to->pNext = (void*)pool->alloc(pNext_size); 5294 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5295 } 5296 } 5297 5298 #endif 5299 #ifdef VK_NV_viewport_swizzle 5300 void deepcopy_VkViewportSwizzleNV( 5301 Pool* pool, 5302 const VkViewportSwizzleNV* from, 5303 VkViewportSwizzleNV* to) 5304 { 5305 (void)pool; 5306 *to = *from; 5307 } 5308 5309 void deepcopy_VkPipelineViewportSwizzleStateCreateInfoNV( 5310 Pool* pool, 5311 const VkPipelineViewportSwizzleStateCreateInfoNV* from, 5312 VkPipelineViewportSwizzleStateCreateInfoNV* to) 5313 { 5314 (void)pool; 5315 *to = *from; 5316 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5317 to->pNext = nullptr; 5318 if (pNext_size) 5319 { 5320 to->pNext = (const void*)pool->alloc(pNext_size); 5321 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5322 } 5323 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 5337 void deepcopy_VkPhysicalDeviceDiscardRectanglePropertiesEXT( 5338 Pool* pool, 5339 const VkPhysicalDeviceDiscardRectanglePropertiesEXT* from, 5340 VkPhysicalDeviceDiscardRectanglePropertiesEXT* to) 5341 { 5342 (void)pool; 5343 *to = *from; 5344 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5345 to->pNext = nullptr; 5346 if (pNext_size) 5347 { 5348 to->pNext = (void*)pool->alloc(pNext_size); 5349 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5350 } 5351 } 5352 5353 void deepcopy_VkPipelineDiscardRectangleStateCreateInfoEXT( 5354 Pool* pool, 5355 const VkPipelineDiscardRectangleStateCreateInfoEXT* from, 5356 VkPipelineDiscardRectangleStateCreateInfoEXT* to) 5357 { 5358 (void)pool; 5359 *to = *from; 5360 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5361 to->pNext = nullptr; 5362 if (pNext_size) 5363 { 5364 to->pNext = (const void*)pool->alloc(pNext_size); 5365 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5366 } 5367 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 5381 void deepcopy_VkPhysicalDeviceConservativeRasterizationPropertiesEXT( 5382 Pool* pool, 5383 const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* from, 5384 VkPhysicalDeviceConservativeRasterizationPropertiesEXT* to) 5385 { 5386 (void)pool; 5387 *to = *from; 5388 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5389 to->pNext = nullptr; 5390 if (pNext_size) 5391 { 5392 to->pNext = (void*)pool->alloc(pNext_size); 5393 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5394 } 5395 } 5396 5397 void deepcopy_VkPipelineRasterizationConservativeStateCreateInfoEXT( 5398 Pool* pool, 5399 const VkPipelineRasterizationConservativeStateCreateInfoEXT* from, 5400 VkPipelineRasterizationConservativeStateCreateInfoEXT* to) 5401 { 5402 (void)pool; 5403 *to = *from; 5404 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5405 to->pNext = nullptr; 5406 if (pNext_size) 5407 { 5408 to->pNext = (const void*)pool->alloc(pNext_size); 5409 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5410 } 5411 } 5412 5413 #endif 5414 #ifdef VK_EXT_swapchain_colorspace 5415 #endif 5416 #ifdef VK_EXT_hdr_metadata 5417 void deepcopy_VkXYColorEXT( 5418 Pool* pool, 5419 const VkXYColorEXT* from, 5420 VkXYColorEXT* to) 5421 { 5422 (void)pool; 5423 *to = *from; 5424 } 5425 5426 void deepcopy_VkHdrMetadataEXT( 5427 Pool* pool, 5428 const VkHdrMetadataEXT* from, 5429 VkHdrMetadataEXT* to) 5430 { 5431 (void)pool; 5432 *to = *from; 5433 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5434 to->pNext = nullptr; 5435 if (pNext_size) 5436 { 5437 to->pNext = (const void*)pool->alloc(pNext_size); 5438 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5439 } 5440 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)); 5444 } 5445 5446 #endif 5447 #ifdef VK_MVK_ios_surface 5448 void deepcopy_VkIOSSurfaceCreateInfoMVK( 5449 Pool* pool, 5450 const VkIOSSurfaceCreateInfoMVK* from, 5451 VkIOSSurfaceCreateInfoMVK* to) 5452 { 5453 (void)pool; 5454 *to = *from; 5455 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5456 to->pNext = nullptr; 5457 if (pNext_size) 5458 { 5459 to->pNext = (const void*)pool->alloc(pNext_size); 5460 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5461 } 5462 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 5471 void deepcopy_VkMacOSSurfaceCreateInfoMVK( 5472 Pool* pool, 5473 const VkMacOSSurfaceCreateInfoMVK* from, 5474 VkMacOSSurfaceCreateInfoMVK* to) 5475 { 5476 (void)pool; 5477 *to = *from; 5478 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5479 to->pNext = nullptr; 5480 if (pNext_size) 5481 { 5482 to->pNext = (const void*)pool->alloc(pNext_size); 5483 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5484 } 5485 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 5498 void deepcopy_VkDebugUtilsObjectNameInfoEXT( 5499 Pool* pool, 5500 const VkDebugUtilsObjectNameInfoEXT* from, 5501 VkDebugUtilsObjectNameInfoEXT* to) 5502 { 5503 (void)pool; 5504 *to = *from; 5505 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5506 to->pNext = nullptr; 5507 if (pNext_size) 5508 { 5509 to->pNext = (const void*)pool->alloc(pNext_size); 5510 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5511 } 5512 to->pObjectName = nullptr; 5513 if (from->pObjectName) 5514 { 5515 to->pObjectName = pool->strDup(from->pObjectName); 5516 } 5517 } 5518 5519 void deepcopy_VkDebugUtilsObjectTagInfoEXT( 5520 Pool* pool, 5521 const VkDebugUtilsObjectTagInfoEXT* from, 5522 VkDebugUtilsObjectTagInfoEXT* to) 5523 { 5524 (void)pool; 5525 *to = *from; 5526 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5527 to->pNext = nullptr; 5528 if (pNext_size) 5529 { 5530 to->pNext = (const void*)pool->alloc(pNext_size); 5531 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5532 } 5533 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 5540 void deepcopy_VkDebugUtilsLabelEXT( 5541 Pool* pool, 5542 const VkDebugUtilsLabelEXT* from, 5543 VkDebugUtilsLabelEXT* to) 5544 { 5545 (void)pool; 5546 *to = *from; 5547 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5548 to->pNext = nullptr; 5549 if (pNext_size) 5550 { 5551 to->pNext = (const void*)pool->alloc(pNext_size); 5552 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5553 } 5554 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 5562 void deepcopy_VkDebugUtilsMessengerCallbackDataEXT( 5563 Pool* pool, 5564 const VkDebugUtilsMessengerCallbackDataEXT* from, 5565 VkDebugUtilsMessengerCallbackDataEXT* to) 5566 { 5567 (void)pool; 5568 *to = *from; 5569 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5570 to->pNext = nullptr; 5571 if (pNext_size) 5572 { 5573 to->pNext = (const void*)pool->alloc(pNext_size); 5574 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5575 } 5576 to->pMessageIdName = nullptr; 5577 if (from->pMessageIdName) 5578 { 5579 to->pMessageIdName = pool->strDup(from->pMessageIdName); 5580 } 5581 to->pMessage = nullptr; 5582 if (from->pMessage) 5583 { 5584 to->pMessage = pool->strDup(from->pMessage); 5585 } 5586 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 } 5596 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 } 5606 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 5618 void deepcopy_VkDebugUtilsMessengerCreateInfoEXT( 5619 Pool* pool, 5620 const VkDebugUtilsMessengerCreateInfoEXT* from, 5621 VkDebugUtilsMessengerCreateInfoEXT* to) 5622 { 5623 (void)pool; 5624 *to = *from; 5625 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5626 to->pNext = nullptr; 5627 if (pNext_size) 5628 { 5629 to->pNext = (const void*)pool->alloc(pNext_size); 5630 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5631 } 5632 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 5641 void deepcopy_VkAndroidHardwareBufferUsageANDROID( 5642 Pool* pool, 5643 const VkAndroidHardwareBufferUsageANDROID* from, 5644 VkAndroidHardwareBufferUsageANDROID* to) 5645 { 5646 (void)pool; 5647 *to = *from; 5648 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5649 to->pNext = nullptr; 5650 if (pNext_size) 5651 { 5652 to->pNext = (void*)pool->alloc(pNext_size); 5653 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5654 } 5655 } 5656 5657 void deepcopy_VkAndroidHardwareBufferPropertiesANDROID( 5658 Pool* pool, 5659 const VkAndroidHardwareBufferPropertiesANDROID* from, 5660 VkAndroidHardwareBufferPropertiesANDROID* to) 5661 { 5662 (void)pool; 5663 *to = *from; 5664 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5665 to->pNext = nullptr; 5666 if (pNext_size) 5667 { 5668 to->pNext = (void*)pool->alloc(pNext_size); 5669 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5670 } 5671 } 5672 5673 void deepcopy_VkAndroidHardwareBufferFormatPropertiesANDROID( 5674 Pool* pool, 5675 const VkAndroidHardwareBufferFormatPropertiesANDROID* from, 5676 VkAndroidHardwareBufferFormatPropertiesANDROID* to) 5677 { 5678 (void)pool; 5679 *to = *from; 5680 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5681 to->pNext = nullptr; 5682 if (pNext_size) 5683 { 5684 to->pNext = (void*)pool->alloc(pNext_size); 5685 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5686 } 5687 deepcopy_VkComponentMapping(pool, &from->samplerYcbcrConversionComponents, (VkComponentMapping*)(&to->samplerYcbcrConversionComponents)); 5688 } 5689 5690 void deepcopy_VkImportAndroidHardwareBufferInfoANDROID( 5691 Pool* pool, 5692 const VkImportAndroidHardwareBufferInfoANDROID* from, 5693 VkImportAndroidHardwareBufferInfoANDROID* to) 5694 { 5695 (void)pool; 5696 *to = *from; 5697 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5698 to->pNext = nullptr; 5699 if (pNext_size) 5700 { 5701 to->pNext = (const void*)pool->alloc(pNext_size); 5702 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5703 } 5704 to->buffer = nullptr; 5705 if (from->buffer) 5706 { 5707 to->buffer = (AHardwareBuffer*)pool->dupArray(from->buffer, sizeof(AHardwareBuffer)); 5708 } 5709 } 5710 5711 void deepcopy_VkMemoryGetAndroidHardwareBufferInfoANDROID( 5712 Pool* pool, 5713 const VkMemoryGetAndroidHardwareBufferInfoANDROID* from, 5714 VkMemoryGetAndroidHardwareBufferInfoANDROID* to) 5715 { 5716 (void)pool; 5717 *to = *from; 5718 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5719 to->pNext = nullptr; 5720 if (pNext_size) 5721 { 5722 to->pNext = (const void*)pool->alloc(pNext_size); 5723 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5724 } 5725 } 5726 5727 void deepcopy_VkExternalFormatANDROID( 5728 Pool* pool, 5729 const VkExternalFormatANDROID* from, 5730 VkExternalFormatANDROID* to) 5731 { 5732 (void)pool; 5733 *to = *from; 5734 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5735 to->pNext = nullptr; 5736 if (pNext_size) 5737 { 5738 to->pNext = (void*)pool->alloc(pNext_size); 5739 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5740 } 5741 } 5742 5743 #endif 5744 #ifdef VK_EXT_sampler_filter_minmax 5745 void deepcopy_VkSamplerReductionModeCreateInfoEXT( 5746 Pool* pool, 5747 const VkSamplerReductionModeCreateInfoEXT* from, 5748 VkSamplerReductionModeCreateInfoEXT* to) 5749 { 5750 (void)pool; 5751 *to = *from; 5752 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5753 to->pNext = nullptr; 5754 if (pNext_size) 5755 { 5756 to->pNext = (const void*)pool->alloc(pNext_size); 5757 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5758 } 5759 } 5760 5761 void deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT( 5762 Pool* pool, 5763 const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* from, 5764 VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* to) 5765 { 5766 (void)pool; 5767 *to = *from; 5768 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5769 to->pNext = nullptr; 5770 if (pNext_size) 5771 { 5772 to->pNext = (void*)pool->alloc(pNext_size); 5773 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5774 } 5775 } 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 5787 void deepcopy_VkSampleLocationEXT( 5788 Pool* pool, 5789 const VkSampleLocationEXT* from, 5790 VkSampleLocationEXT* to) 5791 { 5792 (void)pool; 5793 *to = *from; 5794 } 5795 5796 void deepcopy_VkSampleLocationsInfoEXT( 5797 Pool* pool, 5798 const VkSampleLocationsInfoEXT* from, 5799 VkSampleLocationsInfoEXT* to) 5800 { 5801 (void)pool; 5802 *to = *from; 5803 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5804 to->pNext = nullptr; 5805 if (pNext_size) 5806 { 5807 to->pNext = (const void*)pool->alloc(pNext_size); 5808 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5809 } 5810 deepcopy_VkExtent2D(pool, &from->sampleLocationGridSize, (VkExtent2D*)(&to->sampleLocationGridSize)); 5811 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 5823 void deepcopy_VkAttachmentSampleLocationsEXT( 5824 Pool* pool, 5825 const VkAttachmentSampleLocationsEXT* from, 5826 VkAttachmentSampleLocationsEXT* to) 5827 { 5828 (void)pool; 5829 *to = *from; 5830 deepcopy_VkSampleLocationsInfoEXT(pool, &from->sampleLocationsInfo, (VkSampleLocationsInfoEXT*)(&to->sampleLocationsInfo)); 5831 } 5832 5833 void deepcopy_VkSubpassSampleLocationsEXT( 5834 Pool* pool, 5835 const VkSubpassSampleLocationsEXT* from, 5836 VkSubpassSampleLocationsEXT* to) 5837 { 5838 (void)pool; 5839 *to = *from; 5840 deepcopy_VkSampleLocationsInfoEXT(pool, &from->sampleLocationsInfo, (VkSampleLocationsInfoEXT*)(&to->sampleLocationsInfo)); 5841 } 5842 5843 void deepcopy_VkRenderPassSampleLocationsBeginInfoEXT( 5844 Pool* pool, 5845 const VkRenderPassSampleLocationsBeginInfoEXT* from, 5846 VkRenderPassSampleLocationsBeginInfoEXT* to) 5847 { 5848 (void)pool; 5849 *to = *from; 5850 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5851 to->pNext = nullptr; 5852 if (pNext_size) 5853 { 5854 to->pNext = (const void*)pool->alloc(pNext_size); 5855 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5856 } 5857 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 } 5867 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 5879 void deepcopy_VkPipelineSampleLocationsStateCreateInfoEXT( 5880 Pool* pool, 5881 const VkPipelineSampleLocationsStateCreateInfoEXT* from, 5882 VkPipelineSampleLocationsStateCreateInfoEXT* to) 5883 { 5884 (void)pool; 5885 *to = *from; 5886 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5887 to->pNext = nullptr; 5888 if (pNext_size) 5889 { 5890 to->pNext = (const void*)pool->alloc(pNext_size); 5891 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5892 } 5893 deepcopy_VkSampleLocationsInfoEXT(pool, &from->sampleLocationsInfo, (VkSampleLocationsInfoEXT*)(&to->sampleLocationsInfo)); 5894 } 5895 5896 void deepcopy_VkPhysicalDeviceSampleLocationsPropertiesEXT( 5897 Pool* pool, 5898 const VkPhysicalDeviceSampleLocationsPropertiesEXT* from, 5899 VkPhysicalDeviceSampleLocationsPropertiesEXT* to) 5900 { 5901 (void)pool; 5902 *to = *from; 5903 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5904 to->pNext = nullptr; 5905 if (pNext_size) 5906 { 5907 to->pNext = (void*)pool->alloc(pNext_size); 5908 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5909 } 5910 deepcopy_VkExtent2D(pool, &from->maxSampleLocationGridSize, (VkExtent2D*)(&to->maxSampleLocationGridSize)); 5911 memcpy(to->sampleLocationCoordinateRange, from->sampleLocationCoordinateRange, 2 * sizeof(float)); 5912 } 5913 5914 void deepcopy_VkMultisamplePropertiesEXT( 5915 Pool* pool, 5916 const VkMultisamplePropertiesEXT* from, 5917 VkMultisamplePropertiesEXT* to) 5918 { 5919 (void)pool; 5920 *to = *from; 5921 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5922 to->pNext = nullptr; 5923 if (pNext_size) 5924 { 5925 to->pNext = (void*)pool->alloc(pNext_size); 5926 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5927 } 5928 deepcopy_VkExtent2D(pool, &from->maxSampleLocationGridSize, (VkExtent2D*)(&to->maxSampleLocationGridSize)); 5929 } 5930 5931 #endif 5932 #ifdef VK_EXT_blend_operation_advanced 5933 void deepcopy_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT( 5934 Pool* pool, 5935 const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* from, 5936 VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* to) 5937 { 5938 (void)pool; 5939 *to = *from; 5940 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5941 to->pNext = nullptr; 5942 if (pNext_size) 5943 { 5944 to->pNext = (void*)pool->alloc(pNext_size); 5945 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5946 } 5947 } 5948 5949 void deepcopy_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT( 5950 Pool* pool, 5951 const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* from, 5952 VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* to) 5953 { 5954 (void)pool; 5955 *to = *from; 5956 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5957 to->pNext = nullptr; 5958 if (pNext_size) 5959 { 5960 to->pNext = (void*)pool->alloc(pNext_size); 5961 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5962 } 5963 } 5964 5965 void deepcopy_VkPipelineColorBlendAdvancedStateCreateInfoEXT( 5966 Pool* pool, 5967 const VkPipelineColorBlendAdvancedStateCreateInfoEXT* from, 5968 VkPipelineColorBlendAdvancedStateCreateInfoEXT* to) 5969 { 5970 (void)pool; 5971 *to = *from; 5972 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5973 to->pNext = nullptr; 5974 if (pNext_size) 5975 { 5976 to->pNext = (const void*)pool->alloc(pNext_size); 5977 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5978 } 5979 } 5980 5981 #endif 5982 #ifdef VK_NV_fragment_coverage_to_color 5983 void deepcopy_VkPipelineCoverageToColorStateCreateInfoNV( 5984 Pool* pool, 5985 const VkPipelineCoverageToColorStateCreateInfoNV* from, 5986 VkPipelineCoverageToColorStateCreateInfoNV* to) 5987 { 5988 (void)pool; 5989 *to = *from; 5990 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 5991 to->pNext = nullptr; 5992 if (pNext_size) 5993 { 5994 to->pNext = (const void*)pool->alloc(pNext_size); 5995 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 5996 } 5997 } 5998 5999 #endif 6000 #ifdef VK_NV_framebuffer_mixed_samples 6001 void deepcopy_VkPipelineCoverageModulationStateCreateInfoNV( 6002 Pool* pool, 6003 const VkPipelineCoverageModulationStateCreateInfoNV* from, 6004 VkPipelineCoverageModulationStateCreateInfoNV* to) 6005 { 6006 (void)pool; 6007 *to = *from; 6008 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6009 to->pNext = nullptr; 6010 if (pNext_size) 6011 { 6012 to->pNext = (const void*)pool->alloc(pNext_size); 6013 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6014 } 6015 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 6028 void deepcopy_VkValidationCacheCreateInfoEXT( 6029 Pool* pool, 6030 const VkValidationCacheCreateInfoEXT* from, 6031 VkValidationCacheCreateInfoEXT* to) 6032 { 6033 (void)pool; 6034 *to = *from; 6035 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6036 to->pNext = nullptr; 6037 if (pNext_size) 6038 { 6039 to->pNext = (const void*)pool->alloc(pNext_size); 6040 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6041 } 6042 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 6049 void deepcopy_VkShaderModuleValidationCacheCreateInfoEXT( 6050 Pool* pool, 6051 const VkShaderModuleValidationCacheCreateInfoEXT* from, 6052 VkShaderModuleValidationCacheCreateInfoEXT* to) 6053 { 6054 (void)pool; 6055 *to = *from; 6056 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6057 to->pNext = nullptr; 6058 if (pNext_size) 6059 { 6060 to->pNext = (const void*)pool->alloc(pNext_size); 6061 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6062 } 6063 } 6064 6065 #endif 6066 #ifdef VK_EXT_descriptor_indexing 6067 void deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT( 6068 Pool* pool, 6069 const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* from, 6070 VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* to) 6071 { 6072 (void)pool; 6073 *to = *from; 6074 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6075 to->pNext = nullptr; 6076 if (pNext_size) 6077 { 6078 to->pNext = (const void*)pool->alloc(pNext_size); 6079 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6080 } 6081 to->pBindingFlags = nullptr; 6082 if (from->pBindingFlags) 6083 { 6084 to->pBindingFlags = (VkDescriptorBindingFlagsEXT*)pool->dupArray(from->pBindingFlags, from->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT)); 6085 } 6086 } 6087 6088 void deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT( 6089 Pool* pool, 6090 const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* from, 6091 VkPhysicalDeviceDescriptorIndexingFeaturesEXT* to) 6092 { 6093 (void)pool; 6094 *to = *from; 6095 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6096 to->pNext = nullptr; 6097 if (pNext_size) 6098 { 6099 to->pNext = (void*)pool->alloc(pNext_size); 6100 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6101 } 6102 } 6103 6104 void deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT( 6105 Pool* pool, 6106 const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* from, 6107 VkPhysicalDeviceDescriptorIndexingPropertiesEXT* to) 6108 { 6109 (void)pool; 6110 *to = *from; 6111 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6112 to->pNext = nullptr; 6113 if (pNext_size) 6114 { 6115 to->pNext = (void*)pool->alloc(pNext_size); 6116 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6117 } 6118 } 6119 6120 void deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT( 6121 Pool* pool, 6122 const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* from, 6123 VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* to) 6124 { 6125 (void)pool; 6126 *to = *from; 6127 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6128 to->pNext = nullptr; 6129 if (pNext_size) 6130 { 6131 to->pNext = (const void*)pool->alloc(pNext_size); 6132 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6133 } 6134 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 6141 void deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT( 6142 Pool* pool, 6143 const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* from, 6144 VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* to) 6145 { 6146 (void)pool; 6147 *to = *from; 6148 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6149 to->pNext = nullptr; 6150 if (pNext_size) 6151 { 6152 to->pNext = (void*)pool->alloc(pNext_size); 6153 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6154 } 6155 } 6156 6157 #endif 6158 #ifdef VK_EXT_shader_viewport_index_layer 6159 #endif 6160 #ifdef VK_EXT_global_priority 6161 void deepcopy_VkDeviceQueueGlobalPriorityCreateInfoEXT( 6162 Pool* pool, 6163 const VkDeviceQueueGlobalPriorityCreateInfoEXT* from, 6164 VkDeviceQueueGlobalPriorityCreateInfoEXT* to) 6165 { 6166 (void)pool; 6167 *to = *from; 6168 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6169 to->pNext = nullptr; 6170 if (pNext_size) 6171 { 6172 to->pNext = (const void*)pool->alloc(pNext_size); 6173 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6174 } 6175 } 6176 6177 #endif 6178 #ifdef VK_EXT_external_memory_host 6179 void deepcopy_VkImportMemoryHostPointerInfoEXT( 6180 Pool* pool, 6181 const VkImportMemoryHostPointerInfoEXT* from, 6182 VkImportMemoryHostPointerInfoEXT* to) 6183 { 6184 (void)pool; 6185 *to = *from; 6186 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6187 to->pNext = nullptr; 6188 if (pNext_size) 6189 { 6190 to->pNext = (const void*)pool->alloc(pNext_size); 6191 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6192 } 6193 to->pHostPointer = nullptr; 6194 if (from->pHostPointer) 6195 { 6196 to->pHostPointer = (void*)pool->dupArray(from->pHostPointer, sizeof(uint8_t)); 6197 } 6198 } 6199 6200 void deepcopy_VkMemoryHostPointerPropertiesEXT( 6201 Pool* pool, 6202 const VkMemoryHostPointerPropertiesEXT* from, 6203 VkMemoryHostPointerPropertiesEXT* to) 6204 { 6205 (void)pool; 6206 *to = *from; 6207 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6208 to->pNext = nullptr; 6209 if (pNext_size) 6210 { 6211 to->pNext = (void*)pool->alloc(pNext_size); 6212 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6213 } 6214 } 6215 6216 void deepcopy_VkPhysicalDeviceExternalMemoryHostPropertiesEXT( 6217 Pool* pool, 6218 const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* from, 6219 VkPhysicalDeviceExternalMemoryHostPropertiesEXT* to) 6220 { 6221 (void)pool; 6222 *to = *from; 6223 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6224 to->pNext = nullptr; 6225 if (pNext_size) 6226 { 6227 to->pNext = (void*)pool->alloc(pNext_size); 6228 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6229 } 6230 } 6231 6232 #endif 6233 #ifdef VK_AMD_buffer_marker 6234 #endif 6235 #ifdef VK_AMD_shader_core_properties 6236 void deepcopy_VkPhysicalDeviceShaderCorePropertiesAMD( 6237 Pool* pool, 6238 const VkPhysicalDeviceShaderCorePropertiesAMD* from, 6239 VkPhysicalDeviceShaderCorePropertiesAMD* to) 6240 { 6241 (void)pool; 6242 *to = *from; 6243 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6244 to->pNext = nullptr; 6245 if (pNext_size) 6246 { 6247 to->pNext = (void*)pool->alloc(pNext_size); 6248 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6249 } 6250 } 6251 6252 #endif 6253 #ifdef VK_EXT_vertex_attribute_divisor 6254 void deepcopy_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT( 6255 Pool* pool, 6256 const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* from, 6257 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* to) 6258 { 6259 (void)pool; 6260 *to = *from; 6261 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6262 to->pNext = nullptr; 6263 if (pNext_size) 6264 { 6265 to->pNext = (void*)pool->alloc(pNext_size); 6266 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6267 } 6268 } 6269 6270 void deepcopy_VkVertexInputBindingDivisorDescriptionEXT( 6271 Pool* pool, 6272 const VkVertexInputBindingDivisorDescriptionEXT* from, 6273 VkVertexInputBindingDivisorDescriptionEXT* to) 6274 { 6275 (void)pool; 6276 *to = *from; 6277 } 6278 6279 void deepcopy_VkPipelineVertexInputDivisorStateCreateInfoEXT( 6280 Pool* pool, 6281 const VkPipelineVertexInputDivisorStateCreateInfoEXT* from, 6282 VkPipelineVertexInputDivisorStateCreateInfoEXT* to) 6283 { 6284 (void)pool; 6285 *to = *from; 6286 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6287 to->pNext = nullptr; 6288 if (pNext_size) 6289 { 6290 to->pNext = (const void*)pool->alloc(pNext_size); 6291 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6292 } 6293 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 6309 void deepcopy_VkQueueFamilyCheckpointPropertiesNV( 6310 Pool* pool, 6311 const VkQueueFamilyCheckpointPropertiesNV* from, 6312 VkQueueFamilyCheckpointPropertiesNV* to) 6313 { 6314 (void)pool; 6315 *to = *from; 6316 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6317 to->pNext = nullptr; 6318 if (pNext_size) 6319 { 6320 to->pNext = (void*)pool->alloc(pNext_size); 6321 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6322 } 6323 } 6324 6325 void deepcopy_VkCheckpointDataNV( 6326 Pool* pool, 6327 const VkCheckpointDataNV* from, 6328 VkCheckpointDataNV* to) 6329 { 6330 (void)pool; 6331 *to = *from; 6332 size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext); 6333 to->pNext = nullptr; 6334 if (pNext_size) 6335 { 6336 to->pNext = (void*)pool->alloc(pNext_size); 6337 deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext)); 6338 } 6339 to->pCheckpointMarker = nullptr; 6340 if (from->pCheckpointMarker) 6341 { 6342 to->pCheckpointMarker = (void*)pool->dupArray(from->pCheckpointMarker, sizeof(uint8_t)); 6343 } 6344 } 6345 6346 #endif 6347 #ifdef VK_GOOGLE_address_space 6348 #endif 6349 #ifdef VK_GOOGLE_color_buffer 6350 void 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 6366 void 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 6382 #endif 6383 #ifdef VK_GOOGLE_sized_descriptor_update_template 6384 #endif 6385 #ifdef VK_GOOGLE_async_command_buffers 6386 #endif 6387 void deepcopy_extension_struct( 6388 Pool* pool, 6389 const void* structExtension, 6390 void* structExtension_out) 6391 { 6392 if (!structExtension) 6393 { 6394 return; 6395 } 6396 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension); 6397 switch(structType) 6398 { 6399 #ifdef VK_VERSION_1_1 6400 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: 6401 { 6402 deepcopy_VkPhysicalDeviceSubgroupProperties(pool, reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out)); 6403 break; 6404 } 6405 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: 6406 { 6407 deepcopy_VkPhysicalDevice16BitStorageFeatures(pool, reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension), reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out)); 6408 break; 6409 } 6410 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: 6411 { 6412 deepcopy_VkMemoryDedicatedRequirements(pool, reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension), reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out)); 6413 break; 6414 } 6415 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: 6416 { 6417 deepcopy_VkMemoryDedicatedAllocateInfo(pool, reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension), reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out)); 6418 break; 6419 } 6420 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: 6421 { 6422 deepcopy_VkMemoryAllocateFlagsInfo(pool, reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension), reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out)); 6423 break; 6424 } 6425 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: 6426 { 6427 deepcopy_VkDeviceGroupRenderPassBeginInfo(pool, reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension), reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out)); 6428 break; 6429 } 6430 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: 6431 { 6432 deepcopy_VkDeviceGroupCommandBufferBeginInfo(pool, reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension), reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out)); 6433 break; 6434 } 6435 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: 6436 { 6437 deepcopy_VkDeviceGroupSubmitInfo(pool, reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension), reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out)); 6438 break; 6439 } 6440 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: 6441 { 6442 deepcopy_VkDeviceGroupBindSparseInfo(pool, reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension), reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out)); 6443 break; 6444 } 6445 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: 6446 { 6447 deepcopy_VkBindBufferMemoryDeviceGroupInfo(pool, reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension), reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out)); 6448 break; 6449 } 6450 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: 6451 { 6452 deepcopy_VkBindImageMemoryDeviceGroupInfo(pool, reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension), reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out)); 6453 break; 6454 } 6455 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: 6456 { 6457 deepcopy_VkDeviceGroupDeviceCreateInfo(pool, reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension), reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out)); 6458 break; 6459 } 6460 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: 6461 { 6462 deepcopy_VkPhysicalDeviceFeatures2(pool, reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension), reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out)); 6463 break; 6464 } 6465 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: 6466 { 6467 deepcopy_VkPhysicalDevicePointClippingProperties(pool, reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension), reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out)); 6468 break; 6469 } 6470 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: 6471 { 6472 deepcopy_VkRenderPassInputAttachmentAspectCreateInfo(pool, reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension), reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(structExtension_out)); 6473 break; 6474 } 6475 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: 6476 { 6477 deepcopy_VkImageViewUsageCreateInfo(pool, reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension), reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out)); 6478 break; 6479 } 6480 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: 6481 { 6482 deepcopy_VkPipelineTessellationDomainOriginStateCreateInfo(pool, reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension), reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(structExtension_out)); 6483 break; 6484 } 6485 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: 6486 { 6487 deepcopy_VkRenderPassMultiviewCreateInfo(pool, reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension), reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out)); 6488 break; 6489 } 6490 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: 6491 { 6492 deepcopy_VkPhysicalDeviceMultiviewFeatures(pool, reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out)); 6493 break; 6494 } 6495 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: 6496 { 6497 deepcopy_VkPhysicalDeviceMultiviewProperties(pool, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out)); 6498 break; 6499 } 6500 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES: 6501 { 6502 deepcopy_VkPhysicalDeviceVariablePointerFeatures(pool, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out)); 6503 break; 6504 } 6505 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: 6506 { 6507 deepcopy_VkPhysicalDeviceProtectedMemoryFeatures(pool, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out)); 6508 break; 6509 } 6510 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: 6511 { 6512 deepcopy_VkPhysicalDeviceProtectedMemoryProperties(pool, reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out)); 6513 break; 6514 } 6515 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: 6516 { 6517 deepcopy_VkProtectedSubmitInfo(pool, reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension), reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out)); 6518 break; 6519 } 6520 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: 6521 { 6522 deepcopy_VkSamplerYcbcrConversionInfo(pool, reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension), reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out)); 6523 break; 6524 } 6525 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: 6526 { 6527 deepcopy_VkBindImagePlaneMemoryInfo(pool, reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension), reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out)); 6528 break; 6529 } 6530 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: 6531 { 6532 deepcopy_VkImagePlaneMemoryRequirementsInfo(pool, reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension), reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out)); 6533 break; 6534 } 6535 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: 6536 { 6537 deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeatures(pool, reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(structExtension_out)); 6538 break; 6539 } 6540 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: 6541 { 6542 deepcopy_VkSamplerYcbcrConversionImageFormatProperties(pool, reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(structExtension), reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(structExtension_out)); 6543 break; 6544 } 6545 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: 6546 { 6547 deepcopy_VkPhysicalDeviceExternalImageFormatInfo(pool, reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension), reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out)); 6548 break; 6549 } 6550 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: 6551 { 6552 deepcopy_VkExternalImageFormatProperties(pool, reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension), reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out)); 6553 break; 6554 } 6555 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: 6556 { 6557 deepcopy_VkPhysicalDeviceIDProperties(pool, reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out)); 6558 break; 6559 } 6560 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: 6561 { 6562 deepcopy_VkExternalMemoryImageCreateInfo(pool, reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension), reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out)); 6563 break; 6564 } 6565 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: 6566 { 6567 deepcopy_VkExternalMemoryBufferCreateInfo(pool, reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension), reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out)); 6568 break; 6569 } 6570 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: 6571 { 6572 deepcopy_VkExportMemoryAllocateInfo(pool, reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension), reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out)); 6573 break; 6574 } 6575 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: 6576 { 6577 deepcopy_VkExportFenceCreateInfo(pool, reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension), reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out)); 6578 break; 6579 } 6580 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: 6581 { 6582 deepcopy_VkExportSemaphoreCreateInfo(pool, reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension), reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out)); 6583 break; 6584 } 6585 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: 6586 { 6587 deepcopy_VkPhysicalDeviceMaintenance3Properties(pool, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension), reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out)); 6588 break; 6589 } 6590 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES: 6591 { 6592 deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures(pool, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out)); 6593 break; 6594 } 6595 #endif 6596 #ifdef VK_KHR_swapchain 6597 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: 6598 { 6599 deepcopy_VkImageSwapchainCreateInfoKHR(pool, reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension), reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out)); 6600 break; 6601 } 6602 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: 6603 { 6604 deepcopy_VkBindImageMemorySwapchainInfoKHR(pool, reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension), reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out)); 6605 break; 6606 } 6607 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: 6608 { 6609 deepcopy_VkDeviceGroupPresentInfoKHR(pool, reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension), reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out)); 6610 break; 6611 } 6612 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: 6613 { 6614 deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(pool, reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension), reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out)); 6615 break; 6616 } 6617 #endif 6618 #ifdef VK_KHR_display_swapchain 6619 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: 6620 { 6621 deepcopy_VkDisplayPresentInfoKHR(pool, reinterpret_cast<const VkDisplayPresentInfoKHR*>(structExtension), reinterpret_cast<VkDisplayPresentInfoKHR*>(structExtension_out)); 6622 break; 6623 } 6624 #endif 6625 #ifdef VK_KHR_external_memory_win32 6626 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: 6627 { 6628 deepcopy_VkImportMemoryWin32HandleInfoKHR(pool, reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(structExtension_out)); 6629 break; 6630 } 6631 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: 6632 { 6633 deepcopy_VkExportMemoryWin32HandleInfoKHR(pool, reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(structExtension_out)); 6634 break; 6635 } 6636 #endif 6637 #ifdef VK_KHR_external_memory_fd 6638 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: 6639 { 6640 deepcopy_VkImportMemoryFdInfoKHR(pool, reinterpret_cast<const VkImportMemoryFdInfoKHR*>(structExtension), reinterpret_cast<VkImportMemoryFdInfoKHR*>(structExtension_out)); 6641 break; 6642 } 6643 #endif 6644 #ifdef VK_KHR_win32_keyed_mutex 6645 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: 6646 { 6647 deepcopy_VkWin32KeyedMutexAcquireReleaseInfoKHR(pool, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension), reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(structExtension_out)); 6648 break; 6649 } 6650 #endif 6651 #ifdef VK_KHR_external_semaphore_win32 6652 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: 6653 { 6654 deepcopy_VkExportSemaphoreWin32HandleInfoKHR(pool, reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(structExtension_out)); 6655 break; 6656 } 6657 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: 6658 { 6659 deepcopy_VkD3D12FenceSubmitInfoKHR(pool, reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(structExtension), reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(structExtension_out)); 6660 break; 6661 } 6662 #endif 6663 #ifdef VK_KHR_push_descriptor 6664 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: 6665 { 6666 deepcopy_VkPhysicalDevicePushDescriptorPropertiesKHR(pool, reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(structExtension_out)); 6667 break; 6668 } 6669 #endif 6670 #ifdef VK_KHR_incremental_present 6671 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: 6672 { 6673 deepcopy_VkPresentRegionsKHR(pool, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension), reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out)); 6674 break; 6675 } 6676 #endif 6677 #ifdef VK_KHR_shared_presentable_image 6678 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: 6679 { 6680 deepcopy_VkSharedPresentSurfaceCapabilitiesKHR(pool, reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension), reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(structExtension_out)); 6681 break; 6682 } 6683 #endif 6684 #ifdef VK_KHR_external_fence_win32 6685 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: 6686 { 6687 deepcopy_VkExportFenceWin32HandleInfoKHR(pool, reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(structExtension), reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(structExtension_out)); 6688 break; 6689 } 6690 #endif 6691 #ifdef VK_KHR_image_format_list 6692 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR: 6693 { 6694 deepcopy_VkImageFormatListCreateInfoKHR(pool, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension), reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out)); 6695 break; 6696 } 6697 #endif 6698 #ifdef VK_KHR_8bit_storage 6699 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR: 6700 { 6701 deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out)); 6702 break; 6703 } 6704 #endif 6705 #ifdef VK_ANDROID_native_buffer 6706 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: 6707 { 6708 deepcopy_VkNativeBufferANDROID(pool, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension), reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out)); 6709 break; 6710 } 6711 #endif 6712 #ifdef VK_EXT_debug_report 6713 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: 6714 { 6715 deepcopy_VkDebugReportCallbackCreateInfoEXT(pool, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(structExtension), reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(structExtension_out)); 6716 break; 6717 } 6718 #endif 6719 #ifdef VK_AMD_rasterization_order 6720 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: 6721 { 6722 deepcopy_VkPipelineRasterizationStateRasterizationOrderAMD(pool, reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension), reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(structExtension_out)); 6723 break; 6724 } 6725 #endif 6726 #ifdef VK_NV_dedicated_allocation 6727 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: 6728 { 6729 deepcopy_VkDedicatedAllocationImageCreateInfoNV(pool, reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(structExtension), reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(structExtension_out)); 6730 break; 6731 } 6732 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: 6733 { 6734 deepcopy_VkDedicatedAllocationBufferCreateInfoNV(pool, reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(structExtension), reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(structExtension_out)); 6735 break; 6736 } 6737 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: 6738 { 6739 deepcopy_VkDedicatedAllocationMemoryAllocateInfoNV(pool, reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension), reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(structExtension_out)); 6740 break; 6741 } 6742 #endif 6743 #ifdef VK_AMD_texture_gather_bias_lod 6744 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: 6745 { 6746 deepcopy_VkTextureLODGatherFormatPropertiesAMD(pool, reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(structExtension), reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(structExtension_out)); 6747 break; 6748 } 6749 #endif 6750 #ifdef VK_NV_external_memory 6751 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: 6752 { 6753 deepcopy_VkExternalMemoryImageCreateInfoNV(pool, reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(structExtension), reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(structExtension_out)); 6754 break; 6755 } 6756 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: 6757 { 6758 deepcopy_VkExportMemoryAllocateInfoNV(pool, reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(structExtension), reinterpret_cast<VkExportMemoryAllocateInfoNV*>(structExtension_out)); 6759 break; 6760 } 6761 #endif 6762 #ifdef VK_NV_external_memory_win32 6763 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: 6764 { 6765 deepcopy_VkImportMemoryWin32HandleInfoNV(pool, reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(structExtension), reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(structExtension_out)); 6766 break; 6767 } 6768 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: 6769 { 6770 deepcopy_VkExportMemoryWin32HandleInfoNV(pool, reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(structExtension), reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(structExtension_out)); 6771 break; 6772 } 6773 #endif 6774 #ifdef VK_NV_win32_keyed_mutex 6775 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: 6776 { 6777 deepcopy_VkWin32KeyedMutexAcquireReleaseInfoNV(pool, reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension), reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(structExtension_out)); 6778 break; 6779 } 6780 #endif 6781 #ifdef VK_EXT_validation_flags 6782 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: 6783 { 6784 deepcopy_VkValidationFlagsEXT(pool, reinterpret_cast<const VkValidationFlagsEXT*>(structExtension), reinterpret_cast<VkValidationFlagsEXT*>(structExtension_out)); 6785 break; 6786 } 6787 #endif 6788 #ifdef VK_EXT_conditional_rendering 6789 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: 6790 { 6791 deepcopy_VkPhysicalDeviceConditionalRenderingFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(structExtension_out)); 6792 break; 6793 } 6794 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: 6795 { 6796 deepcopy_VkCommandBufferInheritanceConditionalRenderingInfoEXT(pool, reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension), reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(structExtension_out)); 6797 break; 6798 } 6799 #endif 6800 #ifdef VK_NV_clip_space_w_scaling 6801 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: 6802 { 6803 deepcopy_VkPipelineViewportWScalingStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(structExtension_out)); 6804 break; 6805 } 6806 #endif 6807 #ifdef VK_EXT_display_control 6808 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: 6809 { 6810 deepcopy_VkSwapchainCounterCreateInfoEXT(pool, reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(structExtension), reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(structExtension_out)); 6811 break; 6812 } 6813 #endif 6814 #ifdef VK_GOOGLE_display_timing 6815 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: 6816 { 6817 deepcopy_VkPresentTimesInfoGOOGLE(pool, reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(structExtension), reinterpret_cast<VkPresentTimesInfoGOOGLE*>(structExtension_out)); 6818 break; 6819 } 6820 #endif 6821 #ifdef VK_NVX_multiview_per_view_attributes 6822 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: 6823 { 6824 deepcopy_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(pool, reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(structExtension_out)); 6825 break; 6826 } 6827 #endif 6828 #ifdef VK_NV_viewport_swizzle 6829 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: 6830 { 6831 deepcopy_VkPipelineViewportSwizzleStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(structExtension_out)); 6832 break; 6833 } 6834 #endif 6835 #ifdef VK_EXT_discard_rectangles 6836 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: 6837 { 6838 deepcopy_VkPhysicalDeviceDiscardRectanglePropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(structExtension_out)); 6839 break; 6840 } 6841 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: 6842 { 6843 deepcopy_VkPipelineDiscardRectangleStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(structExtension_out)); 6844 break; 6845 } 6846 #endif 6847 #ifdef VK_EXT_conservative_rasterization 6848 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: 6849 { 6850 deepcopy_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(structExtension_out)); 6851 break; 6852 } 6853 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: 6854 { 6855 deepcopy_VkPipelineRasterizationConservativeStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(structExtension_out)); 6856 break; 6857 } 6858 #endif 6859 #ifdef VK_EXT_debug_utils 6860 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: 6861 { 6862 deepcopy_VkDebugUtilsMessengerCreateInfoEXT(pool, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(structExtension), reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(structExtension_out)); 6863 break; 6864 } 6865 #endif 6866 #ifdef VK_ANDROID_external_memory_android_hardware_buffer 6867 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: 6868 { 6869 deepcopy_VkAndroidHardwareBufferUsageANDROID(pool, reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(structExtension), reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(structExtension_out)); 6870 break; 6871 } 6872 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: 6873 { 6874 deepcopy_VkAndroidHardwareBufferFormatPropertiesANDROID(pool, reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension), reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(structExtension_out)); 6875 break; 6876 } 6877 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: 6878 { 6879 deepcopy_VkImportAndroidHardwareBufferInfoANDROID(pool, reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(structExtension), reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(structExtension_out)); 6880 break; 6881 } 6882 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: 6883 { 6884 deepcopy_VkExternalFormatANDROID(pool, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension), reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out)); 6885 break; 6886 } 6887 #endif 6888 #ifdef VK_EXT_sampler_filter_minmax 6889 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT: 6890 { 6891 deepcopy_VkSamplerReductionModeCreateInfoEXT(pool, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension), reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out)); 6892 break; 6893 } 6894 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT: 6895 { 6896 deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out)); 6897 break; 6898 } 6899 #endif 6900 #ifdef VK_EXT_sample_locations 6901 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: 6902 { 6903 deepcopy_VkSampleLocationsInfoEXT(pool, reinterpret_cast<const VkSampleLocationsInfoEXT*>(structExtension), reinterpret_cast<VkSampleLocationsInfoEXT*>(structExtension_out)); 6904 break; 6905 } 6906 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: 6907 { 6908 deepcopy_VkRenderPassSampleLocationsBeginInfoEXT(pool, reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension), reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(structExtension_out)); 6909 break; 6910 } 6911 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: 6912 { 6913 deepcopy_VkPipelineSampleLocationsStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(structExtension_out)); 6914 break; 6915 } 6916 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: 6917 { 6918 deepcopy_VkPhysicalDeviceSampleLocationsPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(structExtension_out)); 6919 break; 6920 } 6921 #endif 6922 #ifdef VK_EXT_blend_operation_advanced 6923 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: 6924 { 6925 deepcopy_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(structExtension_out)); 6926 break; 6927 } 6928 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: 6929 { 6930 deepcopy_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(structExtension_out)); 6931 break; 6932 } 6933 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: 6934 { 6935 deepcopy_VkPipelineColorBlendAdvancedStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(structExtension_out)); 6936 break; 6937 } 6938 #endif 6939 #ifdef VK_NV_fragment_coverage_to_color 6940 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: 6941 { 6942 deepcopy_VkPipelineCoverageToColorStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(structExtension_out)); 6943 break; 6944 } 6945 #endif 6946 #ifdef VK_NV_framebuffer_mixed_samples 6947 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: 6948 { 6949 deepcopy_VkPipelineCoverageModulationStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(structExtension_out)); 6950 break; 6951 } 6952 #endif 6953 #ifdef VK_EXT_validation_cache 6954 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: 6955 { 6956 deepcopy_VkShaderModuleValidationCacheCreateInfoEXT(pool, reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension), reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(structExtension_out)); 6957 break; 6958 } 6959 #endif 6960 #ifdef VK_EXT_descriptor_indexing 6961 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: 6962 { 6963 deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(pool, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension), reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out)); 6964 break; 6965 } 6966 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: 6967 { 6968 deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out)); 6969 break; 6970 } 6971 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT: 6972 { 6973 deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out)); 6974 break; 6975 } 6976 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT: 6977 { 6978 deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out)); 6979 break; 6980 } 6981 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT: 6982 { 6983 deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out)); 6984 break; 6985 } 6986 #endif 6987 #ifdef VK_EXT_global_priority 6988 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: 6989 { 6990 deepcopy_VkDeviceQueueGlobalPriorityCreateInfoEXT(pool, reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension), reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(structExtension_out)); 6991 break; 6992 } 6993 #endif 6994 #ifdef VK_EXT_external_memory_host 6995 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: 6996 { 6997 deepcopy_VkImportMemoryHostPointerInfoEXT(pool, reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(structExtension), reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(structExtension_out)); 6998 break; 6999 } 7000 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: 7001 { 7002 deepcopy_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(structExtension_out)); 7003 break; 7004 } 7005 #endif 7006 #ifdef VK_AMD_shader_core_properties 7007 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: 7008 { 7009 deepcopy_VkPhysicalDeviceShaderCorePropertiesAMD(pool, reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(structExtension_out)); 7010 break; 7011 } 7012 #endif 7013 #ifdef VK_EXT_vertex_attribute_divisor 7014 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: 7015 { 7016 deepcopy_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(structExtension_out)); 7017 break; 7018 } 7019 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: 7020 { 7021 deepcopy_VkPipelineVertexInputDivisorStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out)); 7022 break; 7023 } 7024 #endif 7025 #ifdef VK_NV_device_diagnostic_checkpoints 7026 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: 7027 { 7028 deepcopy_VkQueueFamilyCheckpointPropertiesNV(pool, reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(structExtension), reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(structExtension_out)); 7029 break; 7030 } 7031 #endif 7032 #ifdef VK_GOOGLE_color_buffer 7033 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: 7034 { 7035 deepcopy_VkImportColorBufferGOOGLE(pool, reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension), reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out)); 7036 break; 7037 } 7038 case VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE: 7039 { 7040 deepcopy_VkImportPhysicalAddressGOOGLE(pool, reinterpret_cast<const VkImportPhysicalAddressGOOGLE*>(structExtension), reinterpret_cast<VkImportPhysicalAddressGOOGLE*>(structExtension_out)); 7041 break; 7042 } 7043 #endif 7044 default: 7045 { 7046 return; 7047 } 7048 } 7049 } 7050 7051 7052 } // namespace goldfish_vk 7053