blob: 65eb18e37291e7b265131cb6768402eb55d0277a [file] [log] [blame]
// Copyright (C) 2018 The Android Open Source Project
// Copyright (C) 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Autogenerated module goldfish_vk_deepcopy
//
// (impl) generated by codegen/vulkan/vulkan-docs-next/scripts/genvk.py -registry
// codegen/vulkan/vulkan-docs-next/xml/vk.xml -registryGfxstream
// codegen/vulkan/vulkan-docs-next/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
//
// Please do not modify directly;
// re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
// or directly from Python by defining:
// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
//
// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
// $CEREAL_OUTPUT_DIR
//
#include "goldfish_vk_deepcopy.h"
#include <string.h>
#include "goldfish_vk_extension_structs.h"
#include "goldfish_vk_private_defs.h"
#include "vk_util.h"
namespace gfxstream {
namespace vk {
void deepcopy_extension_struct(Allocator* alloc, VkStructureType rootType,
const void* structExtension, void* structExtension_out);
#ifdef VK_VERSION_1_0
void deepcopy_VkExtent2D(Allocator* alloc, VkStructureType rootType, const VkExtent2D* from,
VkExtent2D* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkExtent3D(Allocator* alloc, VkStructureType rootType, const VkExtent3D* from,
VkExtent3D* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkOffset2D(Allocator* alloc, VkStructureType rootType, const VkOffset2D* from,
VkOffset2D* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkOffset3D(Allocator* alloc, VkStructureType rootType, const VkOffset3D* from,
VkOffset3D* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkRect2D(Allocator* alloc, VkStructureType rootType, const VkRect2D* from,
VkRect2D* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkOffset2D(alloc, rootType, &from->offset, (VkOffset2D*)(&to->offset));
deepcopy_VkExtent2D(alloc, rootType, &from->extent, (VkExtent2D*)(&to->extent));
}
void deepcopy_VkBaseInStructure(Allocator* alloc, VkStructureType rootType,
const VkBaseInStructure* from, VkBaseInStructure* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (VkBaseInStructure*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBaseOutStructure(Allocator* alloc, VkStructureType rootType,
const VkBaseOutStructure* from, VkBaseOutStructure* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (VkBaseOutStructure*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBufferMemoryBarrier(Allocator* alloc, VkStructureType rootType,
const VkBufferMemoryBarrier* from, VkBufferMemoryBarrier* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDispatchIndirectCommand(Allocator* alloc, VkStructureType rootType,
const VkDispatchIndirectCommand* from,
VkDispatchIndirectCommand* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkDrawIndexedIndirectCommand(Allocator* alloc, VkStructureType rootType,
const VkDrawIndexedIndirectCommand* from,
VkDrawIndexedIndirectCommand* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkDrawIndirectCommand(Allocator* alloc, VkStructureType rootType,
const VkDrawIndirectCommand* from, VkDrawIndirectCommand* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkImageSubresourceRange(Allocator* alloc, VkStructureType rootType,
const VkImageSubresourceRange* from,
VkImageSubresourceRange* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkImageMemoryBarrier(Allocator* alloc, VkStructureType rootType,
const VkImageMemoryBarrier* from, VkImageMemoryBarrier* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresourceRange(alloc, rootType, &from->subresourceRange,
(VkImageSubresourceRange*)(&to->subresourceRange));
}
void deepcopy_VkMemoryBarrier(Allocator* alloc, VkStructureType rootType,
const VkMemoryBarrier* from, VkMemoryBarrier* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineCacheHeaderVersionOne(Allocator* alloc, VkStructureType rootType,
const VkPipelineCacheHeaderVersionOne* from,
VkPipelineCacheHeaderVersionOne* to) {
(void)alloc;
(void)rootType;
*to = *from;
memcpy(to->pipelineCacheUUID, from->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
}
void deepcopy_VkAllocationCallbacks(Allocator* alloc, VkStructureType rootType,
const VkAllocationCallbacks* from, VkAllocationCallbacks* to) {
(void)alloc;
(void)rootType;
*to = *from;
to->pUserData = nullptr;
if (from->pUserData) {
to->pUserData = (void*)alloc->dupArray(from->pUserData, sizeof(uint8_t));
}
}
void deepcopy_VkApplicationInfo(Allocator* alloc, VkStructureType rootType,
const VkApplicationInfo* from, VkApplicationInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pApplicationName = nullptr;
if (from->pApplicationName) {
to->pApplicationName = alloc->strDup(from->pApplicationName);
}
to->pEngineName = nullptr;
if (from->pEngineName) {
to->pEngineName = alloc->strDup(from->pEngineName);
}
}
void deepcopy_VkFormatProperties(Allocator* alloc, VkStructureType rootType,
const VkFormatProperties* from, VkFormatProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkImageFormatProperties(Allocator* alloc, VkStructureType rootType,
const VkImageFormatProperties* from,
VkImageFormatProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkExtent3D(alloc, rootType, &from->maxExtent, (VkExtent3D*)(&to->maxExtent));
}
void deepcopy_VkInstanceCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkInstanceCreateInfo* from, VkInstanceCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pApplicationInfo = nullptr;
if (from->pApplicationInfo) {
to->pApplicationInfo = (VkApplicationInfo*)alloc->alloc(sizeof(const VkApplicationInfo));
deepcopy_VkApplicationInfo(alloc, rootType, from->pApplicationInfo,
(VkApplicationInfo*)(to->pApplicationInfo));
}
to->ppEnabledLayerNames = nullptr;
if (from->ppEnabledLayerNames && from->enabledLayerCount) {
to->ppEnabledLayerNames =
alloc->strDupArray(from->ppEnabledLayerNames, from->enabledLayerCount);
}
to->ppEnabledExtensionNames = nullptr;
if (from->ppEnabledExtensionNames && from->enabledExtensionCount) {
to->ppEnabledExtensionNames =
alloc->strDupArray(from->ppEnabledExtensionNames, from->enabledExtensionCount);
}
}
void deepcopy_VkMemoryHeap(Allocator* alloc, VkStructureType rootType, const VkMemoryHeap* from,
VkMemoryHeap* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkMemoryType(Allocator* alloc, VkStructureType rootType, const VkMemoryType* from,
VkMemoryType* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPhysicalDeviceFeatures(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceFeatures* from,
VkPhysicalDeviceFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPhysicalDeviceLimits(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceLimits* from,
VkPhysicalDeviceLimits* to) {
(void)alloc;
(void)rootType;
*to = *from;
memcpy(to->maxComputeWorkGroupCount, from->maxComputeWorkGroupCount, 3 * sizeof(uint32_t));
memcpy(to->maxComputeWorkGroupSize, from->maxComputeWorkGroupSize, 3 * sizeof(uint32_t));
memcpy(to->maxViewportDimensions, from->maxViewportDimensions, 2 * sizeof(uint32_t));
memcpy(to->viewportBoundsRange, from->viewportBoundsRange, 2 * sizeof(float));
memcpy(to->pointSizeRange, from->pointSizeRange, 2 * sizeof(float));
memcpy(to->lineWidthRange, from->lineWidthRange, 2 * sizeof(float));
}
void deepcopy_VkPhysicalDeviceMemoryProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceMemoryProperties* from,
VkPhysicalDeviceMemoryProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i) {
deepcopy_VkMemoryType(alloc, rootType, from->memoryTypes + i,
(VkMemoryType*)(to->memoryTypes + i));
}
for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i) {
deepcopy_VkMemoryHeap(alloc, rootType, from->memoryHeaps + i,
(VkMemoryHeap*)(to->memoryHeaps + i));
}
}
void deepcopy_VkPhysicalDeviceSparseProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSparseProperties* from,
VkPhysicalDeviceSparseProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPhysicalDeviceProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceProperties* from,
VkPhysicalDeviceProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
memcpy(to->deviceName, from->deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof(char));
memcpy(to->pipelineCacheUUID, from->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
deepcopy_VkPhysicalDeviceLimits(alloc, rootType, &from->limits,
(VkPhysicalDeviceLimits*)(&to->limits));
deepcopy_VkPhysicalDeviceSparseProperties(
alloc, rootType, &from->sparseProperties,
(VkPhysicalDeviceSparseProperties*)(&to->sparseProperties));
}
void deepcopy_VkQueueFamilyProperties(Allocator* alloc, VkStructureType rootType,
const VkQueueFamilyProperties* from,
VkQueueFamilyProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkExtent3D(alloc, rootType, &from->minImageTransferGranularity,
(VkExtent3D*)(&to->minImageTransferGranularity));
}
void deepcopy_VkDeviceQueueCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkDeviceQueueCreateInfo* from,
VkDeviceQueueCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pQueuePriorities = nullptr;
if (from->pQueuePriorities) {
to->pQueuePriorities =
(float*)alloc->dupArray(from->pQueuePriorities, from->queueCount * sizeof(const float));
}
}
void deepcopy_VkDeviceCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkDeviceCreateInfo* from, VkDeviceCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pQueueCreateInfos = nullptr;
if (from->pQueueCreateInfos) {
to->pQueueCreateInfos = (VkDeviceQueueCreateInfo*)alloc->alloc(
from->queueCreateInfoCount * sizeof(const VkDeviceQueueCreateInfo));
to->queueCreateInfoCount = from->queueCreateInfoCount;
for (uint32_t i = 0; i < (uint32_t)from->queueCreateInfoCount; ++i) {
deepcopy_VkDeviceQueueCreateInfo(
alloc, rootType, from->pQueueCreateInfos + i,
(VkDeviceQueueCreateInfo*)(to->pQueueCreateInfos + i));
}
}
}
to->ppEnabledLayerNames = nullptr;
if (from->ppEnabledLayerNames && from->enabledLayerCount) {
to->ppEnabledLayerNames =
alloc->strDupArray(from->ppEnabledLayerNames, from->enabledLayerCount);
}
to->ppEnabledExtensionNames = nullptr;
if (from->ppEnabledExtensionNames && from->enabledExtensionCount) {
to->ppEnabledExtensionNames =
alloc->strDupArray(from->ppEnabledExtensionNames, from->enabledExtensionCount);
}
to->pEnabledFeatures = nullptr;
if (from->pEnabledFeatures) {
to->pEnabledFeatures =
(VkPhysicalDeviceFeatures*)alloc->alloc(sizeof(const VkPhysicalDeviceFeatures));
deepcopy_VkPhysicalDeviceFeatures(alloc, rootType, from->pEnabledFeatures,
(VkPhysicalDeviceFeatures*)(to->pEnabledFeatures));
}
}
void deepcopy_VkExtensionProperties(Allocator* alloc, VkStructureType rootType,
const VkExtensionProperties* from, VkExtensionProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
memcpy(to->extensionName, from->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
}
void deepcopy_VkLayerProperties(Allocator* alloc, VkStructureType rootType,
const VkLayerProperties* from, VkLayerProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
memcpy(to->layerName, from->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
}
void deepcopy_VkSubmitInfo(Allocator* alloc, VkStructureType rootType, const VkSubmitInfo* from,
VkSubmitInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pWaitSemaphores = nullptr;
if (from->pWaitSemaphores) {
to->pWaitSemaphores = (VkSemaphore*)alloc->dupArray(
from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
}
to->pWaitDstStageMask = nullptr;
if (from->pWaitDstStageMask) {
to->pWaitDstStageMask = (VkPipelineStageFlags*)alloc->dupArray(
from->pWaitDstStageMask, from->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
}
to->pCommandBuffers = nullptr;
if (from->pCommandBuffers) {
to->pCommandBuffers = (VkCommandBuffer*)alloc->dupArray(
from->pCommandBuffers, from->commandBufferCount * sizeof(const VkCommandBuffer));
}
to->pSignalSemaphores = nullptr;
if (from->pSignalSemaphores) {
to->pSignalSemaphores = (VkSemaphore*)alloc->dupArray(
from->pSignalSemaphores, from->signalSemaphoreCount * sizeof(const VkSemaphore));
}
}
void deepcopy_VkMappedMemoryRange(Allocator* alloc, VkStructureType rootType,
const VkMappedMemoryRange* from, VkMappedMemoryRange* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryAllocateInfo(Allocator* alloc, VkStructureType rootType,
const VkMemoryAllocateInfo* from, VkMemoryAllocateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryRequirements(Allocator* alloc, VkStructureType rootType,
const VkMemoryRequirements* from, VkMemoryRequirements* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkSparseMemoryBind(Allocator* alloc, VkStructureType rootType,
const VkSparseMemoryBind* from, VkSparseMemoryBind* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkSparseBufferMemoryBindInfo(Allocator* alloc, VkStructureType rootType,
const VkSparseBufferMemoryBindInfo* from,
VkSparseBufferMemoryBindInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (from) {
to->pBinds = nullptr;
if (from->pBinds) {
to->pBinds = (VkSparseMemoryBind*)alloc->alloc(from->bindCount *
sizeof(const VkSparseMemoryBind));
to->bindCount = from->bindCount;
for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i) {
deepcopy_VkSparseMemoryBind(alloc, rootType, from->pBinds + i,
(VkSparseMemoryBind*)(to->pBinds + i));
}
}
}
}
void deepcopy_VkSparseImageOpaqueMemoryBindInfo(Allocator* alloc, VkStructureType rootType,
const VkSparseImageOpaqueMemoryBindInfo* from,
VkSparseImageOpaqueMemoryBindInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (from) {
to->pBinds = nullptr;
if (from->pBinds) {
to->pBinds = (VkSparseMemoryBind*)alloc->alloc(from->bindCount *
sizeof(const VkSparseMemoryBind));
to->bindCount = from->bindCount;
for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i) {
deepcopy_VkSparseMemoryBind(alloc, rootType, from->pBinds + i,
(VkSparseMemoryBind*)(to->pBinds + i));
}
}
}
}
void deepcopy_VkImageSubresource(Allocator* alloc, VkStructureType rootType,
const VkImageSubresource* from, VkImageSubresource* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkSparseImageMemoryBind(Allocator* alloc, VkStructureType rootType,
const VkSparseImageMemoryBind* from,
VkSparseImageMemoryBind* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkImageSubresource(alloc, rootType, &from->subresource,
(VkImageSubresource*)(&to->subresource));
deepcopy_VkOffset3D(alloc, rootType, &from->offset, (VkOffset3D*)(&to->offset));
deepcopy_VkExtent3D(alloc, rootType, &from->extent, (VkExtent3D*)(&to->extent));
}
void deepcopy_VkSparseImageMemoryBindInfo(Allocator* alloc, VkStructureType rootType,
const VkSparseImageMemoryBindInfo* from,
VkSparseImageMemoryBindInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (from) {
to->pBinds = nullptr;
if (from->pBinds) {
to->pBinds = (VkSparseImageMemoryBind*)alloc->alloc(
from->bindCount * sizeof(const VkSparseImageMemoryBind));
to->bindCount = from->bindCount;
for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i) {
deepcopy_VkSparseImageMemoryBind(alloc, rootType, from->pBinds + i,
(VkSparseImageMemoryBind*)(to->pBinds + i));
}
}
}
}
void deepcopy_VkBindSparseInfo(Allocator* alloc, VkStructureType rootType,
const VkBindSparseInfo* from, VkBindSparseInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pWaitSemaphores = nullptr;
if (from->pWaitSemaphores) {
to->pWaitSemaphores = (VkSemaphore*)alloc->dupArray(
from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
}
if (from) {
to->pBufferBinds = nullptr;
if (from->pBufferBinds) {
to->pBufferBinds = (VkSparseBufferMemoryBindInfo*)alloc->alloc(
from->bufferBindCount * sizeof(const VkSparseBufferMemoryBindInfo));
to->bufferBindCount = from->bufferBindCount;
for (uint32_t i = 0; i < (uint32_t)from->bufferBindCount; ++i) {
deepcopy_VkSparseBufferMemoryBindInfo(
alloc, rootType, from->pBufferBinds + i,
(VkSparseBufferMemoryBindInfo*)(to->pBufferBinds + i));
}
}
}
if (from) {
to->pImageOpaqueBinds = nullptr;
if (from->pImageOpaqueBinds) {
to->pImageOpaqueBinds = (VkSparseImageOpaqueMemoryBindInfo*)alloc->alloc(
from->imageOpaqueBindCount * sizeof(const VkSparseImageOpaqueMemoryBindInfo));
to->imageOpaqueBindCount = from->imageOpaqueBindCount;
for (uint32_t i = 0; i < (uint32_t)from->imageOpaqueBindCount; ++i) {
deepcopy_VkSparseImageOpaqueMemoryBindInfo(
alloc, rootType, from->pImageOpaqueBinds + i,
(VkSparseImageOpaqueMemoryBindInfo*)(to->pImageOpaqueBinds + i));
}
}
}
if (from) {
to->pImageBinds = nullptr;
if (from->pImageBinds) {
to->pImageBinds = (VkSparseImageMemoryBindInfo*)alloc->alloc(
from->imageBindCount * sizeof(const VkSparseImageMemoryBindInfo));
to->imageBindCount = from->imageBindCount;
for (uint32_t i = 0; i < (uint32_t)from->imageBindCount; ++i) {
deepcopy_VkSparseImageMemoryBindInfo(
alloc, rootType, from->pImageBinds + i,
(VkSparseImageMemoryBindInfo*)(to->pImageBinds + i));
}
}
}
to->pSignalSemaphores = nullptr;
if (from->pSignalSemaphores) {
to->pSignalSemaphores = (VkSemaphore*)alloc->dupArray(
from->pSignalSemaphores, from->signalSemaphoreCount * sizeof(const VkSemaphore));
}
}
void deepcopy_VkSparseImageFormatProperties(Allocator* alloc, VkStructureType rootType,
const VkSparseImageFormatProperties* from,
VkSparseImageFormatProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkExtent3D(alloc, rootType, &from->imageGranularity,
(VkExtent3D*)(&to->imageGranularity));
}
void deepcopy_VkSparseImageMemoryRequirements(Allocator* alloc, VkStructureType rootType,
const VkSparseImageMemoryRequirements* from,
VkSparseImageMemoryRequirements* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkSparseImageFormatProperties(alloc, rootType, &from->formatProperties,
(VkSparseImageFormatProperties*)(&to->formatProperties));
}
void deepcopy_VkFenceCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkFenceCreateInfo* from, VkFenceCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSemaphoreCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkSemaphoreCreateInfo* from, VkSemaphoreCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkEventCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkEventCreateInfo* from, VkEventCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkQueryPoolCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkQueryPoolCreateInfo* from, VkQueryPoolCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBufferCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkBufferCreateInfo* from, VkBufferCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pQueueFamilyIndices = nullptr;
if (from->pQueueFamilyIndices) {
to->pQueueFamilyIndices = (uint32_t*)alloc->dupArray(
from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
}
}
void deepcopy_VkBufferViewCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkBufferViewCreateInfo* from,
VkBufferViewCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImageCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkImageCreateInfo* from, VkImageCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkExtent3D(alloc, rootType, &from->extent, (VkExtent3D*)(&to->extent));
to->pQueueFamilyIndices = nullptr;
if (from->pQueueFamilyIndices) {
to->pQueueFamilyIndices = (uint32_t*)alloc->dupArray(
from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
}
}
void deepcopy_VkSubresourceLayout(Allocator* alloc, VkStructureType rootType,
const VkSubresourceLayout* from, VkSubresourceLayout* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkComponentMapping(Allocator* alloc, VkStructureType rootType,
const VkComponentMapping* from, VkComponentMapping* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkImageViewCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkImageViewCreateInfo* from, VkImageViewCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkComponentMapping(alloc, rootType, &from->components,
(VkComponentMapping*)(&to->components));
deepcopy_VkImageSubresourceRange(alloc, rootType, &from->subresourceRange,
(VkImageSubresourceRange*)(&to->subresourceRange));
}
void deepcopy_VkShaderModuleCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkShaderModuleCreateInfo* from,
VkShaderModuleCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pCode = nullptr;
if (from->pCode) {
to->pCode =
(uint32_t*)alloc->dupArray(from->pCode, (from->codeSize / 4) * sizeof(const uint32_t));
}
}
void deepcopy_VkPipelineCacheCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineCacheCreateInfo* from,
VkPipelineCacheCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pInitialData = nullptr;
if (from->pInitialData) {
to->pInitialData = (void*)alloc->dupArray(from->pInitialData,
from->initialDataSize * sizeof(const uint8_t));
}
}
void deepcopy_VkSpecializationMapEntry(Allocator* alloc, VkStructureType rootType,
const VkSpecializationMapEntry* from,
VkSpecializationMapEntry* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkSpecializationInfo(Allocator* alloc, VkStructureType rootType,
const VkSpecializationInfo* from, VkSpecializationInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (from) {
to->pMapEntries = nullptr;
if (from->pMapEntries) {
to->pMapEntries = (VkSpecializationMapEntry*)alloc->alloc(
from->mapEntryCount * sizeof(const VkSpecializationMapEntry));
to->mapEntryCount = from->mapEntryCount;
for (uint32_t i = 0; i < (uint32_t)from->mapEntryCount; ++i) {
deepcopy_VkSpecializationMapEntry(alloc, rootType, from->pMapEntries + i,
(VkSpecializationMapEntry*)(to->pMapEntries + i));
}
}
}
to->pData = nullptr;
if (from->pData) {
to->pData = (void*)alloc->dupArray(from->pData, from->dataSize * sizeof(const uint8_t));
}
}
void deepcopy_VkPipelineShaderStageCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineShaderStageCreateInfo* from,
VkPipelineShaderStageCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pName = nullptr;
if (from->pName) {
to->pName = alloc->strDup(from->pName);
}
to->pSpecializationInfo = nullptr;
if (from->pSpecializationInfo) {
to->pSpecializationInfo =
(VkSpecializationInfo*)alloc->alloc(sizeof(const VkSpecializationInfo));
deepcopy_VkSpecializationInfo(alloc, rootType, from->pSpecializationInfo,
(VkSpecializationInfo*)(to->pSpecializationInfo));
}
}
void deepcopy_VkComputePipelineCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkComputePipelineCreateInfo* from,
VkComputePipelineCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkPipelineShaderStageCreateInfo(alloc, rootType, &from->stage,
(VkPipelineShaderStageCreateInfo*)(&to->stage));
}
void deepcopy_VkVertexInputBindingDescription(Allocator* alloc, VkStructureType rootType,
const VkVertexInputBindingDescription* from,
VkVertexInputBindingDescription* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkVertexInputAttributeDescription(Allocator* alloc, VkStructureType rootType,
const VkVertexInputAttributeDescription* from,
VkVertexInputAttributeDescription* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPipelineVertexInputStateCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineVertexInputStateCreateInfo* from,
VkPipelineVertexInputStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pVertexBindingDescriptions = nullptr;
if (from->pVertexBindingDescriptions) {
to->pVertexBindingDescriptions = (VkVertexInputBindingDescription*)alloc->alloc(
from->vertexBindingDescriptionCount *
sizeof(const VkVertexInputBindingDescription));
to->vertexBindingDescriptionCount = from->vertexBindingDescriptionCount;
for (uint32_t i = 0; i < (uint32_t)from->vertexBindingDescriptionCount; ++i) {
deepcopy_VkVertexInputBindingDescription(
alloc, rootType, from->pVertexBindingDescriptions + i,
(VkVertexInputBindingDescription*)(to->pVertexBindingDescriptions + i));
}
}
}
if (from) {
to->pVertexAttributeDescriptions = nullptr;
if (from->pVertexAttributeDescriptions) {
to->pVertexAttributeDescriptions = (VkVertexInputAttributeDescription*)alloc->alloc(
from->vertexAttributeDescriptionCount *
sizeof(const VkVertexInputAttributeDescription));
to->vertexAttributeDescriptionCount = from->vertexAttributeDescriptionCount;
for (uint32_t i = 0; i < (uint32_t)from->vertexAttributeDescriptionCount; ++i) {
deepcopy_VkVertexInputAttributeDescription(
alloc, rootType, from->pVertexAttributeDescriptions + i,
(VkVertexInputAttributeDescription*)(to->pVertexAttributeDescriptions + i));
}
}
}
}
void deepcopy_VkPipelineInputAssemblyStateCreateInfo(
Allocator* alloc, VkStructureType rootType, const VkPipelineInputAssemblyStateCreateInfo* from,
VkPipelineInputAssemblyStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineTessellationStateCreateInfo(
Allocator* alloc, VkStructureType rootType, const VkPipelineTessellationStateCreateInfo* from,
VkPipelineTessellationStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkViewport(Allocator* alloc, VkStructureType rootType, const VkViewport* from,
VkViewport* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPipelineViewportStateCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineViewportStateCreateInfo* from,
VkPipelineViewportStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pViewports = nullptr;
if (from->pViewports) {
to->pViewports =
(VkViewport*)alloc->alloc(from->viewportCount * sizeof(const VkViewport));
to->viewportCount = from->viewportCount;
for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i) {
deepcopy_VkViewport(alloc, rootType, from->pViewports + i,
(VkViewport*)(to->pViewports + i));
}
}
}
if (from) {
to->pScissors = nullptr;
if (from->pScissors) {
to->pScissors = (VkRect2D*)alloc->alloc(from->scissorCount * sizeof(const VkRect2D));
to->scissorCount = from->scissorCount;
for (uint32_t i = 0; i < (uint32_t)from->scissorCount; ++i) {
deepcopy_VkRect2D(alloc, rootType, from->pScissors + i,
(VkRect2D*)(to->pScissors + i));
}
}
}
}
void deepcopy_VkPipelineRasterizationStateCreateInfo(
Allocator* alloc, VkStructureType rootType, const VkPipelineRasterizationStateCreateInfo* from,
VkPipelineRasterizationStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineMultisampleStateCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineMultisampleStateCreateInfo* from,
VkPipelineMultisampleStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pSampleMask = nullptr;
if (from->pSampleMask) {
to->pSampleMask = (VkSampleMask*)alloc->dupArray(
from->pSampleMask,
(((from->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
}
}
void deepcopy_VkStencilOpState(Allocator* alloc, VkStructureType rootType,
const VkStencilOpState* from, VkStencilOpState* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPipelineDepthStencilStateCreateInfo(
Allocator* alloc, VkStructureType rootType, const VkPipelineDepthStencilStateCreateInfo* from,
VkPipelineDepthStencilStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkStencilOpState(alloc, rootType, &from->front, (VkStencilOpState*)(&to->front));
deepcopy_VkStencilOpState(alloc, rootType, &from->back, (VkStencilOpState*)(&to->back));
}
void deepcopy_VkPipelineColorBlendAttachmentState(Allocator* alloc, VkStructureType rootType,
const VkPipelineColorBlendAttachmentState* from,
VkPipelineColorBlendAttachmentState* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPipelineColorBlendStateCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineColorBlendStateCreateInfo* from,
VkPipelineColorBlendStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pAttachments = nullptr;
if (from->pAttachments) {
to->pAttachments = (VkPipelineColorBlendAttachmentState*)alloc->alloc(
from->attachmentCount * sizeof(const VkPipelineColorBlendAttachmentState));
to->attachmentCount = from->attachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i) {
deepcopy_VkPipelineColorBlendAttachmentState(
alloc, rootType, from->pAttachments + i,
(VkPipelineColorBlendAttachmentState*)(to->pAttachments + i));
}
}
}
memcpy(to->blendConstants, from->blendConstants, 4 * sizeof(float));
}
void deepcopy_VkPipelineDynamicStateCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineDynamicStateCreateInfo* from,
VkPipelineDynamicStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pDynamicStates = nullptr;
if (from->pDynamicStates) {
to->pDynamicStates = (VkDynamicState*)alloc->dupArray(
from->pDynamicStates, from->dynamicStateCount * sizeof(const VkDynamicState));
}
}
void deepcopy_VkGraphicsPipelineCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkGraphicsPipelineCreateInfo* from,
VkGraphicsPipelineCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pStages = nullptr;
if (from->pStages) {
to->pStages = (VkPipelineShaderStageCreateInfo*)alloc->alloc(
from->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
to->stageCount = from->stageCount;
for (uint32_t i = 0; i < (uint32_t)from->stageCount; ++i) {
deepcopy_VkPipelineShaderStageCreateInfo(
alloc, rootType, from->pStages + i,
(VkPipelineShaderStageCreateInfo*)(to->pStages + i));
}
}
}
to->pVertexInputState = nullptr;
if (from->pVertexInputState) {
to->pVertexInputState = (VkPipelineVertexInputStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineVertexInputStateCreateInfo));
deepcopy_VkPipelineVertexInputStateCreateInfo(
alloc, rootType, from->pVertexInputState,
(VkPipelineVertexInputStateCreateInfo*)(to->pVertexInputState));
}
to->pInputAssemblyState = nullptr;
if (from->pInputAssemblyState) {
to->pInputAssemblyState = (VkPipelineInputAssemblyStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineInputAssemblyStateCreateInfo));
deepcopy_VkPipelineInputAssemblyStateCreateInfo(
alloc, rootType, from->pInputAssemblyState,
(VkPipelineInputAssemblyStateCreateInfo*)(to->pInputAssemblyState));
}
to->pTessellationState = nullptr;
if (from->pTessellationState) {
to->pTessellationState = (VkPipelineTessellationStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineTessellationStateCreateInfo));
deepcopy_VkPipelineTessellationStateCreateInfo(
alloc, rootType, from->pTessellationState,
(VkPipelineTessellationStateCreateInfo*)(to->pTessellationState));
}
to->pViewportState = nullptr;
if (from->pViewportState) {
to->pViewportState = (VkPipelineViewportStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineViewportStateCreateInfo));
deepcopy_VkPipelineViewportStateCreateInfo(
alloc, rootType, from->pViewportState,
(VkPipelineViewportStateCreateInfo*)(to->pViewportState));
}
to->pRasterizationState = nullptr;
if (from->pRasterizationState) {
to->pRasterizationState = (VkPipelineRasterizationStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineRasterizationStateCreateInfo));
deepcopy_VkPipelineRasterizationStateCreateInfo(
alloc, rootType, from->pRasterizationState,
(VkPipelineRasterizationStateCreateInfo*)(to->pRasterizationState));
}
to->pMultisampleState = nullptr;
if (from->pMultisampleState) {
to->pMultisampleState = (VkPipelineMultisampleStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineMultisampleStateCreateInfo));
deepcopy_VkPipelineMultisampleStateCreateInfo(
alloc, rootType, from->pMultisampleState,
(VkPipelineMultisampleStateCreateInfo*)(to->pMultisampleState));
}
to->pDepthStencilState = nullptr;
if (from->pDepthStencilState) {
to->pDepthStencilState = (VkPipelineDepthStencilStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineDepthStencilStateCreateInfo));
deepcopy_VkPipelineDepthStencilStateCreateInfo(
alloc, rootType, from->pDepthStencilState,
(VkPipelineDepthStencilStateCreateInfo*)(to->pDepthStencilState));
}
to->pColorBlendState = nullptr;
if (from->pColorBlendState) {
to->pColorBlendState = (VkPipelineColorBlendStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineColorBlendStateCreateInfo));
deepcopy_VkPipelineColorBlendStateCreateInfo(
alloc, rootType, from->pColorBlendState,
(VkPipelineColorBlendStateCreateInfo*)(to->pColorBlendState));
}
to->pDynamicState = nullptr;
if (from->pDynamicState) {
to->pDynamicState = (VkPipelineDynamicStateCreateInfo*)alloc->alloc(
sizeof(const VkPipelineDynamicStateCreateInfo));
deepcopy_VkPipelineDynamicStateCreateInfo(
alloc, rootType, from->pDynamicState,
(VkPipelineDynamicStateCreateInfo*)(to->pDynamicState));
}
}
void deepcopy_VkPushConstantRange(Allocator* alloc, VkStructureType rootType,
const VkPushConstantRange* from, VkPushConstantRange* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPipelineLayoutCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineLayoutCreateInfo* from,
VkPipelineLayoutCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pSetLayouts = nullptr;
if (from->pSetLayouts) {
to->pSetLayouts = (VkDescriptorSetLayout*)alloc->dupArray(
from->pSetLayouts, from->setLayoutCount * sizeof(const VkDescriptorSetLayout));
}
if (from) {
to->pPushConstantRanges = nullptr;
if (from->pPushConstantRanges) {
to->pPushConstantRanges = (VkPushConstantRange*)alloc->alloc(
from->pushConstantRangeCount * sizeof(const VkPushConstantRange));
to->pushConstantRangeCount = from->pushConstantRangeCount;
for (uint32_t i = 0; i < (uint32_t)from->pushConstantRangeCount; ++i) {
deepcopy_VkPushConstantRange(alloc, rootType, from->pPushConstantRanges + i,
(VkPushConstantRange*)(to->pPushConstantRanges + i));
}
}
}
}
void deepcopy_VkSamplerCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkSamplerCreateInfo* from, VkSamplerCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCopyDescriptorSet(Allocator* alloc, VkStructureType rootType,
const VkCopyDescriptorSet* from, VkCopyDescriptorSet* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDescriptorBufferInfo(Allocator* alloc, VkStructureType rootType,
const VkDescriptorBufferInfo* from,
VkDescriptorBufferInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkDescriptorImageInfo(Allocator* alloc, VkStructureType rootType,
const VkDescriptorImageInfo* from, VkDescriptorImageInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkDescriptorPoolSize(Allocator* alloc, VkStructureType rootType,
const VkDescriptorPoolSize* from, VkDescriptorPoolSize* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkDescriptorPoolCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkDescriptorPoolCreateInfo* from,
VkDescriptorPoolCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pPoolSizes = nullptr;
if (from->pPoolSizes) {
to->pPoolSizes = (VkDescriptorPoolSize*)alloc->alloc(
from->poolSizeCount * sizeof(const VkDescriptorPoolSize));
to->poolSizeCount = from->poolSizeCount;
for (uint32_t i = 0; i < (uint32_t)from->poolSizeCount; ++i) {
deepcopy_VkDescriptorPoolSize(alloc, rootType, from->pPoolSizes + i,
(VkDescriptorPoolSize*)(to->pPoolSizes + i));
}
}
}
}
void deepcopy_VkDescriptorSetAllocateInfo(Allocator* alloc, VkStructureType rootType,
const VkDescriptorSetAllocateInfo* from,
VkDescriptorSetAllocateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pSetLayouts = nullptr;
if (from->pSetLayouts) {
to->pSetLayouts = (VkDescriptorSetLayout*)alloc->dupArray(
from->pSetLayouts, from->descriptorSetCount * sizeof(const VkDescriptorSetLayout));
}
}
void deepcopy_VkDescriptorSetLayoutBinding(Allocator* alloc, VkStructureType rootType,
const VkDescriptorSetLayoutBinding* from,
VkDescriptorSetLayoutBinding* to) {
(void)alloc;
(void)rootType;
*to = *from;
to->pImmutableSamplers = nullptr;
if (from->pImmutableSamplers) {
to->pImmutableSamplers = (VkSampler*)alloc->dupArray(
from->pImmutableSamplers, from->descriptorCount * sizeof(const VkSampler));
}
}
void deepcopy_VkDescriptorSetLayoutCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkDescriptorSetLayoutCreateInfo* from,
VkDescriptorSetLayoutCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pBindings = nullptr;
if (from->pBindings) {
to->pBindings = (VkDescriptorSetLayoutBinding*)alloc->alloc(
from->bindingCount * sizeof(const VkDescriptorSetLayoutBinding));
to->bindingCount = from->bindingCount;
for (uint32_t i = 0; i < (uint32_t)from->bindingCount; ++i) {
deepcopy_VkDescriptorSetLayoutBinding(
alloc, rootType, from->pBindings + i,
(VkDescriptorSetLayoutBinding*)(to->pBindings + i));
}
}
}
}
void deepcopy_VkWriteDescriptorSet(Allocator* alloc, VkStructureType rootType,
const VkWriteDescriptorSet* from, VkWriteDescriptorSet* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pImageInfo = nullptr;
if (from->pImageInfo) {
to->pImageInfo = (VkDescriptorImageInfo*)alloc->alloc(
from->descriptorCount * sizeof(const VkDescriptorImageInfo));
to->descriptorCount = from->descriptorCount;
for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i) {
deepcopy_VkDescriptorImageInfo(alloc, rootType, from->pImageInfo + i,
(VkDescriptorImageInfo*)(to->pImageInfo + i));
}
}
}
if (from) {
to->pBufferInfo = nullptr;
if (from->pBufferInfo) {
to->pBufferInfo = (VkDescriptorBufferInfo*)alloc->alloc(
from->descriptorCount * sizeof(const VkDescriptorBufferInfo));
to->descriptorCount = from->descriptorCount;
for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i) {
deepcopy_VkDescriptorBufferInfo(alloc, rootType, from->pBufferInfo + i,
(VkDescriptorBufferInfo*)(to->pBufferInfo + i));
}
}
}
to->pTexelBufferView = nullptr;
if (from->pTexelBufferView) {
to->pTexelBufferView = (VkBufferView*)alloc->dupArray(
from->pTexelBufferView, from->descriptorCount * sizeof(const VkBufferView));
}
}
void deepcopy_VkAttachmentDescription(Allocator* alloc, VkStructureType rootType,
const VkAttachmentDescription* from,
VkAttachmentDescription* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkAttachmentReference(Allocator* alloc, VkStructureType rootType,
const VkAttachmentReference* from, VkAttachmentReference* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkFramebufferCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkFramebufferCreateInfo* from,
VkFramebufferCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pAttachments = nullptr;
if (from->pAttachments) {
to->pAttachments = (VkImageView*)alloc->dupArray(
from->pAttachments, from->attachmentCount * sizeof(const VkImageView));
}
}
void deepcopy_VkSubpassDescription(Allocator* alloc, VkStructureType rootType,
const VkSubpassDescription* from, VkSubpassDescription* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (from) {
to->pInputAttachments = nullptr;
if (from->pInputAttachments) {
to->pInputAttachments = (VkAttachmentReference*)alloc->alloc(
from->inputAttachmentCount * sizeof(const VkAttachmentReference));
to->inputAttachmentCount = from->inputAttachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i) {
deepcopy_VkAttachmentReference(alloc, rootType, from->pInputAttachments + i,
(VkAttachmentReference*)(to->pInputAttachments + i));
}
}
}
if (from) {
to->pColorAttachments = nullptr;
if (from->pColorAttachments) {
to->pColorAttachments = (VkAttachmentReference*)alloc->alloc(
from->colorAttachmentCount * sizeof(const VkAttachmentReference));
to->colorAttachmentCount = from->colorAttachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i) {
deepcopy_VkAttachmentReference(alloc, rootType, from->pColorAttachments + i,
(VkAttachmentReference*)(to->pColorAttachments + i));
}
}
}
if (from) {
to->pResolveAttachments = nullptr;
if (from->pResolveAttachments) {
to->pResolveAttachments = (VkAttachmentReference*)alloc->alloc(
from->colorAttachmentCount * sizeof(const VkAttachmentReference));
to->colorAttachmentCount = from->colorAttachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i) {
deepcopy_VkAttachmentReference(
alloc, rootType, from->pResolveAttachments + i,
(VkAttachmentReference*)(to->pResolveAttachments + i));
}
}
}
to->pDepthStencilAttachment = nullptr;
if (from->pDepthStencilAttachment) {
to->pDepthStencilAttachment =
(VkAttachmentReference*)alloc->alloc(sizeof(const VkAttachmentReference));
deepcopy_VkAttachmentReference(alloc, rootType, from->pDepthStencilAttachment,
(VkAttachmentReference*)(to->pDepthStencilAttachment));
}
to->pPreserveAttachments = nullptr;
if (from->pPreserveAttachments) {
to->pPreserveAttachments = (uint32_t*)alloc->dupArray(
from->pPreserveAttachments, from->preserveAttachmentCount * sizeof(const uint32_t));
}
}
void deepcopy_VkSubpassDependency(Allocator* alloc, VkStructureType rootType,
const VkSubpassDependency* from, VkSubpassDependency* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkRenderPassCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkRenderPassCreateInfo* from,
VkRenderPassCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pAttachments = nullptr;
if (from->pAttachments) {
to->pAttachments = (VkAttachmentDescription*)alloc->alloc(
from->attachmentCount * sizeof(const VkAttachmentDescription));
to->attachmentCount = from->attachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i) {
deepcopy_VkAttachmentDescription(alloc, rootType, from->pAttachments + i,
(VkAttachmentDescription*)(to->pAttachments + i));
}
}
}
if (from) {
to->pSubpasses = nullptr;
if (from->pSubpasses) {
to->pSubpasses = (VkSubpassDescription*)alloc->alloc(
from->subpassCount * sizeof(const VkSubpassDescription));
to->subpassCount = from->subpassCount;
for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i) {
deepcopy_VkSubpassDescription(alloc, rootType, from->pSubpasses + i,
(VkSubpassDescription*)(to->pSubpasses + i));
}
}
}
if (from) {
to->pDependencies = nullptr;
if (from->pDependencies) {
to->pDependencies = (VkSubpassDependency*)alloc->alloc(
from->dependencyCount * sizeof(const VkSubpassDependency));
to->dependencyCount = from->dependencyCount;
for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i) {
deepcopy_VkSubpassDependency(alloc, rootType, from->pDependencies + i,
(VkSubpassDependency*)(to->pDependencies + i));
}
}
}
}
void deepcopy_VkCommandPoolCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkCommandPoolCreateInfo* from,
VkCommandPoolCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCommandBufferAllocateInfo(Allocator* alloc, VkStructureType rootType,
const VkCommandBufferAllocateInfo* from,
VkCommandBufferAllocateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCommandBufferInheritanceInfo(Allocator* alloc, VkStructureType rootType,
const VkCommandBufferInheritanceInfo* from,
VkCommandBufferInheritanceInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCommandBufferBeginInfo(Allocator* alloc, VkStructureType rootType,
const VkCommandBufferBeginInfo* from,
VkCommandBufferBeginInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pInheritanceInfo = nullptr;
if (from->pInheritanceInfo) {
to->pInheritanceInfo = (VkCommandBufferInheritanceInfo*)alloc->alloc(
sizeof(const VkCommandBufferInheritanceInfo));
deepcopy_VkCommandBufferInheritanceInfo(
alloc, rootType, from->pInheritanceInfo,
(VkCommandBufferInheritanceInfo*)(to->pInheritanceInfo));
}
}
void deepcopy_VkBufferCopy(Allocator* alloc, VkStructureType rootType, const VkBufferCopy* from,
VkBufferCopy* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkImageSubresourceLayers(Allocator* alloc, VkStructureType rootType,
const VkImageSubresourceLayers* from,
VkImageSubresourceLayers* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkBufferImageCopy(Allocator* alloc, VkStructureType rootType,
const VkBufferImageCopy* from, VkBufferImageCopy* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->imageSubresource,
(VkImageSubresourceLayers*)(&to->imageSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->imageOffset, (VkOffset3D*)(&to->imageOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->imageExtent, (VkExtent3D*)(&to->imageExtent));
}
void deepcopy_VkClearColorValue(Allocator* alloc, VkStructureType rootType,
const VkClearColorValue* from, VkClearColorValue* to) {
(void)alloc;
(void)rootType;
*to = *from;
memcpy(to->float32, from->float32, 4 * sizeof(float));
memcpy(to->int32, from->int32, 4 * sizeof(int32_t));
memcpy(to->uint32, from->uint32, 4 * sizeof(uint32_t));
}
void deepcopy_VkClearDepthStencilValue(Allocator* alloc, VkStructureType rootType,
const VkClearDepthStencilValue* from,
VkClearDepthStencilValue* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkClearValue(Allocator* alloc, VkStructureType rootType, const VkClearValue* from,
VkClearValue* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkClearColorValue(alloc, rootType, &from->color, (VkClearColorValue*)(&to->color));
deepcopy_VkClearDepthStencilValue(alloc, rootType, &from->depthStencil,
(VkClearDepthStencilValue*)(&to->depthStencil));
}
void deepcopy_VkClearAttachment(Allocator* alloc, VkStructureType rootType,
const VkClearAttachment* from, VkClearAttachment* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkClearValue(alloc, rootType, &from->clearValue, (VkClearValue*)(&to->clearValue));
}
void deepcopy_VkClearRect(Allocator* alloc, VkStructureType rootType, const VkClearRect* from,
VkClearRect* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkRect2D(alloc, rootType, &from->rect, (VkRect2D*)(&to->rect));
}
void deepcopy_VkImageBlit(Allocator* alloc, VkStructureType rootType, const VkImageBlit* from,
VkImageBlit* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->srcSubresource,
(VkImageSubresourceLayers*)(&to->srcSubresource));
for (uint32_t i = 0; i < (uint32_t)2; ++i) {
deepcopy_VkOffset3D(alloc, rootType, from->srcOffsets + i,
(VkOffset3D*)(to->srcOffsets + i));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->dstSubresource,
(VkImageSubresourceLayers*)(&to->dstSubresource));
for (uint32_t i = 0; i < (uint32_t)2; ++i) {
deepcopy_VkOffset3D(alloc, rootType, from->dstOffsets + i,
(VkOffset3D*)(to->dstOffsets + i));
}
}
void deepcopy_VkImageCopy(Allocator* alloc, VkStructureType rootType, const VkImageCopy* from,
VkImageCopy* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->srcSubresource,
(VkImageSubresourceLayers*)(&to->srcSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->dstSubresource,
(VkImageSubresourceLayers*)(&to->dstSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->extent, (VkExtent3D*)(&to->extent));
}
void deepcopy_VkImageResolve(Allocator* alloc, VkStructureType rootType, const VkImageResolve* from,
VkImageResolve* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->srcSubresource,
(VkImageSubresourceLayers*)(&to->srcSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->dstSubresource,
(VkImageSubresourceLayers*)(&to->dstSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->extent, (VkExtent3D*)(&to->extent));
}
void deepcopy_VkRenderPassBeginInfo(Allocator* alloc, VkStructureType rootType,
const VkRenderPassBeginInfo* from, VkRenderPassBeginInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkRect2D(alloc, rootType, &from->renderArea, (VkRect2D*)(&to->renderArea));
if (from) {
to->pClearValues = nullptr;
if (from->pClearValues) {
to->pClearValues =
(VkClearValue*)alloc->alloc(from->clearValueCount * sizeof(const VkClearValue));
to->clearValueCount = from->clearValueCount;
for (uint32_t i = 0; i < (uint32_t)from->clearValueCount; ++i) {
deepcopy_VkClearValue(alloc, rootType, from->pClearValues + i,
(VkClearValue*)(to->pClearValues + i));
}
}
}
}
#endif
#ifdef VK_VERSION_1_1
void deepcopy_VkPhysicalDeviceSubgroupProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSubgroupProperties* from,
VkPhysicalDeviceSubgroupProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBindBufferMemoryInfo(Allocator* alloc, VkStructureType rootType,
const VkBindBufferMemoryInfo* from,
VkBindBufferMemoryInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBindImageMemoryInfo(Allocator* alloc, VkStructureType rootType,
const VkBindImageMemoryInfo* from, VkBindImageMemoryInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDevice16BitStorageFeatures(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDevice16BitStorageFeatures* from,
VkPhysicalDevice16BitStorageFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryDedicatedRequirements(Allocator* alloc, VkStructureType rootType,
const VkMemoryDedicatedRequirements* from,
VkMemoryDedicatedRequirements* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryDedicatedAllocateInfo(Allocator* alloc, VkStructureType rootType,
const VkMemoryDedicatedAllocateInfo* from,
VkMemoryDedicatedAllocateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryAllocateFlagsInfo(Allocator* alloc, VkStructureType rootType,
const VkMemoryAllocateFlagsInfo* from,
VkMemoryAllocateFlagsInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceGroupRenderPassBeginInfo(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupRenderPassBeginInfo* from,
VkDeviceGroupRenderPassBeginInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pDeviceRenderAreas = nullptr;
if (from->pDeviceRenderAreas) {
to->pDeviceRenderAreas =
(VkRect2D*)alloc->alloc(from->deviceRenderAreaCount * sizeof(const VkRect2D));
to->deviceRenderAreaCount = from->deviceRenderAreaCount;
for (uint32_t i = 0; i < (uint32_t)from->deviceRenderAreaCount; ++i) {
deepcopy_VkRect2D(alloc, rootType, from->pDeviceRenderAreas + i,
(VkRect2D*)(to->pDeviceRenderAreas + i));
}
}
}
}
void deepcopy_VkDeviceGroupCommandBufferBeginInfo(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupCommandBufferBeginInfo* from,
VkDeviceGroupCommandBufferBeginInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceGroupSubmitInfo(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupSubmitInfo* from,
VkDeviceGroupSubmitInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pWaitSemaphoreDeviceIndices = nullptr;
if (from->pWaitSemaphoreDeviceIndices) {
to->pWaitSemaphoreDeviceIndices = (uint32_t*)alloc->dupArray(
from->pWaitSemaphoreDeviceIndices, from->waitSemaphoreCount * sizeof(const uint32_t));
}
to->pCommandBufferDeviceMasks = nullptr;
if (from->pCommandBufferDeviceMasks) {
to->pCommandBufferDeviceMasks = (uint32_t*)alloc->dupArray(
from->pCommandBufferDeviceMasks, from->commandBufferCount * sizeof(const uint32_t));
}
to->pSignalSemaphoreDeviceIndices = nullptr;
if (from->pSignalSemaphoreDeviceIndices) {
to->pSignalSemaphoreDeviceIndices =
(uint32_t*)alloc->dupArray(from->pSignalSemaphoreDeviceIndices,
from->signalSemaphoreCount * sizeof(const uint32_t));
}
}
void deepcopy_VkDeviceGroupBindSparseInfo(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupBindSparseInfo* from,
VkDeviceGroupBindSparseInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBindBufferMemoryDeviceGroupInfo(Allocator* alloc, VkStructureType rootType,
const VkBindBufferMemoryDeviceGroupInfo* from,
VkBindBufferMemoryDeviceGroupInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pDeviceIndices = nullptr;
if (from->pDeviceIndices) {
to->pDeviceIndices = (uint32_t*)alloc->dupArray(
from->pDeviceIndices, from->deviceIndexCount * sizeof(const uint32_t));
}
}
void deepcopy_VkBindImageMemoryDeviceGroupInfo(Allocator* alloc, VkStructureType rootType,
const VkBindImageMemoryDeviceGroupInfo* from,
VkBindImageMemoryDeviceGroupInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pDeviceIndices = nullptr;
if (from->pDeviceIndices) {
to->pDeviceIndices = (uint32_t*)alloc->dupArray(
from->pDeviceIndices, from->deviceIndexCount * sizeof(const uint32_t));
}
if (from) {
to->pSplitInstanceBindRegions = nullptr;
if (from->pSplitInstanceBindRegions) {
to->pSplitInstanceBindRegions = (VkRect2D*)alloc->alloc(
from->splitInstanceBindRegionCount * sizeof(const VkRect2D));
to->splitInstanceBindRegionCount = from->splitInstanceBindRegionCount;
for (uint32_t i = 0; i < (uint32_t)from->splitInstanceBindRegionCount; ++i) {
deepcopy_VkRect2D(alloc, rootType, from->pSplitInstanceBindRegions + i,
(VkRect2D*)(to->pSplitInstanceBindRegions + i));
}
}
}
}
void deepcopy_VkPhysicalDeviceGroupProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceGroupProperties* from,
VkPhysicalDeviceGroupProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->physicalDevices, from->physicalDevices,
VK_MAX_DEVICE_GROUP_SIZE * sizeof(VkPhysicalDevice));
}
void deepcopy_VkDeviceGroupDeviceCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupDeviceCreateInfo* from,
VkDeviceGroupDeviceCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pPhysicalDevices = nullptr;
if (from->pPhysicalDevices) {
to->pPhysicalDevices = (VkPhysicalDevice*)alloc->dupArray(
from->pPhysicalDevices, from->physicalDeviceCount * sizeof(const VkPhysicalDevice));
}
}
void deepcopy_VkBufferMemoryRequirementsInfo2(Allocator* alloc, VkStructureType rootType,
const VkBufferMemoryRequirementsInfo2* from,
VkBufferMemoryRequirementsInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImageMemoryRequirementsInfo2(Allocator* alloc, VkStructureType rootType,
const VkImageMemoryRequirementsInfo2* from,
VkImageMemoryRequirementsInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImageSparseMemoryRequirementsInfo2(Allocator* alloc, VkStructureType rootType,
const VkImageSparseMemoryRequirementsInfo2* from,
VkImageSparseMemoryRequirementsInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryRequirements2(Allocator* alloc, VkStructureType rootType,
const VkMemoryRequirements2* from, VkMemoryRequirements2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkMemoryRequirements(alloc, rootType, &from->memoryRequirements,
(VkMemoryRequirements*)(&to->memoryRequirements));
}
void deepcopy_VkSparseImageMemoryRequirements2(Allocator* alloc, VkStructureType rootType,
const VkSparseImageMemoryRequirements2* from,
VkSparseImageMemoryRequirements2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkSparseImageMemoryRequirements(
alloc, rootType, &from->memoryRequirements,
(VkSparseImageMemoryRequirements*)(&to->memoryRequirements));
}
void deepcopy_VkPhysicalDeviceFeatures2(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceFeatures2* from,
VkPhysicalDeviceFeatures2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkPhysicalDeviceFeatures(alloc, rootType, &from->features,
(VkPhysicalDeviceFeatures*)(&to->features));
}
void deepcopy_VkPhysicalDeviceProperties2(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceProperties2* from,
VkPhysicalDeviceProperties2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkPhysicalDeviceProperties(alloc, rootType, &from->properties,
(VkPhysicalDeviceProperties*)(&to->properties));
}
void deepcopy_VkFormatProperties2(Allocator* alloc, VkStructureType rootType,
const VkFormatProperties2* from, VkFormatProperties2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkFormatProperties(alloc, rootType, &from->formatProperties,
(VkFormatProperties*)(&to->formatProperties));
}
void deepcopy_VkImageFormatProperties2(Allocator* alloc, VkStructureType rootType,
const VkImageFormatProperties2* from,
VkImageFormatProperties2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageFormatProperties(alloc, rootType, &from->imageFormatProperties,
(VkImageFormatProperties*)(&to->imageFormatProperties));
}
void deepcopy_VkPhysicalDeviceImageFormatInfo2(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceImageFormatInfo2* from,
VkPhysicalDeviceImageFormatInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkQueueFamilyProperties2(Allocator* alloc, VkStructureType rootType,
const VkQueueFamilyProperties2* from,
VkQueueFamilyProperties2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkQueueFamilyProperties(alloc, rootType, &from->queueFamilyProperties,
(VkQueueFamilyProperties*)(&to->queueFamilyProperties));
}
void deepcopy_VkPhysicalDeviceMemoryProperties2(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceMemoryProperties2* from,
VkPhysicalDeviceMemoryProperties2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkPhysicalDeviceMemoryProperties(
alloc, rootType, &from->memoryProperties,
(VkPhysicalDeviceMemoryProperties*)(&to->memoryProperties));
}
void deepcopy_VkSparseImageFormatProperties2(Allocator* alloc, VkStructureType rootType,
const VkSparseImageFormatProperties2* from,
VkSparseImageFormatProperties2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkSparseImageFormatProperties(alloc, rootType, &from->properties,
(VkSparseImageFormatProperties*)(&to->properties));
}
void deepcopy_VkPhysicalDeviceSparseImageFormatInfo2(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceSparseImageFormatInfo2* from,
VkPhysicalDeviceSparseImageFormatInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDevicePointClippingProperties(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDevicePointClippingProperties* from,
VkPhysicalDevicePointClippingProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkInputAttachmentAspectReference(Allocator* alloc, VkStructureType rootType,
const VkInputAttachmentAspectReference* from,
VkInputAttachmentAspectReference* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkRenderPassInputAttachmentAspectCreateInfo(
Allocator* alloc, VkStructureType rootType,
const VkRenderPassInputAttachmentAspectCreateInfo* from,
VkRenderPassInputAttachmentAspectCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pAspectReferences = nullptr;
if (from->pAspectReferences) {
to->pAspectReferences = (VkInputAttachmentAspectReference*)alloc->alloc(
from->aspectReferenceCount * sizeof(const VkInputAttachmentAspectReference));
to->aspectReferenceCount = from->aspectReferenceCount;
for (uint32_t i = 0; i < (uint32_t)from->aspectReferenceCount; ++i) {
deepcopy_VkInputAttachmentAspectReference(
alloc, rootType, from->pAspectReferences + i,
(VkInputAttachmentAspectReference*)(to->pAspectReferences + i));
}
}
}
}
void deepcopy_VkImageViewUsageCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkImageViewUsageCreateInfo* from,
VkImageViewUsageCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineTessellationDomainOriginStateCreateInfo(
Allocator* alloc, VkStructureType rootType,
const VkPipelineTessellationDomainOriginStateCreateInfo* from,
VkPipelineTessellationDomainOriginStateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkRenderPassMultiviewCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkRenderPassMultiviewCreateInfo* from,
VkRenderPassMultiviewCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pViewMasks = nullptr;
if (from->pViewMasks) {
to->pViewMasks = (uint32_t*)alloc->dupArray(from->pViewMasks,
from->subpassCount * sizeof(const uint32_t));
}
to->pViewOffsets = nullptr;
if (from->pViewOffsets) {
to->pViewOffsets = (int32_t*)alloc->dupArray(from->pViewOffsets,
from->dependencyCount * sizeof(const int32_t));
}
to->pCorrelationMasks = nullptr;
if (from->pCorrelationMasks) {
to->pCorrelationMasks = (uint32_t*)alloc->dupArray(
from->pCorrelationMasks, from->correlationMaskCount * sizeof(const uint32_t));
}
}
void deepcopy_VkPhysicalDeviceMultiviewFeatures(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceMultiviewFeatures* from,
VkPhysicalDeviceMultiviewFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceMultiviewProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceMultiviewProperties* from,
VkPhysicalDeviceMultiviewProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceVariablePointersFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVariablePointersFeatures* from,
VkPhysicalDeviceVariablePointersFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceProtectedMemoryFeatures(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceProtectedMemoryFeatures* from,
VkPhysicalDeviceProtectedMemoryFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceProtectedMemoryProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceProtectedMemoryProperties* from,
VkPhysicalDeviceProtectedMemoryProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceQueueInfo2(Allocator* alloc, VkStructureType rootType,
const VkDeviceQueueInfo2* from, VkDeviceQueueInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkProtectedSubmitInfo(Allocator* alloc, VkStructureType rootType,
const VkProtectedSubmitInfo* from, VkProtectedSubmitInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSamplerYcbcrConversionCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkSamplerYcbcrConversionCreateInfo* from,
VkSamplerYcbcrConversionCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkComponentMapping(alloc, rootType, &from->components,
(VkComponentMapping*)(&to->components));
}
void deepcopy_VkSamplerYcbcrConversionInfo(Allocator* alloc, VkStructureType rootType,
const VkSamplerYcbcrConversionInfo* from,
VkSamplerYcbcrConversionInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBindImagePlaneMemoryInfo(Allocator* alloc, VkStructureType rootType,
const VkBindImagePlaneMemoryInfo* from,
VkBindImagePlaneMemoryInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImagePlaneMemoryRequirementsInfo(Allocator* alloc, VkStructureType rootType,
const VkImagePlaneMemoryRequirementsInfo* from,
VkImagePlaneMemoryRequirementsInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSamplerYcbcrConversionFeatures* from,
VkPhysicalDeviceSamplerYcbcrConversionFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSamplerYcbcrConversionImageFormatProperties(
Allocator* alloc, VkStructureType rootType,
const VkSamplerYcbcrConversionImageFormatProperties* from,
VkSamplerYcbcrConversionImageFormatProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDescriptorUpdateTemplateEntry(Allocator* alloc, VkStructureType rootType,
const VkDescriptorUpdateTemplateEntry* from,
VkDescriptorUpdateTemplateEntry* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkDescriptorUpdateTemplateCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkDescriptorUpdateTemplateCreateInfo* from,
VkDescriptorUpdateTemplateCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pDescriptorUpdateEntries = nullptr;
if (from->pDescriptorUpdateEntries) {
to->pDescriptorUpdateEntries = (VkDescriptorUpdateTemplateEntry*)alloc->alloc(
from->descriptorUpdateEntryCount * sizeof(const VkDescriptorUpdateTemplateEntry));
to->descriptorUpdateEntryCount = from->descriptorUpdateEntryCount;
for (uint32_t i = 0; i < (uint32_t)from->descriptorUpdateEntryCount; ++i) {
deepcopy_VkDescriptorUpdateTemplateEntry(
alloc, rootType, from->pDescriptorUpdateEntries + i,
(VkDescriptorUpdateTemplateEntry*)(to->pDescriptorUpdateEntries + i));
}
}
}
}
void deepcopy_VkExternalMemoryProperties(Allocator* alloc, VkStructureType rootType,
const VkExternalMemoryProperties* from,
VkExternalMemoryProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPhysicalDeviceExternalImageFormatInfo(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceExternalImageFormatInfo* from,
VkPhysicalDeviceExternalImageFormatInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExternalImageFormatProperties(Allocator* alloc, VkStructureType rootType,
const VkExternalImageFormatProperties* from,
VkExternalImageFormatProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkExternalMemoryProperties(
alloc, rootType, &from->externalMemoryProperties,
(VkExternalMemoryProperties*)(&to->externalMemoryProperties));
}
void deepcopy_VkPhysicalDeviceExternalBufferInfo(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceExternalBufferInfo* from,
VkPhysicalDeviceExternalBufferInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExternalBufferProperties(Allocator* alloc, VkStructureType rootType,
const VkExternalBufferProperties* from,
VkExternalBufferProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkExternalMemoryProperties(
alloc, rootType, &from->externalMemoryProperties,
(VkExternalMemoryProperties*)(&to->externalMemoryProperties));
}
void deepcopy_VkPhysicalDeviceIDProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceIDProperties* from,
VkPhysicalDeviceIDProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->deviceUUID, from->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
memcpy(to->driverUUID, from->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
memcpy(to->deviceLUID, from->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
}
void deepcopy_VkExternalMemoryImageCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkExternalMemoryImageCreateInfo* from,
VkExternalMemoryImageCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExternalMemoryBufferCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkExternalMemoryBufferCreateInfo* from,
VkExternalMemoryBufferCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExportMemoryAllocateInfo(Allocator* alloc, VkStructureType rootType,
const VkExportMemoryAllocateInfo* from,
VkExportMemoryAllocateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceExternalFenceInfo(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceExternalFenceInfo* from,
VkPhysicalDeviceExternalFenceInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExternalFenceProperties(Allocator* alloc, VkStructureType rootType,
const VkExternalFenceProperties* from,
VkExternalFenceProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExportFenceCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkExportFenceCreateInfo* from,
VkExportFenceCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExportSemaphoreCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkExportSemaphoreCreateInfo* from,
VkExportSemaphoreCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceExternalSemaphoreInfo(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceExternalSemaphoreInfo* from,
VkPhysicalDeviceExternalSemaphoreInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkExternalSemaphoreProperties(Allocator* alloc, VkStructureType rootType,
const VkExternalSemaphoreProperties* from,
VkExternalSemaphoreProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceMaintenance3Properties(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceMaintenance3Properties* from,
VkPhysicalDeviceMaintenance3Properties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDescriptorSetLayoutSupport(Allocator* alloc, VkStructureType rootType,
const VkDescriptorSetLayoutSupport* from,
VkDescriptorSetLayoutSupport* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceShaderDrawParametersFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderDrawParametersFeatures* from,
VkPhysicalDeviceShaderDrawParametersFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_VERSION_1_2
void deepcopy_VkPhysicalDeviceVulkan11Features(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVulkan11Features* from,
VkPhysicalDeviceVulkan11Features* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceVulkan11Properties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVulkan11Properties* from,
VkPhysicalDeviceVulkan11Properties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->deviceUUID, from->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
memcpy(to->driverUUID, from->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
memcpy(to->deviceLUID, from->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
}
void deepcopy_VkPhysicalDeviceVulkan12Features(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVulkan12Features* from,
VkPhysicalDeviceVulkan12Features* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkConformanceVersion(Allocator* alloc, VkStructureType rootType,
const VkConformanceVersion* from, VkConformanceVersion* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPhysicalDeviceVulkan12Properties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVulkan12Properties* from,
VkPhysicalDeviceVulkan12Properties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->driverName, from->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
memcpy(to->driverInfo, from->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
deepcopy_VkConformanceVersion(alloc, rootType, &from->conformanceVersion,
(VkConformanceVersion*)(&to->conformanceVersion));
}
void deepcopy_VkImageFormatListCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkImageFormatListCreateInfo* from,
VkImageFormatListCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pViewFormats = nullptr;
if (from->pViewFormats) {
to->pViewFormats = (VkFormat*)alloc->dupArray(
from->pViewFormats, from->viewFormatCount * sizeof(const VkFormat));
}
}
void deepcopy_VkAttachmentDescription2(Allocator* alloc, VkStructureType rootType,
const VkAttachmentDescription2* from,
VkAttachmentDescription2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkAttachmentReference2(Allocator* alloc, VkStructureType rootType,
const VkAttachmentReference2* from,
VkAttachmentReference2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSubpassDescription2(Allocator* alloc, VkStructureType rootType,
const VkSubpassDescription2* from, VkSubpassDescription2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pInputAttachments = nullptr;
if (from->pInputAttachments) {
to->pInputAttachments = (VkAttachmentReference2*)alloc->alloc(
from->inputAttachmentCount * sizeof(const VkAttachmentReference2));
to->inputAttachmentCount = from->inputAttachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i) {
deepcopy_VkAttachmentReference2(
alloc, rootType, from->pInputAttachments + i,
(VkAttachmentReference2*)(to->pInputAttachments + i));
}
}
}
if (from) {
to->pColorAttachments = nullptr;
if (from->pColorAttachments) {
to->pColorAttachments = (VkAttachmentReference2*)alloc->alloc(
from->colorAttachmentCount * sizeof(const VkAttachmentReference2));
to->colorAttachmentCount = from->colorAttachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i) {
deepcopy_VkAttachmentReference2(
alloc, rootType, from->pColorAttachments + i,
(VkAttachmentReference2*)(to->pColorAttachments + i));
}
}
}
if (from) {
to->pResolveAttachments = nullptr;
if (from->pResolveAttachments) {
to->pResolveAttachments = (VkAttachmentReference2*)alloc->alloc(
from->colorAttachmentCount * sizeof(const VkAttachmentReference2));
to->colorAttachmentCount = from->colorAttachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i) {
deepcopy_VkAttachmentReference2(
alloc, rootType, from->pResolveAttachments + i,
(VkAttachmentReference2*)(to->pResolveAttachments + i));
}
}
}
to->pDepthStencilAttachment = nullptr;
if (from->pDepthStencilAttachment) {
to->pDepthStencilAttachment =
(VkAttachmentReference2*)alloc->alloc(sizeof(const VkAttachmentReference2));
deepcopy_VkAttachmentReference2(alloc, rootType, from->pDepthStencilAttachment,
(VkAttachmentReference2*)(to->pDepthStencilAttachment));
}
to->pPreserveAttachments = nullptr;
if (from->pPreserveAttachments) {
to->pPreserveAttachments = (uint32_t*)alloc->dupArray(
from->pPreserveAttachments, from->preserveAttachmentCount * sizeof(const uint32_t));
}
}
void deepcopy_VkSubpassDependency2(Allocator* alloc, VkStructureType rootType,
const VkSubpassDependency2* from, VkSubpassDependency2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkRenderPassCreateInfo2(Allocator* alloc, VkStructureType rootType,
const VkRenderPassCreateInfo2* from,
VkRenderPassCreateInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pAttachments = nullptr;
if (from->pAttachments) {
to->pAttachments = (VkAttachmentDescription2*)alloc->alloc(
from->attachmentCount * sizeof(const VkAttachmentDescription2));
to->attachmentCount = from->attachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i) {
deepcopy_VkAttachmentDescription2(
alloc, rootType, from->pAttachments + i,
(VkAttachmentDescription2*)(to->pAttachments + i));
}
}
}
if (from) {
to->pSubpasses = nullptr;
if (from->pSubpasses) {
to->pSubpasses = (VkSubpassDescription2*)alloc->alloc(
from->subpassCount * sizeof(const VkSubpassDescription2));
to->subpassCount = from->subpassCount;
for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i) {
deepcopy_VkSubpassDescription2(alloc, rootType, from->pSubpasses + i,
(VkSubpassDescription2*)(to->pSubpasses + i));
}
}
}
if (from) {
to->pDependencies = nullptr;
if (from->pDependencies) {
to->pDependencies = (VkSubpassDependency2*)alloc->alloc(
from->dependencyCount * sizeof(const VkSubpassDependency2));
to->dependencyCount = from->dependencyCount;
for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i) {
deepcopy_VkSubpassDependency2(alloc, rootType, from->pDependencies + i,
(VkSubpassDependency2*)(to->pDependencies + i));
}
}
}
to->pCorrelatedViewMasks = nullptr;
if (from->pCorrelatedViewMasks) {
to->pCorrelatedViewMasks = (uint32_t*)alloc->dupArray(
from->pCorrelatedViewMasks, from->correlatedViewMaskCount * sizeof(const uint32_t));
}
}
void deepcopy_VkSubpassBeginInfo(Allocator* alloc, VkStructureType rootType,
const VkSubpassBeginInfo* from, VkSubpassBeginInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSubpassEndInfo(Allocator* alloc, VkStructureType rootType,
const VkSubpassEndInfo* from, VkSubpassEndInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDevice8BitStorageFeatures(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDevice8BitStorageFeatures* from,
VkPhysicalDevice8BitStorageFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceDriverProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceDriverProperties* from,
VkPhysicalDeviceDriverProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->driverName, from->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
memcpy(to->driverInfo, from->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
deepcopy_VkConformanceVersion(alloc, rootType, &from->conformanceVersion,
(VkConformanceVersion*)(&to->conformanceVersion));
}
void deepcopy_VkPhysicalDeviceShaderAtomicInt64Features(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderAtomicInt64Features* from,
VkPhysicalDeviceShaderAtomicInt64Features* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderFloat16Int8Features* from,
VkPhysicalDeviceShaderFloat16Int8Features* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceFloatControlsProperties(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceFloatControlsProperties* from,
VkPhysicalDeviceFloatControlsProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfo(
Allocator* alloc, VkStructureType rootType,
const VkDescriptorSetLayoutBindingFlagsCreateInfo* from,
VkDescriptorSetLayoutBindingFlagsCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pBindingFlags = nullptr;
if (from->pBindingFlags) {
to->pBindingFlags = (VkDescriptorBindingFlags*)alloc->dupArray(
from->pBindingFlags, from->bindingCount * sizeof(const VkDescriptorBindingFlags));
}
}
void deepcopy_VkPhysicalDeviceDescriptorIndexingFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceDescriptorIndexingFeatures* from,
VkPhysicalDeviceDescriptorIndexingFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceDescriptorIndexingProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceDescriptorIndexingProperties* from,
VkPhysicalDeviceDescriptorIndexingProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfo(
Allocator* alloc, VkStructureType rootType,
const VkDescriptorSetVariableDescriptorCountAllocateInfo* from,
VkDescriptorSetVariableDescriptorCountAllocateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pDescriptorCounts = nullptr;
if (from->pDescriptorCounts) {
to->pDescriptorCounts = (uint32_t*)alloc->dupArray(
from->pDescriptorCounts, from->descriptorSetCount * sizeof(const uint32_t));
}
}
void deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupport(
Allocator* alloc, VkStructureType rootType,
const VkDescriptorSetVariableDescriptorCountLayoutSupport* from,
VkDescriptorSetVariableDescriptorCountLayoutSupport* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSubpassDescriptionDepthStencilResolve(
Allocator* alloc, VkStructureType rootType, const VkSubpassDescriptionDepthStencilResolve* from,
VkSubpassDescriptionDepthStencilResolve* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pDepthStencilResolveAttachment = nullptr;
if (from->pDepthStencilResolveAttachment) {
to->pDepthStencilResolveAttachment =
(VkAttachmentReference2*)alloc->alloc(sizeof(const VkAttachmentReference2));
deepcopy_VkAttachmentReference2(
alloc, rootType, from->pDepthStencilResolveAttachment,
(VkAttachmentReference2*)(to->pDepthStencilResolveAttachment));
}
}
void deepcopy_VkPhysicalDeviceDepthStencilResolveProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceDepthStencilResolveProperties* from,
VkPhysicalDeviceDepthStencilResolveProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceScalarBlockLayoutFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceScalarBlockLayoutFeatures* from,
VkPhysicalDeviceScalarBlockLayoutFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImageStencilUsageCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkImageStencilUsageCreateInfo* from,
VkImageStencilUsageCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSamplerReductionModeCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkSamplerReductionModeCreateInfo* from,
VkSamplerReductionModeCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceSamplerFilterMinmaxProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSamplerFilterMinmaxProperties* from,
VkPhysicalDeviceSamplerFilterMinmaxProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceVulkanMemoryModelFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVulkanMemoryModelFeatures* from,
VkPhysicalDeviceVulkanMemoryModelFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceImagelessFramebufferFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceImagelessFramebufferFeatures* from,
VkPhysicalDeviceImagelessFramebufferFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkFramebufferAttachmentImageInfo(Allocator* alloc, VkStructureType rootType,
const VkFramebufferAttachmentImageInfo* from,
VkFramebufferAttachmentImageInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pViewFormats = nullptr;
if (from->pViewFormats) {
to->pViewFormats = (VkFormat*)alloc->dupArray(
from->pViewFormats, from->viewFormatCount * sizeof(const VkFormat));
}
}
void deepcopy_VkFramebufferAttachmentsCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkFramebufferAttachmentsCreateInfo* from,
VkFramebufferAttachmentsCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pAttachmentImageInfos = nullptr;
if (from->pAttachmentImageInfos) {
to->pAttachmentImageInfos = (VkFramebufferAttachmentImageInfo*)alloc->alloc(
from->attachmentImageInfoCount * sizeof(const VkFramebufferAttachmentImageInfo));
to->attachmentImageInfoCount = from->attachmentImageInfoCount;
for (uint32_t i = 0; i < (uint32_t)from->attachmentImageInfoCount; ++i) {
deepcopy_VkFramebufferAttachmentImageInfo(
alloc, rootType, from->pAttachmentImageInfos + i,
(VkFramebufferAttachmentImageInfo*)(to->pAttachmentImageInfos + i));
}
}
}
}
void deepcopy_VkRenderPassAttachmentBeginInfo(Allocator* alloc, VkStructureType rootType,
const VkRenderPassAttachmentBeginInfo* from,
VkRenderPassAttachmentBeginInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pAttachments = nullptr;
if (from->pAttachments) {
to->pAttachments = (VkImageView*)alloc->dupArray(
from->pAttachments, from->attachmentCount * sizeof(const VkImageView));
}
}
void deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* from,
VkPhysicalDeviceUniformBufferStandardLayoutFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* from,
VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* from,
VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkAttachmentReferenceStencilLayout(Allocator* alloc, VkStructureType rootType,
const VkAttachmentReferenceStencilLayout* from,
VkAttachmentReferenceStencilLayout* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkAttachmentDescriptionStencilLayout(Allocator* alloc, VkStructureType rootType,
const VkAttachmentDescriptionStencilLayout* from,
VkAttachmentDescriptionStencilLayout* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceHostQueryResetFeatures(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceHostQueryResetFeatures* from,
VkPhysicalDeviceHostQueryResetFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceTimelineSemaphoreFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceTimelineSemaphoreFeatures* from,
VkPhysicalDeviceTimelineSemaphoreFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceTimelineSemaphoreProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceTimelineSemaphoreProperties* from,
VkPhysicalDeviceTimelineSemaphoreProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSemaphoreTypeCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkSemaphoreTypeCreateInfo* from,
VkSemaphoreTypeCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkTimelineSemaphoreSubmitInfo(Allocator* alloc, VkStructureType rootType,
const VkTimelineSemaphoreSubmitInfo* from,
VkTimelineSemaphoreSubmitInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pWaitSemaphoreValues = nullptr;
if (from->pWaitSemaphoreValues) {
to->pWaitSemaphoreValues = (uint64_t*)alloc->dupArray(
from->pWaitSemaphoreValues, from->waitSemaphoreValueCount * sizeof(const uint64_t));
}
to->pSignalSemaphoreValues = nullptr;
if (from->pSignalSemaphoreValues) {
to->pSignalSemaphoreValues = (uint64_t*)alloc->dupArray(
from->pSignalSemaphoreValues, from->signalSemaphoreValueCount * sizeof(const uint64_t));
}
}
void deepcopy_VkSemaphoreWaitInfo(Allocator* alloc, VkStructureType rootType,
const VkSemaphoreWaitInfo* from, VkSemaphoreWaitInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pSemaphores = nullptr;
if (from->pSemaphores) {
to->pSemaphores = (VkSemaphore*)alloc->dupArray(
from->pSemaphores, from->semaphoreCount * sizeof(const VkSemaphore));
}
to->pValues = nullptr;
if (from->pValues) {
to->pValues = (uint64_t*)alloc->dupArray(from->pValues,
from->semaphoreCount * sizeof(const uint64_t));
}
}
void deepcopy_VkSemaphoreSignalInfo(Allocator* alloc, VkStructureType rootType,
const VkSemaphoreSignalInfo* from, VkSemaphoreSignalInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceBufferDeviceAddressFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceBufferDeviceAddressFeatures* from,
VkPhysicalDeviceBufferDeviceAddressFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBufferDeviceAddressInfo(Allocator* alloc, VkStructureType rootType,
const VkBufferDeviceAddressInfo* from,
VkBufferDeviceAddressInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBufferOpaqueCaptureAddressCreateInfo(
Allocator* alloc, VkStructureType rootType, const VkBufferOpaqueCaptureAddressCreateInfo* from,
VkBufferOpaqueCaptureAddressCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryOpaqueCaptureAddressAllocateInfo(
Allocator* alloc, VkStructureType rootType,
const VkMemoryOpaqueCaptureAddressAllocateInfo* from,
VkMemoryOpaqueCaptureAddressAllocateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceMemoryOpaqueCaptureAddressInfo(
Allocator* alloc, VkStructureType rootType, const VkDeviceMemoryOpaqueCaptureAddressInfo* from,
VkDeviceMemoryOpaqueCaptureAddressInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_VERSION_1_3
void deepcopy_VkPhysicalDeviceVulkan13Features(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVulkan13Features* from,
VkPhysicalDeviceVulkan13Features* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceVulkan13Properties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceVulkan13Properties* from,
VkPhysicalDeviceVulkan13Properties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineCreationFeedback(Allocator* alloc, VkStructureType rootType,
const VkPipelineCreationFeedback* from,
VkPipelineCreationFeedback* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPipelineCreationFeedbackCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineCreationFeedbackCreateInfo* from,
VkPipelineCreationFeedbackCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pPipelineCreationFeedback = nullptr;
if (from->pPipelineCreationFeedback) {
to->pPipelineCreationFeedback =
(VkPipelineCreationFeedback*)alloc->alloc(sizeof(VkPipelineCreationFeedback));
deepcopy_VkPipelineCreationFeedback(
alloc, rootType, from->pPipelineCreationFeedback,
(VkPipelineCreationFeedback*)(to->pPipelineCreationFeedback));
}
if (from) {
to->pPipelineStageCreationFeedbacks = nullptr;
if (from->pPipelineStageCreationFeedbacks) {
to->pPipelineStageCreationFeedbacks = (VkPipelineCreationFeedback*)alloc->alloc(
from->pipelineStageCreationFeedbackCount * sizeof(VkPipelineCreationFeedback));
to->pipelineStageCreationFeedbackCount = from->pipelineStageCreationFeedbackCount;
for (uint32_t i = 0; i < (uint32_t)from->pipelineStageCreationFeedbackCount; ++i) {
deepcopy_VkPipelineCreationFeedback(
alloc, rootType, from->pPipelineStageCreationFeedbacks + i,
(VkPipelineCreationFeedback*)(to->pPipelineStageCreationFeedbacks + i));
}
}
}
}
void deepcopy_VkPhysicalDeviceShaderTerminateInvocationFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderTerminateInvocationFeatures* from,
VkPhysicalDeviceShaderTerminateInvocationFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceToolProperties(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceToolProperties* from,
VkPhysicalDeviceToolProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->name, from->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
memcpy(to->version, from->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
memcpy(to->layer, from->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
}
void deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* from,
VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDevicePrivateDataFeatures(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDevicePrivateDataFeatures* from,
VkPhysicalDevicePrivateDataFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDevicePrivateDataCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkDevicePrivateDataCreateInfo* from,
VkDevicePrivateDataCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPrivateDataSlotCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPrivateDataSlotCreateInfo* from,
VkPrivateDataSlotCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDevicePipelineCreationCacheControlFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDevicePipelineCreationCacheControlFeatures* from,
VkPhysicalDevicePipelineCreationCacheControlFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkMemoryBarrier2(Allocator* alloc, VkStructureType rootType,
const VkMemoryBarrier2* from, VkMemoryBarrier2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBufferMemoryBarrier2(Allocator* alloc, VkStructureType rootType,
const VkBufferMemoryBarrier2* from,
VkBufferMemoryBarrier2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImageMemoryBarrier2(Allocator* alloc, VkStructureType rootType,
const VkImageMemoryBarrier2* from, VkImageMemoryBarrier2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresourceRange(alloc, rootType, &from->subresourceRange,
(VkImageSubresourceRange*)(&to->subresourceRange));
}
void deepcopy_VkDependencyInfo(Allocator* alloc, VkStructureType rootType,
const VkDependencyInfo* from, VkDependencyInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pMemoryBarriers = nullptr;
if (from->pMemoryBarriers) {
to->pMemoryBarriers = (VkMemoryBarrier2*)alloc->alloc(from->memoryBarrierCount *
sizeof(const VkMemoryBarrier2));
to->memoryBarrierCount = from->memoryBarrierCount;
for (uint32_t i = 0; i < (uint32_t)from->memoryBarrierCount; ++i) {
deepcopy_VkMemoryBarrier2(alloc, rootType, from->pMemoryBarriers + i,
(VkMemoryBarrier2*)(to->pMemoryBarriers + i));
}
}
}
if (from) {
to->pBufferMemoryBarriers = nullptr;
if (from->pBufferMemoryBarriers) {
to->pBufferMemoryBarriers = (VkBufferMemoryBarrier2*)alloc->alloc(
from->bufferMemoryBarrierCount * sizeof(const VkBufferMemoryBarrier2));
to->bufferMemoryBarrierCount = from->bufferMemoryBarrierCount;
for (uint32_t i = 0; i < (uint32_t)from->bufferMemoryBarrierCount; ++i) {
deepcopy_VkBufferMemoryBarrier2(
alloc, rootType, from->pBufferMemoryBarriers + i,
(VkBufferMemoryBarrier2*)(to->pBufferMemoryBarriers + i));
}
}
}
if (from) {
to->pImageMemoryBarriers = nullptr;
if (from->pImageMemoryBarriers) {
to->pImageMemoryBarriers = (VkImageMemoryBarrier2*)alloc->alloc(
from->imageMemoryBarrierCount * sizeof(const VkImageMemoryBarrier2));
to->imageMemoryBarrierCount = from->imageMemoryBarrierCount;
for (uint32_t i = 0; i < (uint32_t)from->imageMemoryBarrierCount; ++i) {
deepcopy_VkImageMemoryBarrier2(
alloc, rootType, from->pImageMemoryBarriers + i,
(VkImageMemoryBarrier2*)(to->pImageMemoryBarriers + i));
}
}
}
}
void deepcopy_VkSemaphoreSubmitInfo(Allocator* alloc, VkStructureType rootType,
const VkSemaphoreSubmitInfo* from, VkSemaphoreSubmitInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCommandBufferSubmitInfo(Allocator* alloc, VkStructureType rootType,
const VkCommandBufferSubmitInfo* from,
VkCommandBufferSubmitInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSubmitInfo2(Allocator* alloc, VkStructureType rootType, const VkSubmitInfo2* from,
VkSubmitInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pWaitSemaphoreInfos = nullptr;
if (from->pWaitSemaphoreInfos) {
to->pWaitSemaphoreInfos = (VkSemaphoreSubmitInfo*)alloc->alloc(
from->waitSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfo));
to->waitSemaphoreInfoCount = from->waitSemaphoreInfoCount;
for (uint32_t i = 0; i < (uint32_t)from->waitSemaphoreInfoCount; ++i) {
deepcopy_VkSemaphoreSubmitInfo(
alloc, rootType, from->pWaitSemaphoreInfos + i,
(VkSemaphoreSubmitInfo*)(to->pWaitSemaphoreInfos + i));
}
}
}
if (from) {
to->pCommandBufferInfos = nullptr;
if (from->pCommandBufferInfos) {
to->pCommandBufferInfos = (VkCommandBufferSubmitInfo*)alloc->alloc(
from->commandBufferInfoCount * sizeof(const VkCommandBufferSubmitInfo));
to->commandBufferInfoCount = from->commandBufferInfoCount;
for (uint32_t i = 0; i < (uint32_t)from->commandBufferInfoCount; ++i) {
deepcopy_VkCommandBufferSubmitInfo(
alloc, rootType, from->pCommandBufferInfos + i,
(VkCommandBufferSubmitInfo*)(to->pCommandBufferInfos + i));
}
}
}
if (from) {
to->pSignalSemaphoreInfos = nullptr;
if (from->pSignalSemaphoreInfos) {
to->pSignalSemaphoreInfos = (VkSemaphoreSubmitInfo*)alloc->alloc(
from->signalSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfo));
to->signalSemaphoreInfoCount = from->signalSemaphoreInfoCount;
for (uint32_t i = 0; i < (uint32_t)from->signalSemaphoreInfoCount; ++i) {
deepcopy_VkSemaphoreSubmitInfo(
alloc, rootType, from->pSignalSemaphoreInfos + i,
(VkSemaphoreSubmitInfo*)(to->pSignalSemaphoreInfos + i));
}
}
}
}
void deepcopy_VkPhysicalDeviceSynchronization2Features(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSynchronization2Features* from,
VkPhysicalDeviceSynchronization2Features* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* from,
VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceImageRobustnessFeatures(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceImageRobustnessFeatures* from,
VkPhysicalDeviceImageRobustnessFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBufferCopy2(Allocator* alloc, VkStructureType rootType, const VkBufferCopy2* from,
VkBufferCopy2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCopyBufferInfo2(Allocator* alloc, VkStructureType rootType,
const VkCopyBufferInfo2* from, VkCopyBufferInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions =
(VkBufferCopy2*)alloc->alloc(from->regionCount * sizeof(const VkBufferCopy2));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkBufferCopy2(alloc, rootType, from->pRegions + i,
(VkBufferCopy2*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkImageCopy2(Allocator* alloc, VkStructureType rootType, const VkImageCopy2* from,
VkImageCopy2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->srcSubresource,
(VkImageSubresourceLayers*)(&to->srcSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->dstSubresource,
(VkImageSubresourceLayers*)(&to->dstSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->extent, (VkExtent3D*)(&to->extent));
}
void deepcopy_VkCopyImageInfo2(Allocator* alloc, VkStructureType rootType,
const VkCopyImageInfo2* from, VkCopyImageInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions =
(VkImageCopy2*)alloc->alloc(from->regionCount * sizeof(const VkImageCopy2));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkImageCopy2(alloc, rootType, from->pRegions + i,
(VkImageCopy2*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkBufferImageCopy2(Allocator* alloc, VkStructureType rootType,
const VkBufferImageCopy2* from, VkBufferImageCopy2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->imageSubresource,
(VkImageSubresourceLayers*)(&to->imageSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->imageOffset, (VkOffset3D*)(&to->imageOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->imageExtent, (VkExtent3D*)(&to->imageExtent));
}
void deepcopy_VkCopyBufferToImageInfo2(Allocator* alloc, VkStructureType rootType,
const VkCopyBufferToImageInfo2* from,
VkCopyBufferToImageInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions = (VkBufferImageCopy2*)alloc->alloc(from->regionCount *
sizeof(const VkBufferImageCopy2));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkBufferImageCopy2(alloc, rootType, from->pRegions + i,
(VkBufferImageCopy2*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkCopyImageToBufferInfo2(Allocator* alloc, VkStructureType rootType,
const VkCopyImageToBufferInfo2* from,
VkCopyImageToBufferInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions = (VkBufferImageCopy2*)alloc->alloc(from->regionCount *
sizeof(const VkBufferImageCopy2));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkBufferImageCopy2(alloc, rootType, from->pRegions + i,
(VkBufferImageCopy2*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkImageBlit2(Allocator* alloc, VkStructureType rootType, const VkImageBlit2* from,
VkImageBlit2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->srcSubresource,
(VkImageSubresourceLayers*)(&to->srcSubresource));
for (uint32_t i = 0; i < (uint32_t)2; ++i) {
deepcopy_VkOffset3D(alloc, rootType, from->srcOffsets + i,
(VkOffset3D*)(to->srcOffsets + i));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->dstSubresource,
(VkImageSubresourceLayers*)(&to->dstSubresource));
for (uint32_t i = 0; i < (uint32_t)2; ++i) {
deepcopy_VkOffset3D(alloc, rootType, from->dstOffsets + i,
(VkOffset3D*)(to->dstOffsets + i));
}
}
void deepcopy_VkBlitImageInfo2(Allocator* alloc, VkStructureType rootType,
const VkBlitImageInfo2* from, VkBlitImageInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions =
(VkImageBlit2*)alloc->alloc(from->regionCount * sizeof(const VkImageBlit2));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkImageBlit2(alloc, rootType, from->pRegions + i,
(VkImageBlit2*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkImageResolve2(Allocator* alloc, VkStructureType rootType,
const VkImageResolve2* from, VkImageResolve2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->srcSubresource,
(VkImageSubresourceLayers*)(&to->srcSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->dstSubresource,
(VkImageSubresourceLayers*)(&to->dstSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->extent, (VkExtent3D*)(&to->extent));
}
void deepcopy_VkResolveImageInfo2(Allocator* alloc, VkStructureType rootType,
const VkResolveImageInfo2* from, VkResolveImageInfo2* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions =
(VkImageResolve2*)alloc->alloc(from->regionCount * sizeof(const VkImageResolve2));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkImageResolve2(alloc, rootType, from->pRegions + i,
(VkImageResolve2*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkPhysicalDeviceSubgroupSizeControlFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSubgroupSizeControlFeatures* from,
VkPhysicalDeviceSubgroupSizeControlFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceSubgroupSizeControlProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSubgroupSizeControlProperties* from,
VkPhysicalDeviceSubgroupSizeControlProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
Allocator* alloc, VkStructureType rootType,
const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* from,
VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceInlineUniformBlockFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceInlineUniformBlockFeatures* from,
VkPhysicalDeviceInlineUniformBlockFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceInlineUniformBlockProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceInlineUniformBlockProperties* from,
VkPhysicalDeviceInlineUniformBlockProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkWriteDescriptorSetInlineUniformBlock(
Allocator* alloc, VkStructureType rootType, const VkWriteDescriptorSetInlineUniformBlock* from,
VkWriteDescriptorSetInlineUniformBlock* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pData = nullptr;
if (from->pData) {
to->pData = (void*)alloc->dupArray(from->pData, from->dataSize * sizeof(const uint8_t));
}
}
void deepcopy_VkDescriptorPoolInlineUniformBlockCreateInfo(
Allocator* alloc, VkStructureType rootType,
const VkDescriptorPoolInlineUniformBlockCreateInfo* from,
VkDescriptorPoolInlineUniformBlockCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceTextureCompressionASTCHDRFeatures* from,
VkPhysicalDeviceTextureCompressionASTCHDRFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkRenderingAttachmentInfo(Allocator* alloc, VkStructureType rootType,
const VkRenderingAttachmentInfo* from,
VkRenderingAttachmentInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkClearValue(alloc, rootType, &from->clearValue, (VkClearValue*)(&to->clearValue));
}
void deepcopy_VkRenderingInfo(Allocator* alloc, VkStructureType rootType,
const VkRenderingInfo* from, VkRenderingInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkRect2D(alloc, rootType, &from->renderArea, (VkRect2D*)(&to->renderArea));
if (from) {
to->pColorAttachments = nullptr;
if (from->pColorAttachments) {
to->pColorAttachments = (VkRenderingAttachmentInfo*)alloc->alloc(
from->colorAttachmentCount * sizeof(const VkRenderingAttachmentInfo));
to->colorAttachmentCount = from->colorAttachmentCount;
for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i) {
deepcopy_VkRenderingAttachmentInfo(
alloc, rootType, from->pColorAttachments + i,
(VkRenderingAttachmentInfo*)(to->pColorAttachments + i));
}
}
}
to->pDepthAttachment = nullptr;
if (from->pDepthAttachment) {
to->pDepthAttachment =
(VkRenderingAttachmentInfo*)alloc->alloc(sizeof(const VkRenderingAttachmentInfo));
deepcopy_VkRenderingAttachmentInfo(alloc, rootType, from->pDepthAttachment,
(VkRenderingAttachmentInfo*)(to->pDepthAttachment));
}
to->pStencilAttachment = nullptr;
if (from->pStencilAttachment) {
to->pStencilAttachment =
(VkRenderingAttachmentInfo*)alloc->alloc(sizeof(const VkRenderingAttachmentInfo));
deepcopy_VkRenderingAttachmentInfo(alloc, rootType, from->pStencilAttachment,
(VkRenderingAttachmentInfo*)(to->pStencilAttachment));
}
}
void deepcopy_VkPipelineRenderingCreateInfo(Allocator* alloc, VkStructureType rootType,
const VkPipelineRenderingCreateInfo* from,
VkPipelineRenderingCreateInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pColorAttachmentFormats = nullptr;
if (from->pColorAttachmentFormats) {
to->pColorAttachmentFormats = (VkFormat*)alloc->dupArray(
from->pColorAttachmentFormats, from->colorAttachmentCount * sizeof(const VkFormat));
}
}
void deepcopy_VkPhysicalDeviceDynamicRenderingFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceDynamicRenderingFeatures* from,
VkPhysicalDeviceDynamicRenderingFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCommandBufferInheritanceRenderingInfo(
Allocator* alloc, VkStructureType rootType, const VkCommandBufferInheritanceRenderingInfo* from,
VkCommandBufferInheritanceRenderingInfo* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pColorAttachmentFormats = nullptr;
if (from->pColorAttachmentFormats) {
to->pColorAttachmentFormats = (VkFormat*)alloc->dupArray(
from->pColorAttachmentFormats, from->colorAttachmentCount * sizeof(const VkFormat));
}
}
void deepcopy_VkPhysicalDeviceShaderIntegerDotProductFeatures(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderIntegerDotProductFeatures* from,
VkPhysicalDeviceShaderIntegerDotProductFeatures* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceShaderIntegerDotProductProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceShaderIntegerDotProductProperties* from,
VkPhysicalDeviceShaderIntegerDotProductProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceTexelBufferAlignmentProperties(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceTexelBufferAlignmentProperties* from,
VkPhysicalDeviceTexelBufferAlignmentProperties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkFormatProperties3(Allocator* alloc, VkStructureType rootType,
const VkFormatProperties3* from, VkFormatProperties3* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceMaintenance4Features(Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceMaintenance4Features* from,
VkPhysicalDeviceMaintenance4Features* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceMaintenance4Properties(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceMaintenance4Properties* from,
VkPhysicalDeviceMaintenance4Properties* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceBufferMemoryRequirements(Allocator* alloc, VkStructureType rootType,
const VkDeviceBufferMemoryRequirements* from,
VkDeviceBufferMemoryRequirements* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pCreateInfo = nullptr;
if (from->pCreateInfo) {
to->pCreateInfo = (VkBufferCreateInfo*)alloc->alloc(sizeof(const VkBufferCreateInfo));
deepcopy_VkBufferCreateInfo(alloc, rootType, from->pCreateInfo,
(VkBufferCreateInfo*)(to->pCreateInfo));
}
}
void deepcopy_VkDeviceImageMemoryRequirements(Allocator* alloc, VkStructureType rootType,
const VkDeviceImageMemoryRequirements* from,
VkDeviceImageMemoryRequirements* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pCreateInfo = nullptr;
if (from->pCreateInfo) {
to->pCreateInfo = (VkImageCreateInfo*)alloc->alloc(sizeof(const VkImageCreateInfo));
deepcopy_VkImageCreateInfo(alloc, rootType, from->pCreateInfo,
(VkImageCreateInfo*)(to->pCreateInfo));
}
}
#endif
#ifdef VK_KHR_surface
#endif
#ifdef VK_KHR_swapchain
void deepcopy_VkSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkSwapchainCreateInfoKHR* from,
VkSwapchainCreateInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkExtent2D(alloc, rootType, &from->imageExtent, (VkExtent2D*)(&to->imageExtent));
to->pQueueFamilyIndices = nullptr;
if (from->pQueueFamilyIndices) {
to->pQueueFamilyIndices = (uint32_t*)alloc->dupArray(
from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
}
}
void deepcopy_VkPresentInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkPresentInfoKHR* from, VkPresentInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pWaitSemaphores = nullptr;
if (from->pWaitSemaphores) {
to->pWaitSemaphores = (VkSemaphore*)alloc->dupArray(
from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
}
to->pSwapchains = nullptr;
if (from->pSwapchains) {
to->pSwapchains = (VkSwapchainKHR*)alloc->dupArray(
from->pSwapchains, from->swapchainCount * sizeof(const VkSwapchainKHR));
}
to->pImageIndices = nullptr;
if (from->pImageIndices) {
to->pImageIndices = (uint32_t*)alloc->dupArray(
from->pImageIndices, from->swapchainCount * sizeof(const uint32_t));
}
to->pResults = nullptr;
if (from->pResults) {
to->pResults =
(VkResult*)alloc->dupArray(from->pResults, from->swapchainCount * sizeof(VkResult));
}
}
void deepcopy_VkImageSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkImageSwapchainCreateInfoKHR* from,
VkImageSwapchainCreateInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBindImageMemorySwapchainInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkBindImageMemorySwapchainInfoKHR* from,
VkBindImageMemorySwapchainInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkAcquireNextImageInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkAcquireNextImageInfoKHR* from,
VkAcquireNextImageInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceGroupPresentCapabilitiesKHR(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupPresentCapabilitiesKHR* from,
VkDeviceGroupPresentCapabilitiesKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->presentMask, from->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
}
void deepcopy_VkDeviceGroupPresentInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupPresentInfoKHR* from,
VkDeviceGroupPresentInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pDeviceMasks = nullptr;
if (from->pDeviceMasks) {
to->pDeviceMasks = (uint32_t*)alloc->dupArray(
from->pDeviceMasks, from->swapchainCount * sizeof(const uint32_t));
}
}
void deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkDeviceGroupSwapchainCreateInfoKHR* from,
VkDeviceGroupSwapchainCreateInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_KHR_xcb_surface
#endif
#ifdef VK_KHR_android_surface
#endif
#ifdef VK_KHR_win32_surface
#endif
#ifdef VK_KHR_dynamic_rendering
void deepcopy_VkRenderingFragmentShadingRateAttachmentInfoKHR(
Allocator* alloc, VkStructureType rootType,
const VkRenderingFragmentShadingRateAttachmentInfoKHR* from,
VkRenderingFragmentShadingRateAttachmentInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkExtent2D(alloc, rootType, &from->shadingRateAttachmentTexelSize,
(VkExtent2D*)(&to->shadingRateAttachmentTexelSize));
}
void deepcopy_VkRenderingFragmentDensityMapAttachmentInfoEXT(
Allocator* alloc, VkStructureType rootType,
const VkRenderingFragmentDensityMapAttachmentInfoEXT* from,
VkRenderingFragmentDensityMapAttachmentInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkAttachmentSampleCountInfoAMD(Allocator* alloc, VkStructureType rootType,
const VkAttachmentSampleCountInfoAMD* from,
VkAttachmentSampleCountInfoAMD* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pColorAttachmentSamples = nullptr;
if (from->pColorAttachmentSamples) {
to->pColorAttachmentSamples = (VkSampleCountFlagBits*)alloc->dupArray(
from->pColorAttachmentSamples,
from->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
}
}
void deepcopy_VkMultiviewPerViewAttributesInfoNVX(Allocator* alloc, VkStructureType rootType,
const VkMultiviewPerViewAttributesInfoNVX* from,
VkMultiviewPerViewAttributesInfoNVX* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_KHR_get_physical_device_properties2
#endif
#ifdef VK_KHR_maintenance1
#endif
#ifdef VK_KHR_external_memory_capabilities
#endif
#ifdef VK_KHR_external_memory
#endif
#ifdef VK_KHR_external_memory_win32
#endif
#ifdef VK_KHR_external_memory_fd
#endif
#ifdef VK_KHR_external_semaphore_capabilities
#endif
#ifdef VK_KHR_external_semaphore
#endif
#ifdef VK_KHR_external_semaphore_win32
#endif
#ifdef VK_KHR_external_semaphore_fd
void deepcopy_VkImportSemaphoreFdInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkImportSemaphoreFdInfoKHR* from,
VkImportSemaphoreFdInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSemaphoreGetFdInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkSemaphoreGetFdInfoKHR* from,
VkSemaphoreGetFdInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_KHR_shader_float16_int8
#endif
#ifdef VK_KHR_incremental_present
void deepcopy_VkRectLayerKHR(Allocator* alloc, VkStructureType rootType, const VkRectLayerKHR* from,
VkRectLayerKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
deepcopy_VkOffset2D(alloc, rootType, &from->offset, (VkOffset2D*)(&to->offset));
deepcopy_VkExtent2D(alloc, rootType, &from->extent, (VkExtent2D*)(&to->extent));
}
void deepcopy_VkPresentRegionKHR(Allocator* alloc, VkStructureType rootType,
const VkPresentRegionKHR* from, VkPresentRegionKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (from) {
to->pRectangles = nullptr;
if (from->pRectangles) {
to->pRectangles =
(VkRectLayerKHR*)alloc->alloc(from->rectangleCount * sizeof(const VkRectLayerKHR));
to->rectangleCount = from->rectangleCount;
for (uint32_t i = 0; i < (uint32_t)from->rectangleCount; ++i) {
deepcopy_VkRectLayerKHR(alloc, rootType, from->pRectangles + i,
(VkRectLayerKHR*)(to->pRectangles + i));
}
}
}
}
void deepcopy_VkPresentRegionsKHR(Allocator* alloc, VkStructureType rootType,
const VkPresentRegionsKHR* from, VkPresentRegionsKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions = (VkPresentRegionKHR*)alloc->alloc(from->swapchainCount *
sizeof(const VkPresentRegionKHR));
to->swapchainCount = from->swapchainCount;
for (uint32_t i = 0; i < (uint32_t)from->swapchainCount; ++i) {
deepcopy_VkPresentRegionKHR(alloc, rootType, from->pRegions + i,
(VkPresentRegionKHR*)(to->pRegions + i));
}
}
}
}
#endif
#ifdef VK_KHR_descriptor_update_template
#endif
#ifdef VK_KHR_imageless_framebuffer
#endif
#ifdef VK_KHR_create_renderpass2
#endif
#ifdef VK_KHR_external_fence_capabilities
#endif
#ifdef VK_KHR_external_fence
#endif
#ifdef VK_KHR_external_fence_fd
void deepcopy_VkImportFenceFdInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkImportFenceFdInfoKHR* from,
VkImportFenceFdInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkFenceGetFdInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkFenceGetFdInfoKHR* from, VkFenceGetFdInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_KHR_maintenance2
#endif
#ifdef VK_KHR_dedicated_allocation
#endif
#ifdef VK_KHR_storage_buffer_storage_class
#endif
#ifdef VK_KHR_get_memory_requirements2
#endif
#ifdef VK_KHR_image_format_list
#endif
#ifdef VK_KHR_sampler_ycbcr_conversion
#endif
#ifdef VK_KHR_bind_memory2
#endif
#ifdef VK_KHR_maintenance3
#endif
#ifdef VK_KHR_shader_subgroup_extended_types
#endif
#ifdef VK_KHR_vulkan_memory_model
#endif
#ifdef VK_KHR_shader_terminate_invocation
#endif
#ifdef VK_KHR_buffer_device_address
#endif
#ifdef VK_KHR_pipeline_executable_properties
void deepcopy_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* from,
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkPipelineInfoKHR* from, VkPipelineInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineExecutablePropertiesKHR(Allocator* alloc, VkStructureType rootType,
const VkPipelineExecutablePropertiesKHR* from,
VkPipelineExecutablePropertiesKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->name, from->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
}
void deepcopy_VkPipelineExecutableInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkPipelineExecutableInfoKHR* from,
VkPipelineExecutableInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineExecutableStatisticValueKHR(
Allocator* alloc, VkStructureType rootType, const VkPipelineExecutableStatisticValueKHR* from,
VkPipelineExecutableStatisticValueKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkPipelineExecutableStatisticKHR(Allocator* alloc, VkStructureType rootType,
const VkPipelineExecutableStatisticKHR* from,
VkPipelineExecutableStatisticKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->name, from->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
deepcopy_VkPipelineExecutableStatisticValueKHR(
alloc, rootType, &from->value, (VkPipelineExecutableStatisticValueKHR*)(&to->value));
}
void deepcopy_VkPipelineExecutableInternalRepresentationKHR(
Allocator* alloc, VkStructureType rootType,
const VkPipelineExecutableInternalRepresentationKHR* from,
VkPipelineExecutableInternalRepresentationKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
memcpy(to->name, from->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
to->pData = nullptr;
if (from->pData) {
to->pData = (void*)alloc->dupArray(from->pData, from->dataSize * sizeof(uint8_t));
}
}
#endif
#ifdef VK_KHR_shader_integer_dot_product
#endif
#ifdef VK_KHR_shader_non_semantic_info
#endif
#ifdef VK_KHR_synchronization2
void deepcopy_VkQueueFamilyCheckpointProperties2NV(Allocator* alloc, VkStructureType rootType,
const VkQueueFamilyCheckpointProperties2NV* from,
VkQueueFamilyCheckpointProperties2NV* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCheckpointData2NV(Allocator* alloc, VkStructureType rootType,
const VkCheckpointData2NV* from, VkCheckpointData2NV* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pCheckpointMarker = nullptr;
if (from->pCheckpointMarker) {
to->pCheckpointMarker = (void*)alloc->dupArray(from->pCheckpointMarker, sizeof(uint8_t));
}
}
#endif
#ifdef VK_KHR_zero_initialize_workgroup_memory
#endif
#ifdef VK_KHR_copy_commands2
#endif
#ifdef VK_KHR_format_feature_flags2
#endif
#ifdef VK_KHR_maintenance4
#endif
#ifdef VK_KHR_maintenance5
void deepcopy_VkPhysicalDeviceMaintenance5FeaturesKHR(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDeviceMaintenance5FeaturesKHR* from,
VkPhysicalDeviceMaintenance5FeaturesKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceMaintenance5PropertiesKHR(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceMaintenance5PropertiesKHR* from,
VkPhysicalDeviceMaintenance5PropertiesKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkRenderingAreaInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkRenderingAreaInfoKHR* from,
VkRenderingAreaInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pColorAttachmentFormats = nullptr;
if (from->pColorAttachmentFormats) {
to->pColorAttachmentFormats = (VkFormat*)alloc->dupArray(
from->pColorAttachmentFormats, from->colorAttachmentCount * sizeof(const VkFormat));
}
}
void deepcopy_VkImageSubresource2KHR(Allocator* alloc, VkStructureType rootType,
const VkImageSubresource2KHR* from,
VkImageSubresource2KHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresource(alloc, rootType, &from->imageSubresource,
(VkImageSubresource*)(&to->imageSubresource));
}
void deepcopy_VkDeviceImageSubresourceInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkDeviceImageSubresourceInfoKHR* from,
VkDeviceImageSubresourceInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pCreateInfo = nullptr;
if (from->pCreateInfo) {
to->pCreateInfo = (VkImageCreateInfo*)alloc->alloc(sizeof(const VkImageCreateInfo));
deepcopy_VkImageCreateInfo(alloc, rootType, from->pCreateInfo,
(VkImageCreateInfo*)(to->pCreateInfo));
}
to->pSubresource = nullptr;
if (from->pSubresource) {
to->pSubresource =
(VkImageSubresource2KHR*)alloc->alloc(sizeof(const VkImageSubresource2KHR));
deepcopy_VkImageSubresource2KHR(alloc, rootType, from->pSubresource,
(VkImageSubresource2KHR*)(to->pSubresource));
}
}
void deepcopy_VkSubresourceLayout2KHR(Allocator* alloc, VkStructureType rootType,
const VkSubresourceLayout2KHR* from,
VkSubresourceLayout2KHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkSubresourceLayout(alloc, rootType, &from->subresourceLayout,
(VkSubresourceLayout*)(&to->subresourceLayout));
}
void deepcopy_VkPipelineCreateFlags2CreateInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkPipelineCreateFlags2CreateInfoKHR* from,
VkPipelineCreateFlags2CreateInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkBufferUsageFlags2CreateInfoKHR(Allocator* alloc, VkStructureType rootType,
const VkBufferUsageFlags2CreateInfoKHR* from,
VkBufferUsageFlags2CreateInfoKHR* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_ANDROID_native_buffer
void deepcopy_VkNativeBufferUsage2ANDROID(Allocator* alloc, VkStructureType rootType,
const VkNativeBufferUsage2ANDROID* from,
VkNativeBufferUsage2ANDROID* to) {
(void)alloc;
(void)rootType;
*to = *from;
}
void deepcopy_VkNativeBufferANDROID(Allocator* alloc, VkStructureType rootType,
const VkNativeBufferANDROID* from, VkNativeBufferANDROID* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->handle = nullptr;
if (from->handle) {
to->handle = (uint32_t*)alloc->dupArray(from->handle, sizeof(const uint32_t));
}
deepcopy_VkNativeBufferUsage2ANDROID(alloc, rootType, &from->usage2,
(VkNativeBufferUsage2ANDROID*)(&to->usage2));
}
void deepcopy_VkSwapchainImageCreateInfoANDROID(Allocator* alloc, VkStructureType rootType,
const VkSwapchainImageCreateInfoANDROID* from,
VkSwapchainImageCreateInfoANDROID* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDevicePresentationPropertiesANDROID(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDevicePresentationPropertiesANDROID* from,
VkPhysicalDevicePresentationPropertiesANDROID* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_transform_feedback
void deepcopy_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceTransformFeedbackFeaturesEXT* from,
VkPhysicalDeviceTransformFeedbackFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceTransformFeedbackPropertiesEXT* from,
VkPhysicalDeviceTransformFeedbackPropertiesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineRasterizationStateStreamCreateInfoEXT(
Allocator* alloc, VkStructureType rootType,
const VkPipelineRasterizationStateStreamCreateInfoEXT* from,
VkPipelineRasterizationStateStreamCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_AMD_gpu_shader_half_float
#endif
#ifdef VK_EXT_texture_compression_astc_hdr
#endif
#ifdef VK_EXT_swapchain_colorspace
#endif
#ifdef VK_EXT_queue_family_foreign
#endif
#ifdef VK_EXT_debug_utils
#endif
#ifdef VK_ANDROID_external_memory_android_hardware_buffer
#endif
#ifdef VK_EXT_inline_uniform_block
#endif
#ifdef VK_EXT_shader_stencil_export
#endif
#ifdef VK_EXT_pipeline_creation_feedback
#endif
#ifdef VK_NV_shader_subgroup_partitioned
#endif
#ifdef VK_EXT_metal_surface
#endif
#ifdef VK_EXT_subgroup_size_control
#endif
#ifdef VK_EXT_tooling_info
#endif
#ifdef VK_EXT_provoking_vertex
void deepcopy_VkPhysicalDeviceProvokingVertexFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceProvokingVertexFeaturesEXT* from,
VkPhysicalDeviceProvokingVertexFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceProvokingVertexPropertiesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceProvokingVertexPropertiesEXT* from,
VkPhysicalDeviceProvokingVertexPropertiesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
Allocator* alloc, VkStructureType rootType,
const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* from,
VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_line_rasterization
void deepcopy_VkPhysicalDeviceLineRasterizationFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceLineRasterizationFeaturesEXT* from,
VkPhysicalDeviceLineRasterizationFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceLineRasterizationPropertiesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceLineRasterizationPropertiesEXT* from,
VkPhysicalDeviceLineRasterizationPropertiesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPipelineRasterizationLineStateCreateInfoEXT(
Allocator* alloc, VkStructureType rootType,
const VkPipelineRasterizationLineStateCreateInfoEXT* from,
VkPipelineRasterizationLineStateCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_index_type_uint8
void deepcopy_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* from,
VkPhysicalDeviceIndexTypeUint8FeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_extended_dynamic_state
void deepcopy_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* from,
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_host_image_copy
void deepcopy_VkPhysicalDeviceHostImageCopyFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceHostImageCopyFeaturesEXT* from,
VkPhysicalDeviceHostImageCopyFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceHostImageCopyPropertiesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceHostImageCopyPropertiesEXT* from,
VkPhysicalDeviceHostImageCopyPropertiesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pCopySrcLayouts = nullptr;
if (from->pCopySrcLayouts) {
to->pCopySrcLayouts = (VkImageLayout*)alloc->dupArray(
from->pCopySrcLayouts, from->copySrcLayoutCount * sizeof(VkImageLayout));
}
to->pCopyDstLayouts = nullptr;
if (from->pCopyDstLayouts) {
to->pCopyDstLayouts = (VkImageLayout*)alloc->dupArray(
from->pCopyDstLayouts, from->copyDstLayoutCount * sizeof(VkImageLayout));
}
memcpy(to->optimalTilingLayoutUUID, from->optimalTilingLayoutUUID,
VK_UUID_SIZE * sizeof(uint8_t));
}
void deepcopy_VkMemoryToImageCopyEXT(Allocator* alloc, VkStructureType rootType,
const VkMemoryToImageCopyEXT* from,
VkMemoryToImageCopyEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pHostPointer = nullptr;
if (from->pHostPointer) {
to->pHostPointer = (void*)alloc->dupArray(from->pHostPointer, sizeof(const uint8_t));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->imageSubresource,
(VkImageSubresourceLayers*)(&to->imageSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->imageOffset, (VkOffset3D*)(&to->imageOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->imageExtent, (VkExtent3D*)(&to->imageExtent));
}
void deepcopy_VkImageToMemoryCopyEXT(Allocator* alloc, VkStructureType rootType,
const VkImageToMemoryCopyEXT* from,
VkImageToMemoryCopyEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pHostPointer = nullptr;
if (from->pHostPointer) {
to->pHostPointer = (void*)alloc->dupArray(from->pHostPointer, sizeof(uint8_t));
}
deepcopy_VkImageSubresourceLayers(alloc, rootType, &from->imageSubresource,
(VkImageSubresourceLayers*)(&to->imageSubresource));
deepcopy_VkOffset3D(alloc, rootType, &from->imageOffset, (VkOffset3D*)(&to->imageOffset));
deepcopy_VkExtent3D(alloc, rootType, &from->imageExtent, (VkExtent3D*)(&to->imageExtent));
}
void deepcopy_VkCopyMemoryToImageInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkCopyMemoryToImageInfoEXT* from,
VkCopyMemoryToImageInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions = (VkMemoryToImageCopyEXT*)alloc->alloc(
from->regionCount * sizeof(const VkMemoryToImageCopyEXT));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkMemoryToImageCopyEXT(alloc, rootType, from->pRegions + i,
(VkMemoryToImageCopyEXT*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkCopyImageToMemoryInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkCopyImageToMemoryInfoEXT* from,
VkCopyImageToMemoryInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions = (VkImageToMemoryCopyEXT*)alloc->alloc(
from->regionCount * sizeof(const VkImageToMemoryCopyEXT));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkImageToMemoryCopyEXT(alloc, rootType, from->pRegions + i,
(VkImageToMemoryCopyEXT*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkCopyImageToImageInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkCopyImageToImageInfoEXT* from,
VkCopyImageToImageInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
if (from) {
to->pRegions = nullptr;
if (from->pRegions) {
to->pRegions =
(VkImageCopy2*)alloc->alloc(from->regionCount * sizeof(const VkImageCopy2));
to->regionCount = from->regionCount;
for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i) {
deepcopy_VkImageCopy2(alloc, rootType, from->pRegions + i,
(VkImageCopy2*)(to->pRegions + i));
}
}
}
}
void deepcopy_VkHostImageLayoutTransitionInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkHostImageLayoutTransitionInfoEXT* from,
VkHostImageLayoutTransitionInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkImageSubresourceRange(alloc, rootType, &from->subresourceRange,
(VkImageSubresourceRange*)(&to->subresourceRange));
}
void deepcopy_VkSubresourceHostMemcpySizeEXT(Allocator* alloc, VkStructureType rootType,
const VkSubresourceHostMemcpySizeEXT* from,
VkSubresourceHostMemcpySizeEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkHostImageCopyDevicePerformanceQueryEXT(
Allocator* alloc, VkStructureType rootType,
const VkHostImageCopyDevicePerformanceQueryEXT* from,
VkHostImageCopyDevicePerformanceQueryEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_swapchain_maintenance1
void deepcopy_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* from,
VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkSwapchainPresentFenceInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkSwapchainPresentFenceInfoEXT* from,
VkSwapchainPresentFenceInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pFences = nullptr;
if (from->pFences) {
to->pFences =
(VkFence*)alloc->dupArray(from->pFences, from->swapchainCount * sizeof(const VkFence));
}
}
void deepcopy_VkSwapchainPresentModesCreateInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkSwapchainPresentModesCreateInfoEXT* from,
VkSwapchainPresentModesCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pPresentModes = nullptr;
if (from->pPresentModes) {
to->pPresentModes = (VkPresentModeKHR*)alloc->dupArray(
from->pPresentModes, from->presentModeCount * sizeof(const VkPresentModeKHR));
}
}
void deepcopy_VkSwapchainPresentModeInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkSwapchainPresentModeInfoEXT* from,
VkSwapchainPresentModeInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pPresentModes = nullptr;
if (from->pPresentModes) {
to->pPresentModes = (VkPresentModeKHR*)alloc->dupArray(
from->pPresentModes, from->swapchainCount * sizeof(const VkPresentModeKHR));
}
}
void deepcopy_VkSwapchainPresentScalingCreateInfoEXT(
Allocator* alloc, VkStructureType rootType, const VkSwapchainPresentScalingCreateInfoEXT* from,
VkSwapchainPresentScalingCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkReleaseSwapchainImagesInfoEXT(Allocator* alloc, VkStructureType rootType,
const VkReleaseSwapchainImagesInfoEXT* from,
VkReleaseSwapchainImagesInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pImageIndices = nullptr;
if (from->pImageIndices) {
to->pImageIndices = (uint32_t*)alloc->dupArray(
from->pImageIndices, from->imageIndexCount * sizeof(const uint32_t));
}
}
#endif
#ifdef VK_EXT_shader_demote_to_helper_invocation
#endif
#ifdef VK_EXT_texel_buffer_alignment
void deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* from,
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_device_memory_report
void deepcopy_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* from,
VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceMemoryReportCallbackDataEXT(Allocator* alloc, VkStructureType rootType,
const VkDeviceMemoryReportCallbackDataEXT* from,
VkDeviceMemoryReportCallbackDataEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkDeviceDeviceMemoryReportCreateInfoEXT(
Allocator* alloc, VkStructureType rootType, const VkDeviceDeviceMemoryReportCreateInfoEXT* from,
VkDeviceDeviceMemoryReportCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pUserData = nullptr;
if (from->pUserData) {
to->pUserData = (void*)alloc->dupArray(from->pUserData, sizeof(uint8_t));
}
}
#endif
#ifdef VK_EXT_custom_border_color
void deepcopy_VkSamplerCustomBorderColorCreateInfoEXT(
Allocator* alloc, VkStructureType rootType, const VkSamplerCustomBorderColorCreateInfoEXT* from,
VkSamplerCustomBorderColorCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
deepcopy_VkClearColorValue(alloc, rootType, &from->customBorderColor,
(VkClearColorValue*)(&to->customBorderColor));
}
void deepcopy_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceCustomBorderColorPropertiesEXT* from,
VkPhysicalDeviceCustomBorderColorPropertiesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceCustomBorderColorFeaturesEXT* from,
VkPhysicalDeviceCustomBorderColorFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_private_data
#endif
#ifdef VK_EXT_pipeline_creation_cache_control
#endif
#ifdef VK_EXT_graphics_pipeline_library
void deepcopy_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* from,
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* from,
VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkGraphicsPipelineLibraryCreateInfoEXT(
Allocator* alloc, VkStructureType rootType, const VkGraphicsPipelineLibraryCreateInfoEXT* from,
VkGraphicsPipelineLibraryCreateInfoEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_ycbcr_2plane_444_formats
void deepcopy_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* from,
VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_image_robustness
#endif
#ifdef VK_EXT_image_compression_control
void deepcopy_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceImageCompressionControlFeaturesEXT* from,
VkPhysicalDeviceImageCompressionControlFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImageCompressionControlEXT(Allocator* alloc, VkStructureType rootType,
const VkImageCompressionControlEXT* from,
VkImageCompressionControlEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
to->pFixedRateFlags = nullptr;
if (from->pFixedRateFlags) {
to->pFixedRateFlags = (VkImageCompressionFixedRateFlagsEXT*)alloc->dupArray(
from->pFixedRateFlags,
from->compressionControlPlaneCount * sizeof(VkImageCompressionFixedRateFlagsEXT));
}
}
void deepcopy_VkImageCompressionPropertiesEXT(Allocator* alloc, VkStructureType rootType,
const VkImageCompressionPropertiesEXT* from,
VkImageCompressionPropertiesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_4444_formats
void deepcopy_VkPhysicalDevice4444FormatsFeaturesEXT(
Allocator* alloc, VkStructureType rootType, const VkPhysicalDevice4444FormatsFeaturesEXT* from,
VkPhysicalDevice4444FormatsFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_primitive_topology_list_restart
void deepcopy_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* from,
VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_extended_dynamic_state2
void deepcopy_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* from,
VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_GOOGLE_gfxstream
void deepcopy_VkImportColorBufferGOOGLE(Allocator* alloc, VkStructureType rootType,
const VkImportColorBufferGOOGLE* from,
VkImportColorBufferGOOGLE* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkImportBufferGOOGLE(Allocator* alloc, VkStructureType rootType,
const VkImportBufferGOOGLE* from, VkImportBufferGOOGLE* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
void deepcopy_VkCreateBlobGOOGLE(Allocator* alloc, VkStructureType rootType,
const VkCreateBlobGOOGLE* from, VkCreateBlobGOOGLE* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
#ifdef VK_EXT_load_store_op_none
#endif
#ifdef VK_EXT_image_compression_control_swapchain
void deepcopy_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
Allocator* alloc, VkStructureType rootType,
const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* from,
VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* to) {
(void)alloc;
(void)rootType;
*to = *from;
if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM) {
rootType = from->sType;
}
const void* from_pNext = from;
size_t pNext_size = 0u;
while (!pNext_size && from_pNext) {
from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
}
to->pNext = nullptr;
if (pNext_size) {
to->pNext = (void*)alloc->alloc(pNext_size);
deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
}
}
#endif
void deepcopy_extension_struct(Allocator* alloc, VkStructureType rootType,
const void* structExtension, void* structExtension_out) {
if (!structExtension) {
return;
}
uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
switch (structType) {
#ifdef VK_VERSION_1_0
case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
deepcopy_VkShaderModuleCreateInfo(
alloc, rootType, reinterpret_cast<const VkShaderModuleCreateInfo*>(structExtension),
reinterpret_cast<VkShaderModuleCreateInfo*>(structExtension_out));
break;
}
#endif
#ifdef VK_VERSION_1_1
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
deepcopy_VkPhysicalDeviceSubgroupProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
deepcopy_VkPhysicalDevice16BitStorageFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
deepcopy_VkMemoryDedicatedRequirements(
alloc, rootType,
reinterpret_cast<const VkMemoryDedicatedRequirements*>(structExtension),
reinterpret_cast<VkMemoryDedicatedRequirements*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
deepcopy_VkMemoryDedicatedAllocateInfo(
alloc, rootType,
reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(structExtension),
reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
deepcopy_VkMemoryAllocateFlagsInfo(
alloc, rootType,
reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(structExtension),
reinterpret_cast<VkMemoryAllocateFlagsInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
deepcopy_VkDeviceGroupRenderPassBeginInfo(
alloc, rootType,
reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(structExtension),
reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
deepcopy_VkDeviceGroupCommandBufferBeginInfo(
alloc, rootType,
reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(structExtension),
reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
deepcopy_VkDeviceGroupSubmitInfo(
alloc, rootType, reinterpret_cast<const VkDeviceGroupSubmitInfo*>(structExtension),
reinterpret_cast<VkDeviceGroupSubmitInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
deepcopy_VkDeviceGroupBindSparseInfo(
alloc, rootType,
reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(structExtension),
reinterpret_cast<VkDeviceGroupBindSparseInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
deepcopy_VkBindBufferMemoryDeviceGroupInfo(
alloc, rootType,
reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(structExtension),
reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
deepcopy_VkBindImageMemoryDeviceGroupInfo(
alloc, rootType,
reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(structExtension),
reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
deepcopy_VkDeviceGroupDeviceCreateInfo(
alloc, rootType,
reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(structExtension),
reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
deepcopy_VkPhysicalDeviceFeatures2(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceFeatures2*>(structExtension),
reinterpret_cast<VkPhysicalDeviceFeatures2*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
deepcopy_VkPhysicalDevicePointClippingProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(structExtension),
reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
deepcopy_VkRenderPassInputAttachmentAspectCreateInfo(
alloc, rootType,
reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(
structExtension),
reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
deepcopy_VkImageViewUsageCreateInfo(
alloc, rootType,
reinterpret_cast<const VkImageViewUsageCreateInfo*>(structExtension),
reinterpret_cast<VkImageViewUsageCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
deepcopy_VkPipelineTessellationDomainOriginStateCreateInfo(
alloc, rootType,
reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(
structExtension),
reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
deepcopy_VkRenderPassMultiviewCreateInfo(
alloc, rootType,
reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(structExtension),
reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
deepcopy_VkPhysicalDeviceMultiviewFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
deepcopy_VkPhysicalDeviceMultiviewProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
deepcopy_VkPhysicalDeviceVariablePointersFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
deepcopy_VkPhysicalDeviceProtectedMemoryFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
deepcopy_VkPhysicalDeviceProtectedMemoryProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
deepcopy_VkProtectedSubmitInfo(
alloc, rootType, reinterpret_cast<const VkProtectedSubmitInfo*>(structExtension),
reinterpret_cast<VkProtectedSubmitInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
deepcopy_VkSamplerYcbcrConversionInfo(
alloc, rootType,
reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(structExtension),
reinterpret_cast<VkSamplerYcbcrConversionInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
deepcopy_VkBindImagePlaneMemoryInfo(
alloc, rootType,
reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(structExtension),
reinterpret_cast<VkBindImagePlaneMemoryInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
deepcopy_VkImagePlaneMemoryRequirementsInfo(
alloc, rootType,
reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(structExtension),
reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
deepcopy_VkSamplerYcbcrConversionImageFormatProperties(
alloc, rootType,
reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(
structExtension),
reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
deepcopy_VkPhysicalDeviceExternalImageFormatInfo(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(structExtension),
reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
deepcopy_VkExternalImageFormatProperties(
alloc, rootType,
reinterpret_cast<const VkExternalImageFormatProperties*>(structExtension),
reinterpret_cast<VkExternalImageFormatProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
deepcopy_VkPhysicalDeviceIDProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceIDProperties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceIDProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
deepcopy_VkExternalMemoryImageCreateInfo(
alloc, rootType,
reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(structExtension),
reinterpret_cast<VkExternalMemoryImageCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
deepcopy_VkExternalMemoryBufferCreateInfo(
alloc, rootType,
reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(structExtension),
reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
deepcopy_VkExportMemoryAllocateInfo(
alloc, rootType,
reinterpret_cast<const VkExportMemoryAllocateInfo*>(structExtension),
reinterpret_cast<VkExportMemoryAllocateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
deepcopy_VkExportFenceCreateInfo(
alloc, rootType, reinterpret_cast<const VkExportFenceCreateInfo*>(structExtension),
reinterpret_cast<VkExportFenceCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
deepcopy_VkExportSemaphoreCreateInfo(
alloc, rootType,
reinterpret_cast<const VkExportSemaphoreCreateInfo*>(structExtension),
reinterpret_cast<VkExportSemaphoreCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
deepcopy_VkPhysicalDeviceMaintenance3Properties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
deepcopy_VkPhysicalDeviceShaderDrawParametersFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(
structExtension_out));
break;
}
#endif
#ifdef VK_VERSION_1_2
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
deepcopy_VkPhysicalDeviceVulkan11Features(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
deepcopy_VkPhysicalDeviceVulkan11Properties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
deepcopy_VkPhysicalDeviceVulkan12Features(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
deepcopy_VkPhysicalDeviceVulkan12Properties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
deepcopy_VkImageFormatListCreateInfo(
alloc, rootType,
reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension),
reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
deepcopy_VkPhysicalDevice8BitStorageFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
deepcopy_VkPhysicalDeviceDriverProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
deepcopy_VkPhysicalDeviceShaderAtomicInt64Features(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension),
reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension),
reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
deepcopy_VkPhysicalDeviceFloatControlsProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfo(
alloc, rootType,
reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
structExtension),
reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
deepcopy_VkPhysicalDeviceDescriptorIndexingFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
deepcopy_VkPhysicalDeviceDescriptorIndexingProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfo(
alloc, rootType,
reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
structExtension),
reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupport(
alloc, rootType,
reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
structExtension),
reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
deepcopy_VkSubpassDescriptionDepthStencilResolve(
alloc, rootType,
reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension),
reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
deepcopy_VkPhysicalDeviceDepthStencilResolveProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
deepcopy_VkPhysicalDeviceScalarBlockLayoutFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
deepcopy_VkImageStencilUsageCreateInfo(
alloc, rootType,
reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension),
reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
deepcopy_VkSamplerReductionModeCreateInfo(
alloc, rootType,
reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension),
reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
deepcopy_VkPhysicalDeviceSamplerFilterMinmaxProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
deepcopy_VkPhysicalDeviceVulkanMemoryModelFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
deepcopy_VkPhysicalDeviceImagelessFramebufferFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
deepcopy_VkFramebufferAttachmentsCreateInfo(
alloc, rootType,
reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension),
reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
deepcopy_VkRenderPassAttachmentBeginInfo(
alloc, rootType,
reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension),
reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
deepcopy_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
deepcopy_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
deepcopy_VkAttachmentReferenceStencilLayout(
alloc, rootType,
reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension),
reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
deepcopy_VkAttachmentDescriptionStencilLayout(
alloc, rootType,
reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension),
reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
deepcopy_VkPhysicalDeviceHostQueryResetFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
deepcopy_VkPhysicalDeviceTimelineSemaphoreFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
deepcopy_VkPhysicalDeviceTimelineSemaphoreProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
deepcopy_VkSemaphoreTypeCreateInfo(
alloc, rootType,
reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension),
reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
deepcopy_VkTimelineSemaphoreSubmitInfo(
alloc, rootType,
reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension),
reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
deepcopy_VkPhysicalDeviceBufferDeviceAddressFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
deepcopy_VkBufferOpaqueCaptureAddressCreateInfo(
alloc, rootType,
reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension),
reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
deepcopy_VkMemoryOpaqueCaptureAddressAllocateInfo(
alloc, rootType,
reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension),
reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
break;
}
#endif
#ifdef VK_VERSION_1_3
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
deepcopy_VkPhysicalDeviceVulkan13Features(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVulkan13Features*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
deepcopy_VkPhysicalDeviceVulkan13Properties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceVulkan13Properties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceVulkan13Properties*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
deepcopy_VkPipelineCreationFeedbackCreateInfo(
alloc, rootType,
reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo*>(structExtension),
reinterpret_cast<VkPipelineCreationFeedbackCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
deepcopy_VkPhysicalDeviceShaderTerminateInvocationFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
deepcopy_VkPhysicalDevicePrivateDataFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDevicePrivateDataFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
deepcopy_VkDevicePrivateDataCreateInfo(
alloc, rootType,
reinterpret_cast<const VkDevicePrivateDataCreateInfo*>(structExtension),
reinterpret_cast<VkDevicePrivateDataCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
deepcopy_VkPhysicalDevicePipelineCreationCacheControlFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
deepcopy_VkMemoryBarrier2(alloc, rootType,
reinterpret_cast<const VkMemoryBarrier2*>(structExtension),
reinterpret_cast<VkMemoryBarrier2*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
deepcopy_VkPhysicalDeviceSynchronization2Features(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(structExtension),
reinterpret_cast<VkPhysicalDeviceSynchronization2Features*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
deepcopy_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
deepcopy_VkPhysicalDeviceImageRobustnessFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
deepcopy_VkPhysicalDeviceSubgroupSizeControlFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
deepcopy_VkPhysicalDeviceSubgroupSizeControlProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
deepcopy_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo(
alloc, rootType,
reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
structExtension),
reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
deepcopy_VkPhysicalDeviceInlineUniformBlockFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
deepcopy_VkPhysicalDeviceInlineUniformBlockProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
deepcopy_VkWriteDescriptorSetInlineUniformBlock(
alloc, rootType,
reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock*>(structExtension),
reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
deepcopy_VkDescriptorPoolInlineUniformBlockCreateInfo(
alloc, rootType,
reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo*>(
structExtension),
reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
deepcopy_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
deepcopy_VkPipelineRenderingCreateInfo(
alloc, rootType,
reinterpret_cast<const VkPipelineRenderingCreateInfo*>(structExtension),
reinterpret_cast<VkPipelineRenderingCreateInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
deepcopy_VkPhysicalDeviceDynamicRenderingFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension),
reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
deepcopy_VkCommandBufferInheritanceRenderingInfo(
alloc, rootType,
reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo*>(structExtension),
reinterpret_cast<VkCommandBufferInheritanceRenderingInfo*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
deepcopy_VkPhysicalDeviceShaderIntegerDotProductFeatures(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
deepcopy_VkPhysicalDeviceShaderIntegerDotProductProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
deepcopy_VkPhysicalDeviceTexelBufferAlignmentProperties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
deepcopy_VkFormatProperties3(
alloc, rootType, reinterpret_cast<const VkFormatProperties3*>(structExtension),
reinterpret_cast<VkFormatProperties3*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
deepcopy_VkPhysicalDeviceMaintenance4Features(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(structExtension),
reinterpret_cast<VkPhysicalDeviceMaintenance4Features*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
deepcopy_VkPhysicalDeviceMaintenance4Properties(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties*>(structExtension),
reinterpret_cast<VkPhysicalDeviceMaintenance4Properties*>(structExtension_out));
break;
}
#endif
#ifdef VK_KHR_swapchain
case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
deepcopy_VkImageSwapchainCreateInfoKHR(
alloc, rootType,
reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension),
reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
deepcopy_VkBindImageMemorySwapchainInfoKHR(
alloc, rootType,
reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension),
reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
deepcopy_VkDeviceGroupPresentInfoKHR(
alloc, rootType,
reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension),
reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(
alloc, rootType,
reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension),
reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
break;
}
#endif
#ifdef VK_KHR_dynamic_rendering
case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
deepcopy_VkRenderingFragmentShadingRateAttachmentInfoKHR(
alloc, rootType,
reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
structExtension),
reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
deepcopy_VkRenderingFragmentDensityMapAttachmentInfoEXT(
alloc, rootType,
reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
structExtension),
reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
deepcopy_VkAttachmentSampleCountInfoAMD(
alloc, rootType,
reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension),
reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
deepcopy_VkMultiviewPerViewAttributesInfoNVX(
alloc, rootType,
reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension),
reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
break;
}
#endif
#ifdef VK_KHR_incremental_present
case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
deepcopy_VkPresentRegionsKHR(
alloc, rootType, reinterpret_cast<const VkPresentRegionsKHR*>(structExtension),
reinterpret_cast<VkPresentRegionsKHR*>(structExtension_out));
break;
}
#endif
#ifdef VK_KHR_pipeline_executable_properties
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
deepcopy_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
structExtension),
reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(
structExtension_out));
break;
}
#endif
#ifdef VK_KHR_synchronization2
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
deepcopy_VkQueueFamilyCheckpointProperties2NV(
alloc, rootType,
reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension),
reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
break;
}
#endif
#ifdef VK_KHR_maintenance5
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
deepcopy_VkPhysicalDeviceMaintenance5FeaturesKHR(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceMaintenance5FeaturesKHR*>(structExtension),
reinterpret_cast<VkPhysicalDeviceMaintenance5FeaturesKHR*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
deepcopy_VkPhysicalDeviceMaintenance5PropertiesKHR(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceMaintenance5PropertiesKHR*>(structExtension),
reinterpret_cast<VkPhysicalDeviceMaintenance5PropertiesKHR*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
deepcopy_VkPipelineCreateFlags2CreateInfoKHR(
alloc, rootType,
reinterpret_cast<const VkPipelineCreateFlags2CreateInfoKHR*>(structExtension),
reinterpret_cast<VkPipelineCreateFlags2CreateInfoKHR*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
deepcopy_VkBufferUsageFlags2CreateInfoKHR(
alloc, rootType,
reinterpret_cast<const VkBufferUsageFlags2CreateInfoKHR*>(structExtension),
reinterpret_cast<VkBufferUsageFlags2CreateInfoKHR*>(structExtension_out));
break;
}
#endif
#ifdef VK_ANDROID_native_buffer
case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
deepcopy_VkNativeBufferANDROID(
alloc, rootType, reinterpret_cast<const VkNativeBufferANDROID*>(structExtension),
reinterpret_cast<VkNativeBufferANDROID*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_transform_feedback
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
deepcopy_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
deepcopy_VkPipelineRasterizationStateStreamCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(
structExtension),
reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_provoking_vertex
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceProvokingVertexFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
deepcopy_VkPhysicalDeviceProvokingVertexPropertiesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
deepcopy_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
structExtension),
reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_line_rasterization
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceLineRasterizationFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: {
deepcopy_VkPhysicalDeviceLineRasterizationPropertiesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: {
deepcopy_VkPipelineRasterizationLineStateCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(
structExtension),
reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_index_type_uint8
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension),
reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_extended_dynamic_state
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_host_image_copy
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceHostImageCopyFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT*>(structExtension),
reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
deepcopy_VkPhysicalDeviceHostImageCopyPropertiesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
deepcopy_VkSubresourceHostMemcpySizeEXT(
alloc, rootType,
reinterpret_cast<const VkSubresourceHostMemcpySizeEXT*>(structExtension),
reinterpret_cast<VkSubresourceHostMemcpySizeEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
deepcopy_VkHostImageCopyDevicePerformanceQueryEXT(
alloc, rootType,
reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT*>(structExtension),
reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_swapchain_maintenance1
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
deepcopy_VkSwapchainPresentFenceInfoEXT(
alloc, rootType,
reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension),
reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
deepcopy_VkSwapchainPresentModesCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension),
reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
deepcopy_VkSwapchainPresentModeInfoEXT(
alloc, rootType,
reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension),
reinterpret_cast<VkSwapchainPresentModeInfoEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
deepcopy_VkSwapchainPresentScalingCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension),
reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_texel_buffer_alignment
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_device_memory_report
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
deepcopy_VkDeviceDeviceMemoryReportCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension),
reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_custom_border_color
case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
deepcopy_VkSamplerCustomBorderColorCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension),
reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
deepcopy_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_graphics_pipeline_library
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
deepcopy_VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
deepcopy_VkGraphicsPipelineLibraryCreateInfoEXT(
alloc, rootType,
reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension),
reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_ycbcr_2plane_444_formats
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_image_compression_control
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceImageCompressionControlFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(
structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
deepcopy_VkImageCompressionControlEXT(
alloc, rootType,
reinterpret_cast<const VkImageCompressionControlEXT*>(structExtension),
reinterpret_cast<VkImageCompressionControlEXT*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
deepcopy_VkImageCompressionPropertiesEXT(
alloc, rootType,
reinterpret_cast<const VkImageCompressionPropertiesEXT*>(structExtension),
reinterpret_cast<VkImageCompressionPropertiesEXT*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_4444_formats
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
deepcopy_VkPhysicalDevice4444FormatsFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension),
reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_primitive_topology_list_restart
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
deepcopy_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_EXT_extended_dynamic_state2
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
alloc, rootType,
reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(
structExtension_out));
break;
}
#endif
#ifdef VK_GOOGLE_gfxstream
case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
deepcopy_VkImportColorBufferGOOGLE(
alloc, rootType,
reinterpret_cast<const VkImportColorBufferGOOGLE*>(structExtension),
reinterpret_cast<VkImportColorBufferGOOGLE*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
deepcopy_VkImportBufferGOOGLE(
alloc, rootType, reinterpret_cast<const VkImportBufferGOOGLE*>(structExtension),
reinterpret_cast<VkImportBufferGOOGLE*>(structExtension_out));
break;
}
case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
deepcopy_VkCreateBlobGOOGLE(
alloc, rootType, reinterpret_cast<const VkCreateBlobGOOGLE*>(structExtension),
reinterpret_cast<VkCreateBlobGOOGLE*>(structExtension_out));
break;
}
#endif
#ifdef VK_EXT_image_compression_control_swapchain
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
deepcopy_VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
alloc, rootType,
reinterpret_cast<
const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
structExtension),
reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(
structExtension_out));
break;
}
#endif
default: {
return;
}
}
}
} // namespace vk
} // namespace gfxstream